vendor: 78 bytes, lines 1-3
1/******/ (() => { // webpackBootstrap 2/******/ var __webpack_modules__ = ({ 3
vendor: 9,950 bytes, lines 4-227
4/***/ "./node_modules/@popperjs/core/lib/createPopper.js": 5/*!*********************************************************!*\ 6 !*** ./node_modules/@popperjs/core/lib/createPopper.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 */ "createPopper": () => (/* binding */ createPopper), 14/* harmony export */ "detectOverflow": () => (/* reexport safe */ _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_8__["default"]), 15/* harmony export */ "popperGenerator": () => (/* binding */ popperGenerator) 16/* harmony export */ }); 17/* harmony import */ var _dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dom-utils/getCompositeRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js"); 18/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js"); 19/* harmony import */ var _dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom-utils/listScrollParents.js */ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js"); 20/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js"); 21/* harmony import */ var _utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/orderModifiers.js */ "./node_modules/@popperjs/core/lib/utils/orderModifiers.js"); 22/* harmony import */ var _utils_debounce_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/debounce.js */ "./node_modules/@popperjs/core/lib/utils/debounce.js"); 23/* harmony import */ var _utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/mergeByName.js */ "./node_modules/@popperjs/core/lib/utils/mergeByName.js"); 24/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 25/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 26 27 28 29 30 31 32 33 34 35var DEFAULT_OPTIONS = { 36 placement: 'bottom', 37 modifiers: [], 38 strategy: 'absolute' 39}; 40 41function areValidElements() { 42 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 43 args[_key] = arguments[_key]; 44 } 45 46 return !args.some(function (element) { 47 return !(element && typeof element.getBoundingClientRect === 'function'); 48 }); 49} 50 51function popperGenerator(generatorOptions) { 52 if (generatorOptions === void 0) { 53 generatorOptions = {}; 54 } 55 56 var _generatorOptions = generatorOptions, 57 _generatorOptions$def = _generatorOptions.defaultModifiers, 58 defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, 59 _generatorOptions$def2 = _generatorOptions.defaultOptions, 60 defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; 61 return function createPopper(reference, popper, options) { 62 if (options === void 0) { 63 options = defaultOptions; 64 } 65 66 var state = { 67 placement: 'bottom', 68 orderedModifiers: [], 69 options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), 70 modifiersData: {}, 71 elements: { 72 reference: reference, 73 popper: popper 74 }, 75 attributes: {}, 76 styles: {} 77 }; 78 var effectCleanupFns = []; 79 var isDestroyed = false; 80 var instance = { 81 state: state, 82 setOptions: function setOptions(setOptionsAction) { 83 var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction; 84 cleanupModifierEffects(); 85 state.options = Object.assign({}, defaultOptions, state.options, options); 86 state.scrollParents = { 87 reference: (0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(reference) ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(reference) : reference.contextElement ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(reference.contextElement) : [], 88 popper: (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(popper) 89 }; // Orders the modifiers based on their dependencies and `phase` 90 // properties 91 92 var orderedModifiers = (0,_utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__["default"])([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers 93 94 state.orderedModifiers = orderedModifiers.filter(function (m) { 95 return m.enabled; 96 }); 97 runModifierEffects(); 98 return instance.update(); 99 }, 100 // Sync update â it will always be executed, even if not necessary. This 101 // is useful for low frequency updates where sync behavior simplifies the 102 // logic. 103 // For high frequency updates (e.g. `resize` and `scroll` events), always 104 // prefer the async Popper#update method 105 forceUpdate: function forceUpdate() { 106 if (isDestroyed) { 107 return; 108 } 109 110 var _state$elements = state.elements, 111 reference = _state$elements.reference, 112 popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements 113 // anymore 114 115 if (!areValidElements(reference, popper)) { 116 return; 117 } // Store the reference and popper rects to be read by modifiers 118 119 120 state.rects = { 121 reference: (0,_dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_4__["default"])(reference, (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_5__["default"])(popper), state.options.strategy === 'fixed'), 122 popper: (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__["default"])(popper) 123 }; // Modifiers have the ability to reset the current update cycle. The 124 // most common use case for this is the `flip` modifier changing the 125 // placement, which then needs to re-run all the modifiers, because the 126 // logic was previously ran for the previous placement and is therefore 127 // stale/incorrect 128 129 state.reset = false; 130 state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier 131 // is filled with the initial data specified by the modifier. This means 132 // it doesn't persist and is fresh on each update. 133 // To ensure persistent data, use `${name}#persistent` 134 135 state.orderedModifiers.forEach(function (modifier) { 136 return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); 137 }); 138 139 for (var index = 0; index < state.orderedModifiers.length; index++) { 140 if (state.reset === true) { 141 state.reset = false; 142 index = -1; 143 continue; 144 } 145 146 var _state$orderedModifie = state.orderedModifiers[index], 147 fn = _state$orderedModifie.fn, 148 _state$orderedModifie2 = _state$orderedModifie.options, 149 _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, 150 name = _state$orderedModifie.name; 151 152 if (typeof fn === 'function') { 153 state = fn({ 154 state: state, 155 options: _options, 156 name: name, 157 instance: instance 158 }) || state; 159 } 160 } 161 }, 162 // Async and optimistically optimized update â it will not be executed if 163 // not necessary (debounced to run at most once-per-tick) 164 update: (0,_utils_debounce_js__WEBPACK_IMPORTED_MODULE_7__["default"])(function () { 165 return new Promise(function (resolve) { 166 instance.forceUpdate(); 167 resolve(state); 168 }); 169 }), 170 destroy: function destroy() { 171 cleanupModifierEffects(); 172 isDestroyed = true; 173 } 174 }; 175 176 if (!areValidElements(reference, popper)) { 177 return instance; 178 } 179 180 instance.setOptions(options).then(function (state) { 181 if (!isDestroyed && options.onFirstUpdate) { 182 options.onFirstUpdate(state); 183 } 184 }); // Modifiers have the ability to execute arbitrary code before the first 185 // update cycle runs. They will be executed in the same order as the update 186 // cycle. This is useful when a modifier adds some persistent data that 187 // other modifiers need to use, but the modifier is run after the dependent 188 // one. 189 190 function runModifierEffects() { 191 state.orderedModifiers.forEach(function (_ref) { 192 var name = _ref.name, 193 _ref$options = _ref.options, 194 options = _ref$options === void 0 ? {} : _ref$options, 195 effect = _ref.effect; 196 197 if (typeof effect === 'function') { 198 var cleanupFn = effect({ 199 state: state, 200 name: name, 201 instance: instance, 202 options: options 203 }); 204 205 var noopFn = function noopFn() {}; 206 207 effectCleanupFns.push(cleanupFn || noopFn); 208 } 209 }); 210 } 211 212 function cleanupModifierEffects() { 213 effectCleanupFns.forEach(function (fn) { 214 return fn(); 215 }); 216 effectCleanupFns = []; 217 } 218 219 return instance; 220 }; 221} 222var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules 223 224 225 226/***/ }), 227
vendor: 1,418 bytes, lines 228-265
228/***/ "./node_modules/@popperjs/core/lib/dom-utils/contains.js": 229/*!***************************************************************!*\ 230 !*** ./node_modules/@popperjs/core/lib/dom-utils/contains.js ***! 231 \***************************************************************/ 232/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 233 234"use strict"; 235__webpack_require__.r(__webpack_exports__); 236/* harmony export */ __webpack_require__.d(__webpack_exports__, { 237/* harmony export */ "default": () => (/* binding */ contains) 238/* harmony export */ }); 239/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 240 241function contains(parent, child) { 242 var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method 243 244 if (parent.contains(child)) { 245 return true; 246 } // then fallback to custom implementation with Shadow DOM support 247 else if (rootNode && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(rootNode)) { 248 var next = child; 249 250 do { 251 if (next && parent.isSameNode(next)) { 252 return true; 253 } // $FlowFixMe[prop-missing]: need a better way to handle this... 254 255 256 next = next.parentNode || next.host; 257 } while (next); 258 } // Give up, the result is false 259 260 261 return false; 262} 263 264/***/ }), 265
vendor: 2,806 bytes, lines 266-324
266/***/ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js": 267/*!****************************************************************************!*\ 268 !*** ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js ***! 269 \****************************************************************************/ 270/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 271 272"use strict"; 273__webpack_require__.r(__webpack_exports__); 274/* harmony export */ __webpack_require__.d(__webpack_exports__, { 275/* harmony export */ "default": () => (/* binding */ getBoundingClientRect) 276/* harmony export */ }); 277/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 278/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 279/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 280/* harmony import */ var _isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isLayoutViewport.js */ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js"); 281 282 283 284 285function getBoundingClientRect(element, includeScale, isFixedStrategy) { 286 if (includeScale === void 0) { 287 includeScale = false; 288 } 289 290 if (isFixedStrategy === void 0) { 291 isFixedStrategy = false; 292 } 293 294 var clientRect = element.getBoundingClientRect(); 295 var scaleX = 1; 296 var scaleY = 1; 297 298 if (includeScale && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) { 299 scaleX = element.offsetWidth > 0 ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(clientRect.width) / element.offsetWidth || 1 : 1; 300 scaleY = element.offsetHeight > 0 ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(clientRect.height) / element.offsetHeight || 1 : 1; 301 } 302 303 var _ref = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element) : window, 304 visualViewport = _ref.visualViewport; 305 306 var addVisualOffsets = !(0,_isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__["default"])() && isFixedStrategy; 307 var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; 308 var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; 309 var width = clientRect.width / scaleX; 310 var height = clientRect.height / scaleY; 311 return { 312 width: width, 313 height: height, 314 top: y, 315 right: x + width, 316 bottom: y + height, 317 left: x, 318 x: x, 319 y: y 320 }; 321} 322 323/***/ }), 324
vendor: 6,916 bytes, lines 325-422
325/***/ "./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js": 326/*!**********************************************************************!*\ 327 !*** ./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js ***! 328 \**********************************************************************/ 329/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 330 331"use strict"; 332__webpack_require__.r(__webpack_exports__); 333/* harmony export */ __webpack_require__.d(__webpack_exports__, { 334/* harmony export */ "default": () => (/* binding */ getClippingRect) 335/* harmony export */ }); 336/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 337/* harmony import */ var _getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getViewportRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js"); 338/* harmony import */ var _getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getDocumentRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js"); 339/* harmony import */ var _listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./listScrollParents.js */ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js"); 340/* harmony import */ var _getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js"); 341/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 342/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js"); 343/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 344/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js"); 345/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js"); 346/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./contains.js */ "./node_modules/@popperjs/core/lib/dom-utils/contains.js"); 347/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 348/* harmony import */ var _utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/rectToClientRect.js */ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js"); 349/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365function getInnerBoundingClientRect(element, strategy) { 366 var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element, false, strategy === 'fixed'); 367 rect.top = rect.top + element.clientTop; 368 rect.left = rect.left + element.clientLeft; 369 rect.bottom = rect.top + element.clientHeight; 370 rect.right = rect.left + element.clientWidth; 371 rect.width = element.clientWidth; 372 rect.height = element.clientHeight; 373 rect.x = rect.left; 374 rect.y = rect.top; 375 return rect; 376} 377 378function getClientRectFromMixedType(element, clippingParent, strategy) { 379 return clippingParent === _enums_js__WEBPACK_IMPORTED_MODULE_1__.viewport ? (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element, strategy)) : (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__["default"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(element))); 380} // A "clipping parent" is an overflowable container with the characteristic of 381// clipping (or hiding) overflowing elements with a position different from 382// `initial` 383 384 385function getClippingParents(element) { 386 var clippingParents = (0,_listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__["default"])((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_8__["default"])(element)); 387 var canEscapeClipping = ['absolute', 'fixed'].indexOf((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__["default"])(element).position) >= 0; 388 var clipperElement = canEscapeClipping && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isHTMLElement)(element) ? (0,_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__["default"])(element) : element; 389 390 if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clipperElement)) { 391 return []; 392 } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 393 394 395 return clippingParents.filter(function (clippingParent) { 396 return (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clippingParent) && (0,_contains_js__WEBPACK_IMPORTED_MODULE_11__["default"])(clippingParent, clipperElement) && (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_12__["default"])(clippingParent) !== 'body'; 397 }); 398} // Gets the maximum area that the element is visible in due to any number of 399// clipping parents 400 401 402function getClippingRect(element, boundary, rootBoundary, strategy) { 403 var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); 404 var clippingParents = [].concat(mainClippingParents, [rootBoundary]); 405 var firstClippingParent = clippingParents[0]; 406 var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { 407 var rect = getClientRectFromMixedType(element, clippingParent, strategy); 408 accRect.top = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.top, accRect.top); 409 accRect.right = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.right, accRect.right); 410 accRect.bottom = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.bottom, accRect.bottom); 411 accRect.left = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.left, accRect.left); 412 return accRect; 413 }, getClientRectFromMixedType(element, firstClippingParent, strategy)); 414 clippingRect.width = clippingRect.right - clippingRect.left; 415 clippingRect.height = clippingRect.bottom - clippingRect.top; 416 clippingRect.x = clippingRect.left; 417 clippingRect.y = clippingRect.top; 418 return clippingRect; 419} 420 421/***/ }), 422
vendor: 4,352 bytes, lines 423-502
423/***/ "./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js": 424/*!***********************************************************************!*\ 425 !*** ./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js ***! 426 \***********************************************************************/ 427/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 428 429"use strict"; 430__webpack_require__.r(__webpack_exports__); 431/* harmony export */ __webpack_require__.d(__webpack_exports__, { 432/* harmony export */ "default": () => (/* binding */ getCompositeRect) 433/* harmony export */ }); 434/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js"); 435/* harmony import */ var _getNodeScroll_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getNodeScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js"); 436/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 437/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 438/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js"); 439/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 440/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js"); 441/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 442 443 444 445 446 447 448 449 450 451function isElementScaled(element) { 452 var rect = element.getBoundingClientRect(); 453 var scaleX = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(rect.width) / element.offsetWidth || 1; 454 var scaleY = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(rect.height) / element.offsetHeight || 1; 455 return scaleX !== 1 || scaleY !== 1; 456} // Returns the composite rect of an element relative to its offsetParent. 457// Composite means it takes into account transforms as well as layout. 458 459 460function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { 461 if (isFixed === void 0) { 462 isFixed = false; 463 } 464 465 var isOffsetParentAnElement = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent); 466 var offsetParentIsScaled = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent) && isElementScaled(offsetParent); 467 var documentElement = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(offsetParent); 468 var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(elementOrVirtualElement, offsetParentIsScaled, isFixed); 469 var scroll = { 470 scrollLeft: 0, 471 scrollTop: 0 472 }; 473 var offsets = { 474 x: 0, 475 y: 0 476 }; 477 478 if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { 479 if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 480 (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_5__["default"])(documentElement)) { 481 scroll = (0,_getNodeScroll_js__WEBPACK_IMPORTED_MODULE_6__["default"])(offsetParent); 482 } 483 484 if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent)) { 485 offsets = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(offsetParent, true); 486 offsets.x += offsetParent.clientLeft; 487 offsets.y += offsetParent.clientTop; 488 } else if (documentElement) { 489 offsets.x = (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_7__["default"])(documentElement); 490 } 491 } 492 493 return { 494 x: rect.left + scroll.scrollLeft - offsets.x, 495 y: rect.top + scroll.scrollTop - offsets.y, 496 width: rect.width, 497 height: rect.height 498 }; 499} 500 501/***/ }), 502
vendor: 934 bytes, lines 503-521
503/***/ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js": 504/*!***********************************************************************!*\ 505 !*** ./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js ***! 506 \***********************************************************************/ 507/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 508 509"use strict"; 510__webpack_require__.r(__webpack_exports__); 511/* harmony export */ __webpack_require__.d(__webpack_exports__, { 512/* harmony export */ "default": () => (/* binding */ getComputedStyle) 513/* harmony export */ }); 514/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 515 516function getComputedStyle(element) { 517 return (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element).getComputedStyle(element); 518} 519 520/***/ }), 521
vendor: 1,105 bytes, lines 522-542
522/***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js": 523/*!*************************************************************************!*\ 524 !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js ***! 525 \*************************************************************************/ 526/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 527 528"use strict"; 529__webpack_require__.r(__webpack_exports__); 530/* harmony export */ __webpack_require__.d(__webpack_exports__, { 531/* harmony export */ "default": () => (/* binding */ getDocumentElement) 532/* harmony export */ }); 533/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 534 535function getDocumentElement(element) { 536 // $FlowFixMe[incompatible-return]: assume body is always available 537 return (((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] 538 element.document) || window.document).documentElement; 539} 540 541/***/ }), 542
vendor: 2,858 bytes, lines 543-590
543/***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js": 544/*!**********************************************************************!*\ 545 !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js ***! 546 \**********************************************************************/ 547/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 548 549"use strict"; 550__webpack_require__.r(__webpack_exports__); 551/* harmony export */ __webpack_require__.d(__webpack_exports__, { 552/* harmony export */ "default": () => (/* binding */ getDocumentRect) 553/* harmony export */ }); 554/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 555/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js"); 556/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js"); 557/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js"); 558/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 559 560 561 562 563 // Gets the entire size of the scrollable document area, even extending outside 564// of the `<html>` and `<body>` rect bounds if horizontally scrollable 565 566function getDocumentRect(element) { 567 var _element$ownerDocumen; 568 569 var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); 570 var winScroll = (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element); 571 var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; 572 var width = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); 573 var height = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); 574 var x = -winScroll.scrollLeft + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element); 575 var y = -winScroll.scrollTop; 576 577 if ((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__["default"])(body || html).direction === 'rtl') { 578 x += (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.clientWidth, body ? body.clientWidth : 0) - width; 579 } 580 581 return { 582 width: width, 583 height: height, 584 x: x, 585 y: y 586 }; 587} 588 589/***/ }), 590
vendor: 766 bytes, lines 591-610
591/***/ "./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js": 592/*!***************************************************************************!*\ 593 !*** ./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js ***! 594 \***************************************************************************/ 595/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 596 597"use strict"; 598__webpack_require__.r(__webpack_exports__); 599/* harmony export */ __webpack_require__.d(__webpack_exports__, { 600/* harmony export */ "default": () => (/* binding */ getHTMLElementScroll) 601/* harmony export */ }); 602function getHTMLElementScroll(element) { 603 return { 604 scrollLeft: element.scrollLeft, 605 scrollTop: element.scrollTop 606 }; 607} 608 609/***/ }), 610
vendor: 1,550 bytes, lines 611-650
611/***/ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js": 612/*!********************************************************************!*\ 613 !*** ./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js ***! 614 \********************************************************************/ 615/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 616 617"use strict"; 618__webpack_require__.r(__webpack_exports__); 619/* harmony export */ __webpack_require__.d(__webpack_exports__, { 620/* harmony export */ "default": () => (/* binding */ getLayoutRect) 621/* harmony export */ }); 622/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js"); 623 // Returns the layout rect of an element relative to its offsetParent. Layout 624// means it doesn't take into account transforms. 625 626function getLayoutRect(element) { 627 var clientRect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); // Use the clientRect sizes if it's not been transformed. 628 // Fixes https://github.com/popperjs/popper-core/issues/1223 629 630 var width = element.offsetWidth; 631 var height = element.offsetHeight; 632 633 if (Math.abs(clientRect.width - width) <= 1) { 634 width = clientRect.width; 635 } 636 637 if (Math.abs(clientRect.height - height) <= 1) { 638 height = clientRect.height; 639 } 640 641 return { 642 x: element.offsetLeft, 643 y: element.offsetTop, 644 width: width, 645 height: height 646 }; 647} 648 649/***/ }), 650
vendor: 693 bytes, lines 651-667
651/***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js": 652/*!******************************************************************!*\ 653 !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js ***! 654 \******************************************************************/ 655/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 656 657"use strict"; 658__webpack_require__.r(__webpack_exports__); 659/* harmony export */ __webpack_require__.d(__webpack_exports__, { 660/* harmony export */ "default": () => (/* binding */ getNodeName) 661/* harmony export */ }); 662function getNodeName(element) { 663 return element ? (element.nodeName || '').toLowerCase() : null; 664} 665 666/***/ }), 667
vendor: 1,724 bytes, lines 668-696
668/***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js": 669/*!********************************************************************!*\ 670 !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js ***! 671 \********************************************************************/ 672/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 673 674"use strict"; 675__webpack_require__.r(__webpack_exports__); 676/* harmony export */ __webpack_require__.d(__webpack_exports__, { 677/* harmony export */ "default": () => (/* binding */ getNodeScroll) 678/* harmony export */ }); 679/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js"); 680/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 681/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 682/* harmony import */ var _getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getHTMLElementScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js"); 683 684 685 686 687function getNodeScroll(node) { 688 if (node === (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node) || !(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node)) { 689 return (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__["default"])(node); 690 } else { 691 return (0,_getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__["default"])(node); 692 } 693} 694 695/***/ }), 696
vendor: 4,972 bytes, lines 697-786
697/***/ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js": 698/*!**********************************************************************!*\ 699 !*** ./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js ***! 700 \**********************************************************************/ 701/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 702 703"use strict"; 704__webpack_require__.r(__webpack_exports__); 705/* harmony export */ __webpack_require__.d(__webpack_exports__, { 706/* harmony export */ "default": () => (/* binding */ getOffsetParent) 707/* harmony export */ }); 708/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 709/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 710/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js"); 711/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 712/* harmony import */ var _isTableElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isTableElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js"); 713/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js"); 714/* harmony import */ var _utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/userAgent.js */ "./node_modules/@popperjs/core/lib/utils/userAgent.js"); 715 716 717 718 719 720 721 722 723function getTrueOffsetParent(element) { 724 if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || // https://github.com/popperjs/popper-core/issues/837 725 (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element).position === 'fixed') { 726 return null; 727 } 728 729 return element.offsetParent; 730} // `.offsetParent` reports `null` for fixed elements, while absolute elements 731// return the containing block 732 733 734function getContainingBlock(element) { 735 var isFirefox = /firefox/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__["default"])()); 736 var isIE = /Trident/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__["default"])()); 737 738 if (isIE && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) { 739 // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport 740 var elementCss = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element); 741 742 if (elementCss.position === 'fixed') { 743 return null; 744 } 745 } 746 747 var currentNode = (0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element); 748 749 if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(currentNode)) { 750 currentNode = currentNode.host; 751 } 752 753 while ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(currentNode) && ['html', 'body'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(currentNode)) < 0) { 754 var css = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(currentNode); // This is non-exhaustive but covers the most common CSS properties that 755 // create a containing block. 756 // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block 757 758 if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { 759 return currentNode; 760 } else { 761 currentNode = currentNode.parentNode; 762 } 763 } 764 765 return null; 766} // Gets the closest ancestor positioned element. Handles some edge cases, 767// such as table ancestors and cross browser bugs. 768 769 770function getOffsetParent(element) { 771 var window = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_5__["default"])(element); 772 var offsetParent = getTrueOffsetParent(element); 773 774 while (offsetParent && (0,_isTableElement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(offsetParent) && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(offsetParent).position === 'static') { 775 offsetParent = getTrueOffsetParent(offsetParent); 776 } 777 778 if (offsetParent && ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent) === 'html' || (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent) === 'body' && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(offsetParent).position === 'static')) { 779 return window; 780 } 781 782 return offsetParent || getContainingBlock(element) || window; 783} 784 785/***/ }), 786
vendor: 1,900 bytes, lines 787-822
787/***/ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js": 788/*!********************************************************************!*\ 789 !*** ./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js ***! 790 \********************************************************************/ 791/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 792 793"use strict"; 794__webpack_require__.r(__webpack_exports__); 795/* harmony export */ __webpack_require__.d(__webpack_exports__, { 796/* harmony export */ "default": () => (/* binding */ getParentNode) 797/* harmony export */ }); 798/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 799/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 800/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 801 802 803 804function getParentNode(element) { 805 if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element) === 'html') { 806 return element; 807 } 808 809 return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle 810 // $FlowFixMe[incompatible-return] 811 // $FlowFixMe[prop-missing] 812 element.assignedSlot || // step into the shadow DOM of the parent of a slotted node 813 element.parentNode || ( // DOM Element detected 814 (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isShadowRoot)(element) ? element.host : null) || // ShadowRoot detected 815 // $FlowFixMe[incompatible-call]: HTMLElement is a Node 816 (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element) // fallback 817 818 ); 819} 820 821/***/ }), 822
vendor: 1,878 bytes, lines 823-856
823/***/ "./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js": 824/*!**********************************************************************!*\ 825 !*** ./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js ***! 826 \**********************************************************************/ 827/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 828 829"use strict"; 830__webpack_require__.r(__webpack_exports__); 831/* harmony export */ __webpack_require__.d(__webpack_exports__, { 832/* harmony export */ "default": () => (/* binding */ getScrollParent) 833/* harmony export */ }); 834/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js"); 835/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js"); 836/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 837/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 838 839 840 841 842function getScrollParent(node) { 843 if (['html', 'body', '#document'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node)) >= 0) { 844 // $FlowFixMe[incompatible-return]: assume body is always available 845 return node.ownerDocument.body; 846 } 847 848 if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node) && (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(node)) { 849 return node; 850 } 851 852 return getScrollParent((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__["default"])(node)); 853} 854 855/***/ }), 856
vendor: 2,234 bytes, lines 857-905
857/***/ "./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js": 858/*!**********************************************************************!*\ 859 !*** ./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js ***! 860 \**********************************************************************/ 861/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 862 863"use strict"; 864__webpack_require__.r(__webpack_exports__); 865/* harmony export */ __webpack_require__.d(__webpack_exports__, { 866/* harmony export */ "default": () => (/* binding */ getViewportRect) 867/* harmony export */ }); 868/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 869/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 870/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js"); 871/* harmony import */ var _isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isLayoutViewport.js */ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js"); 872 873 874 875 876function getViewportRect(element, strategy) { 877 var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); 878 var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element); 879 var visualViewport = win.visualViewport; 880 var width = html.clientWidth; 881 var height = html.clientHeight; 882 var x = 0; 883 var y = 0; 884 885 if (visualViewport) { 886 width = visualViewport.width; 887 height = visualViewport.height; 888 var layoutViewport = (0,_isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_2__["default"])(); 889 890 if (layoutViewport || !layoutViewport && strategy === 'fixed') { 891 x = visualViewport.offsetLeft; 892 y = visualViewport.offsetTop; 893 } 894 } 895 896 return { 897 width: width, 898 height: height, 899 x: x + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element), 900 y: y 901 }; 902} 903 904/***/ }), 905
vendor: 842 bytes, lines 906-931
906/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js": 907/*!****************************************************************!*\ 908 !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js ***! 909 \****************************************************************/ 910/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 911 912"use strict"; 913__webpack_require__.r(__webpack_exports__); 914/* harmony export */ __webpack_require__.d(__webpack_exports__, { 915/* harmony export */ "default": () => (/* binding */ getWindow) 916/* harmony export */ }); 917function getWindow(node) { 918 if (node == null) { 919 return window; 920 } 921 922 if (node.toString() !== '[object Window]') { 923 var ownerDocument = node.ownerDocument; 924 return ownerDocument ? ownerDocument.defaultView || window : window; 925 } 926 927 return node; 928} 929 930/***/ }), 931
vendor: 1,039 bytes, lines 932-956
932/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js": 933/*!**********************************************************************!*\ 934 !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js ***! 935 \**********************************************************************/ 936/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 937 938"use strict"; 939__webpack_require__.r(__webpack_exports__); 940/* harmony export */ __webpack_require__.d(__webpack_exports__, { 941/* harmony export */ "default": () => (/* binding */ getWindowScroll) 942/* harmony export */ }); 943/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 944 945function getWindowScroll(node) { 946 var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node); 947 var scrollLeft = win.pageXOffset; 948 var scrollTop = win.pageYOffset; 949 return { 950 scrollLeft: scrollLeft, 951 scrollTop: scrollTop 952 }; 953} 954 955/***/ }), 956
vendor: 1,913 bytes, lines 957-986
957/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js": 958/*!**************************************************************************!*\ 959 !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js ***! 960 \**************************************************************************/ 961/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 962 963"use strict"; 964__webpack_require__.r(__webpack_exports__); 965/* harmony export */ __webpack_require__.d(__webpack_exports__, { 966/* harmony export */ "default": () => (/* binding */ getWindowScrollBarX) 967/* harmony export */ }); 968/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js"); 969/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 970/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js"); 971 972 973 974function getWindowScrollBarX(element) { 975 // If <html> has a CSS width greater than the viewport, then this will be 976 // incorrect for RTL. 977 // Popper 1 is broken in this case and never had a bug report so let's assume 978 // it's not an issue. I don't think anyone ever specifies width on <html> 979 // anyway. 980 // Browsers where the left scrollbar doesn't cause an issue report `0` for 981 // this (e.g. Edge 2019, IE11, Safari) 982 return (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)).left + (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element).scrollLeft; 983} 984 985/***/ }), 986
vendor: 1,591 bytes, lines 987-1026
987/***/ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js": 988/*!*****************************************************************!*\ 989 !*** ./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js ***! 990 \*****************************************************************/ 991/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 992 993"use strict"; 994__webpack_require__.r(__webpack_exports__); 995/* harmony export */ __webpack_require__.d(__webpack_exports__, { 996/* harmony export */ "isElement": () => (/* binding */ isElement), 997/* harmony export */ "isHTMLElement": () => (/* binding */ isHTMLElement), 998/* harmony export */ "isShadowRoot": () => (/* binding */ isShadowRoot) 999/* harmony export */ }); 1000/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 1001 1002 1003function isElement(node) { 1004 var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).Element; 1005 return node instanceof OwnElement || node instanceof Element; 1006} 1007 1008function isHTMLElement(node) { 1009 var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).HTMLElement; 1010 return node instanceof OwnElement || node instanceof HTMLElement; 1011} 1012 1013function isShadowRoot(node) { 1014 // IE 11 has no ShadowRoot 1015 if (typeof ShadowRoot === 'undefined') { 1016 return false; 1017 } 1018 1019 var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).ShadowRoot; 1020 return node instanceof OwnElement || node instanceof ShadowRoot; 1021} 1022 1023 1024 1025/***/ }), 1026
vendor: 949 bytes, lines 1027-1045
1027/***/ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js": 1028/*!***********************************************************************!*\ 1029 !*** ./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js ***! 1030 \***********************************************************************/ 1031/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1032 1033"use strict"; 1034__webpack_require__.r(__webpack_exports__); 1035/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1036/* harmony export */ "default": () => (/* binding */ isLayoutViewport) 1037/* harmony export */ }); 1038/* harmony import */ var _utils_userAgent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/userAgent.js */ "./node_modules/@popperjs/core/lib/utils/userAgent.js"); 1039 1040function isLayoutViewport() { 1041 return !/^((?!chrome|android).)*safari/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_0__["default"])()); 1042} 1043 1044/***/ }), 1045
vendor: 1,223 bytes, lines 1046-1070
1046/***/ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js": 1047/*!*********************************************************************!*\ 1048 !*** ./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js ***! 1049 \*********************************************************************/ 1050/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1051 1052"use strict"; 1053__webpack_require__.r(__webpack_exports__); 1054/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1055/* harmony export */ "default": () => (/* binding */ isScrollParent) 1056/* harmony export */ }); 1057/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js"); 1058 1059function isScrollParent(element) { 1060 // Firefox wants us to check `-x` and `-y` variations as well 1061 var _getComputedStyle = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element), 1062 overflow = _getComputedStyle.overflow, 1063 overflowX = _getComputedStyle.overflowX, 1064 overflowY = _getComputedStyle.overflowY; 1065 1066 return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); 1067} 1068 1069/***/ }), 1070
vendor: 940 bytes, lines 1071-1089
1071/***/ "./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js": 1072/*!*********************************************************************!*\ 1073 !*** ./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js ***! 1074 \*********************************************************************/ 1075/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1076 1077"use strict"; 1078__webpack_require__.r(__webpack_exports__); 1079/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1080/* harmony export */ "default": () => (/* binding */ isTableElement) 1081/* harmony export */ }); 1082/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 1083 1084function isTableElement(element) { 1085 return ['table', 'td', 'th'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element)) >= 0; 1086} 1087 1088/***/ }), 1089
vendor: 2,529 bytes, lines 1090-1133
1090/***/ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js": 1091/*!************************************************************************!*\ 1092 !*** ./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js ***! 1093 \************************************************************************/ 1094/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1095 1096"use strict"; 1097__webpack_require__.r(__webpack_exports__); 1098/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1099/* harmony export */ "default": () => (/* binding */ listScrollParents) 1100/* harmony export */ }); 1101/* harmony import */ var _getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js"); 1102/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js"); 1103/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 1104/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js"); 1105 1106 1107 1108 1109/* 1110given a DOM element, return the list of all scroll parents, up the list of ancesors 1111until we get to the top window object. This list is what we attach scroll listeners 1112to, because if any of these parent elements scroll, we'll need to re-calculate the 1113reference element's position. 1114*/ 1115 1116function listScrollParents(element, list) { 1117 var _element$ownerDocumen; 1118 1119 if (list === void 0) { 1120 list = []; 1121 } 1122 1123 var scrollParent = (0,_getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); 1124 var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); 1125 var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scrollParent); 1126 var target = isBody ? [win].concat(win.visualViewport || [], (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(scrollParent) ? scrollParent : []) : scrollParent; 1127 var updatedList = list.concat(target); 1128 return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here 1129 updatedList.concat(listScrollParents((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__["default"])(target))); 1130} 1131 1132/***/ }), 1133
vendor: 3,246 bytes, lines 1134-1201
1134/***/ "./node_modules/@popperjs/core/lib/enums.js": 1135/*!**************************************************!*\ 1136 !*** ./node_modules/@popperjs/core/lib/enums.js ***! 1137 \**************************************************/ 1138/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1139 1140"use strict"; 1141__webpack_require__.r(__webpack_exports__); 1142/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1143/* harmony export */ "afterMain": () => (/* binding */ afterMain), 1144/* harmony export */ "afterRead": () => (/* binding */ afterRead), 1145/* harmony export */ "afterWrite": () => (/* binding */ afterWrite), 1146/* harmony export */ "auto": () => (/* binding */ auto), 1147/* harmony export */ "basePlacements": () => (/* binding */ basePlacements), 1148/* harmony export */ "beforeMain": () => (/* binding */ beforeMain), 1149/* harmony export */ "beforeRead": () => (/* binding */ beforeRead), 1150/* harmony export */ "beforeWrite": () => (/* binding */ beforeWrite), 1151/* harmony export */ "bottom": () => (/* binding */ bottom), 1152/* harmony export */ "clippingParents": () => (/* binding */ clippingParents), 1153/* harmony export */ "end": () => (/* binding */ end), 1154/* harmony export */ "left": () => (/* binding */ left), 1155/* harmony export */ "main": () => (/* binding */ main), 1156/* harmony export */ "modifierPhases": () => (/* binding */ modifierPhases), 1157/* harmony export */ "placements": () => (/* binding */ placements), 1158/* harmony export */ "popper": () => (/* binding */ popper), 1159/* harmony export */ "read": () => (/* binding */ read), 1160/* harmony export */ "reference": () => (/* binding */ reference), 1161/* harmony export */ "right": () => (/* binding */ right), 1162/* harmony export */ "start": () => (/* binding */ start), 1163/* harmony export */ "top": () => (/* binding */ top), 1164/* harmony export */ "variationPlacements": () => (/* binding */ variationPlacements), 1165/* harmony export */ "viewport": () => (/* binding */ viewport), 1166/* harmony export */ "write": () => (/* binding */ write) 1167/* harmony export */ }); 1168var top = 'top'; 1169var bottom = 'bottom'; 1170var right = 'right'; 1171var left = 'left'; 1172var auto = 'auto'; 1173var basePlacements = [top, bottom, right, left]; 1174var start = 'start'; 1175var end = 'end'; 1176var clippingParents = 'clippingParents'; 1177var viewport = 'viewport'; 1178var popper = 'popper'; 1179var reference = 'reference'; 1180var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { 1181 return acc.concat([placement + "-" + start, placement + "-" + end]); 1182}, []); 1183var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { 1184 return acc.concat([placement, placement + "-" + start, placement + "-" + end]); 1185}, []); // modifiers that need to read the DOM 1186 1187var beforeRead = 'beforeRead'; 1188var read = 'read'; 1189var afterRead = 'afterRead'; // pure-logic modifiers 1190 1191var beforeMain = 'beforeMain'; 1192var main = 'main'; 1193var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) 1194 1195var beforeWrite = 'beforeWrite'; 1196var write = 'write'; 1197var afterWrite = 'afterWrite'; 1198var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; 1199 1200/***/ }), 1201
vendor: 6,098 bytes, lines 1202-1266
1202/***/ "./node_modules/@popperjs/core/lib/index.js": 1203/*!**************************************************!*\ 1204 !*** ./node_modules/@popperjs/core/lib/index.js ***! 1205 \**************************************************/ 1206/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1207 1208"use strict"; 1209__webpack_require__.r(__webpack_exports__); 1210/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1211/* harmony export */ "afterMain": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterMain), 1212/* harmony export */ "afterRead": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterRead), 1213/* harmony export */ "afterWrite": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterWrite), 1214/* harmony export */ "applyStyles": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.applyStyles), 1215/* harmony export */ "arrow": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.arrow), 1216/* harmony export */ "auto": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.auto), 1217/* harmony export */ "basePlacements": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements), 1218/* harmony export */ "beforeMain": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeMain), 1219/* harmony export */ "beforeRead": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeRead), 1220/* harmony export */ "beforeWrite": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeWrite), 1221/* harmony export */ "bottom": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom), 1222/* harmony export */ "clippingParents": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.clippingParents), 1223/* harmony export */ "computeStyles": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.computeStyles), 1224/* harmony export */ "createPopper": () => (/* reexport safe */ _popper_js__WEBPACK_IMPORTED_MODULE_4__.createPopper), 1225/* harmony export */ "createPopperBase": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_2__.createPopper), 1226/* harmony export */ "createPopperLite": () => (/* reexport safe */ _popper_lite_js__WEBPACK_IMPORTED_MODULE_5__.createPopper), 1227/* harmony export */ "detectOverflow": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_3__["default"]), 1228/* harmony export */ "end": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.end), 1229/* harmony export */ "eventListeners": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.eventListeners), 1230/* harmony export */ "flip": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.flip), 1231/* harmony export */ "hide": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.hide), 1232/* harmony export */ "left": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.left), 1233/* harmony export */ "main": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.main), 1234/* harmony export */ "modifierPhases": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases), 1235/* harmony export */ "offset": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.offset), 1236/* harmony export */ "placements": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.placements), 1237/* harmony export */ "popper": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper), 1238/* harmony export */ "popperGenerator": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_2__.popperGenerator), 1239/* harmony export */ "popperOffsets": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.popperOffsets), 1240/* harmony export */ "preventOverflow": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.preventOverflow), 1241/* harmony export */ "read": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.read), 1242/* harmony export */ "reference": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.reference), 1243/* harmony export */ "right": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.right), 1244/* harmony export */ "start": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.start), 1245/* harmony export */ "top": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.top), 1246/* harmony export */ "variationPlacements": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements), 1247/* harmony export */ "viewport": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport), 1248/* harmony export */ "write": () => (/* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.write) 1249/* harmony export */ }); 1250/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 1251/* harmony import */ var _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/index.js */ "./node_modules/@popperjs/core/lib/modifiers/index.js"); 1252/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/createPopper.js"); 1253/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 1254/* harmony import */ var _popper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./popper.js */ "./node_modules/@popperjs/core/lib/popper.js"); 1255/* harmony import */ var _popper_lite_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./popper-lite.js */ "./node_modules/@popperjs/core/lib/popper-lite.js"); 1256 1257 // eslint-disable-next-line import/no-unused-modules 1258 1259 // eslint-disable-next-line import/no-unused-modules 1260 1261 // eslint-disable-next-line import/no-unused-modules 1262 1263 1264 1265/***/ }), 1266
vendor: 3,689 bytes, lines 1267-1366
1267/***/ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js": 1268/*!******************************************************************!*\ 1269 !*** ./node_modules/@popperjs/core/lib/modifiers/applyStyles.js ***! 1270 \******************************************************************/ 1271/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1272 1273"use strict"; 1274__webpack_require__.r(__webpack_exports__); 1275/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1276/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 1277/* harmony export */ }); 1278/* harmony import */ var _dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom-utils/getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js"); 1279/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 1280 1281 // This modifier takes the styles prepared by the `computeStyles` modifier 1282// and applies them to the HTMLElements such as popper and arrow 1283 1284function applyStyles(_ref) { 1285 var state = _ref.state; 1286 Object.keys(state.elements).forEach(function (name) { 1287 var style = state.styles[name] || {}; 1288 var attributes = state.attributes[name] || {}; 1289 var element = state.elements[name]; // arrow is optional + virtual elements 1290 1291 if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)) { 1292 return; 1293 } // Flow doesn't support to extend this property, but it's the most 1294 // effective way to apply styles to an HTMLElement 1295 // $FlowFixMe[cannot-write] 1296 1297 1298 Object.assign(element.style, style); 1299 Object.keys(attributes).forEach(function (name) { 1300 var value = attributes[name]; 1301 1302 if (value === false) { 1303 element.removeAttribute(name); 1304 } else { 1305 element.setAttribute(name, value === true ? '' : value); 1306 } 1307 }); 1308 }); 1309} 1310 1311function effect(_ref2) { 1312 var state = _ref2.state; 1313 var initialStyles = { 1314 popper: { 1315 position: state.options.strategy, 1316 left: '0', 1317 top: '0', 1318 margin: '0' 1319 }, 1320 arrow: { 1321 position: 'absolute' 1322 }, 1323 reference: {} 1324 }; 1325 Object.assign(state.elements.popper.style, initialStyles.popper); 1326 state.styles = initialStyles; 1327 1328 if (state.elements.arrow) { 1329 Object.assign(state.elements.arrow.style, initialStyles.arrow); 1330 } 1331 1332 return function () { 1333 Object.keys(state.elements).forEach(function (name) { 1334 var element = state.elements[name]; 1335 var attributes = state.attributes[name] || {}; 1336 var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them 1337 1338 var style = styleProperties.reduce(function (style, property) { 1339 style[property] = ''; 1340 return style; 1341 }, {}); // arrow is optional + virtual elements 1342 1343 if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)) { 1344 return; 1345 } 1346 1347 Object.assign(element.style, style); 1348 Object.keys(attributes).forEach(function (attribute) { 1349 element.removeAttribute(attribute); 1350 }); 1351 }); 1352 }; 1353} // eslint-disable-next-line import/no-unused-modules 1354 1355 1356/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 1357 name: 'applyStyles', 1358 enabled: true, 1359 phase: 'write', 1360 fn: applyStyles, 1361 effect: effect, 1362 requires: ['computeStyles'] 1363}); 1364 1365/***/ }), 1366
vendor: 5,990 bytes, lines 1367-1479
1367/***/ "./node_modules/@popperjs/core/lib/modifiers/arrow.js": 1368/*!************************************************************!*\ 1369 !*** ./node_modules/@popperjs/core/lib/modifiers/arrow.js ***! 1370 \************************************************************/ 1371/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1372 1373"use strict"; 1374__webpack_require__.r(__webpack_exports__); 1375/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1376/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 1377/* harmony export */ }); 1378/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 1379/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js"); 1380/* harmony import */ var _dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../dom-utils/contains.js */ "./node_modules/@popperjs/core/lib/dom-utils/contains.js"); 1381/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js"); 1382/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js"); 1383/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/within.js */ "./node_modules/@popperjs/core/lib/utils/within.js"); 1384/* harmony import */ var _utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/mergePaddingObject.js */ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js"); 1385/* harmony import */ var _utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/expandToHashMap.js */ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js"); 1386/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 1387 1388 1389 1390 1391 1392 1393 1394 1395 // eslint-disable-next-line import/no-unused-modules 1396 1397var toPaddingObject = function toPaddingObject(padding, state) { 1398 padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, { 1399 placement: state.placement 1400 })) : padding; 1401 return (0,_utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__["default"])(typeof padding !== 'number' ? padding : (0,_utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__["default"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_2__.basePlacements)); 1402}; 1403 1404function arrow(_ref) { 1405 var _state$modifiersData$; 1406 1407 var state = _ref.state, 1408 name = _ref.name, 1409 options = _ref.options; 1410 var arrowElement = state.elements.arrow; 1411 var popperOffsets = state.modifiersData.popperOffsets; 1412 var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(state.placement); 1413 var axis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(basePlacement); 1414 var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_2__.left, _enums_js__WEBPACK_IMPORTED_MODULE_2__.right].indexOf(basePlacement) >= 0; 1415 var len = isVertical ? 'height' : 'width'; 1416 1417 if (!arrowElement || !popperOffsets) { 1418 return; 1419 } 1420 1421 var paddingObject = toPaddingObject(options.padding, state); 1422 var arrowRect = (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__["default"])(arrowElement); 1423 var minProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.top : _enums_js__WEBPACK_IMPORTED_MODULE_2__.left; 1424 var maxProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_2__.right; 1425 var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; 1426 var startDiff = popperOffsets[axis] - state.rects.reference[axis]; 1427 var arrowOffsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__["default"])(arrowElement); 1428 var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; 1429 var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is 1430 // outside of the popper bounds 1431 1432 var min = paddingObject[minProp]; 1433 var max = clientSize - arrowRect[len] - paddingObject[maxProp]; 1434 var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; 1435 var offset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_7__.within)(min, center, max); // Prevents breaking syntax highlighting... 1436 1437 var axisProp = axis; 1438 state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); 1439} 1440 1441function effect(_ref2) { 1442 var state = _ref2.state, 1443 options = _ref2.options; 1444 var _options$element = options.element, 1445 arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element; 1446 1447 if (arrowElement == null) { 1448 return; 1449 } // CSS selector 1450 1451 1452 if (typeof arrowElement === 'string') { 1453 arrowElement = state.elements.popper.querySelector(arrowElement); 1454 1455 if (!arrowElement) { 1456 return; 1457 } 1458 } 1459 1460 if (!(0,_dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_8__["default"])(state.elements.popper, arrowElement)) { 1461 return; 1462 } 1463 1464 state.elements.arrow = arrowElement; 1465} // eslint-disable-next-line import/no-unused-modules 1466 1467 1468/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 1469 name: 'arrow', 1470 enabled: true, 1471 phase: 'main', 1472 fn: arrow, 1473 effect: effect, 1474 requires: ['popperOffsets'], 1475 requiresIfExists: ['preventOverflow'] 1476}); 1477 1478/***/ }), 1479
vendor: 8,491 bytes, lines 1480-1671
1480/***/ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js": 1481/*!********************************************************************!*\ 1482 !*** ./node_modules/@popperjs/core/lib/modifiers/computeStyles.js ***! 1483 \********************************************************************/ 1484/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1485 1486"use strict"; 1487__webpack_require__.r(__webpack_exports__); 1488/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1489/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), 1490/* harmony export */ "mapToStyles": () => (/* binding */ mapToStyles) 1491/* harmony export */ }); 1492/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 1493/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js"); 1494/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 1495/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 1496/* harmony import */ var _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js"); 1497/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 1498/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js"); 1499/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 1500 1501 1502 1503 1504 1505 1506 1507 // eslint-disable-next-line import/no-unused-modules 1508 1509var unsetSides = { 1510 top: 'auto', 1511 right: 'auto', 1512 bottom: 'auto', 1513 left: 'auto' 1514}; // Round the offsets to the nearest suitable subpixel based on the DPR. 1515// Zooming can change the DPR, but it seems to report a value that will 1516// cleanly divide the values into the appropriate subpixels. 1517 1518function roundOffsetsByDPR(_ref, win) { 1519 var x = _ref.x, 1520 y = _ref.y; 1521 var dpr = win.devicePixelRatio || 1; 1522 return { 1523 x: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(x * dpr) / dpr || 0, 1524 y: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(y * dpr) / dpr || 0 1525 }; 1526} 1527 1528function mapToStyles(_ref2) { 1529 var _Object$assign2; 1530 1531 var popper = _ref2.popper, 1532 popperRect = _ref2.popperRect, 1533 placement = _ref2.placement, 1534 variation = _ref2.variation, 1535 offsets = _ref2.offsets, 1536 position = _ref2.position, 1537 gpuAcceleration = _ref2.gpuAcceleration, 1538 adaptive = _ref2.adaptive, 1539 roundOffsets = _ref2.roundOffsets, 1540 isFixed = _ref2.isFixed; 1541 var _offsets$x = offsets.x, 1542 x = _offsets$x === void 0 ? 0 : _offsets$x, 1543 _offsets$y = offsets.y, 1544 y = _offsets$y === void 0 ? 0 : _offsets$y; 1545 1546 var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({ 1547 x: x, 1548 y: y 1549 }) : { 1550 x: x, 1551 y: y 1552 }; 1553 1554 x = _ref3.x; 1555 y = _ref3.y; 1556 var hasX = offsets.hasOwnProperty('x'); 1557 var hasY = offsets.hasOwnProperty('y'); 1558 var sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.left; 1559 var sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.top; 1560 var win = window; 1561 1562 if (adaptive) { 1563 var offsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(popper); 1564 var heightProp = 'clientHeight'; 1565 var widthProp = 'clientWidth'; 1566 1567 if (offsetParent === (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__["default"])(popper)) { 1568 offsetParent = (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(popper); 1569 1570 if ((0,_dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__["default"])(offsetParent).position !== 'static' && position === 'absolute') { 1571 heightProp = 'scrollHeight'; 1572 widthProp = 'scrollWidth'; 1573 } 1574 } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it 1575 1576 1577 offsetParent = offsetParent; 1578 1579 if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.right) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) { 1580 sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom; 1581 var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing] 1582 offsetParent[heightProp]; 1583 y -= offsetY - popperRect.height; 1584 y *= gpuAcceleration ? 1 : -1; 1585 } 1586 1587 if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) { 1588 sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.right; 1589 var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing] 1590 offsetParent[widthProp]; 1591 x -= offsetX - popperRect.width; 1592 x *= gpuAcceleration ? 1 : -1; 1593 } 1594 } 1595 1596 var commonStyles = Object.assign({ 1597 position: position 1598 }, adaptive && unsetSides); 1599 1600 var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ 1601 x: x, 1602 y: y 1603 }, (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__["default"])(popper)) : { 1604 x: x, 1605 y: y 1606 }; 1607 1608 x = _ref4.x; 1609 y = _ref4.y; 1610 1611 if (gpuAcceleration) { 1612 var _Object$assign; 1613 1614 return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); 1615 } 1616 1617 return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); 1618} 1619 1620function computeStyles(_ref5) { 1621 var state = _ref5.state, 1622 options = _ref5.options; 1623 var _options$gpuAccelerat = options.gpuAcceleration, 1624 gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, 1625 _options$adaptive = options.adaptive, 1626 adaptive = _options$adaptive === void 0 ? true : _options$adaptive, 1627 _options$roundOffsets = options.roundOffsets, 1628 roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; 1629 var commonStyles = { 1630 placement: (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state.placement), 1631 variation: (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__["default"])(state.placement), 1632 popper: state.elements.popper, 1633 popperRect: state.rects.popper, 1634 gpuAcceleration: gpuAcceleration, 1635 isFixed: state.options.strategy === 'fixed' 1636 }; 1637 1638 if (state.modifiersData.popperOffsets != null) { 1639 state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { 1640 offsets: state.modifiersData.popperOffsets, 1641 position: state.options.strategy, 1642 adaptive: adaptive, 1643 roundOffsets: roundOffsets 1644 }))); 1645 } 1646 1647 if (state.modifiersData.arrow != null) { 1648 state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { 1649 offsets: state.modifiersData.arrow, 1650 position: 'absolute', 1651 adaptive: false, 1652 roundOffsets: roundOffsets 1653 }))); 1654 } 1655 1656 state.attributes.popper = Object.assign({}, state.attributes.popper, { 1657 'data-popper-placement': state.placement 1658 }); 1659} // eslint-disable-next-line import/no-unused-modules 1660 1661 1662/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 1663 name: 'computeStyles', 1664 enabled: true, 1665 phase: 'beforeWrite', 1666 fn: computeStyles, 1667 data: {} 1668}); 1669 1670/***/ }), 1671
vendor: 2,190 bytes, lines 1672-1735
1672/***/ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js": 1673/*!*********************************************************************!*\ 1674 !*** ./node_modules/@popperjs/core/lib/modifiers/eventListeners.js ***! 1675 \*********************************************************************/ 1676/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1677 1678"use strict"; 1679__webpack_require__.r(__webpack_exports__); 1680/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1681/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 1682/* harmony export */ }); 1683/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js"); 1684 // eslint-disable-next-line import/no-unused-modules 1685 1686var passive = { 1687 passive: true 1688}; 1689 1690function effect(_ref) { 1691 var state = _ref.state, 1692 instance = _ref.instance, 1693 options = _ref.options; 1694 var _options$scroll = options.scroll, 1695 scroll = _options$scroll === void 0 ? true : _options$scroll, 1696 _options$resize = options.resize, 1697 resize = _options$resize === void 0 ? true : _options$resize; 1698 var window = (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(state.elements.popper); 1699 var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); 1700 1701 if (scroll) { 1702 scrollParents.forEach(function (scrollParent) { 1703 scrollParent.addEventListener('scroll', instance.update, passive); 1704 }); 1705 } 1706 1707 if (resize) { 1708 window.addEventListener('resize', instance.update, passive); 1709 } 1710 1711 return function () { 1712 if (scroll) { 1713 scrollParents.forEach(function (scrollParent) { 1714 scrollParent.removeEventListener('scroll', instance.update, passive); 1715 }); 1716 } 1717 1718 if (resize) { 1719 window.removeEventListener('resize', instance.update, passive); 1720 } 1721 }; 1722} // eslint-disable-next-line import/no-unused-modules 1723 1724 1725/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 1726 name: 'eventListeners', 1727 enabled: true, 1728 phase: 'write', 1729 fn: function fn() {}, 1730 effect: effect, 1731 data: {} 1732}); 1733 1734/***/ }), 1735
vendor: 7,538 bytes, lines 1736-1903
1736/***/ "./node_modules/@popperjs/core/lib/modifiers/flip.js": 1737/*!***********************************************************!*\ 1738 !*** ./node_modules/@popperjs/core/lib/modifiers/flip.js ***! 1739 \***********************************************************/ 1740/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1741 1742"use strict"; 1743__webpack_require__.r(__webpack_exports__); 1744/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1745/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 1746/* harmony export */ }); 1747/* harmony import */ var _utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getOppositePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js"); 1748/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 1749/* harmony import */ var _utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getOppositeVariationPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js"); 1750/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 1751/* harmony import */ var _utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/computeAutoPlacement.js */ "./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js"); 1752/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 1753/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js"); 1754 1755 1756 1757 1758 1759 1760 // eslint-disable-next-line import/no-unused-modules 1761 1762function getExpandedFallbackPlacements(placement) { 1763 if ((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto) { 1764 return []; 1765 } 1766 1767 var oppositePlacement = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(placement); 1768 return [(0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(placement), oppositePlacement, (0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(oppositePlacement)]; 1769} 1770 1771function flip(_ref) { 1772 var state = _ref.state, 1773 options = _ref.options, 1774 name = _ref.name; 1775 1776 if (state.modifiersData[name]._skip) { 1777 return; 1778 } 1779 1780 var _options$mainAxis = options.mainAxis, 1781 checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, 1782 _options$altAxis = options.altAxis, 1783 checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, 1784 specifiedFallbackPlacements = options.fallbackPlacements, 1785 padding = options.padding, 1786 boundary = options.boundary, 1787 rootBoundary = options.rootBoundary, 1788 altBoundary = options.altBoundary, 1789 _options$flipVariatio = options.flipVariations, 1790 flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, 1791 allowedAutoPlacements = options.allowedAutoPlacements; 1792 var preferredPlacement = state.options.placement; 1793 var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(preferredPlacement); 1794 var isBasePlacement = basePlacement === preferredPlacement; 1795 var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [(0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); 1796 var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) { 1797 return acc.concat((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto ? (0,_utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(state, { 1798 placement: placement, 1799 boundary: boundary, 1800 rootBoundary: rootBoundary, 1801 padding: padding, 1802 flipVariations: flipVariations, 1803 allowedAutoPlacements: allowedAutoPlacements 1804 }) : placement); 1805 }, []); 1806 var referenceRect = state.rects.reference; 1807 var popperRect = state.rects.popper; 1808 var checksMap = new Map(); 1809 var makeFallbackChecks = true; 1810 var firstFittingPlacement = placements[0]; 1811 1812 for (var i = 0; i < placements.length; i++) { 1813 var placement = placements[i]; 1814 1815 var _basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement); 1816 1817 var isStartVariation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.start; 1818 var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_1__.top, _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom].indexOf(_basePlacement) >= 0; 1819 var len = isVertical ? 'width' : 'height'; 1820 var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state, { 1821 placement: placement, 1822 boundary: boundary, 1823 rootBoundary: rootBoundary, 1824 altBoundary: altBoundary, 1825 padding: padding 1826 }); 1827 var mainVariationSide = isVertical ? isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.right : _enums_js__WEBPACK_IMPORTED_MODULE_1__.left : isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_1__.top; 1828 1829 if (referenceRect[len] > popperRect[len]) { 1830 mainVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(mainVariationSide); 1831 } 1832 1833 var altVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(mainVariationSide); 1834 var checks = []; 1835 1836 if (checkMainAxis) { 1837 checks.push(overflow[_basePlacement] <= 0); 1838 } 1839 1840 if (checkAltAxis) { 1841 checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); 1842 } 1843 1844 if (checks.every(function (check) { 1845 return check; 1846 })) { 1847 firstFittingPlacement = placement; 1848 makeFallbackChecks = false; 1849 break; 1850 } 1851 1852 checksMap.set(placement, checks); 1853 } 1854 1855 if (makeFallbackChecks) { 1856 // `2` may be desired in some cases â research later 1857 var numberOfChecks = flipVariations ? 3 : 1; 1858 1859 var _loop = function _loop(_i) { 1860 var fittingPlacement = placements.find(function (placement) { 1861 var checks = checksMap.get(placement); 1862 1863 if (checks) { 1864 return checks.slice(0, _i).every(function (check) { 1865 return check; 1866 }); 1867 } 1868 }); 1869 1870 if (fittingPlacement) { 1871 firstFittingPlacement = fittingPlacement; 1872 return "break"; 1873 } 1874 }; 1875 1876 for (var _i = numberOfChecks; _i > 0; _i--) { 1877 var _ret = _loop(_i); 1878 1879 if (_ret === "break") break; 1880 } 1881 } 1882 1883 if (state.placement !== firstFittingPlacement) { 1884 state.modifiersData[name]._skip = true; 1885 state.placement = firstFittingPlacement; 1886 state.reset = true; 1887 } 1888} // eslint-disable-next-line import/no-unused-modules 1889 1890 1891/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 1892 name: 'flip', 1893 enabled: true, 1894 phase: 'main', 1895 fn: flip, 1896 requiresIfExists: ['offset'], 1897 data: { 1898 _skip: false 1899 } 1900}); 1901 1902/***/ }), 1903
vendor: 3,074 bytes, lines 1904-1980
1904/***/ "./node_modules/@popperjs/core/lib/modifiers/hide.js": 1905/*!***********************************************************!*\ 1906 !*** ./node_modules/@popperjs/core/lib/modifiers/hide.js ***! 1907 \***********************************************************/ 1908/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1909 1910"use strict"; 1911__webpack_require__.r(__webpack_exports__); 1912/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1913/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 1914/* harmony export */ }); 1915/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 1916/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 1917 1918 1919 1920function getSideOffsets(overflow, rect, preventedOffsets) { 1921 if (preventedOffsets === void 0) { 1922 preventedOffsets = { 1923 x: 0, 1924 y: 0 1925 }; 1926 } 1927 1928 return { 1929 top: overflow.top - rect.height - preventedOffsets.y, 1930 right: overflow.right - rect.width + preventedOffsets.x, 1931 bottom: overflow.bottom - rect.height + preventedOffsets.y, 1932 left: overflow.left - rect.width - preventedOffsets.x 1933 }; 1934} 1935 1936function isAnySideFullyClipped(overflow) { 1937 return [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom, _enums_js__WEBPACK_IMPORTED_MODULE_0__.left].some(function (side) { 1938 return overflow[side] >= 0; 1939 }); 1940} 1941 1942function hide(_ref) { 1943 var state = _ref.state, 1944 name = _ref.name; 1945 var referenceRect = state.rects.reference; 1946 var popperRect = state.rects.popper; 1947 var preventedOffsets = state.modifiersData.preventOverflow; 1948 var referenceOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state, { 1949 elementContext: 'reference' 1950 }); 1951 var popperAltOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state, { 1952 altBoundary: true 1953 }); 1954 var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); 1955 var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); 1956 var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); 1957 var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); 1958 state.modifiersData[name] = { 1959 referenceClippingOffsets: referenceClippingOffsets, 1960 popperEscapeOffsets: popperEscapeOffsets, 1961 isReferenceHidden: isReferenceHidden, 1962 hasPopperEscaped: hasPopperEscaped 1963 }; 1964 state.attributes.popper = Object.assign({}, state.attributes.popper, { 1965 'data-popper-reference-hidden': isReferenceHidden, 1966 'data-popper-escaped': hasPopperEscaped 1967 }); 1968} // eslint-disable-next-line import/no-unused-modules 1969 1970 1971/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 1972 name: 'hide', 1973 enabled: true, 1974 phase: 'main', 1975 requiresIfExists: ['preventOverflow'], 1976 fn: hide 1977}); 1978 1979/***/ }), 1980
vendor: 3,157 bytes, lines 1981-2020
1981/***/ "./node_modules/@popperjs/core/lib/modifiers/index.js": 1982/*!************************************************************!*\ 1983 !*** ./node_modules/@popperjs/core/lib/modifiers/index.js ***! 1984 \************************************************************/ 1985/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 1986 1987"use strict"; 1988__webpack_require__.r(__webpack_exports__); 1989/* harmony export */ __webpack_require__.d(__webpack_exports__, { 1990/* harmony export */ "applyStyles": () => (/* reexport safe */ _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__["default"]), 1991/* harmony export */ "arrow": () => (/* reexport safe */ _arrow_js__WEBPACK_IMPORTED_MODULE_1__["default"]), 1992/* harmony export */ "computeStyles": () => (/* reexport safe */ _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"]), 1993/* harmony export */ "eventListeners": () => (/* reexport safe */ _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__["default"]), 1994/* harmony export */ "flip": () => (/* reexport safe */ _flip_js__WEBPACK_IMPORTED_MODULE_4__["default"]), 1995/* harmony export */ "hide": () => (/* reexport safe */ _hide_js__WEBPACK_IMPORTED_MODULE_5__["default"]), 1996/* harmony export */ "offset": () => (/* reexport safe */ _offset_js__WEBPACK_IMPORTED_MODULE_6__["default"]), 1997/* harmony export */ "popperOffsets": () => (/* reexport safe */ _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__["default"]), 1998/* harmony export */ "preventOverflow": () => (/* reexport safe */ _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__["default"]) 1999/* harmony export */ }); 2000/* harmony import */ var _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js"); 2001/* harmony import */ var _arrow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./arrow.js */ "./node_modules/@popperjs/core/lib/modifiers/arrow.js"); 2002/* harmony import */ var _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js"); 2003/* harmony import */ var _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js"); 2004/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./flip.js */ "./node_modules/@popperjs/core/lib/modifiers/flip.js"); 2005/* harmony import */ var _hide_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hide.js */ "./node_modules/@popperjs/core/lib/modifiers/hide.js"); 2006/* harmony import */ var _offset_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./offset.js */ "./node_modules/@popperjs/core/lib/modifiers/offset.js"); 2007/* harmony import */ var _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js"); 2008/* harmony import */ var _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./preventOverflow.js */ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js"); 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019/***/ }), 2020
vendor: 2,814 bytes, lines 2021-2091
2021/***/ "./node_modules/@popperjs/core/lib/modifiers/offset.js": 2022/*!*************************************************************!*\ 2023 !*** ./node_modules/@popperjs/core/lib/modifiers/offset.js ***! 2024 \*************************************************************/ 2025/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2026 2027"use strict"; 2028__webpack_require__.r(__webpack_exports__); 2029/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2030/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), 2031/* harmony export */ "distanceAndSkiddingToXY": () => (/* binding */ distanceAndSkiddingToXY) 2032/* harmony export */ }); 2033/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 2034/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2035 2036 // eslint-disable-next-line import/no-unused-modules 2037 2038function distanceAndSkiddingToXY(placement, rects, offset) { 2039 var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement); 2040 var invertDistance = [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.top].indexOf(basePlacement) >= 0 ? -1 : 1; 2041 2042 var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, { 2043 placement: placement 2044 })) : offset, 2045 skidding = _ref[0], 2046 distance = _ref[1]; 2047 2048 skidding = skidding || 0; 2049 distance = (distance || 0) * invertDistance; 2050 return [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.right].indexOf(basePlacement) >= 0 ? { 2051 x: distance, 2052 y: skidding 2053 } : { 2054 x: skidding, 2055 y: distance 2056 }; 2057} 2058 2059function offset(_ref2) { 2060 var state = _ref2.state, 2061 options = _ref2.options, 2062 name = _ref2.name; 2063 var _options$offset = options.offset, 2064 offset = _options$offset === void 0 ? [0, 0] : _options$offset; 2065 var data = _enums_js__WEBPACK_IMPORTED_MODULE_1__.placements.reduce(function (acc, placement) { 2066 acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); 2067 return acc; 2068 }, {}); 2069 var _data$state$placement = data[state.placement], 2070 x = _data$state$placement.x, 2071 y = _data$state$placement.y; 2072 2073 if (state.modifiersData.popperOffsets != null) { 2074 state.modifiersData.popperOffsets.x += x; 2075 state.modifiersData.popperOffsets.y += y; 2076 } 2077 2078 state.modifiersData[name] = data; 2079} // eslint-disable-next-line import/no-unused-modules 2080 2081 2082/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 2083 name: 'offset', 2084 enabled: true, 2085 phase: 'main', 2086 requires: ['popperOffsets'], 2087 fn: offset 2088}); 2089 2090/***/ }), 2091
vendor: 1,555 bytes, lines 2092-2131
2092/***/ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js": 2093/*!********************************************************************!*\ 2094 !*** ./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js ***! 2095 \********************************************************************/ 2096/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2097 2098"use strict"; 2099__webpack_require__.r(__webpack_exports__); 2100/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2101/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 2102/* harmony export */ }); 2103/* harmony import */ var _utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/computeOffsets.js */ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js"); 2104 2105 2106function popperOffsets(_ref) { 2107 var state = _ref.state, 2108 name = _ref.name; 2109 // Offsets are the actual position the popper needs to have to be 2110 // properly positioned near its reference element 2111 // This is the most basic placement, and will be adjusted by 2112 // the modifiers in the next step 2113 state.modifiersData[name] = (0,_utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 2114 reference: state.rects.reference, 2115 element: state.rects.popper, 2116 strategy: 'absolute', 2117 placement: state.placement 2118 }); 2119} // eslint-disable-next-line import/no-unused-modules 2120 2121 2122/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 2123 name: 'popperOffsets', 2124 enabled: true, 2125 phase: 'read', 2126 fn: popperOffsets, 2127 data: {} 2128}); 2129 2130/***/ }), 2131
vendor: 9,904 bytes, lines 2132-2298
2132/***/ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js": 2133/*!**********************************************************************!*\ 2134 !*** ./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js ***! 2135 \**********************************************************************/ 2136/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2137 2138"use strict"; 2139__webpack_require__.r(__webpack_exports__); 2140/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2141/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 2142/* harmony export */ }); 2143/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2144/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 2145/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js"); 2146/* harmony import */ var _utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/getAltAxis.js */ "./node_modules/@popperjs/core/lib/utils/getAltAxis.js"); 2147/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/within.js */ "./node_modules/@popperjs/core/lib/utils/within.js"); 2148/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js"); 2149/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js"); 2150/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 2151/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js"); 2152/* harmony import */ var _utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/getFreshSideObject.js */ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js"); 2153/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166function preventOverflow(_ref) { 2167 var state = _ref.state, 2168 options = _ref.options, 2169 name = _ref.name; 2170 var _options$mainAxis = options.mainAxis, 2171 checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, 2172 _options$altAxis = options.altAxis, 2173 checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, 2174 boundary = options.boundary, 2175 rootBoundary = options.rootBoundary, 2176 altBoundary = options.altBoundary, 2177 padding = options.padding, 2178 _options$tether = options.tether, 2179 tether = _options$tether === void 0 ? true : _options$tether, 2180 _options$tetherOffset = options.tetherOffset, 2181 tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; 2182 var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(state, { 2183 boundary: boundary, 2184 rootBoundary: rootBoundary, 2185 padding: padding, 2186 altBoundary: altBoundary 2187 }); 2188 var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state.placement); 2189 var variation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__["default"])(state.placement); 2190 var isBasePlacement = !variation; 2191 var mainAxis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(basePlacement); 2192 var altAxis = (0,_utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__["default"])(mainAxis); 2193 var popperOffsets = state.modifiersData.popperOffsets; 2194 var referenceRect = state.rects.reference; 2195 var popperRect = state.rects.popper; 2196 var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, { 2197 placement: state.placement 2198 })) : tetherOffset; 2199 var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? { 2200 mainAxis: tetherOffsetValue, 2201 altAxis: tetherOffsetValue 2202 } : Object.assign({ 2203 mainAxis: 0, 2204 altAxis: 0 2205 }, tetherOffsetValue); 2206 var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; 2207 var data = { 2208 x: 0, 2209 y: 0 2210 }; 2211 2212 if (!popperOffsets) { 2213 return; 2214 } 2215 2216 if (checkMainAxis) { 2217 var _offsetModifierState$; 2218 2219 var mainSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left; 2220 var altSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right; 2221 var len = mainAxis === 'y' ? 'height' : 'width'; 2222 var offset = popperOffsets[mainAxis]; 2223 var min = offset + overflow[mainSide]; 2224 var max = offset - overflow[altSide]; 2225 var additive = tether ? -popperRect[len] / 2 : 0; 2226 var minLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? referenceRect[len] : popperRect[len]; 2227 var maxLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go 2228 // outside the reference bounds 2229 2230 var arrowElement = state.elements.arrow; 2231 var arrowRect = tether && arrowElement ? (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__["default"])(arrowElement) : { 2232 width: 0, 2233 height: 0 2234 }; 2235 var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : (0,_utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__["default"])(); 2236 var arrowPaddingMin = arrowPaddingObject[mainSide]; 2237 var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want 2238 // to include its full size in the calculation. If the reference is small 2239 // and near the edge of a boundary, the popper can overflow even if the 2240 // reference is not overflowing as well (e.g. virtual elements with no 2241 // width or height) 2242 2243 var arrowLen = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(0, referenceRect[len], arrowRect[len]); 2244 var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; 2245 var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; 2246 var arrowOffsetParent = state.elements.arrow && (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__["default"])(state.elements.arrow); 2247 var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; 2248 var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; 2249 var tetherMin = offset + minOffset - offsetModifierValue - clientOffset; 2250 var tetherMax = offset + maxOffset - offsetModifierValue; 2251 var preventedOffset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.min)(min, tetherMin) : min, offset, tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.max)(max, tetherMax) : max); 2252 popperOffsets[mainAxis] = preventedOffset; 2253 data[mainAxis] = preventedOffset - offset; 2254 } 2255 2256 if (checkAltAxis) { 2257 var _offsetModifierState$2; 2258 2259 var _mainSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left; 2260 2261 var _altSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right; 2262 2263 var _offset = popperOffsets[altAxis]; 2264 2265 var _len = altAxis === 'y' ? 'height' : 'width'; 2266 2267 var _min = _offset + overflow[_mainSide]; 2268 2269 var _max = _offset - overflow[_altSide]; 2270 2271 var isOriginSide = [_enums_js__WEBPACK_IMPORTED_MODULE_5__.top, _enums_js__WEBPACK_IMPORTED_MODULE_5__.left].indexOf(basePlacement) !== -1; 2272 2273 var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; 2274 2275 var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; 2276 2277 var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; 2278 2279 var _preventedOffset = tether && isOriginSide ? (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.withinMaxClamp)(_tetherMin, _offset, _tetherMax) : (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); 2280 2281 popperOffsets[altAxis] = _preventedOffset; 2282 data[altAxis] = _preventedOffset - _offset; 2283 } 2284 2285 state.modifiersData[name] = data; 2286} // eslint-disable-next-line import/no-unused-modules 2287 2288 2289/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ 2290 name: 'preventOverflow', 2291 enabled: true, 2292 phase: 'main', 2293 fn: preventOverflow, 2294 requiresIfExists: ['offset'] 2295}); 2296 2297/***/ }), 2298
vendor: 2,572 bytes, lines 2299-2332
2299/***/ "./node_modules/@popperjs/core/lib/popper-lite.js": 2300/*!********************************************************!*\ 2301 !*** ./node_modules/@popperjs/core/lib/popper-lite.js ***! 2302 \********************************************************/ 2303/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2304 2305"use strict"; 2306__webpack_require__.r(__webpack_exports__); 2307/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2308/* harmony export */ "createPopper": () => (/* binding */ createPopper), 2309/* harmony export */ "defaultModifiers": () => (/* binding */ defaultModifiers), 2310/* harmony export */ "detectOverflow": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_5__["default"]), 2311/* harmony export */ "popperGenerator": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator) 2312/* harmony export */ }); 2313/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/createPopper.js"); 2314/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 2315/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js"); 2316/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js"); 2317/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js"); 2318/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js"); 2319 2320 2321 2322 2323 2324var defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__["default"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__["default"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__["default"]]; 2325var createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator)({ 2326 defaultModifiers: defaultModifiers 2327}); // eslint-disable-next-line import/no-unused-modules 2328 2329 2330 2331/***/ }), 2332
vendor: 5,531 bytes, lines 2333-2392
2333/***/ "./node_modules/@popperjs/core/lib/popper.js": 2334/*!***************************************************!*\ 2335 !*** ./node_modules/@popperjs/core/lib/popper.js ***! 2336 \***************************************************/ 2337/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2338 2339"use strict"; 2340__webpack_require__.r(__webpack_exports__); 2341/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2342/* harmony export */ "applyStyles": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.applyStyles), 2343/* harmony export */ "arrow": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.arrow), 2344/* harmony export */ "computeStyles": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.computeStyles), 2345/* harmony export */ "createPopper": () => (/* binding */ createPopper), 2346/* harmony export */ "createPopperLite": () => (/* reexport safe */ _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__.createPopper), 2347/* harmony export */ "defaultModifiers": () => (/* binding */ defaultModifiers), 2348/* harmony export */ "detectOverflow": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_10__["default"]), 2349/* harmony export */ "eventListeners": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.eventListeners), 2350/* harmony export */ "flip": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.flip), 2351/* harmony export */ "hide": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.hide), 2352/* harmony export */ "offset": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.offset), 2353/* harmony export */ "popperGenerator": () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator), 2354/* harmony export */ "popperOffsets": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.popperOffsets), 2355/* harmony export */ "preventOverflow": () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.preventOverflow) 2356/* harmony export */ }); 2357/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/createPopper.js"); 2358/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 2359/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js"); 2360/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js"); 2361/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js"); 2362/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js"); 2363/* harmony import */ var _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modifiers/offset.js */ "./node_modules/@popperjs/core/lib/modifiers/offset.js"); 2364/* harmony import */ var _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modifiers/flip.js */ "./node_modules/@popperjs/core/lib/modifiers/flip.js"); 2365/* harmony import */ var _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modifiers/preventOverflow.js */ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js"); 2366/* harmony import */ var _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modifiers/arrow.js */ "./node_modules/@popperjs/core/lib/modifiers/arrow.js"); 2367/* harmony import */ var _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modifiers/hide.js */ "./node_modules/@popperjs/core/lib/modifiers/hide.js"); 2368/* harmony import */ var _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./popper-lite.js */ "./node_modules/@popperjs/core/lib/popper-lite.js"); 2369/* harmony import */ var _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modifiers/index.js */ "./node_modules/@popperjs/core/lib/modifiers/index.js"); 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380var defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__["default"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__["default"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__["default"], _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__["default"], _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__["default"], _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__["default"], _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__["default"], _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__["default"]]; 2381var createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator)({ 2382 defaultModifiers: defaultModifiers 2383}); // eslint-disable-next-line import/no-unused-modules 2384 2385 // eslint-disable-next-line import/no-unused-modules 2386 2387 // eslint-disable-next-line import/no-unused-modules 2388 2389 2390 2391/***/ }), 2392
vendor: 3,096 bytes, lines 2393-2453
2393/***/ "./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js": 2394/*!***********************************************************************!*\ 2395 !*** ./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js ***! 2396 \***********************************************************************/ 2397/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2398 2399"use strict"; 2400__webpack_require__.r(__webpack_exports__); 2401/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2402/* harmony export */ "default": () => (/* binding */ computeAutoPlacement) 2403/* harmony export */ }); 2404/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js"); 2405/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2406/* harmony import */ var _detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js"); 2407/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 2408 2409 2410 2411 2412function computeAutoPlacement(state, options) { 2413 if (options === void 0) { 2414 options = {}; 2415 } 2416 2417 var _options = options, 2418 placement = _options.placement, 2419 boundary = _options.boundary, 2420 rootBoundary = _options.rootBoundary, 2421 padding = _options.padding, 2422 flipVariations = _options.flipVariations, 2423 _options$allowedAutoP = _options.allowedAutoPlacements, 2424 allowedAutoPlacements = _options$allowedAutoP === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.placements : _options$allowedAutoP; 2425 var variation = (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement); 2426 var placements = variation ? flipVariations ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements : _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements.filter(function (placement) { 2427 return (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement) === variation; 2428 }) : _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements; 2429 var allowedPlacements = placements.filter(function (placement) { 2430 return allowedAutoPlacements.indexOf(placement) >= 0; 2431 }); 2432 2433 if (allowedPlacements.length === 0) { 2434 allowedPlacements = placements; 2435 } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions... 2436 2437 2438 var overflows = allowedPlacements.reduce(function (acc, placement) { 2439 acc[placement] = (0,_detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(state, { 2440 placement: placement, 2441 boundary: boundary, 2442 rootBoundary: rootBoundary, 2443 padding: padding 2444 })[(0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(placement)]; 2445 return acc; 2446 }, {}); 2447 return Object.keys(overflows).sort(function (a, b) { 2448 return overflows[a] - overflows[b]; 2449 }); 2450} 2451 2452/***/ }), 2453
vendor: 3,194 bytes, lines 2454-2541
2454/***/ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js": 2455/*!*****************************************************************!*\ 2456 !*** ./node_modules/@popperjs/core/lib/utils/computeOffsets.js ***! 2457 \*****************************************************************/ 2458/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2459 2460"use strict"; 2461__webpack_require__.r(__webpack_exports__); 2462/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2463/* harmony export */ "default": () => (/* binding */ computeOffsets) 2464/* harmony export */ }); 2465/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js"); 2466/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js"); 2467/* harmony import */ var _getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js"); 2468/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2469 2470 2471 2472 2473function computeOffsets(_ref) { 2474 var reference = _ref.reference, 2475 element = _ref.element, 2476 placement = _ref.placement; 2477 var basePlacement = placement ? (0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) : null; 2478 var variation = placement ? (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement) : null; 2479 var commonX = reference.x + reference.width / 2 - element.width / 2; 2480 var commonY = reference.y + reference.height / 2 - element.height / 2; 2481 var offsets; 2482 2483 switch (basePlacement) { 2484 case _enums_js__WEBPACK_IMPORTED_MODULE_2__.top: 2485 offsets = { 2486 x: commonX, 2487 y: reference.y - element.height 2488 }; 2489 break; 2490 2491 case _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom: 2492 offsets = { 2493 x: commonX, 2494 y: reference.y + reference.height 2495 }; 2496 break; 2497 2498 case _enums_js__WEBPACK_IMPORTED_MODULE_2__.right: 2499 offsets = { 2500 x: reference.x + reference.width, 2501 y: commonY 2502 }; 2503 break; 2504 2505 case _enums_js__WEBPACK_IMPORTED_MODULE_2__.left: 2506 offsets = { 2507 x: reference.x - element.width, 2508 y: commonY 2509 }; 2510 break; 2511 2512 default: 2513 offsets = { 2514 x: reference.x, 2515 y: reference.y 2516 }; 2517 } 2518 2519 var mainAxis = basePlacement ? (0,_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(basePlacement) : null; 2520 2521 if (mainAxis != null) { 2522 var len = mainAxis === 'y' ? 'height' : 'width'; 2523 2524 switch (variation) { 2525 case _enums_js__WEBPACK_IMPORTED_MODULE_2__.start: 2526 offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); 2527 break; 2528 2529 case _enums_js__WEBPACK_IMPORTED_MODULE_2__.end: 2530 offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); 2531 break; 2532 2533 default: 2534 } 2535 } 2536 2537 return offsets; 2538} 2539 2540/***/ }), 2541
vendor: 850 bytes, lines 2542-2570
2542/***/ "./node_modules/@popperjs/core/lib/utils/debounce.js": 2543/*!***********************************************************!*\ 2544 !*** ./node_modules/@popperjs/core/lib/utils/debounce.js ***! 2545 \***********************************************************/ 2546/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2547 2548"use strict"; 2549__webpack_require__.r(__webpack_exports__); 2550/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2551/* harmony export */ "default": () => (/* binding */ debounce) 2552/* harmony export */ }); 2553function debounce(fn) { 2554 var pending; 2555 return function () { 2556 if (!pending) { 2557 pending = new Promise(function (resolve) { 2558 Promise.resolve().then(function () { 2559 pending = undefined; 2560 resolve(fn()); 2561 }); 2562 }); 2563 } 2564 2565 return pending; 2566 }; 2567} 2568 2569/***/ }), 2570
vendor: 6,226 bytes, lines 2571-2658
2571/***/ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js": 2572/*!*****************************************************************!*\ 2573 !*** ./node_modules/@popperjs/core/lib/utils/detectOverflow.js ***! 2574 \*****************************************************************/ 2575/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2576 2577"use strict"; 2578__webpack_require__.r(__webpack_exports__); 2579/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2580/* harmony export */ "default": () => (/* binding */ detectOverflow) 2581/* harmony export */ }); 2582/* harmony import */ var _dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getClippingRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js"); 2583/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js"); 2584/* harmony import */ var _dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js"); 2585/* harmony import */ var _computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./computeOffsets.js */ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js"); 2586/* harmony import */ var _rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./rectToClientRect.js */ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js"); 2587/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2588/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js"); 2589/* harmony import */ var _mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergePaddingObject.js */ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js"); 2590/* harmony import */ var _expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./expandToHashMap.js */ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js"); 2591 2592 2593 2594 2595 2596 2597 2598 2599 // eslint-disable-next-line import/no-unused-modules 2600 2601function detectOverflow(state, options) { 2602 if (options === void 0) { 2603 options = {}; 2604 } 2605 2606 var _options = options, 2607 _options$placement = _options.placement, 2608 placement = _options$placement === void 0 ? state.placement : _options$placement, 2609 _options$strategy = _options.strategy, 2610 strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, 2611 _options$boundary = _options.boundary, 2612 boundary = _options$boundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.clippingParents : _options$boundary, 2613 _options$rootBoundary = _options.rootBoundary, 2614 rootBoundary = _options$rootBoundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport : _options$rootBoundary, 2615 _options$elementConte = _options.elementContext, 2616 elementContext = _options$elementConte === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper : _options$elementConte, 2617 _options$altBoundary = _options.altBoundary, 2618 altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, 2619 _options$padding = _options.padding, 2620 padding = _options$padding === void 0 ? 0 : _options$padding; 2621 var paddingObject = (0,_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__["default"])(typeof padding !== 'number' ? padding : (0,_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__["default"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements)); 2622 var altContext = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.reference : _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper; 2623 var popperRect = state.rects.popper; 2624 var element = state.elements[altBoundary ? altContext : elementContext]; 2625 var clippingClientRect = (0,_dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(element) ? element : element.contextElement || (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__["default"])(state.elements.popper), boundary, rootBoundary, strategy); 2626 var referenceClientRect = (0,_dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state.elements.reference); 2627 var popperOffsets = (0,_computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__["default"])({ 2628 reference: referenceClientRect, 2629 element: popperRect, 2630 strategy: 'absolute', 2631 placement: placement 2632 }); 2633 var popperClientRect = (0,_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__["default"])(Object.assign({}, popperRect, popperOffsets)); 2634 var elementClientRect = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect 2635 // 0 or negative = within the clipping rect 2636 2637 var overflowOffsets = { 2638 top: clippingClientRect.top - elementClientRect.top + paddingObject.top, 2639 bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, 2640 left: clippingClientRect.left - elementClientRect.left + paddingObject.left, 2641 right: elementClientRect.right - clippingClientRect.right + paddingObject.right 2642 }; 2643 var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element 2644 2645 if (elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper && offsetData) { 2646 var offset = offsetData[placement]; 2647 Object.keys(overflowOffsets).forEach(function (key) { 2648 var multiply = [_enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom].indexOf(key) >= 0 ? 1 : -1; 2649 var axis = [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom].indexOf(key) >= 0 ? 'y' : 'x'; 2650 overflowOffsets[key] += offset[axis] * multiply; 2651 }); 2652 } 2653 2654 return overflowOffsets; 2655} 2656 2657/***/ }), 2658
vendor: 742 bytes, lines 2659-2678
2659/***/ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js": 2660/*!******************************************************************!*\ 2661 !*** ./node_modules/@popperjs/core/lib/utils/expandToHashMap.js ***! 2662 \******************************************************************/ 2663/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2664 2665"use strict"; 2666__webpack_require__.r(__webpack_exports__); 2667/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2668/* harmony export */ "default": () => (/* binding */ expandToHashMap) 2669/* harmony export */ }); 2670function expandToHashMap(value, keys) { 2671 return keys.reduce(function (hashMap, key) { 2672 hashMap[key] = value; 2673 return hashMap; 2674 }, {}); 2675} 2676 2677/***/ }), 2678
vendor: 637 bytes, lines 2679-2695
2679/***/ "./node_modules/@popperjs/core/lib/utils/getAltAxis.js": 2680/*!*************************************************************!*\ 2681 !*** ./node_modules/@popperjs/core/lib/utils/getAltAxis.js ***! 2682 \*************************************************************/ 2683/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2684 2685"use strict"; 2686__webpack_require__.r(__webpack_exports__); 2687/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2688/* harmony export */ "default": () => (/* binding */ getAltAxis) 2689/* harmony export */ }); 2690function getAltAxis(axis) { 2691 return axis === 'x' ? 'y' : 'x'; 2692} 2693 2694/***/ }), 2695
vendor: 678 bytes, lines 2696-2713
2696/***/ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js": 2697/*!*******************************************************************!*\ 2698 !*** ./node_modules/@popperjs/core/lib/utils/getBasePlacement.js ***! 2699 \*******************************************************************/ 2700/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2701 2702"use strict"; 2703__webpack_require__.r(__webpack_exports__); 2704/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2705/* harmony export */ "default": () => (/* binding */ getBasePlacement) 2706/* harmony export */ }); 2707 2708function getBasePlacement(placement) { 2709 return placement.split('-')[0]; 2710} 2711 2712/***/ }), 2713
vendor: 715 bytes, lines 2714-2735
2714/***/ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js": 2715/*!*********************************************************************!*\ 2716 !*** ./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js ***! 2717 \*********************************************************************/ 2718/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2719 2720"use strict"; 2721__webpack_require__.r(__webpack_exports__); 2722/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2723/* harmony export */ "default": () => (/* binding */ getFreshSideObject) 2724/* harmony export */ }); 2725function getFreshSideObject() { 2726 return { 2727 top: 0, 2728 right: 0, 2729 bottom: 0, 2730 left: 0 2731 }; 2732} 2733 2734/***/ }), 2735
vendor: 755 bytes, lines 2736-2752
2736/***/ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js": 2737/*!***************************************************************************!*\ 2738 !*** ./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js ***! 2739 \***************************************************************************/ 2740/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2741 2742"use strict"; 2743__webpack_require__.r(__webpack_exports__); 2744/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2745/* harmony export */ "default": () => (/* binding */ getMainAxisFromPlacement) 2746/* harmony export */ }); 2747function getMainAxisFromPlacement(placement) { 2748 return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; 2749} 2750 2751/***/ }), 2752
vendor: 856 bytes, lines 2753-2777
2753/***/ "./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js": 2754/*!***********************************************************************!*\ 2755 !*** ./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js ***! 2756 \***********************************************************************/ 2757/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2758 2759"use strict"; 2760__webpack_require__.r(__webpack_exports__); 2761/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2762/* harmony export */ "default": () => (/* binding */ getOppositePlacement) 2763/* harmony export */ }); 2764var hash = { 2765 left: 'right', 2766 right: 'left', 2767 bottom: 'top', 2768 top: 'bottom' 2769}; 2770function getOppositePlacement(placement) { 2771 return placement.replace(/left|right|bottom|top/g, function (matched) { 2772 return hash[matched]; 2773 }); 2774} 2775 2776/***/ }), 2777
vendor: 862 bytes, lines 2778-2800
2778/***/ "./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js": 2779/*!********************************************************************************!*\ 2780 !*** ./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js ***! 2781 \********************************************************************************/ 2782/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2783 2784"use strict"; 2785__webpack_require__.r(__webpack_exports__); 2786/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2787/* harmony export */ "default": () => (/* binding */ getOppositeVariationPlacement) 2788/* harmony export */ }); 2789var hash = { 2790 start: 'end', 2791 end: 'start' 2792}; 2793function getOppositeVariationPlacement(placement) { 2794 return placement.replace(/start|end/g, function (matched) { 2795 return hash[matched]; 2796 }); 2797} 2798 2799/***/ }), 2800
vendor: 653 bytes, lines 2801-2817
2801/***/ "./node_modules/@popperjs/core/lib/utils/getVariation.js": 2802/*!***************************************************************!*\ 2803 !*** ./node_modules/@popperjs/core/lib/utils/getVariation.js ***! 2804 \***************************************************************/ 2805/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2806 2807"use strict"; 2808__webpack_require__.r(__webpack_exports__); 2809/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2810/* harmony export */ "default": () => (/* binding */ getVariation) 2811/* harmony export */ }); 2812function getVariation(placement) { 2813 return placement.split('-')[1]; 2814} 2815 2816/***/ }), 2817
vendor: 719 bytes, lines 2818-2836
2818/***/ "./node_modules/@popperjs/core/lib/utils/math.js": 2819/*!*******************************************************!*\ 2820 !*** ./node_modules/@popperjs/core/lib/utils/math.js ***! 2821 \*******************************************************/ 2822/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2823 2824"use strict"; 2825__webpack_require__.r(__webpack_exports__); 2826/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2827/* harmony export */ "max": () => (/* binding */ max), 2828/* harmony export */ "min": () => (/* binding */ min), 2829/* harmony export */ "round": () => (/* binding */ round) 2830/* harmony export */ }); 2831var max = Math.max; 2832var min = Math.min; 2833var round = Math.round; 2834 2835/***/ }), 2836
vendor: 1,087 bytes, lines 2837-2864
2837/***/ "./node_modules/@popperjs/core/lib/utils/mergeByName.js": 2838/*!**************************************************************!*\ 2839 !*** ./node_modules/@popperjs/core/lib/utils/mergeByName.js ***! 2840 \**************************************************************/ 2841/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2842 2843"use strict"; 2844__webpack_require__.r(__webpack_exports__); 2845/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2846/* harmony export */ "default": () => (/* binding */ mergeByName) 2847/* harmony export */ }); 2848function mergeByName(modifiers) { 2849 var merged = modifiers.reduce(function (merged, current) { 2850 var existing = merged[current.name]; 2851 merged[current.name] = existing ? Object.assign({}, existing, current, { 2852 options: Object.assign({}, existing.options, current.options), 2853 data: Object.assign({}, existing.data, current.data) 2854 }) : current; 2855 return merged; 2856 }, {}); // IE11 does not support Object.values 2857 2858 return Object.keys(merged).map(function (key) { 2859 return merged[key]; 2860 }); 2861} 2862 2863/***/ }), 2864
vendor: 969 bytes, lines 2865-2883
2865/***/ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js": 2866/*!*********************************************************************!*\ 2867 !*** ./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js ***! 2868 \*********************************************************************/ 2869/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2870 2871"use strict"; 2872__webpack_require__.r(__webpack_exports__); 2873/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2874/* harmony export */ "default": () => (/* binding */ mergePaddingObject) 2875/* harmony export */ }); 2876/* harmony import */ var _getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getFreshSideObject.js */ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js"); 2877 2878function mergePaddingObject(paddingObject) { 2879 return Object.assign({}, (0,_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__["default"])(), paddingObject); 2880} 2881 2882/***/ }), 2883
vendor: 1,964 bytes, lines 2884-2942
2884/***/ "./node_modules/@popperjs/core/lib/utils/orderModifiers.js": 2885/*!*****************************************************************!*\ 2886 !*** ./node_modules/@popperjs/core/lib/utils/orderModifiers.js ***! 2887 \*****************************************************************/ 2888/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2889 2890"use strict"; 2891__webpack_require__.r(__webpack_exports__); 2892/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2893/* harmony export */ "default": () => (/* binding */ orderModifiers) 2894/* harmony export */ }); 2895/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js"); 2896 // source: https://stackoverflow.com/questions/49875255 2897 2898function order(modifiers) { 2899 var map = new Map(); 2900 var visited = new Set(); 2901 var result = []; 2902 modifiers.forEach(function (modifier) { 2903 map.set(modifier.name, modifier); 2904 }); // On visiting object, check for its dependencies and visit them recursively 2905 2906 function sort(modifier) { 2907 visited.add(modifier.name); 2908 var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); 2909 requires.forEach(function (dep) { 2910 if (!visited.has(dep)) { 2911 var depModifier = map.get(dep); 2912 2913 if (depModifier) { 2914 sort(depModifier); 2915 } 2916 } 2917 }); 2918 result.push(modifier); 2919 } 2920 2921 modifiers.forEach(function (modifier) { 2922 if (!visited.has(modifier.name)) { 2923 // check for visited object 2924 sort(modifier); 2925 } 2926 }); 2927 return result; 2928} 2929 2930function orderModifiers(modifiers) { 2931 // order based on dependencies 2932 var orderedModifiers = order(modifiers); // order based on phase 2933 2934 return _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases.reduce(function (acc, phase) { 2935 return acc.concat(orderedModifiers.filter(function (modifier) { 2936 return modifier.phase === phase; 2937 })); 2938 }, []); 2939} 2940 2941/***/ }), 2942
vendor: 779 bytes, lines 2943-2964
2943/***/ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js": 2944/*!*******************************************************************!*\ 2945 !*** ./node_modules/@popperjs/core/lib/utils/rectToClientRect.js ***! 2946 \*******************************************************************/ 2947/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2948 2949"use strict"; 2950__webpack_require__.r(__webpack_exports__); 2951/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2952/* harmony export */ "default": () => (/* binding */ rectToClientRect) 2953/* harmony export */ }); 2954function rectToClientRect(rect) { 2955 return Object.assign({}, rect, { 2956 left: rect.x, 2957 top: rect.y, 2958 right: rect.x + rect.width, 2959 bottom: rect.y + rect.height 2960 }); 2961} 2962 2963/***/ }), 2964
vendor: 856 bytes, lines 2965-2989
2965/***/ "./node_modules/@popperjs/core/lib/utils/userAgent.js": 2966/*!************************************************************!*\ 2967 !*** ./node_modules/@popperjs/core/lib/utils/userAgent.js ***! 2968 \************************************************************/ 2969/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2970 2971"use strict"; 2972__webpack_require__.r(__webpack_exports__); 2973/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2974/* harmony export */ "default": () => (/* binding */ getUAString) 2975/* harmony export */ }); 2976function getUAString() { 2977 var uaData = navigator.userAgentData; 2978 2979 if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) { 2980 return uaData.brands.map(function (item) { 2981 return item.brand + "/" + item.version; 2982 }).join(' '); 2983 } 2984 2985 return navigator.userAgent; 2986} 2987 2988/***/ }), 2989
vendor: 1,050 bytes, lines 2990-3013
2990/***/ "./node_modules/@popperjs/core/lib/utils/within.js": 2991/*!*********************************************************!*\ 2992 !*** ./node_modules/@popperjs/core/lib/utils/within.js ***! 2993 \*********************************************************/ 2994/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 2995 2996"use strict"; 2997__webpack_require__.r(__webpack_exports__); 2998/* harmony export */ __webpack_require__.d(__webpack_exports__, { 2999/* harmony export */ "within": () => (/* binding */ within), 3000/* harmony export */ "withinMaxClamp": () => (/* binding */ withinMaxClamp) 3001/* harmony export */ }); 3002/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/@popperjs/core/lib/utils/math.js"); 3003 3004function within(min, value, max) { 3005 return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.max)(min, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.min)(value, max)); 3006} 3007function withinMaxClamp(min, value, max) { 3008 var v = within(min, value, max); 3009 return v > max ? max : v; 3010} 3011 3012/***/ }), 3013
3014/***/ "./resources/js/layouts/components/_init.js": 3015/*!**************************************************!*\ 3016 !*** ./resources/js/layouts/components/_init.js ***! 3017 \**************************************************/ 3018/***/ ((module) => { 3019 3020// 3021// Global init of core components 3022// 3023 3024// Init components 3025var IpixComponents = function () { 3026 // Public methods 3027 return { 3028 init: function () { 3029 IpixApp.init(); 3030 IpixDrawer.init(); 3031 IpixMenu.init(); 3032 IpixForm.init(); 3033 IpixScroll.init(); 3034 IpixSticky.init(); 3035 IpixSwapper.init(); 3036 IpixToggle.init(); 3037 IpixScrolltop.init(); 3038 IpixDialer.init(); 3039 IpixImageInput.init(); 3040 IpixPasswordMeter.init(); 3041 } 3042 }; 3043}(); 3044 3045// On document ready 3046if (document.readyState === "loading") { 3047 document.addEventListener("DOMContentLoaded", function () { 3048 IpixComponents.init(); 3049 }); 3050} else { 3051 IpixComponents.init(); 3052} 3053 3054// Init page loader 3055window.addEventListener("load", function () { 3056 IpixApp.hidePageLoading(); 3057}); 3058 3059// Declare IpixApp for Webpack support 3060if ( true && typeof module.exports !== 'undefined') { 3061 window.IpixComponents = module.exports = IpixComponents; 3062} 3063 3064/***/ }), 3065
3066/***/ "./resources/js/layouts/components/blockui.js": 3067/*!****************************************************!*\ 3068 !*** ./resources/js/layouts/components/blockui.js ***! 3069 \****************************************************/ 3070/***/ ((module) => { 3071 3072"use strict"; 3073 3074 3075// Class definition 3076var IpixBlockUI = function (element, options) { 3077 ////////////////////////////// 3078 // ** Private variables ** // 3079 ////////////////////////////// 3080 var the = this; 3081 if (typeof element === "undefined" || element === null) { 3082 return; 3083 } 3084 3085 // Default options 3086 var defaultOptions = { 3087 zIndex: false, 3088 overlayClass: '', 3089 overflow: 'hidden', 3090 message: '<span class="spinner-border text-primary"></span>' 3091 }; 3092 3093 //////////////////////////// 3094 // ** Private methods ** // 3095 //////////////////////////// 3096 3097 var _construct = function () { 3098 if (IpixUtil.data(element).has('blockui')) { 3099 the = IpixUtil.data(element).get('blockui'); 3100 } else { 3101 _init(); 3102 } 3103 }; 3104 var _init = function () { 3105 // Variables 3106 the.options = IpixUtil.deepExtend({}, defaultOptions, options); 3107 the.element = element; 3108 the.overlayElement = null; 3109 the.blocked = false; 3110 the.positionChanged = false; 3111 the.overflowChanged = false; 3112 3113 // Bind Instance 3114 IpixUtil.data(the.element).set('blockui', the); 3115 }; 3116 var _block = function () { 3117 if (IpixEventHandler.trigger(the.element, 'kt.blockui.block', the) === false) { 3118 return; 3119 } 3120 var isPage = the.element.tagName === 'BODY'; 3121 var position = IpixUtil.css(the.element, 'position'); 3122 var overflow = IpixUtil.css(the.element, 'overflow'); 3123 var zIndex = isPage ? 10000 : 1; 3124 if (the.options.zIndex > 0) { 3125 zIndex = the.options.zIndex; 3126 } else { 3127 if (IpixUtil.css(the.element, 'z-index') != 'auto') { 3128 zIndex = IpixUtil.css(the.element, 'z-index'); 3129 } 3130 } 3131 the.element.classList.add('blockui'); 3132 if (position === "absolute" || position === "relative" || position === "fixed") { 3133 IpixUtil.css(the.element, 'position', 'relative'); 3134 the.positionChanged = true; 3135 } 3136 if (the.options.overflow === 'hidden' && overflow === 'visible') { 3137 IpixUtil.css(the.element, 'overflow', 'hidden'); 3138 the.overflowChanged = true; 3139 } 3140 the.overlayElement = document.createElement('DIV'); 3141 the.overlayElement.setAttribute('class', 'blockui-overlay ' + the.options.overlayClass); 3142 the.overlayElement.innerHTML = the.options.message; 3143 IpixUtil.css(the.overlayElement, 'z-index', zIndex); 3144 the.element.append(the.overlayElement); 3145 the.blocked = true; 3146 IpixEventHandler.trigger(the.element, 'kt.blockui.after.blocked', the); 3147 }; 3148 var _release = function () { 3149 if (IpixEventHandler.trigger(the.element, 'kt.blockui.release', the) === false) { 3150 return; 3151 } 3152 the.element.classList.add('blockui'); 3153 if (the.positionChanged) { 3154 IpixUtil.css(the.element, 'position', ''); 3155 } 3156 if (the.overflowChanged) { 3157 IpixUtil.css(the.element, 'overflow', ''); 3158 } 3159 if (the.overlayElement) { 3160 IpixUtil.remove(the.overlayElement); 3161 } 3162 the.blocked = false; 3163 IpixEventHandler.trigger(the.element, 'kt.blockui.released', the); 3164 }; 3165 var _isBlocked = function () { 3166 return the.blocked; 3167 }; 3168 var _destroy = function () { 3169 IpixUtil.data(the.element).remove('blockui'); 3170 }; 3171 3172 // Construct class 3173 _construct(); 3174 3175 /////////////////////// 3176 // ** Public API ** // 3177 /////////////////////// 3178 3179 // Plugin API 3180 the.block = function () { 3181 _block(); 3182 }; 3183 the.release = function () { 3184 _release(); 3185 }; 3186 the.isBlocked = function () { 3187 return _isBlocked(); 3188 }; 3189 the.destroy = function () { 3190 return _destroy(); 3191 }; 3192 3193 // Event API 3194 the.on = function (name, handler) { 3195 return IpixEventHandler.on(the.element, name, handler); 3196 }; 3197 the.one = function (name, handler) { 3198 return IpixEventHandler.one(the.element, name, handler); 3199 }; 3200 the.off = function (name, handlerId) { 3201 return IpixEventHandler.off(the.element, name, handlerId); 3202 }; 3203 the.trigger = function (name, event) { 3204 return IpixEventHandler.trigger(the.element, name, event, the, event); 3205 }; 3206}; 3207 3208// Static methods 3209IpixBlockUI.getInstance = function (element) { 3210 if (element !== null && IpixUtil.data(element).has('blockui')) { 3211 return IpixUtil.data(element).get('blockui'); 3212 } else { 3213 return null; 3214 } 3215}; 3216 3217// Webpack support 3218if ( true && typeof module.exports !== 'undefined') { 3219 module.exports = IpixBlockUI; 3220} 3221 3222/***/ }), 3223
3224/***/ "./resources/js/layouts/components/cookie.js": 3225/*!***************************************************!*\ 3226 !*** ./resources/js/layouts/components/cookie.js ***! 3227 \***************************************************/ 3228/***/ ((module) => { 3229 3230"use strict"; 3231 3232 3233// DOCS: https://javascript.info/cookie 3234 3235// Class definition 3236var IpixCookie = function () { 3237 return { 3238 // returns the cookie with the given name, 3239 // or undefined if not found 3240 get: function (name) { 3241 var matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)")); 3242 return matches ? decodeURIComponent(matches[1]) : null; 3243 }, 3244 // Please note that a cookie value is encoded, 3245 // so getCookie uses a built-in decodeURIComponent function to decode it. 3246 set: function (name, value, options) { 3247 if (typeof options === "undefined" || options === null) { 3248 options = {}; 3249 } 3250 options = Object.assign({}, { 3251 path: '/' 3252 }, options); 3253 if (options.expires instanceof Date) { 3254 options.expires = options.expires.toUTCString(); 3255 } 3256 var updatedCookie = encodeURIComponent(name) + "=" + encodeURIComponent(value); 3257 for (var optionKey in options) { 3258 if (options.hasOwnProperty(optionKey) === false) { 3259 continue; 3260 } 3261 updatedCookie += "; " + optionKey; 3262 var optionValue = options[optionKey]; 3263 if (optionValue !== true) { 3264 updatedCookie += "=" + optionValue; 3265 } 3266 } 3267 document.cookie = updatedCookie; 3268 }, 3269 // To remove a cookie, we can call it with a negative expiration date: 3270 remove: function (name) { 3271 this.set(name, "", { 3272 'max-age': -1 3273 }); 3274 } 3275 }; 3276}(); 3277 3278// Webpack support 3279if ( true && typeof module.exports !== 'undefined') { 3280 module.exports = IpixCookie; 3281} 3282 3283/***/ }), 3284
3285/***/ "./resources/js/layouts/components/dialer.js": 3286/*!***************************************************!*\ 3287 !*** ./resources/js/layouts/components/dialer.js ***! 3288 \***************************************************/ 3289/***/ ((module) => { 3290 3291"use strict"; 3292 3293 3294var IpixDrawerHandlersInitialized = false; 3295 3296// Class definition 3297var IpixDrawer = function (element, options) { 3298 ////////////////////////////// 3299 // ** Private variables ** // 3300 ////////////////////////////// 3301 var the = this; 3302 if (typeof element === "undefined" || element === null) { 3303 return; 3304 } 3305 3306 // Default options 3307 var defaultOptions = { 3308 overlay: true, 3309 direction: 'end', 3310 baseClass: 'drawer', 3311 overlayClass: 'drawer-overlay' 3312 }; 3313 3314 //////////////////////////// 3315 // ** Private methods ** // 3316 //////////////////////////// 3317 3318 var _construct = function () { 3319 if (IpixUtil.data(element).has('drawer')) { 3320 the = IpixUtil.data(element).get('drawer'); 3321 } else { 3322 _init(); 3323 } 3324 }; 3325 var _init = function () { 3326 // Variables 3327 the.options = IpixUtil.deepExtend({}, defaultOptions, options); 3328 the.uid = IpixUtil.getUniqueId('drawer'); 3329 the.element = element; 3330 the.overlayElement = null; 3331 the.name = the.element.getAttribute('data-kt-drawer-name'); 3332 the.shown = false; 3333 the.lastWidth; 3334 the.toggleElement = null; 3335 3336 // Set initialized 3337 the.element.setAttribute('data-kt-drawer', 'true'); 3338 3339 // Event Handlers 3340 _handlers(); 3341 3342 // Update Instance 3343 _update(); 3344 3345 // Bind Instance 3346 IpixUtil.data(the.element).set('drawer', the); 3347 }; 3348 var _handlers = function () { 3349 var togglers = _getOption('toggle'); 3350 var closers = _getOption('close'); 3351 if (togglers !== null && togglers.length > 0) { 3352 IpixUtil.on(document.body, togglers, 'click', function (e) { 3353 e.preventDefault(); 3354 the.toggleElement = this; 3355 _toggle(); 3356 }); 3357 } 3358 if (closers !== null && closers.length > 0) { 3359 IpixUtil.on(document.body, closers, 'click', function (e) { 3360 e.preventDefault(); 3361 the.closeElement = this; 3362 _hide(); 3363 }); 3364 } 3365 }; 3366 var _toggle = function () { 3367 if (IpixEventHandler.trigger(the.element, 'kt.drawer.toggle', the) === false) { 3368 return; 3369 } 3370 if (the.shown === true) { 3371 _hide(); 3372 } else { 3373 _show(); 3374 } 3375 IpixEventHandler.trigger(the.element, 'kt.drawer.toggled', the); 3376 }; 3377 var _hide = function () { 3378 if (IpixEventHandler.trigger(the.element, 'kt.drawer.hide', the) === false) { 3379 return; 3380 } 3381 the.shown = false; 3382 _deleteOverlay(); 3383 document.body.removeAttribute('data-kt-drawer-' + the.name, 'on'); 3384 document.body.removeAttribute('data-kt-drawer'); 3385 IpixUtil.removeClass(the.element, the.options.baseClass + '-
3385on'); 3386 if (the.toggleElement !== null) { 3387 IpixUtil.removeClass(the.toggleElement, 'active'); 3388 } 3389 IpixEventHandler.trigger(the.element, 'kt.drawer.after.hidden', the) === false; 3390 }; 3391 var _show = function () { 3392 if (IpixEventHandler.trigger(the.element, 'kt.drawer.show', the) === false) { 3393 return; 3394 } 3395 the.shown = true; 3396 _createOverlay(); 3397 document.body.setAttribute('data-kt-drawer-' + the.name, 'on'); 3398 document.body.setAttribute('data-kt-drawer', 'on'); 3399 IpixUtil.addClass(the.element, the.options.baseClass + '-on'); 3400 if (the.toggleElement !== null) { 3401 IpixUtil.addClass(the.toggleElement, 'active'); 3402 } 3403 IpixEventHandler.trigger(the.element, 'kt.drawer.shown', the); 3404 }; 3405 var _update = function () { 3406 var width = _getWidth(); 3407 var direction = _getOption('direction'); 3408 var top = _getOption('top'); 3409 var bottom = _getOption('bottom'); 3410 var start = _getOption('start'); 3411 var end = _getOption('end'); 3412 3413 // Reset state 3414 if (IpixUtil.hasClass(the.element, the.options.baseClass + '-
3414on') === true && String(document.body.getAttribute('data-kt-drawer-' + the.name + '-')) === 'on') { 3415 the.shown = true; 3416 } else { 3417 the.shown = false; 3418 } 3419 3420 // Activate/deactivate 3421 if (_getOption('activate') === true) { 3422 IpixUtil.addClass(the.element, the.options.baseClass); 3423 IpixUtil.addClass(the.element, the.options.baseClass + '-' + direction); 3424 IpixUtil.css(the.element, 'width', width, true); 3425 the.lastWidth = width; 3426 if (top) { 3427 IpixUtil.css(the.element, 'top', top); 3428 } 3429 if (bottom) { 3430 IpixUtil.css(the.element, 'bottom', bottom); 3431 } 3432 if (start) { 3433 if (IpixUtil.isRTL()) { 3434 IpixUtil.css(the.element, 'right', start); 3435 } else { 3436 IpixUtil.css(the.element, 'left', start); 3437 } 3438 } 3439 if (end) { 3440 if (IpixUtil.isRTL()) { 3441 IpixUtil.css(the.element, 'left', end); 3442 } else { 3443 IpixUtil.css(the.element, 'right', end); 3444 } 3445 } 3446 } else { 3447 IpixUtil.removeClass(the.element, the.options.baseClass); 3448 IpixUtil.removeClass(the.element, the.options.baseClass + '-' + direction); 3449 IpixUtil.css(the.element, 'width', ''); 3450 if (top) { 3451 IpixUtil.css(the.element, 'top', ''); 3452 } 3453 if (bottom) { 3454 IpixUtil.css(the.element, 'bottom', ''); 3455 } 3456 if (start) { 3457 if (IpixUtil.isRTL()) { 3458 IpixUtil.css(the.element, 'right', ''); 3459 } else { 3460 IpixUtil.css(the.element, 'left', ''); 3461 } 3462 } 3463 if (end) { 3464 if (IpixUtil.isRTL()) { 3465 IpixUtil.css(the.element, 'left', ''); 3466 } else { 3467 IpixUtil.css(the.element, 'right', ''); 3468 } 3469 } 3470 _hide(); 3471 } 3472 }; 3473 var _createOverlay = function () { 3474 if (_getOption('overlay') === true) { 3475 the.overlayElement = document.createElement('DIV'); 3476 IpixUtil.css(the.overlayElement, 'z-index', IpixUtil.css(the.element, 'z-index') - 1); // update 3477 3478 document.body.append(the.overlayElement); 3479 IpixUtil.addClass(the.overlayElement, _getOption('overlay-class')); 3480 IpixUtil.addEvent(the.overlayElement, 'click', function (e) { 3481 e.preventDefault(); 3482 if (_getOption('permanent') !== true) { 3483 _hide(); 3484 } 3485 }); 3486 } 3487 }; 3488 var _deleteOverlay = function () { 3489 if (the.overlayElement !== null) { 3490 IpixUtil.remove(the.overlayElement); 3491 } 3492 }; 3493 var _getOption = function (name) { 3494 if (the.element.hasAttribute('data-kt-drawer-' + name) === true) { 3495 var attr = the.element.getAttribute('data-kt-drawer-' + name); 3496 var value = IpixUtil.getResponsiveValue(attr); 3497 if (value !== null && String(value) === 'true') { 3498 value = true; 3499 } else if (value !== null && String(value) === 'false') { 3500 value = false; 3501 } 3502 return value; 3503 } else { 3504 var optionName = IpixUtil.snakeToCamel(name); 3505 if (the.options[optionName]) { 3506 return IpixUtil.getResponsiveValue(the.options[optionName]); 3507 } else { 3508 return null; 3509 } 3510 } 3511 }; 3512 var _getWidth = function () { 3513 var width = _getOption('width'); 3514 if (width === 'auto') { 3515 width = IpixUtil.css(the.element, 'width'); 3516 } 3517 return width; 3518 }; 3519 var _destroy = function () { 3520 IpixUtil.data(the.element).remove('drawer'); 3521 }; 3522 3523 // Construct class 3524 _construct(); 3525 3526 /////////////////////// 3527 // ** Public API ** // 3528 /////////////////////// 3529 3530 // Plugin API 3531 the.toggle = function () { 3532 return _toggle(); 3533 }; 3534 the.show = function () { 3535 return _show(); 3536 }; 3537 the.hide = function () { 3538 return _hide(); 3539 }; 3540 the.isShown = function () { 3541 return the.shown; 3542 }; 3543 the.update = function () { 3544 _update(); 3545 }; 3546 the.goElement = function () { 3547 return the.element; 3548 }; 3549 the.destroy = function () { 3550 return _destroy(); 3551 }; 3552 3553 // Event API 3554 the.on = function (name, handler) { 3555 return IpixEventHandler.on(the.element, name, handler); 3556 }; 3557 the.one = function (name, handler) { 3558 return IpixEventHandler.one(the.element, name, handler); 3559 }; 3560 the.off = function (name, handlerId) { 3561 return IpixEventHandler.off(the.element, name, handlerId); 3562 }; 3563 the.trigger = function (name, event) { 3564 return IpixEventHandler.trigger(the.element, name, event, the, event); 3565 }; 3566}; 3567 3568// Static methods 3569IpixDrawer.getInstance = function (element) { 3570 if (element !== null && IpixUtil.data(element).has('drawer')) { 3571 return IpixUtil.data(element).get('drawer'); 3572 } else { 3573 return null; 3574 } 3575}; 3576 3577// Hide all drawers and skip one if provided 3578IpixDrawer.hideAll = function (skip = null, selector = '[data-kt-drawer="true"]') { 3579 var items = document.querySelectorAll(selector); 3580 if (items && items.length > 0) { 3581 for (var i = 0, len = items.length; i < len; i++) { 3582 var item = items[i]; 3583 var drawer = IpixDrawer.getInstance(item); 3584 if (!drawer) { 3585 continue; 3586 } 3587 if (skip) { 3588 if (item !== skip) { 3589 drawer.hide(); 3590 } 3591 } else { 3592 drawer.hide(); 3593 } 3594 } 3595 } 3596}; 3597 3598// Update all drawers 3599IpixDrawer.updateAll = function (selector = '[data-kt-drawer="true"]') { 3600 var items = document.querySelectorAll(selector); 3601 if (items && items.length > 0) { 3602 for (var i = 0, len = items.length; i < len; i++) { 3603 var drawer = IpixDrawer.getInstance(items[i]); 3604 if (drawer) {
3605 drawer.update(); 3606 } 3607 } 3608 } 3609}; 3610 3611// Create instances 3612IpixDrawer.createInstances = function (selector = '[data-kt-drawer="true"]') { 3613 // Initialize Menus 3614 var elements = document.querySelectorAll(selector); 3615 if (elements && elements.length > 0) { 3616 for (var i = 0, len = elements.length; i < len; i++) { 3617 new IpixDrawer(elements[i]); 3618 } 3619 } 3620}; 3621 3622// Toggle instances 3623IpixDrawer.handleShow = function () { 3624 // External drawer toggle handler 3625 IpixUtil.on(document.body, '[data-kt-drawer-show="true"][data-kt-drawer-target]', 'click', function (e) { 3626 e.preventDefault(); 3627 var element = document.querySelector(this.getAttribute('data-kt-drawer-target')); 3628 if (element) { 3629 IpixDrawer.getInstance(element).show(); 3630 } 3631 }); 3632}; 3633 3634// Dismiss instances 3635IpixDrawer.handleDismiss = function () { 3636 // External drawer toggle handler 3637 IpixUtil.on(document.body, '[data-kt-drawer-dismiss="true"]', 'click', function (e) { 3638 var element = this.closest('[data-kt-drawer="true"]'); 3639 if (element) { 3640 var drawer = IpixDrawer.getInstance(element); 3641 if (drawer.isShown()) { 3642 drawer.hide(); 3643 } 3644 } 3645 }); 3646}; 3647 3648// Handle resize 3649IpixDrawer.handleResize = function () { 3650 // Window resize Handling 3651 window.addEventListener('resize', function () { 3652 var timer; 3653 IpixUtil.throttle(timer, function () { 3654 // Locate and update drawer instances on window resize 3655 var elements = document.querySelectorAll('[data-kt-drawer="true"]'); 3656 if (elements && elements.length > 0) { 3657 for (var i = 0, len = elements.length; i < len; i++) { 3658 var drawer = IpixDrawer.getInstance(elements[i]); 3659 if (drawer) { 3660 drawer.update(); 3661 } 3662 } 3663 } 3664 }, 200); 3665 }); 3666}; 3667 3668// Global initialization 3669IpixDrawer.init = function () { 3670 IpixDrawer.createInstances(); 3671 if (IpixDrawerHandlersInitialized === false) { 3672 IpixDrawer.handleResize(); 3673 IpixDrawer.handleShow(); 3674 IpixDrawer.handleDismiss(); 3675 IpixDrawerHandlersInitialized = true; 3676 } 3677}; 3678 3679// Webpack support 3680if ( true && typeof module.exports !== 'undefined') { 3681 module.exports = IpixDrawer; 3682} 3683 3684/***/ }), 3685
3686/***/ "./resources/js/layouts/components/drawer.js": 3687/*!***************************************************!*\ 3688 !*** ./resources/js/layouts/components/drawer.js ***! 3689 \***************************************************/ 3690/***/ ((module) => { 3691 3692"use strict"; 3693 3694 3695var IpixDrawerHandlersInitialized = false; 3696 3697// Class definition 3698var IpixDrawer = function (element, options) { 3699 ////////////////////////////// 3700 // ** Private variables ** // 3701 ////////////////////////////// 3702 var the = this; 3703 if (typeof element === "undefined" || element === null) { 3704 return; 3705 } 3706 3707 // Default options 3708 var defaultOptions = { 3709 overlay: true, 3710 direction: 'end', 3711 baseClass: 'drawer', 3712 overlayClass: 'drawer-overlay' 3713 }; 3714 3715 //////////////////////////// 3716 // ** Private methods ** // 3717 //////////////////////////// 3718 3719 var _construct = function () { 3720 if (IpixUtil.data(element).has('drawer')) { 3721 the = IpixUtil.data(element).get('drawer'); 3722 } else { 3723 _init(); 3724 } 3725 }; 3726 var _init = function () { 3727 // Variables 3728 the.options = IpixUtil.deepExtend({}, defaultOptions, options); 3729 the.uid = IpixUtil.getUniqueId('drawer'); 3730 the.element = element; 3731 the.overlayElement = null; 3732 the.name = the.element.getAttribute('data-kt-drawer-name'); 3733 the.shown = false; 3734 the.lastWidth; 3735 the.toggleElement = null; 3736 3737 // Set initialized 3738 the.element.setAttribute('data-kt-drawer', 'true'); 3739 3740 // Event Handlers 3741 _handlers(); 3742 3743 // Update Instance 3744 _update(); 3745 3746 // Bind Instance 3747 IpixUtil.data(the.element).set('drawer', the); 3748 }; 3749 var _handlers = function () { 3750 var togglers = _getOption('toggle'); 3751 var closers = _getOption('close'); 3752 if (togglers !== null && togglers.length > 0) { 3753 IpixUtil.on(document.body, togglers, 'click', function (e) { 3754 e.preventDefault(); 3755 the.toggleElement = this; 3756 _toggle(); 3757 }); 3758 } 3759 if (closers !== null && closers.length > 0) { 3760 IpixUtil.on(document.body, closers, 'click', function (e) { 3761 e.preventDefault(); 3762 the.closeElement = this; 3763 _hide(); 3764 }); 3765 } 3766 }; 3767 var _toggle = function () { 3768 if (IpixEventHandler.trigger(the.element, 'kt.drawer.toggle', the) === false) { 3769 return; 3770 } 3771 if (the.shown === true) { 3772 _hide(); 3773 } else { 3774 _show(); 3775 } 3776 IpixEventHandler.trigger(the.element, 'kt.drawer.toggled', the); 3777 }; 3778 var _hide = function () { 3779 if (IpixEventHandler.trigger(the.element, 'kt.drawer.hide', the) === false) { 3780 return; 3781 } 3782 the.shown = false; 3783 _deleteOverlay(); 3784 document.body.removeAttribute('data-kt-drawer-' + the.name, 'on'); 3785 document.body.removeAttribute('data-kt-drawer'); 3786 IpixUtil.removeClass(the.element, the.options.baseClass + '-
3786on'); 3787 if (the.toggleElement !== null) { 3788 IpixUtil.removeClass(the.toggleElement, 'active'); 3789 } 3790 IpixEventHandler.trigger(the.element, 'kt.drawer.after.hidden', the) === false; 3791 }; 3792 var _show = function () { 3793 if (IpixEventHandler.trigger(the.element, 'kt.drawer.show', the) === false) { 3794 return; 3795 } 3796 the.shown = true; 3797 _createOverlay(); 3798 document.body.setAttribute('data-kt-drawer-' + the.name, 'on'); 3799 document.body.setAttribute('data-kt-drawer', 'on'); 3800 IpixUtil.addClass(the.element, the.options.baseClass + '-on'); 3801 if (the.toggleElement !== null) { 3802 IpixUtil.addClass(the.toggleElement, 'active'); 3803 } 3804 IpixEventHandler.trigger(the.element, 'kt.drawer.shown', the); 3805 }; 3806 var _update = function () { 3807 var width = _getWidth(); 3808 var direction = _getOption('direction'); 3809 var top = _getOption('top'); 3810 var bottom = _getOption('bottom'); 3811 var start = _getOption('start'); 3812 var end = _getOption('end'); 3813 3814 // Reset state 3815 if (IpixUtil.hasClass(the.element, the.options.baseClass + '-
3815on') === true && String(document.body.getAttribute('data-kt-drawer-' + the.name + '-')) === 'on') { 3816 the.shown = true; 3817 } else { 3818 the.shown = false; 3819 } 3820 3821 // Activate/deactivate 3822 if (_getOption('activate') === true) { 3823 IpixUtil.addClass(the.element, the.options.baseClass); 3824 IpixUtil.addClass(the.element, the.options.baseClass + '-' + direction); 3825 IpixUtil.css(the.element, 'width', width, true); 3826 the.lastWidth = width; 3827 if (top) { 3828 IpixUtil.css(the.element, 'top', top); 3829 } 3830 if (bottom) { 3831 IpixUtil.css(the.element, 'bottom', bottom); 3832 } 3833 if (start) { 3834 if (IpixUtil.isRTL()) { 3835 IpixUtil.css(the.element, 'right', start); 3836 } else { 3837 IpixUtil.css(the.element, 'left', start); 3838 } 3839 } 3840 if (end) { 3841 if (IpixUtil.isRTL()) { 3842 IpixUtil.css(the.element, 'left', end); 3843 } else { 3844 IpixUtil.css(the.element, 'right', end); 3845 } 3846 } 3847 } else { 3848 IpixUtil.removeClass(the.element, the.options.baseClass); 3849 IpixUtil.removeClass(the.element, the.options.baseClass + '-' + direction); 3850 IpixUtil.css(the.element, 'width', ''); 3851 if (top) { 3852 IpixUtil.css(the.element, 'top', ''); 3853 } 3854 if (bottom) { 3855 IpixUtil.css(the.element, 'bottom', ''); 3856 } 3857 if (start) { 3858 if (IpixUtil.isRTL()) { 3859 IpixUtil.css(the.element, 'right', ''); 3860 } else { 3861 IpixUtil.css(the.element, 'left', ''); 3862 } 3863 } 3864 if (end) { 3865 if (IpixUtil.isRTL()) { 3866 IpixUtil.css(the.element, 'left', ''); 3867 } else { 3868 IpixUtil.css(the.element, 'right', ''); 3869 } 3870 } 3871 _hide(); 3872 } 3873 }; 3874 var _createOverlay = function () { 3875 if (_getOption('overlay') === true) { 3876 the.overlayElement = document.createElement('DIV'); 3877 IpixUtil.css(the.overlayElement, 'z-index', IpixUtil.css(the.element, 'z-index') - 1); // update 3878 3879 document.body.append(the.overlayElement); 3880 IpixUtil.addClass(the.overlayElement, _getOption('overlay-class')); 3881 IpixUtil.addEvent(the.overlayElement, 'click', function (e) { 3882 e.preventDefault(); 3883 if (_getOption('permanent') !== true) { 3884 _hide(); 3885 } 3886 }); 3887 } 3888 }; 3889 var _deleteOverlay = function () { 3890 if (the.overlayElement !== null) { 3891 IpixUtil.remove(the.overlayElement); 3892 } 3893 }; 3894 var _getOption = function (name) { 3895 if (the.element.hasAttribute('data-kt-drawer-' + name) === true) { 3896 var attr = the.element.getAttribute('data-kt-drawer-' + name); 3897 var value = IpixUtil.getResponsiveValue(attr); 3898 if (value !== null && String(value) === 'true') { 3899 value = true; 3900 } else if (value !== null && String(value) === 'false') { 3901 value = false; 3902 } 3903 return value; 3904 } else { 3905 var optionName = IpixUtil.snakeToCamel(name); 3906 if (the.options[optionName]) { 3907 return IpixUtil.getResponsiveValue(the.options[optionName]); 3908 } else { 3909 return null; 3910 } 3911 } 3912 }; 3913 var _getWidth = function () { 3914 var width = _getOption('width'); 3915 if (width === 'auto') { 3916 width = IpixUtil.css(the.element, 'width'); 3917 } 3918 return width; 3919 }; 3920 var _destroy = function () { 3921 IpixUtil.data(the.element).remove('drawer'); 3922 }; 3923 3924 // Construct class 3925 _construct(); 3926 3927 /////////////////////// 3928 // ** Public API ** // 3929 /////////////////////// 3930 3931 // Plugin API 3932 the.toggle = function () { 3933 return _toggle(); 3934 }; 3935 the.show = function () { 3936 return _show(); 3937 }; 3938 the.hide = function () { 3939 return _hide(); 3940 }; 3941 the.isShown = function () { 3942 return the.shown; 3943 }; 3944 the.update = function () { 3945 _update(); 3946 }; 3947 the.goElement = function () { 3948 return the.element; 3949 }; 3950 the.destroy = function () { 3951 return _destroy(); 3952 }; 3953 3954 // Event API 3955 the.on = function (name, handler) { 3956 return IpixEventHandler.on(the.element, name, handler); 3957 }; 3958 the.one = function (name, handler) { 3959 return IpixEventHandler.one(the.element, name, handler); 3960 }; 3961 the.off = function (name, handlerId) { 3962 return IpixEventHandler.off(the.element, name, handlerId); 3963 }; 3964 the.trigger = function (name, event) { 3965 return IpixEventHandler.trigger(the.element, name, event, the, event); 3966 }; 3967}; 3968 3969// Static methods 3970IpixDrawer.getInstance = function (element) { 3971 if (element !== null && IpixUtil.data(element).has('drawer')) { 3972 return IpixUtil.data(element).get('drawer'); 3973 } else { 3974 return null; 3975 } 3976}; 3977 3978// Hide all drawers and skip one if provided 3979IpixDrawer.hideAll = function (skip = null, selector = '[data-kt-drawer="true"]') { 3980 var items = document.querySelectorAll(selector); 3981 if (items && items.length > 0) { 3982 for (var i = 0, len = items.length; i < len; i++) { 3983 var item = items[i]; 3984 var drawer = IpixDrawer.getInstance(item); 3985 if (!drawer) { 3986 continue; 3987 } 3988 if (skip) { 3989 if (item !== skip) { 3990 drawer.hide(); 3991 } 3992 } else { 3993 drawer.hide(); 3994 } 3995 } 3996 } 3997}; 3998 3999// Update all drawers 4000IpixDrawer.updateAll = function (selector = '[data-kt-drawer="true"]') { 4001 var items = document.querySelectorAll(selector); 4002 if (items && items.length > 0) { 4003 for (var i = 0, len = items.length; i < len; i++) { 4004 var drawer = IpixDrawer.getInstance(items[i]); 4005 if (drawer) {
4006 drawer.update(); 4007 } 4008 } 4009 } 4010}; 4011 4012// Create instances 4013IpixDrawer.createInstances = function (selector = '[data-kt-drawer="true"]') { 4014 // Initialize Menus 4015 var elements = document.querySelectorAll(selector); 4016 if (elements && elements.length > 0) { 4017 for (var i = 0, len = elements.length; i < len; i++) { 4018 new IpixDrawer(elements[i]); 4019 } 4020 } 4021}; 4022 4023// Toggle instances 4024IpixDrawer.handleShow = function () { 4025 // External drawer toggle handler 4026 IpixUtil.on(document.body, '[data-kt-drawer-show="true"][data-kt-drawer-target]', 'click', function (e) { 4027 e.preventDefault(); 4028 var element = document.querySelector(this.getAttribute('data-kt-drawer-target')); 4029 if (element) { 4030 IpixDrawer.getInstance(element).show(); 4031 } 4032 }); 4033}; 4034 4035// Dismiss instances 4036IpixDrawer.handleDismiss = function () { 4037 // External drawer toggle handler 4038 IpixUtil.on(document.body, '[data-kt-drawer-dismiss="true"]', 'click', function (e) { 4039 var element = this.closest('[data-kt-drawer="true"]'); 4040 if (element) { 4041 var drawer = IpixDrawer.getInstance(element); 4042 if (drawer.isShown()) { 4043 drawer.hide(); 4044 } 4045 } 4046 }); 4047}; 4048 4049// Handle resize 4050IpixDrawer.handleResize = function () { 4051 // Window resize Handling 4052 window.addEventListener('resize', function () { 4053 var timer; 4054 IpixUtil.throttle(timer, function () { 4055 // Locate and update drawer instances on window resize 4056 var elements = document.querySelectorAll('[data-kt-drawer="true"]'); 4057 if (elements && elements.length > 0) { 4058 for (var i = 0, len = elements.length; i < len; i++) { 4059 var drawer = IpixDrawer.getInstance(elements[i]); 4060 if (drawer) { 4061 drawer.update(); 4062 } 4063 } 4064 } 4065 }, 200); 4066 }); 4067}; 4068 4069// Global initialization 4070IpixDrawer.init = function () { 4071 IpixDrawer.createInstances(); 4072 if (IpixDrawerHandlersInitialized === false) { 4073 IpixDrawer.handleResize(); 4074 IpixDrawer.handleShow(); 4075 IpixDrawer.handleDismiss(); 4076 IpixDrawerHandlersInitialized = true; 4077 } 4078}; 4079 4080// Webpack support 4081if ( true && typeof module.exports !== 'undefined') { 4082 module.exports = IpixDrawer; 4083} 4084 4085/***/ }), 4086
4087/***/ "./resources/js/layouts/components/enquiry.js": 4088/*!****************************************************!*\ 4089 !*** ./resources/js/layouts/components/enquiry.js ***! 4090 \****************************************************/ 4091/***/ (() => { 4092 4093var IpixEnquiry = function () { 4094 var validateHeaderForm = function (e) { 4095 IpixJson.options.FormValidation.fields = { 4096 'name': { 4097 validators: { 4098 notEmpty: { 4099 message: 'Please enter name' 4100 } 4101 } 4102 }, 4103 'email': { 4104 validators: { 4105 emailAddress: { 4106 message: 'Please enter valid email address' 4107 }, 4108 notEmpty: { 4109 message: 'Please enter email address' 4110 } 4111 } 4112 }, 4113 'mobile': { 4114 validators: { 4115 phone: { 4116 message: 'Please enter valid phone number' 4117 }, 4118 numeric: { 4119 message: 'Please enter valid phone number' 4120 }, 4121 notEmpty: { 4122 message: 'Please enter phone number' 4123 } 4124 } 4125 } 4126 // 'service_id': { 4127 // validators: { 4128 // callback: { 4129 // message: 'Please select product/service', 4130 // callback: function (value, validator, $field) { 4131 // if ($("#headerForm").find("input[name=product_id]").val() === "" && $("#headerForm").find("input[name=service_id]").val() === "") { 4132 // return false; 4133 // } else { 4134 // return true; 4135 // } 4136 // } 4137 // } 4138 // } 4139 // }, 4140 }; 4141 IpixJson.validators['headerForm'] = FormValidation.formValidation(document.getElementById('headerForm'), IpixJson.options.FormV
4141alidation); 4142 }; 4143 var validateForm = function (e) { 4144 IpixJson.options.FormValidation.fields = { 4145 'name': { 4146 validators: { 4147 notEmpty: { 4148 message: 'Please enter name' 4149 } 4150 } 4151 }, 4152 'email': { 4153 validators: { 4154 emailAddress: { 4155 message: 'Please enter valid email address' 4156 }, 4157 notEmpty: { 4158 message: 'Please enter email address' 4159 } 4160 } 4161 }, 4162 'mobile': { 4163 validators: { 4164 phone: { 4165 message: 'Please enter valid phone number' 4166 }, 4167 numeric: { 4168 message: 'Please enter valid phone number' 4169 }, 4170 notEmpty: { 4171 message: 'Please enter phone number' 4172 } 4173 } 4174 } 4175 // 'service_id': { 4176 // validators: { 4177 // callback: { 4178 // message: 'Please select product/service', 4179 // callback: function (value, validator, $field) { 4180 // if ($(".enquiry-form").find("input[name=product_id]").val() === "" && $(".enquiry-form").find("input[name=service_id]").val() === "") { 4181 // return false; 4182 // } else { 4183 // return true; 4184 // } 4185 // } 4186 // } 4187 // } 4188 // }, 4189 }; 4190 if (document.getElementsByClassName('enquiry-form').length) { 4191 var form = document.getElementsByClassName('enquiry-form')[0]; 4192 IpixJson.validators['contactForm'] = FormValidation.formValidation(form, IpixJson.options.FormV
4192alidation); 4193 } 4194 }; 4195 var validateEventForm = function (e) { 4196 IpixJson.options.FormValidation.fields = { 4197 'name': { 4198 validators: { 4199 notEmpty: { 4200 message: 'Name is Mandatory' 4201 } 4202 } 4203 }, 4204 'email': { 4205 validators: { 4206 emailAddress: { 4207 message: 'The value is not a valid email address' 4208 }, 4209 notEmpty: { 4210 message: 'Email address is Mandatory' 4211 } 4212 } 4213 }, 4214 'mobile': { 4215 validators: { 4216 phone: { 4217 message: 'The value is not a valid phone number' 4218 }, 4219 numeric: { 4220 message: 'The value is not a number' 4221 }, 4222 notEmpty: { 4223 message: 'Phone number is required' 4224 } 4225 } 4226 } 4227 }; 4228 if (document.getElementsByClassName('enquiry-form').length) { 4229 var form = document.getElementsByClassName('enquiry-form')[0]; 4230 IpixJson.validators['eventForm'] = FormValidation.formValidation(form, IpixJson.options.FormV
4230alidation); 4231 } 4232 }; 4233 4234 // var initProductSelect = function () { 4235 // // Get all the product and service buttons 4236 // const productButtons = document.querySelectorAll('.productSelect'); 4237 4238 // // Add click event listeners to each product button 4239 // productButtons.forEach((button) => { 4240 // button.addEventListener('click', () => { 4241 // productButtons.forEach((btn) => { 4242 // btn.classList.remove('active'); 4243 // btn.classList.remove('select'); 4244 // }); 4245 // button.classList.add('active'); 4246 // var selectedProduct = button.getAttribute('data-product_id'); 4247 // $(button).parents('form').find('input[name="product_id"]').val(selectedProduct); 4248 // $(button).toggleClass('select'); 4249 // }); 4250 // }); 4251 // } 4252 4253 // var initServiceSelect = function () { 4254 // const serviceButtons = document.querySelectorAll('.serviceSelect'); 4255 4256 // // Add click event listeners to each service button 4257 // serviceButtons.forEach((button) => { 4258 // button.addEventListener('click', () => { 4259 // serviceButtons.forEach((btn) => { 4260 // btn.classList.remove('active'); 4261 // btn.classList.remove('select'); 4262 // }); 4263 // button.classList.add('active'); 4264 // var selectedService = button.getAttribute('data-service_id'); 4265 // console.log($(button), selectedService); 4266 // $(button).parents('form').find('input[name="service_id"]').val(selectedService); 4267 // $(button).toggleClass('select'); 4268 // }); 4269 // }); 4270 // } 4271 4272 return { 4273 init: function () { 4274 validateHeaderForm(); 4275 validateForm(); 4276 // validateEventForm(); 4277 // initProductSelect(); 4278 // initServiceSelect(); 4279 } 4280 }; 4281}(); 4282IpixUtil.onDOMContentLoaded(function () { 4283 IpixEnquiry.init(); 4284}); 4285 4286/***/ }), 4287
4288/***/ "./resources/js/layouts/components/event-handler.js": 4289/*!**********************************************************!*\ 4290 !*** ./resources/js/layouts/components/event-handler.js ***! 4291 \**********************************************************/ 4292/***/ ((module) => { 4293 4294"use strict"; 4295 4296 4297// Class definition 4298var IpixEventHandler = function () { 4299 //////////////////////////// 4300 // ** Private Variables ** // 4301 //////////////////////////// 4302 var _handlers = {}; 4303 4304 //////////////////////////// 4305 // ** Private Methods ** // 4306 //////////////////////////// 4307 var _triggerEvent = function (element, name, target) { 4308 var returnValue = true; 4309 var eventValue; 4310 if (IpixUtil.data(element).has(name) === true) { 4311 var handlerIds = IpixUtil.data(element).get(name); 4312 var handlerId; 4313 for (var i = 0; i < handlerIds.length; i++) { 4314 handlerId = handlerIds[i]; 4315 if (_handlers[name] && _handlers[name][handlerId]) { 4316 var handler = _handlers[name][handlerId]; 4317 var value; 4318 if (handler.name === name) { 4319 if (handler.one == true) { 4320 if (handler.fired == false) { 4321 _handlers[name][handlerId].fired = true; 4322 eventValue = handler.callback.call(this, target); 4323 } 4324 } else { 4325 eventValue = handler.callback.call(this, target); 4326 } 4327 if (eventValue === false) { 4328 returnValue = false; 4329 } 4330 } 4331 } 4332 } 4333 } 4334 return returnValue; 4335 }; 4336 var _addEvent = function (element, name, callback, one) { 4337 var handlerId = IpixUtil.getUniqueId('event'); 4338 var handlerIds = IpixUtil.data(element).get(name); 4339 if (!handlerIds) { 4340 handlerIds = []; 4341 } 4342 handlerIds.push(handlerId); 4343 IpixUtil.data(element).set(name, handlerIds); 4344 if (!_handlers[name]) { 4345 _handlers[name] = {}; 4346 } 4347 _handlers[name][handlerId] = { 4348 name: name, 4349 callback: callback, 4350 one: one, 4351 fired: false 4352 }; 4353 return handlerId; 4354 }; 4355 var _removeEvent = function (element, name, handlerId) { 4356 var handlerIds = IpixUtil.data(element).get(name); 4357 var index = handlerIds && handlerIds.indexOf(handlerId); 4358 if (index !== -1) { 4359 handlerIds.splice(index, 1); 4360 IpixUtil.data(element).set(name, handlerIds); 4361 } 4362 if (_handlers[name] && _handlers[name][handlerId]) { 4363 delete _handlers[name][handlerId]; 4364 } 4365 }; 4366 4367 //////////////////////////// 4368 // ** Public Methods ** // 4369 //////////////////////////// 4370 return { 4371 trigger: function (element, name, target) { 4372 return _triggerEvent(element, name, target); 4373 }, 4374 on: function (element, name, handler) { 4375 return _addEvent(element, name, handler); 4376 }, 4377 one: function (element, name, handler) { 4378 return _addEvent(element, name, handler, true); 4379 }, 4380 off: function (element, name, handlerId) { 4381 return _removeEvent(element, name, handlerId); 4382 }, 4383 debug: function () { 4384 for (var b in _handlers) { 4385 if (_handlers.hasOwnProperty(b)) console.log(b); 4386 } 4387 } 4388 }; 4389}(); 4390 4391// Webpack support 4392if ( true && typeof module.exports !== 'undefined') { 4393 module.exports = IpixEventHandler; 4394} 4395 4396/***/ }), 4397
4398/***/ "./resources/js/layouts/components/flatPicker.js": 4399/*!*******************************************************!*\ 4400 !*** ./resources/js/layouts/components/flatPicker.js ***! 4401 \*******************************************************/ 4402/***/ ((module) => { 4403 4404"use strict"; 4405 4406 4407var IpixFlatPicker = function () {}; 4408IpixFlatPicker.initFlatPicker = function () { 4409 // Check if jQuery included 4410 if (typeof jQuery == 'undefined') { 4411 return; 4412 } 4413 4414 // Check if flatpickr included 4415 if (typeof $.fn.flatpickr === 'undefined') { 4416 return; 4417 } 4418 var dateElements = [].slice.call(document.querySelectorAll('[data-kt-date-input="true"][data-kt-initialized="false"]')); 4419 dateElements.map(function (element) { 4420 IpixJson.options.flatpicker.minDate = null; 4421 IpixJson.options.flatpicker.maxDate = null; 4422 IpixJson.options.flatpicker.enableTime = false; 4423 IpixJson.options.flatpicker.dateFormat = $(element).data("format"); 4424 if ($(element).data("kt-time-enabled") == true) { 4425 IpixJson.options.flatpicker.enableTime = true; 4426 } 4427 if ($(element).data("mindate")) { 4428 IpixJson.options.flatpicker.minDate = $(element).data("mindate"); 4429 } 4430 if ($(element).data("maxdate")) { 4431 IpixJson.options.flatpicker.maxDate = $(element).data("maxdate"); 4432 } 4433 element.flatpickr(IpixJson.options.flatpicker); 4434 element.setAttribute("data-kt-initialized", "true"); 4435 }); 4436}; 4437IpixUtil.onDOMContentLoaded(function () { 4438 IpixFlatPicker.initFlatPicker(); 4439}); 4440 4441// Webpack support 4442if ( true && typeof module.exports !== 'undefined') { 4443 module.exports = IpixFlatPicker; 4444} 4445 4446/***/ }), 4447
4448/***/ "./resources/js/layouts/components/form.js": 4449/*!*************************************************!*\ 4450 !*** ./resources/js/layouts/components/form.js ***! 4451 \*************************************************/ 4452/***/ ((module) => { 4453 4454"use strict"; 4455 4456 4457var IpixFormHandlersInitialized = false; 4458 4459// Class definition 4460var IpixForm = function (element, options) {}; 4461IpixForm.autoCompleteDisable = function (selector = 'input') { 4462 var elements = $(selector); 4463 if (elements && elements.length > 0) { 4464 elements.attr('autocomplete', 'off'); 4465 } 4466}; 4467IpixForm.init = function () { 4468 IpixForm.autoCompleteDisable(); 4469}; 4470if ( true && typeof module.exports !== 'undefined') { 4471 module.exports = IpixForm; 4472} 4473 4474/***/ }), 4475
4476/***/ "./resources/js/layouts/components/formValidation.js": 4477/*!***********************************************************!*\ 4478 !*** ./resources/js/layouts/components/formValidation.js ***! 4479 \***********************************************************/ 4480/***/ ((module) => { 4481 4482"use strict"; 4483 4484 4485// Class definition 4486var IpixFormValidation = function () {}; 4487IpixFormValidation.handleFormSubmit = function () { 4488 var submitButtons = [].slice.call(document.querySelectorAll('.fv-button-submit')); 4489 submitButtons.map(function (submitButton) { 4490 if (submitButton && $(submitButton).length) { 4491 submitButton.addEventListener('click', function (e) { 4492 e.preventDefault(); 4493 IpixJson.validators[$(submitButton).parents("form").attr("id")].validate().then(function (status) { 4494 $("a.nav-link").removeClass("tab-pane-error"); 4495 if (status == 'Valid') { 4496 // $(submitButton).parents("form").dirty("setAsClean"); 4497 submitButton.disabled = true; 4498 submitButton.setAttribute('data-kt-indicator', 'on'); 4499 if (submitButton.getAttribute('data-submit') === "captcha") { 4500 const recaptchaSiteKey = submitButton.getAttribute('data-sitekey'); 4501 grecaptcha.ready(function () { 4502 grecaptcha.execute(recaptchaSiteKey, { 4503 action: 'submit' 4504 }).then(function (token) { 4505 document.getElementById('g-recaptcha-response').value = token; 4506 $(submitButton).parents("form").submit(); 4507 }); 4508 }); 4509 } else { 4510 $(submitButton).parents("form").submit(); 4511 } 4512 } else { 4513 if ($(".nav").length) { 4514 $("a.nav-link[href='#" + $(".fv-plugins-bootstrap5-row-invalid:first").parents(".tab-pane").attr("id") + "']").addClass('tab-pane-error'); 4515 } 4516 if ($(".accordion").length) { 4517 $(".fv-plugins-bootstrap5-row-invalid").parents(".accordion-item").find(".accordion-header h3").addClass('tab-pane-error'); 4518 } 4519 } 4520 }); 4521 }); 4522 } 4523 }); 4524}; 4525IpixFormValidation.init = function () { 4526 IpixFormValidation.handleFormSubmit(); 4527}; 4528IpixUtil.onDOMContentLoaded(function () { 4529 IpixFormValidation.init(); 4530}); 4531 4532// Webpack support 4533if ( true && typeof module.exports !== 'undefined') { 4534 module.exports = IpixFormValidation; 4535} 4536 4537/***/ }), 4538
4539/***/ "./resources/js/layouts/components/image-input.js": 4540/*!********************************************************!*\ 4541 !*** ./resources/js/layouts/components/image-input.js ***! 4542 \********************************************************/ 4543/***/ ((module) => { 4544 4545"use strict"; 4546 4547 4548// Class definition 4549var IpixImageInput = function (element, options) { 4550 //////////////////////////// 4551 // ** Private Variables ** // 4552 //////////////////////////// 4553 var the = this; 4554 if (typeof element === "undefined" || element === null) { 4555 return; 4556 } 4557 4558 // Default Options 4559 var defaultOptions = {}; 4560 4561 //////////////////////////// 4562 // ** Private Methods ** // 4563 //////////////////////////// 4564 4565 var _construct = function () { 4566 if (IpixUtil.data(element).has('image-input') === true) { 4567 the = IpixUtil.data(element).get('image-input'); 4568 } else { 4569 _init(); 4570 } 4571 }; 4572 var _init = function () { 4573 // Variables 4574 the.options = IpixUtil.deepExtend({}, defaultOptions, options); 4575 the.uid = IpixUtil.getUniqueId('image-input'); 4576 4577 // Elements 4578 the.element = element; 4579 the.formElement = element.closest(".form"); 4580 the.inputElement = IpixUtil.find(element, 'input[type="file"]'); 4581 the.wrapperElement = IpixUtil.find(element, '.image-input-wrapper'); 4582 the.cancelElement = IpixUtil.find(element, '[data-kt-image-input-action="cancel"]'); 4583 the.removeElement = IpixUtil.find(element, '[data-kt-image-input-action="remove"]'); 4584 the.resetElement = IpixUtil.find(the.formElement, '[type="reset"]'); 4585 the.hiddenElement = IpixUtil.find(element, 'input[type="hidden"]'); 4586 the.src = IpixUtil.css(the.wrapperElement, 'backgroundImage'); 4587 4588 // Set initialized 4589 the.element.setAttribute('data-kt-image-input', 'true'); 4590 4591 // Event Handlers 4592 _handlers(); 4593 4594 // Bind Instance 4595 IpixUtil.data(the.element).set('image-input', the); 4596 }; 4597 4598 // Init Event Handlers 4599 var _handlers = function () { 4600 IpixUtil.addEvent(the.inputElement, 'change', _change); 4601 IpixUtil.addEvent(the.cancelElement, 'click', _cancel); 4602 IpixUtil.addEvent(the.removeElement, 'click', _remove); 4603 IpixUtil.addEvent(the.resetElement, 'click', _reset); 4604 }; 4605 4606 // Event Handlers 4607 var _change = function (e) { 4608 e.preventDefault(); 4609 if (the.inputElement !== null && the.inputElement.files && the.inputElement.files[0]) { 4610 // Fire change event 4611 if (IpixEventHandler.trigger(the.element, 'kt.imageinput.change', the) === false) { 4612 return; 4613 } 4614 var reader = new FileReader(); 4615 reader.onload = function (e) { 4616 IpixUtil.css(the.wrapperElement, 'background-image', 'url(' + e.target.result + ')'); 4617 }; 4618 reader.readAsDataURL(the.inputElement.files[0]); 4619 the.element.classList.add('image-input-changed'); 4620 the.element.classList.remove('image-input-empty'); 4621 4622 // Fire removed event 4623 IpixEventHandler.trigger(the.element, 'kt.imageinput.changed', the); 4624 } 4625 }; 4626 var _cancel = function (e) { 4627 e.preventDefault(); 4628 4629 // Fire cancel event 4630 if (IpixEventHandler.trigger(the.element, 'kt.imageinput.cancel', the) === false) { 4631 return; 4632 } 4633 the.element.classList.remove('image-input-changed'); 4634 the.element.classList.remove('image-input-empty'); 4635 if (the.src === 'none') { 4636 IpixUtil.css(the.wrapperElement, 'background-image', ''); 4637 the.element.classList.add('image-input-empty'); 4638 } else { 4639 IpixUtil.css(the.wrapperElement, 'background-image', the.src); 4640 } 4641 the.inputElement.value = ""; 4642 if (the.hiddenElement !== null) { 4643 the.hiddenElement.value = "0"; 4644 } 4645 4646 // Fire canceled event 4647 IpixEventHandler.trigger(the.element, 'kt.imageinput.canceled', the); 4648 }; 4649 var _remove = function (e) { 4650 e.preventDefault(); 4651 4652 // Fire remove event 4653 if (IpixEventHandler.trigger(the.element, 'kt.imageinput.remove', the) === false) { 4654 return; 4655 } 4656 the.element.classList.remove('image-input-changed'); 4657 the.element.classList.add('image-input-empty'); 4658 IpixUtil.css(the.wrapperElement, 'background-image', "none"); 4659 the.inputElement.value = ""; 4660 if (the.hiddenElement !== null) { 4661 the.hiddenElement.value = "1"; 4662 } 4663 4664 // Fire removed event 4665 IpixEventHandler.trigger(the.element, 'kt.imageinput.removed', the); 4666 }; 4667 var _reset = function (e) { 4668 if (the.element.classList.contains('image-input-changed')) { 4669 // Fire remove event 4670 if (IpixEventHandler.trigger(the.element, 'kt.imageinput.reset', the) === false) { 4671 return; 4672 } 4673 var oldImage = the.wrapperElement.getAttribute('data-image'); 4674 if (oldImage) { 4675 IpixUtil.css(the.wrapperElement, 'background-image', 'url(' + oldImage + ')'); 4676 } else { 4677 the.element.classList.add('image-input-empty'); 4678 the.element.classList.remove('image-input-changed'); 4679 IpixUtil.css(the.wrapperElement, 'background-image', "none"); 4680 if (the.hiddenElement !== null) { 4681 the.hiddenElement.value = "1"; 4682 } 4683 } 4684 the.inputElement.value = ""; 4685 4686 // Fire removed event 4687 IpixEventHandler.trigger(the.element, 'kt.imageinput.reseted', the); 4688 } 4689 }; 4690 var _destroy = function () { 4691 IpixUtil.data(the.element).remove('image-input'); 4692 }; 4693 4694 // Construct Class 4695 _construct(); 4696 4697 /////////////////////// 4698 // ** Public API ** // 4699 /////////////////////// 4700 4701 // Plugin API 4702 the.getInputElement = function () { 4703 return the.inputElement; 4704 }; 4705 the.getElement = function () { 4706 return the.element; 4707 }; 4708 the.destroy = function () { 4709 return _destroy(); 4710 }; 4711 4712 // Event API 4713 the.on = function (name, handler) { 4714 return IpixEventHandler.on(the.element, name, handler); 4715 }; 4716 the.one = function (name, handler) { 4717 return IpixEventHandler.one(the.element, name, handler); 4718 }; 4719 the.off = function (name, handlerId) { 4720 return IpixEventHandler.off(the.element, name, handlerId); 4721 }; 4722 the.trigger = function (name, event) { 4723 return IpixEventHandler.trigger(the.element, name, event, the, event); 4724 }; 4725}; 4726 4727// Static methods 4728IpixImageInput.getInstance = function (element) { 4729 if (element !== null && IpixUtil.data(element).has('image-input')) { 4730 return IpixUtil.data(element).get('image-input'); 4731 } else { 4732 return null; 4733 } 4734}; 4735 4736// Create instances 4737IpixImageInput.createInstances = function (selector = '[data-kt-image-input]') { 4738 // Initialize Menus 4739 var elements = document.querySelectorAll(selector); 4740 if (elements && elements.length > 0) { 4741 for (var i = 0, len = elements.length; i < len; i++) { 4742 new IpixImageInput(elements[i]); 4743 } 4744 } 4745}; 4746 4747// Global initialization 4748IpixImageInput.init = function () { 4749 IpixImageInput.createInstances(); 4750}; 4751 4752// Webpack Support 4753if ( true && typeof module.exports !== 'undefined') { 4754 module.exports = IpixImageInput; 4755} 4756 4757/***/ }), 4758
4759/***/ "./resources/js/layouts/components/menu.js": 4760/*!*************************************************!*\ 4761 !*** ./resources/js/layouts/components/menu.js ***! 4762 \*************************************************/ 4763/***/ ((module) => { 4764 4765"use strict"; 4766 4767 4768var IpixMenuHandlersInitialized = false; 4769 4770// Class definition 4771var IpixMenu = function (element, options) { 4772 //////////////////////////// 4773 // ** Private Variables ** // 4774 //////////////////////////// 4775 var the = this; 4776 if (typeof element === "undefined" || element === null) { 4777 return; 4778 } 4779 4780 // Default Options 4781 var defaultOptions = { 4782 dropdown: { 4783 hoverTimeout: 200, 4784 zindex: 107 4785 }, 4786 accordion: { 4787 slideSpeed: 250, 4788 expand: false 4789 } 4790 }; 4791 4792 //////////////////////////// 4793 // ** Private Methods ** // 4794 //////////////////////////// 4795 4796 var _construct = function () { 4797 if (IpixUtil.data(element).has('menu') === true) { 4798 the = IpixUtil.data(element).get('menu'); 4799 } else { 4800 _init(); 4801 } 4802 }; 4803 var _init = function () { 4804 the.options = IpixUtil.deepExtend({}, defaultOptions, options); 4805 the.uid = IpixUtil.getUniqueId('menu'); 4806 the.element = element; 4807 the.triggerElement; 4808 the.disabled = false; 4809 4810 // Set initialized 4811 the.element.setAttribute('data-kt-menu', 'true'); 4812 _setTriggerElement(); 4813 _update(); 4814 IpixUtil.data(the.element).set('menu', the); 4815 }; 4816 var _destroy = function () {// todo 4817 }; 4818 4819 // Event Handlers 4820 // Toggle handler 4821 var _click = function (element, e) { 4822 e.preventDefault(); 4823 if (the.disabled === true) { 4824 return; 4825 } 4826 var item = _getItemElement(element); 4827 if (_getOptionFromElementAttribute(item, 'trigger') !== 'click') { 4828 return; 4829 } 4830 if (_getOptionFromElementAttribute(item, 'toggle') === false) { 4831 _show(item); 4832 } else { 4833 _toggle(item); 4834 } 4835 }; 4836 4837 // Link handler 4838 var _link = function (element, e) { 4839 if (the.disabled === true) { 4840 return; 4841 } 4842 if (IpixEventHandler.trigger(the.element, 'kt.menu.link.click', element) === false) { 4843 return; 4844 } 4845 4846 // Dismiss all shown dropdowns 4847 IpixMenu.hideDropdowns(); 4848 IpixEventHandler.trigger(the.element, 'kt.menu.link.clicked', element); 4849 }; 4850 4851 // Dismiss handler 4852 var _dismiss = function (element, e) { 4853 var item = _getItemElement(element); 4854 var items = _getItemChildElements(item); 4855 if (item !== null && _getItemSubType(item) === 'dropdown') { 4856 _hide(item); // hide items dropdown 4857 // Hide all child elements as well 4858 4859 if (items.length > 0) { 4860 for (var i = 0, len = items.length; i < len; i++) { 4861 if (items[i] !== null && _getItemSubType(items[i]) === 'dropdown') { 4862 _hide(tems[i]); 4863 } 4864 } 4865 } 4866 } 4867 }; 4868 4869 // Mouseover handle 4870 var _mouseover = function (element, e) { 4871 var item = _getItemElement(element); 4872 if (the.disabled === true) { 4873 return; 4874 } 4875 if (item === null) { 4876 return; 4877 } 4878 if (_getOptionFromElementAttribute(item, 'trigger') !== 'hover') { 4879 return; 4880 } 4881 if (IpixUtil.data(item).get('hover') === '1') { 4882 clearTimeout(IpixUtil.data(item).get('timeout')); 4883 IpixUtil.data(item).remove('hover'); 4884 IpixUtil.data(item).remove('timeout'); 4885 } 4886 _show(item); 4887 }; 4888 4889 // Mouseout handle 4890 var _mouseout = function (element, e) { 4891 var item = _getItemElement(element); 4892 if (the.disabled === true) { 4893 return; 4894 } 4895 if (item === null) { 4896 return; 4897 } 4898 if (_getOptionFromElementAttribute(item, 'trigger') !== 'hover') { 4899 return; 4900 } 4901 var timeout = setTimeout(function () { 4902 if (IpixUtil.data(item).get('hover') === '1') { 4903 _hide(item); 4904 } 4905 }, the.options.dropdown.hoverTimeout); 4906 IpixUtil.data(item).set('hover', '1'); 4907 IpixUtil.data(item).set('timeout', timeout); 4908 }; 4909 4910 // Toggle item sub 4911 var _toggle = function (item) { 4912 if (!item) { 4913 item = the.triggerElement; 4914 } 4915 if (_isItemSubShown(item) === true) { 4916 _hide(item); 4917 } else { 4918 _show(item); 4919 } 4920 }; 4921 4922 // Show item sub 4923 var _show = function (item) { 4924 if (!item) { 4925 item = the.triggerElement; 4926 } 4927 if (_isItemSubShown(item) === true) { 4928 return; 4929 } 4930 if (_getItemSubType(item) === 'dropdown') { 4931 _showDropdown(item); // // show current dropdown 4932 } else if (_getItemSubType(item) === 'accordion') { 4933 _showAccordion(item); 4934 } 4935 4936 // Remember last submenu type 4937 IpixUtil.data(item).set('type', _getItemSubType(item)); // updated 4938 }; 4939 4940 // Hide item sub 4941 var _hide = function (item) { 4942 if (!item) { 4943 item = the.triggerElement; 4944 } 4945 if (_isItemSubShown(item) === false) { 4946 return; 4947 } 4948 if (_getItemSubType(item) === 'dropdown') { 4949 _hideDropdown(item); 4950 } else if (_getItemSubType(item) === 'accordion') { 4951 _hideAccordion(item); 4952 } 4953 }; 4954 4955 // Reset item state classes if item sub type changed 4956 var _reset = function (item) { 4957 if (_hasItemSub(item) === false) { 4958 return; 4959 } 4960 var sub = _getItemSubElement(item); 4961 4962 // Reset sub state if sub type is changed during the window resize 4963 if (IpixUtil.data(item).has('type') && IpixUtil.data(item).get('type') !== _getItemSubType(item)) { 4964 // updated 4965 IpixUtil.removeClass(item, 'hover'); 4966 IpixUtil.removeClass(item, 'show'); 4967 IpixUtil.removeClass(sub, 'show'); 4968 } // updated 4969 }; 4970 4971 // Update all item state classes if item sub type changed 4972 var _update = function () { 4973 var items = the.element.querySelectorAll('.menu-item[data-kt-menu-trigger]'); 4974 if (items && items.length > 0) { 4975 for (var i = 0, len = items.length; i < len; i++) { 4976 _reset(items[i]); 4977 } 4978 } 4979 }; 4980 4981 // Set external trigger element 4982 var _setTriggerElement = function () { 4983 var target = document.querySelector('[data-kt-menu-target="# ' + the.element.getAttribute('id') + '"]'); 4984 if (target !== null) { 4985 the.triggerElement = target; 4986 } else if (the.element.closest('[data-kt-menu-trigger]')) { 4987 the.triggerElement = the.element.closest('[data-kt-menu-trigger]'); 4988 } else if (the.element.parentNode && IpixUtil.child(the.element.parentNode, '[data-kt-menu-trigger]')) { 4989 the.triggerElement = IpixUtil.child(the.element.parentNode, '[data-kt-menu-trigger]'); 4990 } 4991 if (the.triggerElement) { 4992 IpixUtil.data(the.triggerElement).set('menu', the); 4993 } 4994 }; 4995 4996 // Test if menu has external trigger element 4997 var _isTriggerElement = function (item) { 4998 return the.triggerElement === item ? true : false;
4999 }; 5000 5001 // Test if item's sub is shown 5002 var _isItemSubShown = function (item) { 5003 var sub = _getItemSubElement(item); 5004 if (sub !== null) { 5005 if (_getItemSubType(item) === 'dropdown') { 5006 if (IpixUtil.hasClass(sub, 'show') === true && sub.hasAttribute('data-popper-placement') === true) { 5007 return true; 5008 } else { 5009 return false; 5010 } 5011 } else { 5012 return IpixUtil.hasClass(item, 'show'); 5013 } 5014 } else { 5015 return false; 5016 } 5017 }; 5018 5019 // Test if item dropdown is permanent 5020 var _isItemDropdownPermanent = function (item) { 5021 return _getOptionFromElementAttribute(item, 'permanent') === true ? true : false; 5022 }; 5023 5024 // Test if item's parent is shown 5025 var _isItemParentShown = function (item) { 5026 return IpixUtil.parents(item, '.menu-item.show').length > 0; 5027 }; 5028 5029 // Test of it is item sub element 5030 var _isItemSubElement = function (item) { 5031 return IpixUtil.hasClass(item, 'menu-sub'); 5032 }; 5033 5034 // Test if item has sub 5035 var _hasItemSub = function (item) { 5036 return IpixUtil.hasClass(item, 'menu-item') && item.hasAttribute('data-kt-menu-trigger'); 5037 }; 5038 5039 // Get link element 5040 var _getItemLinkElement = function (item) { 5041 return IpixUtil.child(item, '.menu-link'); 5042 }; 5043 5044 // Get toggle element 5045 var _getItemToggleElement = function (item) { 5046 if (the.triggerElement) { 5047 return the.triggerElement; 5048 } else { 5049 return _getItemLinkElement(item); 5050 } 5051 }; 5052 5053 // Get item sub element 5054 var _getItemSubElement = function (item) { 5055 if (_isTriggerElement(item) === true) { 5056 return the.element; 5057 } 5058 if (item.classList.contains('menu-sub') === true) { 5059 return item; 5060 } else if (IpixUtil.data(item).has('sub')) { 5061 return IpixUtil.data(item).get('sub'); 5062 } else { 5063 return IpixUtil.child(item, '.menu-sub'); 5064 } 5065 }; 5066 5067 // Get item sub type 5068 var _getItemSubType = function (element) { 5069 var sub = _getItemSubElement(element); 5070 if (sub && parseInt(IpixUtil.css(sub, 'z-index')) > 0) { 5071 return "dropdown"; 5072 } else { 5073 return "accordion"; 5074 } 5075 }; 5076 5077 // Get item element 5078 var _getItemElement = function (element) { 5079 var item, sub; 5080 5081 // Element is the external trigger element 5082 if (_isTriggerElement(element)) { 5083 return element; 5084 } 5085 5086 // Element has item toggler attribute 5087 if (element.hasAttribute('data-kt-menu-trigger')) { 5088 return element; 5089 } 5090 5091 // Element has item DOM reference in it's data storage 5092 if (IpixUtil.data(element).has('item')) { 5093 return IpixUtil.data(element).get('item'); 5094 } 5095 5096 // Item is parent of element 5097 if (item = element.closest('.menu-item[data-kt-menu-trigger]')) { 5098 return item; 5099 } 5100 5101 // Element's parent has item DOM reference in it's data storage 5102 if (sub = element.closest('.menu-sub')) { 5103 if (IpixUtil.data(sub).has('item') === true) { 5104 return IpixUtil.data(sub).get('item'); 5105 } 5106 } 5107 }; 5108 5109 // Get item parent element 5110 var _getItemParentElement = function (item) { 5111 var sub = item.closest('.menu-sub'); 5112 var parentItem; 5113 if (IpixUtil.data(sub).has('item')) { 5114 return IpixUtil.data(sub).get('item'); 5115 } 5116 if (sub && (parentItem = sub.closest('.menu-item[data-kt-menu-trigger]'))) { 5117 return parentItem; 5118 } 5119 return null; 5120 }; 5121 5122 // Get item parent elements 5123 var _getItemParentElements = function (item) { 5124 var parents = []; 5125 var parent; 5126 var i = 0; 5127 do { 5128 parent = _getItemParentElement(item); 5129 if (parent) { 5130 parents.push(parent); 5131 item = parent; 5132 } 5133 i++; 5134 } while (parent !== null && i < 20); 5135 if (the.triggerElement) { 5136 parents.unshift(the.triggerElement); 5137 } 5138 return parents; 5139 }; 5140 5141 // Get item child element 5142 var _getItemChildElement = function (item) { 5143 var selector = item; 5144 var element; 5145 if (IpixUtil.data(item).get('sub')) { 5146 selector = IpixUtil.data(item).get('sub'); 5147 } 5148 if (selector !== null) { 5149 //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]'); 5150 element = selector.querySelector('.menu-item[data-kt-menu-trigger]'); 5151 if (element) { 5152 return element; 5153 } else { 5154 return null; 5155 } 5156 } else { 5157 return null; 5158 } 5159 }; 5160 5161 // Get item child elements 5162 var _getItemChildElements = function (item) { 5163 var children = []; 5164 var child; 5165 var i = 0; 5166 do { 5167 child = _getItemChildElement(item); 5168 if (child) { 5169 children.push(child); 5170 item = child; 5171 } 5172 i++; 5173 } while (child !== null && i < 20); 5174 return children; 5175 }; 5176 5177 // Show item dropdown 5178 var _showDropdown = function (item) { 5179 // Handle dropdown show event 5180 if (IpixEventHandler.trigger(the.element, 'kt.menu.dropdown.show', item) === false) { 5181 return; 5182 } 5183 5184 // Hide all currently shown dropdowns except current one 5185 IpixMenu.hideDropdowns(item); 5186 var toggle = _isTriggerElement(item) ? item : _getItemLinkElement(item); 5187 var sub = _getItemSubElement(item); 5188 var width = _getOptionFromElementAttribute(item, 'width'); 5189 var height = _getOptionFromElementAttribute(item, 'height'); 5190 var zindex = the.options.dropdown.zindex; // update 5191 var parentZindex = IpixUtil.getHighestZindex(item); // update 5192 5193 // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update 5194 if (parentZindex !== null && parentZindex >= zindex) { 5195 zindex = parentZindex + 1; 5196 } 5197 if (zindex > 0) { 5198 IpixUtil.css(sub, 'z-index', zindex); 5199 } 5200 if (width !== null) { 5201 IpixUtil.css(sub, 'width', width); 5202 } 5203 if (height !== null) { 5204 IpixUtil.css(sub, 'height', height); 5205 } 5206 IpixUtil.css(sub, 'display', ''); 5207 IpixUtil.css(sub, 'overflow', ''); 5208 5209 // Init popper(new) 5210 _initDropdownPopper(item, sub); 5211 IpixUtil.addClass(item, 'show'); 5212 IpixUtil.addClass(item, 'menu-dropdown'); 5213 IpixUtil.addClass(sub, 'show'); 5214 5215 // Append the sub the the root of the menu 5216 if (_getOptionFromElementAttribute(item, 'overflow') === true) { 5217 document.body.appendChild(sub); 5218 IpixUtil.data(item).set('sub', sub); 5219 IpixUtil.data(sub).set('item', item); 5220 IpixUtil.data(sub).set('menu', the); 5221 } else { 5222 IpixUtil.data(sub).set('item', item); 5223 } 5224 5225 // Handle dropdown shown event 5226 IpixEventHandler.trigger(the.element, 'kt.menu.dropdown.shown', item); 5227 }; 5228 5229 // Hide item dropdown 5230 var _hideDropdown = function (item) { 5231 // Handle dropdown hide event 5232 if (IpixEventHandler.trigger(the.element, 'kt.menu.dropdown.hide', item) === false) { 5233 return; 5234 } 5235 var sub = _getItemSubElement(item); 5236 IpixUtil.css(sub, 'z-index', ''); 5237 IpixUtil.css(sub, 'width', ''); 5238 IpixUtil.css(sub, 'height', ''); 5239 IpixUtil.removeClass(item, 'show'); 5240 IpixUtil.removeClass(item, 'menu-dropdown'); 5241 IpixUtil.removeClass(sub, 'show'); 5242 5243 // Append the sub back to it's parent 5244 if (_getOptionFromElementAttribute(item, 'overflow') === true) { 5245 if (item.classList.contains('menu-item')) { 5246 item.appendChild(sub); 5247 } else { 5248 IpixUtil.insertAfter(the.element, item); 5249 } 5250 IpixUtil.data(item).remove('sub'); 5251 IpixUtil.data(sub).remove('item'); 5252 IpixUtil.data(sub).remove('menu'); 5253 } 5254 5255 // Destroy popper(new) 5256 _destroyDropdownPopper(item); 5257 5258 // Handle dropdown hidden event 5259 IpixEventHandler.trigger(the.element, 'kt.menu.dropdown.hidden', item); 5260 }; 5261 5262 // Init dropdown popper(new) 5263 var _initDropdownPopper = function (item, sub) { 5264 // Setup popper instance 5265 var reference; 5266 var attach = _getOptionFromElementAttribute(item, 'attach'); 5267 if (attach) { 5268 if (attach === 'parent') { 5269 reference = item.parentNode; 5270 } else { 5271 reference = document.querySelector(attach); 5272 } 5273 } else { 5274 reference = item; 5275 } 5276 var popper = Popper.createPopper(reference, sub, _getDropdownPopperConfig(item)); 5277 IpixUtil.data(item).set('popper', popper); 5278 }; 5279 5280 // Destroy dropdown popper(new) 5281 var _destroyDropdownPopper = function (item) { 5282 if (IpixUtil.data(item).has('popper') === true) { 5283 IpixUtil.data(item).get('popper').destroy(); 5284 IpixUtil.data(item).remove('popper'); 5285 } 5286 }; 5287 5288 // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/) 5289 var _getDropdownPopperConfig = function (item) { 5290 // Placement 5291 var placement = _getOptionFromElementAttribute(item, 'placement'); 5292 if (!placement) { 5293 placement = 'right'; 5294 } 5295 5296 // Offset 5297 var offsetValue = _getOptionFromElementAttribute(item, 'offset'); 5298 var offset = offsetValue ? offsetValue.split(",") : []; 5299 if (offset.length === 2) { 5300 offset[0] = parseInt(offset[0]); 5301 offset[1] = parseInt(offset[1]); 5302 } 5303 5304 // Strategy 5305 var strategy = _getOptionFromElementAttribute(item, 'overflow') === true ? 'absolute' : 'fixed'; 5306 var altAxis = _getOptionFromElementAttribute(item, 'flip') !== false ? true : false;
5307 var popperConfig = { 5308 placement: placement, 5309 strategy: strategy, 5310 modifiers: [{ 5311 name: 'offset', 5312 options: { 5313 offset: offset 5314 } 5315 }, { 5316 name: 'preventOverflow', 5317 options: { 5318 altAxis: altAxis 5319 } 5320 }, { 5321 name: 'flip', 5322 options: { 5323 flipVariations: false 5324 } 5325 }] 5326 }; 5327 return popperConfig; 5328 }; 5329 5330 // Show item accordion 5331 var _showAccordion = function (item) { 5332 if (IpixEventHandler.trigger(the.element, 'kt.menu.accordion.show', item) === false) { 5333 return; 5334 } 5335 var sub = _getItemSubElement(item); 5336 var expand = the.options.accordion.expand; 5337 if (_getOptionFromElementAttribute(item, 'expand') === true) { 5338 expand = true; 5339 } else if (_getOptionFromElementAttribute(item, 'expand') === false) { 5340 expand = false; 5341 } else if (_getOptionFromElementAttribute(the.element, 'expand') === true) { 5342 expand = true; 5343 } 5344 if (expand === false) { 5345 _hideAccordions(item); 5346 } 5347 if (IpixUtil.data(item).has('popper') === true) { 5348 _hideDropdown(item); 5349 } 5350 IpixUtil.addClass(item, 'hover'); 5351 IpixUtil.addClass(item, 'showing'); 5352 IpixUtil.slideDown(sub, the.options.accordion.slideSpeed, function () { 5353 IpixUtil.removeClass(item, 'showing'); 5354 IpixUtil.addClass(item, 'show'); 5355 IpixUtil.addClass(sub, 'show'); 5356 IpixEventHandler.trigger(the.element, 'kt.menu.accordion.shown', item); 5357 }); 5358 }; 5359 5360 // Hide item accordion 5361 var _hideAccordion = function (item) { 5362 if (IpixEventHandler.trigger(the.element, 'kt.menu.accordion.hide', item) === false) { 5363 return; 5364 } 5365 var sub = _getItemSubElement(item); 5366 IpixUtil.addClass(item, 'hiding'); 5367 IpixUtil.slideUp(sub, the.options.accordion.slideSpeed, function () { 5368 IpixUtil.removeClass(item, 'hiding'); 5369 IpixUtil.removeClass(item, 'show'); 5370 IpixUtil.removeClass(sub, 'show'); 5371 IpixUtil.removeClass(item, 'hover'); // update 5372 5373 IpixEventHandler.trigger(the.element, 'kt.menu.accordion.hidden', item); 5374 }); 5375 }; 5376 var _setActiveLink = function (link) { 5377 var item = _getItemElement(link); 5378 var parentItems = _getItemParentElements(item); 5379 var parentTabPane = link.closest('.tab-pane'); 5380 var activeLinks = [].slice.call(the.element.querySelectorAll('.menu-link.active')); 5381 var activeParentItems = [].slice.call(the.element.querySelectorAll('.menu-item.here, .menu-item.show')); 5382 if (_getItemSubType(item) === "accordion") { 5383 _showAccordion(item); 5384 } else { 5385 item.classList.add("here"); 5386 } 5387 if (parentItems && parentItems.length > 0) { 5388 for (var i = 0, len = parentItems.length; i < len; i++) { 5389 var parentItem = parentItems[i]; 5390 if (_getItemSubType(parentItem) === "accordion") { 5391 _showAccordion(parentItem); 5392 } else { 5393 parentItem.classList.add("here"); 5394 } 5395 } 5396 } 5397 activeLinks.map(function (activeLink) { 5398 activeLink.classList.remove("active"); 5399 }); 5400 activeParentItems.map(function (activeParentItem) { 5401 if (activeParentItem.contains(item) === false) { 5402 activeParentItem.classList.remove("here"); 5403 activeParentItem.classList.remove("show"); 5404 } 5405 }); 5406 5407 // Handle tab 5408 if (parentTabPane && bootstrap.Tab) { 5409 var tabEl = the.element.querySelector('[data-bs-target="#' + parentTabPane.getAttribute("id") + '"]'); 5410 var tab = new bootstrap.Tab(tabEl); 5411 if (tab) { 5412 tab.show(); 5413 } 5414 } 5415 link.classList.add("active"); 5416 }; 5417 var _getLinkByAttribute = function (value, name = "href") { 5418 var link = the.element.querySelector('a[' + name + '="' + value + '"]'); 5419 if (link) { 5420 return link; 5421 } else { 5422 null; 5423 } 5424 }; 5425 5426 // Hide all shown accordions of item 5427 var _hideAccordions = function (item) { 5428 var itemsToHide = IpixUtil.findAll(the.element, '.show[data-kt-menu-trigger]'); 5429 var itemToHide; 5430 if (itemsToHide && itemsToHide.length > 0) { 5431 for (var i = 0, len = itemsToHide.length; i < len; i++) { 5432 itemToHide = itemsToHide[i]; 5433 if (_getItemSubType(itemToHide) === 'accordion' && itemToHide !== item && item.contains(itemToHide) === false && itemToHide.contains(item) === false) { 5434 _hideAccordion(itemToHide); 5435 } 5436 } 5437 } 5438 }; 5439 5440 // Get item option(through html attributes) 5441 var _getOptionFromElementAttribute = function (item, name) { 5442 var attr; 5443 var value = null; 5444 if (item && item.hasAttribute('data-kt-menu-' + name)) { 5445 attr = item.getAttribute('data-kt-menu-' + name); 5446 value = IpixUtil.getResponsiveValue(attr); 5447 if (value !== null && String(value) === 'true') { 5448 value = true; 5449 } else if (value !== null && String(value) === 'false') { 5450 value = false;
5451 } 5452 } 5453 return value; 5454 }; 5455 var _destroy = function () { 5456 IpixUtil.data(the.element).remove('menu'); 5457 }; 5458 5459 // Construct Class 5460 _construct(); 5461 5462 /////////////////////// 5463 // ** Public API ** // 5464 /////////////////////// 5465 5466 // Event Handlers 5467 the.click = function (element, e) { 5468 return _click(element, e); 5469 }; 5470 the.link = function (element, e) { 5471 return _link(element, e); 5472 }; 5473 the.dismiss = function (element, e) { 5474 return _dismiss(element, e); 5475 }; 5476 the.mouseover = function (element, e) { 5477 return _mouseover(element, e); 5478 }; 5479 the.mouseout = function (element, e) { 5480 return _mouseout(element, e); 5481 }; 5482 5483 // General Methods 5484 the.getItemTriggerType = function (item) { 5485 return _getOptionFromElementAttribute(item, 'trigger'); 5486 }; 5487 the.getItemSubType = function (element) { 5488 return _getItemSubType(element); 5489 }; 5490 the.show = function (item) { 5491 return _show(item); 5492 }; 5493 the.hide = function (item) { 5494 return _hide(item); 5495 }; 5496 the.toggle = function (item) { 5497 return _toggle(item); 5498 }; 5499 the.reset = function (item) { 5500 return _reset(item); 5501 }; 5502 the.update = function () { 5503 return _update(); 5504 }; 5505 the.getElement = function () { 5506 return the.element; 5507 }; 5508 the.setActiveLink = function (link) { 5509 return _setActiveLink(link); 5510 }; 5511 the.getLinkByAttribute = function (value, name = "href") { 5512 return _getLinkByAttribute(value, name); 5513 }; 5514 the.getItemLinkElement = function (item) { 5515 return _getItemLinkElement(item); 5516 }; 5517 the.getItemToggleElement = function (item) { 5518 return _getItemToggleElement(item); 5519 }; 5520 the.getItemSubElement = function (item) { 5521 return _getItemSubElement(item); 5522 }; 5523 the.getItemParentElements = function (item) { 5524 return _getItemParentElements(item); 5525 }; 5526 the.isItemSubShown = function (item) { 5527 return _isItemSubShown(item); 5528 }; 5529 the.isItemParentShown = function (item) { 5530 return _isItemParentShown(item); 5531 }; 5532 the.getTriggerElement = function () { 5533 return the.triggerElement; 5534 }; 5535 the.isItemDropdownPermanent = function (item) { 5536 return _isItemDropdownPermanent(item); 5537 }; 5538 the.destroy = function () { 5539 return _destroy(); 5540 }; 5541 the.disable = function () { 5542 the.disabled = true; 5543 }; 5544 the.enable = function () { 5545 the.disabled = false; 5546 }; 5547 5548 // Accordion Mode Methods 5549 the.hideAccordions = function (item) { 5550 return _hideAccordions(item); 5551 }; 5552 5553 // Event API 5554 the.on = function (name, handler) { 5555 return IpixEventHandler.on(the.element, name, handler); 5556 }; 5557 the.one = function (name, handler) { 5558 return IpixEventHandler.one(the.element, name, handler); 5559 }; 5560 the.off = function (name, handlerId) { 5561 return IpixEventHandler.off(the.element, name, handlerId); 5562 }; 5563}; 5564 5565// Get IpixMenu instance by element 5566IpixMenu.getInstance = function (element) { 5567 var menu; 5568 var item; 5569 if (!element) { 5570 return null; 5571 } 5572 5573 // Element has menu DOM reference in it's DATA storage 5574 if (IpixUtil.data(element).has('menu')) { 5575 return IpixUtil.data(element).get('menu'); 5576 } 5577 5578 // Element has .menu parent 5579 if (menu = element.closest('.menu')) { 5580 if (IpixUtil.data(menu).has('menu')) { 5581 return IpixUtil.data(menu).get('menu'); 5582 } 5583 } 5584 5585 // Element has a parent with DOM reference to .menu in it's DATA storage 5586 if (IpixUtil.hasClass(element, 'menu-link')) { 5587 var sub = element.closest('.menu-sub'); 5588 if (IpixUtil.data(sub).has('menu')) { 5589 return IpixUtil.data(sub).get('menu'); 5590 } 5591 } 5592 return null; 5593}; 5594 5595// Hide all dropdowns and skip one if provided 5596IpixMenu.hideDropdowns = function (skip) { 5597 var items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]'); 5598 if (items && items.length > 0) { 5599 for (var i = 0, len = items.length; i < len; i++) { 5600 var item = items[i]; 5601 var menu = IpixMenu.getInstance(item); 5602 if (menu && menu.getItemSubType(item) === 'dropdown') { 5603 if (skip) { 5604 if (menu.getItemSubElement(item).contains(skip) === false && item.contains(skip) === false && item !== skip) { 5605 menu.hide(item); 5606 } 5607 } else { 5608 menu.hide(item); 5609 } 5610 } 5611 } 5612 } 5613}; 5614 5615// Update all dropdowns popover instances 5616IpixMenu.updateDropdowns = function () { 5617 var items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]'); 5618 if (items && items.length > 0) { 5619 for (var i = 0, len = items.length; i < len; i++) { 5620 var item = items[i]; 5621 if (IpixUtil.data(item).has('popper')) { 5622 IpixUtil.data(item).get('popper').forceUpdate(); 5623 } 5624 } 5625 } 5626}; 5627 5628// Global handlers 5629IpixMenu.initHandlers = function () { 5630 // Dropdown handler 5631 document.addEventListener("click", function (e) { 5632 var items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]:not([data-kt-menu-static="true"])'); 5633 var menu; 5634 var item; 5635 var sub; 5636 var menuObj; 5637 if (items && items.length > 0) { 5638 for (var i = 0, len = items.length; i < len; i++) { 5639 item = items[i]; 5640 menuObj = IpixMenu.getInstance(item); 5641 if (menuObj && menuObj.getItemSubType(item) === 'dropdown') { 5642 menu = menuObj.getElement(); 5643 sub = menuObj.getItemSubElement(item); 5644 if (item === e.target || item.contains(e.target)) { 5645 continue; 5646 } 5647 if (sub === e.target || sub.contains(e.target)) { 5648 continue; 5649 } 5650 menuObj.hide(item); 5651 } 5652 } 5653 } 5654 }); 5655 5656 // Sub toggle handler(updated) 5657 IpixUtil.on(document.body, '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger="auto"])', 'click', function (e) {
5658 var menu = IpixMenu.getInstance(this); 5659 if (menu !== null) { 5660 return menu.click(this, e); 5661 } 5662 }); 5663 5664 // Link handler 5665 IpixUtil.on(document.body, '.menu-item:not([data-kt-menu-trigger]) > .menu-link', 'click', function (e) { 5666 var menu = IpixMenu.getInstance(this); 5667 if (menu !== null) { 5668 return menu.link(this, e); 5669 } 5670 }); 5671 5672 // Dismiss handler 5673 IpixUtil.on(document.body, '[data-kt-menu-dismiss="true"]', 'click', function (e) { 5674 var menu = IpixMenu.getInstance(this); 5675 if (menu !== null) { 5676 return menu.dismiss(this, e); 5677 } 5678 }); 5679 5680 // Mouseover handler 5681 IpixUtil.on(document.body, '[data-kt-menu-trigger], .menu-sub', 'mouseover', function (e) { 5682 var menu = IpixMenu.getInstance(this); 5683 if (menu !== null && menu.getItemSubType(this) === 'dropdown') { 5684 return menu.mouseover(this, e); 5685 } 5686 }); 5687 5688 // Mouseout handler 5689 IpixUtil.on(document.body, '[data-kt-menu-trigger], .menu-sub', 'mouseout', function (e) { 5690 var menu = IpixMenu.getInstance(this); 5691 if (menu !== null && menu.getItemSubType(this) === 'dropdown') { 5692 return menu.mouseout(this, e); 5693 } 5694 }); 5695 5696 // Resize handler 5697 window.addEventListener('resize', function () { 5698 var menu; 5699 var timer; 5700 IpixUtil.throttle(timer, function () { 5701 // Locate and update Offcanvas instances on window resize 5702 var elements = document.querySelectorAll('[data-kt-menu="true"]'); 5703 if (elements && elements.length > 0) { 5704 for (var i = 0, len = elements.length; i < len; i++) { 5705 menu = IpixMenu.getInstance(elements[i]); 5706 if (menu) { 5707 menu.update(); 5708 } 5709 } 5710 } 5711 }, 200); 5712 }); 5713}; 5714 5715// Render menus by url 5716IpixMenu.updateByLinkAttribute = function (value, name = "href") { 5717 // Locate and update Offcanvas instances on window resize 5718 var elements = document.querySelectorAll('[data-kt-menu="true"]'); 5719 if (elements && elements.length > 0) { 5720 for (var i = 0, len = elements.length; i < len; i++) { 5721 var menu = IpixMenu.getInstance(elements[i]); 5722 if (menu) { 5723 var link = menu.getLinkByAttribute(value, name); 5724 if (link) { 5725 menu.setActiveLink(link); 5726 } 5727 } 5728 } 5729 } 5730}; 5731 5732// Global instances 5733IpixMenu.createInstances = function (selector = '[data-kt-menu="true"]') { 5734 // Initialize menus 5735 var elements = document.querySelectorAll(selector); 5736 if (elements && elements.length > 0) { 5737 for (var i = 0, len = elements.length; i < len; i++) { 5738 new IpixMenu(elements[i]); 5739 } 5740 } 5741}; 5742 5743// Global initialization 5744IpixMenu.init = function () { 5745 IpixMenu.createInstances(); 5746 if (IpixMenuHandlersInitialized === false) { 5747 IpixMenu.initHandlers(); 5748 IpixMenuHandlersInitialized = true; 5749 } 5750}; 5751 5752// Webpack support 5753if ( true && typeof module.exports !== 'undefined') { 5754 module.exports = IpixMenu; 5755} 5756 5757/***/ }), 5758
5759/***/ "./resources/js/layouts/components/modal.js": 5760/*!**************************************************!*\ 5761 !*** ./resources/js/layouts/components/modal.js ***! 5762 \**************************************************/ 5763/***/ ((module) => { 5764 5765"use strict"; 5766 5767 5768var IpixModal = function () {}; 5769IpixModal.initModal = () => { 5770 const closeButton = document.querySelector('[data-kt-modal-action="close"]'); 5771 if (closeButton) { 5772 closeButton.addEventListener('click', e => { 5773 e.preventDefault(); 5774 $(closeButton).parents(".modal").modal("hide"); 5775 }); 5776 } 5777 const cancelButton = document.querySelector('[data-kt-modal-action="cancel"]'); 5778 if (cancelButton) { 5779 cancelButton.addEventListener('click', e => { 5780 e.preventDefault(); 5781 $(closeButton).parents(".modal").modal("hide"); 5782 }); 5783 } 5784}; 5785IpixModal.handleLoadRemoteHtml = function () { 5786 const loadButtons = document.querySelectorAll('[kt-load-remote-html="true"][kt-load-remote-init="false"]'); 5787 if (loadButtons && $(loadButtons).length) { 5788 loadButtons.forEach(function (el) { 5789 el.setAttribute('kt-load-remote-init', 'true'); 5790 el.addEventListener('click', function () { 5791 $.ajax({ 5792 method: "GET", 5793 url: $(el).data('url'), 5794 success: function (data) { 5795 $("#model-area").html(data.html); 5796 $.each(data.scripts, function (key, script) { 5797 $.getScript(script); 5798 }); 5799 IpixApp.createSelect2(); 5800 IpixForm.autoCompleteDisable(); 5801 IpixModal.initModal(); 5802 IpixMenu.createInstances(); 5803 } 5804 }); 5805 }); 5806 }); 5807 } 5808}; 5809IpixModal.init = function () { 5810 IpixModal.handleLoadRemoteHtml(); 5811}; 5812IpixUtil.onDOMContentLoaded(function () { 5813 IpixModal.init(); 5814}); 5815 5816// Webpack support 5817if ( true && typeof module.exports !== 'undefined') { 5818 module.exports = IpixModal; 5819} 5820 5821/***/ }), 5822
5823/***/ "./resources/js/layouts/components/password-meter.js": 5824/*!***********************************************************!*\ 5825 !*** ./resources/js/layouts/components/password-meter.js ***! 5826 \***********************************************************/ 5827/***/ ((module) => { 5828 5829"use strict"; 5830 5831 5832// Class definition 5833var IpixPasswordMeter = function (element, options) { 5834 //////////////////////////// 5835 // ** Private variables ** // 5836 //////////////////////////// 5837 var the = this; 5838 if (!element) { 5839 return; 5840 } 5841 5842 // Default Options 5843 var defaultOptions = { 5844 minLength: 8, 5845 checkUppercase: true, 5846 checkLowercase: true, 5847 checkDigit: true, 5848 checkChar: true, 5849 scoreHighlightClass: 'active' 5850 }; 5851 5852 //////////////////////////// 5853 // ** Private methods ** // 5854 //////////////////////////// 5855 5856 // Constructor 5857 var _construct = function () { 5858 if (IpixUtil.data(element).has('password-meter') === true) { 5859 the = IpixUtil.data(element).get('password-meter'); 5860 } else { 5861 _init(); 5862 } 5863 }; 5864 5865 // Initialize 5866 var _init = function () { 5867 // Variables 5868 the.options = IpixUtil.deepExtend({}, defaultOptions, options); 5869 the.score = 0; 5870 the.checkSteps = 5; 5871 5872 // Elements 5873 the.element = element; 5874 the.inputElement = the.element.querySelector('input[type]'); 5875 the.visibilityElement = the.element.querySelector('[data-kt-password-meter-control="visibility"]'); 5876 the.highlightElement = the.element.querySelector('[data-kt-password-meter-control="highlight"]'); 5877 5878 // Set initialized 5879 the.element.setAttribute('data-kt-password-meter', 'true'); 5880 5881 // Event Handlers 5882 _handlers(); 5883 5884 // Bind Instance 5885 IpixUtil.data(the.element).set('password-meter', the); 5886 }; 5887 5888 // Handlers 5889 var _handlers = function () { 5890 if (the.highlightElement) { 5891 the.inputElement.addEventListener('input', function () { 5892 _check(); 5893 }); 5894 } 5895 if (the.visibilityElement) { 5896 the.visibilityElement.addEventListener('click', function () { 5897 _visibility(); 5898 }); 5899 } 5900 }; 5901 5902 // Event handlers 5903 var _check = function () { 5904 var score = 0; 5905 var checkScore = _getCheckScore(); 5906 if (_checkLength() === true) { 5907 score = score + checkScore; 5908 } 5909 if (the.options.checkUppercase === true && _checkLowercase() === true) { 5910 score = score + checkScore; 5911 } 5912 if (the.options.checkLowercase === true && _checkUppercase() === true) { 5913 score = score + checkScore; 5914 } 5915 if (the.options.checkDigit === true && _checkDigit() === true) { 5916 score = score + checkScore; 5917 } 5918 if (the.options.checkChar === true && _checkChar() === true) { 5919 score = score + checkScore; 5920 } 5921 the.score = score; 5922 _highlight(); 5923 }; 5924 var _checkLength = function () { 5925 return the.inputElement.value.length >= the.options.minLength; // 20 score 5926 }; 5927 var _checkLowercase = function () { 5928 return /[a-z]/.test(the.inputElement.value); // 20 score 5929 }; 5930 var _checkUppercase = function () { 5931 return /[A-Z]/.test(the.inputElement.value); // 20 score 5932 }; 5933 var _checkDigit = function () { 5934 return /[0-9]/.test(the.inputElement.value); // 20 score 5935 }; 5936 var _checkChar = function () { 5937 return /[~`!#@$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g.test(the.inputElement.value); // 20 score 5938 }; 5939 var _getCheckScore = function () { 5940 var count = 1; 5941 if (the.options.checkUppercase === true) { 5942 count++; 5943 } 5944 if (the.options.checkLowercase === true) { 5945 count++; 5946 } 5947 if (the.options.checkDigit === true) { 5948 count++; 5949 } 5950 if (the.options.checkChar === true) { 5951 count++; 5952 } 5953 the.checkSteps = count; 5954 return 100 / the.checkSteps; 5955 }; 5956 var _highlight = function () { 5957 var items = [].slice.call(the.highlightElement.querySelectorAll('div')); 5958 var total = items.length; 5959 var index = 0; 5960 var checkScore = _getCheckScore(); 5961 var score = _getScore(); 5962 items.map(function (item) { 5963 index++; 5964 if (checkScore * index * (the.checkSteps / total) <= score) { 5965 item.classList.add('active'); 5966 } else { 5967 item.classList.remove('active'); 5968 } 5969 }); 5970 }; 5971 var _visibility = function () { 5972 var visibleIcon = the.visibilityElement.querySelector('i:not(.d-none), .svg-icon:not(.d-none)'); 5973 var hiddenIcon = the.visibilityElement.querySelector('i.d-none, .svg-icon.d-none'); 5974 if (the.inputElement.getAttribute('type').toLowerCase() === 'password') { 5975 the.inputElement.setAttribute('type', 'text'); 5976 } else { 5977 the.inputElement.setAttribute('type', 'password'); 5978 } 5979 visibleIcon.classList.add('d-none'); 5980 hiddenIcon.classList.remove('d-none'); 5981 the.inputElement.focus(); 5982 }; 5983 var _reset = function () { 5984 the.score = 0; 5985 _highlight(); 5986 }; 5987 5988 // Gets current password score 5989 var _getScore = function () { 5990 return the.score; 5991 }; 5992 var _destroy = function () { 5993 IpixUtil.data(the.element).remove('password-meter'); 5994 }; 5995 5996 // Construct class 5997 _construct(); 5998 5999 /////////////////////// 6000 // ** Public API ** // 6001 /////////////////////// 6002 6003 // Plugin API
6004 the.check = function () { 6005 return _check(); 6006 }; 6007 the.getScore = function () { 6008 return _getScore(); 6009 }; 6010 the.reset = function () { 6011 return _reset(); 6012 }; 6013 the.destroy = function () { 6014 return _destroy(); 6015 }; 6016}; 6017 6018// Static methods 6019IpixPasswordMeter.getInstance = function (element) { 6020 if (element !== null && IpixUtil.data(element).has('password-meter')) { 6021 return IpixUtil.data(element).get('password-meter'); 6022 } else { 6023 return null; 6024 } 6025}; 6026 6027// Create instances 6028IpixPasswordMeter.createInstances = function (selector = '[data-kt-password-meter]') { 6029 // Get instances 6030 var elements = document.body.querySelectorAll(selector); 6031 if (elements && elements.length > 0) { 6032 for (var i = 0, len = elements.length; i < len; i++) { 6033 // Initialize instances 6034 new IpixPasswordMeter(elements[i]); 6035 } 6036 } 6037}; 6038 6039// Global initialization 6040IpixPasswordMeter.init = function () { 6041 IpixPasswordMeter.createInstances(); 6042}; 6043 6044// Webpack support 6045if ( true && typeof module.exports !== 'undefined') { 6046 module.exports = IpixPasswordMeter; 6047} 6048 6049/***/ }), 6050
6051/***/ "./resources/js/layouts/components/scroll.js": 6052/*!***************************************************!*\ 6053 !*** ./resources/js/layouts/components/scroll.js ***! 6054 \***************************************************/ 6055/***/ ((module) => { 6056 6057"use strict"; 6058 6059 6060var IpixScrollHandlersInitialized = false; 6061 6062// Class definition 6063var IpixScroll = function (element, options) { 6064 //////////////////////////// 6065 // ** Private Variables ** // 6066 //////////////////////////// 6067 var the = this; 6068 if (!element) { 6069 return; 6070 } 6071 6072 // Default options 6073 var defaultOptions = { 6074 saveState: true 6075 }; 6076 6077 //////////////////////////// 6078 // ** Private Methods ** // 6079 //////////////////////////// 6080 6081 var _construct = function () { 6082 if (IpixUtil.data(element).has('scroll')) { 6083 the = IpixUtil.data(element).get('scroll'); 6084 } else { 6085 _init(); 6086 } 6087 }; 6088 var _init = function () { 6089 // Variables 6090 the.options = IpixUtil.deepExtend({}, defaultOptions, options); 6091 6092 // Elements 6093 the.element = element; 6094 the.id = the.element.getAttribute('id'); 6095 6096 // Set initialized 6097 the.element.setAttribute('data-kt-scroll', 'true'); 6098 6099 // Update 6100 _update(); 6101 6102 // Bind Instance 6103 IpixUtil.data(the.element).set('scroll', the); 6104 }; 6105 var _setupHeight = function () { 6106 var heightType = _getHeightType(); 6107 var height = _getHeight(); 6108 6109 // Set height 6110 if (height !== null && height.length > 0) { 6111 IpixUtil.css(the.element, heightType, height); 6112 } else { 6113 IpixUtil.css(the.element, heightType, ''); 6114 } 6115 }; 6116 var _setupState = function () { 6117 var namespace = _getStorageNamespace(); 6118 if (_getOption('save-state') === true && the.id) { 6119 if (localStorage.getItem(namespace + the.id + 'st')) { 6120 var pos = parseInt(localStorage.getItem(namespace + the.id + 'st')); 6121 if (pos > 0) { 6122 the.element.scroll({ 6123 top: pos, 6124 behavior: 'instant' 6125 }); 6126 } 6127 } 6128 } 6129 }; 6130 var _getStorageNamespace = function (postfix) { 6131 return document.body.hasAttribute("data-kt-name") ? document.body.getAttribute("data-kt-name") + "_" : ""; 6132 }; 6133 var _setupScrollHandler = function () { 6134 if (_getOption('save-state') === true && the.id) { 6135 the.element.addEventListener('scroll', _scrollHandler); 6136 } else { 6137 the.element.removeEventListener('scroll', _scrollHandler); 6138 } 6139 }; 6140 var _destroyScrollHandler = function () { 6141 the.element.removeEventListener('scroll', _scrollHandler); 6142 }; 6143 var _resetHeight = function () { 6144 IpixUtil.css(the.element, _getHeightType(), ''); 6145 }; 6146 var _scrollHandler = function () { 6147 var namespace = _getStorageNamespace(); 6148 localStorage.setItem(namespace + the.id + 'st', the.element.scrollTop); 6149 }; 6150 var _update = function () { 6151 // Activate/deactivate 6152 if (_getOption('activate') === true || the.element.hasAttribute('data-kt-scroll-activate') === false) { 6153 _setupHeight(); 6154 _setupStretchHeight(); 6155 _setupScrollHandler(); 6156 _setupState(); 6157 } else { 6158 _resetHeight(); 6159 _destroyScrollHandler(); 6160 } 6161 }; 6162 var _setupStretchHeight = function () { 6163 var stretch = _getOption('stretch'); 6164 6165 // Stretch 6166 if (stretch !== null) { 6167 var elements = document.querySelectorAll(stretch); 6168 if (elements && elements.length == 2) { 6169 var element1 = elements[0]; 6170 var element2 = elements[1]; 6171 var diff = _getElementHeight(element2) - _getElementHeight(element1); 6172 if (diff > 0) { 6173 var height = parseInt(IpixUtil.css(the.element, _getHeightType())) + diff; 6174 IpixUtil.css(the.element, _getHeightType(), String(height) + 'px'); 6175 } 6176 } 6177 } 6178 }; 6179 var _getHeight = function () { 6180 var height = _getOption(_getHeightType()); 6181 if (height instanceof Function) { 6182 return height.call(); 6183 } else if (height !== null && typeof height === 'string' && height.toLowerCase() === 'auto') { 6184 return _getAutoHeight(); 6185 } else { 6186 return height; 6187 } 6188 }; 6189 var _getAutoHeight = function () { 6190 var height = IpixUtil.getViewPort().height; 6191 var dependencies = _getOption('dependencies'); 6192 var wrappers = _getOption('wrappers'); 6193 var offset = _getOption('offset'); 6194 6195 // Spacings 6196 height = height - _getElementSpacing(the.element); 6197 if (dependencies !== null) { 6198 var elements = document.querySelectorAll(dependencies); 6199 if (elements && elements.length > 0) { 6200 for (var i = 0, len = elements.length; i < len; i++) { 6201 if (IpixUtil.visible(elements[i]) === false) { 6202 continue; 6203 } 6204 height = height - _getElementHeight(elements[i]); 6205 } 6206 } 6207 } 6208 6209 // Wrappers 6210 if (wrappers !== null) { 6211 var elements = document.querySelectorAll(wrappers); 6212 if (elements && elements.length > 0) { 6213 for (var i = 0, len = elements.length; i < len; i++) { 6214 if (IpixUtil.visible(elements[i]) === false) { 6215 continue; 6216 } 6217 height = height - _getElementSpacing(elements[i]); 6218 } 6219 } 6220 } 6221 6222 // Custom offset 6223 if (offset !== null && typeof offset !== 'object') { 6224 height = height - parseInt(offset); 6225 } 6226 return String(height) + 'px'; 6227 }; 6228 var _getElementHeight = function (element) { 6229 var height = 0; 6230 if (element !== null) { 6231 height = height + parseInt(IpixUtil.css(element, 'height')); 6232 height = height + parseInt(IpixUtil.css(element, 'margin-top')); 6233 height = height + parseInt(IpixUtil.css(element, 'margin-bottom')); 6234 if (IpixUtil.css(element, 'border-top')) { 6235 height = height + parseInt(IpixUtil.css(element, 'border-top')); 6236 } 6237 if (IpixUtil.css(element, 'border-bottom')) { 6238 height = height + parseInt(IpixUtil.css(element, 'border-bottom')); 6239 } 6240 } 6241 return height; 6242 }; 6243 var _getElementSpacing = function (element) { 6244 var spacing = 0; 6245 if (element !== null) { 6246 spacing = spacing + parseInt(IpixUtil.css(element, 'margin-top')); 6247 spacing = spacing + parseInt(IpixUtil.css(element, 'margin-bottom')); 6248 spacing = spacing + parseInt(IpixUtil.css(element, 'padding-top')); 6249 spacing = spacing + parseInt(IpixUtil.css(element, 'padding-bottom')); 6250 if (IpixUtil.css(element, 'border-top')) { 6251 spacing = spacing + parseInt(IpixUtil.css(element, 'border-top')); 6252 } 6253 if (IpixUtil.css(element, 'border-bottom')) { 6254 spacing = spacing + parseInt(IpixUtil.css(element, 'border-bottom')); 6255 } 6256 } 6257 return spacing; 6258 }; 6259 var _getOption = function (name) { 6260 if (the.element.hasAttribute('data-kt-scroll-' + name) === true) { 6261 var attr = the.element.getAttribute('data-kt-scroll-' + name); 6262 var value = IpixUtil.getResponsiveValue(attr); 6263 if (value !== null && String(value) === 'true') { 6264 value = true; 6265 } else if (value !== null && String(value) === 'false') { 6266 value = false;
6267 } 6268 return value; 6269 } else { 6270 var optionName = IpixUtil.snakeToCamel(name); 6271 if (the.options[optionName]) { 6272 return IpixUtil.getResponsiveValue(the.options[optionName]); 6273 } else { 6274 return null; 6275 } 6276 } 6277 }; 6278 var _getHeightType = function () { 6279 if (_getOption('height')) { 6280 return 'height'; 6281 } 6282 if (_getOption('min-height')) { 6283 return 'min-height'; 6284 } 6285 if (_getOption('max-height')) { 6286 return 'max-height'; 6287 } 6288 }; 6289 var _destroy = function () { 6290 IpixUtil.data(the.element).remove('scroll'); 6291 }; 6292 6293 // Construct Class 6294 _construct(); 6295 6296 /////////////////////// 6297 // ** Public API ** // 6298 /////////////////////// 6299 6300 the.update = function () { 6301 return _update(); 6302 }; 6303 the.getHeight = function () { 6304 return _getHeight(); 6305 }; 6306 the.getElement = function () { 6307 return the.element; 6308 }; 6309 the.destroy = function () { 6310 return _destroy(); 6311 }; 6312}; 6313 6314// Static methods 6315IpixScroll.getInstance = function (element) { 6316 if (element !== null && IpixUtil.data(element).has('scroll')) { 6317 return IpixUtil.data(element).get('scroll'); 6318 } else { 6319 return null; 6320 } 6321}; 6322 6323// Create instances 6324IpixScroll.createInstances = function (selector = '[data-kt-scroll="true"]') { 6325 // Initialize Menus 6326 var elements = document.body.querySelectorAll(selector); 6327 if (elements && elements.length > 0) { 6328 for (var i = 0, len = elements.length; i < len; i++) { 6329 new IpixScroll(elements[i]); 6330 } 6331 } 6332}; 6333 6334// Window resize handling 6335IpixScroll.handleResize = function () { 6336 window.addEventListener('resize', function () { 6337 var timer; 6338 IpixUtil.throttle(timer, function () { 6339 // Locate and update Offcanvas instances on window resize 6340 var elements = document.body.querySelectorAll('[data-kt-scroll="true"]'); 6341 if (elements && elements.length > 0) { 6342 for (var i = 0, len = elements.length; i < len; i++) { 6343 var scroll = IpixScroll.getInstance(elements[i]); 6344 if (scroll) { 6345 scroll.update(); 6346 } 6347 } 6348 } 6349 }, 200); 6350 }); 6351}; 6352 6353// Global initialization 6354IpixScroll.init = function () { 6355 IpixScroll.createInstances(); 6356 if (IpixScrollHandlersInitialized === false) { 6357 IpixScroll.handleResize(); 6358 IpixScrollHandlersInitialized = true; 6359 } 6360}; 6361 6362// Webpack Support 6363if ( true && typeof module.exports !== 'undefined') { 6364 module.exports = IpixScroll; 6365} 6366 6367/***/ }), 6368
6369/***/ "./resources/js/layouts/components/scrolltop.js": 6370/*!******************************************************!*\ 6371 !*** ./resources/js/layouts/components/scrolltop.js ***! 6372 \******************************************************/ 6373/***/ ((module) => { 6374 6375"use strict"; 6376 6377 6378// Class definition 6379var IpixScrolltop = function (element, options) { 6380 //////////////////////////// 6381 // ** Private variables ** // 6382 //////////////////////////// 6383 var the = this; 6384 if (typeof element === "undefined" || element === null) { 6385 return; 6386 } 6387 6388 // Default options 6389 var defaultOptions = { 6390 offset: 300, 6391 speed: 600 6392 }; 6393 6394 //////////////////////////// 6395 // ** Private methods ** // 6396 //////////////////////////// 6397 6398 var _construct = function () { 6399 if (IpixUtil.data(element).has('scrolltop')) { 6400 the = IpixUtil.data(element).get('scrolltop'); 6401 } else { 6402 _init(); 6403 } 6404 }; 6405 var _init = function () { 6406 // Variables 6407 the.options = IpixUtil.deepExtend({}, defaultOptions, options); 6408 the.uid = IpixUtil.getUniqueId('scrolltop'); 6409 the.element = element; 6410 6411 // Set initialized 6412 the.element.setAttribute('data-kt-scrolltop', 'true'); 6413 6414 // Event Handlers 6415 _handlers(); 6416 6417 // Bind Instance 6418 IpixUtil.data(the.element).set('scrolltop', the); 6419 }; 6420 var _handlers = function () { 6421 var timer; 6422 window.addEventListener('scroll', function () { 6423 IpixUtil.throttle(timer, function () { 6424 _scroll(); 6425 }, 200); 6426 }); 6427 IpixUtil.addEvent(the.element, 'click', function (e) { 6428 e.preventDefault(); 6429 _go(); 6430 }); 6431 }; 6432 var _scroll = function () { 6433 var offset = parseInt(_getOption('offset')); 6434 var pos = IpixUtil.getScrollTop(); // current vertical position 6435 6436 if (pos > offset) { 6437 if (document.body.hasAttribute('data-kt-scrolltop') === false) { 6438 document.body.setAttribute('data-kt-scrolltop', 'on'); 6439 } 6440 } else { 6441 if (document.body.hasAttribute('data-kt-scrolltop') === true) { 6442 document.body.removeAttribute('data-kt-scrolltop'); 6443 } 6444 } 6445 }; 6446 var _go = function () { 6447 var speed = parseInt(_getOption('speed')); 6448 window.scrollTo({ 6449 top: 0, 6450 behavior: 'smooth' 6451 }); 6452 //IpixUtil.scrollTop(0, speed); 6453 }; 6454 var _getOption = function (name) { 6455 if (the.element.hasAttribute('data-kt-scrolltop-' + name) === true) { 6456 var attr = the.element.getAttribute('data-kt-scrolltop-' + name); 6457 var value = IpixUtil.getResponsiveValue(attr); 6458 if (value !== null && String(value) === 'true') { 6459 value = true; 6460 } else if (value !== null && String(value) === 'false') { 6461 value = false; 6462 } 6463 return value; 6464 } else { 6465 var optionName = IpixUtil.snakeToCamel(name); 6466 if (the.options[optionName]) { 6467 return IpixUtil.getResponsiveValue(the.options[optionName]); 6468 } else { 6469 return null; 6470 } 6471 } 6472 }; 6473 var _destroy = function () { 6474 IpixUtil.data(the.element).remove('scrolltop'); 6475 }; 6476 6477 // Construct class 6478 _construct(); 6479 6480 /////////////////////// 6481 // ** Public API ** // 6482 /////////////////////// 6483 6484 // Plugin API 6485 the.go = function () { 6486 return _go(); 6487 }; 6488 the.getElement = function () { 6489 return the.element; 6490 }; 6491 the.destroy = function () { 6492 return _destroy(); 6493 }; 6494}; 6495 6496// Static methods 6497IpixScrolltop.getInstance = function (element) { 6498 if (element && IpixUtil.data(element).has('scrolltop')) { 6499 return IpixUtil.data(element).get('scrolltop'); 6500 } else { 6501 return null; 6502 } 6503}; 6504 6505// Create instances 6506IpixScrolltop.createInstances = function (selector = '[data-kt-scrolltop="true"]') { 6507 // Initialize Menus 6508 var elements = document.body.querySelectorAll(selector); 6509 if (elements && elements.length > 0) { 6510 for (var i = 0, len = elements.length; i < len; i++) { 6511 new IpixScrolltop(elements[i]); 6512 } 6513 } 6514}; 6515 6516// Global initialization 6517IpixScrolltop.init = function () { 6518 IpixScrolltop.createInstances(); 6519}; 6520 6521// Webpack support 6522if ( true && typeof module.exports !== 'undefined') { 6523 module.exports = IpixScrolltop; 6524} 6525 6526/***/ }), 6527
6528/***/ "./resources/js/layouts/components/sticky.js": 6529/*!***************************************************!*\ 6530 !*** ./resources/js/layouts/components/sticky.js ***! 6531 \***************************************************/ 6532/***/ ((module) => { 6533 6534"use strict"; 6535 6536 6537var IpixStickyHandlersInitialized = false; 6538 6539// Class definition 6540var IpixSticky = function (element, options) { 6541 //////////////////////////// 6542 // ** Private Variables ** // 6543 //////////////////////////// 6544 var the = this; 6545 if (typeof element === "undefined" || element === null) { 6546 return; 6547 } 6548 6549 // Default Options 6550 var defaultOptions = { 6551 offset: 200, 6552 reverse: false, 6553 release: null, 6554 animation: true, 6555 animationSpeed: '0.3s', 6556 animationClass: 'animation-slide-in-down' 6557 }; 6558 //////////////////////////// 6559 // ** Private Methods ** // 6560 //////////////////////////// 6561 6562 var _construct = function () { 6563 if (IpixUtil.data(element).has('sticky') === true) { 6564 the = IpixUtil.data(element).get('sticky'); 6565 } else { 6566 _init(); 6567 } 6568 }; 6569 var _init = function () { 6570 the.element = element; 6571 the.options = IpixUtil.deepExtend({}, defaultOptions, options); 6572 the.uid = IpixUtil.getUniqueId('sticky'); 6573 the.name = the.element.getAttribute('data-kt-sticky-name'); 6574 the.attributeName = 'data-kt-sticky-' + the.name; 6575 the.attributeName2 = 'data-kt-' + the.name; 6576 the.eventTriggerState = true; 6577 the.lastScrollTop = 0; 6578 the.scrollHandler; 6579 6580 // Set initialized 6581 the.element.setAttribute('data-kt-sticky', 'true'); 6582 6583 // Event Handlers 6584 window.addEventListener('scroll', _scroll); 6585 6586 // Initial Launch 6587 _scroll(); 6588 6589 // Bind Instance 6590 IpixUtil.data(the.element).set('sticky', the); 6591 }; 6592 var _scroll = function (e) { 6593 var offset = _getOption('offset'); 6594 var release = _getOption('release'); 6595 var reverse = _getOption('reverse'); 6596 var st; 6597 var attrName; 6598 var diff; 6599 6600 // Exit if false 6601 if (offset === false) { 6602 return; 6603 } 6604 offset = parseInt(offset); 6605 release = release ? document.querySelector(release) : null; 6606 st = IpixUtil.getScrollTop(); 6607 diff = document.documentElement.scrollHeight - window.innerHeight - IpixUtil.getScrollTop(); 6608 var proceed = !release || release.offsetTop - release.clientHeight > st; 6609 if (reverse === true) { 6610 // Release on reverse scroll mode 6611 if (st > offset && proceed) { 6612 if (document.body.hasAttribute(the.attributeName) === false) { 6613 if (_enable() === false) { 6614 return; 6615 } 6616 document.body.setAttribute(the.attributeName, 'on'); 6617 document.body.setAttribute(the.attributeName2, 'on'); 6618 the.element.setAttribute("data-kt-sticky-enabled", "true"); 6619 } 6620 if (the.eventTriggerState === true) { 6621 IpixEventHandler.trigger(the.element, 'kt.sticky.on', the); 6622 IpixEventHandler.trigger(the.element, 'kt.sticky.change', the); 6623 the.eventTriggerState = false; 6624 } 6625 } else { 6626 // Back scroll mode 6627 if (document.body.hasAttribute(the.attributeName) === true) { 6628 _disable(); 6629 document.body.removeAttribute(the.attributeName); 6630 document.body.removeAttribute(the.attributeName2); 6631 the.element.removeAttribute("data-kt-sticky-enabled"); 6632 } 6633 if (the.eventTriggerState === false) { 6634 IpixEventHandler.trigger(the.element, 'kt.sticky.off', the); 6635 IpixEventHandler.trigger(the.element, 'kt.sticky.change', the); 6636 the.eventTriggerState = true; 6637 } 6638 } 6639 the.lastScrollTop = st; 6640 } else { 6641 // Classic scroll mode 6642 if (st > offset && proceed) { 6643 if (document.body.hasAttribute(the.attributeName) === false) { 6644 if (_enable() === false) { 6645 return; 6646 } 6647 document.body.setAttribute(the.attributeName, 'on'); 6648 document.body.setAttribute(the.attributeName2, 'on'); 6649 the.element.setAttribute("data-kt-sticky-enabled", "true"); 6650 } 6651 if (the.eventTriggerState === true) { 6652 IpixEventHandler.trigger(the.element, 'kt.sticky.on', the); 6653 IpixEventHandler.trigger(the.element, 'kt.sticky.change', the); 6654 the.eventTriggerState = false;
6655 } 6656 } else { 6657 // back scroll mode 6658 if (document.body.hasAttribute(the.attributeName) === true) { 6659 _disable(); 6660 document.body.removeAttribute(the.attributeName); 6661 document.body.removeAttribute(the.attributeName2); 6662 the.element.removeAttribute("data-kt-sticky-enabled"); 6663 } 6664 if (the.eventTriggerState === false) { 6665 IpixEventHandler.trigger(the.element, 'kt.sticky.off', the); 6666 IpixEventHandler.trigger(the.element, 'kt.sticky.change', the); 6667 the.eventTriggerState = true; 6668 } 6669 } 6670 } 6671 if (release) { 6672 if (release.offsetTop - release.clientHeight > st) { 6673 the.element.setAttribute('data-kt-sticky-released', 'true'); 6674 } else { 6675 the.element.removeAttribute('data-kt-sticky-released'); 6676 } 6677 } 6678 }; 6679 var _enable = function (update) { 6680 var top = _getOption('top'); 6681 top = top ? parseInt(top) : 0; 6682 var left = _getOption('left'); 6683 var right = _getOption('right'); 6684 var width = _getOption('width'); 6685 var zindex = _getOption('zindex'); 6686 var dependencies = _getOption('dependencies'); 6687 var classes = _getOption('class'); 6688 var height = _calculateHeight(); 6689 var heightOffset = _getOption('height-offset'); 6690 heightOffset = heightOffset ? parseInt(heightOffset) : 0; 6691 if (height + heightOffset + top > IpixUtil.getViewPort().height) { 6692 return false; 6693 } 6694 if (update !== true && _getOption('animation') === true) { 6695 IpixUtil.css(the.element, 'animationDuration', _getOption('animationSpeed')); 6696 IpixUtil.animateClass(the.element, 'animation ' + _getOption('animationClass')); 6697 } 6698 if (classes !== null) { 6699 IpixUtil.addClass(the.element, classes); 6700 } 6701 if (zindex !== null) { 6702 IpixUtil.css(the.element, 'z-index', zindex); 6703 IpixUtil.css(the.element, 'position', 'fixed'); 6704 } 6705 if (top >= 0) { 6706 IpixUtil.css(the.element, 'top', String(top) + 'px'); 6707 } 6708 if (width !== null) { 6709 if (width['target']) { 6710 var targetElement = document.querySelector(width['target']); 6711 if (targetElement) { 6712 width = IpixUtil.css(targetElement, 'width'); 6713 } 6714 } 6715 IpixUtil.css(the.element, 'width', width); 6716 } 6717 if (left !== null) { 6718 if (String(left).toLowerCase() === 'auto') { 6719 var offsetLeft = IpixUtil.offset(the.element).left; 6720 if (offsetLeft >= 0) { 6721 IpixUtil.css(the.element, 'left', String(offsetLeft) + 'px'); 6722 } 6723 } else { 6724 IpixUtil.css(the.element, 'left', left); 6725 } 6726 } 6727 if (right !== null) { 6728 IpixUtil.css(the.element, 'right', right); 6729 } 6730 6731 // Height dependencies 6732 if (dependencies !== null) { 6733 var dependencyElements = document.querySelectorAll(dependencies); 6734 if (dependencyElements && dependencyElements.length > 0) { 6735 for (var i = 0, len = dependencyElements.length; i < len; i++) { 6736 IpixUtil.css(dependencyElements[i], 'padding-top', String(height) + 'px'); 6737 } 6738 } 6739 } 6740 }; 6741 var _disable = function () { 6742 IpixUtil.css(the.element, 'top', ''); 6743 IpixUtil.css(the.element, 'width', ''); 6744 IpixUtil.css(the.element, 'left', ''); 6745 IpixUtil.css(the.element, 'right', ''); 6746 IpixUtil.css(the.element, 'z-index', ''); 6747 IpixUtil.css(the.element, 'position', ''); 6748 var dependencies = _getOption('dependencies'); 6749 var classes = _getOption('class'); 6750 if (classes !== null) { 6751 IpixUtil.removeClass(the.element, classes); 6752 } 6753 6754 // Height dependencies 6755 if (dependencies !== null) { 6756 var dependencyElements = document.querySelectorAll(dependencies); 6757 if (dependencyElements && dependencyElements.length > 0) { 6758 for (var i = 0, len = dependencyElements.length; i < len; i++) { 6759 IpixUtil.css(dependencyElements[i], 'padding-top', ''); 6760 } 6761 } 6762 } 6763 }; 6764 var _check = function () {}; 6765 var _calculateHeight = function () { 6766 var height = parseFloat(IpixUtil.css(the.element, 'height')); 6767 height = height + parseFloat(IpixUtil.css(the.element, 'margin-top')); 6768 height = height + parseFloat(IpixUtil.css(the.element, 'margin-bottom')); 6769 if (IpixUtil.css(element, 'border-top')) { 6770 height = height + parseFloat(IpixUtil.css(the.element, 'border-top')); 6771 } 6772 if (IpixUtil.css(element, 'border-bottom')) { 6773 height = height + parseFloat(IpixUtil.css(the.element, 'border-bottom')); 6774 } 6775 return height; 6776 }; 6777 var _getOption = function (name) { 6778 if (the.element.hasAttribute('data-kt-sticky-' + name) === true) { 6779 var attr = the.element.getAttribute('data-kt-sticky-' + name); 6780 var value = IpixUtil.getResponsiveValue(attr); 6781 if (value !== null && String(value) === 'true') { 6782 value = true; 6783 } else if (value !== null && String(value) === 'false') { 6784 value = false;
6785 } 6786 return value; 6787 } else { 6788 var optionName = IpixUtil.snakeToCamel(name); 6789 if (the.options[optionName]) { 6790 return IpixUtil.getResponsiveValue(the.options[optionName]); 6791 } else { 6792 return null; 6793 } 6794 } 6795 }; 6796 var _destroy = function () { 6797 window.removeEventListener('scroll', _scroll); 6798 IpixUtil.data(the.element).remove('sticky'); 6799 }; 6800 6801 // Construct Class 6802 _construct(); 6803 6804 /////////////////////// 6805 // ** Public API ** // 6806 /////////////////////// 6807 6808 // Methods 6809 the.update = function () { 6810 if (document.body.hasAttribute(the.attributeName) === true) { 6811 _disable(); 6812 document.body.removeAttribute(the.attributeName); 6813 document.body.removeAttribute(the.attributeName2); 6814 _enable(true); 6815 document.body.setAttribute(the.attributeName, 'on'); 6816 document.body.setAttribute(the.attributeName2, 'on'); 6817 } 6818 }; 6819 the.destroy = function () { 6820 return _destroy(); 6821 }; 6822 6823 // Event API 6824 the.on = function (name, handler) { 6825 return IpixEventHandler.on(the.element, name, handler); 6826 }; 6827 the.one = function (name, handler) { 6828 return IpixEventHandler.one(the.element, name, handler); 6829 }; 6830 the.off = function (name, handlerId) { 6831 return IpixEventHandler.off(the.element, name, handlerId); 6832 }; 6833 the.trigger = function (name, event) { 6834 return IpixEventHandler.trigger(the.element, name, event, the, event); 6835 }; 6836}; 6837 6838// Static methods 6839IpixSticky.getInstance = function (element) { 6840 if (element !== null && IpixUtil.data(element).has('sticky')) { 6841 return IpixUtil.data(element).get('sticky'); 6842 } else { 6843 return null; 6844 } 6845}; 6846 6847// Create instances 6848IpixSticky.createInstances = function (selector = '[data-kt-sticky="true"]') { 6849 // Initialize Menus 6850 var elements = document.body.querySelectorAll(selector); 6851 var sticky; 6852 if (elements && elements.length > 0) { 6853 for (var i = 0, len = elements.length; i < len; i++) { 6854 sticky = new IpixSticky(elements[i]); 6855 } 6856 } 6857}; 6858 6859// Window resize handler 6860IpixSticky.handleResize = function () { 6861 window.addEventListener('resize', function () { 6862 var timer; 6863 IpixUtil.throttle(timer, function () { 6864 // Locate and update Offcanvas instances on window resize 6865 var elements = document.body.querySelectorAll('[data-kt-sticky="true"]'); 6866 if (elements && elements.length > 0) { 6867 for (var i = 0, len = elements.length; i < len; i++) { 6868 var sticky = IpixSticky.getInstance(elements[i]); 6869 if (sticky) { 6870 sticky.update(); 6871 } 6872 } 6873 } 6874 }, 200); 6875 }); 6876}; 6877 6878// Global initialization 6879IpixSticky.init = function () { 6880 IpixSticky.createInstances(); 6881 if (IpixStickyHandlersInitialized === false) { 6882 IpixSticky.handleResize(); 6883 IpixStickyHandlersInitialized = true; 6884 } 6885}; 6886 6887// Webpack support 6888if ( true && typeof module.exports !== 'undefined') { 6889 module.exports = IpixSticky; 6890} 6891 6892/***/ }), 6893
6894/***/ "./resources/js/layouts/components/swapper.js": 6895/*!****************************************************!*\ 6896 !*** ./resources/js/layouts/components/swapper.js ***! 6897 \****************************************************/ 6898/***/ ((module) => { 6899 6900"use strict"; 6901 6902 6903var IpixSwapperHandlersInitialized = false; 6904 6905// Class definition 6906var IpixSwapper = function (element, options) { 6907 //////////////////////////// 6908 // ** Private Variables ** // 6909 //////////////////////////// 6910 var the = this; 6911 if (typeof element === "undefined" || element === null) { 6912 return; 6913 } 6914 6915 // Default Options 6916 var defaultOptions = { 6917 mode: 'append' 6918 }; 6919 6920 //////////////////////////// 6921 // ** Private Methods ** // 6922 //////////////////////////// 6923 6924 var _construct = function () { 6925 if (IpixUtil.data(element).has('swapper') === true) { 6926 the = IpixUtil.data(element).get('swapper'); 6927 } else { 6928 _init(); 6929 } 6930 }; 6931 var _init = function () { 6932 the.element = element; 6933 the.options = IpixUtil.deepExtend({}, defaultOptions, options); 6934 6935 // Set initialized 6936 the.element.setAttribute('data-kt-swapper', 'true'); 6937 6938 // Initial update 6939 _update(); 6940 6941 // Bind Instance 6942 IpixUtil.data(the.element).set('swapper', the); 6943 }; 6944 var _update = function (e) { 6945 var parentSelector = _getOption('parent'); 6946 var mode = _getOption('mode'); 6947 var parentElement = parentSelector ? document.querySelector(parentSelector) : null; 6948 if (parentElement && element.parentNode !== parentElement) { 6949 if (mode === 'prepend') { 6950 parentElement.prepend(element); 6951 } else if (mode === 'append') { 6952 parentElement.append(element); 6953 } 6954 } 6955 }; 6956 var _getOption = function (name) { 6957 if (the.element.hasAttribute('data-kt-swapper-' + name) === true) { 6958 var attr = the.element.getAttribute('data-kt-swapper-' + name); 6959 var value = IpixUtil.getResponsiveValue(attr); 6960 if (value !== null && String(value) === 'true') { 6961 value = true; 6962 } else if (value !== null && String(value) === 'false') { 6963 value = false; 6964 } 6965 return value; 6966 } else { 6967 var optionName = IpixUtil.snakeToCamel(name); 6968 if (the.options[optionName]) { 6969 return IpixUtil.getResponsiveValue(the.options[optionName]); 6970 } else { 6971 return null; 6972 } 6973 } 6974 }; 6975 var _destroy = function () { 6976 IpixUtil.data(the.element).remove('swapper'); 6977 }; 6978 6979 // Construct Class 6980 _construct(); 6981 6982 /////////////////////// 6983 // ** Public API ** // 6984 /////////////////////// 6985 6986 // Methods 6987 the.update = function () { 6988 _update(); 6989 }; 6990 the.destroy = function () { 6991 return _destroy(); 6992 }; 6993 6994 // Event API 6995 the.on = function (name, handler) { 6996 return IpixEventHandler.on(the.element, name, handler); 6997 }; 6998 the.one = function (name, handler) { 6999 return IpixEventHandler.one(the.element, name, handler); 7000 }; 7001 the.off = function (name, handlerId) { 7002 return IpixEventHandler.off(the.element, name, handlerId); 7003 }; 7004 the.trigger = function (name, event) { 7005 return IpixEventHandler.trigger(the.element, name, event, the, event); 7006 }; 7007}; 7008 7009// Static methods 7010IpixSwapper.getInstance = function (element) { 7011 if (element !== null && IpixUtil.data(element).has('swapper')) { 7012 return IpixUtil.data(element).get('swapper'); 7013 } else { 7014 return null; 7015 } 7016}; 7017 7018// Create instances 7019IpixSwapper.createInstances = function (selector = '[data-kt-swapper="true"]') { 7020 // Initialize Menus 7021 var elements = document.querySelectorAll(selector); 7022 var swapper; 7023 if (elements && elements.length > 0) { 7024 for (var i = 0, len = elements.length; i < len; i++) { 7025 swapper = new IpixSwapper(elements[i]); 7026 } 7027 } 7028}; 7029 7030// Window resize handler 7031IpixSwapper.handleResize = function () { 7032 window.addEventListener('resize', function () { 7033 var timer; 7034 IpixUtil.throttle(timer, function () { 7035 // Locate and update Offcanvas instances on window resize 7036 var elements = document.querySelectorAll('[data-kt-swapper="true"]'); 7037 if (elements && elements.length > 0) { 7038 for (var i = 0, len = elements.length; i < len; i++) { 7039 var swapper = IpixSwapper.getInstance(elements[i]); 7040 if (swapper) {
7041 swapper.update(); 7042 } 7043 } 7044 } 7045 }, 200); 7046 }); 7047}; 7048 7049// Global initialization 7050IpixSwapper.init = function () { 7051 IpixSwapper.createInstances(); 7052 if (IpixSwapperHandlersInitialized === false) { 7053 IpixSwapper.handleResize(); 7054 IpixSwapperHandlersInitialized = true; 7055 } 7056}; 7057 7058// Webpack support 7059if ( true && typeof module.exports !== 'undefined') { 7060 module.exports = IpixSwapper; 7061} 7062 7063/***/ }), 7064
7065/***/ "./resources/js/layouts/components/toggle.js": 7066/*!***************************************************!*\ 7067 !*** ./resources/js/layouts/components/toggle.js ***! 7068 \***************************************************/ 7069/***/ ((module) => { 7070 7071"use strict"; 7072 7073 7074// Class definition 7075var IpixToggle = function (element, options) { 7076 //////////////////////////// 7077 // ** Private variables ** // 7078 //////////////////////////// 7079 var the = this; 7080 if (!element) { 7081 return; 7082 } 7083 7084 // Default Options 7085 var defaultOptions = { 7086 saveState: true 7087 }; 7088 7089 //////////////////////////// 7090 // ** Private methods ** // 7091 //////////////////////////// 7092 7093 var _construct = function () { 7094 if (IpixUtil.data(element).has('toggle') === true) { 7095 the = IpixUtil.data(element).get('toggle'); 7096 } else { 7097 _init(); 7098 } 7099 }; 7100 var _init = function () { 7101 // Variables 7102 the.options = IpixUtil.deepExtend({}, defaultOptions, options); 7103 the.uid = IpixUtil.getUniqueId('toggle'); 7104 7105 // Elements 7106 the.element = element; 7107 the.target = document.querySelector(the.element.getAttribute('data-kt-toggle-target')) ? document.querySelector(the.element.getAttribute('data-kt-toggle-target')) : the.element; 7108 the.state = the.element.hasAttribute('data-kt-toggle-state') ? the.element.getAttribute('data-kt-toggle-state') : ''; 7109 the.mode = the.element.hasAttribute('data-kt-toggle-mode') ? the.element.getAttribute('data-kt-toggle-mode') : ''; 7110 the.attribute = 'data-kt-' + the.element.getAttribute('data-kt-toggle-name'); 7111 7112 // Event Handlers 7113 _handlers(); 7114 7115 // Bind Instance 7116 IpixUtil.data(the.element).set('toggle', the); 7117 }; 7118 var _handlers = function () { 7119 IpixUtil.addEvent(the.element, 'click', function (e) { 7120 e.preventDefault(); 7121 if (the.mode !== '') { 7122 if (the.mode === 'off' && _isEnabled() === false) { 7123 _toggle(); 7124 } else if (the.mode === 'on' && _isEnabled() === true) { 7125 _toggle(); 7126 } 7127 } else { 7128 _toggle(); 7129 } 7130 }); 7131 }; 7132 7133 // Event handlers 7134 var _toggle = function () { 7135 // Trigger "after.toggle" event 7136 IpixEventHandler.trigger(the.element, 'kt.toggle.change', the); 7137 if (_isEnabled()) { 7138 _disable(); 7139 } else { 7140 _enable(); 7141 } 7142 7143 // Trigger "before.toggle" event 7144 IpixEventHandler.trigger(the.element, 'kt.toggle.changed', the); 7145 return the; 7146 }; 7147 var _enable = function () { 7148 if (_isEnabled() === true) { 7149 return; 7150 } 7151 IpixEventHandler.trigger(the.element, 'kt.toggle.enable', the); 7152 the.target.setAttribute(the.attribute, 'on'); 7153 if (the.state.length > 0) { 7154 the.element.classList.add(the.state); 7155 } 7156 if (typeof IpixCookie !== 'undefined' && the.options.saveState === true) { 7157 IpixCookie.set(the.attribute, 'on'); 7158 } 7159 IpixEventHandler.trigger(the.element, 'kt.toggle.enabled', the); 7160 return the; 7161 }; 7162 var _disable = function () { 7163 if (_isEnabled() === false) { 7164 return; 7165 } 7166 IpixEventHandler.trigger(the.element, 'kt.toggle.disable', the); 7167 the.target.removeAttribute(the.attribute); 7168 if (the.state.length > 0) { 7169 the.element.classList.remove(the.state); 7170 } 7171 if (typeof IpixCookie !== 'undefined' && the.options.saveState === true) { 7172 IpixCookie.remove(the.attribute); 7173 } 7174 IpixEventHandler.trigger(the.element, 'kt.toggle.disabled', the); 7175 return the; 7176 }; 7177 var _isEnabled = function () { 7178 return String(the.target.getAttribute(the.attribute)).toLowerCase() === 'on'; 7179 }; 7180 var _destroy = function () { 7181 IpixUtil.data(the.element).remove('toggle'); 7182 }; 7183 7184 // Construct class 7185 _construct(); 7186 7187 /////////////////////// 7188 // ** Public API ** // 7189 /////////////////////// 7190 7191 // Plugin API 7192 the.toggle = function () { 7193 return _toggle(); 7194 }; 7195 the.enable = function () { 7196 return _enable(); 7197 }; 7198 the.disable = function () { 7199 return _disable(); 7200 }; 7201 the.isEnabled = function () { 7202 return _isEnabled(); 7203 }; 7204 the.goElement = function () { 7205 return the.element; 7206 }; 7207 the.destroy = function () { 7208 return _destroy(); 7209 }; 7210 7211 // Event API 7212 the.on = function (name, handler) { 7213 return IpixEventHandler.on(the.element, name, handler); 7214 }; 7215 the.one = function (name, handler) { 7216 return IpixEventHandler.one(the.element, name, handler); 7217 }; 7218 the.off = function (name, handlerId) { 7219 return IpixEventHandler.off(the.element, name, handlerId); 7220 }; 7221 the.trigger = function (name, event) { 7222 return IpixEventHandler.trigger(the.element, name, event, the, event); 7223 }; 7224}; 7225 7226// Static methods 7227IpixToggle.getInstance = function (element) { 7228 if (element !== null && IpixUtil.data(element).has('toggle')) { 7229 return IpixUtil.data(element).get('toggle'); 7230 } else { 7231 return null; 7232 } 7233}; 7234 7235// Create instances 7236IpixToggle.createInstances = function (selector = '[data-kt-toggle]') { 7237 // Get instances 7238 var elements = document.body.querySelectorAll(selector); 7239 if (elements && elements.length > 0) { 7240 for (var i = 0, len = elements.length; i < len; i++) { 7241 // Initialize instances 7242 new IpixToggle(elements[i]); 7243 } 7244 } 7245}; 7246 7247// Global initialization 7248IpixToggle.init = function () { 7249 IpixToggle.createInstances(); 7250}; 7251 7252// Webpack support 7253if ( true && typeof module.exports !== 'undefined') { 7254 module.exports = IpixToggle; 7255} 7256 7257/***/ }), 7258
7259/***/ "./resources/js/layouts/components/util.js": 7260/*!*************************************************!*\ 7261 !*** ./resources/js/layouts/components/util.js ***! 7262 \*************************************************/ 7263/***/ ((module) => { 7264 7265"use strict"; 7266 7267 7268/** 7269 * @class IpixUtil base utilize class that privides helper functions 7270 */ 7271 7272// Polyfills 7273 7274// Element.matches() polyfill 7275if (!Element.prototype.matches) { 7276 Element.prototype.matches = function (s) { 7277 var matches = (this.document || this.ownerDocument).querySelectorAll(s), 7278 i = matches.length; 7279 while (--i >= 0 && matches.item(i) !== this) {} 7280 return i > -1; 7281 }; 7282} 7283 7284/** 7285 * Element.closest() polyfill 7286 * https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill 7287 */ 7288if (!Element.prototype.closest) { 7289 Element.prototype.closest = function (s) { 7290 var el = this; 7291 var ancestor = this; 7292 if (!document.documentElement.contains(el)) return null; 7293 do { 7294 if (ancestor.matches(s)) return ancestor; 7295 ancestor = ancestor.parentElement; 7296 } while (ancestor !== null); 7297 return null; 7298 }; 7299} 7300 7301/** 7302 * ChildNode.remove() polyfill 7303 * https://gomakethings.com/removing-an-element-from-the-dom-the-es6-way/ 7304 * @author Chris Ferdinandi 7305 * @license MIT 7306 */ 7307(function (elem) { 7308 for (var i = 0; i < elem.length; i++) { 7309 if (!window[elem[i]] || 'remove' in window[elem[i]].prototype) continue; 7310 window[elem[i]].prototype.remove = function () { 7311 this.parentNode.removeChild(this); 7312 }; 7313 } 7314})(['Element', 'CharacterData', 'DocumentType']); 7315 7316// 7317// requestAnimationFrame polyfill by Erik Möller. 7318// With fixes from Paul Irish and Tino Zijdel 7319// 7320// http://paulirish.com/2011/requestanimationframe-for-smart-animating/ 7321// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating 7322// 7323// MIT license 7324// 7325(function () { 7326 var lastTime = 0; 7327 var vendors = ['webkit', 'moz']; 7328 for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { 7329 window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; 7330 window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']; 7331 } 7332 if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback) { 7333 var currTime = new Date().getTime(); 7334 var timeToCall = Math.max(0, 16 - (currTime - lastTime)); 7335 var id = window.setTimeout(function () { 7336 callback(currTime + timeToCall); 7337 }, timeToCall); 7338 lastTime = currTime + timeToCall; 7339 return id; 7340 }; 7341 if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) { 7342 clearTimeout(id); 7343 }; 7344})(); 7345 7346// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md 7347(function (arr) { 7348 arr.forEach(function (item) { 7349 if (item.hasOwnProperty('prepend')) { 7350 return; 7351 } 7352 Object.defineProperty(item, 'prepend', { 7353 configurable: true, 7354 enumerable: true, 7355 writable: true, 7356 value: function prepend() { 7357 var argArr = Array.prototype.slice.call(arguments), 7358 docFrag = document.createDocumentFragment(); 7359 argArr.forEach(function (argItem) { 7360 var isNode = argItem instanceof Node; 7361 docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem))); 7362 }); 7363 this.insertBefore(docFrag, this.firstChild); 7364 } 7365 }); 7366 }); 7367})([Element.prototype, Document.prototype, DocumentFragment.prototype]); 7368 7369// getAttributeNames 7370if (Element.prototype.getAttributeNames == undefined) { 7371 Element.prototype.getAttributeNames = function () { 7372 var attributes = this.attributes; 7373 var length = attributes.length; 7374 var result = new Array(length); 7375 for (var i = 0; i < length; i++) { 7376 result[i] = attributes[i].name; 7377 } 7378 return result; 7379 }; 7380} 7381 7382// Global variables 7383window.IpixUtilElementDataStore = {}; 7384window.IpixUtilElementDataStoreID = 0; 7385window.IpixUtilDelegatedEventHandlers = {}; 7386var IpixUtil = function () { 7387 var resizeHandlers = []; 7388 7389 /** 7390 * Handle window resize event with some 7391 * delay to attach event handlers upon resize complete 7392 */ 7393 var _windowResizeHandler = function () { 7394 var _runResizeHandlers = function () { 7395 // reinitialize other subscribed elements 7396 for (var i = 0; i < resizeHandlers.length; i++) { 7397 var each = resizeHandlers[i]; 7398 each.call(); 7399 } 7400 }; 7401 var timer; 7402 window.addEventListener('resize', function () { 7403 IpixUtil.throttle(timer, function () { 7404 _runResizeHandlers(); 7405 }, 200); 7406 }); 7407 }; 7408 return { 7409 /** 7410 * Class main initializer. 7411 * @param {object} settings. 7412 * @returns null 7413 */ 7414 //main function to initiate the theme 7415 init: function (settings) { 7416 _windowResizeHandler(); 7417 }, 7418 /** 7419 * Adds window resize event handler. 7420 * @param {function} callback function. 7421 */ 7422 addResizeHandler: function (callback) { 7423 resizeHandlers.push(callback); 7424 }, 7425 /** 7426 * Removes window resize event handler. 7427 * @param {function} callback function. 7428 */ 7429 removeResizeHandler: function (callback) { 7430 for (var i = 0; i < resizeHandlers.length; i++) { 7431 if (callback === resizeHandlers[i]) { 7432 delete resizeHandlers[i]; 7433 } 7434 } 7435 }, 7436 /** 7437 * Trigger window resize handlers. 7438 */ 7439 runResizeHandlers: function () { 7440 _runResizeHandlers(); 7441 }, 7442 resize: function () { 7443 if (typeof Event === 'function') { 7444 // modern browsers 7445 window.dispatchEvent(new Event('resize')); 7446 } else { 7447 // for IE and other old browsers 7448 // causes deprecation warning on modern browsers 7449 var evt = window.document.createEvent('UIEvents'); 7450 evt.initUIEvent('resize', true, false, window, 0); 7451 window.dispatchEvent(evt); 7452 } 7453 }, 7454 /** 7455 * Get GET parameter value from URL. 7456 * @param {string} paramName Parameter name. 7457 * @returns {string} 7458 */ 7459 getURLParam: function (paramName) { 7460 var searchString = window.location.search.substring(1), 7461 i, 7462 val, 7463 params = searchString.split("&"); 7464 for (i = 0; i < params.length; i++) { 7465 val = params[i].split("="); 7466 if (val[0] == paramName) { 7467 return unescape(val[1]); 7468 } 7469 } 7470 return null; 7471 }, 7472 /** 7473 * Checks whether current device is mobile touch. 7474 * @returns {boolean} 7475 */ 7476 isMobileDevice: function () {
7477 var test = this.getViewPort().width < this.getBreakpoint('lg') ? true : false; 7478 if (test === false) { 7479 // For use within normal web clients 7480 test = navigator.userAgent.match(/iPad/i) != null; 7481 } 7482 return test; 7483 }, 7484 /** 7485 * Checks whether current device is desktop. 7486 * @returns {boolean} 7487 */ 7488 isDesktopDevice: function () { 7489 return IpixUtil.isMobileDevice() ? false : true; 7490 }, 7491 /** 7492 * Gets browser window viewport size. Ref: 7493 * http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/ 7494 * @returns {object} 7495 */ 7496 getViewPort: function () { 7497 var e = window, 7498 a = 'inner'; 7499 if (!('innerWidth' in window)) { 7500 a = 'client'; 7501 e = document.documentElement || document.body; 7502 } 7503 return { 7504 width: e[a + 'Width'], 7505 height: e[a + 'Height'] 7506 }; 7507 }, 7508 /** 7509 * Checks whether given device mode is currently activated. 7510 * @param {string} mode Responsive mode name(e.g: desktop, 7511 * desktop-and-tablet, tablet, tablet-and-mobile, mobile) 7512 * @returns {boolean} 7513 */ 7514 isBreakpointUp: function (mode) { 7515 var width = this.getViewPort().width; 7516 var breakpoint = this.getBreakpoint(mode); 7517 return width >= breakpoint; 7518 }, 7519 isBreakpointDown: function (mode) { 7520 var width = this.getViewPort().width; 7521 var breakpoint = this.getBreakpoint(mode); 7522 return width < breakpoint; 7523 }, 7524 getViewportWidth: function () { 7525 return this.getViewPort().width; 7526 }, 7527 /** 7528 * Generates unique ID for give prefix. 7529 * @param {string} prefix Prefix for generated ID 7530 * @returns {boolean} 7531 */ 7532 getUniqueId: function (prefix) { 7533 return prefix + Math.floor(Math.random() * new Date().getTime()); 7534 }, 7535 /** 7536 * Gets window width for give breakpoint mode. 7537 * @param {string} mode Responsive mode name(e.g: xl, lg, md, sm) 7538 * @returns {number} 7539 */ 7540 getBreakpoint: function (breakpoint) { 7541 var value = this.getCssVariableValue('--bs-' + breakpoint); 7542 if (value) { 7543 value = parseInt(value.trim()); 7544 } 7545 return value; 7546 }, 7547 /** 7548 * Checks whether object has property matchs given key path. 7549 * @param {object} obj Object contains values paired with given key path 7550 * @param {string} keys Keys path seperated with dots 7551 * @returns {object} 7552 */ 7553 isset: function (obj, keys) { 7554 var stone; 7555 keys = keys || ''; 7556 if (keys.indexOf('[') !== -1) { 7557 throw new Error('Unsupported object path notation.'); 7558 } 7559 keys = keys.split('.'); 7560 do { 7561 if (obj === undefined) { 7562 return false; 7563 } 7564 stone = keys.shift(); 7565 if (!obj.hasOwnProperty(stone)) { 7566 return false; 7567 } 7568 obj = obj[stone]; 7569 } while (keys.length); 7570 return true; 7571 }, 7572 /** 7573 * Gets highest z-index of the given element parents 7574 * @param {object} el jQuery element object 7575 * @returns {number} 7576 */ 7577 getHighestZindex: function (el) { 7578 var position, value; 7579 while (el && el !== document) { 7580 // Ignore z-index if position is set to a value where z-index is ignored by the browser 7581 // This makes behavior of this function consistent across browsers 7582 // WebKit always returns auto if the element is positioned 7583 position = IpixUtil.css(el, 'position'); 7584 if (position === "absolute" || position === "relative" || position === "fixed") { 7585 // IE returns 0 when zIndex is not specified 7586 // other browsers return a string 7587 // we ignore the case of nested elements with an explicit value of 0 7588 // <div style="z-index: -10;"><div style="z-index: 0;"></div></div> 7589 value = parseInt(IpixUtil.css(el, 'z-index')); 7590 if (!isNaN(value) && value !== 0) { 7591 return value; 7592 } 7593 } 7594 el = el.parentNode; 7595 } 7596 return 1; 7597 }, 7598 /** 7599 * Checks whether the element has any parent with fixed positionfreg 7600 * @param {object} el jQuery element object 7601 * @returns {boolean} 7602 */ 7603 hasFixedPositionedParent: function (el) { 7604 var position; 7605 while (el && el !== document) { 7606 position = IpixUtil.css(el, 'position'); 7607 if (position === "fixed") { 7608 return true; 7609 } 7610 el = el.parentNode; 7611 } 7612 return false;
7613 }, 7614 /** 7615 * Simulates delay 7616 */ 7617 sleep: function (milliseconds) { 7618 var start = new Date().getTime(); 7619 for (var i = 0; i < 1e7; i++) { 7620 if (new Date().getTime() - start > milliseconds) { 7621 break; 7622 } 7623 } 7624 }, 7625 /** 7626 * Gets randomly generated integer value within given min and max range 7627 * @param {number} min Range start value 7628 * @param {number} max Range end value 7629 * @returns {number} 7630 */ 7631 getRandomInt: function (min, max) { 7632 return Math.floor(Math.random() * (max - min + 1)) + min; 7633 }, 7634 /** 7635 * Checks whether Angular library is included 7636 * @returns {boolean} 7637 */ 7638 isAngularVersion: function () { 7639 return window.Zone !== undefined ? true : false; 7640 }, 7641 // Deep extend: $.extend(true, {}, objA, objB); 7642 deepExtend: function (out) { 7643 out = out || {}; 7644 for (var i = 1; i < arguments.length; i++) { 7645 var obj = arguments[i]; 7646 if (!obj) continue; 7647 for (var key in obj) { 7648 if (!obj.hasOwnProperty(key)) { 7649 continue; 7650 } 7651 7652 // based on https://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/ 7653 if (Object.prototype.toString.call(obj[key]) === '[object Object]') { 7654 out[key] = IpixUtil.deepExtend(out[key], obj[key]); 7655 continue; 7656 } 7657 out[key] = obj[key]; 7658 } 7659 } 7660 return out; 7661 }, 7662 // extend: $.extend({}, objA, objB); 7663 extend: function (out) { 7664 out = out || {}; 7665 for (var i = 1; i < arguments.length; i++) { 7666 if (!arguments[i]) continue; 7667 for (var key in arguments[i]) { 7668 if (arguments[i].hasOwnProperty(key)) out[key] = arguments[i][key]; 7669 } 7670 } 7671 return out; 7672 }, 7673 getBody: function () { 7674 return document.getElementsByTagName('body')[0]; 7675 }, 7676 /** 7677 * Checks whether the element has given classes 7678 * @param {object} el jQuery element object 7679 * @param {string} Classes string 7680 * @returns {boolean} 7681 */ 7682 hasClasses: function (el, classes) { 7683 if (!el) { 7684 return; 7685 } 7686 var classesArr = classes.split(" "); 7687 for (var i = 0; i < classesArr.length; i++) { 7688 if (IpixUtil.hasClass(el, IpixUtil.trim(classesArr[i])) == false) { 7689 return false; 7690 } 7691 } 7692 return true; 7693 }, 7694 hasClass: function (el, className) { 7695 if (!el) { 7696 return; 7697 } 7698 return el.classList ? el.classList.contains(className) : new RegExp('\\b' + className + '\\b').test(el.className); 7699 }, 7700 addClass: function (el, className) { 7701 if (!el || typeof className === 'undefined') { 7702 return; 7703 } 7704 var classNames = className.split(' '); 7705 if (el.classList) { 7706 for (var i = 0; i < classNames.length; i++) { 7707 if (classNames[i] && classNames[i].length > 0) { 7708 el.classList.add(IpixUtil.trim(classNames[i])); 7709 } 7710 } 7711 } else if (!IpixUtil.hasClass(el, className)) { 7712 for (var x = 0; x < classNames.length; x++) { 7713 el.className += ' ' + IpixUtil.trim(classNames[x]); 7714 } 7715 } 7716 }, 7717 removeClass: function (el, className) { 7718 if (!el || typeof className === 'undefined') { 7719 return; 7720 } 7721 var classNames = className.split(' '); 7722 if (el.classList) { 7723 for (var i = 0; i < classNames.length; i++) { 7724 el.classList.remove(IpixUtil.trim(classNames[i])); 7725 } 7726 } else if (IpixUtil.hasClass(el, className)) { 7727 for (var x = 0; x < classNames.length; x++) { 7728 el.className = el.className.replace(new RegExp('\\b' + IpixUtil.trim(classNames[x]) + '\\b', 'g'), ''); 7729 } 7730 } 7731 }, 7732 triggerCustomEvent: function (el, eventName, data) { 7733 var event; 7734 if (window.CustomEvent) { 7735 event = new CustomEvent(eventName, { 7736 detail: data 7737 }); 7738 } else { 7739 event = document.createEvent('CustomEvent'); 7740 event.initCustomEvent(eventName, true, true, data); 7741 } 7742 el.dispatchEvent(event); 7743 }, 7744 triggerEvent: function (node, eventName) { 7745 // Make sure we use the ownerDocument from the provided node to avoid cross-window problems 7746 var doc; 7747 if (node.ownerDocument) { 7748 doc = node.ownerDocument; 7749 } else if (node.nodeType == 9) { 7750 // the node may be the document itself, nodeType 9 = DOCUMENT_NODE 7751 doc = node; 7752 } else { 7753 throw new Error("Invalid node passed to fireEvent: " + node.id); 7754 }
7755 if (node.dispatchEvent) { 7756 // Gecko-style approach (now the standard) takes more work 7757 var eventClass = ""; 7758 7759 // Different events have different event classes. 7760 // If this switch statement can't map an eventName to an eventClass, 7761 // the event firing is going to fail. 7762 switch (eventName) { 7763 case "click": // Dispatching of 'click' appears to not work correctly in Safari. Use 'mousedown' or 'mouseup' instead. 7764 case "mouseenter": 7765 case "mouseleave": 7766 case "mousedown": 7767 case "mouseup": 7768 eventClass = "MouseEvents"; 7769 break; 7770 case "focus": 7771 case "change": 7772 case "blur": 7773 case "select": 7774 eventClass = "HTMLEvents"; 7775 break; 7776 default: 7777 throw "fireEvent: Couldn't find an event class for event '" + eventName + "'."; 7778 break; 7779 } 7780 var event = doc.createEvent(eventClass); 7781 var bubbles = eventName == "change" ? false : true; 7782 event.initEvent(eventName, bubbles, true); // All events created as bubbling and cancelable. 7783 7784 event.synthetic = true; // allow detection of synthetic events 7785 // The second parameter says go ahead with the default action 7786 node.dispatchEvent(event, true); 7787 } else if (node.fireEvent) { 7788 // IE-old school style 7789 var event = doc.createEventObject(); 7790 event.synthetic = true; // allow detection of synthetic events 7791 node.fireEvent("on" + eventName, event); 7792 } 7793 }, 7794 index: function (el) { 7795 var c = el.parentNode.children, 7796 i = 0; 7797 for (; i < c.length; i++) if (c[i] == el) return i; 7798 }, 7799 trim: function (string) { 7800 return string.trim(); 7801 }, 7802 eventTriggered: function (e) { 7803 if (e.currentTarget.dataset.triggered) { 7804 return true; 7805 } else { 7806 e.currentTarget.dataset.triggered = true; 7807 return false; 7808 } 7809 }, 7810 remove: function (el) { 7811 if (el && el.parentNode) { 7812 el.parentNode.removeChild(el); 7813 } 7814 }, 7815 find: function (parent, query) { 7816 if (parent !== null) { 7817 return parent.querySelector(query); 7818 } else { 7819 return null; 7820 } 7821 }, 7822 findAll: function (parent, query) { 7823 if (parent !== null) { 7824 return parent.querySelectorAll(query); 7825 } else { 7826 return null; 7827 } 7828 }, 7829 insertAfter: function (el, referenceNode) { 7830 return referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling); 7831 }, 7832 parents: function (elem, selector) { 7833 // Set up a parent array 7834 var parents = []; 7835 7836 // Push each parent element to the array 7837 for (; elem && elem !== document; elem = elem.parentNode) { 7838 if (selector) { 7839 if (elem.matches(selector)) { 7840 parents.push(elem); 7841 } 7842 continue; 7843 } 7844 parents.push(elem); 7845 } 7846 7847 // Return our parent array 7848 return parents; 7849 }, 7850 children: function (el, selector, log) { 7851 if (!el || !el.childNodes) { 7852 return null; 7853 } 7854 var result = [], 7855 i = 0, 7856 l = el.childNodes.length; 7857 for (var i; i < l; ++i) { 7858 if (el.childNodes[i].nodeType == 1 && IpixUtil.matches(el.childNodes[i], selector, log)) { 7859 result.push(el.childNodes[i]); 7860 } 7861 } 7862 return result; 7863 }, 7864 child: function (el, selector, log) { 7865 var children = IpixUtil.children(el, selector, log); 7866 return children ? children[0] : null; 7867 }, 7868 matches: function (el, selector, log) { 7869 var p = Element.prototype; 7870 var f = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || function (s) { 7871 return [].indexOf.call(document.querySelectorAll(s), this) !== -1; 7872 }; 7873 if (el && el.tagName) { 7874 return f.call(el, selector); 7875 } else { 7876 return false; 7877 } 7878 }, 7879 data: function (el) { 7880 return { 7881 set: function (name, data) { 7882 if (!el) { 7883 return; 7884 } 7885 if (el.customDataTag === undefined) { 7886 window.IpixUtilElementDataStoreID++; 7887 el.customDataTag = window.IpixUtilElementDataStoreID; 7888 } 7889 if (window.IpixUtilElementDataStore[el.customDataTag] === undefined) { 7890 window.IpixUtilElementDataStore[el.customDataTag] = {}; 7891 } 7892 window.IpixUtilElementDataStore[el.customDataTag][name] = data; 7893 }, 7894 get: function (name) { 7895 if (!el) { 7896 return; 7897 } 7898 if (el.customDataTag === undefined) { 7899 return null; 7900 } 7901 return this.has(name) ? window.IpixUtilElementDataStore[el.customDataTag][name] : null; 7902 }, 7903 has: function (name) { 7904 if (!el) { 7905 return false;
7906 } 7907 if (el.customDataTag === undefined) { 7908 return false; 7909 } 7910 return window.IpixUtilElementDataStore[el.customDataTag] && window.IpixUtilElementDataStore[el.customDataTag][name] ? true : false; 7911 }, 7912 remove: function (name) { 7913 if (el && this.has(name)) { 7914 delete window.IpixUtilElementDataStore[el.customDataTag][name]; 7915 } 7916 } 7917 }; 7918 }, 7919 outerWidth: function (el, margin) { 7920 var width; 7921 if (margin === true) { 7922 width = parseFloat(el.offsetWidth); 7923 width += parseFloat(IpixUtil.css(el, 'margin-left')) + parseFloat(IpixUtil.css(el, 'margin-right')); 7924 return parseFloat(width); 7925 } else { 7926 width = parseFloat(el.offsetWidth); 7927 return width; 7928 } 7929 }, 7930 offset: function (el) { 7931 var rect, win; 7932 if (!el) { 7933 return; 7934 } 7935 7936 // Return zeros for disconnected and hidden (display: none) elements (gh-2310) 7937 // Support: IE <=11 only 7938 // Running getBoundingClientRect on a 7939 // disconnected node in IE throws an error 7940 7941 if (!el.getClientRects().length) { 7942 return { 7943 top: 0, 7944 left: 0 7945 }; 7946 } 7947 7948 // Get document-relative position by adding viewport scroll to viewport-relative gBCR 7949 rect = el.getBoundingClientRect(); 7950 win = el.ownerDocument.defaultView; 7951 return { 7952 top: rect.top + win.pageYOffset, 7953 left: rect.left + win.pageXOffset, 7954 right: window.innerWidth - (el.offsetLeft + el.offsetWidth) 7955 }; 7956 }, 7957 height: function (el) { 7958 return IpixUtil.css(el, 'height'); 7959 }, 7960 outerHeight: function (el, withMargin) { 7961 var height = el.offsetHeight; 7962 var style; 7963 if (typeof withMargin !== 'undefined' && withMargin === true) { 7964 style = getComputedStyle(el); 7965 height += parseInt(style.marginTop) + parseInt(style.marginBottom); 7966 return height; 7967 } else { 7968 return height; 7969 } 7970 }, 7971 visible: function (el) { 7972 return !(el.offsetWidth === 0 && el.offsetHeight === 0); 7973 }, 7974 isVisibleInContainer: function (el, container, offset = 0) { 7975 const eleTop = el.offsetTop; 7976 const eleBottom = eleTop + el.clientHeight + offset; 7977 const containerTop = container.scrollTop; 7978 const containerBottom = containerTop + container.clientHeight; 7979 7980 // The element is fully visible in the container 7981 return eleTop >= containerTop && eleBottom <= containerBottom; 7982 }, 7983 getRelativeTopPosition: function (el, container) { 7984 return el.offsetTop - container.offsetTop; 7985 }, 7986 attr: function (el, name, value) { 7987 if (el == undefined) { 7988 return; 7989 } 7990 if (value !== undefined) { 7991 el.setAttribute(name, value); 7992 } else { 7993 return el.getAttribute(name); 7994 } 7995 }, 7996 hasAttr: function (el, name) { 7997 if (el == undefined) { 7998 return; 7999 } 8000 return el.getAttribute(name) ? true : false; 8001 }, 8002 removeAttr: function (el, name) { 8003 if (el == undefined) { 8004 return; 8005 } 8006 el.removeAttribute(name); 8007 }, 8008 animate: function (from, to, duration, update, easing, done) { 8009 /** 8010 * TinyAnimate.easings 8011 * Adapted from jQuery Easing 8012 */ 8013 var easings = {}; 8014 var easing; 8015 easings.linear = function (t, b, c, d) { 8016 return c * t / d + b; 8017 }; 8018 easing = easings.linear; 8019 8020 // Early bail out if called incorrectly 8021 if (typeof from !== 'number' || typeof to !== 'number' || typeof duration !== 'number' || typeof update !== 'function') { 8022 return; 8023 } 8024 8025 // Create mock done() function if necessary 8026 if (typeof done !== 'function') { 8027 done = function () {}; 8028 } 8029 8030 // Pick implementation (requestAnimationFrame | setTimeout) 8031 var rAF = window.requestAnimationFrame || function (callback) { 8032 window.setTimeout(callback, 1000 / 50); 8033 }; 8034 8035 // Animation loop 8036 var canceled = false; 8037 var change = to - from; 8038 function loop(timestamp) { 8039 var time = (timestamp || +new Date()) - start; 8040 if (time >= 0) { 8041 update(easing(time, from, change, duration)); 8042 } 8043 if (time >= 0 && time >= duration) { 8044 update(to); 8045 done(); 8046 } else { 8047 rAF(loop); 8048 } 8049 } 8050 update(from); 8051 8052 // Start animation loop 8053 var start = window.performance && window.performance.now ? window.performance.now() : +new Date(); 8054 rAF(loop); 8055 }, 8056 actualCss: function (el, prop, cache) { 8057 var css = ''; 8058 if (el instanceof HTMLElement === false) { 8059 return; 8060 } 8061 if (!el.getAttribute('kt-hidden-' + prop) || cache === false) { 8062 var value; 8063 8064 // the element is hidden so: 8065 // making the el block so we can meassure its height but still be hidden 8066 css = el.style.cssText; 8067 el.style.cssText = 'position: absolute; visibility: hidden; display: block;'; 8068 if (prop == 'width') { 8069 value = el.offsetWidth; 8070 } else if (prop == 'height') { 8071 value = el.offsetHeight; 8072 } 8073 el.style.cssText = css; 8074 8075 // store it in cache 8076 el.setAttribute('kt-hidden-' + prop, value); 8077 return parseFloat(value); 8078 } else { 8079 // store it in cache 8080 return parseFloat(el.getAttribute('kt-hidden-' + prop)); 8081 } 8082 }, 8083 actualHeight: function (el, cache) { 8084 return IpixUtil.actualCss(el, 'height', cache); 8085 }, 8086 actualWidth: function (el, cache) { 8087 return IpixUtil.actualCss(el, 'width', cache); 8088 }, 8089 getScroll: function (element, method) { 8090 // The passed in `method` value should be 'Top' or 'Left' 8091 method = 'scroll' + method; 8092 return element == window || element == document ? self[method == 'scrollTop' ? 'pageYOffset' : 'pageXOffset'] || browserSupportsBoxModel && document.documentElement[method] || document.body[method] : element[method]; 8093 }, 8094 css: function (el, styleProp, value, important) { 8095 if (!el) { 8096 return; 8097 } 8098 if (value !== undefined) { 8099 if (important === true) { 8100 el.style.setProperty(styleProp, value, 'important'); 8101 } else { 8102 el.style[styleProp] = value; 8103 } 8104 } else { 8105 var defaultView = (el.ownerDocument || document).defaultView; 8106 8107 // W3C standard way: 8108 if (defaultView && defaultView.getComputedStyle) { 8109 // sanitize property name to css notation 8110 // (hyphen separated words eg. font-Size) 8111 styleProp = styleProp.replace(/([A-Z])/g, "-$1").toLowerCase(); 8112 return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp); 8113 } else if (el.currentStyle) { 8114 // IE 8115 // sanitize property name to camelCase 8116 styleProp = styleProp.replace(/\-(\w)/g, function (str, letter) { 8117 return letter.toUpperCase(); 8118 }); 8119 value = el.currentStyle[styleProp]; 8120 8121 // convert other units to pixels on IE 8122 if (/^\d+(em|pt|%|ex)?$/i.test(value)) { 8123 return function (value) { 8124 var oldLeft = el.style.left, 8125 oldRsLeft = el.runtimeStyle.left; 8126 el.runtimeStyle.left = el.currentStyle.left; 8127 el.style.left = value || 0; 8128 value = el.style.pixelLeft + "px"; 8129 el.style.left = oldLeft; 8130 el.runtimeStyle.left = oldRsLeft; 8131 return value; 8132 }(value); 8133 } 8134 return value; 8135 } 8136 } 8137 }, 8138 slide: function (el, dir, speed, callback, recalcMaxHeight) { 8139 if (!el || dir == 'up' && IpixUtil.visible(el) === false || dir == 'down' && IpixUtil.visible(el) === true) { 8140 return; 8141 } 8142 speed = speed ? speed : 600; 8143 var calcHeight = IpixUtil.actualHeight(el); 8144 var calcPaddingTop = false;
8145 var calcPaddingBottom = false; 8146 if (IpixUtil.css(el, 'padding-top') && IpixUtil.data(el).has('slide-padding-top') !== true) { 8147 IpixUtil.data(el).set('slide-padding-top', IpixUtil.css(el, 'padding-top')); 8148 } 8149 if (IpixUtil.css(el, 'padding-bottom') && IpixUtil.data(el).has('slide-padding-bottom') !== true) { 8150 IpixUtil.data(el).set('slide-padding-bottom', IpixUtil.css(el, 'padding-bottom')); 8151 } 8152 if (IpixUtil.data(el).has('slide-padding-top')) { 8153 calcPaddingTop = parseInt(IpixUtil.data(el).get('slide-padding-top')); 8154 } 8155 if (IpixUtil.data(el).has('slide-padding-bottom')) { 8156 calcPaddingBottom = parseInt(IpixUtil.data(el).get('slide-padding-bottom')); 8157 } 8158 if (dir == 'up') { 8159 // up 8160 el.style.cssText = 'display: block; overflow: hidden;'; 8161 if (calcPaddingTop) { 8162 IpixUtil.animate(0, calcPaddingTop, speed, function (value) { 8163 el.style.paddingTop = calcPaddingTop - value + 'px'; 8164 }, 'linear'); 8165 } 8166 if (calcPaddingBottom) { 8167 IpixUtil.animate(0, calcPaddingBottom, speed, function (value) { 8168 el.style.paddingBottom = calcPaddingBottom - value + 'px'; 8169 }, 'linear'); 8170 } 8171 IpixUtil.animate(0, calcHeight, speed, function (value) { 8172 el.style.height = calcHeight - value + 'px'; 8173 }, 'linear', function () { 8174 el.style.height = ''; 8175 el.style.display = 'none'; 8176 if (typeof callback === 'function') { 8177 callback(); 8178 } 8179 }); 8180 } else if (dir == 'down') { 8181 // down 8182 el.style.cssText = 'display: block; overflow: hidden;'; 8183 if (calcPaddingTop) { 8184 IpixUtil.animate(0, calcPaddingTop, speed, function (value) { 8185 // 8186 el.style.paddingTop = value + 'px'; 8187 }, 'linear', function () { 8188 el.style.paddingTop = ''; 8189 }); 8190 } 8191 if (calcPaddingBottom) { 8192 IpixUtil.animate(0, calcPaddingBottom, speed, function (value) { 8193 el.style.paddingBottom = value + 'px'; 8194 }, 'linear', function () { 8195 el.style.paddingBottom = ''; 8196 }); 8197 } 8198 IpixUtil.animate(0, calcHeight, speed, function (value) { 8199 el.style.height = value + 'px'; 8200 }, 'linear', function () { 8201 el.style.height = ''; 8202 el.style.display = ''; 8203 el.style.overflow = ''; 8204 if (typeof callback === 'function') { 8205 callback(); 8206 } 8207 }); 8208 } 8209 }, 8210 slideUp: function (el, speed, callback) { 8211 IpixUtil.slide(el, 'up', speed, callback); 8212 }, 8213 slideDown: function (el, speed, callback) { 8214 IpixUtil.slide(el, 'down', speed, callback); 8215 }, 8216 show: function (el, display) { 8217 if (typeof el !== 'undefined') { 8218 el.style.display = display ? display : 'block'; 8219 } 8220 }, 8221 hide: function (el) { 8222 if (typeof el !== 'undefined') { 8223 el.style.display = 'none'; 8224 } 8225 }, 8226 addEvent: function (el, type, handler, one) { 8227 if (typeof el !== 'undefined' && el !== null) { 8228 el.addEventListener(type, handler); 8229 } 8230 }, 8231 removeEvent: function (el, type, handler) { 8232 if (el !== null) { 8233 el.removeEventListener(type, handler); 8234 } 8235 }, 8236 on: function (element, selector, event, handler) { 8237 if (element === null) { 8238 return; 8239 } 8240 var eventId = IpixUtil.getUniqueId('event'); 8241 window.IpixUtilDelegatedEventHandlers[eventId] = function (e) { 8242 var targets = element.querySelectorAll(selector); 8243 var target = e.target; 8244 while (target && target !== element) { 8245 for (var i = 0, j = targets.length; i < j; i++) { 8246 if (target === targets[i]) { 8247 handler.call(target, e); 8248 } 8249 } 8250 target = target.parentNode; 8251 } 8252 }; 8253 IpixUtil.addEvent(element, event, window.IpixUtilDelegatedEventHandlers[eventId]); 8254 return eventId; 8255 }, 8256 off: function (element, event, eventId) { 8257 if (!element || !window.IpixUtilDelegatedEventHandlers[eventId]) { 8258 return; 8259 } 8260 IpixUtil.removeEvent(element, event, window.IpixUtilDelegatedEventHandlers[eventId]); 8261 delete window.IpixUtilDelegatedEventHandlers[eventId]; 8262 }, 8263 one: function onetime(el, type, callback) { 8264 el.addEventListener(type, function callee(e) { 8265 // remove event 8266 if (e.target && e.target.removeEventListener) { 8267 e.target.removeEventListener(e.type, callee); 8268 } 8269
8270 // need to verify from https://themeforest.net/author_dashboard#comment_23615588 8271 if (el && el.removeEventListener) { 8272 e.currentTarget.removeEventListener(e.type, callee); 8273 } 8274 8275 // call handler 8276 return callback(e); 8277 }); 8278 }, 8279 hash: function (str) { 8280 var hash = 0, 8281 i, 8282 chr; 8283 if (str.length === 0) return hash; 8284 for (i = 0; i < str.length; i++) { 8285 chr = str.charCodeAt(i); 8286 hash = (hash << 5) - hash + chr; 8287 hash |= 0; // Convert to 32bit integer 8288 } 8289 return hash; 8290 }, 8291 animateClass: function (el, animationName, callback) { 8292 var animation; 8293 var animations = { 8294 animation: 'animationend', 8295 OAnimation: 'oAnimationEnd', 8296 MozAnimation: 'mozAnimationEnd', 8297 WebkitAnimation: 'webkitAnimationEnd', 8298 msAnimation: 'msAnimationEnd' 8299 }; 8300 for (var t in animations) { 8301 if (el.style[t] !== undefined) { 8302 animation = animations[t]; 8303 } 8304 } 8305 IpixUtil.addClass(el, animationName); 8306 IpixUtil.one(el, animation, function () { 8307 IpixUtil.removeClass(el, animationName); 8308 }); 8309 if (callback) { 8310 IpixUtil.one(el, animation, callback); 8311 } 8312 }, 8313 transitionEnd: function (el, callback) { 8314 var transition; 8315 var transitions = { 8316 transition: 'transitionend', 8317 OTransition: 'oTransitionEnd', 8318 MozTransition: 'mozTransitionEnd', 8319 WebkitTransition: 'webkitTransitionEnd', 8320 msTransition: 'msTransitionEnd' 8321 }; 8322 for (var t in transitions) { 8323 if (el.style[t] !== undefined) { 8324 transition = transitions[t]; 8325 } 8326 } 8327 IpixUtil.one(el, transition, callback); 8328 }, 8329 animationEnd: function (el, callback) { 8330 var animation; 8331 var animations = { 8332 animation: 'animationend', 8333 OAnimation: 'oAnimationEnd', 8334 MozAnimation: 'mozAnimationEnd', 8335 WebkitAnimation: 'webkitAnimationEnd', 8336 msAnimation: 'msAnimationEnd' 8337 }; 8338 for (var t in animations) { 8339 if (el.style[t] !== undefined) { 8340 animation = animations[t]; 8341 } 8342 } 8343 IpixUtil.one(el, animation, callback); 8344 }, 8345 animateDelay: function (el, value) { 8346 var vendors = ['webkit-', 'moz-', 'ms-', 'o-', '']; 8347 for (var i = 0; i < vendors.length; i++) { 8348 IpixUtil.css(el, vendors[i] + 'animation-delay', value); 8349 } 8350 }, 8351 animateDuration: function (el, value) { 8352 var vendors = ['webkit-', 'moz-', 'ms-', 'o-', '']; 8353 for (var i = 0; i < vendors.length; i++) { 8354 IpixUtil.css(el, vendors[i] + 'animation-duration', value); 8355 } 8356 }, 8357 scrollTo: function (target, offset, duration) { 8358 var duration = duration ? duration : 500; 8359 var targetPos = target ? IpixUtil.offset(target).top : 0; 8360 var scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; 8361 var from, to; 8362 if (offset) { 8363 targetPos = targetPos - offset; 8364 } 8365 from = scrollPos; 8366 to = targetPos; 8367 IpixUtil.animate(from, to, duration, function (value) { 8368 document.documentElement.scrollTop = value; 8369 document.body.parentNode.scrollTop = value; 8370 document.body.scrollTop = value; 8371 }); //, easing, done 8372 }, 8373 scrollTop: function (offset, duration) { 8374 IpixUtil.scrollTo(null, offset, duration); 8375 }, 8376 isArray: function (obj) { 8377 return obj && Array.isArray(obj); 8378 }, 8379 isEmpty: function (obj) { 8380 for (var prop in obj) { 8381 if (obj.hasOwnProperty(prop)) { 8382 return false; 8383 } 8384 } 8385 return true; 8386 }, 8387 numberString: function (nStr) { 8388 nStr += ''; 8389 var x = nStr.split('.'); 8390 var x1 = x[0]; 8391 var x2 = x.length > 1 ? '.' + x[1] : ''; 8392 var rgx = /(\d+)(\d{3})/; 8393 while (rgx.test(x1)) { 8394 x1 = x1.replace(rgx, '$1' + ',' + '$2'); 8395 } 8396 return x1 + x2; 8397 }, 8398 isRTL: function () { 8399 return document.querySelector('html').getAttribute("direction") === 'rtl'; 8400 }, 8401 snakeToCamel: function (s) { 8402 return s.replace(/(\-\w)/g, function (m) { 8403 return m[1].toUpperCase(); 8404 }); 8405 }, 8406 filterBoolean: function (val) { 8407 // Convert string boolean 8408 if (val === true || val === 'true') { 8409 return true; 8410 } 8411 if (val === false || val === 'false') { 8412 return false;
8413 } 8414 return val; 8415 }, 8416 setHTML: function (el, html) { 8417 el.innerHTML = html; 8418 }, 8419 getHTML: function (el) { 8420 if (el) { 8421 return el.innerHTML; 8422 } 8423 }, 8424 getDocumentHeight: function () { 8425 var body = document.body; 8426 var html = document.documentElement; 8427 return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight); 8428 }, 8429 getScrollTop: function () { 8430 return (document.scrollingElement || document.documentElement).scrollTop; 8431 }, 8432 colorLighten: function (color, amount) { 8433 const addLight = function (color, amount) { 8434 let cc = parseInt(color, 16) + amount; 8435 let c = cc > 255 ? 255 : cc; 8436 c = c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}`; 8437 return c; 8438 }; 8439 color = color.indexOf("#") >= 0 ? color.substring(1, color.length) : color; 8440 amount = parseInt(255 * amount / 100); 8441 return color = `#${addLight(color.substring(0, 2), amount)}${addLight(color.substring(2, 4), amount)}${addLight(color.substring(4, 6), amount)}`; 8442 }, 8443 colorDarken: function (color, amount) { 8444 const subtractLight = function (color, amount) { 8445 let cc = parseInt(color, 16) - amount; 8446 let c = cc < 0 ? 0 : cc; 8447 c = c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}`; 8448 return c; 8449 }; 8450 color = color.indexOf("#") >= 0 ? color.substring(1, color.length) : color; 8451 amount = parseInt(255 * amount / 100); 8452 return color = `#${subtractLight(color.substring(0, 2), amount)}${subtractLight(color.substring(2, 4), amount)}${subtractLight(color.substring(4, 6), amount)}`; 8453 }, 8454 // Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds 8455 throttle: function (timer, func, delay) { 8456 // If setTimeout is already scheduled, no need to do anything 8457 if (timer) { 8458 return; 8459 } 8460 8461 // Schedule a setTimeout after delay seconds 8462 timer = setTimeout(function () { 8463 func(); 8464 8465 // Once setTimeout function execution is finished, timerId = undefined so that in <br> 8466 // the next scroll event function execution can be scheduled by the setTimeout 8467 timer = undefined; 8468 }, delay); 8469 }, 8470 // Debounce function: Input as function which needs to be debounced and delay is the debounced time in milliseconds 8471 debounce: function (timer, func, delay) { 8472 // Cancels the setTimeout method execution 8473 clearTimeout(timer); 8474 8475 // Executes the func after delay time. 8476 timer = setTimeout(func, delay); 8477 }, 8478 parseJson: function (value) { 8479 if (typeof value === 'string') { 8480 value = value.replace(/'/g, "\""); 8481 var jsonStr = value.replace(/(\w+:)|(\w+ :)/g, function (matched) { 8482 return '"' + matched.substring(0, matched.length - 1) + '":'; 8483 }); 8484 try { 8485 value = JSON.parse(jsonStr); 8486 } catch (e) {} 8487 } 8488 return value; 8489 }, 8490 getResponsiveValue: function (value, defaultValue) { 8491 var width = this.getViewPort().width; 8492 var result = null; 8493 value = IpixUtil.parseJson(value); 8494 if (typeof value === 'object') { 8495 var resultKey; 8496 var resultBreakpoint = -1; 8497 var breakpoint; 8498 for (var key in value) { 8499 if (key === 'default') { 8500 breakpoint = 0; 8501 } else { 8502 breakpoint = this.getBreakpoint(key) ? this.getBreakpoint(key) : parseInt(key); 8503 } 8504 if (breakpoint <= width && breakpoint > resultBreakpoint) { 8505 resultKey = key; 8506 resultBreakpoint = breakpoint; 8507 } 8508 } 8509 if (resultKey) { 8510 result = value[resultKey]; 8511 } else { 8512 result = value; 8513 } 8514 } else { 8515 result = value; 8516 } 8517 return result; 8518 }, 8519 each: function (array, callback) { 8520 return [].slice.call(array).map(callback); 8521 }, 8522 getSelectorMatchValue: function (value) { 8523 var result = null; 8524 value = IpixUtil.parseJson(value); 8525 if (typeof value === 'object') { 8526 // Match condition 8527 if (value['match'] !== undefined) { 8528 var selector = Object.keys(value['match'])[0]; 8529 value = Object.values(value['match'])[0]; 8530 if (document.querySelector(selector) !== null) { 8531 result = value; 8532 } 8533 } 8534 } else { 8535 result = value; 8536 } 8537 return result; 8538 }, 8539 getConditionalValue: function (value) { 8540 var value = IpixUtil.parseJson(value); 8541 var result = IpixUtil.getResponsiveValue(value); 8542 if (result !== null && result['match'] !== undefined) { 8543 result = IpixUtil.getSelectorMatchValue(result); 8544 } 8545 if (result === null && value !== null && value['default'] !== undefined) { 8546 result = value['default']; 8547 } 8548 return result; 8549 }, 8550 getCssVariableValue: function (variableName) { 8551 var hex = getComputedStyle(document.documentElement).getPropertyValue(variableName); 8552 if (hex && hex.length > 0) { 8553 hex = hex.trim(); 8554 } 8555 return hex; 8556 }, 8557 isInViewport: function (element) { 8558 var rect = element.getBoundingClientRect(); 8559 return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth); 8560 }, 8561 isPartiallyInViewport: function (element) { 8562 let x = element.getBoundingClientRect().left; 8563 let y = element.getBoundingClientRect().top; 8564 let ww = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); 8565 let hw = Math.max(document.documentElement.clientHeight, window.innerHeight || 0
8565); 8566 let w = element.clientWidth; 8567 let h = element.clientHeight; 8568 return y < hw && y + h > 0 && x < ww && x + w > 0; 8569 }, 8570 onDOMContentLoaded: function (callback) { 8571 if (document.readyState === 'loading') { 8572 document.addEventListener('DOMContentLoaded', callback); 8573 } else { 8574 callback(); 8575 } 8576 }, 8577 inIframe: function () { 8578 try { 8579 return window.self !== window.top; 8580 } catch (e) { 8581 return true; 8582 } 8583 }, 8584 isHexColor(code) { 8585 return /^#[0-9A-F]{6}$/i.test(code); 8586 } 8587 }; 8588}(); 8589 8590// Webpack support 8591if ( true && typeof module.exports !== 'undefined') { 8592 module.exports = IpixUtil; 8593} 8594 8595/***/ }), 8596
8597/***/ "./resources/js/layouts/components/web.js": 8598/*!************************************************!*\ 8599 !*** ./resources/js/layouts/components/web.js ***! 8600 \************************************************/ 8601/***/ ((module) => { 8602 8603"use strict"; 8604 8605 8606// Class definition 8607var IpixApp = function () { 8608 var initialized = false; 8609 var select2FocusFixInitialized = false; 8610 var countUpInitialized = false; 8611 var toggleSection = function () { 8612 var section = document.getElementById('lets_talk_drop_down'); 8613 document.addEventListener('click', function (event) { 8614 if (event.target !== button && event.target !== section) { 8615 section.style.display = 'none'; 8616 } 8617 }); 8618 section.addEventListener('click', function (event) { 8619 event.stopPropagation(); 8620 }); 8621 var button = document.getElementById('navbar_lets_talk'); 8622 button.addEventListener('click', function (event) { 8623 section.style.display = section.style.display === 'none' || section.style.display === '' ? 'block' : 'none'; 8624 event.stopPropagation(); 8625 }); 8626 }; 8627 var createBootstrapTooltip = function (el, options) { 8628 if (el.getAttribute("data-kt-initialized") === "1") { 8629 return; 8630 } 8631 var delay = {}; 8632 8633 // Handle delay options 8634 if (el.hasAttribute('data-bs-delay-hide')) { 8635 delay['hide'] = el.getAttribute('data-bs-delay-hide'); 8636 } 8637 if (el.hasAttribute('data-bs-delay-show')) { 8638 delay['show'] = el.getAttribute('data-bs-delay-show'); 8639 } 8640 if (delay) { 8641 options['delay'] = delay; 8642 } 8643 8644 // Check dismiss options 8645 if (el.hasAttribute('data-bs-dismiss') && el.getAttribute('data-bs-dismiss') == 'click') { 8646 options['dismiss'] = 'click'; 8647 } 8648 8649 // Initialize popover 8650 var tp = new bootstrap.Tooltip(el, options); 8651 8652 // Handle dismiss 8653 if (options['dismiss'] && options['dismiss'] === 'click') { 8654 // Hide popover on element click 8655 el.addEventListener("click", function (e) { 8656 tp.hide(); 8657 }); 8658 } 8659 el.setAttribute("data-kt-initialized", "1"); 8660 return tp; 8661 }; 8662 var createBootstrapTooltips = function () { 8663 var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')); 8664 var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { 8665 createBootstrapTooltip(tooltipTriggerEl, {}); 8666 }); 8667 }; 8668 var createBootstrapPopover = function (el, options) { 8669 if (el.getAttribute("data-kt-initialized") === "1") { 8670 return; 8671 } 8672 var delay = {}; 8673 8674 // Handle delay options 8675 if (el.hasAttribute('data-bs-delay-hide')) { 8676 delay['hide'] = el.getAttribute('data-bs-delay-hide'); 8677 } 8678 if (el.hasAttribute('data-bs-delay-show')) { 8679 delay['show'] = el.getAttribute('data-bs-delay-show'); 8680 } 8681 if (delay) { 8682 options['delay'] = delay; 8683 } 8684 8685 // Handle dismiss option 8686 if (el.getAttribute('data-bs-dismiss') == 'true') { 8687 options['dismiss'] = true; 8688 } 8689 if (options['dismiss'] === true) { 8690 options['template'] = '<div class="popover" role="tooltip"><div class="popover-arrow"></div><span class="popover-dismiss btn btn-icon"></span><h3 class="popover-header"></h3><div class="popover-body"></div></div>'; 8691 } 8692 8693 // Initialize popover 8694 var popover = new bootstrap.Popover(el, options); 8695 8696 // Handle dismiss click 8697 if (options['dismiss'] === true) { 8698 var dismissHandler = function (e) { 8699 popover.hide(); 8700 }; 8701 el.addEventListener('shown.bs.popover', function () { 8702 var dismissEl = document.getElementById(el.getAttribute('aria-describedby')); 8703 dismissEl.addEventListener('click', dismissHandler); 8704 }); 8705 el.addEventListener('hide.bs.popover', function () { 8706 var dismissEl = document.getElementById(el.getAttribute('aria-describedby')); 8707 dismissEl.removeEventListener('click', dismissHandler); 8708 }); 8709 } 8710 el.setAttribute("data-kt-initialized", "1"); 8711 return popover; 8712 }; 8713 var createBootstrapPopovers = function () { 8714 var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')); 8715 var popoverList = popoverTriggerList.map(function (popoverTriggerEl) { 8716 createBootstrapPopover(popoverTriggerEl, {}); 8717 }); 8718 }; 8719 var createBootstrapToasts = function () { 8720 var toastElList = [].slice.call(document.querySelectorAll('.toast')); 8721 var toastList = toastElList.map(function (toastEl) { 8722 if (toastEl.getAttribute("data-kt-initialized") === "1") { 8723 return; 8724 } 8725 toastEl.setAttribute("data-kt-initialized", "1"); 8726 return new bootstrap.Toast(toastEl, {}); 8727 }); 8728 }; 8729 var createButtons = function () { 8730 var buttonsGroup = [].slice.call(document.querySelectorAll('[data-kt-buttons="true"]')); 8731 buttonsGroup.map(function (group) { 8732 if (group.getAttribute("data-kt-initialized") === "1") { 8733 return; 8734 } 8735 var selector = group.hasAttribute('data-kt-buttons-target') ? group.getAttribute('data-kt-buttons-target') : '.btn'; 8736 var activeButtons = [].slice.call(group.querySelectorAll(selector)); 8737 8738 // Toggle Handler 8739 IpixUtil.on(group, selector, 'click', function (e) { 8740 activeButtons.map(function (button) { 8741 button.classList.remove('active'); 8742 }); 8743 this.classList.add('active'); 8744 }); 8745 group.setAttribute("data-kt-initialized", "1"); 8746 }); 8747 }; 8748 var createDateRangePickers = function () { 8749 // Check if jQuery included 8750 if (typeof jQuery == 'undefined') { 8751 return; 8752 } 8753 8754 // Check if daterangepicker included 8755 if (typeof $.fn.daterangepicker === 'undefined') { 8756 return; 8757 } 8758 var elements = [].slice.call(document.querySelectorAll('[data-kt-daterangepicker="true"]')); 8759 var start = moment().subtract(29, 'days'); 8760 var end = moment(); 8761 elements.map(function (element) { 8762 if (element.getAttribute("data-kt-initialized") === "1") { 8763 return; 8764 } 8765 var display = element.querySelector('div'); 8766 var attrOpens = element.hasAttribute('data-kt-daterangepicker-opens') ? element.getAttribute('data-kt-daterangepicker-opens') : 'left'; 8767 var range = element.getAttribute('data-kt-daterangepicker-range'); 8768 var cb = function (start, end) { 8769 var current = moment(); 8770 if (display) { 8771 if (current.isSame(start, "day") && current.isSame(end, "day")) { 8772 display.innerHTML = start.format('D MMM YYYY'); 8773 } else { 8774 display.innerHTML = start.format('D MMM YYYY') + ' - ' + end.format('D MMM YYYY'); 8775 } 8776 } 8777 }; 8778 if (range === "today") { 8779 start = moment(); 8780 end = moment(); 8781 } 8782 $(element).daterangepicker({ 8783 startDate: start, 8784 endDate: end, 8785 opens: attrOpens 8786 }, cb); 8787 cb(start, end); 8788 element.setAttribute("data-kt-initialized", "1"); 8789 }); 8790 }; 8791 8792 // Init tagify 8793 const createTagify = () => { 8794 const tagify = document.querySelector('[data-kt-tagify-input="true"]'); 8795 8796 // Break if element not found 8797 if (!tagify) { 8798 return; 8799 } 8800 8801 // Init tagify --- more info: https://yaireo.github.io/tagify/ 8802 new Tagify(tagify, IpixJson.options.tagify); 8803 }; 8804 var createJstree = function () { 8805 // Check if jQuery included 8806 if (typeof jQuery == 'undefined') { 8807 return; 8808 } 8809 8810 // Check if jstree included 8811 if (typeof $.fn.jstree === 'undefined') { 8812 return; 8813 } 8814 var jsTreeElements = [].slice.call(document.querySelectorAll('[kt-jstree-container="true"]')); 8815 jsTreeElements.map(function (element) { 8816 $(element).bind("changed.jstree", function (e, data) { 8817 if (data.node) { 8818 if (data.node && data.node.state.selected) { 8819 $("input.tree-checkbox." + data.node.id).prop('checked', true); 8820 } else { 8821 $("input.tree-checkbox." + data.node.id).prop('checked', false); 8822 } 8823 } 8824 }).bind('loaded.jstree', function () { 8825 var selectedCategories = $("#categoryTree").data("selected"); 8826 for (var k in selectedCategories) { 8827 $('#categoryTree').jstree("select_node", '#category_' + selectedCategories[k], true); 8828 } 8829 }).jstree(IpixJson.options.jsTree); 8830 }); 8831 $('.searchCategory').keyup(function () { 8832 $('#categoryTree').jstree(true).search($('.searchCategory').val()); 8833 }); 8834 }; 8835 var createAutosize = function () { 8836 var inputs = [].slice.call(document.querySelectorAll('[data-kt-autosize="true"]')); 8837 inputs.map(function (input) { 8838 if (input.getAttribute("data-kt-initialized") === "1") { 8839 return; 8840 } 8841 autosize(input); 8842 input.setAttribute("data-kt-initialized", "1"); 8843 }); 8844 }; 8845 var createCountUp = function () { 8846 var elements = [].slice.call(document.querySelectorAll('[data-kt-countup="true"]:not(.counted)')); 8847 elements.map(function (element) { 8848 if (IpixUtil.isInViewport(element) && IpixUtil.visible(element)) { 8849 if (element.getAttribute("data-kt-initialized") === "1") { 8850 return; 8851 } 8852 var options = {}; 8853 var value = element.getAttribute('data-kt-countup-value'); 8854 value = parseFloat(value.replace(/,/g, "")); 8855 if (element.hasAttribute('data-kt-countup-start-val')) { 8856 options.startVal = parseFloat(element.getAttribute('data-kt-countup-start-val')); 8857 } 8858 if (element.hasAttribute('data-kt-countup-duration')) { 8859 options.duration = parseInt(element.getAttribute('data-kt-countup-duration')); 8860 } 8861 if (element.hasAttribute('data-kt-countup-decimal-places')) { 8862 options.decimalPlaces = parseInt(element.getAttribute('data-kt-countup-decimal-places')); 8863 } 8864 if (element.hasAttribute('data-kt-countup-prefix')) { 8865 options.prefix = element.getAttribute('data-kt-countup-prefix'); 8866 } 8867 if (element.hasAttribute('data-kt-countup-separator')) { 8868 options.separator = element.getAttribute('data-kt-countup-separator'); 8869 } 8870 if (element.hasAttribute('data-kt-countup-suffix')) { 8871 options.suffix = element.getAttribute('data-kt-countup-suffix'); 8872 } 8873 var count = new countUp.CountUp(element, value, options); 8874 count.start(); 8875 element.classList.add('counted'); 8876 element.setAttribute("data-kt-initialized", "1"); 8877 } 8878 }); 8879 }; 8880 var createCountUpTabs = function () { 8881 if (countUpInitialized === false) { 8882 // Initial call
8883 createCountUp(); 8884 8885 // Window scroll event handler 8886 window.addEventListener('scroll', createCountUp); 8887 } 8888 8889 // Tabs shown event handler 8890 var tabs = [].slice.call(document.querySelectorAll('[data-kt-countup-tabs="true"][data-bs-toggle="tab"]')); 8891 tabs.map(function (tab) { 8892 if (tab.getAttribute("data-kt-initialized") === "1") { 8893 return; 8894 } 8895 tab.addEventListener('shown.bs.tab', createCountUp); 8896 tab.setAttribute("data-kt-initialized", "1"); 8897 }); 8898 countUpInitialized = true; 8899 }; 8900 var createTinySliders = function () { 8901 // Init Slider 8902 var initSlider = function (el) { 8903 if (!el) { 8904 return; 8905 } 8906 const tnsOptions = {}; 8907 8908 // Convert string boolean 8909 const checkBool = function (val) { 8910 if (val === 'true') { 8911 return true; 8912 } 8913 if (val === 'false') { 8914 return false; 8915 } 8916 return val; 8917 }; 8918 8919 // get extra options via data attributes 8920 el.getAttributeNames().forEach(function (attrName) { 8921 // more options; https://github.com/ganlanyuan/tiny-slider#options 8922 if (/^data-tns-.*/g.test(attrName)) { 8923 let optionName = attrName.replace('data-tns-', '').toLowerCase().replace(/(?:[\s-])\w/g, function (match) { 8924 return match.replace('-', '').toUpperCase(); 8925 }); 8926 if (attrName === 'data-tns-responsive') { 8927 // fix string with a valid json 8928 const jsonStr = el.getAttribute(attrName).replace(/(\w+:)|(\w+ :)/g, function (matched) { 8929 return '"' + matched.substring(0, matched.length - 1) + '":'; 8930 }); 8931 try { 8932 // convert json string to object 8933 tnsOptions[optionName] = JSON.parse(jsonStr); 8934 } catch (e) {} 8935 } else { 8936 tnsOptions[optionName] = checkBool(el.getAttribute(attrName)); 8937 } 8938 } 8939 }); 8940 const opt = Object.assign({}, { 8941 container: el, 8942 slideBy: 'page', 8943 autoplay: true, 8944 autoplayButtonOutput: false 8945 }, tnsOptions); 8946 if (el.closest('.tns')) { 8947 IpixUtil.addClass(el.closest('.tns'), 'tns-initiazlied'); 8948 } 8949 return tns(opt); 8950 }; 8951 8952 // Sliders 8953 const elements = Array.prototype.slice.call(document.querySelectorAll('[data-tns="true"]'), 0); 8954 if (!elements && elements.length === 0) { 8955 return; 8956 } 8957 elements.forEach(function (el) { 8958 if (el.getAttribute("data-kt-initialized") === "1") { 8959 return; 8960 } 8961 initSlider(el); 8962 el.setAttribute("data-kt-initialized", "1"); 8963 }); 8964 }; 8965 var initSmoothScroll = function () { 8966 if (initialized === true) { 8967 return; 8968 } 8969 if (SmoothScroll) { 8970 new SmoothScroll('a[data-kt-scroll-toggle][href*="#"]', { 8971 speed: 1000, 8972 speedAsDuration: true, 8973 offset: function (anchor, toggle) { 8974 // Integer or Function returning an integer. How far to offset the scrolling anchor location in pixels 8975 // This example is a function, but you could do something as simple as `offset: 25` 8976 8977 // An example returning different values based on whether the clicked link was in the header nav or not 8978 if (anchor.hasAttribute('data-kt-scroll-offset')) { 8979 var val = IpixUtil.getResponsiveValue(anchor.getAttribute('data-kt-scroll-offset')); 8980 return val; 8981 } else { 8982 return 0; 8983 } 8984 } 8985 }); 8986 } 8987 }; 8988 var initCheck = function () { 8989 if (initialized === true) { 8990 return; 8991 } 8992 8993 // Toggle Handler 8994 IpixUtil.on(document.body, '[data-kt-check="true"]', 'change', function (e) { 8995 var check = this; 8996 var targets = document.querySelectorAll(check.getAttribute('data-kt-check-target')); 8997 IpixUtil.each(targets, function (target) { 8998 if (target.type == 'checkbox') { 8999 target.checked = check.checked; 9000 } else { 9001 target.classList.toggle('active'); 9002 } 9003 }); 9004 }); 9005 }; 9006 var initBootstrapCollapse = function () { 9007 if (initialized === true) { 9008 return; 9009 } 9010 IpixUtil.on(document.body, '.collapsible[data-bs-toggle="collapse"]', 'click', function (e) { 9011 if (this.classList.contains('collapsed')) { 9012 this.classList.remove('active'); 9013 this.blur(); 9014 } else { 9015 this.classList.add('active'); 9016 } 9017 if (this.hasAttribute('data-kt-toggle-text')) { 9018 var text = this.getAttribute('data-kt-toggle-text'); 9019 var target = this.querySelector('[data-kt-toggle-text-target="true"]'); 9020 var target = target ? target : this; 9021 this.setAttribute('data-kt-toggle-text', target.innerText); 9022 target.innerText = text; 9023 } 9024 }); 9025 }; 9026 var initBootstrapRotate = function () { 9027 if (initialized === true) { 9028 return; 9029 } 9030 IpixUtil.on(document.body, '[data-kt-rotate="true"]', 'click', function (e) { 9031 if (this.classList.contains('active')) { 9032 this.classList.remove('active'); 9033 this.blur(); 9034 } else { 9035 this.classList.add('active'); 9036 } 9037 }); 9038 }; 9039 var initPageLoader = function () { 9040 // CSS3 Transitions only after page load(.page-loading or .app-page-loading class added to body tag and remove with JS on page load
9040) 9041 document.body.classList.remove('page-loading'); 9042 document.body.removeAttribute('data-kt-app-page-loading'); 9043 }; 9044 9045 // Init noUIslider 9046 const initNoUIslider = () => { 9047 const sliderElements = [].slice.call(document.querySelectorAll('[data-kt-noUiSlider="true"]')); 9048 if (sliderElements && $(sliderElements).length) { 9049 sliderElements.map(function (element) { 9050 var elementParent = $(element).parents(".noUi-container"); 9051 noUiSlider.create(element, { 9052 start: [$(elementParent).find('[data-kt-noUiSlider-value="true"]').val()], 9053 connect: true, 9054 step: 1, 9055 range: { 9056 "min": 0, 9057 "max": 100 9058 } 9059 }); 9060 element.noUiSlider.on("update", function (values, handle) { 9061 $(elementParent).find('[data-kt-noUiSlider-span="true"]').html(Math.round(values[handle])); 9062 $(elementParent).find('[data-kt-noUiSlider-value="true"]').val(Math.round(values[handle])); 9063 }); 9064 }); 9065 } 9066 }; 9067 var initAjaxLoader = () => { 9068 /** Loader starts */ 9069 // $(document).ajaxStart(function() { 9070 // IpixApp.showPageLoading(); 9071 // }); 9072 9073 // $(document).ajaxStop(function() { 9074 // IpixApp.hidePageLoading(); 9075 // }); 9076 /** loader End */ 9077 }; 9078 var initHeaderScroll = function () { 9079 $(window).scroll(function () { 9080 var scroll = $(window).scrollTop(); 9081 //>=, not <= 9082 if (scroll >= 0) { 9083 //clearHeader, not clearheader - caps H 9084 $(".ipix_app_header").removeClass("fixed-header"); 9085 } 9086 if (scroll >= 100) { 9087 //clearHeader, not clearheader - caps H 9088 $(".ipix_app_header").addClass("fixed-header"); 9089 } 9090 }); 9091 }; 9092 return { 9093 init: function () { 9094 toggleSection(); 9095 initSmoothScroll(); 9096 initCheck(); 9097 initBootstrapCollapse(); 9098 initBootstrapRotate(); 9099 createBootstrapTooltips(); 9100 createBootstrapPopovers(); 9101 createBootstrapToasts(); 9102 createDateRangePickers(); 9103 createButtons(); 9104 createTagify(); 9105 createJstree(); 9106 createCountUp(); 9107 createCountUpTabs(); 9108 createAutosize(); 9109 createTinySliders(); 9110 IpixApp.createSelect2(); 9111 initNoUIslider(); 9112 initAjaxLoader(); 9113 IpixApp.initClickCopying(); 9114 IpixApp.createShare(); 9115 IpixApp.handleFileRemove(); 9116 initialized = true; 9117 initHeaderScroll(); 9118 IpixApp.updateLocomotiveScroll(); 9119 IpixApp.scrollLocomotiveScroll(); 9120 }, 9121 initPageLoader: function () { 9122 initPageLoader(); 9123 }, 9124 createBootstrapPopover: function (el, options) { 9125 return createBootstrapPopover(el, options); 9126 }, 9127 createBootstrapTooltip: function (el, options) { 9128 return createBootstrapTooltip(el, options); 9129 } 9130 }; 9131}(); 9132IpixApp.showPageLoading = function () { 9133 document.body.classList.add('page-loading'); 9134 document.body.setAttribute('data-kt-app-page-loading', "on"); 9135}; 9136IpixApp.hidePageLoading = function () { 9137 // CSS3 Transitions only after page load(.page-loading or .app-page-loading class added to body tag and remove with JS on page load) 9138 document.body.classList.remove('page-loading'); 9139 document.body.removeAttribute('data-kt-app-page-loading'); 9140}; 9141IpixApp.initClickCopying = function () { 9142 var buttons = [].slice.call(document.querySelectorAll('[data-share-link-button]')); 9143 buttons.map(function (button) { 9144 if (button.getAttribute("data-kt-initialized") === "1") { 9145 return; 9146 } 9147 var parentElement = button.parentElement; 9148 var input = parentElement.querySelector('[data-share-link-input]'); 9149 var clipboard = new ClipboardJS(button); 9150 if (!clipboard) { 9151 return; 9152 } 9153 9154 // Copy text to clipboard. For more info check the plugin's documentation: https://clipboardjs.com/ 9155 clipboard.on('success', function (e) { 9156 var buttonCaption = button.innerHTML; 9157 //Add bgcolor 9158 input.classList.add('bg-success'); 9159 input.classList.add('text-inverse-success'); 9160 button.innerHTML = 'Copied!'; 9161 setTimeout(function () { 9162 button.innerHTML = buttonCaption; 9163 9164 // Remove bgcolor 9165 input.classList.remove('bg-success'); 9166 input.classList.remove('text-inverse-success'); 9167 }, 3000); // 3seconds 9168 9169 e.clearSelection(); 9170 }); 9171 button.setAttribute("data-kt-initialized", "1"); 9172 }); 9173}; 9174 9175// Init page loader 9176window.addEventListener("load", function () { 9177 IpixApp.hidePageLoading(); 9178}); 9179document.addEventListener('lazyloaded', function () { 9180 IpixApp.updateLocomotiveScroll(); 9181}); 9182IpixApp.updateLocomotiveScroll = function () { 9183 setInterval(function () { 9184 // console.log('here');
9185 locoScroll.update(); 9186 }, 500); 9187}; 9188IpixApp.scrollLocomotiveScroll = function () { 9189 locoScroll.on('scroll', obj => { 9190 // console.log(obj); 9191 }); 9192}; 9193IpixApp.createSelect2 = function () { 9194 // Check if jQuery included 9195 if (typeof jQuery == 'undefined') { 9196 return; 9197 } 9198 9199 // Check if select2 included 9200 if (typeof $.fn.select2 === 'undefined') { 9201 return; 9202 } 9203 var elements = [].slice.call(document.querySelectorAll('[data-control="select2"], [data-kt-select2="true"]')); 9204 elements.map(function (element) { 9205 if (element.getAttribute("data-kt-initialized") === "1") { 9206 return; 9207 } 9208 var options = IpixJson.options.select2.normal; 9209 options.dropdownParent = $(element).parent(); 9210 if ($(element).data("dropdown-parent")) { 9211 options.dropdownParent = $($(element).data("dropdown-parent")); 9212 } 9213 if ($(element).data("placeholder")) { 9214 options.placeholder = $(element).data("placeholder"); 9215 } 9216 if ($(element).data("multiple") == 'true') { 9217 $(element).attr("multiple", "multiple"); 9218 } 9219 // if (element.getAttribute('data-image-select') == 'true') { 9220 // options.templateResult = function(option) { 9221 // if (!option.id) { return option.text; } 9222 // return '<span ><img sytle="display: inline-block;" src="' + option.image + '" />' + option.text + '</span>' 9223 // }; 9224 // options.templateSelection = function(option) { 9225 // if (option.id.length > 0) { 9226 // return '<span ><img sytle="display: inline-block;" src="' + option.image + '" />' + option.text + '</span>' 9227 // } else { 9228 // return option.text; 9229 // } 9230 // }; 9231 // } 9232 9233 if (element.getAttribute('data-server') == 'true') { 9234 options = IpixJson.options.select2.server; 9235 options.ajax.url = $(element).data("option-url"); 9236 options.ajax.data = function (params) { 9237 var query = { 9238 search: params.term, 9239 page: params.page || 1 9240 }; 9241 if (element.hasAttribute('data-select2-filter')) { 9242 var filters = element.getAttribute('data-select2-filter'); 9243 if (filters !== "") { 9244 filters = JSON.parse(filters); 9245 $.each(filters, function (i, filter) { 9246 if (filter.hasOwnProperty('selector')) { 9247 if ($(filter.selector).length > 1) { 9248 var values = []; 9249 if ($(filter.selector).attr('type') == "checkbox") { 9250 $(filter.selector + ':checked').each(function () { 9251 values.push($(this).val()); 9252 }); 9253 } else { 9254 $(filter.selector).each(function () { 9255 values.push($(this).val()); 9256 }); 9257 } 9258 query[i] = values; 9259 } else { 9260 query[i] = $(filter.selector).val(); 9261 } 9262 } else if (filter.hasOwnProperty('value')) { 9263 query[i] = filter.value; 9264 } 9265 }); 9266 } 9267 } 9268 return query; 9269 }; 9270 options.ajax.processResults = function (data, params) { 9271 params.page = params.page || 1; 9272 return { 9273 results: data, 9274 pagination: { 9275 more: data.length ? true : false 9276 } 9277 }; 9278 }; 9279 } 9280 if (element.getAttribute('data-hide-search') == 'true') { 9281 options.minimumResultsForSearch = Infinity; 9282 } 9283 $(element).select2(options); 9284 element.setAttribute("data-kt-initialized", "1"); 9285 }); 9286 9287 /* 9288 * Hacky fix for a bug in select2 with jQuery 3.6.0's new nested-focus "protection" 9289 * see: https://github.com/select2/select2/issues/5993 9290 * see: https://github.com/jquery/jquery/issues/4382 9291 * 9292 * TODO: Recheck with the select2 GH issue and remove once this is fixed on their side 9293 */ 9294 9295 if (IpixApp.select2FocusFixInitialized === false) { 9296 IpixApp.select2FocusFixInitialized = true; 9297 $(document).on('select2:open', function (e) { 9298 var elements = document.querySelectorAll('.select2-container--open .select2-search__field'); 9299 if (elements.length > 0) { 9300 elements[elements.length - 1].focus(); 9301 } 9302 }); 9303 } 9304}; 9305IpixApp.createShare = function () { 9306 // Check if jQuery included 9307 if (typeof jQuery == 'undefined') { 9308 return; 9309 } 9310 var elements = [].slice.call(document.querySelectorAll('[data-control
9310="jssocials"]')); 9311 elements.map(function (element) { 9312 if (element.getAttribute("data-kt-initialized") === "1") { 9313 return; 9314 } 9315 window.IpixJson.jssocials[element.getAttribute('id')] = $(element).jsSocials(IpixJson.options.jssocials); 9316 element.setAttribute("data-kt-initialized", "1"); 9317 }); 9318}; 9319IpixApp.handleFileRemove = function (e) { 9320 const removeButton = [].slice.call(document.querySelectorAll('[data-kt-file-input-action="remove"]')); 9321 if (removeButton && $(removeButton).length) { 9322 removeButton.map(function (element) { 9323 element.addEventListener('click', function () { 9324 var fileInputParent = $(element).parents(".file-input"); 9325 $(element).parents(".file-container").remove(); 9326 $(fileInputParent).find('[type="file"]').show(); 9327 $(fileInputParent).find('[name="' + $(fileInputParent).find('[type="file"]').attr("name") + '_remove"]').val(1); 9328 }); 9329 }); 9330 } 9331}; 9332 9333// Declare IpixApp for Webpack support 9334if ( true && typeof module.exports !== 'undefined') { 9335 module.exports = IpixApp; 9336} 9337document.addEventListener('click', function (event) { 9338 var isClickInside = document.querySelector('.navbar').contains(event.target); 9339 var navbarToggler = document.querySelector('.navbar-toggler'); 9340 var navbarCollapse = document.querySelector('.navbar-collapse'); 9341 if (!isClickInside && !navbarToggler.contains(event.target) && !navbarCollapse.contains(event.target)) { 9342 // Clicked outside the navbar, collapse it if it's expanded 9343 if (navbarCollapse.classList.contains('show')) { 9344 navbarToggler.click(); 9345 } 9346 } 9347}); 9348 9349// main.js 9350 9351document.addEventListener("DOMContentLoaded", function () { 9352 // Function to move selected country code to the top 9353 function moveSelectedCountryCodeToTop(select) { 9354 const selectedOption = select.querySelector('option[selected]'); 9355 if (selectedOption) { 9356 select.insertBefore(selectedOption, select.firstElementChild.nextSibling); 9357 } 9358 } 9359 9360 // Attach the moveSelectedCountryCodeToTop function to the country code dropdowns 9361 const countryCodeDropdowns = document.querySelectorAll('.country-code select'); 9362 countryCodeDropdowns.forEach(function (dropdown) { 9363 moveSelectedCountryCodeToTop(dropdown); 9364 dropdown.addEventListener('change', function () { 9365 moveSelectedCountryCodeToTop(dropdown); 9366 }); 9367 }); 9368}); 9369 9370/***/ }), 9371
9372/***/ "./resources/js/layouts/plugins/FormValidation.init.js": 9373/*!*************************************************************!*\ 9374 !*** ./resources/js/layouts/plugins/FormValidation.init.js ***! 9375 \*************************************************************/ 9376/***/ (() => { 9377 9378IpixJson.validators = []; 9379IpixJson.options.FormValidation = { 9380 plugins: { 9381 trigger: new FormValidation.plugins.Trigger(), 9382 // tachyons: new FormValidation.plugins.Tachyons({ 9383 // rowSelector: '.fv-row', 9384 // }), 9385 declarative: new FormValidation.plugins.Declarative({}), 9386 bootstrap: new FormValidation.plugins.Bootstrap5({ 9387 rowSelector: '.fv-row', 9388 eleInvalidClass: '', 9389 eleValidClass: '' 9390 }) 9391 } 9392}; 9393 9394/***/ }), 9395
9396/***/ "./resources/js/layouts/plugins/flatpickr.init.js": 9397/*!********************************************************!*\ 9398 !*** ./resources/js/layouts/plugins/flatpickr.init.js ***! 9399 \********************************************************/ 9400/***/ (() => { 9401 9402IpixJson.options.flatpicker = { 9403 enableTime: false 9404}; 9405 9406/***/ }), 9407
9408/***/ "./resources/js/layouts/plugins/ms-dropdown.init.js": 9409/*!**********************************************************!*\ 9410 !*** ./resources/js/layouts/plugins/ms-dropdown.init.js ***! 9411 \**********************************************************/ 9412/***/ (() => { 9413 9414"use strict"; 9415 9416 9417IpixJson.options.msDropdown = {}; 9418 9419/***/ }), 9420
9421/***/ "./resources/js/layouts/plugins/owl.carousel2.init.js": 9422/*!************************************************************!*\ 9423 !*** ./resources/js/layouts/plugins/owl.carousel2.init.js ***! 9424 \************************************************************/ 9425/***/ (() => { 9426 9427IpixJson.options.owlcarousel = { 9428 loop: true, 9429 margin: 20, 9430 items: 1, 9431 dots: false, 9432 autoplay: true, 9433 nav: true, 9434 navText: ["<i class='fa-solid fa-arrow-left'></i>", "<i class='fa-solid fa-arrow-right'></i>"], 9435 responsiveClass: true, 9436 responsive: { 9437 0: { 9438 items: 1 9439 }, 9440 800: { 9441 items: 2 9442 }, 9443 1000: { 9444 items: 3 9445 } 9446 } 9447}; 9448 9449/***/ }), 9450
9451/***/ "./resources/js/layouts/plugins/select2.init.js": 9452/*!******************************************************!*\ 9453 !*** ./resources/js/layouts/plugins/select2.init.js ***! 9454 \******************************************************/ 9455/***/ (() => { 9456 9457"use strict"; 9458 9459 9460// 9461// Select2 Initialization 9462// 9463$.fn.select2.defaults.set("theme", "bootstrap5"); 9464$.fn.select2.defaults.set("width", "100%"); 9465$.fn.select2.defaults.set("selectionCssClass", ":all:"); 9466IpixJson.lang.select2 = { 9467 placeholder: "Please select" 9468}; 9469IpixJson.options.select2 = { 9470 normal: { 9471 dropdownAutoWidth: true, 9472 placeholder: IpixJson.lang.select2.placeholder, 9473 dir: document.body.getAttribute('direction'), 9474 width: "100%" 9475 }, 9476 server: { 9477 dropdownAutoWidth: true, 9478 dir: document.body.getAttribute('direction'), 9479 width: "100%", 9480 ajax: { 9481 dataType: "json", 9482 delay: 250, 9483 type: "GET", 9484 quietMillis: 50, 9485 processResults: function (data) { 9486 return { 9487 results: data 9488 }; 9489 }, 9490 cache: true 9491 }, 9492 placeholder: IpixJson.lang.select2.placeholder 9493 // minimumInputLength: 1, 9494 } 9495}; 9496 9497/***/ }), 9498
9499/***/ "./resources/js/layouts/plugins/sweetalert2.init.js": 9500/*!**********************************************************!*\ 9501 !*** ./resources/js/layouts/plugins/sweetalert2.init.js ***! 9502 \**********************************************************/ 9503/***/ (() => { 9504 9505"use strict"; 9506 9507 9508// 9509// SweetAlert2 Initialization 9510// 9511 9512// Set Defaults 9513swal.mixin({ 9514 width: 400, 9515 heightAuto: false, 9516 padding: '2.5rem', 9517 buttonsStyling: false, 9518 confirmButtonClass: 'btn btn-success', 9519 confirmButtonColor: null, 9520 cancelButtonClass: 'btn btn-secondary', 9521 cancelButtonColor: null 9522}); 9523 9524/***/ }), 9525
9526/***/ "./resources/js/layouts/plugins/toastr.init.js": 9527/*!*****************************************************!*\ 9528 !*** ./resources/js/layouts/plugins/toastr.init.js ***! 9529 \*****************************************************/ 9530/***/ (() => { 9531 9532toastr.options = { 9533 "closeButton": false, 9534 "debug": false, 9535 "newestOnTop": false, 9536 "progressBar": false, 9537 "positionClass": "toastr-top-right", 9538 "preventDuplicates": false, 9539 "onclick": null, 9540 "showDuration": "300", 9541 "hideDuration": "1000", 9542 "timeOut": "5000", 9543 "extendedTimeOut": "1000", 9544 "showEasing": "swing", 9545 "hideEasing": "linear", 9546 "showMethod": "fadeIn", 9547 "hideMethod": "fadeOut" 9548}; 9549if ($("#sessionSuccess").length) { 9550 toastr.success($("#sessionSuccess").text()); 9551} 9552if (localStorage.getItem("success")) { 9553 toastr.success(localStorage.getItem("success")); 9554 localStorage.clear('success'); 9555} 9556if ($("#sessionError").length) { 9557 toastr.error($("#sessionError").text()); 9558} 9559if (localStorage.getItem("error")) { 9560 toastr.error(localStorage.getItem("error")); 9561 localStorage.clear('error'); 9562} 9563 9564/***/ }), 9565
9566/***/ "./resources/js/layouts/web.js": 9567/*!*************************************!*\ 9568 !*** ./resources/js/layouts/web.js ***! 9569 \*************************************/ 9570/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { 9571 9572// 9573// 3rd-Party Plugins JavaScript Includes 9574// 9575 9576////////////////////////////////////////////////////////////////////// 9577////////////////////////////////////////////////////////////////////// 9578//// Mandatory Plugins Includes(do not remove or change order!) //// 9579////////////////////////////////////////////////////////////////////// 9580////////////////////////////////////////////////////////////////////// 9581 9582// Jquery - jQuery is a popular and feature-rich JavaScript library. Learn more: https://jquery.com/ 9583window.jQuery = window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 9584 9585// Bootstrap - The most popular framework uses as the foundation. Learn more: http://getbootstrap.com 9586window.bootstrap = __webpack_require__(/*! bootstrap */ "./node_modules/bootstrap/dist/js/bootstrap.esm.js"); 9587 9588// Popper.js - Tooltip & Popover Positioning Engine used by Bootstrap. Learn more: https://popper.js.org 9589window.Popper = __webpack_require__(/*! @popperjs/core */ "./node_modules/@popperjs/core/lib/index.js"); 9590 9591// Wnumb - Number & Money formatting. Learn more: https://refreshless.com/wnumb/ 9592window.wNumb = __webpack_require__(/*! wnumb */ "./node_modules/wnumb/wNumb.js"); 9593
9594// Moment - Parse, validate, manipulate, and display dates and times in JavaScript. Learn more: https://momentjs.com/ 9595window.moment = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js"); 9596 9597// ES6-Shim - ECMAScript 6 compatibility shims for legacy JS engines. Learn more: https://github.com/paulmillr/es6-shim 9598__webpack_require__(/*! es6-shim/es6-shim.min.js */ "./node_modules/es6-shim/es6-shim.min.js"); 9599let token = document.head.querySelector('meta[name="csrf-token"]'); 9600if (token) { 9601 window._token = token.content; 9602} else { 9603 console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token'); 9604} 9605window.IpixJson = {}; 9606window.IpixJson.lang = {}; 9607window.IpixJson.options = {}; 9608 9609////////////////////////////////////////////////////////////////////// 9610////////////////////////////////////////////////////////////////////// 9611/// Optional Plugins Includes(you can remove or add) /////////////// 9612////////////////////////////////////////////////////////////////////// 9613////////////////////////////////////////////////////////////////////// 9614 9615// FormValidation - Best premium validation library for JavaScript. Zero dependencies. Learn more: https://formvalidation.io/ 9616window.FormValidation = __webpack_require__(/*! ../../plugins/formvalidation/dist/js/FormValidation.full.min.js */ "./resources/plugins/formvalidation/dist/js/FormValidation.full.min.js"); 9617window.FormValidation.plugins.Bootstrap5 = (__webpack_require__(/*! ../../plugins/formvalidation/dist/amd/plugins/Bootstrap5.js */ "./resources/plugins/formvalidation/dist/amd/plugins/Bootstrap5.js")["default"]); 9618// window.FormValidation.plugins.Declarative = require('../../plugins/formvalidation/dist/amd/plugins/Declarative.js').default; 9619__webpack_require__(/*! ./plugins/FormValidation.init.js */ "./resources/js/layouts/plugins/FormValidation.init.js"); 9620 9621// Date Range Picker - A JavaScript component for choosing date ranges, dates and times: https://www.daterangepicker.com/ 9622__webpack_require__(/*! bootstrap-daterangepicker/daterangepicker.js */ "./node_modules/bootstrap-daterangepicker/daterangepicker.js"); 9623 9624// Bootstrap Maxlength - This plugin integrates by default with Twitter bootstrap using badges to display the maximum length of the field where the user is inserting text: https://github.com/mimo84/bootstrap-maxlength 9625__webpack_require__(/*! bootstrap-maxlength/src/bootstrap-maxlength.js */ "./node_modules/bootstrap-maxlength/src/bootstrap-maxlength.js"); 9626 9627// Bootstrap Mmultiselectsplitter - Transforms a <select> containing one or more <optgroup> in two chained <select>: https://github.com/poolerMF/bootstrap-multiselectsplitter/ 9628__webpack_require__(/*! bootstrap-multiselectsplitter/bootstrap-multiselectsplitter.min.js */ "./node_modules/bootstrap-multiselectsplitter/bootstrap-multiselectsplitter.min.js"); 9629 9630// Select2 - Select2 is a jQuery based replacement for select boxes: https://select2.org/ 9631__webpack_require__(/*! select2/dist/js/select2.full.min.js */ "./node_modules/select2/dist/js/select2.full.min.js"); 9632__webpack_require__(/*! ./plugins/select2.init.js */ "./resources/js/layouts/plugins/select2.init.js"); 9633 9634// msDropdown 9635__webpack_require__(/*! ../../plugins/msDropdown/js/index.js */ "./resources/plugins/msDropdown/js/index.js"); 9636__webpack_require__(/*! ./plugins/ms-dropdown.init.js */ "./resources/js/layouts/plugins/ms-dropdown.init.js"); 9637 9638// Flatpickr - is a lightweight and powerful datetime picker. 9639__webpack_require__(/*! flatpickr/dist/flatpickr.min.js */ "./node_modules/flatpickr/dist/flatpickr.min.js"); 9640__webpack_require__(/*! ./plugins/flatpickr.init.js */ "./resources/js/layouts/plugins/flatpickr.init.js"); 9641 9642// Inputmask - is a javascript library which creates an input mask: https://github.com/RobinHerbots/Inputmask 9643__webpack_require__(/*! inputmask/dist/inputmask.js */ "./node_modules/inputmask/dist/inputmask.js"); 9644__webpack_require__(/*! inputmask/dist/bindings/inputmask.binding.js */ "./node_modules/inputmask/dist/bindings/inputmask.binding.js"); 9645 9646// Toastr - is a Javascript library for non-blocking notifications. jQuery is required. The goal is to create a simple c
9646ore library that can be customized and extended: https://github.com/CodeSeven/toastr 9647window.toastr = __webpack_require__(/*! ../../plugins/toastr/build/toastr.min.js */ "./resources/plugins/toastr/build/toastr.min.js"); 9648__webpack_require__(/*! ./plugins/toastr.init.js */ "./resources/js/layouts/plugins/toastr.init.js"); 9649 9650// ES6 Promise Polyfill - This is a polyfill of the ES6 Promise: https://github.com/lahmatiy/es6-promise-polyfill 9651__webpack_require__(/*! es6-promise-polyfill/promise.min.js */ "./node_modules/es6-promise-polyfill/promise.min.js"); 9652__webpack_require__(/*! owl.carousel2 */ "./node_modules/owl.carousel2/dist/owl.carousel.js"); 9653__webpack_require__(/*! ./plugins/owl.carousel2.init.js */ "./resources/js/layouts/plugins/owl.carousel2.init.js"); 9654 9655// Sweetalert2 - a beautiful, responsive, customizable and accessible (WAI-ARIA) replacement for JavaScript's popup boxes: https://sweetalert2.github.io/ 9656window.Swal = window.swal = __webpack_require__(/*! sweetalert2/dist/sweetalert2.min.js */ "./node_modules/sweetalert2/dist/sweetalert2.min.js"); 9657__webpack_require__(/*! ./plugins/sweetalert2.init.js */ "./resources/js/layouts/plugins/sweetalert2.init.js"); 9658__webpack_require__(/*! ../../plugins/locomotive/locomotive-scroll.js */ "./resources/plugins/locomotive/locomotive-scroll.js"); 9659 9660// A lightweight script to animate scrolling to anchor links 9661window.SmoothScroll = __webpack_require__(/*! smooth-scroll/dist/smooth-scroll.js */ "./node_modules/smooth-scroll/dist/smooth-scroll.js"); 9662 9663// Clipboard - Copy text to the clipboard shouldn't be hard. It shouldn't require dozens of steps to configure or hundreds of KBs to load: https://clipboardjs.com/ 9664window.ClipboardJS = __webpack_require__(/*! clipboard/dist/clipboard.min.js */ "./node_modules/clipboard/dist/clipboard.min.js"); 9665__webpack_require__(/*! ../../plugins/gsap/gsap.js */ "./resources/plugins/gsap/gsap.js"); 9666 9667// require('../../plugins/cursor/cursor.js'); 9668 9669// Ipixthemes' plugins 9670window.IpixComponents = __webpack_require__(/*! ./components/_init.js */ "./resources/js/layouts/components/_init.js"); 9671window.IpixUtil = __webpack_require__(/*! ./components/util.js */ "./resources/js/layouts/components/util.js"); 9672window.IpixApp = __webpack_require__(/*! ./components/web.js */ "./resources/js/layouts/components/web.js"); 9673window.IpixFormValidation = __webpack_require__(/*! ./components/formValidation.js */ "./resources/js/layouts/components/formValidation.js"); 9674window.IpixEnquiry = __webpack_require__(/*! ./components/enquiry.js */ "./resources/js/layouts/components/enquiry.js"); 9675window.IpixEventHandler = __webpack_require__(/*! ./components/event-handler.js */ "./resources/js/layouts/components/event-handler.js"); 9676window.IpixBlockUI = __webpack_require__(/*! ./components/blockui.js */ "./resources/js/layouts/components/blockui.js"); 9677window.IpixFlatPicker = __webpack_require__(/*! ./components/flatPicker.js */ "./resources/js/layouts/components/flatPicker.js"); 9678window.IpixCookie = __webpack_require__(/*! ./components/cookie.js */ "./resources/js/layouts/components/cookie.js"); 9679window.IpixDialer = __webpack_require__(/*! ./components/dialer.js */ "./resources/js/layouts/components/dialer.js"); 9680window.IpixDrawer = __webpack_require__(/*! ./components/drawer.js */ "./resources/js/layouts/components/drawer.js"); 9681window.IpixImageInput = __webpack_require__(/*! ./components/image-input.js */ "./resources/js/layouts/components/image-input.js"); 9682window.IpixMenu = __webpack_require__(/*! ./components/menu.js */ "./resources/js/layouts/components/menu.js"); 9683window.IpixForm = __webpack_require__(/*! ./components/form.js */ "./resources/js/layouts/components/form.js"); 9684window.IpixModal = __webpack_require__(/*! ./components/modal.js */ "./resources/js/layouts/components/modal.js"); 9685window.IpixPasswordMeter = __webpack_require__(/*! ./components/password-meter.js */ "./resources/js/layouts/components/password-meter.js"); 9686window.IpixScroll = __webpack_require__(/*! ./components/scroll.js */ "./resources/js/layouts/components/scroll.js"); 9687window.IpixScrolltop = __webpack_require__(/*! ./components/scrolltop.js */ "./resources/js/layouts/components/scrolltop.js"); 9688window.IpixSticky = __webpack_require__(/*! ./components/sticky.js */ "./resources/js/layouts/components/sticky.js"); 9689window.IpixSwapper = __webpack_require__(/*! ./components/swapper.js */ "./resources/js/layouts/components/swapper.js"); 9690window.IpixToggle = __webpack_require__(/*! ./components/toggle.js */ "./resources/js/layouts/components/toggle.js"); 9691 9692/***/ }), 9693
9694/***/ "./resources/plugins/formvalidation/dist/amd/core/Plugin.js": 9695/*!******************************************************************!*\ 9696 !*** ./resources/plugins/formvalidation/dist/amd/core/Plugin.js ***! 9697 \******************************************************************/ 9698/***/ ((module, exports, __webpack_require__) => { 9699 9700var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) { 9701 "use strict"; 9702 9703 Object.defineProperty(exports, "__esModule", ({ 9704 value: true 9705 })); 9706 var Plugin = function () { 9707 function Plugin(opts) { 9708 this.opts = opts; 9709 } 9710 Plugin.prototype.setCore = function (core) { 9711 this.core = core; 9712 return this; 9713 }; 9714 Plugin.prototype.install = function () {}; 9715 Plugin.prototype.uninstall = function () {}; 9716 return Plugin; 9717 }(); 9718 exports["default"] = Plugin; 9719}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 9720 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 9721 9722/***/ }), 9723
9724/***/ "./resources/plugins/formvalidation/dist/amd/plugins/Bootstrap5.js": 9725/*!*************************************************************************!*\ 9726 !*** ./resources/plugins/formvalidation/dist/amd/plugins/Bootstrap5.js ***! 9727 \*************************************************************************/ 9728/***/ (function(module, exports, __webpack_require__) { 9729 9730var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = this && this.__extends || function () { 9731 var extendStatics = function (d, b) { 9732 extendStatics = Object.setPrototypeOf || { 9733 __proto__: [] 9734 } instanceof Array && function (d, b) { 9735 d.__proto__ = b; 9736 } || function (d, b) { 9737 for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; 9738 }; 9739 return extendStatics(d, b); 9740 }; 9741 return function (d, b) { 9742 if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 9743 extendStatics(d, b); 9744 function __() { 9745 this.constructor = d; 9746 } 9747 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 9748 }; 9749}(); 9750!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../utils/classSet */ "./resources/plugins/formvalidation/dist/amd/utils/classSet.js"), __webpack_require__(/*! ../utils/hasClass */ "./resources/plugins/formvalidation/dist/amd/utils/hasClass.js"), __webpack_require__(/*! ./Framework */ "./resources/plugins/formvalidation/dist/amd/plugins/Framework.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, classSet_1, hasClass_1, Framework_1) { 9751 "use strict"; 9752 9753 Object.defineProperty(exports, "__esModule", ({ 9754 value: true 9755 })); 9756 var Bootstrap5 = function (_super) { 9757 __extends(Bootstrap5, _super); 9758 function Bootstrap5(opts) { 9759 var _this = _super.call(this, Object.assign({}, { 9760 eleInvalidClass: 'is-invalid', 9761 eleValidClass: 'is-valid', 9762 formClass: 'fv-plugins-bootstrap5', 9763 rowInvalidClass: 'fv-plugins-bootstrap5-row-invalid', 9764 rowPattern: /^(.*)(col|offset)(-(sm|md|lg|xl))*-[0-9]+(.*)$/, 9765 rowSelector: '.row', 9766 rowValidClass: 'fv-plugins-bootstrap5-row-valid' 9767 }, opts)) || this; 9768 _this.eleValidatedHandler = _this.handleElementValidated.bind(_this); 9769 return _this; 9770 } 9771 Bootstrap5.prototype.install = function () { 9772 _super.prototype.install.call(this); 9773 this.core.on('core.element.validated', this.eleValidatedHandler); 9774 }; 9775 Bootstrap5.prototype.uninstall = function () { 9776 _super.prototype.install.call(this); 9777 this.core.off('core.element.validated', this.eleValidatedHandler); 9778 }; 9779 Bootstrap5.prototype.handleElementValidated = function (e) { 9780 var type = e.element.getAttribute('type'); 9781 if (('checkbox' === type || 'radio' === type) && e.elements.length > 1 && (0, hasClass_1.default)(e.element, 'form-check-input')) { 9782 var inputParent = e.element.parentElement; 9783 if ((0, hasClass_1.default)(inputParent, 'form-check') && (0, hasClass_1.default)(inputParent, 'form-check-inline')) { 9784 (0, classSet_1.default)(inputParent, { 9785 'is-invalid': !e.valid, 9786 'is-valid': e.valid 9787 }); 9788 } 9789 } 9790 }; 9791 Bootstrap5.prototype.onIconPlaced = function (e) { 9792 (0, classSet_1.default)(e.element, { 9793 'fv-plugins-icon-input': true 9794 }); 9795 var parent = e.element.parentElement; 9796 if ((0, hasClass_1.default)(parent, 'input-group')) { 9797 parent.parentElement.insertBefore(e.iconElement, parent.nextSibling); 9798 if (e.element.nextElementSibling && (0, hasClass_1.default)(e.element.nextElementSibling, 'input-group-text')) { 9799 (0, classSet_1.default)(e.iconElement, { 9800 'fv-plugins-icon-input-group': true 9801 }); 9802 } 9803 } 9804 var type = e.element.getAttribute('type'); 9805 if ('checkbox' === type || 'radio' === type) { 9806 var grandParent = parent.parentElement; 9807 if ((0, hasClass_1.default)(parent, 'form-check')) { 9808 (0, classSet_1.default)(e.iconElement, { 9809 'fv-plugins-icon-check': true 9810 }); 9811 parent.parentElement.insertBefore(e.iconElement, parent.nextSibling); 9812 } else if ((0, hasClass_1.default)(parent.parentElement, 'form-check')) { 9813 (0, classSet_1.default)(e.iconElement, { 9814 'fv-plugins-icon-check': true 9815 }); 9816 grandParent.parentElement.insertBefore(e.iconElement, grandParent.nextSibling); 9817 } 9818 } 9819 };
9820 Bootstrap5.prototype.onMessagePlaced = function (e) { 9821 e.messageElement.classList.add('invalid-feedback'); 9822 var inputParent = e.element.parentElement; 9823 if ((0, hasClass_1.default)(inputParent, 'input-group')) { 9824 inputParent.appendChild(e.messageElement); 9825 (0, classSet_1.default)(inputParent, { 9826 'has-validation': true 9827 }); 9828 return; 9829 } 9830 var type = e.element.getAttribute('type'); 9831 if (('checkbox' === type || 'radio' === type) && (0, hasClass_1.default)(e.element, 'form-check-input') && (0, hasClass_1.default)(inputParent, 'form-check') && !(0, hasClass_1.default)(inputParent, 'form-check-inline')) { 9832 e.elements[e.elements.length - 1].parentElement.appendChild(e.messageElement); 9833 } 9834 }; 9835 return Bootstrap5; 9836 }(Framework_1.default); 9837 exports["default"] = Bootstrap5; 9838}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 9839 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 9840 9841/***/ }), 9842
9843/***/ "./resources/plugins/formvalidation/dist/amd/plugins/Framework.js": 9844/*!************************************************************************!*\ 9845 !*** ./resources/plugins/formvalidation/dist/amd/plugins/Framework.js ***! 9846 \************************************************************************/ 9847/***/ (function(module, exports, __webpack_require__) { 9848 9849var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = this && this.__extends || function () { 9850 var extendStatics = function (d, b) { 9851 extendStatics = Object.setPrototypeOf || { 9852 __proto__: [] 9853 } instanceof Array && function (d, b) { 9854 d.__proto__ = b; 9855 } || function (d, b) { 9856 for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; 9857 }; 9858 return extendStatics(d, b); 9859 }; 9860 return function (d, b) { 9861 if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 9862 extendStatics(d, b); 9863 function __() { 9864 this.constructor = d; 9865 } 9866 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 9867 }; 9868}(); 9869!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../core/Plugin */ "./resources/plugins/formvalidation/dist/amd/core/Plugin.js"), __webpack_require__(/*! ../utils/classSet */ "./resources/plugins/formvalidation/dist/amd/utils/classSet.js"), __webpack_require__(/*! ../utils/closest */ "./resources/plugins/formvalidation/dist/amd/utils/closest.js"), __webpack_require__(/*! ./Message */ "./resources/plugins/formvalidation/dist/amd/plugins/Message.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, Plugin_1, classSet_1, closest_1, Message_1) { 9870 "use strict"; 9871 9872 Object.defineProperty(exports, "__esModule", ({ 9873 value: true 9874 })); 9875 var Framework = function (_super) { 9876 __extends(Framework, _super); 9877 function Framework(opts) { 9878 var _this = _super.call(this, opts) || this; 9879 _this.results = new Map(); 9880 _this.containers = new Map(); 9881 _this.MESSAGE_PLUGIN = '___frameworkMessage'; 9882 _this.opts = Object.assign({}, { 9883 defaultMessageContainer: true, 9884 eleInvalidClass: '', 9885 eleValidClass: '', 9886 rowClasses: '', 9887 rowValidatingClass: '' 9888 }, opts); 9889 _this.elementIgnoredHandler = _this.onElementIgnored.bind(_this); 9890 _this.elementValidatingHandler = _this.onElementValidating.bind(_this); 9891 _this.elementValidatedHandler = _this.onElementValidated.bind(_this); 9892 _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_this); 9893 _this.iconPlacedHandler = _this.onIconPlaced.bind(_this); 9894 _this.fieldAddedHandler = _this.onFieldAdded.bind(_this); 9895 _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_this); 9896 _this.messagePlacedHandler = _this.onMessagePlaced.bind(_this); 9897 return _this; 9898 } 9899 Framework.prototype.install = function () { 9900 var _a; 9901 var _this = this; 9902 (0, classSet_1.default)(this.core.getFormElement(), (_a = {}, _a[this.opts.formClass] = true, _a['fv-plugins-framework'] = true, _a)); 9903 this.core.on('core.element.ignored', this.elementIgnoredHandler).on('core.element.validating', this.elementValidatingHandler).on('core.element.validated', this.elementValidatedHandler).on('core.element.notvalidated', this.elementNotValidatedHandler).on('plugins.icon.placed', this.iconPlacedHandler).on('core.field.added', this.fieldAddedHandler).on('core.field.removed', this.fieldRemovedHandler); 9904 if (this.opts.defaultMessageContainer) { 9905 this.core.registerPlugin(this.MESSAGE_PLUGIN, new Message_1.default({ 9906 clazz: this.opts.messageClass, 9907 container: function (field, element) { 9908 var selector = 'string' === typeof _this.opts.rowSelector ? _this.opts.rowSelector : _this.opts.rowSelector(field, element); 9909 var groupEle = (0, closest_1.default)(element, selector); 9910 return Message_1.default.getClosestContainer(element, groupEle, _this.opts.rowPattern); 9911 } 9912 })); 9913 this.core.on('plugins.message.placed', this.messagePlacedHandler); 9914 } 9915 }; 9916 Framework.prototype.uninstall = function () { 9917 var _a; 9918 this.results.clear(); 9919 this.containers.clear(); 9920 (0, classSet_1.default)(this.core.getFormElement(), (_a = {}, _a[this.opts.formClass] = false, _a['fv-plugins-framework'] = false, _a)); 9921 this.core.off('core.element.ignored', this.elementIgnoredH
9921andler).off('core.element.validating', this.elementValidatingHandler).off('core.element.validated', this.elementValidatedHandler).off('core.element.notvalidated', this.elementNotValidatedHandler).off('plugins.icon.placed', this.iconPlacedHandler).off('core.field.added', this.fieldAddedHandler).off('core.field.removed', this.fieldRemovedHandler); 9922 if (this.opts.defaultMessageContainer) { 9923 this.core.deregisterPlugin(this.MESSAGE_PLUGIN); 9924 this.core.off('plugins.message.placed', this.messagePlacedHandler); 9925 } 9926 }; 9927 Framework.prototype.onIconPlaced = function (_e) {}; 9928 Framework.prototype.onMessagePlaced = function (_e) {}; 9929 Framework.prototype.onFieldAdded = function (e) { 9930 var _this = this; 9931 var elements = e.elements; 9932 if (elements) { 9933 elements.forEach(function (ele) { 9934 var _a; 9935 var groupEle = _this.containers.get(ele); 9936 if (groupEle) { 9937 (0, classSet_1.default)(groupEle, (_a = {}, _a[_this.opts.rowInvalidClass] = false, _a[_this.opts.rowValidatingClass] = false, _a[_this.opts.rowValidClass] = false, _a['fv-plugins-icon-container'] = false, _a)); 9938 _this.containers.delete(ele); 9939 } 9940 }); 9941 this.prepareFieldContainer(e.field, elements); 9942 } 9943 }; 9944 Framework.prototype.onFieldRemoved = function (e) { 9945 var _this = this; 9946 e.elements.forEach(function (ele) { 9947 var _a; 9948 var groupEle = _this.containers.get(ele); 9949 if (groupEle) { 9950 (0, classSet_1.default)(groupEle, (_a = {}, _a[_this.opts.rowInvalidClass] = false, _a[_this.opts.rowValidatingClass] = false, _a[_this.opts.rowValidClass] = false, _a)); 9951 } 9952 }); 9953 }; 9954 Framework.prototype.prepareFieldContainer = function (field, elements) { 9955 var _this = this; 9956 if (elements.length) { 9957 var type = elements[0].getAttribute('type'); 9958 if ('radio' === type || 'checkbox' === type) { 9959 this.prepareElementContainer(field, elements[0]); 9960 } else { 9961 elements.forEach(function (ele) { 9962 return _this.prepareElementContainer(field, ele); 9963 }); 9964 } 9965 } 9966 }; 9967 Framework.prototype.prepareElementContainer = function (field, element) { 9968 var _a; 9969 var selector = 'string' === typeof this.opts.rowSelector ? this.opts.rowSelector : this.opts.rowSelector(field, element); 9970 var groupEle = (0, closest_1.default)(element, selector); 9971 if (groupEle !== element) { 9972 (0, classSet_1.default)(groupEle, (_a = {}, _a[this.opts.rowClasses] = true, _a['fv-plugins-icon-container'] = true, _a)); 9973 this.containers.set(element, groupEle); 9974 } 9975 }; 9976 Framework.prototype.onElementValidating = function (e) { 9977 var _a; 9978 var elements = e.elements; 9979 var type = e.element.getAttribute('type'); 9980 var element = 'radio' === type || 'checkbox' === type ? elements[0] : e.element; 9981 var groupEle = this.containers.get(element); 9982 if (groupEle) { 9983 (0, classSet_1.default)(groupEle, (_a = {}, _a[this.opts.rowInvalidClass] = false, _a[this.opts.rowValidatingClass] = true, _a[this.opts.rowValidClass] = false, _a)); 9984 } 9985 }; 9986 Framework.prototype.onElementNotValidated = function (e) { 9987 this.removeClasses(e.element, e.elements); 9988 }; 9989 Framework.prototype.onElementIgnored = function (e) { 9990 this.removeClasses(e.element, e.elements); 9991 }; 9992 Framework.prototype.removeClasses = function (element, elements) { 9993 var _a; 9994 var _this = this; 9995 var type = element.getAttribute('type'); 9996 var ele = 'radio' === type || 'checkbox' === type ? elements[0] : element; 9997 elements.forEach(function (ele) { 9998 var _a; 9999 (0, classSet_1.default)(ele, (_a = {}, _a[_this.opts.eleValidClass] = false, _a[_this.opts.eleInvalidClass] = false, _a)); 10000 }); 10001 var groupEle = this.containers.get(ele); 10002 if (groupEle) { 10003 (0, classSet_1.default)(groupEle, (_a = {}, _a[this.opts.rowInvalidClass] = false, _a[this.opts.rowValidatingClass] = false, _a[this.opts.rowValidClass] = false, _a)); 10004 } 10005 }; 10006 Framework.prototype.onElementValidated = function (e) { 10007 var _a, _b; 10008 var _this = this; 10009 var elements = e.elements; 10010 var type = e.element.getAttribute('type'); 10011 var element = 'radio' === type || 'checkbox' === type ? elements[0] : e.element;
10012 elements.forEach(function (ele) { 10013 var _a; 10014 (0, classSet_1.default)(ele, (_a = {}, _a[_this.opts.eleValidClass] = e.valid, _a[_this.opts.eleInvalidClass] = !e.valid, _a)); 10015 }); 10016 var groupEle = this.containers.get(element); 10017 if (groupEle) { 10018 if (!e.valid) { 10019 this.results.set(element, false); 10020 (0, classSet_1.default)(groupEle, (_a = {}, _a[this.opts.rowInvalidClass] = true, _a[this.opts.rowValidatingClass] = false, _a[this.opts.rowValidClass] = false, _a)); 10021 } else { 10022 this.results.delete(element); 10023 var isValid_1 = true; 10024 this.containers.forEach(function (value, key) { 10025 if (value === groupEle && _this.results.get(key) === false) { 10026 isValid_1 = false; 10027 } 10028 }); 10029 if (isValid_1) { 10030 (0, classSet_1.default)(groupEle, (_b = {}, _b[this.opts.rowInvalidClass] = false, _b[this.opts.rowValidatingClass] = false, _b[this.opts.rowValidClass] = true, _b)); 10031 } 10032 } 10033 } 10034 }; 10035 return Framework; 10036 }(Plugin_1.default); 10037 exports["default"] = Framework; 10038}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 10039 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 10040 10041/***/ }), 10042
10043/***/ "./resources/plugins/formvalidation/dist/amd/plugins/Message.js": 10044/*!**********************************************************************!*\ 10045 !*** ./resources/plugins/formvalidation/dist/amd/plugins/Message.js ***! 10046 \**********************************************************************/ 10047/***/ (function(module, exports, __webpack_require__) { 10048 10049var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __extends = this && this.__extends || function () { 10050 var extendStatics = function (d, b) { 10051 extendStatics = Object.setPrototypeOf || { 10052 __proto__: [] 10053 } instanceof Array && function (d, b) { 10054 d.__proto__ = b; 10055 } || function (d, b) { 10056 for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; 10057 }; 10058 return extendStatics(d, b); 10059 }; 10060 return function (d, b) { 10061 if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 10062 extendStatics(d, b); 10063 function __() { 10064 this.constructor = d; 10065 } 10066 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 10067 }; 10068}(); 10069!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! ../core/Plugin */ "./resources/plugins/formvalidation/dist/amd/core/Plugin.js"), __webpack_require__(/*! ../utils/classSet */ "./resources/plugins/formvalidation/dist/amd/utils/classSet.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, Plugin_1, classSet_1) { 10070 "use strict"; 10071 10072 Object.defineProperty(exports, "__esModule", ({ 10073 value: true 10074 })); 10075 var Message = function (_super) { 10076 __extends(Message, _super); 10077 function Message(opts) { 10078 var _this = _super.call(this, opts) || this; 10079 _this.useDefaultContainer = false; 10080 _this.messages = new Map(); 10081 _this.defaultContainer = document.createElement('div'); 10082 _this.useDefaultContainer = !opts || !opts.container; 10083 _this.opts = Object.assign({}, { 10084 container: function (_field, _element) { 10085 return _this.defaultContainer; 10086 } 10087 }, opts); 10088 _this.elementIgnoredHandler = _this.onElementIgnored.bind(_this); 10089 _this.fieldAddedHandler = _this.onFieldAdded.bind(_this); 10090 _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_this); 10091 _this.validatorValidatedHandler = _this.onValidatorValidated.bind(_this); 10092 _this.validatorNotValidatedHandler = _this.onValidatorNotValidated.bind(_this); 10093 return _this; 10094 } 10095 Message.getClosestContainer = function (element, upper, pattern) { 10096 var ele = element; 10097 while (ele) { 10098 if (ele === upper) { 10099 break; 10100 } 10101 ele = ele.parentElement; 10102 if (pattern.test(ele.className)) { 10103 break; 10104 } 10105 } 10106 return ele; 10107 }; 10108 Message.prototype.install = function () { 10109 if (this.useDefaultContainer) { 10110 this.core.getFormElement().appendChild(this.defaultContainer); 10111 } 10112 this.core.on('core.element.ignored', this.elementIgnoredHandler).on('core.field.added', this.fieldAddedHandler).on('core.field.removed', this.fieldRemovedHandler).on('core.validator.validated', this.validatorValidatedHandler).on('core.validator.notvalidated', this.validatorNotValidatedHandler); 10113 }; 10114 Message.prototype.uninstall = function () { 10115 if (this.useDefaultContainer) { 10116 this.core.getFormElement().removeChild(this.defaultContainer); 10117 } 10118 this.messages.forEach(function (message) { 10119 return message.parentNode.removeChild(message); 10120 }); 10121 this.messages.clear(); 10122 this.core.off('core.element.ignored', this.elementIgnoredHandler).off('core.field.added', this.fieldAddedHandler).off('core.field.removed', this.fieldRemovedHandler).off('core.validator.validated', this.validatorValidatedHandler).off('core.validator.notvalidated', this.validatorNotValidatedHandler); 10123 }; 10124 Message.prototype.onFieldAdded = function (e) { 10125 var _this = this; 10126 var elements = e.elements; 10127 if (elements) { 10128 elements.forEach(function (ele) { 10129 var msg = _this.messages.get(ele); 10130 if (msg) { 10131 msg.parentNode.removeChild(msg); 10132 _this.messages.delete(ele); 10133 } 10134 }); 10135 this.prepareFieldContainer(e.field, elements); 10136 } 10137 }; 10138 Message.prototype.onFieldRemoved = function (e) { 10139 var _this = this; 10140 if (!e.elements.length || !e.field) { 10141 return; 10142 } 10143 var type = e.elements[0].getAttribute('type'); 10144 var elements = 'radio' === type || 'checkbox' === type ? [e.elements[0]] : e.elements;
10145 elements.forEach(function (ele) { 10146 if (_this.messages.has(ele)) { 10147 var container = _this.messages.get(ele); 10148 container.parentNode.removeChild(container); 10149 _this.messages.delete(ele); 10150 } 10151 }); 10152 }; 10153 Message.prototype.prepareFieldContainer = function (field, elements) { 10154 var _this = this; 10155 if (elements.length) { 10156 var type = elements[0].getAttribute('type'); 10157 if ('radio' === type || 'checkbox' === type) { 10158 this.prepareElementContainer(field, elements[0], elements); 10159 } else { 10160 elements.forEach(function (ele) { 10161 return _this.prepareElementContainer(field, ele, elements); 10162 }); 10163 } 10164 } 10165 }; 10166 Message.prototype.prepareElementContainer = function (field, element, elements) { 10167 var container; 10168 if ('string' === typeof this.opts.container) { 10169 var selector = '#' === this.opts.container.charAt(0) ? "[id=\"".concat(this.opts.container.substring(1), "\"]") : this.opts.container; 10170 container = this.core.getFormElement().querySelector(selector); 10171 } else { 10172 container = this.opts.container(field, element); 10173 } 10174 var message = document.createElement('div'); 10175 container.appendChild(message); 10176 (0, classSet_1.default)(message, { 10177 'fv-plugins-message-container': true 10178 }); 10179 this.core.emit('plugins.message.placed', { 10180 element: element, 10181 elements: elements, 10182 field: field, 10183 messageElement: message 10184 }); 10185 this.messages.set(element, message); 10186 }; 10187 Message.prototype.getMessage = function (result) { 10188 return typeof result.message === 'string' ? result.message : result.message[this.core.getLocale()]; 10189 }; 10190 Message.prototype.onValidatorValidated = function (e) { 10191 var _a; 10192 var elements = e.elements; 10193 var type = e.element.getAttribute('type'); 10194 var element = ('radio' === type || 'checkbox' === type) && elements.length > 0 ? elements[0] : e.element; 10195 if (this.messages.has(element)) { 10196 var container = this.messages.get(element); 10197 var messageEle = container.querySelector("[data-field=\"".concat(e.field, "\"][data-validator=\"").concat(e.validator, "\"]")); 10198 if (!messageEle && !e.result.valid) { 10199 var ele = document.createElement('div'); 10200 ele.innerHTML = this.getMessage(e.result); 10201 ele.setAttribute('data-field', e.field); 10202 ele.setAttribute('data-validator', e.validator); 10203 if (this.opts.clazz) { 10204 (0, classSet_1.default)(ele, (_a = {}, _a[this.opts.clazz] = true, _a)); 10205 } 10206 container.appendChild(ele); 10207 this.core.emit('plugins.message.displayed', { 10208 element: e.element, 10209 field: e.field, 10210 message: e.result.message, 10211 messageElement: ele, 10212 meta: e.result.meta, 10213 validator: e.validator 10214 }); 10215 } else if (messageEle && !e.result.valid) { 10216 messageEle.innerHTML = this.getMessage(e.result); 10217 this.core.emit('plugins.message.displayed', { 10218 element: e.element, 10219 field: e.field, 10220 message: e.result.message, 10221 messageElement: messageEle, 10222 meta: e.result.meta, 10223 validator: e.validator 10224 }); 10225 } else if (messageEle && e.result.valid) { 10226 container.removeChild(messageEle); 10227 } 10228 } 10229 }; 10230 Message.prototype.onValidatorNotValidated = function (e) { 10231 var elements = e.elements; 10232 var type = e.element.getAttribute('type'); 10233 var element = 'radio' === type || 'checkbox' === type ? elements[0] : e.element; 10234 if (this.messages.has(element)) { 10235 var container = this.messages.get(element); 10236 var messageEle = container.querySelector("[data-field=\"".concat(e.field, "\"][data-validator=\"").concat(e.validator, "\"]")); 10237 if (messageEle) { 10238 container.removeChild(messageEle); 10239 } 10240 } 10241 }; 10242 Message.prototype.onElementIgnored = function (e) { 10243 var elements = e.elements; 10244 var type = e.element.getAttribute('type'); 10245 var element = 'radio' === type || 'checkbox' === type ? elements[0] : e.element; 10246 if (this.messages.has(element)) { 10247 var container_1 = this.messages.get(element); 10248 var messageElements = [].slice.call(container_1.querySelectorAll("[data-field=\"".concat(e.field, "\"]")));
10249 messageElements.forEach(function (messageEle) { 10250 container_1.removeChild(messageEle); 10251 }); 10252 } 10253 }; 10254 return Message; 10255 }(Plugin_1.default); 10256 exports["default"] = Message; 10257}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 10258 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 10259 10260/***/ }), 10261
10262/***/ "./resources/plugins/formvalidation/dist/amd/utils/classSet.js": 10263/*!*********************************************************************!*\ 10264 !*** ./resources/plugins/formvalidation/dist/amd/utils/classSet.js ***! 10265 \*********************************************************************/ 10266/***/ ((module, exports, __webpack_require__) => { 10267 10268var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) { 10269 "use strict"; 10270 10271 Object.defineProperty(exports, "__esModule", ({ 10272 value: true 10273 })); 10274 function addClass(element, classes) { 10275 classes.split(' ').forEach(function (clazz) { 10276 if (element.classList) { 10277 element.classList.add(clazz); 10278 } else if (" ".concat(element.className, " ").indexOf(" ".concat(clazz, " "))) { 10279 element.className += " ".concat(clazz); 10280 } 10281 }); 10282 } 10283 function removeClass(element, classes) { 10284 classes.split(' ').forEach(function (clazz) { 10285 element.classList ? element.classList.remove(clazz) : element.className = element.className.replace(clazz, ''); 10286 }); 10287 } 10288 function classSet(element, classes) { 10289 var adding = []; 10290 var removing = []; 10291 Object.keys(classes).forEach(function (clazz) { 10292 if (clazz) { 10293 classes[clazz] ? adding.push(clazz) : removing.push(clazz); 10294 } 10295 }); 10296 removing.forEach(function (clazz) { 10297 return removeClass(element, clazz); 10298 }); 10299 adding.forEach(function (clazz) { 10300 return addClass(element, clazz); 10301 }); 10302 } 10303 exports["default"] = classSet; 10304}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 10305 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 10306 10307/***/ }), 10308
10309/***/ "./resources/plugins/formvalidation/dist/amd/utils/closest.js": 10310/*!********************************************************************!*\ 10311 !*** ./resources/plugins/formvalidation/dist/amd/utils/closest.js ***! 10312 \********************************************************************/ 10313/***/ ((module, exports, __webpack_require__) => { 10314 10315var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) { 10316 "use strict"; 10317 10318 Object.defineProperty(exports, "__esModule", ({ 10319 value: true 10320 })); 10321 function matches(element, selector) { 10322 var nativeMatches = element.matches || element.webkitMatchesSelector || element['mozMatchesSelector'] || element['msMatchesSelector']; 10323 if (nativeMatches) { 10324 return nativeMatches.call(element, selector); 10325 } 10326 var nodes = [].slice.call(element.parentElement.querySelectorAll(selector)); 10327 return nodes.indexOf(element) >= 0; 10328 } 10329 function closest(element, selector) { 10330 var ele = element; 10331 while (ele) { 10332 if (matches(ele, selector)) { 10333 break; 10334 } 10335 ele = ele.parentElement; 10336 } 10337 return ele; 10338 } 10339 exports["default"] = closest; 10340}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 10341 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 10342 10343/***/ }), 10344
10345/***/ "./resources/plugins/formvalidation/dist/amd/utils/hasClass.js": 10346/*!*********************************************************************!*\ 10347 !*** ./resources/plugins/formvalidation/dist/amd/utils/hasClass.js ***! 10348 \*********************************************************************/ 10349/***/ ((module, exports, __webpack_require__) => { 10350 10351var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports) { 10352 "use strict"; 10353 10354 Object.defineProperty(exports, "__esModule", ({ 10355 value: true 10356 })); 10357 function hasClass(element, clazz) { 10358 return element.classList ? element.classList.contains(clazz) : new RegExp("(^| )".concat(clazz, "( |$)"), 'gi').test(element.className); 10359 } 10360 exports["default"] = hasClass; 10361}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 10362 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 10363 10364/***/ }), 10365
10366/***/ "./resources/plugins/formvalidation/dist/js/FormValidation.full.min.js": 10367/*!*****************************************************************************!*\ 10368 !*** ./resources/plugins/formvalidation/dist/js/FormValidation.full.min.js ***! 10369 \*****************************************************************************/ 10370/***/ (function(__unused_webpack_module, exports) { 10371 10372(function (global, factory) { 10373 true ? factory(exports) : 0; 10374})(this, function (exports) { 10375 "use strict"; 10376 10377 function t$15(t) { 10378 var e = t.length; 10379 var l = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]]; 10380 var n = 0; 10381 var r = 0; 10382 while (e--) { 10383 r += l[n][parseInt(t.charAt(e), 10)]; 10384 n = 1 - n; 10385 } 10386 return r % 10 === 0 && r > 0; 10387 } 10388 function t$14(t) { 10389 var e = t.length; 10390 var n = 5; 10391 for (var r = 0; r < e; r++) { 10392 n = ((n || 10) * 2 % 11 + parseInt(t.charAt(r), 10)) % 10; 10393 } 10394 return n === 1; 10395 } 10396 function t$13(t) { 10397 var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 10398 var n = t.length; 10399 var o = e.length; 10400 var l = Math.floor(o / 2); 10401 for (var r = 0; r < n; r++) { 10402 l = ((l || o) * 2 % (o + 1) + e.indexOf(t.charAt(r))) % o; 10403 } 10404 return l === 1; 10405 } 10406 function t$12(t) { 10407 var e = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]]; 10408 var n = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; 10409 var o = t.reverse(); 10410 var r = 0; 10411 for (var _t = 0; _t < o.length; _t++) { 10412 r = e[r][n[_t % 8][o[_t]]]; 10413 } 10414 return r === 0; 10415 } 10416 var index$3 = { 10417 luhn: t$15, 10418 mod11And10: t$14, 10419 mod37And36: t$13, 10420 verhoeff: t$12 10421 }; 10422 function _classCallCheck(instance, Constructor) { 10423 if (!(instance instanceof Constructor)) { 10424 throw new TypeError("Cannot call a class as a function"); 10425 } 10426 } 10427 function _defineProperties(target, props) { 10428 for (var i = 0; i < props.length; i++) { 10429 var descriptor = props[i]; 10430 descriptor.enumerable = descriptor.enumerable || false; 10431 descriptor.configurable = true; 10432 if ("value" in descriptor) descriptor.writable = true; 10433 Object.defineProperty(target, descriptor.key, descriptor); 10434 } 10435 } 10436 function _createClass(Constructor, protoProps, staticProps) { 10437 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 10438 if (staticProps) _defineProperties(Constructor, staticProps); 10439 Object.defineProperty(Constructor, "prototype", { 10440 writable: false 10441 }); 10442 return Constructor; 10443 } 10444 function _defineProperty(obj, key, value) { 10445 if (key in obj) { 10446 Object.defineProperty(obj, key, { 10447 value: value, 10448 enumerable: true, 10449 configurable: true, 10450 writable: true 10451 }); 10452 } else { 10453 obj[key] = value; 10454 } 10455 return obj; 10456 } 10457 function _inherits(subClass, superClass) { 10458 if (typeof superClass !== "function" && superClass !== null) { 10459 throw new TypeError("Super expression must either be null or a function"); 10460 } 10461 subClass.prototype = Object.create(superClass && superClass.prototype, { 10462 constructor: { 10463 value: subClass, 10464 writable: true, 10465 configurable: true 10466 } 10467 }); 10468 Object.defineProperty(subClass, "prototype", { 10469 writable: false 10470 }); 10471 if (superClass) _setPrototypeOf(subClass, superClass); 10472 } 10473 function _getPrototypeOf(o) { 10474 _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { 10475 return o.__proto__ || Object.getPrototypeOf(o); 10476 }; 10477 return _getPrototypeOf(o); 10478 } 10479 function _setPrototypeOf(o, p) { 10480 _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { 10481 o.__proto__ = p; 10482 return o; 10483 }; 10484 return _setPrototypeOf(o, p); 10485 } 10486 function _isNativeReflectConstruct() { 10487 if (typeof Reflect === "undefined" || !Reflect.construct) return false;
10488 if (Reflect.construct.sham) return false; 10489 if (typeof Proxy === "function") return true; 10490 try { 10491 Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); 10492 return true; 10493 } catch (e) { 10494 return false; 10495 } 10496 } 10497 function _assertThisInitialized(self) { 10498 if (self === void 0) { 10499 throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 10500 } 10501 return self; 10502 } 10503 function _possibleConstructorReturn(self, call) { 10504 if (call && (typeof call === "object" || typeof call === "function")) { 10505 return call; 10506 } else if (call !== void 0) { 10507 throw new TypeError("Derived constructors may only return object or undefined"); 10508 } 10509 return _assertThisInitialized(self); 10510 } 10511 function _createSuper(Derived) { 10512 var hasNativeReflectConstruct = _isNativeReflectConstruct(); 10513 return function _createSuperInternal() { 10514 var Super = _getPrototypeOf(Derived), 10515 result; 10516 if (hasNativeReflectConstruct) { 10517 var NewTarget = _getPrototypeOf(this).constructor; 10518 result = Reflect.construct(Super, arguments, NewTarget); 10519 } else { 10520 result = Super.apply(this, arguments); 10521 } 10522 return _possibleConstructorReturn(this, result); 10523 }; 10524 } 10525 function _unsupportedIterableToArray(o, minLen) { 10526 if (!o) return; 10527 if (typeof o === "string") return _arrayLikeToArray(o, minLen); 10528 var n = Object.prototype.toString.call(o).slice(8, -1); 10529 if (n === "Object" && o.constructor) n = o.constructor.name; 10530 if (n === "Map" || n === "Set") return Array.from(o); 10531 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); 10532 } 10533 function _arrayLikeToArray(arr, len) { 10534 if (len == null || len > arr.length) len = arr.length; 10535 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; 10536 return arr2; 10537 } 10538 function _createForOfIteratorHelper(o, allowArrayLike) { 10539 var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; 10540 if (!it) { 10541 if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { 10542 if (it) o = it; 10543 var i = 0; 10544 var F = function () {}; 10545 return { 10546 s: F, 10547 n: function () { 10548 if (i >= o.length) return { 10549 done: true 10550 }; 10551 return { 10552 done: false, 10553 value: o[i++] 10554 }; 10555 }, 10556 e: function (e) { 10557 throw e; 10558 }, 10559 f: F 10560 }; 10561 } 10562 throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 10563 } 10564 var normalCompletion = true, 10565 didErr = false, 10566 err; 10567 return { 10568 s: function () { 10569 it = it.call(o); 10570 }, 10571 n: function () { 10572 var step = it.next(); 10573 normalCompletion = step.done; 10574 return step; 10575 }, 10576 e: function (e) { 10577 didErr = true; 10578 err = e; 10579 }, 10580 f: function () { 10581 try { 10582 if (!normalCompletion && it.return != null) it.return(); 10583 } finally { 10584 if (didErr) throw err; 10585 } 10586 } 10587 }; 10588 } 10589 function s$a() { 10590 return { 10591 fns: {}, 10592 clear: function clear() { 10593 this.fns = {}; 10594 }, 10595 emit: function emit(s) { 10596 for (var _len = arguments.length, f = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { 10597 f[_key - 1] = arguments[_key]; 10598 } 10599 (this.fns[s] || []).map(function (s) { 10600 return s.apply(s, f); 10601 }); 10602 }, 10603 off: function off(s, f) { 10604 if (this.fns[s]) { 10605 var n = this.fns[s].indexOf(f); 10606 if (n >= 0) { 10607 this.fns[s].splice(n, 1); 10608 } 10609 } 10610 }, 10611 on: function on(s, f) { 10612 (this.fns[s] = this.fns[s] || []).push(f); 10613 } 10614 }; 10615 } 10616 function t$11() { 10617 return { 10618 filters: {}, 10619 add: function add(t, e) { 10620 (this.filters[t] = this.filters[t] || []).push(e); 10621 }, 10622 clear: function clear() { 10623 this.filters = {}; 10624 }, 10625 execute: function execute(t, e, i) { 10626 if (!this.filters[t] || !this.filters[t].length) { 10627 return e; 10628 } 10629 var s = e; 10630 var r = this.filters[t]; 10631 var l = r.length; 10632 for (var _t = 0; _t < l; _t++) { 10633 s = r[_t].apply(s, i); 10634 } 10635 return s; 10636 }, 10637 remove: function remove(t, e) { 10638 if (this.filters[t]) { 10639 this.filters[t] = this.filters[t].filter(function (t) { 10640 return t !== e; 10641 }); 10642 } 10643 } 10644 }; 10645 } 10646 function e$H(e, t, r, n) { 10647 var o = (r.getAttribute("type") || "").toLowerCase(); 10648 var c = r.tagName.toLowerCase(); 10649 if (c === "textarea") { 10650 return r.value; 10651 } 10652 if (c === "select") { 10653 var _e = r; 10654 var _t = _e.selectedIndex; 10655 return _t >= 0 ? _e.options.item(_t).value : ""; 10656 } 10657 if (c === "input") { 10658 if ("radio" === o || "checkbox" === o) { 10659 var _e2 = n.filter(function (e) { 10660 return e.checked; 10661 }).length; 10662 return _e2 === 0 ? "" : _e2 + ""; 10663 } else { 10664 return r.value; 10665 } 10666 } 10667 return ""; 10668 } 10669 function r$d(r, e) { 10670 var t = Array.isArray(e) ? e : [e]; 10671 var a = r; 10672 t.forEach(function (r) { 10673 a = a.replace("%s", r); 10674 }); 10675 return a; 10676 } 10677 function s$9() { 10678 var s = function s(e) { 10679 return parseFloat("".concat(e).replace(",", ".")); 10680 }; 10681 return { 10682 validate: function validate(a) { 10683 var t = a.value; 10684 if (t === "") { 10685 return { 10686 valid: true 10687 }; 10688 } 10689 var n = Object.assign({}, { 10690 inclusive: true, 10691 message: "" 10692 }, a.options); 10693 var l = s(n.min); 10694 var o = s(n.max); 10695 return n.inclusive ? { 10696 message: r$d(a.l10n ? n.message || a.l10n.between["default"] : n.message, ["".concat(l), "".concat(o)]), 10697 valid: parseFloat(t) >= l && parseFloat(t) <= o 10698 } : { 10699 message: r$d(a.l10n ? n.message || a.l10n.between.notInclusive : n.message, ["".concat(l), "".concat(o)]), 10700 valid: parseFloat(t) > l && parseFloat(t) < o 10701 }; 10702 } 10703 }; 10704 } 10705 function t$10() { 10706 return { 10707 validate: function validate(t) { 10708 return { 10709 valid: true 10710 }; 10711 } 10712 }; 10713 } 10714 function t$$(t, n) { 10715 if ("function" === typeof t) { 10716 return t.apply(this, n); 10717 } else if ("string" === typeof t) { 10718 var e = t; 10719 if ("()" === e.substring(e.length - 2)) { 10720 e = e.substring(0, e.length - 2); 10721 } 10722 var i = e.split("."); 10723 var o = i.pop(); 10724 var f = window; 10725 var _iterator = _createForOfIteratorHelper(i), 10726 _step;
10727 try { 10728 for (_iterator.s(); !(_step = _iterator.n()).done;) { 10729 var _t = _step.value; 10730 f = f[_t]; 10731 } 10732 } catch (err) { 10733 _iterator.e(err); 10734 } finally { 10735 _iterator.f(); 10736 } 10737 return typeof f[o] === "undefined" ? null : f[o].apply(this, n); 10738 } 10739 } 10740 function o$4() { 10741 return { 10742 validate: function validate(o) { 10743 var l = t$$(o.options.callback, [o]); 10744 return "boolean" === typeof l ? { 10745 valid: l 10746 } : l; 10747 } 10748 }; 10749 } 10750 function t$_() { 10751 return { 10752 validate: function validate(t) { 10753 var o = "select" === t.element.tagName.toLowerCase() ? t.element.querySelectorAll("option:checked").length : t.elements.filter(function (e) { 10754 return e.checked; 10755 }).length; 10756 var s = t.options.min ? "".concat(t.options.min) : ""; 10757 var n = t.options.max ? "".concat(t.options.max) : ""; 10758 var a = t.l10n ? t.options.message || t.l10n.choice["default"] : t.options.message; 10759 var l = !(s && o < parseInt(s, 10) || n && o > parseInt(n, 10)); 10760 switch (true) { 10761 case !!s && !!n: 10762 a = r$d(t.l10n ? t.l10n.choice.between : t.options.message, [s, n]); 10763 break; 10764 case !!s: 10765 a = r$d(t.l10n ? t.l10n.choice.more : t.options.message, s); 10766 break; 10767 case !!n: 10768 a = r$d(t.l10n ? t.l10n.choice.less : t.options.message, n); 10769 break; 10770 } 10771 return { 10772 message: a, 10773 valid: l 10774 }; 10775 } 10776 }; 10777 } 10778 var t$Z = { 10779 AMERICAN_EXPRESS: { 10780 length: [15], 10781 prefix: ["34", "37"] 10782 }, 10783 DANKORT: { 10784 length: [16], 10785 prefix: ["5019"] 10786 }, 10787 DINERS_CLUB: { 10788 length: [14], 10789 prefix: ["300", "301", "302", "303", "304", "305", "36"] 10790 }, 10791 DINERS_CLUB_US: { 10792 length: [16], 10793 prefix: ["54", "55"] 10794 }, 10795 DISCOVER: { 10796 length: [16], 10797 prefix: ["6011", "622126", "622127", "622128", "622129", "62213", "62214", "62215", "62216", "62217", "62218", "62219", "6222", "6223", "6224", "6225", "6226", "6227", "6228", "62290", "62291", "622920", "622921", "622922", "622923", "622924", "622925", "644", "645", "646", "647", "648", "649", "65"] 10798 }, 10799 ELO: { 10800 length: [16], 10801 prefix: ["4011", "4312", "4389", "4514", "4573", "4576", "5041", "5066", "5067", "509", "6277", "6362", "6363", "650", "6516", "6550"] 10802 }, 10803 FORBRUGSFORENINGEN: { 10804 length: [16], 10805 prefix: ["600722"] 10806 }, 10807 JCB: { 10808 length: [16], 10809 prefix: ["3528", "3529", "353", "354", "355", "356", "357", "358"] 10810 }, 10811 LASER: { 10812 length: [16, 17, 18, 19], 10813 prefix: ["6304", "6706", "6771", "6709"] 10814 }, 10815 MAESTRO: { 10816 length: [12, 13, 14, 15, 16, 17, 18, 19], 10817 prefix: ["5018", "5020", "5038", "5868", "6304", "6759", "6761", "6762", "6763", "6764", "6765", "6766"] 10818 }, 10819 MASTERCARD: { 10820 length: [16], 10821 prefix: ["51", "52", "53", "54", "55"] 10822 }, 10823 SOLO: { 10824 length: [16, 18, 19], 10825 prefix: ["6334", "6767"] 10826 }, 10827 UNIONPAY: { 10828 length: [16, 17, 18, 19], 10829 prefix: ["622126", "622127", "622128", "622129", "62213", "62214", "62215", "62216", "62217", "62218", "62219", "6222", "6223", "6224", "6225", "6226", "6227", "6228", "62290", "62291", "622920", "622921", "622922", "622923", "622924", "622925"] 10830 }, 10831 VISA: { 10832 length: [16], 10833 prefix: ["4"] 10834 }, 10835 VISA_ELECTRON: { 10836 length: [16], 10837 prefix: ["4026", "417500", "4405", "4508", "4844", "4913", "4917"] 10838 } 10839 }; 10840 function l$2() { 10841 return { 10842 validate: function validate(l) { 10843 if (l.value === "") { 10844 return { 10845 meta: { 10846 type: null 10847 }, 10848 valid: true 10849 }; 10850 } 10851 if (/[^0-9-\s]+/.test(l.value)) { 10852 return { 10853 meta: { 10854 type: null 10855 }, 10856 valid: false 10857 }; 10858 } 10859 var r = l.value.replace(/\D/g, ""); 10860 if (!t$15(r)) { 10861 return { 10862 meta: { 10863 type: null 10864 }, 10865 valid: false 10866 }; 10867 } 10868 for (var _i = 0, _Object$keys = Object.keys(t$Z); _i < _Object$keys.length; _i++) { 10869 var _e = _Object$keys[_i]; 10870 for (var n in t$Z[_e].prefix) { 10871 if (l.value.substr(0, t$Z[_e].prefix[n].length) === t$Z[_e].prefix[n] && t$Z[_e].length.indexOf(r.length) !== -1) { 10872 return { 10873 meta: { 10874 type: _e 10875 }, 10876 valid: true 10877 }; 10878 } 10879 } 10880 } 10881 return { 10882 meta: { 10883 type: null 10884 }, 10885 valid: false 10886 }; 10887 } 10888 }; 10889 } 10890 function t$Y(t, e, n, r) { 10891 if (isNaN(t) || isNaN(e) || isNaN(n)) { 10892 return false;
10893 } 10894 if (t < 1e3 || t > 9999 || e <= 0 || e > 12) { 10895 return false; 10896 } 10897 var s = [31, t % 400 === 0 || t % 100 !== 0 && t % 4 === 0 ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 10898 if (n <= 0 || n > s[e - 1]) { 10899 return false; 10900 } 10901 if (r === true) { 10902 var _r = new Date(); 10903 var _s = _r.getFullYear(); 10904 var a = _r.getMonth(); 10905 var u = _r.getDate(); 10906 return t < _s || t === _s && e - 1 < a || t === _s && e - 1 === a && n < u; 10907 } 10908 return true; 10909 } 10910 function n$1() { 10911 var n = function n(t, e, _n) { 10912 var s = e.indexOf("YYYY"); 10913 var a = e.indexOf("MM"); 10914 var l = e.indexOf("DD"); 10915 if (s === -1 || a === -1 || l === -1) { 10916 return null; 10917 } 10918 var o = t.split(" "); 10919 var r = o[0].split(_n); 10920 if (r.length < 3) { 10921 return null; 10922 } 10923 var c = new Date(parseInt(r[s], 10), parseInt(r[a], 10) - 1, parseInt(r[l], 10)); 10924 if (o.length > 1) { 10925 var _t = o[1].split(":"); 10926 c.setHours(_t.length > 0 ? parseInt(_t[0], 10) : 0); 10927 c.setMinutes(_t.length > 1 ? parseInt(_t[1], 10) : 0); 10928 c.setSeconds(_t.length > 2 ? parseInt(_t[2], 10) : 0); 10929 } 10930 return c; 10931 }; 10932 var s = function s(t, e) { 10933 var n = e.replace(/Y/g, "y").replace(/M/g, "m").replace(/D/g, "d").replace(/:m/g, ":M").replace(/:mm/g, ":MM").replace(/:S/, ":s").replace(/:SS/, ":ss"); 10934 var s = t.getDate(); 10935 var a = s < 10 ? "0".concat(s) : s; 10936 var l = t.getMonth() + 1; 10937 var o = l < 10 ? "0".concat(l) : l; 10938 var r = "".concat(t.getFullYear()).substr(2); 10939 var c = t.getFullYear(); 10940 var i = t.getHours() % 12 || 12; 10941 var g = i < 10 ? "0".concat(i) : i; 10942 var u = t.getHours(); 10943 var m = u < 10 ? "0".concat(u) : u; 10944 var d = t.getMinutes(); 10945 var f = d < 10 ? "0".concat(d) : d; 10946 var p = t.getSeconds(); 10947 var h = p < 10 ? "0".concat(p) : p; 10948 var $ = { 10949 H: "".concat(u), 10950 HH: "".concat(m), 10951 M: "".concat(d), 10952 MM: "".concat(f), 10953 d: "".concat(s), 10954 dd: "".concat(a), 10955 h: "".concat(i), 10956 hh: "".concat(g), 10957 m: "".concat(l), 10958 mm: "".concat(o), 10959 s: "".concat(p), 10960 ss: "".concat(h), 10961 yy: "".concat(r), 10962 yyyy: "".concat(c) 10963 }; 10964 return n.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMs])\1?|"[^"]*"|'[^']*'/g, function (t) { 10965 return $[t] ? $[t] : t.slice(1, t.length - 1); 10966 }); 10967 }; 10968 return { 10969 validate: function validate(a) { 10970 if (a.value === "") { 10971 return { 10972 meta: { 10973 date: null 10974 }, 10975 valid: true 10976 }; 10977 } 10978 var l = Object.assign({}, { 10979 format: a.element && a.element.getAttribute("type") === "date" ? "YYYY-MM-DD" : "MM/DD/YYYY", 10980 message: "" 10981 }, a.options); 10982 var o = a.l10n ? a.l10n.date["default"] : l.message; 10983 var r = { 10984 message: "".concat(o), 10985 meta: { 10986 date: null 10987 }, 10988 valid: false 10989 }; 10990 var c = l.format.split(" "); 10991 var i = c.length > 1 ? c[1] : null; 10992 var g = c.length > 2 ? c[2] : null; 10993 var u = a.value.split(" "); 10994 var m = u[0]; 10995 var d = u.length > 1 ? u[1] : null; 10996 if (c.length !== u.length) { 10997 return r; 10998 } 10999 var f = l.separator || (m.indexOf("/") !== -1 ? "/" : m.indexOf("-") !== -1 ? "-" : m.indexOf(".") !== -1 ? "." : "/"); 11000 if (f === null || m.indexOf(f) === -1) { 11001 return r; 11002 } 11003 var p = m.split(f); 11004 var h = c[0].split(f); 11005 if (p.length !== h.length) { 11006 return r; 11007 } 11008 var $ = p[h.indexOf("YYYY")]; 11009 var M = p[h.indexOf("MM")]; 11010 var Y = p[h.indexOf("DD")]; 11011 if (!/^\d+$/.test($) || !/^\d+$/.test(M) || !/^\d+$/.test(Y) || $.length > 4 || M.length > 2 || Y.length > 2) { 11012 return r; 11013 } 11014 var D = parseInt($, 10); 11015 var x = parseInt(M, 10); 11016 var y = parseInt(Y, 10); 11017 if (!t$Y(D, x, y)) { 11018 return r; 11019 } 11020 var I = new Date(D, x - 1, y); 11021 if (i) { 11022 var _t2 = d.split(":"); 11023 if (i.split(":").length !== _t2.length) { 11024 return r; 11025 } 11026 var _e = _t2.length > 0 ? _t2[0].length <= 2 && /^\d+$/.test(_t2[0]) ? parseInt(_t2[0], 10) : -1 : 0; 11027 var _n2 = _t2.length > 1 ? _t2[1].length <= 2 && /^\d+$/.test(_t2[1]) ? parseInt(_t2[1], 10) : -1 : 0; 11028 var _s = _t2.length > 2 ? _t2[2].length <= 2 && /^\d+$/.test(_t2[2]) ? parseInt(_t2[2], 10) : -1 : 0; 11029 if (_e === -1 || _n2 === -1 || _s === -1) { 11030 return r; 11031 } 11032 if (_s < 0 || _s > 60) { 11033 return r; 11034 } 11035 if (_e < 0 || _e >= 24 || g && _e > 12) { 11036 return r; 11037 } 11038 if (_n2 < 0 || _n2 > 59) { 11039 return r; 11040 } 11041 I.setHours(_e); 11042 I.setMinutes(_n2); 11043 I.setSeconds(_s); 11044 } 11045 var O = typeof l.min === "function" ? l.min() : l.min; 11046 var v = O instanceof Date ? O : O ? n(O, h, f) : I; 11047 var H = typeof l.max === "function" ? l.max() : l.max; 11048 var T = H instanceof Date ? H : H ? n(H, h, f) : I; 11049 var S = O instanceof Date ? s(v, l.format) : O; 11050 var b = H instanceof Date ? s(T, l.format) : H; 11051 switch (true) { 11052 case !!S && !b: 11053 return { 11054 message: r$d(a.l10n ? a.l10n.date.min : o, S), 11055 meta: { 11056 date: I 11057 }, 11058 valid: I.getTime() >= v.getTime() 11059 }; 11060 case !!b && !S: 11061 return { 11062 message: r$d(a.l10n ? a.l10n.date.max : o, b), 11063 meta: { 11064 date: I 11065 }, 11066 valid: I.getTime() <= T.getTime() 11067 }; 11068 case !!b && !!S: 11069 return { 11070 message: r$d(a.l10n ? a.l10n.date.range : o, [S, b]), 11071 meta: { 11072 date: I 11073 }, 11074 valid: I.getTime() <= T.getTime() && I.getTime() >= v.getTime() 11075 }; 11076 default: 11077 return { 11078 message: "".concat(o), 11079 meta: { 11080 date: I 11081 }, 11082 valid: true 11083 }; 11084 } 11085 } 11086 }; 11087 } 11088 function o$3() { 11089 return { 11090 validate: function validate(o) { 11091 var t = "function" === typeof o.options.compare ? o.options.compare.call(this) : o.options.compare; 11092 return { 11093 valid: t === "" || o.value !== t 11094 }; 11095 } 11096 }; 11097 } 11098 function e$G() { 11099 return { 11100 validate: function validate(e) { 11101 return { 11102 valid: e.value === "" || /^\d+$/.test(e.value) 11103 }; 11104 } 11105 }; 11106 } 11107 function t$X() { 11108 var t = function t(_t3, e) { 11109 var s = _t3.split(/"/); 11110 var l = s.length; 11111 var n = []; 11112 var r = ""; 11113 for (var _t = 0; _t < l; _t++) { 11114 if (_t % 2 === 0) { 11115 var _l = s[_t].split(e); 11116 var a = _l.length; 11117 if (a === 1) { 11118 r += _l[0]; 11119 } else { 11120 n.push(r + _l[0]); 11121 for (var _t2 = 1; _t2 < a - 1; _t2++) { 11122 n.push(_l[_t2]); 11123 } 11124 r = _l[a - 1]; 11125 } 11126 } else { 11127 r += '"' + s[_t]; 11128 if (_t < l - 1) { 11129 r += '"'; 11130 } 11131 } 11132 } 11133 n.push(r); 11134 return n; 11135 }; 11136 return { 11137 validate: function validate(e) { 11138 if (e.value === "") { 11139 return { 11140 valid: true 11141 }; 11142 } 11143 var s = Object.assign({}, { 11144 multiple: false, 11145 separator: /[,;]/ 11146 }, e.options); 11147 var l = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/; 11148 var n = s.multiple === true || "".concat(s.multiple) === "true"; 11149 if (n) { 11150 var _n = s.separator || /[,;]/; 11151 var r = t(e.value, _n); 11152 var a = r.length; 11153 for (var _t4 = 0; _t4 < a; _t4++) { 11154 if (!l.test(r[_t4])) { 11155 return { 11156 valid: false 11157 }; 11158 } 11159 } 11160 return { 11161 valid: true 11162 }; 11163 } else { 11164 return { 11165 valid: l.test(e.value) 11166 }; 11167 } 11168 } 11169 }; 11170 } 11171 function e$F() { 11172 return { 11173 validate: function validate(e) { 11174 if (e.value === "") { 11175 return { 11176 valid: true 11177 }; 11178 } 11179 var t; 11180 var i = e.options.extension ? e.options.extension.toLowerCase().split(",") : null; 11181 var s = e.options.type ? e.options.type.toLowerCase().split(",") : null; 11182 var n = window["File"] && window["FileList"] && window["FileReader"]; 11183 if (n) { 11184 var _n = e.element.files; 11185 var o = _n.length; 11186 var a = 0; 11187 if (e.options.maxFiles && o > parseInt("".concat(e.options.maxFiles), 10)) { 11188 return { 11189 meta: { 11190 error: "INVALID_MAX_FILES" 11191 }, 11192 valid: false 11193 }; 11194 } 11195 if (e.options.minFiles && o < parseInt("".concat(e.options.minFiles), 10)) { 11196 return { 11197 meta: { 11198 error: "INVALID_MIN_FILES" 11199 }, 11200 valid: false 11201 }; 11202 } 11203 var r = {}; 11204 for (var l = 0; l < o; l++) { 11205 a += _n[l].size; 11206 t = _n[l].name.substr(_n[l].name.lastIndexOf(".") + 1); 11207 r = { 11208 ext: t, 11209 file: _n[l], 11210 size: _n[l].size, 11211 type: _n[l].type 11212 }; 11213 if (e.options.minSize && _n[l].size < parseInt("".concat(e.options.minSize), 10)) { 11214 return { 11215 meta: Object.assign({}, { 11216 error: "INVALID_MIN_SIZE" 11217 }, r), 11218 valid: false 11219 }; 11220 } 11221 if (e.options.maxSize && _n[l].size > parseInt("".concat(e.options.maxSize), 10)) { 11222 return { 11223 meta: Object.assign({}, { 11224 error: "INVALID_MAX_SIZE" 11225 }, r), 11226 valid: false 11227 }; 11228 } 11229 if (i && i.indexOf(t.toLowerCase()) === -1) { 11230 return { 11231 meta: Object.assign({}, { 11232 error: "INVALID_EXTENSION" 11233 }, r), 11234 valid: false 11235 }; 11236 }
11237 if (_n[l].type && s && s.indexOf(_n[l].type.toLowerCase()) === -1) { 11238 return { 11239 meta: Object.assign({}, { 11240 error: "INVALID_TYPE" 11241 }, r), 11242 valid: false 11243 }; 11244 } 11245 } 11246 if (e.options.maxTotalSize && a > parseInt("".concat(e.options.maxTotalSize), 10)) { 11247 return { 11248 meta: Object.assign({}, { 11249 error: "INVALID_MAX_TOTAL_SIZE", 11250 totalSize: a 11251 }, r), 11252 valid: false 11253 }; 11254 } 11255 if (e.options.minTotalSize && a < parseInt("".concat(e.options.minTotalSize), 10)) { 11256 return { 11257 meta: Object.assign({}, { 11258 error: "INVALID_MIN_TOTAL_SIZE", 11259 totalSize: a 11260 }, r), 11261 valid: false 11262 }; 11263 } 11264 } else { 11265 t = e.value.substr(e.value.lastIndexOf(".") + 1); 11266 if (i && i.indexOf(t.toLowerCase()) === -1) { 11267 return { 11268 meta: { 11269 error: "INVALID_EXTENSION", 11270 ext: t 11271 }, 11272 valid: false 11273 }; 11274 } 11275 } 11276 return { 11277 valid: true 11278 }; 11279 } 11280 }; 11281 } 11282 function a$7() { 11283 return { 11284 validate: function validate(a) { 11285 if (a.value === "") { 11286 return { 11287 valid: true 11288 }; 11289 } 11290 var s = Object.assign({}, { 11291 inclusive: true, 11292 message: "" 11293 }, a.options); 11294 var t = parseFloat("".concat(s.min).replace(",", ".")); 11295 return s.inclusive ? { 11296 message: r$d(a.l10n ? s.message || a.l10n.greaterThan["default"] : s.message, "".concat(t)), 11297 valid: parseFloat(a.value) >= t 11298 } : { 11299 message: r$d(a.l10n ? s.message || a.l10n.greaterThan.notInclusive : s.message, "".concat(t)), 11300 valid: parseFloat(a.value) > t 11301 }; 11302 } 11303 }; 11304 } 11305 function o$2() { 11306 return { 11307 validate: function validate(o) { 11308 var t = "function" === typeof o.options.compare ? o.options.compare.call(this) : o.options.compare; 11309 return { 11310 valid: t === "" || o.value === t 11311 }; 11312 } 11313 }; 11314 } 11315 function a$6() { 11316 return { 11317 validate: function validate(a) { 11318 if (a.value === "") { 11319 return { 11320 valid: true 11321 }; 11322 } 11323 var e = Object.assign({}, { 11324 decimalSeparator: ".", 11325 thousandsSeparator: "" 11326 }, a.options); 11327 var t = e.decimalSeparator === "." ? "\\." : e.decimalSeparator; 11328 var r = e.thousandsSeparator === "." ? "\\." : e.thousandsSeparator; 11329 var o = new RegExp("^-?[0-9]{1,3}(".concat(r, "[0-9]{3})*(").concat(t, "[0-9]+)?$")); 11330 var n = new RegExp(r, "g"); 11331 var s = "".concat(a.value); 11332 if (!o.test(s)) { 11333 return { 11334 valid: false 11335 }; 11336 } 11337 if (r) { 11338 s = s.replace(n, ""); 11339 } 11340 if (t) { 11341 s = s.replace(t, "."); 11342 } 11343 var i = parseFloat(s); 11344 return { 11345 valid: !isNaN(i) && isFinite(i) && Math.floor(i) === i 11346 }; 11347 } 11348 }; 11349 } 11350 function d() { 11351 return { 11352 validate: function validate(d) { 11353 if (d.value === "") { 11354 return { 11355 valid: true 11356 }; 11357 } 11358 var a = Object.assign({}, { 11359 ipv4: true, 11360 ipv6: true 11361 }, d.options); 11362 var e = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[1-2][0-9]|3[0-2]))?$/; 11363 var s = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*(\/(\d|\d\d|1[0-1]\d|12[0-8]))?$/; 11364 switch (true) { 11365 case a.ipv4 && !a.ipv6: 11366 return { 11367 message: d.l10n ? a.message || d.l10n.ip.ipv4 : a.message, 11368 valid: e.test(d.value) 11369 }; 11370 case !a.ipv4 && a.ipv6: 11371 return { 11372 message: d.l10n ? a.message || d.l10n.ip.ipv6 : a.message, 11373 valid: s.test(d.value) 11374 }; 11375 case a.ipv4 && a.ipv6: 11376 default: 11377 return { 11378 message: d.l10n ? a.message || d.l10n.ip["default"] : a.message, 11379 valid: e.test(d.value) || s.test(d.value) 11380 }; 11381 } 11382 } 11383 }; 11384 } 11385 function s$8() { 11386 return { 11387 validate: function validate(s) { 11388 if (s.value === "") { 11389 return { 11390 valid: true 11391 }; 11392 } 11393 var a = Object.assign({}, { 11394 inclusive: true, 11395 message: "" 11396 }, s.options); 11397 var l = parseFloat("".concat(a.max).replace(",", ".")); 11398 return a.inclusive ? { 11399 message: r$d(s.l10n ? a.message || s.l10n.lessThan["default"] : a.message, "".concat(l)), 11400 valid: parseFloat(s.value) <= l 11401 } : { 11402 message: r$d(s.l10n ? a.message || s.l10n.lessThan.notInclusive : a.message, "".concat(l)), 11403 valid: parseFloat(s.value) < l 11404 }; 11405 } 11406 }; 11407 } 11408 function t$W() { 11409 return { 11410 validate: function validate(t) { 11411 var n = !!t.options && !!t.options.trim; 11412 var o = t.value; 11413 return { 11414 valid: !n && o !== "" || n && o !== "" && o.trim() !== "" 11415 }; 11416 } 11417 }; 11418 } 11419 function a$5() { 11420 return { 11421 validate: function validate(a) { 11422 if (a.value === "") { 11423 return { 11424 valid: true 11425 }; 11426 } 11427 var e = Object.assign({}, { 11428 decimalSeparator: ".", 11429 thousandsSeparator: "" 11430 }, a.options); 11431 var t = "".concat(a.value); 11432 if (t.substr(0, 1) === e.decimalSeparator) { 11433 t = "0".concat(e.decimalSeparator).concat(t.substr(1)); 11434 } else if (t.substr(0, 2) === "-".concat(e.decimalSeparator)) { 11435 t = "-0".concat(e.decimalSeparator).concat(t.substr(2)); 11436 } 11437 var r = e.decimalSeparator === "." ? "\\." : e.decimalSeparator; 11438 var s = e.thousandsSeparator === "." ? "\\." : e.thousandsSeparator; 11439 var i = new RegExp("^-?[0-9]{1,3}(".concat(s, "[0-9]{3})*(").concat(r, "[0-9]+)?$")); 11440 var o = new RegExp(s, "g"); 11441 if (!i.test(t)) { 11442 return { 11443 valid: false 11444 }; 11445 } 11446 if (s) { 11447 t = t.replace(o, ""); 11448 } 11449 if (r) { 11450 t = t.replace(r, "."); 11451 } 11452 var l = parseFloat(t); 11453 return { 11454 valid: !isNaN(l) && isFinite(l) 11455 }; 11456 } 11457 }; 11458 } 11459 function r$c() { 11460 return { 11461 validate: function validate(r) { 11462 return t$$(r.options.promise, [r]); 11463 } 11464 }; 11465 } 11466 function e$E() { 11467 return { 11468 validate: function validate(e) { 11469 if (e.value === "") { 11470 return { 11471 valid: true 11472 }; 11473 } 11474 var t = e.options.regexp; 11475 if (t instanceof RegExp) { 11476 return { 11477 valid: t.test(e.value) 11478 }; 11479 } else { 11480 var n = t.toString(); 11481 var o = e.options.flags ? new RegExp(n, e.options.flags) : new RegExp(n); 11482 return { 11483 valid: o.test(e.value) 11484 }; 11485 } 11486 } 11487 }; 11488 } 11489 var e$D = function e(_e) { 11490 return Array(_e).fill("").map(function (e) { 11491 return Math.random().toString(36).charAt(2); 11492 }).join(""); 11493 }; 11494 function t$V(t, n) { 11495 var o = function o(e) { 11496 return Object.keys(e).map(function (t) { 11497 return "".concat(encodeURIComponent(t), "=").concat(encodeURIComponent(e[t])); 11498 }).join("&"); 11499 }; 11500 return new Promise(function (s, a) { 11501 var r = Object.assign({}, {
11502 crossDomain: false, 11503 headers: {}, 11504 method: "GET", 11505 params: {} 11506 }, n); 11507 var d = Object.keys(r.params).map(function (e) { 11508 return "".concat(encodeURIComponent(e), "=").concat(encodeURIComponent(r.params[e])); 11509 }).join("&"); 11510 var c = t.indexOf("?"); 11511 var i = "GET" === r.method ? "".concat(t).concat(c ? "?" : "&").concat(d) : t; 11512 if (r.crossDomain) { 11513 var _t = document.createElement("script"); 11514 var _n = "___FormValidationFetch_".concat(e$D(12), "___"); 11515 window[_n] = function (e) { 11516 delete window[_n]; 11517 s(e); 11518 }; 11519 _t.src = "".concat(i).concat(c ? "&" : "?", "callback=").concat(_n); 11520 _t.async = true; 11521 _t.addEventListener("load", function () { 11522 _t.parentNode.removeChild(_t); 11523 }); 11524 _t.addEventListener("error", function () { 11525 return a; 11526 }); 11527 document.head.appendChild(_t); 11528 } else { 11529 var _e2 = new XMLHttpRequest(); 11530 _e2.open(r.method, i); 11531 _e2.setRequestHeader("X-Requested-With", "XMLHttpRequest"); 11532 if ("POST" === r.method) { 11533 _e2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 11534 } 11535 Object.keys(r.headers).forEach(function (t) { 11536 return _e2.setRequestHeader(t, r.headers[t]); 11537 }); 11538 _e2.addEventListener("load", function () { 11539 s(JSON.parse(this.responseText)); 11540 }); 11541 _e2.addEventListener("error", function () { 11542 return a; 11543 }); 11544 _e2.send(o(r.params)); 11545 } 11546 }); 11547 } 11548 function a$4() { 11549 var a = { 11550 crossDomain: false, 11551 data: {}, 11552 headers: {}, 11553 method: "GET", 11554 validKey: "valid" 11555 }; 11556 return { 11557 validate: function validate(t) { 11558 if (t.value === "") { 11559 return Promise.resolve({ 11560 valid: true 11561 }); 11562 } 11563 var s = Object.assign({}, a, t.options); 11564 var r = s.data; 11565 if ("function" === typeof s.data) { 11566 r = s.data.call(this, t); 11567 } 11568 if ("string" === typeof r) { 11569 r = JSON.parse(r); 11570 } 11571 r[s.name || t.field] = t.value; 11572 var o = "function" === typeof s.url ? s.url.call(this, t) : s.url; 11573 return t$V(o, { 11574 crossDomain: s.crossDomain, 11575 headers: s.headers, 11576 method: s.method, 11577 params: r 11578 }).then(function (e) { 11579 return Promise.resolve({ 11580 message: e["message"], 11581 meta: e, 11582 valid: "".concat(e[s.validKey]) === "true" 11583 }); 11584 })["catch"](function (e) { 11585 return Promise.reject({ 11586 valid: false 11587 }); 11588 }); 11589 } 11590 }; 11591 } 11592 function e$C() { 11593 return { 11594 validate: function validate(e) { 11595 if (e.value === "") { 11596 return { 11597 valid: true 11598 }; 11599 } 11600 var a = Object.assign({}, { 11601 case: "lower" 11602 }, e.options); 11603 var s = (a["case"] || "lower").toLowerCase(); 11604 return { 11605 message: a.message || (e.l10n ? "upper" === s ? e.l10n.stringCase.upper : e.l10n.stringCase["default"] : a.message), 11606 valid: "upper" === s ? e.value === e.value.toUpperCase() : e.value === e.value.toLowerCase() 11607 }; 11608 } 11609 }; 11610 } 11611 function t$U() { 11612 var t = function t(e) { 11613 var t = e.length; 11614 for (var s = e.length - 1; s >= 0; s--) { 11615 var n = e.charCodeAt(s); 11616 if (n > 127 && n <= 2047) { 11617 t++; 11618 } else if (n > 2047 && n <= 65535) { 11619 t += 2; 11620 } 11621 if (n >= 56320 && n <= 57343) { 11622 s--; 11623 } 11624 } 11625 return "".concat(t); 11626 }; 11627 return { 11628 validate: function validate(s) { 11629 var n = Object.assign({}, { 11630 message: "", 11631 trim: false, 11632 utf8Bytes: false 11633 }, s.options); 11634 var a = n.trim === true || "".concat(n.trim) === "true" ? s.value.trim() : s.value; 11635 if (a === "") { 11636 return { 11637 valid: true 11638 }; 11639 } 11640 var r = n.min ? "".concat(n.min) : ""; 11641 var l = n.max ? "".concat(n.max) : ""; 11642 var i = n.utf8Bytes ? t(a) : a.length; 11643 var g = true; 11644 var m = s.l10n ? n.message || s.l10n.stringLength["default"] : n.message; 11645 if (r && i < parseInt(r, 10) || l && i > parseInt(l, 10)) { 11646 g = false;
11647 } 11648 switch (true) { 11649 case !!r && !!l: 11650 m = r$d(s.l10n ? n.message || s.l10n.stringLength.between : n.message, [r, l]); 11651 break; 11652 case !!r: 11653 m = r$d(s.l10n ? n.message || s.l10n.stringLength.more : n.message, "".concat(parseInt(r, 10))); 11654 break; 11655 case !!l: 11656 m = r$d(s.l10n ? n.message || s.l10n.stringLength.less : n.message, "".concat(parseInt(l, 10))); 11657 break; 11658 } 11659 return { 11660 message: m, 11661 valid: g 11662 }; 11663 } 11664 }; 11665 } 11666 function t$T() { 11667 var t = { 11668 allowEmptyProtocol: false, 11669 allowLocal: false, 11670 protocol: "http, https, ftp" 11671 }; 11672 return { 11673 validate: function validate(o) { 11674 if (o.value === "") { 11675 return { 11676 valid: true 11677 }; 11678 } 11679 var a = Object.assign({}, t, o.options); 11680 var l = a.allowLocal === true || "".concat(a.allowLocal) === "true"; 11681 var f = a.allowEmptyProtocol === true || "".concat(a.allowEmptyProtocol) === "true"; 11682 var u = a.protocol.split(",").join("|").replace(/\s/g, ""); 11683 var e = new RegExp("^" + "(?:(?:" + u + ")://)" + (f ? "?" : "") + "(?:\\S+(?::\\S*)?@)?" + "(?:" + (l ? "" : "(?!(?:10|127)(?:\\.\\d{1,3}){3})" + "(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})" + "(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})") + "(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])" + "(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}" + "(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))" + "|" + "(?:(?:[a-z\\u00a1-\\uffff0-9]-?)*[a-z\\u00a1-\\uffff0-9]+)" + "(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-?)*[a-z\\u00a1-\\uffff0-9])*" + "(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))" + (l ? "?" : "") + ")" + "(?::\\d{2,5})?" + "(?:/[^\\s]*)?$", "i"); 11684 return { 11685 valid: e.test(o.value) 11686 }; 11687 } 11688 }; 11689 } 11690 function a$3() { 11691 return { 11692 validate: function validate(a) { 11693 return { 11694 valid: a.value === "" || /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/.test(a.value) 11695 }; 11696 } 11697 }; 11698 } 11699 function a$2() { 11700 return { 11701 validate: function validate(a) { 11702 return { 11703 valid: a.value === "" || /^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$/.test(a.value) 11704 }; 11705 } 11706 }; 11707 } 11708 function e$B() { 11709 var e = ["hex", "rgb", "rgba", "hsl", "hsla", "keyword"]; 11710 var a = ["aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "green", "greenyellow", "grey", "honeydew", "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", "purple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "transparent", "turquoise", "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen"]; 11711 var r = function r(e) { 11712 return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e); 11713 }; 11714 var l = function l(e) { 11715 return /^hsl\((\s*(-?\d+)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*)\)$/.test(e); 11716 }; 11717 var s = function s(e) { 11718 return /^hsla\((\s*(-?\d+)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*,){2}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/.test(e); 11719 }; 11720 var t = function t(e) { 11721 return a.indexOf(e) >= 0; 11722 }; 11723 var i = function i(e) { 11724 return /^rgb\((\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*,){2}(\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*)\)$/.test(e) || /^rgb\((\s*(\b(0?\d{1,2}|100)\b%)\s*,){2}(\s*(\b(0?\d{1,2}|100)\b%)\s*)\)$/.test(e); 11725 }; 11726 var o = function o(e) { 11727 return /^rgba\((\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*,){3}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/.test(e) || /^rgba\((\s*(\b(0?\d{1,2}|100)\b%)\s*,){3}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/.test(e); 11728 }; 11729 return { 11730 validate: function validate(a) { 11731 if (a.value === "") { 11732 return { 11733 valid: true 11734 }; 11735 } 11736 var n = typeof a.options.type === "string" ? a.options.type.toString().replace(/s/g, "").split(",") : a.options.type || e; 11737 var _iterator = _createForOfIteratorHelper(n), 11738 _step; 11739 try { 11740 for (_iterator.s();
11740 !(_step = _iterator.n()).done;) { 11741 var d = _step.value; 11742 var _n = d.toLowerCase(); 11743 if (e.indexOf(_n) === -1) { 11744 continue; 11745 } 11746 var g = true; 11747 switch (_n) { 11748 case "hex": 11749 g = r(a.value); 11750 break; 11751 case "hsl": 11752 g = l(a.value); 11753 break; 11754 case "hsla": 11755 g = s(a.value); 11756 break; 11757 case "keyword": 11758 g = t(a.value); 11759 break; 11760 case "rgb": 11761 g = i(a.value); 11762 break; 11763 case "rgba": 11764 g = o(a.value); 11765 break; 11766 } 11767 if (g) { 11768 return { 11769 valid: true 11770 }; 11771 } 11772 } 11773 } catch (err) { 11774 _iterator.e(err); 11775 } finally { 11776 _iterator.f(); 11777 } 11778 return { 11779 valid: false 11780 }; 11781 } 11782 }; 11783 } 11784 function t$S() { 11785 return { 11786 validate: function validate(t) { 11787 if (t.value === "") { 11788 return { 11789 valid: true 11790 }; 11791 } 11792 var e = t.value.toUpperCase(); 11793 if (!/^[0123456789ABCDEFGHJKLMNPQRSTUVWXYZ*@#]{9}$/.test(e)) { 11794 return { 11795 valid: false 11796 }; 11797 } 11798 var r = e.split(""); 11799 var a = r.pop(); 11800 var n = r.map(function (t) { 11801 var e = t.charCodeAt(0); 11802 switch (true) { 11803 case t === "*": 11804 return 36; 11805 case t === "@": 11806 return 37; 11807 case t === "#": 11808 return 38; 11809 case e >= "A".charCodeAt(0) && e <= "Z".charCodeAt(0): 11810 return e - "A".charCodeAt(0) + 10; 11811 default: 11812 return parseInt(t, 10); 11813 } 11814 }); 11815 var c = n.map(function (t, e) { 11816 var r = e % 2 === 0 ? t : 2 * t; 11817 return Math.floor(r / 10) + r % 10; 11818 }).reduce(function (t, e) { 11819 return t + e; 11820 }, 0); 11821 var o = (10 - c % 10) % 10; 11822 return { 11823 valid: a === "".concat(o) 11824 }; 11825 } 11826 }; 11827 } 11828 function e$A() { 11829 return { 11830 validate: function validate(e) { 11831 if (e.value === "") { 11832 return { 11833 valid: true 11834 }; 11835 } 11836 if (!/^(\d{8}|\d{12}|\d{13}|\d{14})$/.test(e.value)) { 11837 return { 11838 valid: false 11839 }; 11840 } 11841 var t = e.value.length; 11842 var a = 0; 11843 var l = t === 8 ? [3, 1] : [1, 3]; 11844 for (var r = 0; r < t - 1; r++) { 11845 a += parseInt(e.value.charAt(r), 10) * l[r % 2]; 11846 } 11847 a = (10 - a % 10) % 10; 11848 return { 11849 valid: "".concat(a) === e.value.charAt(t - 1) 11850 }; 11851 } 11852 }; 11853 } 11854 function e$z() { 11855 var e = { 11856 ANDOVER: ["10", "12"], 11857 ATLANTA: ["60", "67"], 11858 AUSTIN: ["50", "53"], 11859 BROOKHAVEN: ["01", "02", "03", "04", "05", "06", "11", "13", "14", "16", "21", "22", "23", "25", "34", "51", "52", "54", "55", "56", "57", "58", "59", "65"], 11860 CINCINNATI: ["30", "32", "35", "36", "37", "38", "61"], 11861 FRESNO: ["15", "24"], 11862 INTERNET: ["20", "26", "27", "45", "46", "47"], 11863 KANSAS_CITY: ["40", "44"], 11864 MEMPHIS: ["94", "95"], 11865 OGDEN: ["80", "90"], 11866 PHILADELPHIA: ["33", "39", "41", "42", "43", "48", "62", "63", "64", "66", "68", "71", "72", "73", "74", "75", "76", "77", "81", "82", "83", "84", "85", "86", "87", "88", "91", "92", "93", "98", "99"], 11867 SMALL_BUSINESS_ADMINISTRATION: ["31"] 11868 }; 11869 return { 11870 validate: function validate(t) { 11871 if (t.value === "") { 11872 return { 11873 meta: null, 11874 valid: true 11875 }; 11876 } 11877 if (!/^[0-9]{2}-?[0-9]{7}$/.test(t.value)) { 11878 return { 11879 meta: null, 11880 valid: false 11881 }; 11882 } 11883 var a = "".concat(t.value.substr(0, 2)); 11884 for (var _t in e) { 11885 if (e[_t].indexOf(a) !== -1) { 11886 return { 11887 meta: { 11888 campus: _t 11889 }, 11890 valid: true 11891 }; 11892 } 11893 } 11894 return { 11895 meta: null, 11896 valid: false 11897 }; 11898 } 11899 }; 11900 } 11901 function r$b() { 11902 return { 11903 validate: function validate(r) { 11904 if (r.value === "") { 11905 return { 11906 valid: true 11907 }; 11908 } 11909 var t = r.value.toUpperCase(); 11910 if (!/^[GRID:]*([0-9A-Z]{2})[-\s]*([0-9A-Z]{5})[-\s]*([0-9A-Z]{10})[-\s]*([0-9A-Z]{1})$/g.test(t)) { 11911 return { 11912 valid: false 11913 }; 11914 } 11915 t = t.replace(/\s/g, "").replace(/-/g, ""); 11916 if ("GRID:" === t.substr(0, 5)) { 11917 t = t.substr(5); 11918 } 11919 return { 11920 valid: t$13(t) 11921 }; 11922 } 11923 }; 11924 } 11925 function e$y() { 11926 return { 11927 validate: function validate(e) { 11928 return { 11929 valid: e.value === "" || /^[0-9a-fA-F]+$/.test(e.value) 11930 }; 11931 } 11932 }; 11933 } 11934 function Z() { 11935 var Z = { 11936 AD: "AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}", 11937 AE: "AE[0-9]{2}[0-9]{3}[0-9]{16}", 11938 AL: "AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}", 11939 AO: "AO[0-9]{2}[0-9]{21}", 11940 AT: "AT[0-9]{2}[0-9]{5}[0-9]{11}", 11941 AZ: "AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}", 11942 BA: "BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}", 11943 BE: "BE[0-9]{2}[0-9]{3}[0-9]{7}
11943[0-9]{2}", 11944 BF: "BF[0-9]{2}[0-9]{23}", 11945 BG: "BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}", 11946 BH: "BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}", 11947 BI: "BI[0-9]{2}[0-9]{12}", 11948 BJ: "BJ[0-9]{2}[A-Z]{1}[0-9]{23}", 11949 BR: "BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]", 11950 CH: "CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}", 11951 CI: "CI[0-9]{2}[A-Z]{1}[0-9]{23}", 11952 CM: "CM[0-9]{2}[0-9]{23}", 11953 CR: "CR[0-9]{2}[0-9][0-9]{3}[0-9]{14}", 11954 CV: "CV[0-9]{2}[0-9]{21}", 11955 CY: "CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}", 11956 CZ: "CZ[0-9]{2}[0-9]{20}", 11957 DE: "DE[0-9]{2}[0-9]{8}[0-9]{10}", 11958 DK: "DK[0-9]{2}[0-9]{14}", 11959 DO: "DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}", 11960 DZ: "DZ[0-9]{2}[0-9]{20}", 11961 EE: "EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}", 11962 ES: "ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}", 11963 FI: "FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}", 11964 FO: "FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}", 11965 FR: "FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}", 11966 GB: "GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}", 11967 GE: "GE[0-9]{2}[A-Z]{2}[0-9]{16}", 11968 GI: "GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}", 11969 GL: "GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}", 11970 GR: "GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}", 11971 GT: "GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}", 11972 HR: "HR[0-9]{2}[0-9]{7}[0-9]{10}", 11973 HU: "HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}", 11974 IE: "IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}", 11975 IL: "IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}", 11976 IR: "IR[0-9]{2}[0-9]{22}", 11977 IS: "IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}", 11978 IT: "IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}", 11979 JO: "JO[0-9]{2}[A-Z]{4}[0-9]{4}[0]{8}[A-Z0-9]{10}", 11980 KW: "KW[0-9]{2}[A-Z]{4}[0-9]{22}", 11981 KZ: "KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}", 11982 LB: "LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}", 11983 LI: "LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}", 11984 LT: "LT[0-9]{2}[0-9]{5}[0-9]{11}", 11985 LU: "LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}", 11986 LV: "LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}", 11987 MC: "MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}", 11988 MD: "MD[0-9]{2}[A-Z0-9]{20}", 11989 ME: "ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}", 11990 MG: "MG[0-9]{2}[0-9]{23}", 11991 MK: "MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}", 11992 ML: "ML[0-9]{2}[A-Z]{1}[0-9]{23}", 11993 MR: "MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}", 11994 MT: "MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}", 11995 MU: "MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}", 11996 MZ: "MZ[0-9]{2}[0-9]{21}", 11997 NL: "NL[0-9]{2}[A-Z]{4}[0-9]{10}", 11998 NO: "NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}", 11999 PK: "PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}", 12000 PL: "PL[0-9]{2}[0-9]{8}[0-9]{16}", 12001 PS: "PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}", 12002 PT: "PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}", 12003 QA: "QA[0-9]{2}[A-Z]{4}[A-Z0-9]{21}", 12004 RO: "RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}", 12005 RS: "RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}", 12006 SA: "SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}", 12007 SE: "SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}", 12008 SI: "SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}", 12009 SK: "SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}", 12010 SM: "SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}", 12011 SN: "SN[0-9]{2}[A-Z]{1}[0-9]{23}", 12012 TL: "TL38[0-9]{3}[0-9]{14}[0-9]{2}", 12013 TN: "TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}", 12014 TR: "TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}", 12015 VG: "VG[0-9]{2}[A-Z]{4}[0-9]{16}", 12016 XK: "XK[0-9]{2}[0-9]{4}[0-9]{10}[0-9]{2}" 12017 }; 12018 var e = ["AT", "BE", "BG", "CH", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GB", "GI", "GR", "HR", "HU", "IE", "IS", "IT", "LI", "LT", "LU", "LV", "MC", "MT", "NL", "NO", "PL", "PT", "RO", "SE", "SI", "SK", "SM"]; 12019 return { 12020 validate: function validate(s) { 12021 if (s.value === "") { 12022 return { 12023 valid: true 12024 }; 12025 } 12026 var t = Object.assign({}, { 12027 message: "" 12028 }, s.options); 12029 var a = s.value.replace(/[^a-zA-Z0-9]/g, "").toUpperCase(); 12030 var r = t.country || a.substr(0, 2); 12031 if (!Z[r]) { 12032 return { 12033 message: t.message, 12034 valid: false 12035 }; 12036 } 12037 if (t.sepa !== undefined) { 12038 var _A = e.indexOf(r) !== -1; 12039 if ((t.sepa === "true" || t.sepa === true) && !_A || (t.sepa === "fal
12039se" || t.sepa === false) && _A) { 12040 return { 12041 message: t.message, 12042 valid: false 12043 }; 12044 } 12045 } 12046 var n = r$d(s.l10n ? t.message || s.l10n.iban.country : t.message, s.l10n ? s.l10n.iban.countries[r] : r); 12047 if (!new RegExp("^".concat(Z[r], "$")).test(s.value)) { 12048 return { 12049 message: n, 12050 valid: false 12051 }; 12052 } 12053 a = "".concat(a.substr(4)).concat(a.substr(0, 4)); 12054 a = a.split("").map(function (A) { 12055 var Z = A.charCodeAt(0); 12056 return Z >= "A".charCodeAt(0) && Z <= "Z".charCodeAt(0) ? Z - "A".charCodeAt(0) + 10 : A; 12057 }).join(""); 12058 var I = parseInt(a.substr(0, 1), 10); 12059 var L = a.length; 12060 for (var _A2 = 1; _A2 < L; ++_A2) { 12061 I = (I * 10 + parseInt(a.substr(_A2, 1), 10)) % 97; 12062 } 12063 return { 12064 message: n, 12065 valid: I === 1 12066 }; 12067 } 12068 }; 12069 } 12070 function t$R(t) { 12071 var e = t.replace(/\./g, ""); 12072 return { 12073 meta: {}, 12074 valid: /^\d{7,8}$/.test(e) 12075 }; 12076 } 12077 function t$Q(t, r) { 12078 if (!/^\d{13}$/.test(t)) { 12079 return false; 12080 } 12081 var e = parseInt(t.substr(0, 2), 10); 12082 var s = parseInt(t.substr(2, 2), 10); 12083 var n = parseInt(t.substr(7, 2), 10); 12084 var a = parseInt(t.substr(12, 1), 10); 12085 if (e > 31 || s > 12) { 12086 return false; 12087 } 12088 var u = 0; 12089 for (var _r = 0; _r < 6; _r++) { 12090 u += (7 - _r) * (parseInt(t.charAt(_r), 10) + parseInt(t.charAt(_r + 6), 10)); 12091 } 12092 u = 11 - u % 11; 12093 if (u === 10 || u === 11) { 12094 u = 0; 12095 } 12096 if (u !== a) { 12097 return false; 12098 } 12099 switch (r.toUpperCase()) { 12100 case "BA": 12101 return 10 <= n && n <= 19; 12102 case "MK": 12103 return 41 <= n && n <= 49; 12104 case "ME": 12105 return 20 <= n && n <= 29; 12106 case "RS": 12107 return 70 <= n && n <= 99; 12108 case "SI": 12109 return 50 <= n && n <= 59; 12110 default: 12111 return true; 12112 } 12113 } 12114 function r$a(r) { 12115 return { 12116 meta: {}, 12117 valid: t$Q(r, "BA") 12118 }; 12119 } 12120 function e$x(e) { 12121 if (!/^\d{10}$/.test(e) && !/^\d{6}\s\d{3}\s\d{1}$/.test(e)) { 12122 return { 12123 meta: {}, 12124 valid: false 12125 }; 12126 } 12127 var s = e.replace(/\s/g, ""); 12128 var r = parseInt(s.substr(0, 2), 10) + 1900; 12129 var a = parseInt(s.substr(2, 2), 10); 12130 var l = parseInt(s.substr(4, 2), 10); 12131 if (a > 40) { 12132 r += 100; 12133 a -= 40; 12134 } else if (a > 20) { 12135 r -= 100; 12136 a -= 20; 12137 } 12138 if (!t$Y(r, a, l)) { 12139 return { 12140 meta: {}, 12141 valid: false 12142 }; 12143 } 12144 var i = 0; 12145 var n = [2, 4, 8, 5, 10, 9, 7, 3, 6]; 12146 for (var _t = 0; _t < 9; _t++) { 12147 i += parseInt(s.charAt(_t), 10) * n[_t]; 12148 } 12149 i = i % 11 % 10; 12150 return { 12151 meta: {}, 12152 valid: "".concat(i) === s.substr(9, 1) 12153 }; 12154 } 12155 function t$P(t) { 12156 var e = t.replace(/\D/g, ""); 12157 if (!/^\d{11}$/.test(e) || /^1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11}|0{11}$/.test(e)) { 12158 return { 12159 meta: {}, 12160 valid: false 12161 }; 12162 } 12163 var a = 0; 12164 var r; 12165 for (r = 0; r < 9; r++) { 12166 a += (10 - r) * parseInt(e.charAt(r), 10); 12167 } 12168 a = 11 - a % 11; 12169 if (a === 10 || a === 11) { 12170 a = 0; 12171 } 12172 if ("".concat(a) !== e.charAt(9)) { 12173 return { 12174 meta: {}, 12175 valid: false 12176 }; 12177 } 12178 var f = 0; 12179 for (r = 0; r < 10; r++) { 12180 f += (11 - r) * parseInt(e.charAt(r), 10); 12181 } 12182 f = 11 - f % 11; 12183 if (f === 10 || f === 11) { 12184 f = 0; 12185 } 12186 return { 12187 meta: {}, 12188 valid: "".concat(f) === e.charAt(10) 12189 }; 12190 } 12191 function t$O(t) { 12192 if (!/^756[.]{0,1}[0-9]{4}[.]{0,1}[0-9]{4}[.]{0,1}[0-9]{2}$/.test(t)) { 12193 return { 12194 meta: {}, 12195 valid: false 12196 }; 12197 } 12198 var e = t.replace(/\D/g, "").substr(3); 12199 var r = e.length; 12200 var a = r === 8 ? [3, 1] : [1, 3]; 12201 var n = 0; 12202 for (var _t = 0; _t < r - 1; _t++) { 12203 n += parseInt(e.charAt(_t), 10) * a[_t % 2]; 12204 } 12205 n = 10 - n % 10; 12206 return { 12207 meta: {}, 12208 valid: "".concat(n) === e.charAt(r - 1) 12209 }; 12210 } 12211 function e$w(e) { 12212 if (!/^\d{7,8}[-]{0,1}[0-9K]$/i.test(e)) { 12213 return { 12214 meta: {}, 12215 valid: false 12216 }; 12217 } 12218 var t = e.replace(/-/g, ""); 12219 while (t.length < 9) { 12220 t = "0".concat(t); 12221 } 12222 var l = [3, 2, 7, 6, 5, 4, 3, 2]; 12223 var a = 0; 12224 for (var _e = 0; _e < 8; _e++) { 12225 a += parseInt(t.charAt(_e), 10) * l[_e]; 12226 } 12227 a = 11 - a % 11; 12228 var r = "".concat(a); 12229 if (a === 11) { 12230 r = "0"; 12231 } else if (a === 10) { 12232 r = "K"; 12233 } 12234 return { 12235 meta: {}, 12236 valid: r === t.charAt(8).toUpperCase() 12237 }; 12238 } 12239 function r$9(r) { 12240 var s = r.trim(); 12241 if (!/^\d{15}$/.test(s) && !/^\d{17}[\dXx]{1}$/.test(s)) { 12242 return { 12243 meta: {}, 12244 valid: false 12245 }; 12246 } 12247 var e = { 12248 11: { 12249 0: [0], 12250 1: [[0, 9], [11, 17]], 12251 2: [0, 28, 29] 12252 }, 12253 12: { 12254 0: [0], 12255 1: [[0, 16]], 12256 2: [0, 21, 23, 25] 12257 }, 12258 13: { 12259 0: [0], 12260 1: [[0, 5], 7, 8, 21, [23, 33], [81, 85]], 12261 2: [[0, 5], [7, 9], [23, 25], 27, 29, 30, 81, 83], 12262 3: [[0, 4], [21, 24]], 12263 4: [[0, 4], 6, 21, [23, 35], 81], 12264 5: [[0, 3], [21, 35], 81, 82], 12265 6: [[0, 4], [21, 38], [81, 84]], 12266 7: [[0, 3], 5, 6, [21, 33]], 12267 8: [[0, 4], [21, 28]], 12268 9: [[0, 3], [21, 30], [81, 84]], 12269 10: [[0, 3], [22, 26], 28, 81, 82], 12270 11: [[0, 2], [21, 28], 81, 82] 12271 }, 12272 14: { 12273 0: [0], 12274 1: [0, 1, [5, 10], [21, 23], 81], 12275 2: [[0, 3], 11, 12, [21, 27]], 12276 3: [[0, 3], 11, 21, 22], 12277 4: [[0, 2], 11, 21, [23, 31], 81], 12278 5: [[0, 2], 21, 22, 24, 25, 81], 12279 6: [[0, 3], [21, 24]], 12280 7: [[0, 2], [21, 29], 81], 12281 8: [[0, 2], [21, 30], 81, 82], 12282 9: [[0, 2], [21, 32], 81], 12283 10: [[0, 2], [21, 34], 81, 82], 12284 11: [[0, 2], [21, 30], 81, 82], 12285 23: [[0, 3], 22, 23, [25, 30], 32, 33] 12286 }, 12287 15: { 12288 0: [0], 12289 1: [[0, 5], [21, 25]], 12290 2: [[0, 7], [21, 23]], 12291 3: [[0, 4]], 12292 4: [[0, 4], [21, 26], [28, 30]], 12293 5: [[0, 2], [21, 26], 81], 12294 6: [[0, 2], [21, 27]], 12295 7: [[0, 3], [21, 27], [81, 85]], 12296 8: [[0, 2], [21, 26]], 12297 9: [[0, 2], [21, 29], 81], 12298 22: [[0, 2], [21, 24]], 12299 25: [[0, 2], [22, 31]], 12300 26: [[0, 2], [24, 27], [29, 32], 34], 12301 28: [0, 1, [22, 27]], 12302 29: [0, [21, 23]] 12303 }, 12304 21: { 12305 0: [0], 12306 1: [[0, 6], [11, 14], [22, 24], 81], 12307 2: [[0, 4], [11, 13], 24, [81, 83]], 12308 3: [[0, 4], 11, 21, 23, 81], 12309 4: [[0, 4], 11, [21, 23]], 12310 5: [[0, 5], 21, 22], 12311 6: [[0, 4], 24, 81, 82], 12312 7: [[0, 3], 11, 26, 27, 81, 82], 12313 8: [[0, 4], 11, 81, 82], 12314 9: [[0, 5], 11, 21, 22], 12315 10: [[0, 5], 11, 21, 81], 12316 11: [[0, 3], 21, 22], 12317 12: [[0, 2], 4, 21, 23, 24, 81, 82], 12318 13: [[0, 3], 21, 22, 24, 81, 82], 12319 14: [[0, 4], 21, 22, 81] 12320 }, 12321 22: { 12322 0: [0], 12323 1: [[0, 6], 12, 22, [81, 83]], 12324 2: [[0, 4], 11, 21, [81, 84]], 12325 3: [[0, 3], 22, 23, 81, 82], 12326 4: [[0, 3], 21, 22], 12327 5: [[0, 3], 21, 23, 24, 81, 82], 12328 6: [[0, 2], 4, 5, [21, 23], 25, 81], 12329 7: [[0, 2], [21, 24], 81], 12330 8: [[0, 2], 21, 22, 81, 82], 12331 24: [[0, 6], 24, 26] 12332 }, 12333 23: { 12334 0: [0], 12335 1: [[0, 12], 21, [23, 29], [81, 84]], 12336 2: [[0, 8], 21, [23, 25], 27, [29, 31], 81], 12337 3: [[0, 7], 21, 81, 82], 12338 4: [[0, 7], 21, 22], 12339 5: [[0, 3], 5, 6, [21, 24]], 12340 6: [[0, 6], [21, 24]], 12341 7: [[0, 16], 22, 81], 12342 8: [[0, 5], 11, 22, 26, 28, 33, 81, 82], 12343 9: [[0, 4], 21], 12344 10: [[0, 5], 24, 25, 81, [83, 85]], 12345 11: [[0, 2], 21, 23, 24, 81, 82], 12346 12: [[0, 2], [21, 26], [81, 83]], 12347 27: [[0, 4], [21, 23]] 12348 }, 12349 31: { 12350 0: [0], 12351 1: [0, 1, [3, 10], [12, 20]], 12352 2: [0, 30] 12353 }, 12354 32: { 12355 0: [0], 12356 1: [[0, 7], 11, [13, 18], 24, 25], 12357 2: [[0, 6], 11, 81, 82], 12358 3: [[0, 5], 11, 12, [21, 24], 81, 82], 12359 4: [[0, 2], 4, 5, 11, 12, 81, 82], 12360 5: [[0, 9], [81, 85]], 12361 6: [[0, 2], 11, 12, 21, 23, [81, 84]], 12362 7: [0, 1, 3, 5, 6, [21, 24]], 12363 8: [[0, 4], 11, 26, [29, 31]], 12364 9: [[0, 3], [21, 25], 28, 81, 82], 12365 10: [[0, 3], 11, 12, 23, 81, 84, 88], 12366 11: [[0, 2], 11, 12, [81, 83]], 12367 12: [[0, 4], [81, 84]], 12368 13: [[0, 2], 11, [21, 24]] 12369 }, 12370 33: { 12371 0: [0], 12372 1: [[0, 6], [8, 10], 22, 27, 82, 83, 85], 12373 2: [0, 1, [3, 6], 11, 12, 25, 26, [81, 83]], 12374 3: [[0, 4], 22, 24, [26, 29], 81, 82], 12375 4: [[0, 2], 11, 21, 24, [81, 83]], 12376 5: [[0, 3], [21, 23]], 12377 6: [[0, 2], 21, 24, [81, 83]], 12378 7: [[0, 3], 23, 26, 27, [81, 84]], 12379 8: [[0, 3], 22, 24, 25, 81], 12380 9: [[0, 3], 21, 22], 12381 10: [[0, 4], [21, 24], 81, 82], 12382 11: [[0, 2], [21, 27], 81] 12383 }, 12384 34: { 12385 0: [0], 12386 1: [[0, 4], 11, [21, 24], 81], 12387 2: [[0, 4], 7, 8, [21, 23], 25], 12388 3: [[0, 4], 11, [21, 23]], 12389 4: [[0, 6], 21], 12390 5: [[0, 4], 6, [21, 23]], 12391 6: [[0, 4], 21], 12392 7: [[0, 3], 11, 21], 12393 8: [[0, 3], 11, [22, 28], 81], 12394 10: [[0, 4], [21, 24]], 12395 11: [[0, 3], 22, [24, 26], 81, 82], 12396 12: [[0, 4], 21, 22, 25, 26, 82], 12397 13: [[0, 2], [21, 24]], 12398 14: [[0, 2], [21, 24]], 12399 15: [[0, 3], [21, 25]], 12400 16: [[0, 2], [21, 23]], 12401 17: [[0, 2], [21, 23]], 12402 18: [[0, 2], [21, 25], 81] 12403 }, 12404 35: { 12405 0: [0], 12406 1: [[0, 5], 11, [21, 25], 28, 81, 82], 12407 2: [[0, 6], [11, 13]], 12408 3: [[0, 5], 22], 12409 4: [[0, 3], 21, [23, 30], 81], 12410 5: [[0, 5], 21, [24, 27], [81, 83]], 12411 6: [[0, 3], [22, 29], 81], 12412 7: [[0, 2], [21, 25], [81, 84]], 12413 8: [[0, 2], [21, 25], 81], 12414 9: [[0, 2], [21, 26], 81, 82] 12415 }, 12416 36: { 12417 0: [0], 12418 1: [[0, 5], 11, [21, 24]], 12419 2: [[0, 3], 22, 81], 12420 3: [[0, 2], 13, [21, 23]], 12421 4: [[0, 3], 21, [23, 30], 81, 82], 12422 5: [[0, 2], 21], 12423 6: [[0, 2], 22, 81], 12424 7: [[0, 2], [21, 35], 81, 82], 12425 8: [[0, 3], [21, 30], 81], 12426 9: [[0, 2], [21, 26], [81, 83]], 12427 10: [[0, 2], [21, 30]], 12428 11: [[0, 2], [21, 30], 81] 12429 }, 12430 37: { 12431 0: [0], 12432 1: [[0, 5], 12, 13, [24, 26], 81], 12433 2: [[0, 3], 5, [11, 14], [81, 85]], 12434 3: [[0, 6], [21, 23]], 12435 4: [[0, 6], 81], 12436 5: [[0, 3], [21, 23]], 12437 6: [[0, 2], [11, 13], 34, [81, 87]], 12438 7: [[0, 5], 24, 25, [81, 86]], 12439 8: [[0, 2], 11, [26, 32], [81, 83]], 12440 9: [[0, 3], 11, 21, 23, 82, 83], 12441 10: [[0, 2], [81, 83]], 12442 11: [[0, 3], 21, 22], 12443 12: [[0, 3]], 12444 13: [[0, 2], 11, 12, [21, 29]], 12445 14: [[0, 2], [21, 28], 81, 82], 12446 15: [[0, 2], [21, 26], 81], 12447 16: [[0, 2], [21, 26]], 12448 17: [[0, 2], [21, 28]] 12449 }, 12450 41: { 12451 0: [0], 12452 1: [[0, 6], 8, 22, [81, 85]], 12453 2: [[0, 5], 11, [21, 25]], 12454 3: [[0, 7], 11, [22, 29], 81], 12455 4: [[0, 4], 11, [21, 23], 25, 81, 82], 12456 5: [[0, 3], 5, 6, 22, 23, 26, 27, 81], 12457 6: [[0, 3], 11, 21, 22], 12458 7: [[0, 4], 11, 21, [24, 28], 81, 82], 12459 8: [[0, 4], 11, [21, 23], 25, [81, 83]], 12460 9: [[0, 2], 22, 23, [26, 28]], 12461 10: [[0, 2], [23, 25], 81, 82], 12462 11: [[0, 4], [21, 23]], 12463 12: [[0, 2], 21, 22, 24, 81, 82], 12464 13: [[0, 3], [21, 30], 81], 12465 14: [[0, 3], [21, 26], 81], 12466 15: [[0, 3], [21, 28]], 12467 16: [[0, 2], [21, 28], 81], 12468 17: [[0, 2], [21, 29]], 12469 90: [0, 1] 12470 }, 12471 42: { 12472 0: [0], 12473 1: [[0, 7], [11, 17]], 12474 2: [[0, 5], 22, 81], 12475 3: [[0, 3], [21, 25], 81], 12476 5: [[0, 6], [25, 29], [81, 83]], 12477 6: [[0, 2], 6, 7, [24, 26], [82, 84]], 12478 7: [[0, 4]], 12479 8: [[0, 2], 4, 21, 22, 81], 12480 9: [[0, 2], [21, 23], 81, 82, 84], 12481 10: [[0, 3], [22, 24], 81, 83, 87], 12482 11: [[0, 2], [21, 27], 81, 82], 12483 12: [[0, 2], [21, 24], 81], 12484 13: [[0, 3], 21, 81], 12485 28: [[0, 2], 22, 23, [25, 28]], 12486 90: [0, [4, 6], 21] 12487 }, 12488 43: { 12489 0: [0], 12490 1: [[0, 5], 11, 12, 21, 22, 24, 81], 12491 2: [[0, 4], 11, 21, [23, 25], 81], 12492 3: [[0, 2], 4, 21, 81, 82], 12493 4: [0, 1, [5, 8], 12, [21, 24], 26, 81, 82], 12494 5: [[0, 3], 11, [21, 25], [27, 29], 81], 12495 6: [[0, 3], 11, 21, 23, 24, 26, 81, 82], 12496 7: [[0, 3], [21, 26], 81], 12497 8: [[0, 2], 11, 21, 22], 12498 9: [[0, 3], [21, 23], 81], 12499 10: [[0, 3], [21, 28], 81], 12500 11: [[0, 3], [21, 29]], 12501 12: [[0, 2], [21, 30], 81], 12502 13: [[0, 2], 21, 22, 81, 82], 12503 31: [0, 1, [22, 27], 30] 12504 }, 12505 44: { 12506 0: [0], 12507 1: [[0, 7], [11, 16], 83, 84], 12508 2: [[0, 5], 21, 22, 24, 29, 32, 33, 81, 82], 12509 3: [0, 1, [3, 8]], 12510 4: [[0, 4]], 12511 5: [0, 1, [6, 15], 23, 82, 83], 12512 6: [0, 1, [4, 8]], 12513 7: [0, 1, [3, 5], 81, [83, 85]], 12514 8: [[0, 4], 11, 23, 25, [81, 83]], 12515 9: [[0, 3], 23, [81, 83]], 12516 12: [[0, 3], [23, 26], 83, 84], 12517 13: [[0, 3], [22, 24], 81], 12518 14: [[0, 2], [21, 24], 26, 27, 81], 12519 15: [[0, 2], 21, 23, 81], 12520 16: [[0, 2], [21, 25]], 12521 17: [[0, 2], 21, 23, 81], 12522 18: [[0, 3], 21, 23, [25, 27], 81, 82], 12523 19: [0], 12524 20: [0], 12525 51: [[0, 3], 21, 22], 12526 52: [[0, 3], 21, 22, 24, 81], 12527 53: [[0, 2], [21, 23], 81] 12528 }, 12529 45: { 12530 0: [0], 12531 1: [[0, 9], [21, 27]], 12532 2: [[0, 5], [21, 26]], 12533 3: [[0, 5], 11, 12, [21, 32]], 12534 4: [0, 1, [3, 6], 11, [21, 23], 81], 12535 5: [[0, 3], 12, 21], 12536 6: [[0, 3], 21, 81], 12537 7: [[0, 3], 21, 22], 12538 8: [[0, 4], 21, 81], 12539 9: [[0, 3], [21, 24], 81], 12540 10: [[0, 2], [21, 31]], 12541 11: [[0, 2], [21, 23]], 12542 12: [[0, 2], [21, 29], 81], 12543 13: [[0, 2], [21, 24], 81], 12544 14: [[0, 2], [21, 25], 81] 12545 }, 12546 46: { 12547 0: [0], 12548 1: [0, 1, [5, 8]], 12549 2: [0, 1], 12550 3: [0, [21, 23]], 12551 90: [[0, 3], [5, 7], [21, 39]] 12552 }, 12553 50: { 12554 0: [0], 12555 1: [[0, 19]], 12556 2: [0, [22, 38], [40, 43]], 12557 3: [0, [81, 84]] 12558 }, 12559 51: { 12560 0: [0], 12561 1: [0, 1, [4, 8], [12, 15], [21, 24], 29, 31, 32, [81, 84]], 12562 3: [[0, 4], 11, 21, 22], 12563 4: [[0, 3], 11, 21, 22], 12564 5: [[0, 4], 21, 22, 24, 25], 12565 6: [0, 1, 3, 23, 26, [81, 83]], 12566 7: [0, 1, 3, 4, [22, 27], 81], 12567 8: [[0, 2], 11, 12, [21, 24]], 12568 9: [[0, 4], [21, 23]], 12569 10: [[0, 2], 11, 24, 25, 28], 12570 11: [[0, 2], [11, 13], 23, 24, 26, 29, 32, 33, 81], 12571 13: [[0, 4], [21, 25], 81], 12572 14: [[0, 2], [21, 25]], 12573 15: [[0, 3], [21, 29]], 12574 16: [[0, 3], [21, 23], 81], 12575 17: [[0, 3], [21, 25], 81], 12576 18: [[0, 3], [21, 27]], 12577 19: [[0, 3], [21, 23]], 12578 20: [[0, 2], 21, 22, 81], 12579 32: [0, [21, 33]], 12580 33: [0, [21, 38]], 12581 34: [0, 1, [22, 37]] 12582 }, 12583 52: { 12584 0: [0], 12585 1: [[0, 3], [11, 15], [21, 23], 81], 12586 2: [0, 1, 3, 21, 22], 12587 3: [[0, 3], [21, 30], 81, 82], 12588 4: [[0, 2], [21, 25]], 12589 5: [[0, 2], [21, 27]], 12590 6: [[0, 3], [21, 28]], 12591 22: [0, 1, [22, 30]], 12592 23: [0, 1, [22, 28]], 12593 24: [0, 1, [22, 28]], 12594 26: [0, 1, [22, 36]], 12595 27: [[0, 2], 22, 23, [25, 32]] 12596 }, 12597 53: { 12598 0: [0], 12599 1: [[0, 3], [11, 14], 21, 22, [24, 29], 81], 12600 3: [[0, 2], [21, 26], 28, 81], 12601 4: [[0, 2], [21, 28]], 12602 5: [[0, 2], [21, 24]], 12603 6: [[0, 2], [21, 30]], 12604 7: [[0, 2], [21, 24]], 12605 8: [[0, 2], [21, 29]], 12606 9: [[0, 2], [21, 27]], 12607 23: [0, 1, [22, 29], 31], 12608 25: [[0, 4], [22, 32]], 12609 26: [0, 1, [21, 28]], 12610 27: [0, 1, [22, 30]], 12611 28: [0, 1, 22, 23], 12612 29: [0, 1, [22, 32]], 12613 31: [0, 2, 3, [22, 24]], 12614 34: [0, [21, 23]], 12615 33: [0, 21, [23, 25]], 12616
1261635: [0, [21, 28]] 12617 }, 12618 54: { 12619 0: [0], 12620 1: [[0, 2], [21, 27]], 12621 21: [0, [21, 29], 32, 33], 12622 22: [0, [21, 29], [31, 33]], 12623 23: [0, 1, [22, 38]], 12624 24: [0, [21, 31]], 12625 25: [0, [21, 27]], 12626 26: [0, [21, 27]] 12627 }, 12628 61: { 12629 0: [0], 12630 1: [[0, 4], [11, 16], 22, [24, 26]], 12631 2: [[0, 4], 22], 12632 3: [[0, 4], [21, 24], [26, 31]], 12633 4: [[0, 4], [22, 31], 81], 12634 5: [[0, 2], [21, 28], 81, 82], 12635 6: [[0, 2], [21, 32]], 12636 7: [[0, 2], [21, 30]], 12637 8: [[0, 2], [21, 31]], 12638 9: [[0, 2], [21, 29]], 12639 10: [[0, 2], [21, 26]] 12640 }, 12641 62: { 12642 0: [0], 12643 1: [[0, 5], 11, [21, 23]], 12644 2: [0, 1], 12645 3: [[0, 2], 21], 12646 4: [[0, 3], [21, 23]], 12647 5: [[0, 3], [21, 25]], 12648 6: [[0, 2], [21, 23]], 12649 7: [[0, 2], [21, 25]], 12650 8: [[0, 2], [21, 26]], 12651 9: [[0, 2], [21, 24], 81, 82], 12652 10: [[0, 2], [21, 27]], 12653 11: [[0, 2], [21, 26]], 12654 12: [[0, 2], [21, 28]], 12655 24: [0, 21, [24, 29]], 12656 26: [0, 21, [23, 30]], 12657 29: [0, 1, [21, 27]], 12658 30: [0, 1, [21, 27]] 12659 }, 12660 63: { 12661 0: [0], 12662 1: [[0, 5], [21, 23]], 12663 2: [0, 2, [21, 25]], 12664 21: [0, [21, 23], [26, 28]], 12665 22: [0, [21, 24]], 12666 23: [0, [21, 24]], 12667 25: [0, [21, 25]], 12668 26: [0, [21, 26]], 12669 27: [0, 1, [21, 26]], 12670 28: [[0, 2], [21, 23]] 12671 }, 12672 64: { 12673 0: [0], 12674 1: [0, 1, [4, 6], 21, 22, 81], 12675 2: [[0, 3], 5, [21, 23]], 12676 3: [[0, 3], [21, 24], 81], 12677 4: [[0, 2], [21, 25]], 12678 5: [[0, 2], 21, 22] 12679 }, 12680 65: { 12681 0: [0], 12682 1: [[0, 9], 21], 12683 2: [[0, 5]], 12684 21: [0, 1, 22, 23], 12685 22: [0, 1, 22, 23], 12686 23: [[0, 3], [23, 25], 27, 28], 12687 28: [0, 1, [22, 29]], 12688 29: [0, 1, [22, 29]], 12689 30: [0, 1, [22, 24]], 12690 31: [0, 1, [21, 31]], 12691 32: [0, 1, [21, 27]], 12692 40: [0, 2, 3, [21, 28]], 12693 42: [[0, 2], 21, [23, 26]], 12694 43: [0, 1, [21, 26]], 12695 90: [[0, 4]], 12696 27: [[0, 2], 22, 23] 12697 }, 12698 71: { 12699 0: [0] 12700 }, 12701 81: { 12702 0: [0] 12703 }, 12704 82: { 12705 0: [0] 12706 } 12707 }; 12708 var a = parseInt(s.substr(0, 2), 10); 12709 var n = parseInt(s.substr(2, 2), 10); 12710 var l = parseInt(s.substr(4, 2), 10); 12711 if (!e[a] || !e[a][n]) { 12712 return { 12713 meta: {}, 12714 valid: false 12715 }; 12716 } 12717 var i = false; 12718 var u = e[a][n]; 12719 var o; 12720 for (o = 0; o < u.length; o++) { 12721 if (Array.isArray(u[o]) && u[o][0] <= l && l <= u[o][1] || !Array.isArray(u[o]) && l === u[o]) { 12722 i = true; 12723 break; 12724 } 12725 } 12726 if (!i) { 12727 return { 12728 meta: {}, 12729 valid: false 12730 }; 12731 } 12732 var f; 12733 if (s.length === 18) { 12734 f = s.substr(6, 8); 12735 } else { 12736 f = "19".concat(s.substr(6, 6)); 12737 } 12738 var c = parseInt(f.substr(0, 4), 10); 12739 var p = parseInt(f.substr(4, 2), 10); 12740 var d = parseInt(f.substr(6, 2), 10); 12741 if (!t$Y(c, p, d)) { 12742 return { 12743 meta: {}, 12744 valid: false 12745 }; 12746 } 12747 if (s.length === 18) { 12748 var _t = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; 12749 var _r = 0; 12750 for (o = 0; o < 17; o++) { 12751 _r += parseInt(s.charAt(o), 10) * _t[o]; 12752 } 12753 _r = (12 - _r % 11) % 11; 12754 var _e = s.charAt(17).toUpperCase() !== "X" ? parseInt(s.charAt(17), 10) : 10; 12755 return { 12756 meta: {}, 12757 valid: _e === _r 12758 }; 12759 } 12760 return { 12761 meta: {}, 12762 valid: true 12763 }; 12764 } 12765 function t$N(t) { 12766 var e = t.replace(/\./g, "").replace("-", ""); 12767 if (!/^\d{8,16}$/.test(e)) { 12768 return { 12769 meta: {}, 12770 valid: false 12771 }; 12772 } 12773 var r = e.length; 12774 var a = [3, 7, 13, 17, 19, 23, 29, 37, 41, 43, 47, 53, 59, 67, 71]; 12775 var l = 0; 12776 for (var _t = r - 2; _t >= 0; _t--) { 12777 l += parseInt(e.charAt(_t), 10) * a[_t]; 12778 } 12779 l = l % 11; 12780 if (l >= 2) { 12781 l = 11 - l; 12782 } 12783 return { 12784 meta: {}, 12785 valid: "".concat(l) === e.substr(r - 1) 12786 }; 12787 } 12788 function e$v(e) { 12789 if (!/^\d{9,10}$/.test(e)) { 12790 return { 12791 meta: {}, 12792 valid: false 12793 }; 12794 } 12795 var r = 1900 + parseInt(e.substr(0, 2), 10); 12796 var s = parseInt(e.substr(2, 2), 10) % 50 % 20; 12797 var a = parseInt(e.substr(4, 2), 10); 12798 if (e.length === 9) { 12799 if (r >= 1980) { 12800 r -= 100; 12801 } 12802 if (r > 1953) { 12803 return { 12804 meta: {}, 12805 valid: false 12806 }; 12807 } 12808 } else if (r < 1954) { 12809 r += 100; 12810 } 12811 if (!t$Y(r, s, a)) { 12812 return { 12813 meta: {}, 12814 valid: false 12815 }; 12816 } 12817 if (e.length === 10) { 12818 var _t = parseInt(e.substr(0, 9), 10) % 11; 12819 if (r < 1985) { 12820 _t = _t % 10; 12821 } 12822 return { 12823 meta: {}, 12824 valid: "".concat(_t) === e.substr(9, 1) 12825 }; 12826 } 12827 return { 12828 meta: {}, 12829 valid: true 12830 }; 12831 } 12832 function e$u(e) { 12833 if (!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(e)) { 12834 return { 12835 meta: {}, 12836 valid: false 12837 }; 12838 } 12839 var a = e.replace(/-/g, ""); 12840 var r = parseInt(a.substr(0, 2), 10); 12841 var s = parseInt(a.substr(2, 2), 10); 12842 var n = parseInt(a.substr(4, 2), 10); 12843 switch (true) { 12844 case "5678".indexOf(a.charAt(6)) !== -1 && n >= 58: 12845 n += 1800; 12846 break; 12847 case "0123".indexOf(a.charAt(6)) !== -1: 12848 case "49".indexOf(a.charAt(6)) !== -1 && n >= 37: 12849 n += 1900; 12850 break; 12851 default: 12852 n += 2e3; 12853 break; 12854 } 12855 return { 12856 meta: {}, 12857 valid: t$Y(n, s, r) 12858 }; 12859 } 12860 function t$M(t) { 12861 var e = /^[0-9]{8}[-]{0,1}[A-HJ-NP-TV-Z]$/.test(t); 12862 var s = /^[XYZ][-]{0,1}[0-9]{7}[-]{0,1}[A-HJ-NP-TV-Z]$/.test(t); 12863 var n = /^[A-HNPQS][-]{0,1}[0-9]{7}[-]{0,1}[0-9A-J]$/.test(t); 12864 if (!e && !s && !n) { 12865 return { 12866 meta: {}, 12867 valid: false 12868 }; 12869 } 12870 var r = t.replace(/-/g, ""); 12871 var l; 12872 var a; 12873 var f = true; 12874 if (e || s) { 12875 a = "DNI"; 12876 var _t = "XYZ".indexOf(r.charAt(0)); 12877 if (_t !== -1) { 12878 r = _t + r.substr(1) + ""; 12879 a = "NIE"; 12880 } 12881 l = parseInt(r.substr(0, 8), 10); 12882 l = "TRWAGMYFPDXBNJZSQVHLCKE"[l % 23]; 12883 return { 12884 meta: { 12885 type: a 12886 }, 12887 valid: l === r.substr(8, 1) 12888 }; 12889 } else { 12890 l = r.substr(1, 7); 12891 a = "CIF"; 12892 var _t2 = r[0]; 12893 var _e = r.substr(-1); 12894 var _s = 0; 12895 for (var _t3 = 0; _t3 < l.length; _t3++) { 12896 if (_t3 % 2 !== 0) { 12897 _s += parseInt(l[_t3], 10); 12898 } else { 12899 var _e2 = "" + parseInt(l[_t3], 10) * 2; 12900 _s += parseInt(_e2[0], 10); 12901 if (_e2.length === 2) { 12902 _s += parseInt(_e2[1], 10); 12903 } 12904 } 12905 } 12906 var _n = _s - Math.floor(_s / 10) * 10; 12907 if (_n !== 0) { 12908 _n = 10 - _n; 12909 } 12910 if ("KQS".indexOf(_t2) !== -1) { 12911 f = _e === "JABCDEFGHI"[_n]; 12912 } else if ("ABEH".indexOf(_t2) !== -1) { 12913 f = _e === "" + _n; 12914 } else { 12915 f = _e === "" + _n || _e === "JABCDEFGHI"[_n]; 12916 } 12917 return { 12918 meta: { 12919 type: a 12920 }, 12921 valid: f 12922 }; 12923 } 12924 } 12925 function s$7(s) { 12926 if (!/^[0-9]{6}[-+A][0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/.test(s)) { 12927 return { 12928 meta: {}, 12929 valid: false 12930 }; 12931 } 12932 var r = parseInt(s.substr(0, 2), 10); 12933 var a = parseInt(s.substr(2, 2), 10); 12934 var e = parseInt(s.substr(4, 2), 10); 12935 var n = { 12936 "+": 1800, 12937 "-": 1900, 12938 A: 2e3 12939 }; 12940 e = n[s.charAt(6)] + e; 12941 if (!t$Y(e, a, r)) { 12942 return { 12943 meta: {}, 12944 valid: false 12945 }; 12946 } 12947 var u = parseInt(s.substr(7, 3), 10); 12948 if (u < 2) { 12949 return { 12950 meta: {}, 12951 valid: false 12952 }; 12953 } 12954 var i = parseInt(s.substr(0, 6) + s.substr(7, 3) + "", 10); 12955 return { 12956 meta: {}, 12957 valid: "0123456789ABCDEFHJKLMNPRSTUVWXY".charAt(i % 31) === s.charAt(10) 12958 }; 12959 } 12960 function t$L(t) { 12961 var s = t.toUpperCase(); 12962 if (!/^(1|2)\d{2}\d{2}(\d{2}|\d[A-Z]|\d{3})\d{2,3}\d{3}\d{2}$/.test(s)) { 12963 return { 12964 meta: {}, 12965 valid: false 12966 }; 12967 } 12968 var e = s.substr(5, 2); 12969 switch (true) { 12970 case /^\d{2}$/.test(e): 12971 s = t; 12972 break; 12973 case e === "2A": 12974 s = "".concat(t.substr(0, 5), "19").concat(t.substr(7)); 12975 break; 12976 case e === "2B": 12977 s = "".concat(t.substr(0, 5), "18").concat(t.substr(7)); 12978 break; 12979 default: 12980 return { 12981 meta: {}, 12982 valid: false 12983 }; 12984 } 12985 var r = 97 - parseInt(s.substr(0, 13), 10) % 97; 12986 var a = r < 10 ? "0".concat(r) : "".concat(r); 12987 return { 12988 meta: {}, 12989 valid: a === s.substr(13) 12990 }; 12991 } 12992 function t$K(t) { 12993 var e = t.toUpperCase(); 12994 if (!/^[A-MP-Z]{1,2}[0-9]{6}[0-9A]$/.test(e)) { 12995 return { 12996 meta: {}, 12997 valid: false 12998 }; 12999 } 13000 var s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 13001 var n = e.charAt(0); 13002 var r = e.charAt(1); 13003 var a = 0; 13004 var c = e; 13005 if (/^[A-Z]$/.test(r)) { 13006 a += 9 * (10 + s.indexOf(n)); 13007 a += 8 * (10 + s.indexOf(r)); 13008 c = e.substr(2); 13009 } else { 13010 a += 9 * 36; 13011 a += 8 * (10 + s.indexOf(n)); 13012 c = e.substr(1); 13013 } 13014 var o = c.length; 13015 for (var _t = 0; _t < o - 1; _t++) { 13016 a += (7 - _t) * parseInt(c.charAt(_t), 10); 13017 } 13018 var f = a % 11; 13019 var l = f === 0 ? "0" : 11 - f === 10 ? "A" : "".concat(11 - f); 13020 return { 13021 meta: {}, 13022 valid: l === c.charAt(o - 1) 13023 }; 13024 } 13025 function o$1(o) { 13026 return { 13027 meta: {}, 13028 valid: /^[0-9]{11}$/.test(o) && t$14(o) 13029 }; 13030 } 13031 function e$t(e) { 13032 if (!/^[2-9]\d{11}$/.test(e)) { 13033 return { 13034 meta: {}, 13035 valid: false 13036 }; 13037 } 13038 var r = e.split("").map(function (t) { 13039 return parseInt(t, 10); 13040 }); 13041 return { 13042 meta: {}, 13043 valid: t$12(r) 13044 }; 13045 } 13046 function t$J(t) { 13047 if (!/^\d{7}[A-W][AHWTX]?$/.test(t)) { 13048 return { 13049 meta: {}, 13050 valid: false 13051 }; 13052 } 13053 var r = function r(t) { 13054 var r = t; 13055 while (r.length < 7) { 13056 r = "0".concat(r); 13057 } 13058 var e = "WABCDEFGHIJKLMNOPQRSTUV"; 13059 var s = 0; 13060 for (var _t = 0; _t < 7; _t++) { 13061 s += parseInt(r.charAt(_t), 10) * (8 - _t); 13062 } 13063 s += 9 * e.indexOf(r.substr(7)); 13064 return e[s % 23]; 13065 }; 13066 var e = t.length === 9 && ("A" === t.charAt(8) || "H" === t.charAt(8)) ? t.charAt(7) === r(t.substr(0, 7) + t.substr(8) + "") : t.charAt(7) === r(t.substr(0, 7)); 13067 return { 13068 meta: {}, 13069 valid: e 13070 }; 13071 } 13072 function e$s(e) { 13073 if (!/^\d{1,9}$/.test(e)) { 13074 return { 13075 meta: {}, 13076 valid: false 13077 }; 13078 } 13079 return { 13080 meta: {}, 13081 valid: t$15(e) 13082 }; 13083 } 13084 function e$r(e) { 13085 if (!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(e)) { 13086 return { 13087 meta: {}, 13088 valid: false 13089 }; 13090 } 13091 var r = e.replace(/-/g, ""); 13092 var s = parseInt(r.substr(0, 2), 10); 13093 var a = parseInt(r.substr(2, 2), 10); 13094 var n = parseInt(r.substr(4, 2), 10); 13095 var l = parseInt(r.charAt(9), 10); 13096 n = l === 9 ? 1900 + n : (20 + l) * 100 + n; 13097 if (!t$Y(n, a, s, true)) { 13098 return { 13099 meta: {}, 13100 valid: false 13101 }; 13102 } 13103 var c = [3, 2, 7, 6, 5, 4, 3, 2]; 13104 var i = 0; 13105 for (var _t = 0; _t < 8; _t++) { 13106 i += parseInt(r.charAt(_t), 10) * c[_t]; 13107 } 13108 i = 11 - i % 11; 13109 return { 13110 meta: {}, 13111 valid: "".concat(i) === r.charAt(8) 13112 }; 13113 } 13114 function e$q(e) { 13115 var a = e.replace("-", ""); 13116 if (!/^\d{13}$/.test(a)) { 13117 return { 13118 meta: {}, 13119 valid: false 13120 }; 13121 } 13122 var s = a.charAt(6); 13123 var r = parseInt(a.substr(0, 2), 10); 13124 var c = parseInt(a.substr(2, 2), 10); 13125 var n = parseInt(a.substr(4, 2), 10); 13126 switch (s) { 13127 case "1": 13128 case "2": 13129 case "5": 13130 case "6": 13131 r += 1900; 13132 break; 13133 case "3": 13134 case "4": 13135 case "7": 13136 case "8": 13137 r += 2e3; 13138 break; 13139 default: 13140 r += 1800; 13141 break; 13142 }
13143 if (!t$Y(r, c, n)) { 13144 return { 13145 meta: {}, 13146 valid: false 13147 }; 13148 } 13149 var l = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]; 13150 var o = a.length; 13151 var i = 0; 13152 for (var _t = 0; _t < o - 1; _t++) { 13153 i += l[_t] * parseInt(a.charAt(_t), 10); 13154 } 13155 var u = (11 - i % 11) % 10; 13156 return { 13157 meta: {}, 13158 valid: "".concat(u) === a.charAt(o - 1) 13159 }; 13160 } 13161 function r$8(r) { 13162 if (!/^[0-9]{11}$/.test(r)) { 13163 return { 13164 meta: {}, 13165 valid: false 13166 }; 13167 } 13168 var e = parseInt(r.charAt(0), 10); 13169 var a = parseInt(r.substr(1, 2), 10); 13170 var s = parseInt(r.substr(3, 2), 10); 13171 var n = parseInt(r.substr(5, 2), 10); 13172 var i = e % 2 === 0 ? 17 + e / 2 : 17 + (e + 1) / 2; 13173 a = i * 100 + a; 13174 if (!t$Y(a, s, n, true)) { 13175 return { 13176 meta: {}, 13177 valid: false 13178 }; 13179 } 13180 var l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1]; 13181 var f = 0; 13182 var u; 13183 for (u = 0; u < 10; u++) { 13184 f += parseInt(r.charAt(u), 10) * l[u]; 13185 } 13186 f = f % 11; 13187 if (f !== 10) { 13188 return { 13189 meta: {}, 13190 valid: "".concat(f) === r.charAt(10) 13191 }; 13192 } 13193 f = 0; 13194 l = [3, 4, 5, 6, 7, 8, 9, 1, 2, 3]; 13195 for (u = 0; u < 10; u++) { 13196 f += parseInt(r.charAt(u), 10) * l[u]; 13197 } 13198 f = f % 11; 13199 if (f === 10) { 13200 f = 0; 13201 } 13202 return { 13203 meta: {}, 13204 valid: "".concat(f) === r.charAt(10) 13205 }; 13206 } 13207 function e$p(e) { 13208 if (!/^[0-9]{6}[-]{0,1}[0-9]{5}$/.test(e)) { 13209 return { 13210 meta: {}, 13211 valid: false 13212 }; 13213 } 13214 var r = e.replace(/\D/g, ""); 13215 var a = parseInt(r.substr(0, 2), 10); 13216 var s = parseInt(r.substr(2, 2), 10); 13217 var n = parseInt(r.substr(4, 2), 10); 13218 n = n + 1800 + parseInt(r.charAt(6), 10) * 100; 13219 if (!t$Y(n, s, a, true)) { 13220 return { 13221 meta: {}, 13222 valid: false 13223 }; 13224 } 13225 var l = 0; 13226 var i = [10, 5, 8, 4, 2, 1, 6, 3, 7, 9]; 13227 for (var _t = 0; _t < 10; _t++) { 13228 l += parseInt(r.charAt(_t), 10) * i[_t]; 13229 } 13230 l = (l + 1) % 11 % 10; 13231 return { 13232 meta: {}, 13233 valid: "".concat(l) === r.charAt(10) 13234 }; 13235 } 13236 function r$7(r) { 13237 return { 13238 meta: {}, 13239 valid: t$Q(r, "ME") 13240 }; 13241 } 13242 function r$6(r) { 13243 return { 13244 meta: {}, 13245 valid: t$Q(r, "MK") 13246 }; 13247 } 13248 function O(O) { 13249 var t = O.toUpperCase(); 13250 if (!/^[A-Z]{4}\d{6}[A-Z]{6}[0-9A-Z]\d$/.test(t)) { 13251 return { 13252 meta: {}, 13253 valid: false 13254 }; 13255 } 13256 var C = ["BACA", "BAKA", "BUEI", "BUEY", "CACA", "CACO", "CAGA", "CAGO", "CAKA", "CAKO", "COGE", "COGI", "COJA", "COJE", "COJI", "COJO", "COLA", "CULO", "FALO", "FETO", "GETA", "GUEI", "GUEY", "JETA", "JOTO", "KACA", "KACO", "KAGA", "KAGO", "KAKA", "KAKO", "KOGE", "KOGI", "KOJA", "KOJE", "KOJI", "KOJO", "KOLA", "KULO", "LILO", "LOCA", "LOCO", "LOKA", "LOKO", "MAME", "MAMO", "MEAR", "MEAS", "MEON", "MIAR", "MION", "MOCO", "MOKO", "MULA", "MULO", "NACA", "NACO", "PEDA", "PEDO", "PENE", "PIPI", "PITO", "POPO", "PUTA", "PUTO", "QULO", "RATA", "ROBA", "ROBE", "ROBO", "RUIN", "SENO", "TETA", "VACA", "VAGA", "VAGO", "VAKA", "VUEI", "VUEY", "WUEI", "WUEY"]; 13257 var e = t.substr(0, 4); 13258 if (C.indexOf(e) >= 0) { 13259 return { 13260 meta: {}, 13261 valid: false 13262 }; 13263 } 13264 var s = parseInt(t.substr(4, 2), 10); 13265 var r = parseInt(t.substr(6, 2), 10); 13266 var a = parseInt(t.substr(6, 2), 10); 13267 if (/^[0-9]$/.test(t.charAt(16))) { 13268 s += 1900; 13269 } else { 13270 s += 2e3; 13271 } 13272 if (!t$Y(s, r, a)) { 13273 return { 13274 meta: {}, 13275 valid: false 13276 }; 13277 } 13278 var E = t.charAt(10); 13279 if (E !== "H" && E !== "M") { 13280 return { 13281 meta: {}, 13282 valid: false 13283 }; 13284 } 13285 var n = t.substr(11, 2); 13286 var K = ["AS", "BC", "BS", "CC", "CH", "CL", "CM", "CS", "DF", "DG", "GR", "GT", "HG", "JC", "MC", "MN", "MS", "NE", "NL", "NT", "OC", "PL", "QR", "QT", "SL", "SP", "SR", "TC", "TL", "TS", "VZ", "YN", "ZS"]; 13287 if (K.indexOf(n) === -1) { 13288 return { 13289 meta: {}, 13290 valid: false 13291 }; 13292 } 13293 var i = "0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ"; 13294 var L = 0; 13295 var l = t.length; 13296 for (var _A = 0; _A < l - 1; _A++) { 13297 L += (18 - _A) * i.indexOf(t.charAt(_A)); 13298 } 13299 L = (10 - L % 10) % 10; 13300 return { 13301 meta: {}, 13302 valid: "".concat(L) === t.charAt(l - 1) 13303 }; 13304 } 13305 function s$6(s) { 13306 if (!/^\d{12}$/.test(s)) { 13307 return { 13308 meta: {}, 13309 valid: false 13310 }; 13311 } 13312 var e = parseInt(s.substr(0, 2), 10); 13313 var r = parseInt(s.substr(2, 2), 10); 13314 var a = parseInt(s.substr(4, 2), 10); 13315 if (!t$Y(e + 1900, r, a) && !t$Y(e + 2e3, r, a)) { 13316 return { 13317 meta: {}, 13318 valid: false 13319 }; 13320 } 13321 var n = s.substr(6, 2); 13322 var i = ["17", "18", "19", "20", "69", "70", "73", "80", "81", "94", "95", "96", "97"]; 13323 return { 13324 meta: {}, 13325 valid: i.indexOf(n) === -1 13326 }; 13327 } 13328 function e$o(e) { 13329 if (e.length < 8) { 13330 return { 13331 meta: {}, 13332 valid: false 13333 }; 13334 } 13335 var t = e; 13336 if (t.length === 8) { 13337 t = "0".concat(t); 13338 } 13339 if (!/^[0-9]{4}[.]{0,1}[0-9]{2}[.]{0,1}[0-9]{3}$/.test(t)) { 13340 return { 13341 meta: {}, 13342 valid: false 13343 }; 13344 } 13345 t = t.replace(/\./g, ""); 13346 if (parseInt(t, 10) === 0) { 13347 return { 13348 meta: {}, 13349 valid: false 13350 }; 13351 } 13352 var a = 0; 13353 var l = t.length; 13354 for (var _e = 0; _e < l - 1; _e++) { 13355 a += (9 - _e) * parseInt(t.charAt(_e), 10); 13356 } 13357 a = a % 11; 13358 if (a === 10) { 13359 a = 0; 13360 } 13361 return { 13362 meta: {}, 13363 valid: "".concat(a) === t.charAt(l - 1) 13364 }; 13365 } 13366 function t$I(t) { 13367 if (!/^\d{11}$/.test(t)) { 13368 return { 13369 meta: {}, 13370 valid: false 13371 }; 13372 } 13373 var r = function r(t) { 13374 var r = [3, 7, 6, 1, 8, 9, 4, 5, 2]; 13375 var e = 0; 13376 for (var n = 0; n < 9; n++) { 13377 e += r[n] * parseInt(t.charAt(n), 10); 13378 } 13379 return 11 - e % 11; 13380 }; 13381 var e = function e(t) { 13382 var r = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]; 13383 var e = 0; 13384 for (var n = 0; n < 10; n++) { 13385 e += r[n] * parseInt(t.charAt(n), 10); 13386 } 13387 return 11 - e % 11; 13388 }; 13389 return { 13390 meta: {}, 13391 valid: "".concat(r(t)) === t.substr(-2, 1) && "".concat(e(t)) === t.substr(-1) 13392 }; 13393 } 13394 function t$H(t) { 13395 if (!/^\d{8}[0-9A-Z]*$/.test(t)) { 13396 return { 13397 meta: {}, 13398 valid: false 13399 }; 13400 } 13401 if (t.length === 8) { 13402 return { 13403 meta: {}, 13404 valid: true 13405 }; 13406 } 13407 var e = [3, 2, 7, 6, 5, 4, 3, 2]; 13408 var r = 0; 13409 for (var _a = 0; _a < 8; _a++) { 13410 r += e[_a] * parseInt(t.charAt(_a), 10); 13411 } 13412 var a = r % 11; 13413 var n = [6, 5, 4, 3, 2, 1, 1, 0, 9, 8, 7][a]; 13414 var c = "KJIHGFEDCBA".charAt(a); 13415 return { 13416 meta: {}, 13417 valid: t.charAt(8) === "".concat(n) || t.charAt(8) === c 13418 }; 13419 } 13420 function t$G(t) { 13421 if (!/^[0-9]{11}$/.test(t)) { 13422 return { 13423 meta: {}, 13424 valid: false 13425 }; 13426 } 13427 var e = 0; 13428 var a = t.length; 13429 var r = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 7]; 13430 for (var n = 0; n < a - 1; n++) { 13431 e += r[n] * parseInt(t.charAt(n), 10); 13432 } 13433 e = e % 10; 13434 if (e === 0) { 13435 e = 10; 13436 } 13437 e = 10 - e; 13438 return { 13439 meta: {}, 13440 valid: "".concat(e) === t.charAt(a - 1) 13441 }; 13442 } 13443 function e$n(e) { 13444 if (!/^[0-9]{13}$/.test(e)) { 13445 return { 13446 meta: {}, 13447 valid: false 13448 }; 13449 } 13450 var a = parseInt(e.charAt(0), 10); 13451 if (a === 0 || a === 7 || a === 8) { 13452 return { 13453 meta: {}, 13454 valid: false 13455 }; 13456 } 13457 var r = parseInt(e.substr(1, 2), 10); 13458 var s = parseInt(e.substr(3, 2), 10); 13459 var n = parseInt(e.substr(5, 2), 10); 13460 var i = { 13461 1: 1900, 13462 2: 1900, 13463 3: 1800, 13464 4: 1800, 13465 5: 2e3, 13466 6: 2e3 13467 }; 13468 if (n > 31 && s > 12) { 13469 return { 13470 meta: {}, 13471 valid: false 13472 }; 13473 } 13474 if (a !== 9) { 13475 r = i[a + ""] + r; 13476 if (!t$Y(r, s, n)) { 13477 return { 13478 meta: {}, 13479 valid: false 13480 }; 13481 } 13482 } 13483 var l = 0; 13484 var f = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9]; 13485 var o = e.length; 13486 for (var _t = 0; _t < o - 1; _t++) { 13487 l += parseInt(e.charAt(_t), 10) * f[_t]; 13488 } 13489 l = l % 11; 13490 if (l === 10) { 13491 l = 1; 13492 } 13493 return { 13494 meta: {}, 13495 valid: "".concat(l) === e.charAt(o - 1) 13496 }; 13497 } 13498 function r$5(r) { 13499 return { 13500 meta: {}, 13501 valid: t$Q(r, "RS") 13502 }; 13503 } 13504 function r$4(r) { 13505 if (!/^[0-9]{10}$/.test(r) && !/^[0-9]{6}[-|+][0-9]{4}$/.test(r)) { 13506 return { 13507 meta: {}, 13508 valid: false 13509 }; 13510 } 13511 var e = r.replace(/[^0-9]/g, ""); 13512 var a = parseInt(e.substr(0, 2), 10) + 1900; 13513 var n = parseInt(e.substr(2, 2), 10); 13514 var i = parseInt(e.substr(4, 2), 10); 13515 if (!t$Y(a, n, i)) { 13516 return { 13517 meta: {}, 13518 valid: false 13519 }; 13520 } 13521 return { 13522 meta: {}, 13523 valid: t$15(e) 13524 }; 13525 } 13526 function r$3(r) { 13527 return { 13528 meta: {}, 13529 valid: t$Q(r, "SI") 13530 }; 13531 } 13532 function t$F(t) { 13533 return { 13534 meta: {}, 13535 valid: /^\d{5}$/.test(t) 13536 }; 13537 } 13538 function t$E(t) { 13539 if (t.length !== 13) { 13540 return { 13541 meta: {}, 13542 valid: false 13543 }; 13544 } 13545 var e = 0; 13546 for (var a = 0; a < 12; a++) { 13547 e += parseInt(t.charAt(a), 10) * (13 - a); 13548 } 13549 return { 13550 meta: {}, 13551 valid: (11 - e % 11) % 10 === parseInt(t.charAt(12), 10) 13552 }; 13553 } 13554 function t$D(t) { 13555 if (t.length !== 11) { 13556 return { 13557 meta: {}, 13558 valid: false 13559 }; 13560 } 13561 var e = 0; 13562 for (var a = 0; a < 10; a++) { 13563 e += parseInt(t.charAt(a), 10); 13564 } 13565 return { 13566 meta: {}, 13567 valid: e % 10 === parseInt(t.charAt(10), 10) 13568 }; 13569 } 13570 function t$C(t) { 13571 var e = t.toUpperCase(); 13572 if (!/^[A-Z][12][0-9]{8}$/.test(e)) { 13573 return { 13574 meta: {}, 13575 valid: false 13576 }; 13577 } 13578 var a = e.length; 13579 var n = "ABCDEFGHJKLMNPQRSTUVXYWZIO"; 13580 var r = n.indexOf(e.charAt(0)) + 10; 13581 var o = Math.floor(r / 10) + r % 10 * (a - 1); 13582 var s = 0; 13583 for (var _t = 1; _t < a - 1; _t++) { 13584 s += parseInt(e.charAt(_t), 10) * (a - 1 - _t); 13585 } 13586 return { 13587 meta: {}, 13588 valid: (o + s + parseInt(e.charAt(a - 1), 10)) % 10 === 0 13589 }; 13590 } 13591 function t$B(t) { 13592 if (!/^\d{8}$/.test(t)) { 13593 return { 13594 meta: {}, 13595 valid: false 13596 }; 13597 } 13598 var e = [2, 9, 8, 7, 6, 3, 4]; 13599 var a = 0; 13600 for (var r = 0; r < 7; r++) { 13601 a += parseInt(t.charAt(r), 10) * e[r]; 13602 } 13603 a = a % 10; 13604 if (a > 0) { 13605 a = 10 - a; 13606 } 13607 return { 13608 meta: {}, 13609 valid: "".concat(a) === t.charAt(7) 13610 }; 13611 } 13612 function r$2(r) { 13613 if (!/^[0-9]{10}[0|1][8|9][0-9]$/.test(r)) { 13614 return { 13615 meta: {}, 13616 valid: false 13617 }; 13618 } 13619 var s = parseInt(r.substr(0, 2), 10); 13620 var a = new Date().getFullYear() % 100; 13621 var l = parseInt(r.substr(2, 2), 10); 13622 var n = parseInt(r.substr(4, 2), 10); 13623 s = s >= a ? s + 1900 : s + 2e3; 13624 if (!t$Y(s, l, n)) { 13625 return { 13626 meta: {}, 13627 valid: false 13628 }; 13629 } 13630 return { 13631 meta: {}, 13632 valid: t$15(r) 13633 }; 13634 } 13635 function F() { 13636 var F = ["AR", "BA", "BG", "BR", "CH", "CL", "CN", "CO", "CZ", "DK", "EE", "ES", "FI", "FR", "HK", "HR", "ID", "IE", "IL", "IS", "KR", "LT", "LV", "ME", "MK", "MX", "MY", "NL", "NO", "PE", "PL", "RO", "RS", "SE", "SI", "SK", "SM", "TH", "TR", "TW", "UY", "ZA"]; 13637 return { 13638 validate: function validate(P) { 13639 if (P.value === "") { 13640 return { 13641 valid: true 13642 }; 13643 } 13644 var Y = Object.assign({}, { 13645 message: "" 13646 }, P.options); 13647 var Z = P.value.substr(0, 2); 13648 if ("function" === typeof Y.country) { 13649 Z = Y.country.call(this); 13650 } else { 13651 Z = Y.country; 13652 } 13653 if (F.indexOf(Z) === -1) { 13654 return { 13655 valid: true 13656 }; 13657 } 13658 var G = { 13659 meta: {}, 13660 valid: true 13661 }; 13662 switch (Z.toLowerCase()) { 13663 case "ar": 13664 G = t$R(P.value); 13665 break; 13666 case "ba": 13667 G = r$a(P.value); 13668 break; 13669 case "bg": 13670 G = e$x(P.value); 13671 break; 13672 case "br": 13673 G = t$P(P.value); 13674 break; 13675 case "ch": 13676 G = t$O(P.value); 13677 break; 13678 case "cl": 13679 G = e$w(P.value); 13680 break; 13681 case "cn": 13682 G = r$9(P.value); 13683 break; 13684 case "co": 13685 G = t$N(P.value); 13686 break; 13687 case "cz": 13688 G = e$v(P.value); 13689 break; 13690 case "dk": 13691 G = e$u(P.value); 13692 break; 13693 case "ee": 13694 G = r$8(P.value); 13695 break; 13696 case "es": 13697 G = t$M(P.value); 13698 break; 13699 case "fi": 13700 G = s$7(P.value); 13701 break; 13702 case "fr": 13703 G = t$L(P.value); 13704 break; 13705 case "hk": 13706 G = t$K(P.value); 13707 break; 13708 case "hr": 13709 G = o$1(P.value); 13710 break; 13711 case "id": 13712 G = e$t(P.value); 13713 break; 13714 case "ie": 13715 G = t$J(P.value); 13716 break; 13717 case "il": 13718 G = e$s(P.value); 13719 break; 13720 case "is": 13721 G = e$r(P.value); 13722 break; 13723 case "kr": 13724 G = e$q(P.value); 13725 break; 13726 case "lt": 13727 G = r$8(P.value); 13728 break; 13729 case "lv": 13730 G = e$p(P.value); 13731 break; 13732 case "me": 13733 G = r$7(P.value); 13734 break; 13735 case "mk": 13736 G = r$6(P.value); 13737 break; 13738 case "mx": 13739 G = O(P.value); 13740 break; 13741 case "my": 13742 G = s$6(P.value); 13743 break; 13744 case "nl": 13745 G = e$o(P.value); 13746 break; 13747 case "no": 13748 G = t$I(P.value); 13749 break; 13750 case "pe": 13751 G = t$H(P.value); 13752 break; 13753 case "pl": 13754 G = t$G(P.value); 13755 break; 13756 case "ro": 13757 G = e$n(P.value); 13758 break; 13759 case "rs": 13760 G = r$5(P.value); 13761 break; 13762 case "se": 13763 G = r$4(P.value); 13764 break; 13765 case "si": 13766 G = r$3(P.value); 13767 break; 13768 case "sk": 13769 G = e$v(P.value); 13770 break; 13771 case "sm": 13772 G = t$F(P.value); 13773 break; 13774 case "th": 13775 G = t$E(P.value); 13776 break; 13777 case "tr": 13778 G = t$D(P.value); 13779 break; 13780 case "tw": 13781 G = t$C(P.value); 13782 break; 13783 case "uy": 13784 G = t$B(P.value); 13785 break; 13786 case "za": 13787 G = r$2(P.value); 13788 break; 13789 } 13790 var V = r$d(P.l10n && P.l10n.id ? Y.message || P.l10n.id.country : Y.message, P.l10n && P.l10n.id && P.l10n.id.countries ? P.l10n.id.countries[Z.toUpperCase()] : Z.toUpperCase()); 13791 return Object.assign({}, { 13792 message: V 13793 }, G); 13794 } 13795 }; 13796 } 13797 function t$A() { 13798 return { 13799 validate: function validate(t) { 13800 if (t.value === "") { 13801 return { 13802 valid: true 13803 }; 13804 } 13805 switch (true) { 13806 case /^\d{15}$/.test(t.value): 13807 case /^\d{2}-\d{6}-\d{6}-\d{1}$/.test(t.value): 13808 case /^\d{2}\s\d{6}\s\d{6}\s\d{1}$/.test(t.value): 13809 return { 13810 valid: t$15(t.value.replace(/[^0-9]/g, "")) 13811 }; 13812 case /^\d{14}$/.test(t.value): 13813 case /^\d{16}$/.test(t.value): 13814 case /^\d{2}-\d{6}-\d{6}(|-\d{2})$/.test(t.value): 13815 case /^\d{2}\s\d{6}\s\d{6}(|\s\d{2})$/.test(t.value): 13816 return { 13817 valid: true 13818 }; 13819 default: 13820 return { 13821 valid: false 13822 }; 13823 } 13824 } 13825 }; 13826 } 13827 function e$m() { 13828 return { 13829 validate: function validate(e) { 13830 if (e.value === "") { 13831 return { 13832 valid: true 13833 }; 13834 } 13835 if (!/^IMO \d{7}$/i.test(e.value)) { 13836 return {
13837 valid: false 13838 }; 13839 } 13840 var t = e.value.replace(/^.*(\d{7})$/, "$1"); 13841 var r = 0; 13842 for (var _e = 6; _e >= 1; _e--) { 13843 r += parseInt(t.slice(6 - _e, -_e), 10) * (_e + 1); 13844 } 13845 return { 13846 valid: r % 10 === parseInt(t.charAt(6), 10) 13847 }; 13848 } 13849 }; 13850 } 13851 function e$l() { 13852 return { 13853 validate: function validate(e) { 13854 if (e.value === "") { 13855 return { 13856 meta: { 13857 type: null 13858 }, 13859 valid: true 13860 }; 13861 } 13862 var t; 13863 switch (true) { 13864 case /^\d{9}[\dX]$/.test(e.value): 13865 case e.value.length === 13 && /^(\d+)-(\d+)-(\d+)-([\dX])$/.test(e.value): 13866 case e.value.length === 13 && /^(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(e.value): 13867 t = "ISBN10"; 13868 break; 13869 case /^(978|979)\d{9}[\dX]$/.test(e.value): 13870 case e.value.length === 17 && /^(978|979)-(\d+)-(\d+)-(\d+)-([\dX])$/.test(e.value): 13871 case e.value.length === 17 && /^(978|979)\s(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(e.value): 13872 t = "ISBN13"; 13873 break; 13874 default: 13875 return { 13876 meta: { 13877 type: null 13878 }, 13879 valid: false 13880 }; 13881 } 13882 var a = e.value.replace(/[^0-9X]/gi, "").split(""); 13883 var l = a.length; 13884 var s = 0; 13885 var d; 13886 var u; 13887 switch (t) { 13888 case "ISBN10": 13889 s = 0; 13890 for (d = 0; d < l - 1; d++) { 13891 s += parseInt(a[d], 10) * (10 - d); 13892 } 13893 u = 11 - s % 11; 13894 if (u === 11) { 13895 u = 0; 13896 } else if (u === 10) { 13897 u = "X"; 13898 } 13899 return { 13900 meta: { 13901 type: t 13902 }, 13903 valid: "".concat(u) === a[l - 1] 13904 }; 13905 case "ISBN13": 13906 s = 0; 13907 for (d = 0; d < l - 1; d++) { 13908 s += d % 2 === 0 ? parseInt(a[d], 10) : parseInt(a[d], 10) * 3; 13909 } 13910 u = 10 - s % 10; 13911 if (u === 10) { 13912 u = "0"; 13913 } 13914 return { 13915 meta: { 13916 type: t 13917 }, 13918 valid: "".concat(u) === a[l - 1] 13919 }; 13920 } 13921 } 13922 }; 13923 } 13924 function M() { 13925 var M = "AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|" + "BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|" + "SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|" + "IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|" + "MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|" + "PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|" + "SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|" + "YE|ZM|ZW"; 13926 return { 13927 validate: function validate(t) { 13928 if (t.value === "") { 13929 return { 13930 valid: true 13931 }; 13932 } 13933 var S = t.value.toUpperCase(); 13934 var A = new RegExp("^(" + M + ")[0-9A-Z]{10}$"); 13935 if (!A.test(t.value)) { 13936 return { 13937 valid: false 13938 }; 13939 } 13940 var G = S.length; 13941 var C = ""; 13942 var T; 13943 for (T = 0; T < G - 1; T++) {
13944 var _M = S.charCodeAt(T); 13945 C += _M > 57 ? (_M - 55).toString() : S.charAt(T); 13946 } 13947 var e = ""; 13948 var B = C.length; 13949 var E = B % 2 !== 0 ? 0 : 1; 13950 for (T = 0; T < B; T++) { 13951 e += parseInt(C[T], 10) * (T % 2 === E ? 2 : 1) + ""; 13952 } 13953 var N = 0; 13954 for (T = 0; T < e.length; T++) { 13955 N += parseInt(e.charAt(T), 10); 13956 } 13957 N = (10 - N % 10) % 10; 13958 return { 13959 valid: "".concat(N) === S.charAt(G - 1) 13960 }; 13961 } 13962 }; 13963 } 13964 function e$k() { 13965 return { 13966 validate: function validate(e) { 13967 if (e.value === "") { 13968 return { 13969 meta: null, 13970 valid: true 13971 }; 13972 } 13973 var t; 13974 switch (true) { 13975 case /^M\d{9}$/.test(e.value): 13976 case /^M-\d{4}-\d{4}-\d{1}$/.test(e.value): 13977 case /^M\s\d{4}\s\d{4}\s\d{1}$/.test(e.value): 13978 t = "ISMN10"; 13979 break; 13980 case /^9790\d{9}$/.test(e.value): 13981 case /^979-0-\d{4}-\d{4}-\d{1}$/.test(e.value): 13982 case /^979\s0\s\d{4}\s\d{4}\s\d{1}$/.test(e.value): 13983 t = "ISMN13"; 13984 break; 13985 default: 13986 return { 13987 meta: null, 13988 valid: false 13989 }; 13990 } 13991 var a = e.value; 13992 if ("ISMN10" === t) { 13993 a = "9790".concat(a.substr(1)); 13994 } 13995 a = a.replace(/[^0-9]/gi, ""); 13996 var s = 0; 13997 var l = a.length; 13998 var d = [1, 3]; 13999 for (var _e = 0; _e < l - 1; _e++) { 14000 s += parseInt(a.charAt(_e), 10) * d[_e % 2]; 14001 } 14002 s = (10 - s % 10) % 10; 14003 return { 14004 meta: { 14005 type: t 14006 }, 14007 valid: "".concat(s) === a.charAt(l - 1) 14008 }; 14009 } 14010 }; 14011 } 14012 function e$j() { 14013 return { 14014 validate: function validate(e) { 14015 if (e.value === "") { 14016 return { 14017 valid: true 14018 }; 14019 } 14020 if (!/^\d{4}-\d{3}[\dX]$/.test(e.value)) { 14021 return { 14022 valid: false 14023 }; 14024 } 14025 var t = e.value.replace(/[^0-9X]/gi, "").split(""); 14026 var l = t.length; 14027 var r = 0; 14028 if (t[7] === "X") { 14029 t[7] = "10"; 14030 } 14031 for (var _e = 0; _e < l; _e++) { 14032 r += parseInt(t[_e], 10) * (8 - _e); 14033 } 14034 return { 14035 valid: r % 11 === 0 14036 }; 14037 } 14038 }; 14039 } 14040 function a$1() { 14041 return { 14042 validate: function validate(a) { 14043 return { 14044 valid: a.value === "" || /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/.test(a.value) || /^([0-9A-Fa-f]{4}\.){2}([0-9A-Fa-f]{4})$/.test(a.value) 14045 }; 14046 } 14047 }; 14048 } 14049 function e$i() { 14050 return { 14051 validate: function validate(e) { 14052 if (e.value === "") { 14053 return { 14054 valid: true 14055 }; 14056 } 14057 var r = e.value; 14058 if (/^[0-9A-F]{15}$/i.test(r) || /^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}[- ][0-9A-F]$/i.test(r) || /^\d{19}$/.test(r) || /^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}[- ]\d$/.test(r)) { 14059 var _e = r.charAt(r.length - 1).toUpperCase(); 14060 r = r.replace(/[- ]/g, ""); 14061 if (r.match(/^\d*$/i)) { 14062 return { 14063 valid: t$15(r) 14064 }; 14065 } 14066 r = r.slice(0, -1); 14067 var a = ""; 14068 var i; 14069 for (i = 1; i <= 13; i += 2) { 14070 a += (parseInt(r.charAt(i), 16) * 2).toString(16); 14071 } 14072 var l = 0; 14073 for (i = 0; i < a.length; i++) { 14074 l += parseInt(a.charAt(i), 16); 14075 } 14076 return { 14077 valid: l % 10 === 0 ? _e === "0" : _e === ((Math.floor((l + 10) / 10) * 10 - l) * 2).toString(16).toUpperCase() 14078 }; 14079 } 14080 if (/^[0-9A-F]{14}$/i.test(r) || /^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}$/i.test(r) || /^\d{18}$/.test(r) || /^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}$/.test(r)) { 14081 return { 14082 valid: true 14083 }; 14084 } 14085 return { 14086 valid: false 14087 }; 14088 } 14089 }; 14090 } 14091 function e$h() { 14092 var e = ["AE", "BG", "BR", "CN", "CZ", "DE", "DK", "ES", "FR", "GB", "IN", "MA", "NL", "PK", "RO", "RU", "SK", "TH", "US", "VE"]; 14093 return { 14094 validate: function validate(t) { 14095 if (t.value === "") { 14096 return { 14097 valid: true 14098 }; 14099 } 14100 var a = Object.assign({}, { 14101 message: "" 14102 }, t.options); 14103 var d = t.value.trim(); 14104 var r = d.substr(0, 2); 14105 if ("function" === typeof a.country) {
14106 r = a.country.call(this); 14107 } else { 14108 r = a.country; 14109 } 14110 if (!r || e.indexOf(r.toUpperCase()) === -1) { 14111 return { 14112 valid: true 14113 }; 14114 } 14115 var c = true; 14116 switch (r.toUpperCase()) { 14117 case "AE": 14118 c = /^(((\+|00)?971[\s.-]?(\(0\)[\s.-]?)?|0)(\(5(0|2|5|6)\)|5(0|2|5|6)|2|3|4|6|7|9)|60)([\s.-]?[0-9]){7}$/.test(d); 14119 break; 14120 case "BG": 14121 c = /^(0|359|00)(((700|900)[0-9]{5}|((800)[0-9]{5}|(800)[0-9]{4}))|(87|88|89)([0-9]{7})|((2[0-9]{7})|(([3-9][0-9])(([0-9]{6})|([0-9]{5})))))$/.test(d.replace(/\+|\s|-|\/|\(|\)/gi, "")); 14122 break; 14123 case "BR": 14124 c = /^(([\d]{4}[-.\s]{1}[\d]{2,3}[-.\s]{1}[\d]{2}[-.\s]{1}[\d]{2})|([\d]{4}[-.\s]{1}[\d]{3}[-.\s]{1}[\d]{4})|((\(?\+?[0-9]{2}\)?\s?)?(\(?\d{2}\)?\s?)?\d{4,5}[-.\s]?\d{4}))$/.test(d); 14125 break; 14126 case "CN": 14127 c = /^((00|\+)?(86(?:-| )))?((\d{11})|(\d{3}[- ]{1}\d{4}[- ]{1}\d{4})|((\d{2,4}[- ]){1}(\d{7,8}|(\d{3,4}[- ]{1}\d{4}))([- ]{1}\d{1,4})?))$/.test(d); 14128 break; 14129 case "CZ": 14130 c = /^(((00)([- ]?)|\+)(420)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(d); 14131 break; 14132 case "DE": 14133 c = /^(((((((00|\+)49[ \-/]?)|0)[1-9][0-9]{1,4})[ \-/]?)|((((00|\+)49\()|\(0)[1-9][0-9]{1,4}\)[ \-/]?))[0-9]{1,7}([ \-/]?[0-9]{1,5})?)$/.test(d); 14134 break; 14135 case "DK": 14136 c = /^(\+45|0045|\(45\))?\s?[2-9](\s?\d){7}$/.test(d); 14137 break; 14138 case "ES": 14139 c = /^(?:(?:(?:\+|00)34\D?))?(?:5|6|7|8|9)(?:\d\D?){8}$/.test(d); 14140 break; 14141 case "FR": 14142 c = /^(?:(?:(?:\+|00)33[ ]?(?:\(0\)[ ]?)?)|0){1}[1-9]{1}([ .-]?)(?:\d{2}\1?){3}\d{2}$/.test(d); 14143 break; 14144 case "GB": 14145 c = /^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|#)\d+)?)$/.test(d); 14146 break; 14147 case "IN": 14148 c = /((\+?)((0[ -]+)*|(91 )*)(\d{12}|\d{10}))|\d{5}([- ]*)\d{6}/.test(d); 14149 break; 14150 case "MA": 14151 c = /^(?:(?:(?:\+|00)212[\s]?(?:[\s]?\(0\)[\s]?)?)|0){1}(?:5[\s.-]?[2-3]|6[\s.-]?[13-9]){1}[0-9]{1}(?:[\s.-]?\d{2}){3}$/.test(d); 14152 break; 14153 case "NL": 14154 c = /^((\+|00(\s|\s?-\s?)?)31(\s|\s?-\s?)?(\(0\)[-\s]?)?|0)[1-9]((\s|\s?-\s?)?[0-9])((\s|\s?-\s?)?[0-9])((\s|\s?-\s?)?[0-9])\s?[0-9]\s?[0-9]\s?[0-9]\s?[0-9]\s?[0-9]$/gm.test(d); 14155 break; 14156 case "PK": 14157 c = /^0?3[0-9]{2}[0-9]{7}$/.test(d); 14158 break; 14159 case "RO": 14160 c = /^(\+4|)?(07[0-8]{1}[0-9]{1}|02[0-9]{2}|03[0-9]{2}){1}?(\s|\.|-)?([0-9]{3}(\s|\.|-|)){2}$/g.test(d); 14161 break; 14162 case "RU": 14163 c = /^((8|\+7|007)[-./ ]?)?([(/.]?\d{3}[)/.]?[-./ ]?)?[\d\-./ ]{7,10}$/g.test(d); 14164 break; 14165 case "SK": 14166 c = /^(((00)([- ]?)|\+)(421)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(d); 14167 break; 14168 case "TH": 14169 c = /^0\(?([6|8-9]{2})*-([0-9]{3})*-([0-9]{4})$/.test(d); 14170 break; 14171 case "VE": 14172 c = /^0(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789])|4(?:1[246]|2[46]))\d{7}$/.test(d); 14173 break; 14174 case "US": 14175 default: 14176 c = /^(?:(1-?)|(\+1 ?))?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$/.test(d); 14177 break; 14178 } 14179 return { 14180 message: r$d(t.l10n && t.l10n.phone ? a.message || t.l10n.phone.country : a.message, t.l10n && t.l10n.phone && t.l10n.phone.countries ? t.l10n.phone.countries[r] : r), 14181 valid: c 14182 }; 14183 } 14184 }; 14185 } 14186 function e$g() { 14187 return { 14188 validate: function validate(e) { 14189 if (e.value === "") { 14190 return { 14191 valid: true 14192 }; 14193 } 14194 if (!/^\d{9}$/.test(e.value)) { 14195 return { 14196 valid: false 14197 }; 14198 } 14199 var t = 0; 14200 for (var a = 0; a < e.value.length; a += 3) { 14201 t += parseInt(e.value.charAt(a), 10) * 3 + parseInt(e.value.charAt(a + 1), 10) * 7 + parseInt(e.value.charAt(a + 2), 10); 14202 } 14203 return { 14204 valid: t !== 0 && t % 10 === 0 14205 }; 14206 } 14207 }; 14208 } 14209 function t$z() { 14210 return { 14211 validate: function validate(t) { 14212 if (t.value === "") { 14213 return { 14214 valid: true 14215 }; 14216 } 14217 var e = t.value.toUpperCase(); 14218 if (!/^[0-9A-Z]{7}$/.test(e)) { 14219 return { 14220 valid: false 14221 }; 14222 } 14223 var r = [1, 3, 1, 7, 3, 9, 1]; 14224 var a = e.length; 14225 var l = 0; 14226 for (var _t = 0; _t < a - 1; _t++) { 14227 l += r[_t] * parseInt(e.charAt(_t), 36); 14228 } 14229 l = (10 - l % 10) % 10; 14230 return { 14231 valid: "".concat(l) === e.charAt(a - 1) 14232 }; 14233 } 14234 }; 14235 } 14236 function e$f() { 14237 return { 14238 validate: function validate(e) { 14239 return { 14240 valid: e.value === "" || /^\d{9}$/.test(e.value) && t$15(e.value) 14241 }; 14242 } 14243 }; 14244 } 14245 function e$e() { 14246 return { 14247 validate: function validate(e) { 14248 if (e.value === "") { 14249 return { 14250 valid: true 14251 }; 14252 } 14253 var t = e.value.length; 14254 var l = 0; 14255 var r; 14256 for (var a = 0; a < t; a++) { 14257 r = parseInt(e.value.charAt(a), 10); 14258 if (a % 2 === 0) { 14259 r = r * 2; 14260 if (r > 9) { 14261 r -= 9; 14262 } 14263 } 14264 l += r; 14265 } 14266 return { 14267 valid: l % 10 === 0 14268 }; 14269 } 14270 }; 14271 } 14272 function e$d() { 14273 var e = function e(t, _e) { 14274 var s = Math.pow(10, _e); 14275 var a = t * s; 14276 var n; 14277 switch (true) { 14278 case a === 0: 14279 n = 0; 14280 break; 14281 case a > 0: 14282 n = 1; 14283 break; 14284 case a < 0: 14285 n = -1; 14286 break; 14287 } 14288 var r = a % 1 === .5 * n; 14289 return r ? (Math.floor(a) + (n > 0 ? 1 : 0)) / s : Math.round(a) / s; 14290 }; 14291 var s = function s(t, _s) { 14292 if (_s === 0) { 14293 return 1; 14294 } 14295 var a = "".concat(t).split("."); 14296 var n = "".concat(_s).split("."); 14297 var r = (a.length === 1 ? 0 : a[1].length) + (n.length === 1 ? 0 : n[1].length); 14298 return e(t - _s * Math.floor(t / _s), r); 14299 }; 14300 return { 14301 validate: function validate(e) { 14302 if (e.value === "") { 14303 return { 14304 valid: true 14305 }; 14306 } 14307 var a = parseFloat(e.value); 14308 if (isNaN(a) || !isFinite(a)) { 14309 return { 14310 valid: false 14311 }; 14312 } 14313 var n = Object.assign({}, { 14314 baseValue: 0, 14315 message: "", 14316 step: 1 14317 }, e.options); 14318 var r = s(a - n.baseValue, n.step); 14319 return { 14320 message: r$d(e.l10n ? n.message || e.l10n.step["default"] : n.message, "".concat(n.step)), 14321 valid: r === 0 || r === n.step 14322 }; 14323 } 14324 }; 14325 } 14326 function s$5() { 14327 return { 14328 validate: function validate(s) { 14329 if (s.value === "") { 14330 return { 14331 valid: true 14332 }; 14333 } 14334 var A = Object.assign({}, { 14335 message: "" 14336 }, s.options); 14337 var i = { 14338 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i, 14339 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, 14340 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, 14341 all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i 14342 }; 14343 var n = A.version ? "".concat(A.version) : "all"; 14344 return { 14345 message: A.version ? r$d(s.l10n ? A.message || s.l10n.uuid.version : A.message, A.version) : s.l10n ? s.l10n.uuid["default"] : A.message, 14346 valid: null === i[n] ? true : i[n].test(s.value) 14347 }; 14348 } 14349 }; 14350 } 14351 function t$y(t) { 14352 var e = t.replace("-", ""); 14353 if (/^AR[0-9]{11}$/.test(e)) { 14354 e = e.substr(2); 14355 } 14356 if (!/^[0-9]{11}$/.test(e)) { 14357 return { 14358 meta: {}, 14359 valid: false 14360 }; 14361 } 14362 var r = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]; 14363 var a = 0; 14364 for (var _t = 0; _t < 10; _t++) { 14365 a += parseInt(e.charAt(_t), 10) * r[_t]; 14366 } 14367 a = 11 - a % 11; 14368 if (a === 11) { 14369 a = 0; 14370 } 14371 return { 14372 meta: {}, 14373 valid: "".concat(a) === e.substr(10) 14374 }; 14375 } 14376 function t$x(t) { 14377 var e = t; 14378 if (/^ATU[0-9]{8}$/.test(e)) { 14379 e = e.substr(2); 14380 } 14381 if (!/^U[0-9]{8}$/.test(e)) { 14382 return { 14383 meta: {}, 14384 valid: false 14385 }; 14386 } 14387 e = e.substr(1); 14388 var r = [1, 2, 1, 2, 1, 2, 1]; 14389 var s = 0; 14390 var a = 0; 14391 for (var _t = 0; _t < 7; _t++) { 14392 a = parseInt(e.charAt(_t), 10) * r[_t]; 14393 if (a > 9) { 14394 a = Math.floor(a / 10) + a % 10; 14395 } 14396 s += a; 14397 } 14398 s = 10 - (s + 4) % 10; 14399 if (s === 10) { 14400 s = 0; 14401 } 14402 return { 14403 meta: {}, 14404 valid: "".concat(s) === e.substr(7, 1) 14405 }; 14406 } 14407 function t$w(t) { 14408 var e = t; 14409 if (/^BE[0]?[0-9]{9}$/.test(e)) { 14410 e = e.substr(2); 14411 } 14412 if (!/^[0]?[0-9]{9}$/.test(e)) { 14413 return { 14414 meta: {}, 14415 valid: false 14416 }; 14417 } 14418 if (e.length === 9) { 14419 e = "0".concat(e); 14420 } 14421 if (e.substr(1, 1) === "0") { 14422 return { 14423 meta: {}, 14424 valid: false 14425 }; 14426 } 14427 var s = parseInt(e.substr(0, 8), 10) + parseInt(e.substr(8, 2), 10); 14428 return { 14429 meta: {}, 14430 valid: s % 97 === 0 14431 }; 14432 } 14433 function r$1(r) { 14434 var e = r; 14435 if (/^BG[0-9]{9,10}$/.test(e)) { 14436 e = e.substr(2); 14437 } 14438 if (!/^[0-9]{9,10}$/.test(e)) { 14439 return { 14440 meta: {}, 14441 valid: false 14442 }; 14443 } 14444 var s = 0; 14445 var n = 0; 14446 if (e.length === 9) { 14447 for (n = 0; n < 8; n++) { 14448 s += parseInt(e.charAt(n), 10) * (n + 1); 14449 } 14450 s = s % 11; 14451 if (s === 10) { 14452 s = 0; 14453 for (n = 0; n < 8; n++) { 14454 s += parseInt(e.charAt(n), 10) * (n + 3); 14455 } 14456 s = s % 11; 14457 } 14458 s = s % 10; 14459 return { 14460 meta: {}, 14461 valid: "".concat(s) === e.substr(8) 14462 }; 14463 } else { 14464 var _r = function _r(r) { 14465 var e = parseInt(r.substr(0, 2), 10) + 1900; 14466 var s = parseInt(r.substr(2, 2), 10); 14467 var n = parseInt(r.substr(4, 2), 10); 14468 if (s > 40) { 14469 e += 100; 14470 s -= 40; 14471 } else if (s > 20) { 14472 e -= 100; 14473 s -= 20; 14474 } 14475 if (!t$Y(e, s, n)) { 14476 return false;
14477 } 14478 var a = [2, 4, 8, 5, 10, 9, 7, 3, 6]; 14479 var l = 0; 14480 for (var _t = 0; _t < 9; _t++) { 14481 l += parseInt(r.charAt(_t), 10) * a[_t]; 14482 } 14483 l = l % 11 % 10; 14484 return "".concat(l) === r.substr(9, 1); 14485 }; 14486 var _s = function _s(t) { 14487 var r = [21, 19, 17, 13, 11, 9, 7, 3, 1]; 14488 var e = 0; 14489 for (var _s2 = 0; _s2 < 9; _s2++) { 14490 e += parseInt(t.charAt(_s2), 10) * r[_s2]; 14491 } 14492 e = e % 10; 14493 return "".concat(e) === t.substr(9, 1); 14494 }; 14495 var _n = function _n(t) { 14496 var r = [4, 3, 2, 7, 6, 5, 4, 3, 2]; 14497 var e = 0; 14498 for (var _s3 = 0; _s3 < 9; _s3++) { 14499 e += parseInt(t.charAt(_s3), 10) * r[_s3]; 14500 } 14501 e = 11 - e % 11; 14502 if (e === 10) { 14503 return false; 14504 } 14505 if (e === 11) { 14506 e = 0; 14507 } 14508 return "".concat(e) === t.substr(9, 1); 14509 }; 14510 return { 14511 meta: {}, 14512 valid: _r(e) || _s(e) || _n(e) 14513 }; 14514 } 14515 } 14516 function t$v(t) { 14517 if (t === "") { 14518 return { 14519 meta: {}, 14520 valid: true 14521 }; 14522 } 14523 var e = t.replace(/[^\d]+/g, ""); 14524 if (e === "" || e.length !== 14) { 14525 return { 14526 meta: {}, 14527 valid: false 14528 }; 14529 } 14530 if (e === "00000000000000" || e === "11111111111111" || e === "22222222222222" || e === "33333333333333" || e === "44444444444444" || e === "55555555555555" || e === "66666666666666" || e === "77777777777777" || e === "88888888888888" || e === "99999999999999") { 14531 return { 14532 meta: {}, 14533 valid: false 14534 }; 14535 } 14536 var r = e.length - 2; 14537 var a = e.substring(0, r); 14538 var l = e.substring(r); 14539 var n = 0; 14540 var i = r - 7; 14541 var s; 14542 for (s = r; s >= 1; s--) { 14543 n += parseInt(a.charAt(r - s), 10) * i--; 14544 if (i < 2) { 14545 i = 9; 14546 } 14547 } 14548 var f = n % 11 < 2 ? 0 : 11 - n % 11; 14549 if (f !== parseInt(l.charAt(0), 10)) { 14550 return { 14551 meta: {}, 14552 valid: false 14553 }; 14554 } 14555 r = r + 1; 14556 a = e.substring(0, r); 14557 n = 0; 14558 i = r - 7; 14559 for (s = r; s >= 1; s--) { 14560 n += parseInt(a.charAt(r - s), 10) * i--; 14561 if (i < 2) { 14562 i = 9; 14563 } 14564 } 14565 f = n % 11 < 2 ? 0 : 11 - n % 11; 14566 return { 14567 meta: {}, 14568 valid: f === parseInt(l.charAt(1), 10) 14569 }; 14570 } 14571 function t$u(t) { 14572 var e = t; 14573 if (/^CHE[0-9]{9}(MWST|TVA|IVA|TPV)?$/.test(e)) { 14574 e = e.substr(2); 14575 } 14576 if (!/^E[0-9]{9}(MWST|TVA|IVA|TPV)?$/.test(e)) { 14577 return { 14578 meta: {}, 14579 valid: false 14580 }; 14581 } 14582 e = e.substr(1); 14583 var r = [5, 4, 3, 2, 7, 6, 5, 4]; 14584 var s = 0; 14585 for (var _t = 0; _t < 8; _t++) { 14586 s += parseInt(e.charAt(_t), 10) * r[_t]; 14587 } 14588 s = 11 - s % 11; 14589 if (s === 10) { 14590 return { 14591 meta: {}, 14592 valid: false 14593 }; 14594 } 14595 if (s === 11) { 14596 s = 0; 14597 } 14598 return { 14599 meta: {}, 14600 valid: "".concat(s) === e.substr(8, 1) 14601 }; 14602 } 14603 function t$t(t) { 14604 var e = t; 14605 if (/^CY[0-5|9][0-9]{7}[A-Z]$/.test(e)) { 14606 e = e.substr(2); 14607 } 14608 if (!/^[0-5|9][0-9]{7}[A-Z]$/.test(e)) { 14609 return { 14610 meta: {}, 14611 valid: false 14612 }; 14613 } 14614 if (e.substr(0, 2) === "12") { 14615 return { 14616 meta: {}, 14617 valid: false 14618 }; 14619 } 14620 var r = 0; 14621 var s = { 14622 0: 1, 14623 1: 0, 14624 2: 5, 14625 3: 7, 14626 4: 9, 14627 5: 13, 14628 6: 15, 14629 7: 17, 14630 8: 19, 14631 9: 21 14632 }; 14633 for (var _t = 0; _t < 8; _t++) { 14634 var a = parseInt(e.charAt(_t), 10); 14635 if (_t % 2 === 0) { 14636 a = s["".concat(a)]; 14637 } 14638 r += a; 14639 } 14640 return { 14641 meta: {}, 14642 valid: "".concat("ABCDEFGHIJKLMNOPQRSTUVWXYZ"[r % 26]) === e.substr(8, 1) 14643 }; 14644 } 14645 function e$c(e) { 14646 var r = e; 14647 if (/^CZ[0-9]{8,10}$/.test(r)) { 14648 r = r.substr(2); 14649 } 14650 if (!/^[0-9]{8,10}$/.test(r)) { 14651 return { 14652 meta: {}, 14653 valid: false 14654 }; 14655 } 14656 var a = 0; 14657 var s = 0; 14658 if (r.length === 8) { 14659 if ("".concat(r.charAt(0)) === "9") { 14660 return { 14661 meta: {}, 14662 valid: false 14663 }; 14664 } 14665 a = 0; 14666 for (s = 0; s < 7; s++) { 14667 a += parseInt(r.charAt(s), 10) * (8 - s); 14668 } 14669 a = 11 - a % 11; 14670 if (a === 10) { 14671 a = 0; 14672 } 14673 if (a === 11) { 14674 a = 1; 14675 } 14676 return { 14677 meta: {}, 14678 valid: "".concat(a) === r.substr(7, 1) 14679 }; 14680 } else if (r.length === 9 && "".concat(r.charAt(0)) === "6") { 14681 a = 0; 14682 for (s = 0; s < 7; s++) { 14683 a += parseInt(r.charAt(s + 1), 10) * (8 - s); 14684 } 14685 a = 11 - a % 11; 14686 if (a === 10) { 14687 a = 0; 14688 } 14689 if (a === 11) { 14690 a = 1; 14691 } 14692 a = [8, 7, 6, 5, 4, 3, 2, 1, 0, 9, 10][a - 1]; 14693 return { 14694 meta: {}, 14695 valid: "".concat(a) === r.substr(8, 1) 14696 }; 14697 } else if (r.length === 9 || r.length === 10) { 14698 var _e = 1900 + parseInt(r.substr(0, 2), 10); 14699 var _a = parseInt(r.substr(2, 2), 10) % 50 % 20; 14700 var _s = parseInt(r.substr(4, 2), 10); 14701 if (r.length === 9) { 14702 if (_e >= 1980) { 14703 _e -= 100; 14704 } 14705 if (_e > 1953) { 14706 return { 14707 meta: {}, 14708 valid: false 14709 }; 14710 } 14711 } else if (_e < 1954) { 14712 _e += 100; 14713 } 14714 if (!t$Y(_e, _a, _s)) { 14715 return { 14716 meta: {}, 14717 valid: false 14718 }; 14719 } 14720 if (r.length === 10) { 14721 var _t = parseInt(r.substr(0, 9), 10) % 11; 14722 if (_e < 1985) { 14723 _t = _t % 10; 14724 } 14725 return { 14726 meta: {}, 14727 valid: "".concat(_t) === r.substr(9, 1) 14728 }; 14729 } 14730 return { 14731 meta: {}, 14732 valid: true 14733 }; 14734 } 14735 return { 14736 meta: {}, 14737 valid: false 14738 }; 14739 } 14740 function e$b(e) { 14741 var r = e; 14742 if (/^DE[0-9]{9}$/.test(r)) { 14743 r = r.substr(2); 14744 } 14745 if (!/^[0-9]{9}$/.test(r)) { 14746 return { 14747 meta: {}, 14748 valid: false 14749 }; 14750 } 14751 return { 14752 meta: {}, 14753 valid: t$14(r) 14754 }; 14755 } 14756 function t$s(t) { 14757 var e = t; 14758 if (/^DK[0-9]{8}$/.test(e)) { 14759 e = e.substr(2); 14760 } 14761 if (!/^[0-9]{8}$/.test(e)) { 14762 return { 14763 meta: {}, 14764 valid: false 14765 }; 14766 } 14767 var r = 0; 14768 var a = [2, 7, 6, 5, 4, 3, 2, 1]; 14769 for (var _t = 0; _t < 8; _t++) { 14770 r += parseInt(e.charAt(_t), 10) * a[_t]; 14771 } 14772 return { 14773 meta: {}, 14774 valid: r % 11 === 0 14775 }; 14776 } 14777 function t$r(t) { 14778 var e = t; 14779 if (/^EE[0-9]{9}$/.test(e)) { 14780 e = e.substr(2); 14781 } 14782 if (!/^[0-9]{9}$/.test(e)) { 14783 return { 14784 meta: {}, 14785 valid: false 14786 }; 14787 } 14788 var r = 0; 14789 var a = [3, 7, 1, 3, 7, 1, 3, 7, 1]; 14790 for (var _t = 0; _t < 9; _t++) { 14791 r += parseInt(e.charAt(_t), 10) * a[_t]; 14792 } 14793 return { 14794 meta: {}, 14795 valid: r % 10 === 0 14796 }; 14797 } 14798 function t$q(t) { 14799 var e = t; 14800 if (/^ES[0-9A-Z][0-9]{7}
14800[0-9A-Z]$/.test(e)) { 14801 e = e.substr(2); 14802 } 14803 if (!/^[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(e)) { 14804 return { 14805 meta: {}, 14806 valid: false 14807 }; 14808 } 14809 var s = function s(t) { 14810 var e = parseInt(t.substr(0, 8), 10); 14811 return "".concat("TRWAGMYFPDXBNJZSQVHLCKE"[e % 23]) === t.substr(8, 1); 14812 }; 14813 var r = function r(t) { 14814 var e = ["XYZ".indexOf(t.charAt(0)), t.substr(1)].join(""); 14815 var s = "TRWAGMYFPDXBNJZSQVHLCKE"[parseInt(e, 10) % 23]; 14816 return "".concat(s) === t.substr(8, 1); 14817 }; 14818 var n = function n(t) { 14819 var e = t.charAt(0); 14820 var s; 14821 if ("KLM".indexOf(e) !== -1) { 14822 s = parseInt(t.substr(1, 8), 10); 14823 s = "TRWAGMYFPDXBNJZSQVHLCKE"[s % 23]; 14824 return "".concat(s) === t.substr(8, 1); 14825 } else if ("ABCDEFGHJNPQRSUVW".indexOf(e) !== -1) { 14826 var _e = [2, 1, 2, 1, 2, 1, 2]; 14827 var _s = 0; 14828 var _r = 0; 14829 for (var _n = 0; _n < 7; _n++) { 14830 _r = parseInt(t.charAt(_n + 1), 10) * _e[_n]; 14831 if (_r > 9) { 14832 _r = Math.floor(_r / 10) + _r % 10; 14833 } 14834 _s += _r; 14835 } 14836 _s = 10 - _s % 10; 14837 if (_s === 10) { 14838 _s = 0; 14839 } 14840 return "".concat(_s) === t.substr(8, 1) || "JABCDEFGHI"[_s] === t.substr(8, 1); 14841 } 14842 return false; 14843 }; 14844 var a = e.charAt(0); 14845 if (/^[0-9]$/.test(a)) { 14846 return { 14847 meta: { 14848 type: "DNI" 14849 }, 14850 valid: s(e) 14851 }; 14852 } else if (/^[XYZ]$/.test(a)) { 14853 return { 14854 meta: { 14855 type: "NIE" 14856 }, 14857 valid: r(e) 14858 }; 14859 } else { 14860 return { 14861 meta: { 14862 type: "CIF" 14863 }, 14864 valid: n(e) 14865 }; 14866 } 14867 } 14868 function t$p(t) { 14869 var e = t; 14870 if (/^FI[0-9]{8}$/.test(e)) { 14871 e = e.substr(2); 14872 } 14873 if (!/^[0-9]{8}$/.test(e)) { 14874 return { 14875 meta: {}, 14876 valid: false 14877 }; 14878 } 14879 var r = [7, 9, 10, 5, 8, 4, 2, 1]; 14880 var a = 0; 14881 for (var _t = 0; _t < 8; _t++) { 14882 a += parseInt(e.charAt(_t), 10) * r[_t]; 14883 } 14884 return { 14885 meta: {}, 14886 valid: a % 11 === 0 14887 }; 14888 } 14889 function e$a(e) { 14890 var r = e; 14891 if (/^FR[0-9A-Z]{2}[0-9]{9}$/.test(r)) { 14892 r = r.substr(2); 14893 } 14894 if (!/^[0-9A-Z]{2}[0-9]{9}$/.test(r)) { 14895 return { 14896 meta: {}, 14897 valid: false 14898 }; 14899 } 14900 if (r.substr(2, 4) !== "000") { 14901 return { 14902 meta: {}, 14903 valid: t$15(r.substr(2)) 14904 }; 14905 } 14906 if (/^[0-9]{2}$/.test(r.substr(0, 2))) { 14907 return { 14908 meta: {}, 14909 valid: r.substr(0, 2) === "".concat(parseInt(r.substr(2) + "12", 10) % 97) 14910 }; 14911 } else { 14912 var _t = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ"; 14913 var _e; 14914 if (/^[0-9]$/.test(r.charAt(0))) { 14915 _e = _t.indexOf(r.charAt(0)) * 24 + _t.indexOf(r.charAt(1)) - 10; 14916 } else { 14917 _e = _t.indexOf(r.charAt(0)) * 34 + _t.indexOf(r.charAt(1)) - 100; 14918 } 14919 return { 14920 meta: {}, 14921 valid: (parseInt(r.substr(2), 10) + 1 + Math.floor(_e / 11)) % 11 === _e % 11 14922 }; 14923 } 14924 } 14925 function t$o(t) { 14926 var s = t; 14927 if (/^GB[0-9]{9}$/.test(s) || /^GB[0-9]{12}$/.test(s) || /^GBGD[0-9]{3}$/.test(s) || /^GBHA[0-9]{3}$/.test(s) || /^GB(GD|HA)8888[0-9]{5}$/.test(s)) { 14928 s = s.substr(2); 14929 } 14930 if (!/^[0-9]{9}$/.test(s) && !/^[0-9]{12}$/.test(s) && !/^GD[0-9]{3}$/.test(s) && !/^HA[0-9]{3}$/.test(s) && !/^(GD|HA)8888[0-9]{5}$/.test(s)) { 14931 return { 14932 meta: {}, 14933 valid: false 14934 }; 14935 } 14936 var e = s.length; 14937 if (e === 5) { 14938 var _t = s.substr(0, 2); 14939 var _e = parseInt(s.substr(2), 10); 14940 return { 14941 meta: {}, 14942 valid: "GD" === _t && _e < 500 || "HA" === _t && _e >= 500 14943 }; 14944 } else if (e === 11 && ("GD8888" === s.substr(0, 6) || "HA8888" === s.substr(0, 6))) { 14945 if ("GD" === s.substr(0, 2) && parseInt(s.substr(6, 3), 10) >= 500 || "HA" === s.substr(0, 2) && parseInt(s.substr(6, 3), 10) < 500) { 14946 return { 14947 meta: {}, 14948 valid: false 14949 }; 14950 } 14951 return { 14952 meta: {}, 14953 valid: parseInt(s.substr(6, 3), 10) % 97 === parseInt(s.substr(9, 2), 10) 14954 }; 14955 } else if (e === 9 || e === 12) { 14956 var _t2 = [8, 7, 6, 5, 4, 3, 2, 10, 1]; 14957 var _e2 = 0; 14958 for (var _r = 0; _r < 9; _r++) { 14959 _e2 += parseInt(s.charAt(_r), 10) * _t2[_r]; 14960 } 14961 _e2 = _e2 % 97; 14962 var r = parseInt(s.substr(0, 3), 10) >= 100 ? _e2 === 0 || _e2 === 42 || _e2 === 55 : _e2 === 0; 14963 return { 14964 meta: {}, 14965 valid: r 14966 }; 14967 } 14968 return { 14969 meta: {}, 14970 valid: true 14971 }; 14972 } 14973 function t$n(t) { 14974 var e = t; 14975 if (/^(GR|EL)[0-9]{9}$/.test(e)) { 14976 e = e.substr(2); 14977 } 14978 if (!/^[0-9]{9}$/.test(e)) { 14979 return { 14980 meta: {}, 14981 valid: false 14982 }; 14983 } 14984 if (e.length === 8) { 14985 e = "0".concat(e); 14986 } 14987 var r = [256, 128, 64, 32, 16, 8, 4, 2]; 14988 var s = 0; 14989 for (var _t = 0; _t < 8; _t++) { 14990 s += parseInt(e.charAt(_t), 10) * r[_t]; 14991 } 14992 s = s % 11 % 10; 14993 return { 14994 meta: {}, 14995 valid: "".concat(s) === e.substr(8, 1) 14996 }; 14997 } 14998 function e$9(e) { 14999 var r = e; 15000 if (/^HR[0-9]{11}$/.test(r)) { 15001 r = r.substr(2); 15002 } 15003 if (!/^[0-9]{11}$/.test(r)) { 15004 return { 15005 meta: {}, 15006 valid: false 15007 }; 15008 } 15009 return { 15010 meta: {}, 15011 valid: t$14(r) 15012 }; 15013 } 15014 function t$m(t) { 15015 var e = t; 15016 if (/^HU[0-9]{8}$/.test(e)) { 15017 e = e.substr(2); 15018 } 15019 if (!/^[0-9]{8}$/.test(e)) { 15020 return { 15021 meta: {}, 15022 valid: false 15023 }; 15024 } 15025 var r = [9, 7, 3, 1, 9, 7, 3, 1]; 15026 var a = 0; 15027 for (var _t = 0; _t < 8; _t++) { 15028 a += parseInt(e.charAt(_t), 10) * r[_t]; 15029 } 15030 return { 15031 meta: {}, 15032 valid: a % 10 === 0 15033 }; 15034 } 15035 function t$l(t) { 15036 var e = t; 15037 if (/^IE[0-9][0-9A-Z*+][0-9]{5}[A-Z]{1,2}$/.test(e)) { 15038 e = e.substr(2); 15039 } 15040 if (!/^[0-9][0-9A-Z*+][0-9]{5}[A-Z]{1,2}$/.test(e)) { 15041 return { 15042 meta: {}, 15043 valid: false 15044 }; 15045 } 15046 var r = function r(t) { 15047 var e = t; 15048 while (e.length < 7) { 15049 e = "0".concat(e); 15050 } 15051 var r = "WABCDEFGHIJKLMNOPQRSTUV"; 15052 var s = 0; 15053 for (var _t = 0; _t < 7; _t++) { 15054 s += parseInt(e.charAt(_t), 10) * (8 - _t); 15055 } 15056 s += 9 * r.indexOf(e.substr(7)); 15057 return r[s % 23]; 15058 }; 15059 if (/^[0-9]+$/.test(e.substr(0, 7))) { 15060 return { 15061 meta: {}, 15062 valid: e.charAt(7) === r("".concat(e.substr(0, 7)).concat(e.substr(8))) 15063 }; 15064 } else if ("ABCDEFGHIJKLMNOPQRSTUVWXYZ+*".indexOf(e.charAt(1)) !== -1) { 15065 return { 15066 meta: {}, 15067 valid: e.charAt(7) === r("".concat(e.substr(2, 5)).concat(e.substr(0, 1))) 15068 }; 15069 } 15070 return { 15071 meta: {}, 15072 valid: true 15073 }; 15074 } 15075 function t$k(t) { 15076 var e = t; 15077 if (/^IS[0-9]{5,6}$/.test(e)) { 15078 e = e.substr(2); 15079 } 15080 return { 15081 meta: {}, 15082 valid: /^[0-9]{5,6}$/.test(e) 15083 }; 15084 } 15085 function e$8(e) { 15086 var r = e; 15087 if (/^IT[0-9]{11}$/.test(r)) { 15088 r = r.substr(2); 15089 } 15090 if (!/^[0-9]{11}$/.test(r)) { 15091 return { 15092 meta: {}, 15093 valid: false 15094 }; 15095 } 15096 if (parseInt(r.substr(0, 7), 10) === 0) { 15097 return { 15098 meta: {}, 15099 valid: false 15100 }; 15101 } 15102 var a = parseInt(r.substr(7, 3), 10); 15103 if (a < 1 || a > 201 && a !== 999 && a !== 888) { 15104 return { 15105 meta: {}, 15106 valid: false 15107 }; 15108 } 15109 return { 15110 meta: {}, 15111 valid: t$15(r) 15112 }; 15113 } 15114 function t$j(t) { 15115 var e = t;
15116 if (/^LT([0-9]{7}1[0-9]|[0-9]{10}1[0-9])$/.test(e)) { 15117 e = e.substr(2); 15118 } 15119 if (!/^([0-9]{7}1[0-9]|[0-9]{10}1[0-9])$/.test(e)) { 15120 return { 15121 meta: {}, 15122 valid: false 15123 }; 15124 } 15125 var r = e.length; 15126 var a = 0; 15127 var l; 15128 for (l = 0; l < r - 1; l++) { 15129 a += parseInt(e.charAt(l), 10) * (1 + l % 9); 15130 } 15131 var f = a % 11; 15132 if (f === 10) { 15133 a = 0; 15134 for (l = 0; l < r - 1; l++) { 15135 a += parseInt(e.charAt(l), 10) * (1 + (l + 2) % 9); 15136 } 15137 } 15138 f = f % 11 % 10; 15139 return { 15140 meta: {}, 15141 valid: "".concat(f) === e.charAt(r - 1) 15142 }; 15143 } 15144 function t$i(t) { 15145 var e = t; 15146 if (/^LU[0-9]{8}$/.test(e)) { 15147 e = e.substr(2); 15148 } 15149 if (!/^[0-9]{8}$/.test(e)) { 15150 return { 15151 meta: {}, 15152 valid: false 15153 }; 15154 } 15155 return { 15156 meta: {}, 15157 valid: "".concat(parseInt(e.substr(0, 6), 10) % 89) === e.substr(6, 2) 15158 }; 15159 } 15160 function e$7(e) { 15161 var r = e; 15162 if (/^LV[0-9]{11}$/.test(r)) { 15163 r = r.substr(2); 15164 } 15165 if (!/^[0-9]{11}$/.test(r)) { 15166 return { 15167 meta: {}, 15168 valid: false 15169 }; 15170 } 15171 var s = parseInt(r.charAt(0), 10); 15172 var a = r.length; 15173 var n = 0; 15174 var l = []; 15175 var i; 15176 if (s > 3) { 15177 n = 0; 15178 l = [9, 1, 4, 8, 3, 10, 2, 5, 7, 6, 1]; 15179 for (i = 0; i < a; i++) { 15180 n += parseInt(r.charAt(i), 10) * l[i]; 15181 } 15182 n = n % 11; 15183 return { 15184 meta: {}, 15185 valid: n === 3 15186 }; 15187 } else { 15188 var _e = parseInt(r.substr(0, 2), 10); 15189 var _s = parseInt(r.substr(2, 2), 10); 15190 var f = parseInt(r.substr(4, 2), 10); 15191 f = f + 1800 + parseInt(r.charAt(6), 10) * 100; 15192 if (!t$Y(f, _s, _e)) { 15193 return { 15194 meta: {}, 15195 valid: false 15196 }; 15197 } 15198 n = 0; 15199 l = [10, 5, 8, 4, 2, 1, 6, 3, 7, 9]; 15200 for (i = 0; i < a - 1; i++) { 15201 n += parseInt(r.charAt(i), 10) * l[i]; 15202 } 15203 n = (n + 1) % 11 % 10; 15204 return { 15205 meta: {}, 15206 valid: "".concat(n) === r.charAt(a - 1) 15207 }; 15208 } 15209 } 15210 function t$h(t) { 15211 var e = t; 15212 if (/^MT[0-9]{8}$/.test(e)) { 15213 e = e.substr(2); 15214 } 15215 if (!/^[0-9]{8}$/.test(e)) { 15216 return { 15217 meta: {}, 15218 valid: false 15219 }; 15220 } 15221 var r = [3, 4, 6, 7, 8, 9, 10, 1]; 15222 var a = 0; 15223 for (var _t = 0; _t < 8; _t++) { 15224 a += parseInt(e.charAt(_t), 10) * r[_t]; 15225 } 15226 return { 15227 meta: {}, 15228 valid: a % 37 === 0 15229 }; 15230 } 15231 function t$g(t) { 15232 return t.split("").map(function (t) { 15233 var n = t.charCodeAt(0); 15234 return n >= 65 && n <= 90 ? n - 55 : t; 15235 }).join("").split("").map(function (t) { 15236 return parseInt(t, 10); 15237 }); 15238 } 15239 function n(n) { 15240 var e = t$g(n); 15241 var r = 0; 15242 var o = e.length; 15243 for (var _t = 0; _t < o - 1; ++_t) { 15244 r = (r + e[_t]) * 10 % 97; 15245 } 15246 r += e[o - 1]; 15247 return r % 97 === 1; 15248 } 15249 function e$6(e) { 15250 var i = e; 15251 if (/^NL[0-9]{9}B[0-9]{2}$/.test(i)) { 15252 i = i.substr(2); 15253 } 15254 if (!/^[0-9]{9}B[0-9]{2}$/.test(i)) { 15255 return { 15256 meta: {}, 15257 valid: false 15258 }; 15259 } 15260 var o = i.substr(0, 9); 15261 return { 15262 meta: {}, 15263 valid: e$o(o).valid || n("NL".concat(i)) 15264 }; 15265 } 15266 function t$f(t) { 15267 var e = t; 15268 if (/^NO[0-9]{9}$/.test(e)) { 15269 e = e.substr(2); 15270 } 15271 if (!/^[0-9]{9}$/.test(e)) { 15272 return { 15273 meta: {}, 15274 valid: false 15275 }; 15276 } 15277 var r = [3, 2, 7, 6, 5, 4, 3, 2]; 15278 var s = 0; 15279 for (var _t = 0; _t < 8; _t++) { 15280 s += parseInt(e.charAt(_t), 10) * r[_t]; 15281 } 15282 s = 11 - s % 11; 15283 if (s === 11) { 15284 s = 0; 15285 } 15286 return { 15287 meta: {}, 15288 valid: "".concat(s) === e.substr(8, 1) 15289 }; 15290 } 15291 function t$e(t) { 15292 var e = t; 15293 if (/^PL[0-9]{10}$/.test(e)) { 15294 e = e.substr(2); 15295 } 15296 if (!/^[0-9]{10}$/.test(e)) { 15297 return { 15298 meta: {}, 15299 valid: false 15300 }; 15301 } 15302 var r = [6, 5, 7, 2, 3, 4, 5, 6, 7, -1]; 15303 var a = 0; 15304 for (var _t = 0; _t < 10; _t++) { 15305 a += parseInt(e.charAt(_t), 10) * r[_t]; 15306 } 15307 return { 15308 meta: {}, 15309 valid: a % 11 === 0 15310 }; 15311 } 15312 function t$d(t) { 15313 var e = t; 15314 if (/^PT[0-9]{9}$/.test(e)) { 15315 e = e.substr(2); 15316 } 15317 if (!/^[0-9]{9}$/.test(e)) { 15318 return { 15319 meta: {}, 15320 valid: false 15321 }; 15322 } 15323 var r = [9, 8, 7, 6, 5, 4, 3, 2]; 15324 var s = 0; 15325 for (var _t = 0; _t < 8; _t++) { 15326 s += parseInt(e.charAt(_t), 10) * r[_t]; 15327 } 15328 s = 11 - s % 11; 15329 if (s > 9) { 15330 s = 0; 15331 } 15332 return { 15333 meta: {}, 15334 valid: "".concat(s) === e.substr(8, 1) 15335 }; 15336 } 15337 function t$c(t) { 15338 var e = t; 15339 if (/^RO[1-9][0-9]{1,9}$/.test(e)) { 15340 e = e.substr(2); 15341 } 15342 if (!/^[1-9][0-9]{1,9}$/.test(e)) { 15343 return { 15344 meta: {}, 15345 valid: false 15346 }; 15347 } 15348 var s = e.length; 15349 var r = [7, 5, 3, 2, 1, 7, 5, 3, 2].slice(10 - s); 15350 var l = 0; 15351 for (var _t = 0; _t < s - 1; _t++) { 15352 l += parseInt(e.charAt(_t), 10) * r[_t]; 15353 } 15354 l = 10 * l % 11 % 10; 15355 return { 15356 meta: {}, 15357 valid: "".concat(l) === e.substr(s - 1, 1) 15358 }; 15359 } 15360 function t$b(t) { 15361 var e = t; 15362 if (/^RS[0-9]{9}$/.test(e)) { 15363 e = e.substr(2); 15364 } 15365 if (!/^[0-9]{9}$/.test(e)) { 15366 return { 15367 meta: {}, 15368 valid: false 15369 }; 15370 } 15371 var r = 10; 15372 var a = 0; 15373 for (var _t = 0; _t < 8; _t++) { 15374 a = (parseInt(e.charAt(_t), 10) + r) % 10; 15375 if (a === 0) { 15376 a = 10; 15377 } 15378 r = 2 * a % 11; 15379 } 15380 return { 15381 meta: {}, 15382 valid: (r + parseInt(e.substr(8, 1), 10)) % 10 === 1 15383 }; 15384 } 15385 function t$a(t) { 15386 var e = t; 15387 if (/^RU([0-9]{10}|[0-9]{12})$/.test(e)) { 15388 e = e.substr(2); 15389 } 15390 if (!/^([0-9]{10}|[0-9]{12})$/.test(e)) { 15391 return { 15392 meta: {}, 15393 valid: false 15394 }; 15395 } 15396 var r = 0; 15397 if (e.length === 10) {
15398 var _t = [2, 4, 10, 3, 5, 9, 4, 6, 8, 0]; 15399 var s = 0; 15400 for (r = 0; r < 10; r++) { 15401 s += parseInt(e.charAt(r), 10) * _t[r]; 15402 } 15403 s = s % 11; 15404 if (s > 9) { 15405 s = s % 10; 15406 } 15407 return { 15408 meta: {}, 15409 valid: "".concat(s) === e.substr(9, 1) 15410 }; 15411 } else if (e.length === 12) { 15412 var _t2 = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0]; 15413 var _s = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0]; 15414 var a = 0; 15415 var l = 0; 15416 for (r = 0; r < 11; r++) { 15417 a += parseInt(e.charAt(r), 10) * _t2[r]; 15418 l += parseInt(e.charAt(r), 10) * _s[r]; 15419 } 15420 a = a % 11; 15421 if (a > 9) { 15422 a = a % 10; 15423 } 15424 l = l % 11; 15425 if (l > 9) { 15426 l = l % 10; 15427 } 15428 return { 15429 meta: {}, 15430 valid: "".concat(a) === e.substr(10, 1) && "".concat(l) === e.substr(11, 1) 15431 }; 15432 } 15433 return { 15434 meta: {}, 15435 valid: true 15436 }; 15437 } 15438 function e$5(e) { 15439 var r = e; 15440 if (/^SE[0-9]{10}01$/.test(r)) { 15441 r = r.substr(2); 15442 } 15443 if (!/^[0-9]{10}01$/.test(r)) { 15444 return { 15445 meta: {}, 15446 valid: false 15447 }; 15448 } 15449 r = r.substr(0, 10); 15450 return { 15451 meta: {}, 15452 valid: t$15(r) 15453 }; 15454 } 15455 function t$9(t) { 15456 var e = t.match(/^(SI)?([1-9][0-9]{7})$/); 15457 if (!e) { 15458 return { 15459 meta: {}, 15460 valid: false 15461 }; 15462 } 15463 var r = e[1] ? t.substr(2) : t; 15464 var a = [8, 7, 6, 5, 4, 3, 2]; 15465 var s = 0; 15466 for (var _t = 0; _t < 7; _t++) { 15467 s += parseInt(r.charAt(_t), 10) * a[_t]; 15468 } 15469 s = 11 - s % 11; 15470 if (s === 10) { 15471 s = 0; 15472 } 15473 return { 15474 meta: {}, 15475 valid: "".concat(s) === r.substr(7, 1) 15476 }; 15477 } 15478 function t$8(t) { 15479 var e = t; 15480 if (/^SK[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(e)) { 15481 e = e.substr(2); 15482 } 15483 if (!/^[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(e)) { 15484 return { 15485 meta: {}, 15486 valid: false 15487 }; 15488 } 15489 return { 15490 meta: {}, 15491 valid: parseInt(e, 10) % 11 === 0 15492 }; 15493 } 15494 function t$7(t) { 15495 var e = t; 15496 if (/^VE[VEJPG][0-9]{9}$/.test(e)) { 15497 e = e.substr(2); 15498 } 15499 if (!/^[VEJPG][0-9]{9}$/.test(e)) { 15500 return { 15501 meta: {}, 15502 valid: false 15503 }; 15504 } 15505 var r = { 15506 E: 8, 15507 G: 20, 15508 J: 12, 15509 P: 16, 15510 V: 4 15511 }; 15512 var s = [3, 2, 7, 6, 5, 4, 3, 2]; 15513 var a = r[e.charAt(0)]; 15514 for (var _t = 0; _t < 8; _t++) { 15515 a += parseInt(e.charAt(_t + 1), 10) * s[_t]; 15516 } 15517 a = 11 - a % 11; 15518 if (a === 11 || a === 10) { 15519 a = 0; 15520 } 15521 return { 15522 meta: {}, 15523 valid: "".concat(a) === e.substr(9, 1) 15524 }; 15525 } 15526 function t$6(t) { 15527 var e = t; 15528 if (/^ZA4[0-9]{9}$/.test(e)) { 15529 e = e.substr(2); 15530 } 15531 return { 15532 meta: {}, 15533 valid: /^4[0-9]{9}$/.test(e) 15534 }; 15535 } 15536 function x() { 15537 var x = ["AR", "AT", "BE", "BG", "BR", "CH", "CY", "CZ", "DE", "DK", "EE", "EL", "ES", "FI", "FR", "GB", "GR", "HR", "HU", "IE", "IS", "IT", "LT", "LU", "LV", "MT", "NL", "NO", "PL", "PT", "RO", "RU", "RS", "SE", "SK", "SI", "VE", "ZA"]; 15538 return { 15539 validate: function validate(D) { 15540 var F = D.value; 15541 if (F === "") { 15542 return { 15543 valid: true 15544 }; 15545 } 15546 var K = Object.assign({}, { 15547 message: "" 15548 }, D.options); 15549 var N = F.substr(0, 2); 15550 if ("function" === typeof K.country) { 15551 N = K.country.call(this); 15552 } else { 15553 N = K.country; 15554 } 15555 if (x.indexOf(N) === -1) { 15556 return { 15557 valid: true 15558 }; 15559 } 15560 var P = { 15561 meta: {}, 15562 valid: true 15563 }; 15564 switch (N.toLowerCase()) { 15565 case "ar": 15566 P = t$y(F); 15567 break; 15568 case "at": 15569 P = t$x(F); 15570 break; 15571 case "be": 15572 P = t$w(F); 15573 break; 15574 case "bg": 15575 P = r$1(F); 15576 break; 15577 case "br": 15578 P = t$v(F); 15579 break; 15580 case "ch": 15581 P = t$u(F); 15582 break; 15583 case "cy": 15584 P = t$t(F); 15585 break; 15586 case "cz": 15587 P = e$c(F); 15588 break; 15589 case "de": 15590 P = e$b(F); 15591 break; 15592 case "dk": 15593 P = t$s(F); 15594 break; 15595 case "ee": 15596 P = t$r(F); 15597 break; 15598 case "el": 15599 P = t$n(F); 15600 break; 15601 case "es": 15602 P = t$q(F); 15603 break; 15604 case "fi":
15605 P = t$p(F); 15606 break; 15607 case "fr": 15608 P = e$a(F); 15609 break; 15610 case "gb": 15611 P = t$o(F); 15612 break; 15613 case "gr": 15614 P = t$n(F); 15615 break; 15616 case "hr": 15617 P = e$9(F); 15618 break; 15619 case "hu": 15620 P = t$m(F); 15621 break; 15622 case "ie": 15623 P = t$l(F); 15624 break; 15625 case "is": 15626 P = t$k(F); 15627 break; 15628 case "it": 15629 P = e$8(F); 15630 break; 15631 case "lt": 15632 P = t$j(F); 15633 break; 15634 case "lu": 15635 P = t$i(F); 15636 break; 15637 case "lv": 15638 P = e$7(F); 15639 break; 15640 case "mt": 15641 P = t$h(F); 15642 break; 15643 case "nl": 15644 P = e$6(F); 15645 break; 15646 case "no": 15647 P = t$f(F); 15648 break; 15649 case "pl": 15650 P = t$e(F); 15651 break; 15652 case "pt": 15653 P = t$d(F); 15654 break; 15655 case "ro": 15656 P = t$c(F); 15657 break; 15658 case "rs": 15659 P = t$b(F); 15660 break; 15661 case "ru": 15662 P = t$a(F); 15663 break; 15664 case "se": 15665 P = e$5(F); 15666 break; 15667 case "si": 15668 P = t$9(F); 15669 break; 15670 case "sk": 15671 P = t$8(F); 15672 break; 15673 case "ve":
15674 P = t$7(F); 15675 break; 15676 case "za": 15677 P = t$6(F); 15678 break; 15679 } 15680 var Z = r$d(D.l10n && D.l10n.vat ? K.message || D.l10n.vat.country : K.message, D.l10n && D.l10n.vat && D.l10n.vat.countries ? D.l10n.vat.countries[N.toUpperCase()] : N.toUpperCase()); 15681 return Object.assign({}, { 15682 message: Z 15683 }, P); 15684 } 15685 }; 15686 } 15687 function t$5() { 15688 return { 15689 validate: function validate(t) { 15690 if (t.value === "") { 15691 return { 15692 valid: true 15693 }; 15694 } 15695 if (!/^[a-hj-npr-z0-9]{8}[0-9xX][a-hj-npr-z0-9]{8}$/i.test(t.value)) { 15696 return { 15697 valid: false 15698 }; 15699 } 15700 var e = t.value.toUpperCase(); 15701 var r = { 15702 A: 1, 15703 B: 2, 15704 C: 3, 15705 D: 4, 15706 E: 5, 15707 F: 6, 15708 G: 7, 15709 H: 8, 15710 J: 1, 15711 K: 2, 15712 L: 3, 15713 M: 4, 15714 N: 5, 15715 P: 7, 15716 R: 9, 15717 S: 2, 15718 T: 3, 15719 U: 4, 15720 V: 5, 15721 W: 6, 15722 X: 7, 15723 Y: 8, 15724 Z: 9, 15725 0: 0, 15726 1: 1, 15727 2: 2, 15728 3: 3, 15729 4: 4, 15730 5: 5, 15731 6: 6, 15732 7: 7, 15733 8: 8, 15734 9: 9 15735 }; 15736 var a = [8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2]; 15737 var l = e.length; 15738 var n = 0; 15739 for (var _t = 0; _t < l; _t++) { 15740 n += r["".concat(e.charAt(_t))] * a[_t]; 15741 } 15742 var u = "".concat(n % 11); 15743 if (u === "10") { 15744 u = "X"; 15745 } 15746 return { 15747 valid: u === e.charAt(8) 15748 }; 15749 } 15750 }; 15751 } 15752 function s$4() { 15753 var s = ["AT", "BG", "BR", "CA", "CH", "CZ", "DE", "DK", "ES", "FR", "GB", "IE", "IN", "IT", "MA", "NL", "PL", "PT", "RO", "RU", "SE", "SG", "SK", "US"]; 15754 var a = function a(e) { 15755 var s = "[ABCDEFGHIJKLMNOPRSTUWYZ]"; 15756 var a = "[ABCDEFGHKLMNOPQRSTUVWXY]"; 15757 var t = "[ABCDEFGHJKPMNRSTUVWXY]"; 15758 var r = "[ABEHMNPRVWXY]"; 15759 var u = "[ABDEFGHJLNPQRSTUWXYZ]"; 15760 var c = [new RegExp("^(".concat(s, "{1}").concat(a, "?[0-9]{1,2})(\\s*)([0-9]{1}").concat(u, "{2})$"), "i"), new RegExp("^(".concat(s, "{1}[0-9]{1}").concat(t, "{1})(\\s*)([0-9]{1}").concat(u, "{2})$"), "i"), new RegExp("^(".concat(s, "{1}").concat(a, "{1}?[0-9]{1}").concat(r, "{1})(\\s*)([0-9]{1}").concat(u, "{2})$"), "i"), new RegExp("^(BF1)(\\s*)([0-6]{1}[ABDEFGHJLNPQRST]{1}[ABDEFGHJLNPQRSTUWZYZ]{1})$", "i"), /^(GIR)(\s*)(0AA)$/i, /^(BFPO)(\s*)([0-9]{1,4})$/i, /^(BFPO)(\s*)(c\/o\s*[0-9]{1,3})$/i, /^([A-Z]{4}
15760)(\s*)(1ZZ)$/i, /^(AI-2640)$/i]; 15761 for (var _i = 0, _c = c; _i < _c.length; _i++) { 15762 var _s = _c[_i]; 15763 if (_s.test(e)) { 15764 return true; 15765 } 15766 } 15767 return false; 15768 }; 15769 return { 15770 validate: function validate(t) { 15771 var r = Object.assign({}, { 15772 message: "" 15773 }, t.options); 15774 if (t.value === "" || !r.country) { 15775 return { 15776 valid: true 15777 }; 15778 } 15779 var u = t.value.substr(0, 2); 15780 if ("function" === typeof r.country) { 15781 u = r.country.call(this); 15782 } else { 15783 u = r.country; 15784 } 15785 if (!u || s.indexOf(u.toUpperCase()) === -1) { 15786 return { 15787 valid: true 15788 }; 15789 } 15790 var c = false; 15791 u = u.toUpperCase(); 15792 switch (u) { 15793 case "AT": 15794 c = /^([1-9]{1})(\d{3})$/.test(t.value); 15795 break; 15796 case "BG": 15797 c = /^([1-9]{1}[0-9]{3})$/.test(t.value); 15798 break; 15799 case "BR": 15800 c = /^(\d{2})([.]?)(\d{3})([-]?)(\d{3})$/.test(t.value); 15801 break; 15802 case "CA": 15803 c = /^(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|X|Y){1}[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}\s?[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}[0-9]{1}$/i.test(t.value); 15804 break; 15805 case "CH": 15806 c = /^([1-9]{1})(\d{3})$/.test(t.value); 15807 break; 15808 case "CZ": 15809 c = /^(\d{3})([ ]?)(\d{2})$/.test(t.value); 15810 break; 15811 case "DE": 15812 c = /^(?!01000|99999)(0[1-9]\d{3}|[1-9]\d{4})$/.test(t.value); 15813 break; 15814 case "DK": 15815 c = /^(DK(-|\s)?)?\d{4}$/i.test(t.value); 15816 break; 15817 case "ES": 15818 c = /^(?:0[1-9]|[1-4][0-9]|5[0-2])\d{3}$/.test(t.value); 15819 break; 15820 case "FR": 15821 c = /^[0-9]{5}$/i.test(t.value); 15822 break; 15823 case "GB": 15824 c = a(t.value); 15825 break; 15826 case "IN": 15827 c = /^\d{3}\s?\d{3}$/.test(t.value); 15828 break; 15829 case "IE": 15830 c = /^(D6W|[ACDEFHKNPRTVWXY]\d{2})\s[0-9ACDEFHKNPRTVWXY]{4}$/.test(t.value); 15831 break; 15832 case "IT": 15833 c = /^(I-|IT-)?\d{5}$/i.test(t.value); 15834 break; 15835 case "MA": 15836 c = /^[1-9][0-9]{4}$/i.test(t.value); 15837 break; 15838 case "NL": 15839 c = /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i.test(t.value); 15840 break; 15841 case "PL": 15842 c = /^[0-9]{2}-[0-9]{3}$/.test(t.value); 15843 break; 15844 case "PT": 15845 c = /^[1-9]\d{3}-\d{3}$/.test(t.value); 15846 break; 15847 case "RO": 15848 c = /^(0[1-8]{1}|[1-9]{1}[0-5]{1})?[0-9]{4}$/i.test(t.value); 15849 break; 15850 case "RU": 15851 c = /^[0-9]{6}$/i.test(t.value); 15852 break; 15853 case "SE": 15854 c = /^(S-)?\d{3}\s?\d{2}$/i.test(t.value); 15855 break; 15856 case "SG": 15857 c = /^([0][1-9]|[1-6][0-9]|[7]([0-3]|[5-9])|[8][0-2])(\d{4})$/i.test(t.value); 15858 break; 15859 case "SK": 15860 c = /^(\d{3})([ ]?)(\d{2})$/.test(t.value); 15861 break; 15862 case "US": 15863 default: 15864 c = /^\d{4,5}([-]?\d{4})?$/.test(t.value); 15865 break; 15866 } 15867 return { 15868 message: r$d(t.l10n && t.l10n.zipCode ? r.message || t.l10n.zipCode.country : r.message, t.l10n && t.l10n.zipCode && t.l10n.zipCode.countries ? t.l10n.zipCode.countries[u] : u), 15869 valid: c 15870 }; 15871 } 15872 }; 15873 } 15874 var s$3 = { 15875 between: s$9, 15876 blank: t$10, 15877 callback: o$4, 15878 choice: t$_, 15879 creditCard: l$2, 15880 date: n$1, 15881 different: o$3, 15882 digits: e$G, 15883 emailAddress: t$X, 15884 file: e$F, 15885 greaterThan: a$7, 15886 identical: o$2, 15887 integer: a$6, 15888 ip: d, 15889 lessThan: s$8, 15890 notEmpty: t$W, 15891 numeric: a$5, 15892 promise: r$c, 15893 regexp: e$E, 15894 remote: a$4, 15895 stringCase: e$C, 15896 stringLength: t$U, 15897 uri: t$T, 15898 base64: a$3, 15899 bic: a$2, 15900 color: e$B, 15901 cusip: t$S, 15902 ean: e$A, 15903 ein: e$z, 15904 grid: r$b, 15905 hex: e$y, 15906 iban: Z, 15907 id: F, 15908 imei: t$A, 15909 imo: e$m, 15910 isbn: e$l, 15911 isin: M, 15912 ismn: e$k, 15913 issn: e$j, 15914 mac: a$1, 15915 meid: e$i, 15916 phone: e$h, 15917 rtn: e$g, 15918 sedol: t$z, 15919 siren: e$f, 15920 siret: e$e, 15921 step: e$d, 15922 uuid: s$5, 15923 vat: x, 15924 vin: t$5, 15925 zipCode: s$4 15926 }; 15927 var l$1 = function () { 15928 function l(i, s) { 15929 _classCallCheck(this, l); 15930 this.elements = {}; 15931 this.ee = s$a(); 15932 this.filter = t$11(); 15933 this.plugins = {}; 15934 this.results = new Map(); 15935 this.validators = {}; 15936 this.form = i; 15937 this.fields = s; 15938 } 15939 _createClass(l, [{ 15940 key: "on", 15941 value: function on(e, t) { 15942 this.ee.on(e, t); 15943 return this; 15944 } 15945 }, {
15946 key: "off", 15947 value: function off(e, t) { 15948 this.ee.off(e, t); 15949 return this; 15950 } 15951 }, { 15952 key: "emit", 15953 value: function emit(e) { 15954 var _this$ee; 15955 for (var _len = arguments.length, t = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { 15956 t[_key - 1] = arguments[_key]; 15957 } 15958 (_this$ee = this.ee).emit.apply(_this$ee, [e].concat(t)); 15959 return this; 15960 } 15961 }, { 15962 key: "registerPlugin", 15963 value: function registerPlugin(e, t) { 15964 if (this.plugins[e]) { 15965 throw new Error("The plguin ".concat(e, " is registered")); 15966 } 15967 t.setCore(this); 15968 t.install(); 15969 this.plugins[e] = t; 15970 return this; 15971 } 15972 }, { 15973 key: "deregisterPlugin", 15974 value: function deregisterPlugin(e) { 15975 var t = this.plugins[e]; 15976 if (t) { 15977 t.uninstall(); 15978 } 15979 delete this.plugins[e]; 15980 return this; 15981 } 15982 }, { 15983 key: "registerValidator", 15984 value: function registerValidator(e, t) { 15985 if (this.validators[e]) { 15986 throw new Error("The validator ".concat(e, " is registered")); 15987 } 15988 this.validators[e] = t; 15989 return this; 15990 } 15991 }, { 15992 key: "registerFilter", 15993 value: function registerFilter(e, t) { 15994 this.filter.add(e, t); 15995 return this; 15996 } 15997 }, { 15998 key: "deregisterFilter", 15999 value: function deregisterFilter(e, t) { 16000 this.filter.remove(e, t); 16001 return this; 16002 } 16003 }, { 16004 key: "executeFilter", 16005 value: function executeFilter(e, t, i) { 16006 return this.filter.execute(e, t, i); 16007 } 16008 }, { 16009 key: "addField", 16010 value: function addField(e, t) { 16011 var i = Object.assign({}, { 16012 selector: "", 16013 validators: {} 16014 }, t); 16015 this.fields[e] = this.fields[e] ? { 16016 selector: i.selector || this.fields[e].selector, 16017 validators: Object.assign({}, this.fields[e].validators, i.validators) 16018 } : i; 16019 this.elements[e] = this.queryElements(e); 16020 this.emit("core.field.added", { 16021 elements: this.elements[e], 16022 field: e, 16023 options: this.fields[e] 16024 }); 16025 return this; 16026 } 16027 }, { 16028 key: "removeField", 16029 value: function removeField(e) { 16030 if (!this.fields[e]) { 16031 throw new Error("The field ".concat(e, " validators are not defined. Please ensure the field is added first")); 16032 } 16033 var t = this.elements[e]; 16034 var i = this.fields[e]; 16035 delete this.elements[e]; 16036 delete this.fields[e]; 16037 this.emit("core.field.removed", { 16038 elements: t, 16039 field: e, 16040 options: i 16041 }); 16042 return this; 16043 } 16044 }, { 16045 key: "validate", 16046 value: function validate() { 16047 var _this = this; 16048 this.emit("core.form.validating", { 16049 formValidation: this 16050 }); 16051 return this.filter.execute("validate-pre", Promise.resolve(), []).then(function () { 16052 return Promise.all(Object.keys(_this.fields).map(function (e) { 16053 return _this.validateField(e); 16054 })).then(function (e) { 16055 switch (true) { 16056 case e.indexOf("Invalid") !== -1: 16057 _this.emit("core.form.invalid", { 16058 formValidation: _this 16059 }); 16060 return Promise.resolve("Invalid"); 16061 case e.indexOf("NotValidated") !== -1: 16062 _this.emit("core.form.notvalidated", { 16063 formValidation: _this 16064 }); 16065 return Promise.resolve("NotValidated"); 16066 default: 16067 _this.emit("core.form.valid", { 16068 formValidation: _this 16069 }); 16070 return Promise.resolve("Valid"); 16071 } 16072 }); 16073 }); 16074 } 16075 }, { 16076 key: "validateField", 16077 value: function validateField(e) { 16078 var _this2 = this; 16079 var t = this.results.get(e); 16080 if (t === "Valid" || t === "Invalid") { 16081 return Promise.resolve(t); 16082 }
16083 this.emit("core.field.validating", e); 16084 var i = this.elements[e]; 16085 if (i.length === 0) { 16086 this.emit("core.field.valid", e); 16087 return Promise.resolve("Valid"); 16088 } 16089 var s = i[0].getAttribute("type"); 16090 if ("radio" === s || "checkbox" === s || i.length === 1) { 16091 return this.validateElement(e, i[0]); 16092 } else { 16093 return Promise.all(i.map(function (t) { 16094 return _this2.validateElement(e, t); 16095 })).then(function (t) { 16096 switch (true) { 16097 case t.indexOf("Invalid") !== -1: 16098 _this2.emit("core.field.invalid", e); 16099 _this2.results.set(e, "Invalid"); 16100 return Promise.resolve("Invalid"); 16101 case t.indexOf("NotValidated") !== -1: 16102 _this2.emit("core.field.notvalidated", e); 16103 _this2.results["delete"](e); 16104 return Promise.resolve("NotValidated"); 16105 default: 16106 _this2.emit("core.field.valid", e); 16107 _this2.results.set(e, "Valid"); 16108 return Promise.resolve("Valid"); 16109 } 16110 }); 16111 } 16112 } 16113 }, { 16114 key: "validateElement", 16115 value: function validateElement(e, t) { 16116 var _this3 = this; 16117 this.results["delete"](e); 16118 var i = this.elements[e]; 16119 var s = this.filter.execute("element-ignored", false, [e, t, i]); 16120 if (s) { 16121 this.emit("core.element.ignored", { 16122 element: t, 16123 elements: i, 16124 field: e 16125 }); 16126 return Promise.resolve("Ignored"); 16127 } 16128 var _l = this.fields[e].validators; 16129 this.emit("core.element.validating", { 16130 element: t, 16131 elements: i, 16132 field: e 16133 }); 16134 var r = Object.keys(_l).map(function (i) { 16135 return function () { 16136 return _this3.executeValidator(e, t, i, _l[i]); 16137 }; 16138 }); 16139 return this.waterfall(r).then(function (s) { 16140 var _l2 = s.indexOf("Invalid") === -1; 16141 _this3.emit("core.element.validated", { 16142 element: t, 16143 elements: i, 16144 field: e, 16145 valid: _l2 16146 }); 16147 var r = t.getAttribute("type"); 16148 if ("radio" === r || "checkbox" === r || i.length === 1) { 16149 _this3.emit(_l2 ? "core.field.valid" : "core.field.invalid", e); 16150 } 16151 return Promise.resolve(_l2 ? "Valid" : "Invalid"); 16152 })["catch"](function (s) { 16153 _this3.emit("core.element.notvalidated", { 16154 element: t, 16155 elements: i, 16156 field: e 16157 }); 16158 return Promise.resolve(s); 16159 }); 16160 } 16161 }, { 16162 key: "executeValidator", 16163 value: function executeValidator(e, t, i, s) { 16164 var _this4 = this; 16165 var _l3 = this.elements[e]; 16166 var r = this.filter.execute("validator-name", i, [i, e]); 16167 s.message = this.filter.execute("validator-message", s.message, [this.locale, e, r]); 16168 if (!this.validators[r] || s.enabled === false) { 16169 this.emit("core.validator.validated", { 16170 element: t, 16171 elements: _l3, 16172 field: e, 16173 result: this.normalizeResult(e, r, { 16174 valid: true 16175 }), 16176 validator: r 16177 }); 16178 return Promise.resolve("Valid"); 16179 } 16180 var a = this.validators[r]; 16181 var d = this.getElementValue(e, t, r); 16182 var o = this.filter.execute("field-should-validate", true, [e, t, d, i]); 16183 if (!o) { 16184 this.emit("core.validator.notvalidated", { 16185 element: t, 16186 elements: _l3, 16187 field: e, 16188 validator: i 16189 }); 16190 return Promise.resolve("NotValidated"); 16191 } 16192 this.emit("core.validator.validating", { 16193 element: t, 16194 elements: _l3, 16195 field: e, 16196 validator: i 16197 }); 16198 var n = a().validate({ 16199 element: t, 16200 elements: _l3, 16201 field: e, 16202 l10n: this.localization, 16203 options: s, 16204 value: d 16205 }); 16206 var h = "function" === typeof n["then"]; 16207 if (h) { 16208 return n.then(function (s) { 16209 var r = _this4.normalizeResult(e, i, s); 16210 _this4.emit("core.validator.validated", { 16211 element: t, 16212 elements: _l3, 16213 field: e, 16214 result: r, 16215 validator: i 16216 }); 16217 return r.valid ? "Valid" : "Invalid"; 16218 }); 16219 } else { 16220 var _s = this.normalizeResult(e, i, n);
16221 this.emit("core.validator.validated", { 16222 element: t, 16223 elements: _l3, 16224 field: e, 16225 result: _s, 16226 validator: i 16227 }); 16228 return Promise.resolve(_s.valid ? "Valid" : "Invalid"); 16229 } 16230 } 16231 }, { 16232 key: "getElementValue", 16233 value: function getElementValue(e, t, s) { 16234 var _l4 = e$H(this.form, e, t, this.elements[e]); 16235 return this.filter.execute("field-value", _l4, [_l4, e, t, s]); 16236 } 16237 }, { 16238 key: "getElements", 16239 value: function getElements(e) { 16240 return this.elements[e]; 16241 } 16242 }, { 16243 key: "getFields", 16244 value: function getFields() { 16245 return this.fields; 16246 } 16247 }, { 16248 key: "getFormElement", 16249 value: function getFormElement() { 16250 return this.form; 16251 } 16252 }, { 16253 key: "getLocale", 16254 value: function getLocale() { 16255 return this.locale; 16256 } 16257 }, { 16258 key: "getPlugin", 16259 value: function getPlugin(e) { 16260 return this.plugins[e]; 16261 } 16262 }, { 16263 key: "updateFieldStatus", 16264 value: function updateFieldStatus(e, t, i) { 16265 var _this5 = this; 16266 var s = this.elements[e]; 16267 var _l5 = s[0].getAttribute("type"); 16268 var r = "radio" === _l5 || "checkbox" === _l5 ? [s[0]] : s; 16269 r.forEach(function (s) { 16270 return _this5.updateElementStatus(e, s, t, i); 16271 }); 16272 if (!i) { 16273 switch (t) { 16274 case "NotValidated": 16275 this.emit("core.field.notvalidated", e); 16276 this.results["delete"](e); 16277 break; 16278 case "Validating": 16279 this.emit("core.field.validating", e); 16280 this.results["delete"](e); 16281 break; 16282 case "Valid": 16283 this.emit("core.field.valid", e); 16284 this.results.set(e, "Valid"); 16285 break; 16286 case "Invalid": 16287 this.emit("core.field.invalid", e); 16288 this.results.set(e, "Invalid"); 16289 break; 16290 } 16291 } else if (t === "Invalid") { 16292 this.emit("core.field.invalid", e); 16293 this.results.set(e, "Invalid"); 16294 } 16295 return this; 16296 } 16297 }, { 16298 key: "updateElementStatus", 16299 value: function updateElementStatus(e, t, i, s) { 16300 var _this6 = this; 16301 var _l6 = this.elements[e]; 16302 var r = this.fields[e].validators; 16303 var a = s ? [s] : Object.keys(r); 16304 switch (i) { 16305 case "NotValidated": 16306 a.forEach(function (i) { 16307 return _this6.emit("core.validator.notvalidated", { 16308 element: t, 16309 elements: _l6, 16310 field: e, 16311 validator: i 16312 }); 16313 }); 16314 this.emit("core.element.notvalidated", { 16315 element: t, 16316 elements: _l6, 16317 field: e 16318 }); 16319 break; 16320 case "Validating": 16321 a.forEach(function (i) { 16322 return _this6.emit("core.validator.validating", { 16323 element: t, 16324 elements: _l6, 16325 field: e, 16326 validator: i 16327 }); 16328 }); 16329 this.emit("core.element.validating", { 16330 element: t, 16331 elements: _l6, 16332 field: e 16333 }); 16334 break; 16335 case "Valid": 16336 a.forEach(function (i) { 16337 return _this6.emit("core.validator.validated", { 16338 element: t, 16339 elements: _l6, 16340 field: e, 16341 result: { 16342 message: r[i].message, 16343 valid: true 16344 }, 16345 validator: i 16346 }); 16347 }); 16348 this.emit("core.element.validated", { 16349 element: t, 16350 elements: _l6, 16351 field: e, 16352 valid: true 16353 }); 16354 break; 16355 case "Invalid": 16356 a.forEach(function (i) { 16357 return _this6.emit("core.validator.validated", { 16358 element: t, 16359 elements: _l6, 16360 field: e, 16361 result: { 16362 message: r[i].message, 16363 valid: false 16364 }, 16365 validator: i 16366 }); 16367 });
16368 this.emit("core.element.validated", { 16369 element: t, 16370 elements: _l6, 16371 field: e, 16372 valid: false 16373 }); 16374 break; 16375 } 16376 return this; 16377 } 16378 }, { 16379 key: "resetForm", 16380 value: function resetForm(e) { 16381 var _this7 = this; 16382 Object.keys(this.fields).forEach(function (t) { 16383 return _this7.resetField(t, e); 16384 }); 16385 this.emit("core.form.reset", { 16386 formValidation: this, 16387 reset: e 16388 }); 16389 return this; 16390 } 16391 }, { 16392 key: "resetField", 16393 value: function resetField(e, t) { 16394 if (t) { 16395 var _t = this.elements[e]; 16396 var _i = _t[0].getAttribute("type"); 16397 _t.forEach(function (e) { 16398 if ("radio" === _i || "checkbox" === _i) { 16399 e.removeAttribute("selected"); 16400 e.removeAttribute("checked"); 16401 e.checked = false; 16402 } else { 16403 e.setAttribute("value", ""); 16404 if (e instanceof HTMLInputElement || e instanceof HTMLTextAreaElement) { 16405 e.value = ""; 16406 } 16407 } 16408 }); 16409 } 16410 this.updateFieldStatus(e, "NotValidated"); 16411 this.emit("core.field.reset", { 16412 field: e, 16413 reset: t 16414 }); 16415 return this; 16416 } 16417 }, { 16418 key: "revalidateField", 16419 value: function revalidateField(e) { 16420 if (!this.fields[e]) { 16421 return Promise.resolve("Ignored"); 16422 } 16423 this.updateFieldStatus(e, "NotValidated"); 16424 return this.validateField(e); 16425 } 16426 }, { 16427 key: "disableValidator", 16428 value: function disableValidator(e, t) { 16429 if (!this.fields[e]) { 16430 return this; 16431 } 16432 var i = this.elements[e]; 16433 this.toggleValidator(false, e, t); 16434 this.emit("core.validator.disabled", { 16435 elements: i, 16436 field: e, 16437 formValidation: this, 16438 validator: t 16439 }); 16440 return this; 16441 } 16442 }, { 16443 key: "enableValidator", 16444 value: function enableValidator(e, t) { 16445 if (!this.fields[e]) { 16446 return this; 16447 } 16448 var i = this.elements[e]; 16449 this.toggleValidator(true, e, t); 16450 this.emit("core.validator.enabled", { 16451 elements: i, 16452 field: e, 16453 formValidation: this, 16454 validator: t 16455 }); 16456 return this; 16457 } 16458 }, { 16459 key: "updateValidatorOption", 16460 value: function updateValidatorOption(e, t, i, s) { 16461 if (this.fields[e] && this.fields[e].validators && this.fields[e].validators[t]) { 16462 this.fields[e].validators[t][i] = s; 16463 } 16464 return this; 16465 } 16466 }, { 16467 key: "setFieldOptions", 16468 value: function setFieldOptions(e, t) { 16469 this.fields[e] = t; 16470 return this; 16471 } 16472 }, { 16473 key: "destroy", 16474 value: function destroy() { 16475 var _this8 = this; 16476 Object.keys(this.plugins).forEach(function (e) { 16477 return _this8.plugins[e].uninstall(); 16478 }); 16479 this.ee.clear(); 16480 this.filter.clear(); 16481 this.results.clear(); 16482 this.plugins = {}; 16483 return this; 16484 } 16485 }, { 16486 key: "setLocale", 16487 value: function setLocale(e, t) { 16488 this.locale = e; 16489 this.localization = t; 16490 return this; 16491 } 16492 }, { 16493 key: "waterfall", 16494 value: function waterfall(e) { 16495 return e.reduce(function (e, t) { 16496 return e.then(function (e) { 16497 return t().then(function (t) { 16498 e.push(t); 16499 return e; 16500 }); 16501 }); 16502 }, Promise.resolve([])); 16503 } 16504 }, { 16505 key: "queryElements", 16506 value: function queryElements(e) { 16507 var t = this.fields[e].selector ? "#" === this.fields[e].selector.charAt(0) ? '[id="'.concat(this.fields[e].selector.substring(1), '"]') : this.fields[e].selector : '[name="'.concat(e, '"]'); 16508 return [].slice.call(this.form.querySelectorAll(t)); 16509 } 16510 }, { 16511 key: "normalizeResult", 16512 value: function normalizeResult(e, t, i) { 16513 var s = this.fields[e].validators[t]; 16514 return Object.assign({}, i, { 16515 message: i.message || (s ? s.message : "") || (this.localization && this.localization[t] && this.localization[t]["default"] ? this.localization[t]["default"] : "") || "The field ".concat(e, " is not val
16515id") 16516 }); 16517 } 16518 }, { 16519 key: "toggleValidator", 16520 value: function toggleValidator(e, t, i) { 16521 var _this9 = this; 16522 var s = this.fields[t].validators; 16523 if (i && s && s[i]) { 16524 this.fields[t].validators[i].enabled = e; 16525 } else if (!i) { 16526 Object.keys(s).forEach(function (i) { 16527 return _this9.fields[t].validators[i].enabled = e; 16528 }); 16529 } 16530 return this.updateFieldStatus(t, "NotValidated", i); 16531 } 16532 }]); 16533 return l; 16534 }(); 16535 function r(e, t) { 16536 var i = Object.assign({}, { 16537 fields: {}, 16538 locale: "en_US", 16539 plugins: {}, 16540 init: function init(e) {} 16541 }, t); 16542 var r = new l$1(e, i.fields); 16543 r.setLocale(i.locale, i.localization); 16544 Object.keys(i.plugins).forEach(function (e) { 16545 return r.registerPlugin(e, i.plugins[e]); 16546 }); 16547 Object.keys(s$3).forEach(function (e) { 16548 return r.registerValidator(e, s$3[e]); 16549 }); 16550 i.init(r); 16551 Object.keys(i.fields).forEach(function (e) { 16552 return r.addField(e, i.fields[e]); 16553 }); 16554 return r; 16555 } 16556 var t$4 = function () { 16557 function t(_t) { 16558 _classCallCheck(this, t); 16559 this.opts = _t; 16560 } 16561 _createClass(t, [{ 16562 key: "setCore", 16563 value: function setCore(_t2) { 16564 this.core = _t2; 16565 return this; 16566 } 16567 }, { 16568 key: "install", 16569 value: function install() {} 16570 }, { 16571 key: "uninstall", 16572 value: function uninstall() {} 16573 }]); 16574 return t; 16575 }(); 16576 var index$2 = { 16577 getFieldValue: e$H 16578 }; 16579 var e$4 = function (_t) { 16580 _inherits(e, _t); 16581 var _super = _createSuper(e); 16582 function e(t) { 16583 var _this; 16584 _classCallCheck(this, e); 16585 _this = _super.call(this, t); 16586 _this.opts = t || {}; 16587 _this.validatorNameFilter = _this.getValidatorName.bind(_assertThisInitialized(_this)); 16588 return _this; 16589 } 16590 _createClass(e, [{ 16591 key: "install", 16592 value: function install() { 16593 this.core.registerFilter("validator-name", this.validatorNameFilter); 16594 } 16595 }, { 16596 key: "uninstall", 16597 value: function uninstall() { 16598 this.core.deregisterFilter("validator-name", this.validatorNameFilter); 16599 } 16600 }, { 16601 key: "getValidatorName", 16602 value: function getValidatorName(t, _e) { 16603 return this.opts[t] || t; 16604 } 16605 }]); 16606 return e; 16607 }(t$4); 16608 var i$3 = function (_e) { 16609 _inherits(i, _e); 16610 var _super = _createSuper(i); 16611 function i() { 16612 var _this; 16613 _classCallCheck(this, i); 16614 _this = _super.call(this, {}); 16615 _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this)); 16616 _this.fieldValidHandler = _this.onFieldValid.bind(_assertThisInitialized(_this)); 16617 _this.fieldInvalidHandler = _this.onFieldInvalid.bind(_assertThisInitialized(_this)); 16618 _this.messageDisplayedHandler = _this.onMessageDisplayed.bind(_assertThisInitialized(_this)); 16619 return _this; 16620 } 16621 _createClass(i, [{ 16622 key: "install", 16623 value: function install() { 16624 this.core.on("core.field.valid", this.fieldValidHandler).on("core.field.invalid", this.fieldInvalidHandler).on("core.element.validated", this.elementValidatedHandler).on("plugins.message.displayed", this.messageDisplayedHandler); 16625 } 16626 }, { 16627 key: "uninstall", 16628 value: function uninstall() { 16629 this.core.off("core.field.valid", this.fieldValidHandler).off("core.field.invalid", this.fieldInvalidHandler).off("core.element.validated", this.elementValidatedHandler).off("plugins.message.displayed", this.messageDisplayedHandler); 16630 } 16631 }, { 16632 key: "onElementValidated", 16633 value: function onElementValidated(e) { 16634 if (e.valid) { 16635 e.element.setAttribute("aria-invalid", "false"); 16636 e.element.removeAttribute("aria-describedby"); 16637 } 16638 } 16639 }, { 16640 key: "onFieldValid", 16641 value: function onFieldValid(e) { 16642 var _i = this.core.getElements(e); 16643 if (_i) { 16644 _i.forEach(function (e) { 16645 e.setAttribute("aria-invalid", "false"); 16646 e.removeAttribute("aria-describedby"); 16647 }); 16648 } 16649 } 16650 }, {
16651 key: "onFieldInvalid", 16652 value: function onFieldInvalid(e) { 16653 var _i2 = this.core.getElements(e); 16654 if (_i2) { 16655 _i2.forEach(function (e) { 16656 return e.setAttribute("aria-invalid", "true"); 16657 }); 16658 } 16659 } 16660 }, { 16661 key: "onMessageDisplayed", 16662 value: function onMessageDisplayed(e) { 16663 e.messageElement.setAttribute("role", "alert"); 16664 e.messageElement.setAttribute("aria-hidden", "false"); 16665 var _i3 = this.core.getElements(e.field); 16666 var t = _i3.indexOf(e.element); 16667 var l = "js-fv-".concat(e.field, "-").concat(t, "-").concat(Date.now(), "-message"); 16668 e.messageElement.setAttribute("id", l); 16669 e.element.setAttribute("aria-describedby", l); 16670 var a = e.element.getAttribute("type"); 16671 if ("radio" === a || "checkbox" === a) { 16672 _i3.forEach(function (e) { 16673 return e.setAttribute("aria-describedby", l); 16674 }); 16675 } 16676 } 16677 }]); 16678 return i; 16679 }(t$4); 16680 var t$3 = function (_e) { 16681 _inherits(t, _e); 16682 var _super = _createSuper(t); 16683 function t(e) { 16684 var _this; 16685 _classCallCheck(this, t); 16686 _this = _super.call(this, e); 16687 _this.addedFields = new Map(); 16688 _this.opts = Object.assign({}, { 16689 html5Input: false, 16690 pluginPrefix: "data-fvp-", 16691 prefix: "data-fv-" 16692 }, e); 16693 _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this)); 16694 _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this)); 16695 return _this; 16696 } 16697 _createClass(t, [{ 16698 key: "install", 16699 value: function install() { 16700 var _this2 = this; 16701 this.parsePlugins(); 16702 var e = this.parseOptions(); 16703 Object.keys(e).forEach(function (_t) { 16704 if (!_this2.addedFields.has(_t)) { 16705 _this2.addedFields.set(_t, true); 16706 } 16707 _this2.core.addField(_t, e[_t]); 16708 }); 16709 this.core.on("core.field.added", this.fieldAddedHandler).on("core.field.removed", this.fieldRemovedHandler); 16710 } 16711 }, { 16712 key: "uninstall", 16713 value: function uninstall() { 16714 this.addedFields.clear(); 16715 this.core.off("core.field.added", this.fieldAddedHandler).off("core.field.removed", this.fieldRemovedHandler); 16716 } 16717 }, { 16718 key: "onFieldAdded", 16719 value: function onFieldAdded(e) { 16720 var _this3 = this; 16721 var _t2 = e.elements; 16722 if (!_t2 || _t2.length === 0 || this.addedFields.has(e.field)) { 16723 return; 16724 } 16725 this.addedFields.set(e.field, true); 16726 _t2.forEach(function (_t3) { 16727 var s = _this3.parseElement(_t3); 16728 if (!_this3.isEmptyOption(s)) { 16729 var _t12 = { 16730 selector: e.options.selector, 16731 validators: Object.assign({}, e.options.validators || {}, s.validators) 16732 }; 16733 _this3.core.setFieldOptions(e.field, _t12); 16734 } 16735 }); 16736 } 16737 }, { 16738 key: "onFieldRemoved", 16739 value: function onFieldRemoved(e) { 16740 if (e.field && this.addedFields.has(e.field)) { 16741 this.addedFields["delete"](e.field); 16742 } 16743 } 16744 }, { 16745 key: "parseOptions", 16746 value: function parseOptions() { 16747 var _this4 = this; 16748 var e = this.opts.prefix; 16749 var _t5 = {}; 16750 var s = this.core.getFields(); 16751 var a = this.core.getFormElement(); 16752 var i = [].slice.call(a.querySelectorAll("[name], [".concat(e, "field]"))); 16753 i.forEach(function (s) { 16754 var a = _this4.parseElement(s); 16755 if (!_this4.isEmptyOption(a)) { 16756 var _i = s.getAttribute("name") || s.getAttribute("".concat(e, "field")); 16757 _t5[_i] = Object.assign({}, _t5[_i], a); 16758 } 16759 }); 16760 Object.keys(_t5).forEach(function (e) { 16761 Object.keys(_t5[e].validators).forEach(function (a) { 16762 _t5[e].validators[a].enabled = _t5[e].validators[a].enabled || false; 16763 if (s[e] && s[e].validators && s[e].validators[a]) { 16764 Object.assign(_t5[e].validators[a], s[e].validators[a]); 16765 } 16766 }); 16767 }); 16768 return Object.assign({}, s, _t5); 16769 } 16770 }, {
16771 key: "createPluginInstance", 16772 value: function createPluginInstance(e, _t6) { 16773 var s = e.split("."); 16774 var a = window || this; 16775 for (var _e2 = 0, _t13 = s.length; _e2 < _t13; _e2++) { 16776 a = a[s[_e2]]; 16777 } 16778 if (typeof a !== "function") { 16779 throw new Error("the plugin ".concat(e, " doesn't exist")); 16780 } 16781 return new a(_t6); 16782 } 16783 }, { 16784 key: "parsePlugins", 16785 value: function parsePlugins() { 16786 var _this5 = this; 16787 var e = this.core.getFormElement(); 16788 var _t8 = new RegExp("^".concat(this.opts.pluginPrefix, "([a-z0-9-]+)(___)*([a-z0-9-]+)*$")); 16789 var s = e.attributes.length; 16790 var a = {}; 16791 for (var i = 0; i < s; i++) { 16792 var _s = e.attributes[i].name; 16793 var n = e.attributes[i].value; 16794 var r = _t8.exec(_s); 16795 if (r && r.length === 4) { 16796 var _e3 = this.toCamelCase(r[1]); 16797 a[_e3] = Object.assign({}, r[3] ? _defineProperty({}, this.toCamelCase(r[3]), n) : { 16798 enabled: "" === n || "true" === n 16799 }, a[_e3]); 16800 } 16801 } 16802 Object.keys(a).forEach(function (e) { 16803 var _t9 = a[e]; 16804 var s = _t9["enabled"]; 16805 var i = _t9["class"]; 16806 if (s && i) { 16807 delete _t9["enabled"]; 16808 delete _t9["clazz"]; 16809 var _s2 = _this5.createPluginInstance(i, _t9); 16810 _this5.core.registerPlugin(e, _s2); 16811 } 16812 }); 16813 } 16814 }, { 16815 key: "isEmptyOption", 16816 value: function isEmptyOption(e) { 16817 var _t10 = e.validators; 16818 return Object.keys(_t10).length === 0 && _t10.constructor === Object; 16819 } 16820 }, { 16821 key: "parseElement", 16822 value: function parseElement(e) { 16823 var _t11 = new RegExp("^".concat(this.opts.prefix, "([a-z0-9-]+)(___)*([a-z0-9-]+)*$")); 16824 var s = e.attributes.length; 16825 var a = {}; 16826 var i = e.getAttribute("type"); 16827 for (var n = 0; n < s; n++) { 16828 var _s3 = e.attributes[n].name; 16829 var r = e.attributes[n].value; 16830 if (this.opts.html5Input) { 16831 switch (true) { 16832 case "minlength" === _s3: 16833 a["stringLength"] = Object.assign({}, { 16834 enabled: true, 16835 min: parseInt(r, 10) 16836 }, a["stringLength"]); 16837 break; 16838 case "maxlength" === _s3: 16839 a["stringLength"] = Object.assign({}, { 16840 enabled: true, 16841 max: parseInt(r, 10) 16842 }, a["stringLength"]); 16843 break; 16844 case "pattern" === _s3: 16845 a["regexp"] = Object.assign({}, { 16846 enabled: true, 16847 regexp: r 16848 }, a["regexp"]); 16849 break; 16850 case "required" === _s3: 16851 a["notEmpty"] = Object.assign({}, { 16852 enabled: true 16853 }, a["notEmpty"]); 16854 break; 16855 case "type" === _s3 && "color" === r: 16856 a["color"] = Object.assign({}, { 16857 enabled: true, 16858 type: "hex" 16859 }, a["color"]); 16860 break; 16861 case "type" === _s3 && "email" === r: 16862 a["emailAddress"] = Object.assign({}, { 16863 enabled: true 16864 }, a["emailAddress"]); 16865 break; 16866 case "type" === _s3 && "url" === r: 16867 a["uri"] = Object.assign({}, { 16868 enabled: true 16869 }, a["uri"]); 16870 break; 16871 case "type" === _s3 && "range" === r: 16872 a["between"] = Object.assign({}, { 16873 enabled: true, 16874 max: parseFloat(e.getAttribute("max")), 16875 min: parseFloat(e.getAttribute("min")) 16876 }, a["between"]); 16877 break; 16878 case "min" === _s3 && i !== "date" && i !== "range": 16879 a["greaterThan"] = Object.assign({}, { 16880 enabled: true, 16881 min: parseFloat(r) 16882 }, a["greaterThan"]); 16883 break; 16884 case "max" === _s3 && i !== "date" && i !== "range": 16885 a["lessThan"] = Object.assign({}, { 16886 enabled: true, 16887 max: parseFloat(r) 16888 }, a["lessThan"]); 16889 break; 16890 } 16891 } 16892 var l = _t11.exec(_s3); 16893 if (l && l.length === 4) { 16894 var _e4 = this.toCamelCase(l[1]); 16895 a[_e4] = Object.assign({}, l[3] ? _defineProperty({}, this.toCamelCase(l[3]), this.normalizeValue(r)) : { 16896 enabled: "" === r || "true" === r 16897 }, a[_e4]); 16898 } 16899 } 16900 return { 16901 validators: a 16902 }; 16903 } 16904 }, {
16905 key: "normalizeValue", 16906 value: function normalizeValue(e) { 16907 return e === "true" ? true : e === "false" ? false : e; 16908 } 16909 }, { 16910 key: "toUpperCase", 16911 value: function toUpperCase(e) { 16912 return e.charAt(1).toUpperCase(); 16913 } 16914 }, { 16915 key: "toCamelCase", 16916 value: function toCamelCase(e) { 16917 return e.replace(/-./g, this.toUpperCase); 16918 } 16919 }]); 16920 return t; 16921 }(t$4); 16922 var o = function (_t) { 16923 _inherits(o, _t); 16924 var _super = _createSuper(o); 16925 function o() { 16926 var _this; 16927 _classCallCheck(this, o); 16928 _this = _super.call(this, {}); 16929 _this.onValidHandler = _this.onFormValid.bind(_assertThisInitialized(_this)); 16930 return _this; 16931 } 16932 _createClass(o, [{ 16933 key: "install", 16934 value: function install() { 16935 var t = this.core.getFormElement(); 16936 if (t.querySelectorAll('[type="submit"][name="submit"]').length) { 16937 throw new Error("Do not use `submit` for the name attribute of submit button"); 16938 } 16939 this.core.on("core.form.valid", this.onValidHandler); 16940 } 16941 }, { 16942 key: "uninstall", 16943 value: function uninstall() { 16944 this.core.off("core.form.valid", this.onValidHandler); 16945 } 16946 }, { 16947 key: "onFormValid", 16948 value: function onFormValid() { 16949 var t = this.core.getFormElement(); 16950 if (t instanceof HTMLFormElement) { 16951 t.submit(); 16952 } 16953 } 16954 }]); 16955 return o; 16956 }(t$4); 16957 var e$3 = function (_t) { 16958 _inherits(e, _t); 16959 var _super = _createSuper(e); 16960 function e(t) { 16961 var _this; 16962 _classCallCheck(this, e); 16963 _this = _super.call(this, t); 16964 _this.opts = t || {}; 16965 _this.triggerExecutedHandler = _this.onTriggerExecuted.bind(_assertThisInitialized(_this)); 16966 return _this; 16967 } 16968 _createClass(e, [{ 16969 key: "install", 16970 value: function install() { 16971 this.core.on("plugins.trigger.executed", this.triggerExecutedHandler); 16972 } 16973 }, { 16974 key: "uninstall", 16975 value: function uninstall() { 16976 this.core.off("plugins.trigger.executed", this.triggerExecutedHandler); 16977 } 16978 }, { 16979 key: "onTriggerExecuted", 16980 value: function onTriggerExecuted(t) { 16981 if (this.opts[t.field]) { 16982 var _e3 = this.opts[t.field].split(" "); 16983 var _iterator = _createForOfIteratorHelper(_e3), 16984 _step; 16985 try { 16986 for (_iterator.s(); !(_step = _iterator.n()).done;) { 16987 var _t2 = _step.value; 16988 var _e4 = _t2.trim(); 16989 if (this.opts[_e4]) { 16990 this.core.revalidateField(_e4); 16991 } 16992 } 16993 } catch (err) { 16994 _iterator.e(err); 16995 } finally { 16996 _iterator.f(); 16997 } 16998 } 16999 } 17000 }]); 17001 return e; 17002 }(t$4); 17003 var e$2 = function (_t) { 17004 _inherits(e, _t); 17005 var _super = _createSuper(e); 17006 function e(t) { 17007 var _this; 17008 _classCallCheck(this, e); 17009 _this = _super.call(this, t); 17010 _this.opts = Object.assign({}, { 17011 excluded: e.defaultIgnore 17012 }, t); 17013 _this.ignoreValidationFilter = _this.ignoreValidation.bind(_assertThisInitialized(_this)); 17014 return _this; 17015 } 17016 _createClass(e, [{ 17017 key: "install", 17018 value: function install() { 17019 this.core.registerFilter("element-ignored", this.ignoreValidationFilter); 17020 } 17021 }, { 17022 key: "uninstall", 17023 value: function uninstall() { 17024 this.core.deregisterFilter("element-ignored", this.ignoreValidationFilter); 17025 } 17026 }, { 17027 key: "ignoreValidation", 17028 value: function ignoreValidation(t, _e2, i) { 17029 return this.opts.excluded.apply(this, [t, _e2, i]); 17030 } 17031 }], [{ 17032 key: "defaultIgnore", 17033 value: function defaultIgnore(t, _e, i) { 17034 var r = !!(_e.offsetWidth || _e.offsetHeight || _e.getClientRects().length); 17035 var n = _e.getAttribute("disabled"); 17036 return n === "" || n === "disabled" || _e.getAttribute("type") === "hidden" || !r; 17037 } 17038 }]); 17039 return e; 17040 }(t$4); 17041 var t$2 = function (_e) { 17042 _inherits(t, _e); 17043 var _super = _createSuper(t); 17044 function t(e) { 17045 var _this; 17046 _classCallCheck(this, t); 17047 _this = _super.call(this, e); 17048 _this.statuses = new Map(); 17049 _this.opts = Object.assign({}, { 17050 onStatusChanged: function onStatusChanged() {} 17051 }, e); 17052 _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this)); 17053 _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this)); 17054 _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this));
17055 _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this)); 17056 _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this)); 17057 _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this)); 17058 return _this; 17059 } 17060 _createClass(t, [{ 17061 key: "install", 17062 value: function install() { 17063 this.core.on("core.element.validating", this.elementValidatingHandler).on("core.element.validated", this.elementValidatedHandler).on("core.element.notvalidated", this.elementNotValidatedHandler).on("core.element.ignored", this.elementIgnoredHandler).on("core.field.added", this.fieldAddedHandler).on("core.field.removed", this.fieldRemovedHandler); 17064 } 17065 }, { 17066 key: "uninstall", 17067 value: function uninstall() { 17068 this.statuses.clear(); 17069 this.core.off("core.element.validating", this.elementValidatingHandler).off("core.element.validated", this.elementValidatedHandler).off("core.element.notvalidated", this.elementNotValidatedHandler).off("core.element.ignored", this.elementIgnoredHandler).off("core.field.added", this.fieldAddedHandler).off("core.field.removed", this.fieldRemovedHandler); 17070 } 17071 }, { 17072 key: "areFieldsValid", 17073 value: function areFieldsValid() { 17074 return Array.from(this.statuses.values()).every(function (e) { 17075 return e === "Valid" || e === "NotValidated" || e === "Ignored"; 17076 }); 17077 } 17078 }, { 17079 key: "getStatuses", 17080 value: function getStatuses() { 17081 return this.statuses; 17082 } 17083 }, { 17084 key: "onFieldAdded", 17085 value: function onFieldAdded(e) { 17086 this.statuses.set(e.field, "NotValidated"); 17087 } 17088 }, { 17089 key: "onFieldRemoved", 17090 value: function onFieldRemoved(e) { 17091 if (this.statuses.has(e.field)) { 17092 this.statuses["delete"](e.field); 17093 } 17094 this.opts.onStatusChanged(this.areFieldsValid()); 17095 } 17096 }, { 17097 key: "onElementValidating", 17098 value: function onElementValidating(e) { 17099 this.statuses.set(e.field, "Validating"); 17100 this.opts.onStatusChanged(false); 17101 } 17102 }, { 17103 key: "onElementValidated", 17104 value: function onElementValidated(e) { 17105 this.statuses.set(e.field, e.valid ? "Valid" : "Invalid"); 17106 if (e.valid) { 17107 this.opts.onStatusChanged(this.areFieldsValid()); 17108 } else { 17109 this.opts.onStatusChanged(false); 17110 } 17111 } 17112 }, { 17113 key: "onElementNotValidated", 17114 value: function onElementNotValidated(e) { 17115 this.statuses.set(e.field, "NotValidated"); 17116 this.opts.onStatusChanged(false); 17117 } 17118 }, { 17119 key: "onElementIgnored", 17120 value: function onElementIgnored(e) { 17121 this.statuses.set(e.field, "Ignored"); 17122 this.opts.onStatusChanged(this.areFieldsValid()); 17123 } 17124 }]); 17125 return t; 17126 }(t$4); 17127 function s$2(s, a) { 17128 a.split(" ").forEach(function (a) { 17129 if (s.classList) { 17130 s.classList.add(a); 17131 } else if (" ".concat(s.className, " ").indexOf(" ".concat(a, " "))) { 17132 s.className += " ".concat(a); 17133 } 17134 }); 17135 } 17136 function a(s, a) { 17137 a.split(" ").forEach(function (a) { 17138 s.classList ? s.classList.remove(a) : s.className = s.className.replace(a, ""); 17139 }); 17140 } 17141 function c(c, e) { 17142 var t = []; 17143 var f = []; 17144 Object.keys(e).forEach(function (s) { 17145 if (s) { 17146 e[s] ? t.push(s) : f.push(s); 17147 } 17148 }); 17149 f.forEach(function (s) { 17150 return a(c, s); 17151 }); 17152 t.forEach(function (a) { 17153 return s$2(c, a); 17154 }); 17155 } 17156 function e$1(e, t) { 17157 var l = e.matches || e.webkitMatchesSelector || e["mozMatchesSelector"] || e["msMatchesSelector"]; 17158 if (l) { 17159 return l.call(e, t); 17160 } 17161 var c = [].slice.call(e.parentElement.querySelectorAll(t)); 17162 return c.indexOf(e) >= 0; 17163 } 17164 function t$1(t, l) { 17165 var c = t; 17166 while (c) { 17167 if (e$1(c, l)) { 17168 break; 17169 } 17170 c = c.parentElement; 17171 } 17172 return c; 17173 } 17174 var s$1 = function (_e) { 17175 _inherits(s, _e); 17176 var _super = _createSuper(s); 17177 function s(e) { 17178 var _this; 17179 _classCallCheck(this, s); 17180 _this = _super.call(this, e); 17181 _this.useDefaultContainer = false;
17182 _this.messages = new Map(); 17183 _this.defaultContainer = document.createElement("div"); 17184 _this.useDefaultContainer = !e || !e.container; 17185 _this.opts = Object.assign({}, { 17186 container: function container(e, t) { 17187 return _this.defaultContainer; 17188 } 17189 }, e); 17190 _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this)); 17191 _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this)); 17192 _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this)); 17193 _this.validatorValidatedHandler = _this.onValidatorValidated.bind(_assertThisInitialized(_this)); 17194 _this.validatorNotValidatedHandler = _this.onValidatorNotValidated.bind(_assertThisInitialized(_this)); 17195 return _this; 17196 } 17197 _createClass(s, [{ 17198 key: "install", 17199 value: function install() { 17200 if (this.useDefaultContainer) { 17201 this.core.getFormElement().appendChild(this.defaultContainer); 17202 } 17203 this.core.on("core.element.ignored", this.elementIgnoredHandler).on("core.field.added", this.fieldAddedHandler).on("core.field.removed", this.fieldRemovedHandler).on("core.validator.validated", this.validatorValidatedHandler).on("core.validator.notvalidated", this.validatorNotValidatedHandler); 17204 } 17205 }, { 17206 key: "uninstall", 17207 value: function uninstall() { 17208 if (this.useDefaultContainer) { 17209 this.core.getFormElement().removeChild(this.defaultContainer); 17210 } 17211 this.messages.forEach(function (e) { 17212 return e.parentNode.removeChild(e); 17213 }); 17214 this.messages.clear(); 17215 this.core.off("core.element.ignored", this.elementIgnoredHandler).off("core.field.added", this.fieldAddedHandler).off("core.field.removed", this.fieldRemovedHandler).off("core.validator.validated", this.validatorValidatedHandler).off("core.validator.notvalidated", this.validatorNotValidatedHandler); 17216 } 17217 }, { 17218 key: "onFieldAdded", 17219 value: function onFieldAdded(e) { 17220 var _this2 = this; 17221 var t = e.elements; 17222 if (t) { 17223 t.forEach(function (e) { 17224 var t = _this2.messages.get(e); 17225 if (t) { 17226 t.parentNode.removeChild(t); 17227 _this2.messages["delete"](e); 17228 } 17229 }); 17230 this.prepareFieldContainer(e.field, t); 17231 } 17232 } 17233 }, { 17234 key: "onFieldRemoved", 17235 value: function onFieldRemoved(e) { 17236 var _this3 = this; 17237 if (!e.elements.length || !e.field) { 17238 return; 17239 } 17240 var t = e.elements[0].getAttribute("type"); 17241 var _s2 = "radio" === t || "checkbox" === t ? [e.elements[0]] : e.elements; 17242 _s2.forEach(function (e) { 17243 if (_this3.messages.has(e)) { 17244 var _t = _this3.messages.get(e); 17245 _t.parentNode.removeChild(_t); 17246 _this3.messages["delete"](e); 17247 } 17248 }); 17249 } 17250 }, { 17251 key: "prepareFieldContainer", 17252 value: function prepareFieldContainer(e, t) { 17253 var _this4 = this; 17254 if (t.length) { 17255 var _s12 = t[0].getAttribute("type"); 17256 if ("radio" === _s12 || "checkbox" === _s12) { 17257 this.prepareElementContainer(e, t[0], t); 17258 } else { 17259 t.forEach(function (_s4) { 17260 return _this4.prepareElementContainer(e, _s4, t); 17261 }); 17262 } 17263 } 17264 } 17265 }, { 17266 key: "prepareElementContainer", 17267 value: function prepareElementContainer(e, _s5, i) { 17268 var a; 17269 if ("string" === typeof this.opts.container) { 17270 var _e2 = "#" === this.opts.container.charAt(0) ? '[id="'.concat(this.opts.container.substring(1), '"]') : this.opts.container; 17271 a = this.core.getFormElement().querySelector(_e2); 17272 } else { 17273 a = this.opts.container(e, _s5); 17274 } 17275 var l = document.createElement("div"); 17276 a.appendChild(l); 17277 c(l, { 17278 "fv-plugins-message-container": true 17279 }); 17280 this.core.emit("plugins.message.placed", { 17281 element: _s5,
17282 elements: i, 17283 field: e, 17284 messageElement: l 17285 }); 17286 this.messages.set(_s5, l); 17287 } 17288 }, { 17289 key: "getMessage", 17290 value: function getMessage(e) { 17291 return typeof e.message === "string" ? e.message : e.message[this.core.getLocale()]; 17292 } 17293 }, { 17294 key: "onValidatorValidated", 17295 value: function onValidatorValidated(e) { 17296 var _s6 = e.elements; 17297 var i = e.element.getAttribute("type"); 17298 var a = ("radio" === i || "checkbox" === i) && _s6.length > 0 ? _s6[0] : e.element; 17299 if (this.messages.has(a)) { 17300 var _s13 = this.messages.get(a); 17301 var _i = _s13.querySelector('[data-field="'.concat(e.field, '"][data-validator="').concat(e.validator, '"]')); 17302 if (!_i && !e.result.valid) { 17303 var _i2 = document.createElement("div"); 17304 _i2.innerHTML = this.getMessage(e.result); 17305 _i2.setAttribute("data-field", e.field); 17306 _i2.setAttribute("data-validator", e.validator); 17307 if (this.opts.clazz) { 17308 c(_i2, _defineProperty({}, this.opts.clazz, true)); 17309 } 17310 _s13.appendChild(_i2); 17311 this.core.emit("plugins.message.displayed", { 17312 element: e.element, 17313 field: e.field, 17314 message: e.result.message, 17315 messageElement: _i2, 17316 meta: e.result.meta, 17317 validator: e.validator 17318 }); 17319 } else if (_i && !e.result.valid) { 17320 _i.innerHTML = this.getMessage(e.result); 17321 this.core.emit("plugins.message.displayed", { 17322 element: e.element, 17323 field: e.field, 17324 message: e.result.message, 17325 messageElement: _i, 17326 meta: e.result.meta, 17327 validator: e.validator 17328 }); 17329 } else if (_i && e.result.valid) { 17330 _s13.removeChild(_i); 17331 } 17332 } 17333 } 17334 }, { 17335 key: "onValidatorNotValidated", 17336 value: function onValidatorNotValidated(e) { 17337 var t = e.elements; 17338 var _s8 = e.element.getAttribute("type"); 17339 var i = "radio" === _s8 || "checkbox" === _s8 ? t[0] : e.element; 17340 if (this.messages.has(i)) { 17341 var _t3 = this.messages.get(i); 17342 var _s14 = _t3.querySelector('[data-field="'.concat(e.field, '"][data-validator="').concat(e.validator, '"]')); 17343 if (_s14) { 17344 _t3.removeChild(_s14); 17345 } 17346 } 17347 } 17348 }, { 17349 key: "onElementIgnored", 17350 value: function onElementIgnored(e) { 17351 var t = e.elements; 17352 var _s10 = e.element.getAttribute("type"); 17353 var i = "radio" === _s10 || "checkbox" === _s10 ? t[0] : e.element; 17354 if (this.messages.has(i)) { 17355 var _t4 = this.messages.get(i); 17356 var _s15 = [].slice.call(_t4.querySelectorAll('[data-field="'.concat(e.field, '"]'))); 17357 _s15.forEach(function (e) { 17358 _t4.removeChild(e); 17359 }); 17360 } 17361 } 17362 }], [{ 17363 key: "getClosestContainer", 17364 value: function getClosestContainer(e, t, _s) { 17365 var i = e; 17366 while (i) { 17367 if (i === t) { 17368 break; 17369 } 17370 i = i.parentElement; 17371 if (_s.test(i.className)) { 17372 break; 17373 } 17374 } 17375 return i; 17376 } 17377 }]); 17378 return s; 17379 }(t$4); 17380 var l = function (_e) { 17381 _inherits(l, _e); 17382 var _super = _createSuper(l); 17383 function l(e) { 17384 var _this; 17385 _classCallCheck(this, l); 17386 _this = _super.call(this, e); 17387 _this.results = new Map(); 17388 _this.containers = new Map(); 17389 _this.MESSAGE_PLUGIN = "___frameworkMessage"; 17390 _this.opts = Object.assign({}, { 17391 defaultMessageContainer: true, 17392 eleInvalidClass: "", 17393 eleValidClass: "", 17394 rowClasses: "", 17395 rowValidatingClass: "" 17396 }, e); 17397 _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this)); 17398 _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this)); 17399 _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this)); 17400 _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this)); 17401 _this.iconPlacedHandler = _this.onIconPlaced.bind(_assertThisInitialized(_this)); 17402 _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this)); 17403 _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this)); 17404 _this.messagePlacedHandler = _this.onMessagePlaced.bind(_assertThisInitialized(_this)); 17405 return _this; 17406 } 17407 _createClass(l, [{ 17408 key: "install", 17409 value: function install() { 17410 var _t, 17411 _this2 = this; 17412 c(this.core.getFormElement(), (_t = {}, _defineProperty(_t, this.opts.formClass, true), _defineProperty(_t, "fv-plugins-framework", true), _t)); 17413 this.core.on("core.element.ignored", this.elementIgnoredH
17413andler).on("core.element.validating", this.elementValidatingHandler).on("core.element.validated", this.elementValidatedHandler).on("core.element.notvalidated", this.elementNotValidatedHandler).on("plugins.icon.placed", this.iconPlacedHandler).on("core.field.added", this.fieldAddedHandler).on("core.field.removed", this.fieldRemovedHandler); 17414 if (this.opts.defaultMessageContainer) { 17415 this.core.registerPlugin(this.MESSAGE_PLUGIN, new s$1({ 17416 clazz: this.opts.messageClass, 17417 container: function container(e, t) { 17418 var _l = "string" === typeof _this2.opts.rowSelector ? _this2.opts.rowSelector : _this2.opts.rowSelector(e, t); 17419 var a = t$1(t, _l); 17420 return s$1.getClosestContainer(t, a, _this2.opts.rowPattern); 17421 } 17422 })); 17423 this.core.on("plugins.message.placed", this.messagePlacedHandler); 17424 } 17425 } 17426 }, { 17427 key: "uninstall", 17428 value: function uninstall() { 17429 var _t2; 17430 this.results.clear(); 17431 this.containers.clear(); 17432 c(this.core.getFormElement(), (_t2 = {}, _defineProperty(_t2, this.opts.formClass, false), _defineProperty(_t2, "fv-plugins-framework", false), _t2)); 17433 this.core.off("core.element.ignored", this.elementIgnoredHandler).off("core.element.validating", this.elementValidatingHandler).off("core.element.validated", this.elementValidatedHandler).off("core.element.notvalidated", this.elementNotValidatedHandler).off("plugins.icon.placed", this.iconPlacedHandler).off("core.field.added", this.fieldAddedHandler).off("core.field.removed", this.fieldRemovedHandler); 17434 if (this.opts.defaultMessageContainer) { 17435 this.core.deregisterPlugin(this.MESSAGE_PLUGIN); 17436 this.core.off("plugins.message.placed", this.messagePlacedHandler); 17437 } 17438 } 17439 }, { 17440 key: "onIconPlaced", 17441 value: function onIconPlaced(e) {} 17442 }, { 17443 key: "onMessagePlaced", 17444 value: function onMessagePlaced(e) {} 17445 }, { 17446 key: "onFieldAdded", 17447 value: function onFieldAdded(e) { 17448 var _this3 = this; 17449 var s = e.elements; 17450 if (s) { 17451 s.forEach(function (e) { 17452 var s = _this3.containers.get(e); 17453 if (s) { 17454 var _t3; 17455 c(s, (_t3 = {}, _defineProperty(_t3, _this3.opts.rowInvalidClass, false), _defineProperty(_t3, _this3.opts.rowValidatingClass, false), _defineProperty(_t3, _this3.opts.rowValidClass, false), _defineProperty(_t3, "fv-plugins-icon-container", false), _t3)); 17456 _this3.containers["delete"](e); 17457 } 17458 }); 17459 this.prepareFieldContainer(e.field, s); 17460 } 17461 } 17462 }, { 17463 key: "onFieldRemoved", 17464 value: function onFieldRemoved(e) { 17465 var _this4 = this; 17466 e.elements.forEach(function (e) { 17467 var s = _this4.containers.get(e); 17468 if (s) { 17469 var _t4; 17470 c(s, (_t4 = {}, _defineProperty(_t4, _this4.opts.rowInvalidClass, false), _defineProperty(_t4, _this4.opts.rowValidatingClass, false), _defineProperty(_t4, _this4.opts.rowValidClass, false), _t4)); 17471 } 17472 }); 17473 } 17474 }, { 17475 key: "prepareFieldContainer", 17476 value: function prepareFieldContainer(e, t) { 17477 var _this5 = this; 17478 if (t.length) { 17479 var _s = t[0].getAttribute("type"); 17480 if ("radio" === _s || "checkbox" === _s) { 17481 this.prepareElementContainer(e, t[0]); 17482 } else { 17483 t.forEach(function (t) { 17484 return _this5.prepareElementContainer(e, t); 17485 }); 17486 } 17487 } 17488 } 17489 }, { 17490 key: "prepareElementContainer", 17491 value: function prepareElementContainer(e, i) { 17492 var _l2 = "string" === typeof this.opts.rowSelector ? this.opts.rowSelector : this.opts.rowSelector(e, i); 17493 var a = t$1(i, _l2); 17494 if (a !== i) { 17495 var _t5; 17496 c(a, (_t5 = {}, _defineProperty(_t5, this.opts.rowClasses, true), _defineProperty(_t5, "fv-plugins-icon-container", true), _t5)); 17497 this.containers.set(i, a); 17498 } 17499 } 17500 }, {
17501 key: "onElementValidating", 17502 value: function onElementValidating(e) { 17503 var s = e.elements; 17504 var i = e.element.getAttribute("type"); 17505 var _l3 = "radio" === i || "checkbox" === i ? s[0] : e.element; 17506 var a = this.containers.get(_l3); 17507 if (a) { 17508 var _t6; 17509 c(a, (_t6 = {}, _defineProperty(_t6, this.opts.rowInvalidClass, false), _defineProperty(_t6, this.opts.rowValidatingClass, true), _defineProperty(_t6, this.opts.rowValidClass, false), _t6)); 17510 } 17511 } 17512 }, { 17513 key: "onElementNotValidated", 17514 value: function onElementNotValidated(e) { 17515 this.removeClasses(e.element, e.elements); 17516 } 17517 }, { 17518 key: "onElementIgnored", 17519 value: function onElementIgnored(e) { 17520 this.removeClasses(e.element, e.elements); 17521 } 17522 }, { 17523 key: "removeClasses", 17524 value: function removeClasses(e, s) { 17525 var _this6 = this; 17526 var i = e.getAttribute("type"); 17527 var _l4 = "radio" === i || "checkbox" === i ? s[0] : e; 17528 s.forEach(function (e) { 17529 var _t7; 17530 c(e, (_t7 = {}, _defineProperty(_t7, _this6.opts.eleValidClass, false), _defineProperty(_t7, _this6.opts.eleInvalidClass, false), _t7)); 17531 }); 17532 var a = this.containers.get(_l4); 17533 if (a) { 17534 var _t8; 17535 c(a, (_t8 = {}, _defineProperty(_t8, this.opts.rowInvalidClass, false), _defineProperty(_t8, this.opts.rowValidatingClass, false), _defineProperty(_t8, this.opts.rowValidClass, false), _t8)); 17536 } 17537 } 17538 }, { 17539 key: "onElementValidated", 17540 value: function onElementValidated(e) { 17541 var _this7 = this; 17542 var s = e.elements; 17543 var i = e.element.getAttribute("type"); 17544 var _l5 = "radio" === i || "checkbox" === i ? s[0] : e.element; 17545 s.forEach(function (s) { 17546 var _t9; 17547 c(s, (_t9 = {}, _defineProperty(_t9, _this7.opts.eleValidClass, e.valid), _defineProperty(_t9, _this7.opts.eleInvalidClass, !e.valid), _t9)); 17548 }); 17549 var a = this.containers.get(_l5); 17550 if (a) { 17551 if (!e.valid) { 17552 var _t10; 17553 this.results.set(_l5, false); 17554 c(a, (_t10 = {}, _defineProperty(_t10, this.opts.rowInvalidClass, true), _defineProperty(_t10, this.opts.rowValidatingClass, false), _defineProperty(_t10, this.opts.rowValidClass, false), _t10)); 17555 } else { 17556 this.results["delete"](_l5); 17557 var _e2 = true; 17558 this.containers.forEach(function (t, s) { 17559 if (t === a && _this7.results.get(s) === false) { 17560 _e2 = false; 17561 } 17562 }); 17563 if (_e2) { 17564 var _t11; 17565 c(a, (_t11 = {}, _defineProperty(_t11, this.opts.rowInvalidClass, false), _defineProperty(_t11, this.opts.rowValidatingClass, false), _defineProperty(_t11, this.opts.rowValidClass, true), _t11)); 17566 } 17567 } 17568 } 17569 } 17570 }]); 17571 return l; 17572 }(t$4); 17573 var i$2 = function (_e) { 17574 _inherits(i, _e); 17575 var _super = _createSuper(i); 17576 function i(e) { 17577 var _this; 17578 _classCallCheck(this, i); 17579 _this = _super.call(this, e); 17580 _this.icons = new Map(); 17581 _this.opts = Object.assign({}, { 17582 invalid: "fv-plugins-icon--invalid", 17583 onPlaced: function onPlaced() {}, 17584 onSet: function onSet() {}, 17585 valid: "fv-plugins-icon--valid", 17586 validating: "fv-plugins-icon--validating" 17587 }, e); 17588 _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this)); 17589 _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this)); 17590 _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this)); 17591 _this.elementIgnoredHandler = _this.onElementIgnored.bind(_assertThisInitialized(_this)); 17592 _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this)); 17593 return _this; 17594 } 17595 _createClass(i, [{ 17596 key: "install", 17597 value: function install() { 17598 this.core.on("core.element.validating", this.elementValidatingHandler).on("core.element.validated", this.elementValidatedHandler).on("core.element.notvalidated", this.elementNotValidatedHandler).on("core.element.ignored", this.elementIgnoredH
17598andler).on("core.field.added", this.fieldAddedHandler); 17599 } 17600 }, { 17601 key: "uninstall", 17602 value: function uninstall() { 17603 this.icons.forEach(function (e) { 17604 return e.parentNode.removeChild(e); 17605 }); 17606 this.icons.clear(); 17607 this.core.off("core.element.validating", this.elementValidatingHandler).off("core.element.validated", this.elementValidatedHandler).off("core.element.notvalidated", this.elementNotValidatedHandler).off("core.element.ignored", this.elementIgnoredHandler).off("core.field.added", this.fieldAddedHandler); 17608 } 17609 }, { 17610 key: "onFieldAdded", 17611 value: function onFieldAdded(e) { 17612 var _this2 = this; 17613 var t = e.elements; 17614 if (t) { 17615 t.forEach(function (e) { 17616 var t = _this2.icons.get(e); 17617 if (t) { 17618 t.parentNode.removeChild(t); 17619 _this2.icons["delete"](e); 17620 } 17621 }); 17622 this.prepareFieldIcon(e.field, t); 17623 } 17624 } 17625 }, { 17626 key: "prepareFieldIcon", 17627 value: function prepareFieldIcon(e, t) { 17628 var _this3 = this; 17629 if (t.length) { 17630 var _i8 = t[0].getAttribute("type"); 17631 if ("radio" === _i8 || "checkbox" === _i8) { 17632 this.prepareElementIcon(e, t[0]); 17633 } else { 17634 t.forEach(function (t) { 17635 return _this3.prepareElementIcon(e, t); 17636 }); 17637 } 17638 } 17639 } 17640 }, { 17641 key: "prepareElementIcon", 17642 value: function prepareElementIcon(e, _i2) { 17643 var n = document.createElement("i"); 17644 n.setAttribute("data-field", e); 17645 _i2.parentNode.insertBefore(n, _i2.nextSibling); 17646 c(n, { 17647 "fv-plugins-icon": true 17648 }); 17649 var l = { 17650 classes: { 17651 invalid: this.opts.invalid, 17652 valid: this.opts.valid, 17653 validating: this.opts.validating 17654 }, 17655 element: _i2, 17656 field: e, 17657 iconElement: n 17658 }; 17659 this.core.emit("plugins.icon.placed", l); 17660 this.opts.onPlaced(l); 17661 this.icons.set(_i2, n); 17662 } 17663 }, { 17664 key: "onElementValidating", 17665 value: function onElementValidating(e) { 17666 var _this$setClasses; 17667 var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses = {}, _defineProperty(_this$setClasses, this.opts.invalid, false), _defineProperty(_this$setClasses, this.opts.valid, false), _defineProperty(_this$setClasses, this.opts.validating, true), _this$setClasses)); 17668 var _i3 = { 17669 element: e.element, 17670 field: e.field, 17671 iconElement: t, 17672 status: "Validating" 17673 }; 17674 this.core.emit("plugins.icon.set", _i3); 17675 this.opts.onSet(_i3); 17676 } 17677 }, { 17678 key: "onElementValidated", 17679 value: function onElementValidated(e) { 17680 var _this$setClasses2; 17681 var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses2 = {}, _defineProperty(_this$setClasses2, this.opts.invalid, !e.valid), _defineProperty(_this$setClasses2, this.opts.valid, e.valid), _defineProperty(_this$setClasses2, this.opts.validating, false), _this$setClasses2)); 17682 var _i4 = { 17683 element: e.element, 17684 field: e.field, 17685 iconElement: t, 17686 status: e.valid ? "Valid" : "Invalid" 17687 }; 17688 this.core.emit("plugins.icon.set", _i4); 17689 this.opts.onSet(_i4); 17690 } 17691 }, { 17692 key: "onElementNotValidated", 17693 value: function onElementNotValidated(e) { 17694 var _this$setClasses3; 17695 var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses3 = {}, _defineProperty(_this$setClasses3, this.opts.invalid, false), _defineProperty(_this$setClasses3, this.opts.valid, false), _defineProperty(_this$setClasses3, this.opts.validating, false), _this$setClasses3)); 17696 var _i5 = { 17697 element: e.element, 17698 field: e.field, 17699 iconElement: t, 17700 status: "NotValidated" 17701 }; 17702 this.core.emit("plugins.icon.set", _i5); 17703 this.opts.onSet(_i5); 17704 } 17705 }, { 17706 key: "onElementIgnored", 17707 value: function onElementIgnored(e) { 17708 var _this$setClasses4; 17709 var t = this.setClasses(e.field, e.element, e.elements, (_this$setClasses4 = {}, _defineProperty(_this$setClasses4, this.opts.invalid, false), _defineProperty(_this$setClasses4, this.opts.valid, false), _defineProperty(_this$setClasses4, this.opts.validating, false), _this$setClasses4)); 17710 var _i6 = { 17711 element: e.element, 17712 field: e.field, 17713 iconElement: t, 17714 status: "Ignored" 17715 }; 17716 this.core.emit("plugins.icon.set", _i6); 17717 this.opts.onSet(_i6); 17718 } 17719 }, {
17720 key: "setClasses", 17721 value: function setClasses(e, _i7, n, l) { 17722 var s = _i7.getAttribute("type"); 17723 var d = "radio" === s || "checkbox" === s ? n[0] : _i7; 17724 if (this.icons.has(d)) { 17725 var _e2 = this.icons.get(d); 17726 c(_e2, l); 17727 return _e2; 17728 } else { 17729 return null; 17730 } 17731 } 17732 }]); 17733 return i; 17734 }(t$4); 17735 var i$1 = function (_e) { 17736 _inherits(i, _e); 17737 var _super = _createSuper(i); 17738 function i(e) { 17739 var _this; 17740 _classCallCheck(this, i); 17741 _this = _super.call(this, e); 17742 _this.invalidFields = new Map(); 17743 _this.opts = Object.assign({}, { 17744 enabled: true 17745 }, e); 17746 _this.validatorHandler = _this.onValidatorValidated.bind(_assertThisInitialized(_this)); 17747 _this.shouldValidateFilter = _this.shouldValidate.bind(_assertThisInitialized(_this)); 17748 _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this)); 17749 _this.elementNotValidatedHandler = _this.onElementNotValidated.bind(_assertThisInitialized(_this)); 17750 _this.elementValidatingHandler = _this.onElementValidating.bind(_assertThisInitialized(_this)); 17751 return _this; 17752 } 17753 _createClass(i, [{ 17754 key: "install", 17755 value: function install() { 17756 this.core.on("core.validator.validated", this.validatorHandler).on("core.field.added", this.fieldAddedHandler).on("core.element.notvalidated", this.elementNotValidatedHandler).on("core.element.validating", this.elementValidatingHandler).registerFilter("field-should-validate", this.shouldValidateFilter); 17757 } 17758 }, { 17759 key: "uninstall", 17760 value: function uninstall() { 17761 this.invalidFields.clear(); 17762 this.core.off("core.validator.validated", this.validatorHandler).off("core.field.added", this.fieldAddedHandler).off("core.element.notvalidated", this.elementNotValidatedHandler).off("core.element.validating", this.elementValidatingHandler).deregisterFilter("field-should-validate", this.shouldValidateFilter); 17763 } 17764 }, { 17765 key: "shouldValidate", 17766 value: function shouldValidate(e, _i, t, l) { 17767 var d = (this.opts.enabled === true || this.opts.enabled[e] === true) && this.invalidFields.has(_i) && !!this.invalidFields.get(_i).length && this.invalidFields.get(_i).indexOf(l) === -1; 17768 return !d; 17769 } 17770 }, { 17771 key: "onValidatorValidated", 17772 value: function onValidatorValidated(e) { 17773 var _i2 = this.invalidFields.has(e.element) ? this.invalidFields.get(e.element) : []; 17774 var t = _i2.indexOf(e.validator); 17775 if (e.result.valid && t >= 0) { 17776 _i2.splice(t, 1); 17777 } else if (!e.result.valid && t === -1) { 17778 _i2.push(e.validator); 17779 } 17780 this.invalidFields.set(e.element, _i2); 17781 } 17782 }, { 17783 key: "onFieldAdded", 17784 value: function onFieldAdded(e) { 17785 if (e.elements) { 17786 this.clearInvalidFields(e.elements); 17787 } 17788 } 17789 }, { 17790 key: "onElementNotValidated", 17791 value: function onElementNotValidated(e) { 17792 this.clearInvalidFields(e.elements); 17793 } 17794 }, { 17795 key: "onElementValidating", 17796 value: function onElementValidating(e) { 17797 this.clearInvalidFields(e.elements); 17798 } 17799 }, { 17800 key: "clearInvalidFields", 17801 value: function clearInvalidFields(e) { 17802 var _this2 = this; 17803 e.forEach(function (e) { 17804 return _this2.invalidFields["delete"](e); 17805 }); 17806 } 17807 }]); 17808 return i; 17809 }(t$4); 17810 var e = function (_t) { 17811 _inherits(e, _t); 17812 var _super = _createSuper(e); 17813 function e(t) { 17814 var _this; 17815 _classCallCheck(this, e); 17816 _this = _super.call(this, t); 17817 _this.isFormValid = false; 17818 _this.opts = Object.assign({}, { 17819 aspNetButton: false, 17820 buttons: function buttons(t) { 17821 return [].slice.call(t.querySelectorAll('[type="submit"]:not([formnovalidate])')); 17822 } 17823 }, t); 17824 _this.submitHandler = _this.handleSubmitEvent.bind(_assertThisInitialized(_this)); 17825 _this.buttonClickHandler = _this.handleClickEvent.bind(_assertThisInitialized(_this)); 17826 return _this; 17827 } 17828 _createClass(e, [{ 17829 key: "install", 17830 value: function install() { 17831 var _this2 = this; 17832 if (!(this.core.getFormElement() instanceof HTMLFormElement)) { 17833 return; 17834 } 17835 var t = this.core.getFormElement(); 17836 this.submitButtons = this.opts.buttons(t); 17837 t.setAttribute("novalidate", "novalidate"); 17838 t.addEventListener("submit", this.submitHandler); 17839 this.hiddenClickedEle = document.createElement("input"); 17840 this.hiddenClickedEle.setAttribute("type", "hidden"); 17841 t.appendChild(this.hiddenClickedEle); 17842 this.submitButtons.forEach(function (t) { 17843 t.addEventListener("click", _this2.buttonClickHandler); 17844 }); 17845 } 17846 }, {
17847 key: "uninstall", 17848 value: function uninstall() { 17849 var _this3 = this; 17850 var t = this.core.getFormElement(); 17851 if (t instanceof HTMLFormElement) { 17852 t.removeEventListener("submit", this.submitHandler); 17853 } 17854 this.submitButtons.forEach(function (t) { 17855 t.removeEventListener("click", _this3.buttonClickHandler); 17856 }); 17857 this.hiddenClickedEle.parentElement.removeChild(this.hiddenClickedEle); 17858 } 17859 }, { 17860 key: "handleSubmitEvent", 17861 value: function handleSubmitEvent(t) { 17862 this.validateForm(t); 17863 } 17864 }, { 17865 key: "handleClickEvent", 17866 value: function handleClickEvent(t) { 17867 var _e = t.currentTarget; 17868 if (_e instanceof HTMLElement) { 17869 if (this.opts.aspNetButton && this.isFormValid === true) ;else { 17870 var _e3 = this.core.getFormElement(); 17871 _e3.removeEventListener("submit", this.submitHandler); 17872 this.clickedButton = t.target; 17873 var i = this.clickedButton.getAttribute("name"); 17874 var s = this.clickedButton.getAttribute("value"); 17875 if (i && s) { 17876 this.hiddenClickedEle.setAttribute("name", i); 17877 this.hiddenClickedEle.setAttribute("value", s); 17878 } 17879 this.validateForm(t); 17880 } 17881 } 17882 } 17883 }, { 17884 key: "validateForm", 17885 value: function validateForm(t) { 17886 var _this4 = this; 17887 t.preventDefault(); 17888 this.core.validate().then(function (t) { 17889 if (t === "Valid" && _this4.opts.aspNetButton && !_this4.isFormValid && _this4.clickedButton) { 17890 _this4.isFormValid = true; 17891 _this4.clickedButton.removeEventListener("click", _this4.buttonClickHandler); 17892 _this4.clickedButton.click(); 17893 } 17894 }); 17895 } 17896 }]); 17897 return e; 17898 }(t$4); 17899 var i = function (_t) { 17900 _inherits(i, _t); 17901 var _super = _createSuper(i); 17902 function i(t) { 17903 var _this; 17904 _classCallCheck(this, i); 17905 _this = _super.call(this, t); 17906 _this.messages = new Map(); 17907 _this.opts = Object.assign({}, { 17908 placement: "top", 17909 trigger: "click" 17910 }, t); 17911 _this.iconPlacedHandler = _this.onIconPlaced.bind(_assertThisInitialized(_this)); 17912 _this.validatorValidatedHandler = _this.onValidatorValidated.bind(_assertThisInitialized(_this)); 17913 _this.elementValidatedHandler = _this.onElementValidated.bind(_assertThisInitialized(_this)); 17914 _this.documentClickHandler = _this.onDocumentClicked.bind(_assertThisInitialized(_this)); 17915 return _this; 17916 } 17917 _createClass(i, [{ 17918 key: "install", 17919 value: function install() { 17920 this.tip = document.createElement("div"); 17921 c(this.tip, _defineProperty({ 17922 "fv-plugins-tooltip": true 17923 }, "fv-plugins-tooltip--".concat(this.opts.placement), true)); 17924 document.body.appendChild(this.tip); 17925 this.core.on("plugins.icon.placed", this.iconPlacedHandler).on("core.validator.validated", this.validatorValidatedHandler).on("core.element.validated", this.elementValidatedHandler); 17926 if ("click" === this.opts.trigger) { 17927 document.addEventListener("click", this.documentClickHandler); 17928 } 17929 } 17930 }, { 17931 key: "uninstall", 17932 value: function uninstall() { 17933 this.messages.clear(); 17934 document.body.removeChild(this.tip); 17935 this.core.off("plugins.icon.placed", this.iconPlacedHandler).off("core.validator.validated", this.validatorValidatedHandler).off("core.element.validated", this.elementValidatedHandler); 17936 if ("click" === this.opts.trigger) { 17937 document.removeEventListener("click", this.documentClickHandler); 17938 } 17939 } 17940 }, { 17941 key: "onIconPlaced", 17942 value: function onIconPlaced(t) { 17943 var _this2 = this; 17944 c(t.iconElement, { 17945 "fv-plugins-tooltip-icon": true 17946 }); 17947 switch (this.opts.trigger) { 17948 case "hover": 17949 t.iconElement.addEventListener("mouseenter", function (e) { 17950 return _this2.show(t.element, e); 17951 }); 17952 t.iconElement.addEventListener("mouseleave", function (t) { 17953 return _this2.hide(); 17954 }); 17955 break; 17956 case "click": 17957 default: 17958 t.iconElement.addEventListener("click", function (e) { 17959 return _this2.show(t.element, e); 17960 }); 17961 break; 17962 } 17963 } 17964 }, {
17965 key: "onValidatorValidated", 17966 value: function onValidatorValidated(t) { 17967 if (!t.result.valid) { 17968 var _e2 = t.elements; 17969 var _i4 = t.element.getAttribute("type"); 17970 var s = "radio" === _i4 || "checkbox" === _i4 ? _e2[0] : t.element; 17971 var o = typeof t.result.message === "string" ? t.result.message : t.result.message[this.core.getLocale()]; 17972 this.messages.set(s, o); 17973 } 17974 } 17975 }, { 17976 key: "onElementValidated", 17977 value: function onElementValidated(t) { 17978 if (t.valid) { 17979 var _e3 = t.elements; 17980 var _i5 = t.element.getAttribute("type"); 17981 var s = "radio" === _i5 || "checkbox" === _i5 ? _e3[0] : t.element; 17982 this.messages["delete"](s); 17983 } 17984 } 17985 }, { 17986 key: "onDocumentClicked", 17987 value: function onDocumentClicked(t) { 17988 this.hide(); 17989 } 17990 }, { 17991 key: "show", 17992 value: function show(t, _i3) { 17993 _i3.preventDefault(); 17994 _i3.stopPropagation(); 17995 if (!this.messages.has(t)) { 17996 return; 17997 } 17998 c(this.tip, { 17999 "fv-plugins-tooltip--hide": false 18000 }); 18001 this.tip.innerHTML = '<div class="fv-plugins-tooltip__content">'.concat(this.messages.get(t), "</div>"); 18002 var s = _i3.target; 18003 var o = s.getBoundingClientRect(); 18004 var _this$tip$getBounding = this.tip.getBoundingClientRect(), 18005 l = _this$tip$getBounding.height, 18006 n = _this$tip$getBounding.width; 18007 var a = 0; 18008 var d = 0; 18009 switch (this.opts.placement) { 18010 case "bottom": 18011 a = o.top + o.height; 18012 d = o.left + o.width / 2 - n / 2; 18013 break; 18014 case "bottom-left": 18015 a = o.top + o.height; 18016 d = o.left; 18017 break; 18018 case "bottom-right": 18019 a = o.top + o.height; 18020 d = o.left + o.width - n; 18021 break; 18022 case "left": 18023 a = o.top + o.height / 2 - l / 2; 18024 d = o.left - n; 18025 break; 18026 case "right": 18027 a = o.top + o.height / 2 - l / 2; 18028 d = o.left + o.width; 18029 break; 18030 case "top-left": 18031 a = o.top - l; 18032 d = o.left; 18033 break; 18034 case "top-right": 18035 a = o.top - l; 18036 d = o.left + o.width - n; 18037 break; 18038 case "top": 18039 default: 18040 a = o.top - l; 18041 d = o.left + o.width / 2 - n / 2; 18042 break; 18043 } 18044 var c$1 = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; 18045 var r = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; 18046 a = a + c$1; 18047 d = d + r; 18048 this.tip.setAttribute("style", "top: ".concat(a, "px; left: ").concat(d, "px")); 18049 } 18050 }, { 18051 key: "hide", 18052 value: function hide() { 18053 c(this.tip, { 18054 "fv-plugins-tooltip--hide": true 18055 }); 18056 } 18057 }]); 18058 return i; 18059 }(t$4); 18060 var t = function (_e) { 18061 _inherits(t, _e); 18062 var _super = _createSuper(t); 18063 function t(e) { 18064 var _this; 18065 _classCallCheck(this, t); 18066 _this = _super.call(this, e); 18067 _this.handlers = []; 18068 _this.timers = new Map(); 18069 var _t = document.createElement("div"); 18070 _this.defaultEvent = !("oninput" in _t) ? "keyup" : "input"; 18071 _this.opts = Object.assign({}, { 18072 delay: 0, 18073 event: _this.defaultEvent, 18074 threshold: 0 18075 }, e); 18076 _this.fieldAddedHandler = _this.onFieldAdded.bind(_assertThisInitialized(_this)); 18077 _this.fieldRemovedHandler = _this.onFieldRemoved.bind(_assertThisInitialized(_this)); 18078 return _this; 18079 } 18080 _createClass(t, [{ 18081 key: "install", 18082 value: function install() { 18083 this.core.on("core.field.added", this.fieldAddedHandler).on("core.field.removed", this.fieldRemovedHandler); 18084 } 18085 }, { 18086 key: "uninstall", 18087 value: function uninstall() { 18088 this.handlers.forEach(function (e) { 18089 return e.element.removeEventListener(e.event, e.handler); 18090 }); 18091 this.handlers = [];
18092 this.timers.forEach(function (e) { 18093 return window.clearTimeout(e); 18094 }); 18095 this.timers.clear(); 18096 this.core.off("core.field.added", this.fieldAddedHandler).off("core.field.removed", this.fieldRemovedHandler); 18097 } 18098 }, { 18099 key: "prepareHandler", 18100 value: function prepareHandler(e, _t2) { 18101 var _this2 = this; 18102 _t2.forEach(function (_t3) { 18103 var i = []; 18104 if (!!_this2.opts.event && _this2.opts.event[e] === false) { 18105 i = []; 18106 } else if (!!_this2.opts.event && !!_this2.opts.event[e] && typeof _this2.opts.event[e] !== "function") { 18107 i = _this2.opts.event[e].split(" "); 18108 } else if ("string" === typeof _this2.opts.event && _this2.opts.event !== _this2.defaultEvent) { 18109 i = _this2.opts.event.split(" "); 18110 } else { 18111 var _e2 = _t3.getAttribute("type"); 18112 var s = _t3.tagName.toLowerCase(); 18113 var n = "radio" === _e2 || "checkbox" === _e2 || "file" === _e2 || "select" === s ? "change" : _this2.ieVersion >= 10 && _t3.getAttribute("placeholder") ? "keyup" : _this2.defaultEvent; 18114 i = [n]; 18115 } 18116 i.forEach(function (i) { 18117 var s = function s(i) { 18118 return _this2.handleEvent(i, e, _t3); 18119 }; 18120 _this2.handlers.push({ 18121 element: _t3, 18122 event: i, 18123 field: e, 18124 handler: s 18125 }); 18126 _t3.addEventListener(i, s); 18127 }); 18128 }); 18129 } 18130 }, { 18131 key: "handleEvent", 18132 value: function handleEvent(e, _t4, i) { 18133 var _this3 = this; 18134 if (this.exceedThreshold(_t4, i) && this.core.executeFilter("plugins-trigger-should-validate", true, [_t4, i])) { 18135 var s = function s() { 18136 return _this3.core.validateElement(_t4, i).then(function (s) { 18137 _this3.core.emit("plugins.trigger.executed", { 18138 element: i, 18139 event: e, 18140 field: _t4 18141 }); 18142 }); 18143 }; 18144 var n = this.opts.delay[_t4] || this.opts.delay; 18145 if (n === 0) { 18146 s(); 18147 } else { 18148 var _e3 = this.timers.get(i); 18149 if (_e3) { 18150 window.clearTimeout(_e3); 18151 } 18152 this.timers.set(i, window.setTimeout(s, n * 1e3)); 18153 } 18154 } 18155 } 18156 }, { 18157 key: "onFieldAdded", 18158 value: function onFieldAdded(e) { 18159 this.handlers.filter(function (_t5) { 18160 return _t5.field === e.field; 18161 }
18161).forEach(function (e) { 18162 return e.element.removeEventListener(e.event, e.handler); 18163 }); 18164 this.prepareHandler(e.field, e.elements); 18165 } 18166 }, { 18167 key: "onFieldRemoved", 18168 value: function onFieldRemoved(e) { 18169 this.handlers.filter(function (_t6) { 18170 return _t6.field === e.field && e.elements.indexOf(_t6.element) >= 0; 18171 }).forEach(function (e) { 18172 return e.element.removeEventListener(e.event, e.handler); 18173 }); 18174 } 18175 }, { 18176 key: "exceedThreshold", 18177 value: function exceedThreshold(e, _t7) { 18178 var i = this.opts.threshold[e] === 0 || this.opts.threshold === 0 ? false : this.opts.threshold[e] || this.opts.threshold; 18179 if (!i) { 18180 return true; 18181 } 18182 var s = _t7.getAttribute("type"); 18183 if (["button", "checkbox", "file", "hidden", "image", "radio", "reset", "submit"].indexOf(s) !== -1) { 18184 return true; 18185 } 18186 var n = this.core.getElementValue(e, _t7); 18187 return n.length >= i; 18188 } 18189 }]); 18190 return t; 18191 }(t$4); 18192 var index$1 = { 18193 Alias: e$4, 18194 Aria: i$3, 18195 Declarative: t$3, 18196 DefaultSubmit: o, 18197 Dependency: e$3, 18198 Excluded: e$2, 18199 FieldStatus: t$2, 18200 Framework: l, 18201 Icon: i$2, 18202 Message: s$1, 18203 Sequence: i$1, 18204 SubmitButton: e, 18205 Tooltip: i, 18206 Trigger: t 18207 }; 18208 function s(s, t) { 18209 return s.classList ? s.classList.contains(t) : new RegExp("(^| )".concat(t, "( |$)"), "gi").test(s.className); 18210 } 18211 var index = { 18212 call: t$$, 18213 classSet: c, 18214 closest: t$1, 18215 fetch: t$V, 18216 format: r$d, 18217 hasClass: s, 18218 isValidDate: t$Y 18219 }; 18220 var p = {}; 18221 exports.Plugin = t$4; 18222 exports.algorithms = index$3; 18223 exports.filters = index$2; 18224 exports.formValidation = r; 18225 exports.locales = p; 18226 exports.plugins = index$1; 18227 exports.utils = index; 18228 exports.validators = s$3; 18229 Object.defineProperty(exports, "__esModule", { 18230 value: true 18231 }); 18232}); 18233 18234/***/ }), 18235
18236/***/ "./resources/plugins/gsap/gsap.js": 18237/*!****************************************!*\ 18238 !*** ./resources/plugins/gsap/gsap.js ***! 18239 \****************************************/ 18240/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 18241 18242"use strict"; 18243__webpack_require__.r(__webpack_exports__); 18244/* harmony export */ __webpack_require__.d(__webpack_exports__, { 18245/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 18246/* harmony export */ }); 18247/* harmony import */ var gsap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! gsap */ "./node_modules/gsap/index.js"); 18248/* harmony import */ var gsap_PixiPlugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! gsap/PixiPlugin */ "./node_modules/gsap/PixiPlugin.js"); 18249/* harmony import */ var gsap_MotionPathPlugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! gsap/MotionPathPlugin */ "./node_modules/gsap/MotionPathPlugin.js"); 18250/* harmony import */ var gsap_ScrollTrigger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! gsap/ScrollTrigger */ "./node_modules/gsap/ScrollTrigger.js"); 18251 18252 18253 18254 18255// import { ScrollSmoother } from "gsap/ScrollSmoother"; 18256 18257// gsap.registerPlugin(PixiPlugin, MotionPathPlugin, ScrollTrigger, ScrollSmoother); 18258gsap__WEBPACK_IMPORTED_MODULE_0__.gsap.registerPlugin(gsap_PixiPlugin__WEBPACK_IMPORTED_MODULE_1__.PixiPlugin, gsap_MotionPathPlugin__WEBPACK_IMPORTED_MODULE_2__.MotionPathPlugin, gsap_ScrollTrigger__WEBPACK_IMPORTED_MODULE_3__.ScrollTrigger); 18259 18260// create the smooth scroller FIRST! 18261// wondow.smoother = ScrollSmoother.create({ 18262// content: "#body", 18263// smooth: 3, 18264// normalizeScroll: true, 18265// ignoreMobileResize: true, 18266// effects: true, 18267// // preventDefault: true, 18268// // ease: 'power4.out', 18269// // smoothTouch: 0.1, 18270// }); 18271 18272/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (gsap__WEBPACK_IMPORTED_MODULE_0__.gsap); 18273 18274/***/ }), 18275
18276/***/ "./resources/plugins/locomotive/locomotive-scroll.js": 18277/*!***********************************************************!*\ 18278 !*** ./resources/plugins/locomotive/locomotive-scroll.js ***! 18279 \***********************************************************/ 18280/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 18281 18282"use strict"; 18283__webpack_require__.r(__webpack_exports__); 18284/* harmony import */ var locomotive_scroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! locomotive-scroll */ "./node_modules/locomotive-scroll/dist/locomotive-scroll.esm.js"); 18285 18286window.locoScroll = new locomotive_scroll__WEBPACK_IMPORTED_MODULE_0__["default"]({ 18287 el: document.querySelector('[data-scroll-container]'), 18288 smooth: true 18289}); 18290 18291/***/ }), 18292
18293/***/ "./resources/plugins/msDropdown/js/index.js": 18294/*!**************************************************!*\ 18295 !*** ./resources/plugins/msDropdown/js/index.js ***! 18296 \**************************************************/ 18297/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 18298 18299"use strict"; 18300__webpack_require__.r(__webpack_exports__); 18301/* harmony import */ var _lib_dd_webcomponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/dd-webcomponent */ "./resources/plugins/msDropdown/js/lib/dd-webcomponent.js"); 18302/* harmony import */ var _lib_dd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/dd */ "./resources/plugins/msDropdown/js/lib/dd.js"); 18303 18304 18305window.MsDropdown = _lib_dd__WEBPACK_IMPORTED_MODULE_1__["default"]; 18306(function () { 18307 let isSafari = navigator.vendor && navigator.vendor.indexOf('Apple') > -1 && navigator.userAgent && navigator.userAgent.indexOf('CriOS') == -1 && navigator.userAgent.indexOf('FxiOS') == -1; 18308 if (isSafari) { 18309 _lib_dd__WEBPACK_IMPORTED_MODULE_1__["default"].make("select[is='ms-dropdown']"); 18310 /** 18311 * Not a good idea to override this 18312 * but if you want to use document.createElement("select"); this can be enable for safari. 18313 * how to use: 18314 * var select = document.createElement("select", {is:'ms-dropdown'}); 18315 * select.setAttribute("is", "ms-dropdown"); 18316 * select.options[0] = new Option("Hashtag CMS", "https://www.hashtagcms.org"); // add an option 18317 * select.options[1] = new Option("My Website", "https://www.marghoobsuleman.com"); // add an option 18318 * document.body.appendChild(select); 18319 */ 18320 18321 /* 18322 window.addEventListener("load", ()=> { 18323 let OriginalAppendChild = Element.prototype.appendChild; 18324 Element.prototype.appendChild = function() { 18325 OriginalAppendChild.apply(this, arguments); 18326 let select = arguments[0]; 18327 if(select.nodeName === "SELECT" && select.getAttribute("is") === "ms-dropdown") { 18328 select.msDropdown = new MsDropdown(select); 18329 } 18330 }; 18331 }) 18332 */ 18333 } 18334})(); 18335 18336/***/ }), 18337
18338/***/ "./resources/plugins/msDropdown/js/lib/dd-webcomponent.js": 18339/*!****************************************************************!*\ 18340 !*** ./resources/plugins/msDropdown/js/lib/dd-webcomponent.js ***! 18341 \****************************************************************/ 18342/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 18343 18344"use strict"; 18345__webpack_require__.r(__webpack_exports__); 18346/* harmony import */ var _dd__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dd */ "./resources/plugins/msDropdown/js/lib/dd.js"); 18347 18348class dd extends HTMLSelectElement { 18349 constructor(element, settings) { 18350 super(); 18351 } 18352 connectedCallback() { 18353 if (!this.msDropdown) { 18354 this.msDropdown = new _dd__WEBPACK_IMPORTED_MODULE_0__["default"](this); 18355 } 18356 try { 18357 this.addEventListener("change", evt => { 18358 if (!this.multiple) { 18359 this.msDropdown.selectedIndex = this.selectedIndex; 18360 } else { 18361 this.msDropdown.refresh(); 18362 } 18363 }); 18364 } catch (e) { 18365 console.log(e.message); 18366 } 18367 } 18368 disconnectedCallback() { 18369 //console.log('disconnectedCallback'); 18370 } 18371 adoptedCallback() { 18372 //console.log('adoptedCallback', this); 18373 } 18374 attributeChangedCallback(name, oldValue, newValue) { 18375 if (this.msDropdown) { 18376 if (name.indexOf("data-") !== -1) { 18377 name = name.replace("data-", ""); 18378 let nameStr = name.toLowerCase().split('-'); 18379 for (let i = 1; i < nameStr.length; i++) { 18380 nameStr[i] = nameStr[i].charAt(0).toUpperCase() + nameStr[i].substring(1); 18381 } 18382 this.msDropdown.setSettingAttribute(nameStr.join(""), newValue, true); //update settings and refresh 18383 } else { 18384 //this.msDropdown[name] = newValue; 18385 } 18386 } 18387 } 18388 static get observedAttributes() { 18389 return ['data-main-css', 'data-show-icon', 'data-event', 'data-child-width', 'data-child-height', 'data-enable-checkbox', 'data-checkbox-name-suffix', 'data-enable-auto-filter', 'data-visible-rows', 'data-show-plus-item-counter', 'data-error-message', 'data-show-filter-always', 'data-show-list-counter', 'data-image-position']; 18390 } 18391} 18392customElements.define('ms-dropdown', dd, { 18393 extends: 'select' 18394}); 18395 18396/***/ }), 18397
18398/***/ "./resources/plugins/msDropdown/js/lib/dd.js": 18399/*!***************************************************!*\ 18400 !*** ./resources/plugins/msDropdown/js/lib/dd.js ***! 18401 \***************************************************/ 18402/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 18403 18404"use strict"; 18405__webpack_require__.r(__webpack_exports__); 18406/* harmony export */ __webpack_require__.d(__webpack_exports__, { 18407/* harmony export */ "default": () => (/* binding */ MsDropdown) 18408/* harmony export */ }); 18409/* harmony import */ var _ddmaker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ddmaker */ "./resources/plugins/msDropdown/js/lib/ddmaker.js"); 18410/** 18411 * MSDropdown - dd.js 18412 * @author: Marghoob Suleman 18413 * @website: https://www.marghoobsuleman.com/ 18414 * @version: 4.0.2 18415 * @revision: 5 18416 * @date: 5th Sep 2021 18417 * msDropdown is free web component: you can redistribute it and/or modify 18418 * it under the terms of the either the MIT License or the Gnu General Public License (GPL) Version 2 18419 */ 18420 18421 18422class MsDropdown { 18423 constructor(ele, settings) { 18424 if (typeof ele === "string") { 18425 document.querySelectorAll(ele).forEach(current => { 18426 new MsDropdown(current, settings); 18427 }); 18428 } else { 18429 ele.msDropdown = this; 18430 this._ddMaker = new _ddmaker__WEBPACK_IMPORTED_MODULE_0__["default"](ele, settings); 18431 } 18432 } 18433 /***************** Public methods and props ***********/ 18434 18435 /** 18436 * Set setting attributes 18437 * @param key 18438 * @param value 18439 * @param shouldRefresh 18440 */ 18441 setSettingAttribute(key, value, shouldRefresh = false) { 18442 this._ddMaker.setSettingAttribute(key, value); 18443 if (shouldRefresh) { 18444 this._ddMaker.refresh(); 18445 } 18446 } 18447 /** 18448 * Add an item to select 18449 * Object can be pass as below 18450 * new Option("Label", "value") or 18451 * {text:"Label", value:"value"} 18452 * or Label as string 18453 * or full object ie {text:"", value:"", description:'', image:'', className:'' title:'', imageCss:''} 18454 * @param obj {option | object} 18455 * @param index {int} 18456 */ 18457 add(obj, index) { 18458 this._ddMaker.add(obj, index); 18459 } 18460 18461 /** 18462 * Remove an item from select 18463 * @param index {int} 18464 */ 18465 remove(index) { 18466 return this._ddMaker.remove(index); 18467 } 18468 18469 /** 18470 * Move to next index 18471 */ 18472 next() { 18473 this._ddMaker.next(); 18474 } 18475 18476 /** 18477 * Move to previous index 18478 */ 18479 previous() { 18480 this._ddMaker.previous(); 18481 } 18482 18483 /** 18484 * Open this dropdown 18485 */ 18486 open() { 18487 this._ddMaker.open(null, false); 18488 } 18489 18490 /** 18491 * Close this dropdown 18492 */ 18493 close() { 18494 this._ddMaker.close(null); 18495 } 18496 18497 /** 18498 * Return named item element with data 18499 * @param name {string} 18500 * @param withData 18501 */ 18502 namedItem(name, withData = false) { 18503 return this._ddMaker.namedItem(name, withData); 18504 } 18505 18506 /** 18507 * Get data by index 18508 * @param index {int} 18509 * @param withData 18510 */ 18511 item(index, withData = false) { 18512 return this._ddMaker.item(index, withData); 18513 } 18514 18515 /** 18516 * Show hide or get status of visibility 18517 * @param isShow 18518 * @return {boolean} 18519 */ 18520 visible(isShow = null) { 18521 return this._ddMaker.visible(isShow); 18522 } 18523 18524 /** 18525 * Calculate item height and set child height 18526 * @param numberOfRows {int} 18527 */ 18528 showRows(numberOfRows) { 18529 this._ddMaker.showRows(numberOfRows); 18530 } 18531 18532 /** 18533 * Alias of showRows 18534 * @param numberOfRows {int} 18535 */ 18536 visibleRows(numberOfRows) { 18537 this._ddMaker.showRows(numberOfRows); 18538 } 18539 18540 /** 18541 * Add event listener 18542 * @param type {string} 18543 * @param fn {function} 18544 */ 18545 on(type, fn) { 18546 this._ddMaker.on(type, fn); 18547 } 18548 18549 /** 18550 * Remove event listener 18551 * @param type {string} 18552 * @param fn {function} 18553 */ 18554 off(type, fn) { 18555 this._ddMaker.off(type, fn); 18556 } 18557 /** 18558 * update ui and value 18559 */ 18560 updateUiAndValue() { 18561 this._ddMaker.updateUiAndValue(); 18562 } 18563 18564 /** 18565 * Remake msDropdown 18566 */ 18567 refresh() { 18568 this._ddMaker.refresh(); 18569 } 18570 /** 18571 * Remove msDropdown 18572 */ 18573 destroy() { 18574 this._ddMaker.destroy(); 18575 } 18576 18577 /*** Props ***/ 18578 /** 18579 * Get selected index 18580 * @return {int} 18581 */ 18582 get selectedIndex() { 18583 return this._ddMaker.selectedIndex; 18584 } 18585 18586 /** 18587 * Set Index 18588 * @param index {int} 18589 */ 18590 set selectedIndex(index) { 18591 this._ddMaker.selectedIndex = index; 18592 } 18593 18594 /** 18595 * Get options 18596 * @return {HTMLOptionElement} 18597 */ 18598 get options() { 18599 return this._ddMaker.options; 18600 } 18601 18602 /** 18603 * Set options length 18604 * @param option {int | HTMLOptionElement} 18605 */ 18606 set options(option) { 18607 this._ddMaker.options = option; 18608 } 18609 18610 /** 18611 * get options UI 18612 * @return {NodeList} 18613 */ 18614 get optionsUI() { 18615 return this._ddMaker.optionsUI; 18616 } 18617 18618 /** 18619 * Get length 18620 * @return {int} 18621 */ 18622 get length() { 18623 return this._ddMaker.length; 18624 } 18625 18626 /** 18627 * Set length 18628 * @param size {int} 18629 */ 18630 set length(size) { 18631 this._ddMaker.length = size; 18632 } 18633 18634 /** 18635 * Get value 18636 * @return {string | any} 18637 */ 18638 get value() { 18639 return this._ddMaker.value; 18640 } 18641 18642 /** 18643 * Set value 18644 * @param val {string | any} 18645 */ 18646 set value(val) { 18647 this._ddMaker.value = val; 18648 } 18649 18650 /** 18651 * get selected text 18652 * @return {string} 18653 */ 18654 get selectedText() { 18655 return this._ddMaker.selectedText; 18656 } 18657 18658 /** 18659 * Check if this is disabled 18660 * @return {boolean} 18661 */ 18662 get disabled() { 18663 return this._ddMaker.disabled; 18664 } 18665 18666 /** 18667 * Set disabled 18668 * @param val {boolean} 18669 */ 18670 set disabled(val) { 18671 this._ddMaker.disabled = val; 18672 } 18673 18674 /** 18675 * Get form name if this is inside a form 18676 * @return {string} 18677 */ 18678 get form() { 18679 return this._ddMaker.form; 18680 } 18681 18682 /** 18683 * Get multiple 18684 * @return {boolean} 18685 */ 18686 get multiple() { 18687 return this._ddMaker.multiple; 18688 } 18689 18690 /** 18691 * Set multiple 18692 * @param val {boolean} 18693 */ 18694 set multiple(val) { 18695 this._ddMaker.multiple = val; 18696 } 18697 18698 /** 18699 * Get the name 18700 * @return {string} 18701 */ 18702 get name() { 18703 return this._ddMaker.name; 18704 } 18705 18706 /** 18707 * Set the name 18708 * @param val {string} 18709 */ 18710 set name(val) { 18711 this._ddMaker.name = val; 18712 } 18713 18714 /** 18715 * Get required 18716 * @return {boolean} 18717 */ 18718 get required() { 18719 return this._ddMaker.required; 18720 } 18721 18722 /** 18723 * Set required 18724 * @param val {boolean} 18725 */ 18726 set required(val) { 18727 this._ddMaker.required = val; 18728 } 18729 18730 /** 18731 * return the size/height of the dropdown 18732 * @return {int} 18733 */ 18734 get size() { 18735 return this._ddMaker.size; 18736 } 18737 18738 /** 18739 * Change the height of the element 18740 * @param val {int} 18741 */ 18742 set size(val) { 18743 this._ddMaker.size = val; 18744 } 18745 18746 /** 18747 * Get selected option 18748 * @return {HTMLOptionElement} 18749 */ 18750 get selectedOptions() { 18751 return this._ddMaker.selectedOptions; 18752 } 18753 18754 /** 18755 * Get element children 18756 * @return {HTMLCollection} 18757 */ 18758 get children() { 18759 return this._ddMaker.children; 18760 } 18761 18762 /** 18763 * Get selected ui data 18764 * @return {object | {data: *, ui: *, index: *, option: *}} 18765 */ 18766 get uiData() { 18767 return this._ddMaker.uiData; 18768 } 18769 18770 /** 18771 * Make dropdown 18772 * @param ele 18773 * @param settings 18774 */ 18775 static make(ele, settings) {
18776 if (!ele.msDropdown) { 18777 try { 18778 let ddSelect = new MsDropdown(ele, settings); 18779 ele.addEventListener("change", () => { 18780 if (!ele.multiple) { 18781 ele.msDropdown.selectedIndex = current.selectedIndex; 18782 } else { 18783 ele.msDropdown.refresh(); 18784 } 18785 }); 18786 return ddSelect; 18787 } catch (e) { 18788 console.log(e.message); 18789 } 18790 } 18791 } 18792 18793 /** 18794 * Get version 18795 * @return {string} 18796 */ 18797 static get version() { 18798 return "4.0.2"; 18799 } 18800 18801 /** 18802 * Get author 18803 * @return {string} 18804 */ 18805 static get author() { 18806 return "Marghoob Suleman"; 18807 } 18808} 18809 18810/***/ }), 18811
18812/***/ "./resources/plugins/msDropdown/js/lib/ddmaker.js": 18813/*!********************************************************!*\ 18814 !*** ./resources/plugins/msDropdown/js/lib/ddmaker.js ***! 18815 \********************************************************/ 18816/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 18817 18818"use strict"; 18819__webpack_require__.r(__webpack_exports__); 18820/* harmony export */ __webpack_require__.d(__webpack_exports__, { 18821/* harmony export */ "default": () => (/* binding */ ddMaker) 18822/* harmony export */ }); 18823function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } 18824function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } 18825function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 18826function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } 18827function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } 18828/** 18829 * MSDropdown - ddmaker.js 18830 * @author: Marghoob Suleman 18831 * @website: https://www.marghoobsuleman.com/ 18832 * @version: 4.0.2 18833 * @revision: 5 18834 * @date: 21st Sep 2021 18835 * msDropdown is free web component: you can redistribute it and/or modify 18836 * it under the terms of the either the MIT License or the Gnu General Public License (GPL) Version 2 18837 */ 18838 18839let _oldC = null; 18840class ddMaker { 18841 constructor(ele, settings) { 18842 let defaultSettings = {
18843 byJson: { 18844 data: null, 18845 selectedIndex: 0, 18846 name: null, 18847 size: 0, 18848 multiple: false, 18849 width: 250 18850 }, 18851 mainCss: 'ms-dd', 18852 rowHeight: null, 18853 visibleRows: null, 18854 showIcon: true, 18855 zIndex: 9999, 18856 event: 'click', 18857 style: '', 18858 childWidth: null, 18859 childHeight: null, 18860 enableCheckbox: false, 18861 //this needs to be multiple or it will set the element to multiple 18862 checkboxNameSuffix: '_mscheck', 18863 showPlusItemCounter: true, 18864 enableAutoFilter: true, 18865 showFilterAlways: false, 18866 showListCounter: false, 18867 imagePosition: 'left', 18868 errorMessage: 'Please select an item from this list', 18869 on: { 18870 create: null, 18871 open: null, 18872 close: null, 18873 add: null, 18874 remove: null, 18875 change: null, 18876 blur: null, 18877 click: null, 18878 dblclick: null, 18879 mousemove: null, 18880 mouseover: null, 18881 mouseout: null, 18882 focus: null, 18883 mousedown: null, 18884 mouseup: null 18885 } 18886 }; 18887 this.ele = ele; 18888 //merge with data settings 18889 this._settings = _objectSpread(_objectSpread({}, defaultSettings), settings); 18890 this._css = {}; 18891 this._onDocumentClick = null; 18892 this._onDocumentKeyDown = null; 18893 this._onDocumentKeyUp = null; 18894 this._isOpen = false; 18895 this._DOWN_ARROW = 40; 18896 this._UP_ARROW = 38; 18897 this._LEFT_ARROW = 37; 18898 this._RIGHT_ARROW = 39; 18899 this._ESCAPE = 27; 18900 this._ENTER = 13; 18901 this._ALPHABETS_START = 47; 18902 this._SHIFT = 16; 18903 this._CONTROL = 17; 18904 this._MAC_CONTROL = 91; 18905 this._BACKSPACE = 8; 18906 this._DELETE = 46; 18907 this._SPACE = 32; 18908 this._shiftHolded = false; 18909 this._controlHolded = false; 18910 this._isFirstTime = true; 18911 this._cacheEle = {}; 18912 this._isMouseDown = false; 18913 this._itemsArr = []; 18914 this._css = { 18915 dd: this._settings.mainCss + " ms-pr", 18916 wrapperDisabled: 'disabled', 18917 headerA: "ms-list-option option-selected", 18918 header: 'ms-dd-header', 18919 headerMiddleContent: 'ms-header-middle-content', 18920 arrow: 'ms-dd-arrow', 18921 arrowDown: 'ms-dd-pointer-down', 18922 arrowUp: 'ms-dd-pointer-up', 18923 headerCounter: 'ms-header-counter', 18924 listOfItems: 'ms-options', 18925 itemContent: 'ms-dd-option-content', 18926 item: 'ms-list-option', 18927 itemSpan: 'ms-middle', 18928 itemSpanOpt: 'ms-optgroup-padding', 18929 itemLabel: 'ms-dd-label', 18930 itemImage: 'ms-dd-option-image', 18931 itemDesc: 'ms-dd-desc', 18932 itemSelected: 'option-selected', 18933 itemDisabled: 'disabled', 18934 itemEnabled: 'enabled', 18935 optgroup: "ms-optgroup", 18936 listCounter: 'ms-list-counter', 18937 valueInput: 'ms-value-input', 18938 checkbox: 'ms-checkbox', 18939 imageRight: 'ico-align-right' 18940 }; 18941 18942 //init 18943 this._wrapper = {}; 18944 this._createByJson(); 18945 this._checkDataSettings(); 18946 this._isList = this.ele.size > 1; 18947 this._isMultiple = this.ele.multiple; 18948 this._enableCheckbox = this._settings.enableCheckbox; 18949 if (this._isList || this._enableCheckbox.toString() === "true") { 18950 this._isMultiple = this.ele.multiple = true; 18951 } 18952 this._isFilterApplied = false; 18953 this._nexPrevCounter = 0; 18954 this._init(); 18955 } 18956 18957 /** 18958 * Init 18959 * @private 18960 */ 18961 _init() { 18962 //console.log(this.name, this.selectedIndex) 18963 this._makeLayout(); 18964 18965 //console.log(this.name, this.selectedIndex) 18966 this._updateUiAndValueByIndex(this.selectedIndex); 18967 if (this.ele.size > 1) { 18968 this._makeUiAsList(true, this.ele.size); 18969 this._scrollToItem(); 18970 } 18971 18972 //adjust child width 18973 if (this._settings.childWidth !== null) { 18974 this._wrapper.listOfItems.style.width = this._settings.childWidth; 18975 } 18976 //hide original 18977 this._showHideOriginal(false); 18978 if (this._settings.showFilterAlways.toString() === "true") { 18979 this._settings.enableAutoFilter = true; 18980 this._showHideFilterBox(true); 18981 } 18982 if (this.ele.autofocus) { 18983 this._wrapper.holder.focus(); 18984 this._wrapper.filterInput.focus(); 18985 } else { 18986 this._wrapper.filterInput.blur(); 18987 } 18988 this.updateUiAndValue(); 18989 this._fireLocalEventIfExist("create"); 18990 this._fireEventIfExist("onCreate"); 18991 } 18992 18993 /** 18994 * Show hide Original 18995 * @param isShow 18996 * @private 18997 */ 18998 _showHideOriginal(isShow = true) { 18999 if (isShow) { 19000 this._show(this.ele); 19001 } else { 19002 this._hide(this.ele); 19003 } 19004 } 19005 19006 /** 19007 * Check data settings. 19008 * Read from select data-* attributes 19009 * @private 19010 */ 19011 _checkDataSettings() { 19012 let dataSet = this._getDataSet(this.ele); 19013 let settings = this._settings; 19014 settings.mainCss = dataSet?.mainCss || settings.mainCss; 19015 settings.showIcon = dataSet?.showIcon || settings.showIcon; 19016 settings.event = dataSet?.event || settings.event; 19017 settings.childWidth = dataSet?.childWidth || settings.childWidth; 19018 settings.childHeight = dataSet?.childHeight || settings.childHeight; 19019 settings.enableCheckbox = dataSet?.enableCheckbox || settings.enableCheckbox; 19020 settings.checkboxNameSuffix = dataSet?.checkboxNameSuffix || settings.checkboxNameSuffix; 19021 /*settings.append = dataSet.append || settings.append; 19022 settings.prepend = dataSet.prepend || settings.prepend;*/ 19023 settings.enableAutoFilter = dataSet?.enableAutoFilter || settings.enableAutoFilter; 19024 settings.visibleRows = dataSet?.visibleRows || settings.visibleRows; 19025 settings.showPlusItemCounter = dataSet?.showPlusItemCounter || settings.showPlusItemCounter; 19026 settings.errorMessage = dataSet?.errorMessage || settings.errorMessage; 19027 settings.showFilterAlways = dataSet?.showFilterAlways || settings.showFilterAlways; 19028 settings.showListCounter = dataSet?.showListCounter || settings.showListCounter; 19029 settings.imagePosition = dataSet?.imagePosition || settings.imagePosition; 19030 this._settings = _objectSpread(_objectSpread({}, this._settings), settings); 19031 } 19032 19033 /** 19034 * Set setting attribute 19035 * @param key 19036 * @param value 19037 */ 19038 setSettingAttribute(key, value) { 19039 this._settings[key] = value; 19040 } 19041 19042 /** 19043 * Create by json 19044 * @private 19045 */ 19046 _createByJson() { 19047 if (this._settings.byJson.data) {
19048 try { 19049 let json = this._settings.byJson; 19050 //this._settings.byJson.data = settings.byJson.data; 19051 //change element 19052 let obj = {}; 19053 obj.name = json.name || this.ele.id || ""; 19054 if (json.size > 0) { 19055 obj.size = json.size; 19056 } 19057 if (json.multiple) { 19058 obj.multiple = json.multiple; 19059 } 19060 let oSelect = this._createEle("select", obj); 19061 let total = json.data.length; 19062 for (let i = 0; i < total; i++) { 19063 let current = json.data[i]; 19064 let opt = new Option(current.text, current.value); 19065 if (current.disabled) { 19066 opt.disabled = true; 19067 } 19068 for (let p in current) { 19069 if (current.hasOwnProperty(p) && p.toLowerCase() !== 'text') { 19070 let key = `data-${p}`; 19071 key = key.replace(/([A-Z])/g, "-$1").toLowerCase(); //replace caps letter with -letter 19072 opt.setAttribute(key, current[p]); 19073 } 19074 } 19075 oSelect.options[i] = opt; 19076 } 19077 //add this 19078 this.ele.appendChild(oSelect); 19079 oSelect.selectedIndex = json.selectedIndex; 19080 if (json.width) { 19081 this.ele.style.width = json.width + 'px'; 19082 } 19083 19084 //now change element for the base ele 19085 this.ele = oSelect; 19086 } catch (e) { 19087 throw "There is an error in json data."; 19088 } 19089 } 19090 } 19091 19092 /** 19093 * Scroll to item 19094 * @param item 19095 * @param behavior 19096 */ 19097 _scrollToItem(item, behavior = 'smooth') { 19098 item = item || this.uiData.ui; 19099 if (item) { 19100 item = item.length > 1 ? item[0] : item; 19101 this._scrollToIfNeeded(item); 19102 } 19103 } 19104 19105 /** 19106 * Show filter box 19107 * @param isShow 19108 * @private 19109 */ 19110 _showHideFilterBox(isShow = true) { 19111 if (isShow) { 19112 this._show(this._wrapper.filterHolder); 19113 this._wrapper.filterInput.focus(); 19114 if (this._settings.showFilterAlways.toString() === "false") { 19115 this._hide(this._wrapper.headerA); 19116 } 19117 } else { 19118 this._wrapper.filterInput.value = ""; 19119 this._hide(this._wrapper.filterHolder); 19120 this._show(this._wrapper.headerA); 19121 } 19122 } 19123 19124 /** 19125 * Apply filters 19126 * @param e 19127 * @private 19128 */ 19129 _applyFilters(e) { 19130 let sText = this._wrapper.filterInput.value; 19131 if (sText.length === 0) { 19132 this._show(this._wrapper.headerA); 19133 this._makeChildren(); 19134 this._isFilterApplied = false; 19135 } else { 19136 if (this._settings.showFilterAlways.toString() === "false") { 19137 this._hide(this._wrapper.headerA); 19138 } 19139 if (!this._isOpen) { 19140 this.open(null); 19141 } 19142 19143 //hide all 19144 let options = [...this.options]; 19145 let filterOptions = options.filter(function (item) { 19146 return item.nodeName !== "OPTGROUP" && item.disabled === false && item.text.toLowerCase().indexOf(sText.toLowerCase()) >= 0; 19147 }); 19148 this._makeChildren(filterOptions); 19149 this._isFilterApplied = true; 19150 this._nexPrevCounter = -1; 19151 this._scrollToIfNeeded(null, 0); 19152 } 19153 } 19154 19155 /** 19156 * Make filter box 19157 * @return {any} 19158 * @private 19159 */ 19160 _makeFilterBox() { 19161 let div = this._createEle("div", { 19162 className: 'ms-filter-box' 19163 }); 19164 let input = this._createEle("input", { 19165 type: "text" 19166 }); 19167 div.appendChild(input); 19168 this._wrapper.filterInput = input; 19169 this._wrapper.filterHolder = div; 19170 this._bindEvents(input, "input", evt => { 19171 this._applyFilters(evt); 19172 }); 19173 return div; 19174 } 19175 19176 /** 19177 * Make header 19178 * @return {any} 19179 * @private 19180 */ 19181 _makeHeader() {
19182 let css = this._css; 19183 let divHeader = this._createEle("div", { 19184 className: css.header 19185 }); 19186 let headerA = this._createEle("a", { 19187 className: css.headerA 19188 }); 19189 let headerContent = this._createEle("span", { 19190 className: css.headerMiddleContent 19191 }); 19192 let arrow = this._createEle("span", { 19193 className: css.arrow + ' ' + css.arrowDown 19194 }); 19195 headerA.appendChild(arrow); 19196 headerA.appendChild(headerContent); 19197 divHeader.appendChild(headerA); 19198 this._wrapper.header = divHeader; 19199 this._wrapper.headerA = headerA; 19200 this._wrapper.headerContent = headerContent; 19201 this._wrapper.arrow = arrow; 19202 if (this._settings.imagePosition !== "left") { 19203 headerA.classList.add(css.imageRight); 19204 } 19205 this._bindEvents(divHeader, this._settings.event, evt => { 19206 this.open(evt); 19207 }); 19208 return divHeader; 19209 } 19210 19211 /** 19212 * Make children 19213 * @param byOption 19214 * @return {*} 19215 * @private 19216 */ 19217 _makeChildren(byOption = null) { 19218 let css = this._css; 19219 let isCheckbox = this._enableCheckbox.toString() === "true"; 19220 let ul, 19221 $this = this; 19222 19223 /** 19224 * Make Object 19225 * @param opts 19226 * @param counter 19227 * @return {{opt: *, itemObj: *}} 19228 * @private 19229 */ 19230 let _makeObject = function (opts, counter) { 19231 let opt = {}; 19232 opt = $this._parseOption(opts); 19233 //{image, title, description, value, text, className, imageCss, index, selected, disabled} 19234 let itemObj = { 19235 label: { 19236 text: opt.text, 19237 css: css.itemLabel 19238 }, 19239 img: { 19240 src: opt.image, 19241 css: css.itemImage 19242 }, 19243 desc: { 19244 text: opt.description, 19245 css: css.itemDesc 19246 }, 19247 isDisabled: opts.disabled || false, 19248 isSelected: opts.selected || false, 19249 isCheckbox: isCheckbox, 19250 value: opt.value, 19251 title: opt.title, 19252 imageCss: `${opt.imageCss} ${opt.className}`, 19253 counter: counter + 1, 19254 isOptGroup: opts.nodeName === "OPTGROUP", 19255 innerSpanCss: css.itemContent 19256 }; 19257 return { 19258 opt, 19259 itemObj 19260 }; 19261 }; 19262 19263 /** 19264 * Bind events 19265 * @param li 19266 * @param itemObj 19267 */ 19268 let bindEvents = function (li, itemObj) { 19269 if (!itemObj.isDisabled) { 19270 $this._bindEvents(li, "mouseup", evt => { 19271 $this._isMouseDown = false; 19272 if (!isCheckbox || evt.target.nodeName !== "INPUT") { 19273 if (!$this._isList) { 19274 $this.close(evt); 19275 } 19276 } 19277 }); 19278 $this._bindEvents(li, "mousedown", evt => { 19279 $this._isMouseDown = true; 19280 if (!isCheckbox || evt.target.nodeName !== "INPUT") { 19281 if ($this._shiftHolded && $this._isMultiple) { 19282 //multiple select if shift is pressed 19283 let oldIndex = $this.selectedIndex; 19284 let newIndex = li.index; 19285 $this._setSelectedByIndexFromTo(oldIndex, newIndex); 19286 } else if ($this._controlHolded && $this._isMultiple) { 19287 //select another one without resetting 19288 $this._setSelectedByItem(li, false, false); 19289 } else { 19290 //normal click 19291 $this._setSelectedByItem(li); 19292 } 19293 } else { 19294 //this is checkbox - make it toggle 19295 $this._setSelectedByItemToggle(li._refCheckbox, li); 19296 } 19297 }); 19298 $this._bindEvents(li, "mouseover", evt => { 19299 if ($this._isMouseDown && $this._isMultiple) { 19300 $this._setSelectedByItem(li, false, false); 19301 } 19302 }); 19303 } 19304 }; 19305 19306 //use old one holder if required 19307 if (!this._wrapper.listOfItems) { 19308 ul = this._createEle("ul", { 19309 className: css.listOfItems, 19310 zIndex: this._settings.zIndex 19311 }); 19312 this._wrapper.listOfItems = ul; 19313 } else { 19314 ul = this._wrapper.listOfItems; 19315 } 19316 ul.innerHTML = ""; //clear old one 19317 let options = byOption === null ? this.ele.children : byOption; 19318 let optLen = options.length; 19319 for (let i = 0; i < optLen; i++) { 19320 let current = options[i]; 19321 let parseObj = _makeObject(current, i); 19322 let opt = parseObj.opt; 19323 let itemObj = parseObj.itemObj; 19324 let li = this._createRow(itemObj); 19325 if (opt.className !== '') { 19326 li.className = li.className + " " + opt.className; 19327 } 19328 if (opt.internalStyle !== '') { 19329 li.style = opt.internalStyle; 19330 } 19331 li.index = opt.index; 19332 li.setAttribute("data-ms-index", opt.index); 19333 if (itemObj.isOptGroup) { 19334 //let make children of optgroup 19335 let c_options = current.children; 19336 let c_optLen = c_options.length; 19337 let ul2 = this._createEle("ul"); 19338 for (let j = 0; j < c_optLen; j++) { 19339 let c_current = c_options[j]; 19340 let c_parseObj = _makeObject(c_current, j); 19341 let c_opt = c_parseObj.opt; 19342 let c_itemObj = c_parseObj.itemObj; 19343 let c_li = this._createRow(c_itemObj); 19344 if (c_opt.className !== '') { 19345 c_li.className = c_li.className + " " + c_opt.className; 19346 } 19347 if (c_opt.internalStyle !== '') { 19348 c_li.style = c_opt.internalStyle; 19349 } 19350 c_li.index = c_opt.index; 19351 c_li.setAttribute("data-ms-index", c_opt.index); 19352 if (c_itemObj.isSelected) { 19353 this._setSelectedByItem(c_li, true); 19354 } 19355 bindEvents(c_li, c_itemObj); 19356 if (this._settings.imagePosition !== "left") { 19357 c_li.classList.add(css.imageRight); 19358 } 19359 ul2.appendChild(c_li); 19360 } 19361 li.appendChild(ul2); 19362 } 19363 if (!itemObj.isOptGroup) { 19364 bindEvents(li, itemObj); 19365 } 19366 if (this._settings.imagePosition !== "left") { 19367 li.classList.add(css.imageRight); 19368 } 19369 ul.appendChild(li); 19370 if (itemObj.isSelected) { 19371 this._setSelectedByItem(li, true); 19372 } 19373 } 19374 if (this._settings.childHeight !== null) { 19375 ul.style.maxHeight = this._settings.childHeight + 'px'; 19376 } 19377 return ul; 19378 } 19379 19380 /** 19381 * Make Layout 19382 * @return {any} 19383 * @private 19384 */ 19385 _makeLayout() { 19386 this.ele.tabIndex = -1;
19387 let css = this._css; 19388 let wrapper = this._createEle("div", { 19389 tabIndex: 0, 19390 className: css.dd 19391 }); 19392 let name = this.ele.name; 19393 let isRequired = this.ele.required; 19394 let valueBox = this._createEle("input", { 19395 tabIndex: -1, 19396 name: name, 19397 type: "text", 19398 className: this._css.valueInput, 19399 required: isRequired 19400 }); 19401 wrapper.appendChild(valueBox); 19402 this.ele.required = false; 19403 this.ele.name = ""; 19404 19405 //This is for multiple select 19406 let moreValueBox = this._createEle("div", { 19407 className: "more", 19408 style: "display:none" 19409 }); 19410 wrapper.appendChild(moreValueBox); 19411 this._wrapper.valueBox = valueBox; 19412 this._wrapper.moreValueBox = moreValueBox; 19413 19414 //Make header 19415 let divHeader = this._makeHeader(); 19416 19417 //Filter box 19418 let filterBox = this._makeFilterBox(); 19419 divHeader.appendChild(filterBox); 19420 this._showHideFilterBox(false); 19421 19422 //make options 19423 let ul = this._makeChildren(); 19424 wrapper.appendChild(divHeader); 19425 wrapper.appendChild(ul); 19426 this._wrapper.holder = wrapper; 19427 19428 //add in document 19429 this._insertAfter(wrapper, this.ele); 19430 19431 //hide children 19432 this._hide(ul); 19433 if (this.disabled) { 19434 wrapper.classList.add(css.wrapperDisabled); 19435 } 19436 let style = this._getInternalStyle(this.ele); 19437 wrapper.setAttribute("style", style); 19438 if (this._settings.byJson.data !== null) { 19439 wrapper.setAttribute("style", `width:${this._settings.byJson.width}px`); 19440 } 19441 19442 //clear 19443 let div = this._createEle("div", { 19444 style: "clear:both" 19445 }); 19446 wrapper.appendChild(div); 19447 this._bindEvents(this._wrapper.holder, "focus", evt => { 19448 if (this._isList) { 19449 this._bindDocumentEvents(null, false, true); 19450 } else { 19451 if (_oldC) { 19452 _oldC.close(null); 19453 _oldC = null; 19454 } 19455 this._bindDocumentEvents(null, true, true); 19456 _oldC = this; 19457 } 19458 this._fireLocalEventIfExist("focus"); 19459 this._fireEventIfExist("focus"); 19460 }); 19461 this._bindEvents(this._wrapper.holder, "blur", evt => { 19462 if (this._isList) { 19463 this._unbindDocumentEvents(); 19464 } 19465 this._fireLocalEventIfExist("blur"); 19466 this._fireEventIfExist("blur"); 19467 }); 19468 this._bindEvents(this._wrapper.holder, "dblclick", evt => { 19469 this._fireLocalEventIfExist("blur"); 19470 this._fireEventIfExist("blur"); 19471 }); 19472 19473 //For custom message on required 19474 this._bindEvents(valueBox, "invalid", evt => { 19475 evt.target.setCustomValidity(""); 19476 if (!evt.target.validity.valid) { 19477 evt.target.setCustomValidity(this._settings.errorMessage); 19478 } 19479 }); 19480 this._bindEvents(valueBox, "input", evt => { 19481 evt.target.setCustomValidity(""); 19482 }); 19483 let events = ["click", "dblclick", "mousemove", "mouseover", "mouseout", "mousedown", "mouseup"]; 19484 for (let i = 0, len = events.length; i < len; i++) { 19485 let evtName = events[i]; 19486 this._bindEvents(this._wrapper.holder, evtName, evt => { 19487 this._fireLocalEventIfExist(evtName); 19488 this._fireEventIfExist(evtName); 19489 }); 19490 } 19491 return wrapper; 19492 } 19493 19494 /** 19495 * Create a row 19496 * @param obj 19497 * @return {any} 19498 */ 19499 _createRow(obj) { 19500 let itemCss = obj.isOptGroup ? this._css.optgroup : this._css.item; 19501 let li = this._createEle("li", { 19502 className: itemCss 19503 }); 19504 if (obj.isCheckbox && !obj.isOptGroup) { 19505 let checkbox = this._createEle("input", { 19506 tabIndex: -1, 19507 className: this._css.checkbox, 19508 type: "checkbox", 19509 disabled: obj.isDisabled, 19510 "checked": false, 19511 value: obj.value, 19512 name: this._wrapper.valueBox.name + this._settings.checkboxNameSuffix + "[]" 19513 }); 19514 li.appendChild(checkbox); 19515 li._refCheckbox = checkbox; 19516 } 19517 let optTxtCss = obj.isOptGroup ? " " + this._css.itemSpanOpt : ""; 19518 let itemSpan = this._createEle("span", { 19519 className: this._css.itemSpan + optTxtCss 19520 }); 19521 let text = this._settings.showListCounter.toString() === "true" ? `<span class='${this._css.listCounter}'>${obj.counter}</span> ${obj.label.text}` : obj.label.text; 19522 let textSpan = this._createEle("span", { 19523 className: obj.label.css 19524 }, text); 19525 let itemInnerSpan = this._createEle("span", { 19526 className: obj.innerSpanCss 19527 }); 19528 itemInnerSpan.appendChild(textSpan); 19529 if (obj.img.src !== null) { 19530 let img = this._createEle("img", { 19531 className: obj.img.css, 19532 src: obj.img.src 19533 }); 19534 itemSpan.appendChild(img); 19535 } 19536 if (obj.img.src === null && obj.imageCss.replace(/\s/g, '') !== '') { 19537 let imgSpan = this._createEle("span", { 19538 className: obj.img.css + ' ' + obj.imageCss 19539 }, " "); 19540 itemSpan.appendChild(imgSpan); 19541 } 19542 if (obj.desc.text !== null) { 19543 let spanDesc = this._createEle("span", { 19544 className: obj.desc.css 19545 }, obj.desc.text); 19546 itemInnerSpan.appendChild(spanDesc); 19547 } 19548 itemSpan.appendChild(itemInnerSpan); 19549 li.appendChild(itemSpan); 19550 if (obj.isDisabled) { 19551 li.classList.add(this._css.itemDisabled); 19552 } else if (!obj.isOptGroup) { 19553 li.classList.add(this._css.itemEnabled); 19554 } 19555 if (obj.title !== '') { 19556 li.title = obj.title; 19557 } 19558 return li; 19559 } 19560 19561 /** 19562 * Parse option 19563 * @param opt 19564 * @return {{image: *, description: *, index: *, className: *, disabled: *, text: *, imageCss: *, title: *, internalStyle: *, value: *, selected: *}} 19565 * @private 19566 */ 19567 _parseOption(opt) { 19568 let image = null, 19569 title = '', 19570 description = '', 19571 value = '', 19572 text = '', 19573 className = '', 19574 imageCss = '', 19575 index = -1, 19576 selected, 19577 disabled, 19578 internalStyle; 19579 if (opt !== undefined) { 19580 let optionType = opt.nodeName; 19581 let dataSet = opt.dataset; 19582 if (optionType === "OPTGROUP") { 19583 text = opt.label; 19584 } else { 19585 text = opt.text; 19586 value = opt.value || text; 19587 } 19588 index = opt.index; 19589 selected = opt.selected; 19590 disabled = opt.disabled; 19591 className = opt.className || ""; 19592 title = dataSet.title || ''; 19593 description = dataSet.description || ''; 19594 image = dataSet.image || image; 19595 imageCss = dataSet.imageCss || ''; 19596 internalStyle = this._getInternalStyle(opt); 19597 } 19598 return { 19599 image, 19600 title, 19601 description, 19602 value, 19603 text, 19604 className, 19605 imageCss, 19606 index, 19607 selected, 19608 disabled, 19609 internalStyle 19610 }; 19611 } 19612 19613 /** 19614 * remove old selected 19615 * @private 19616 */ 19617 _removeOldSelected() { 19618 let oldSelected = this._getAllEle("ul li." + this._css.itemSelected, this._wrapper.holder); 19619 19620 //remove old selected 19621 for (let i = 0; i < oldSelected.length; i++) { 19622 oldSelected[i].classList.remove(this._css.itemSelected); 19623 if (this._isMultiple && this._enableCheckbox.toString() === "true") { 19624 oldSelected[i]._refCheckbox.checked = false;
19625 //this._getEle("input", oldSelected[i]).checked = false; 19626 } 19627 } 19628 } 19629 19630 /** 19631 * Select by index a to b 19632 * @param indexA 19633 * @param indexB 19634 * @private 19635 */ 19636 _setSelectedByIndexFromTo(indexA, indexB) { 19637 let min = Math.min(indexA, indexB); 19638 let max = Math.max(indexA, indexB); 19639 let options = this.optionsUI; 19640 for (let i = min; i <= max; i++) { 19641 this._setSelectedByItem(options[i], false, false); 19642 } 19643 } 19644 /** 19645 * Toggle Select 19646 * @private 19647 * @param checkbox 19648 * @param li 19649 */ 19650 _setSelectedByItemToggle(checkbox, li) { 19651 let isChecked = !checkbox.checked; 19652 let index = li.index; 19653 if (isChecked) { 19654 li.classList.add(this._css.itemSelected); 19655 this.ele.options[index].selected = true; 19656 } else { 19657 li.classList.remove(this._css.itemSelected); 19658 this.ele.options[index].selected = false; 19659 } 19660 this.updateUiAndValue(); 19661 } 19662 19663 /** 19664 * Set selected by an item 19665 * @param ele 19666 * @param dontThink 19667 * @param resetOldSelected 19668 * @private 19669 */ 19670 _setSelectedByItem(ele, dontThink = false, resetOldSelected = true) { 19671 if (dontThink && ele) { 19672 ele.classList.add(this._css.itemSelected); 19673 } else { 19674 let index = ele.index; 19675 if (resetOldSelected === true) { 19676 this._removeOldSelected(); 19677 this.ele.selectedIndex = index; 19678 //this.selectedIndex = index; 19679 } else { 19680 //it could be multiple 19681 this.ele.options[index].selected = true; 19682 } 19683 ele?.classList?.add(this._css.itemSelected); 19684 this.updateUiAndValue(); 19685 } 19686 if (this._enableCheckbox.toString() === "true") { 19687 if (ele?._refCheckbox) { 19688 ele._refCheckbox.checked = true; 19689 } 19690 } 19691 if (this._isFirstTime === false) { 19692 this._fireLocalEventIfExist("change"); 19693 this._fireEventIfExist("change"); 19694 } 19695 this._isFirstTime = false; 19696 } 19697 19698 /** 19699 * Set selected by an select option item 19700 * @param option 19701 * @param dontThink 19702 * @private 19703 */ 19704 _setSelectedByOptionItem(option, dontThink = false) { 19705 let index = option.index; 19706 let dataAndUI = this._getDataAndUI(index); 19707 this._setSelectedByItem(dataAndUI.ui, dontThink); 19708 } 19709 19710 /** 19711 * Update header ui 19712 * @param byData 19713 * @param innerHTML 19714 * @private 19715 */ 19716 _updateHeaderUI(byData = null, innerHTML = null) { 19717 let dataAndUI = byData === null ? this.uiData : byData; 19718 let text = this._isArray(dataAndUI.index) ? dataAndUI.ui[0].innerHTML : null; 19719 this._wrapper.headerContent.innerHTML = innerHTML !== null ? innerHTML : text || dataAndUI?.ui?.innerHTML || " "; 19720 let contentHolder = this._getEle("." + this._css.itemLabel, this._wrapper.headerContent); 19721 if (this._settings.showPlusItemCounter.toString() === "true" && dataAndUI.ui.length > 1) { 19722 contentHolder.innerHTML = contentHolder.innerHTML + `<span class="${this._css.headerCounter}"> (+${dataAndUI.ui.length - 1})</span>`; 19723 } 19724 if (this._settings.showIcon.toString() === "false") { 19725 let img = this._getEle("img", this._wrapper.headerContent); 19726 if (img) { 19727 this._hide(img); 19728 } 19729 } 19730 this._setTitleMinHeight(false); 19731 } 19732 19733 /** 19734 * Find index By index prop 19735 * @param index 19736 * @return {null|*} 19737 * @private 19738 */ 19739 _findElementByIndexProp(index) { 19740 let options = this._getAllEle(`ul li.${this._css.item}`, this._wrapper.holder); 19741 let total = options.length; 19742 for (let i = 0; i < total; i++) { 19743 let current = options[i]; 19744 if (current.index === index) { 19745 return options[i]; 19746 } 19747 } 19748 return null; 19749 } 19750 19751 /** 19752 * Get data and value 19753 * @param byIndex 19754 * @return {{data: *, ui: *, index: *, option: *, multiple:boolean}} 19755 * @private 19756 */ 19757 _getDataAndUI(byIndex = null) { 19758 let ele = this.ele; 19759 let data, 19760 ui, 19761 option = null, 19762 index = -1; 19763 let obj, 19764 $this = this; 19765 let isArray = false; 19766 let getByIndex = function (byIndex) { 19767 let option = ele.options[byIndex]; 19768 let data = $this._parseOption(option); 19769 let index = byIndex; 19770 let ui = $this._findElementByIndexProp(index); 19771 return { 19772 option, 19773 data, 19774 index, 19775 ui 19776 }; 19777 }; 19778 if (byIndex !== null) { 19779 obj = getByIndex(byIndex); 19780 option = obj.option; 19781 data = obj.data; 19782 index = obj.index; 19783 ui = obj.ui; 19784 } else { 19785 ui = this._getAllEle("ul li." + this._css.itemSelected, this._wrapper.holder); 19786 19787 // if this is multiple 19788 if (ui.length > 1) { 19789 let data_a = [], 19790 opt_a = [], 19791 ind_a = [], 19792 ui_a = []; 19793 for (let i = 0; i < ui.length; i++) { 19794 obj = getByIndex(ui[i].index); 19795 data_a.push(obj.data); 19796 opt_a.push(obj.option); 19797 ind_a.push(obj.index); 19798 ui_a.push(obj.ui); 19799 } 19800 data = data_a; 19801 option = opt_a; 19802 index = ind_a; 19803 ui = ui_a; 19804 isArray = true; 19805 } else { 19806 obj = getByIndex(ui[0]?.index || this.selectedIndex); 19807 option = obj.option || null; 19808 data = obj.data || null; 19809 index = obj.index || -1; 19810 ui = obj.ui || null; 19811 } 19812 } 19813 return { 19814 data, 19815 ui, 19816 index, 19817 option, 19818 isArray 19819 }; 19820 } 19821 19822 /** 19823 * Is Array 19824 * @param obj 19825 * @return {boolean} 19826 * @private 19827 */ 19828 _isArray = function (obj) { 19829 return Object.prototype.toString.call(obj) === "[object Array]"; 19830 }; 19831 19832 /** 19833 * Update Header UI by data 19834 * @param byData 19835 * 19836 */ 19837 updateUiAndValue(byData = null) { 19838 let dataAndUI = byData === null ? this.uiData : byData; 19839 this._updateHeaderUI(dataAndUI); 19840 let valueBox = this._wrapper.valueBox; 19841 valueBox.value = this.ele.value; 19842 19843 //this is multiple 19844 if (this._isMultiple && valueBox.name.substr(valueBox.name.length - 2, valueBox.name.length) === "[]") {
19845 this._wrapper.moreValueBox.innerHTML = ""; 19846 for (let i = 1; i < dataAndUI.data.length; i++) { 19847 let valueBoxM = this._createEle("input", { 19848 type: "hidden", 19849 name: valueBox.name, 19850 value: dataAndUI.data[i].value 19851 }); 19852 this._wrapper.moreValueBox.appendChild(valueBoxM); 19853 } 19854 } 19855 } 19856 19857 /** 19858 * Update Ui by index 19859 * @param index 19860 * @private 19861 */ 19862 _updateUiAndValueByIndex(index) { 19863 let dataAndUI = this._getDataAndUI(index); 19864 //this._updateHeaderUI(dataAndUI); 19865 this.updateUiAndValue(dataAndUI); 19866 } 19867 19868 /**** Elements and Helpers ****/ 19869 /** 19870 * Create an element 19871 * @param nm 19872 * @param attr 19873 * @param html 19874 * @return {any} 19875 * @private 19876 */ 19877 _createEle(nm, attr, html) { 19878 let tag = document.createElement(nm); 19879 if (attr) { 19880 for (let i in attr) { 19881 if (i === "style") { 19882 tag.style.cssText = attr[i]; 19883 } else { 19884 tag[i] = attr[i]; 19885 } 19886 } 19887 } 19888 if (html) { 19889 tag.innerHTML = html; 19890 } 19891 return tag; 19892 } 19893 19894 /** 19895 * Get one element 19896 * @param ele 19897 * @param where 19898 * @return {*} 19899 * @private 19900 */ 19901 _getEle(ele, where = null) { 19902 return where === null ? document.querySelector(ele) : where.querySelector(ele); 19903 } 19904 19905 /** 19906 * Get all elements 19907 * @param ele 19908 * @param where 19909 * @return {any} 19910 * @private 19911 */ 19912 _getAllEle(ele, where = null) { 19913 return where === null ? document.querySelectorAll(ele) : where.querySelectorAll(ele); 19914 } 19915 19916 /** 19917 * Get internal style of an element 19918 * @param ele 19919 * @return {string|*} 19920 * @private 19921 */ 19922 _getInternalStyle(ele) { 19923 return ele.style === undefined ? "" : ele.style.cssText; 19924 } 19925 19926 /** 19927 * Toggle show 19928 * @param ele 19929 * @private 19930 */ 19931 _toggleShow(ele) { 19932 ele.style.display = ele.style.display === "none" || ele.style.display === "" ? "inherit" : "none"; 19933 } 19934 19935 /** 19936 * Show an element 19937 * @param ele 19938 * @private 19939 */ 19940 _show(ele, dispaly = "block") { 19941 ele.style.display = dispaly; 19942 } 19943 19944 /** 19945 * Hide an element 19946 * @param ele 19947 * @private 19948 */ 19949 _hide(ele) { 19950 ele.style.display = "none"; 19951 } 19952 19953 /** 19954 * Insert an element after an element 19955 * @param ele 19956 * @param targetEle 19957 * @return {*} 19958 * @private 19959 */ 19960 _insertAfter(ele, targetEle) { 19961 return targetEle.parentNode.insertBefore(ele, targetEle.nextSibling); 19962 } 19963 19964 /** 19965 * Not using for now 19966 * Insert an element before a target element 19967 * @param ele 19968 * @param targetEle 19969 * @return {*} 19970 * @private 19971 */ 19972 _insertBefore(ele, targetEle) { 19973 return targetEle.insertBefore(ele, targetEle); 19974 } 19975 19976 /** 19977 * get index of a li - not in used 19978 * @param li 19979 * @return {number} 19980 * @private 19981 */ 19982 _getIndex(li) { 19983 let LIs = this._getAllEle("ul li", this._wrapper.holder); 19984 return [...LIs].indexOf(li); 19985 } 19986 19987 /** 19988 * Get properties or a property - not in used 19989 * @param ele 19990 * @param key 19991 * @return {null|*} 19992 * @private 19993 */ 19994 _getProp(ele, key) { 19995 let obj = {}; 19996 for (let i = 0; i < ele.attributes.length; i++) { 19997 let k = ele.attributes[i].nodeName; 19998 let v = ele.attributes[i].nodeValue; 19999 if (key === k) { 20000 return v; 20001 } 20002 obj[k] = v; 20003 } 20004 return typeof key === "undefined" ? obj : null; 20005 } 20006 20007 /** 20008 * Get dataset 20009 * @param ele 20010 * @param key 20011 * @return {*|null} 20012 * @private 20013 */ 20014 _getDataSet(ele, key = null) { 20015 return key === null ? ele.dataset : ele.dataset[key] || null; 20016 } 20017 20018 /** 20019 * Bind an event 20020 * @param ele 20021 * @param type 20022 * @param cb 20023 * @private 20024 */ 20025 _bindEvents(ele, type, cb) { 20026 ele.addEventListener(type, cb); 20027 } 20028 20029 /** 20030 * Remove events 20031 * @param ele 20032 * @param type 20033 * @param fn 20034 * @private 20035 */ 20036 _unbindEvents(ele, type, fn) { 20037 ele.removeEventListener(type, fn); 20038 } 20039 20040 /** 20041 * Adjust child height 20042 * @param row 20043 * @private 20044 */ 20045 _adjustChildHeight(row = null) { 20046 row = row === null ? parseInt(this._settings.visibleRows) : row; 20047 if (row !== null) { 20048 let li = this._getEle("li[data-ms-index='0']", this._wrapper.listOfItems); 20049 let size = this._settings.rowHeight !== null ? this._settings.rowHeight : li.clientHeight; 20050 this._wrapper.listOfItems.style.height = row * size + 'px'; 20051 } 20052 } 20053 20054 /** 20055 * Set max height 20056 * @param autoHeightByMax 20057 * @private 20058 */
20059 _setTitleMinHeight(autoHeightByMax = true) { 20060 let max = 0; 20061 if (autoHeightByMax === true) { 20062 let lis = this._getAllEle("li", this._wrapper.listOfItems); 20063 let len = lis.length; 20064 for (let i = 0; i < len; i++) { 20065 let current = lis[i]; 20066 max = current.clientHeight > max ? current.clientHeight : max; 20067 } 20068 } else { 20069 //this is after selection 20070 max = this._wrapper.headerA.clientHeight; 20071 } 20072 this._wrapper.header.style.minHeight = max + "px"; 20073 } 20074 20075 /** 20076 * Make Ui as list 20077 * @param val 20078 * @param row 20079 * @private 20080 */ 20081 _makeUiAsList(val, row) { 20082 if (val === true) { 20083 //make ui as list 20084 //update height 20085 this._hide(this._wrapper.header); 20086 this.open(null, true); 20087 this._adjustChildHeight(row); 20088 this._wrapper.listOfItems.style.position = "relative"; 20089 this._wrapper.listOfItems.style.display = "inline-block"; 20090 this._wrapper.listOfItems.style.zIndex = 0; 20091 this._wrapper.holder.style.zIndex = 0; 20092 this._isList = true; 20093 } else { 20094 //reset to dropdown 20095 this._show(this._wrapper.header); 20096 this._wrapper.listOfItems.style.height = null; 20097 this._wrapper.listOfItems.style.position = "absolute"; 20098 this._wrapper.listOfItems.style.zIndex = this._settings.zIndex; 20099 this._wrapper.holder.style.zIndex = 0; 20100 this._isList = false; 20101 this.close(null); 20102 } 20103 } 20104 20105 /** 20106 * Bind document events 20107 * @param evt 20108 * @private 20109 */ 20110 _bindDocumentEvents(evt, documentClick = true, documentKeyDown = true) { 20111 this._unbindDocumentEvents(); 20112 this._onDocumentClick = evt => { 20113 //is outside? 20114 let box = this._wrapper.listOfItems.getBoundingClientRect(); 20115 let headerBox = this._wrapper.header.getBoundingClientRect(); 20116 let areaX = box.left + box.width; 20117 let areaY = headerBox.top + box.height + headerBox.height; 20118 if (evt.clientX < box.left || evt.clientX > areaX || evt.clientY < headerBox.y || evt.clientY > areaY) { 20119 this.close(evt); 20120 } 20121 }; 20122 this._onDocumentKeyDown = evt => { 20123 switch (evt.keyCode) { 20124 case this._DOWN_ARROW: 20125 case this._RIGHT_ARROW: 20126 evt.preventDefault(); 20127 evt.stopPropagation(); 20128 this._show(this._wrapper.listOfItems); 20129 this._isOpen = true; 20130 this.next(); 20131 break; 20132 case this._UP_ARROW: 20133 case this._LEFT_ARROW: 20134 evt.preventDefault(); 20135 evt.stopPropagation(); 20136 this.previous(); 20137 break; 20138 case this._ESCAPE: 20139 case this._ENTER: 20140 evt.preventDefault(); 20141 evt.stopPropagation(); 20142 this.close(null); 20143 break; 20144 case this._SHIFT: 20145 this._shiftHolded = true; 20146 break; 20147 case this._CONTROL: 20148 case this._MAC_CONTROL: 20149 this._controlHolded = true; 20150 break; 20151 case this._SPACE: 20152 this._show(this._wrapper.listOfItems); 20153 this._isOpen = true; 20154 break; 20155 default: 20156 if (evt.keyCode >= this._ALPHABETS_START && this._isList === false && this._settings.enableAutoFilter.toString() === "true") { 20157 this._showHideFilterBox(true); 20158 } 20159 this._shiftHolded = false; 20160 this._controlHolded = false; 20161 break; 20162 } 20163 }; 20164 this._onDocumentKeyUp = evt => { 20165 this._shiftHolded = false; 20166 this._controlHolded = false; 20167 }; 20168 if (documentClick === true) { 20169 this._bindEvents(document, "mouseup", this._onDocumentClick); 20170 } 20171 if (documentKeyDown === true) { 20172 this._bindEvents(document, "keydown", this._onDocumentKeyDown); 20173 this._bindEvents(document, "keyup", this._onDocumentKeyUp); 20174 } 20175 } 20176 20177 /** 20178 * Unbind document events 20179 * @private 20180 */ 20181 _unbindDocumentEvents() { 20182 //remove events 20183 if (this._onDocumentClick !== null) { 20184 this._unbindEvents(document, "mouseup", this._onDocumentClick); 20185 } 20186 if (this._onDocumentKeyDown !== null) { 20187 this._unbindEvents(document, "keydown", this._onDocumentKeyDown); 20188 } 20189 if (this._onDocumentKeyUp !== null) { 20190 this._unbindEvents(document, "keyup", this._onDocumentKeyUp); 20191 } 20192 this._onDocumentClick = null; 20193 this._onDocumentKeyDown = null; 20194 this._onDocumentKeyUp = null; 20195 } 20196 20197 /** 20198 * Scroll if needed 20199 * @param item 20200 * @param pos 20201 * @param goingWhere 20202 * @private 20203 */ 20204 _scrollToIfNeeded(item = null, pos = null, goingWhere = "next") {
20205 let child = this._wrapper.listOfItems; 20206 let childBound = child.getBoundingClientRect(); 20207 if (item === null && pos !== null) { 20208 child.scrollTop = pos; 20209 } 20210 //if scroll is needed 20211 item = item !== undefined ? item : this._getEle("li." + this._css.itemSelected); 20212 if (item) { 20213 let itemPos = item.offsetTop; 20214 let ch = child.clientHeight; 20215 let itemHeight = item.clientHeight; //for next 20216 20217 if (itemPos + itemHeight - child.scrollTop > ch && goingWhere === 'next') { 20218 child.scrollTop = itemPos + itemHeight - ch; 20219 } else if (itemPos - child.scrollTop < 0 && goingWhere === 'previous') { 20220 child.scrollTop = itemPos; 20221 } 20222 } 20223 } 20224 20225 /** 20226 * Fire event that is bind on settings 20227 * @param evt_n 20228 * @private 20229 */ 20230 _fireLocalEventIfExist(evt_n, data = null) { 20231 if (typeof this._settings.on[evt_n] === "function") { 20232 let dataAndUI = data === null ? this._getDataAndUI() : data; 20233 let fn = this._settings.on[evt_n]; 20234 try { 20235 fn(dataAndUI); 20236 } catch (e) { 20237 console.error(e.message); 20238 } 20239 } 20240 } 20241 20242 /** 20243 * Fire event if exist 20244 * @param evt_n 20245 * @return {boolean} 20246 * @private 20247 */ 20248 _fireEventIfExist(evt_n) { 20249 //data event 20250 if (this.ele.dataset[evt_n]) { 20251 let fn = new Function(this.ele.dataset[evt_n]); 20252 try { 20253 fn(); 20254 } catch (e) { 20255 console.error(e.message); 20256 } 20257 } 20258 20259 //check if original has some 20260 if (this._has_handler(evt_n).hasEvent) { 20261 if (this._has_handler(evt_n).byElement) { 20262 try { 20263 this.ele[evt_n](); 20264 } catch (e) { 20265 try { 20266 this.ele["on" + evt_n](); 20267 } catch (e2) {} 20268 } 20269 } else if (this._has_handler(evt_n).byJQuery) { 20270 switch (evt_n) { 20271 case "keydown": 20272 case "keyup": 20273 //key down/up will check later 20274 break; 20275 default: 20276 try { 20277 if (typeof jQuery !== "undefined") { 20278 jQuery(this.ele).triggerHandler(evt_n); 20279 } 20280 } catch (e) { 20281 //silence is bliss 20282 } 20283 break; 20284 } 20285 } 20286 return false; 20287 } 20288 } 20289 20290 /** 20291 * Has any event 20292 * @param name 20293 * @return {{byJQuery: boolean, hasEvent: boolean, byElement: boolean}} 20294 * @private 20295 */ 20296 _has_handler(name) { 20297 //True if a handler has been added in the html. 20298 let evt = { 20299 byElement: false, 20300 local: false, 20301 byJQuery: false, 20302 hasEvent: false 20303 }; 20304 if (this._settings.on[name] !== null) { 20305 evt.hasEvent = true; 20306 evt.local = true; 20307 } 20308 20309 //console.log(name) 20310 try { 20311 //console.log(obj.prop("on" + name) + " "+name); 20312 if (this._getProp(this.ele, "on" + name) !== null) { 20313 evt.hasEvent = true; 20314 evt.byElement = true; 20315 } 20316 } catch (e) { 20317 //console.log(e.message); 20318 } 20319 // True if a handler has been added using jQuery. 20320 if (typeof jQuery !== "undefined") { 20321 let obj = jQuery(this.ele); 20322 let evs; 20323 if (typeof jQuery?._data === "function") { 20324 //1.8 20325 evs = jQuery?._data(this.ele, "events"); 20326 } else { 20327 evs = obj.data("events"); 20328 } 20329 if (evs && evs[name]) { 20330 evt.hasEvent = true; 20331 evt.byJQuery = true; 20332 } 20333 } 20334 return evt; 20335 } 20336 20337 /***************** Public methods and props *********** / 20338 /** 20339 * Add an item to select 20340 * Object can be pass as below 20341 * new Option("Label", "value") or 20342 * {text:"Label", value:"value"} 20343 * or Label as string 20344 * or full object ie {text:"", value:"", description:'', image:'', className:'' title:'', imageCss:''} 20345 * @param obj 20346 * @param index 20347 */ 20348 20349 add(obj, index = null) { 20350 // 20351 let text, value, title, image, description, imageCss; 20352 let opt; 20353 if (obj instanceof HTMLOptionElement) { 20354 opt = obj; 20355 } else if (typeof obj === "string") { 20356 //passing as string 20357 text = value = obj; 20358 opt = new Option(text, value); 20359 } else if (obj instanceof Object) { 20360 text = obj.text || ''; 20361 value = obj.value || text; 20362 title = obj.title || ''; 20363 image = obj.image || ''; 20364 imageCss = obj.imageCss || ''; 20365 description = obj.description || ''; 20366 opt = new Option(text, value); 20367 opt.setAttribute("data-description", description); 20368 opt.setAttribute("data-image", image); 20369 opt.setAttribute("data-title", title); 20370 opt.setAttribute("data-image-css", imageCss); 20371 } 20372 this.ele.add(opt, index); 20373 this._makeChildren(); 20374 this._fireLocalEventIfExist("add"); 20375 } 20376 20377 /** 20378 * Remove an item from select 20379 * @param index 20380 */ 20381 remove(index) { 20382 let uiAndData = this._getDataAndUI(index); 20383 this.ele.remove(index); 20384 this._makeChildren(); 20385 this._fireLocalEventIfExist("remove", uiAndData); 20386 return uiAndData; 20387 } 20388 20389 /** 20390 * Move to next index 20391 */ 20392 next() {
20393 let $this = this; 20394 let allOptions = this.optionsUI; 20395 let totalOpt = allOptions.length; 20396 let counterStart; 20397 if (this._isFilterApplied) { 20398 counterStart = this._nexPrevCounter; 20399 } else { 20400 counterStart = this.selectedIndex; 20401 } 20402 let _getNextElem = function () { 20403 let i = counterStart; 20404 for (i; i < totalOpt; i++) { 20405 let next = i + 1; 20406 next = next >= totalOpt ? totalOpt - 1 : next; 20407 $this._nexPrevCounter++; 20408 if (!allOptions[next].classList.contains($this._css.itemDisabled)) { 20409 return allOptions[next]; 20410 } 20411 } 20412 return null; 20413 }; 20414 if (totalOpt > 0) { 20415 let nextEle = _getNextElem(); 20416 if (nextEle) { 20417 this._setSelectedByItem(nextEle, false, true); 20418 this._scrollToIfNeeded(nextEle); 20419 } 20420 } 20421 } 20422 20423 /** 20424 * Move to previous index 20425 */ 20426 previous() { 20427 let $this = this; 20428 let allOptions = this.optionsUI; //$this._getAllEle(`li.${$this._css.item}`, $this._wrapper.listOfItems); 20429 let totalOpt = allOptions.length; 20430 let counterStart; 20431 if (this._isFilterApplied) { 20432 counterStart = this._nexPrevCounter; 20433 } else { 20434 counterStart = this.selectedIndex; 20435 } 20436 let _getPreviousElem = function (ele) { 20437 let i = counterStart; 20438 for (i; i > 0; i--) { 20439 let next = i - 1; 20440 next = next >= 0 ? next : 0; 20441 $this._nexPrevCounter--; 20442 if (!allOptions[next].classList.contains($this._css.itemDisabled)) { 20443 return allOptions[next]; 20444 } 20445 } 20446 return null; 20447 }; 20448 if (allOptions.length > 0) { 20449 let prevEle = _getPreviousElem(); 20450 if (prevEle) { 20451 this._setSelectedByItem(prevEle, false, true); 20452 this._scrollToIfNeeded(prevEle, null, "previous"); 20453 } 20454 } 20455 } 20456 20457 /** 20458 * Open this dropdown 20459 */ 20460 open(evt, justOpen = false) { 20461 if (this.disabled) { 20462 return; 20463 } 20464 if (!this._isOpen) { 20465 this._isOpen = true; 20466 this._show(this._wrapper.listOfItems); 20467 20468 //don't bind event if just opening - useful when making as list 20469 if (justOpen === false) { 20470 this._bindDocumentEvents(evt); 20471 } 20472 //Change arrow 20473 this._wrapper.arrow.classList.remove(this._css.arrowDown); 20474 this._wrapper.arrow.classList.add(this._css.arrowUp); 20475 this._adjustChildHeight(); 20476 this._scrollToItem(); 20477 this._fireLocalEventIfExist("open"); 20478 } else { 20479 this.close(null); 20480 } 20481 } 20482 20483 /** 20484 * Close this dropdown 20485 * @param evt 20486 */ 20487 close(evt) { 20488 let isList = this._isList; 20489 let isDisable = false; // clicking on disabled list - it can be true based on below statement 20490 20491 if (evt !== null) { 20492 evt.stopImmediatePropagation(); 20493 let li = evt.target.closest('li'); 20494 isDisable = li !== null ? li.classList.contains("disabled") : false; 20495 } 20496 if (this.disabled || isList || isDisable) { 20497 return; 20498 } 20499 this._scrollToIfNeeded(null, 0); 20500 this._hide(this._wrapper.listOfItems); 20501 this._wrapper.arrow.classList.add(this._css.arrowDown); 20502 this._wrapper.arrow.classList.remove(this._css.arrowUp); 20503 20504 //reset few things 20505 this._isOpen = false; 20506 this._isMouseDown = false; 20507 this._shiftHolded = false; 20508 this._controlHolded = false; 20509 this._isFilterApplied = false; 20510 this._wrapper.filterInput.value = ""; 20511 this._wrapper.filterInput.blur(); 20512 if (this._settings.showFilterAlways.toString() === "false") { 20513 this._showHideFilterBox(false); 20514 } 20515 this._applyFilters(); 20516 this._unbindDocumentEvents(); 20517 this._updateHeaderUI(); 20518 20519 //reset list if required 20520 if (this.ele.length !== this._getAllEle(`li.${this._css.item}`, this._wrapper.listOfItems).length) { 20521 this._makeChildren(); 20522 this.updateUiAndValue(); 20523 } 20524 this._fireLocalEventIfExist("close"); 20525 } 20526 20527 /** 20528 * Return named item element with data 20529 * @param name 20530 * @param withData 20531 */ 20532 namedItem(name, withData = false) { 20533 let obj = null; 20534 let ele = this.ele.querySelector(`option[name='${name}']`); 20535 if (ele && withData) { 20536 obj = {}; 20537 let data = this._parseOption(ele); 20538 obj.option = ele; 20539 obj.data = data; 20540 } else { 20541 obj = ele; 20542 } 20543 return obj; 20544 } 20545 20546 /** 20547 * Get data by index 20548 * @param index 20549 * @param withData 20550 */ 20551 item(index, withData = false) { 20552 let obj = null; 20553 let ele = this.ele.options[index]; 20554 if (ele && withData) { 20555 obj = {}; 20556 let data = this._parseOption(ele); 20557 obj.option = ele; 20558 obj.data = data; 20559 } else { 20560 obj = ele; 20561 } 20562 return obj; 20563 } 20564 20565 /** 20566 * Show hide or get status of visibility 20567 * @param isShow 20568 * @return {boolean} 20569 */ 20570 visible(isShow = null) { 20571 if (isShow === true) { 20572 this._show(this._wrapper.holder, "inline-block"); 20573 } else if (isShow === false) { 20574 this._hide(this._wrapper.holder); 20575 } 20576 if (isShow === null) { 20577 return this._wrapper.holder.style.display !== "none"; 20578 } 20579 } 20580 20581 /** 20582 * Calculate item height and set child height 20583 * @param numberOfRows 20584 */ 20585 showRows(numberOfRows) { 20586 this._settings.visibleRows = numberOfRows > this.length ? this.length : numberOfRows; 20587 this._adjustChildHeight(); 20588 } 20589 20590 /** 20591 * Alias of showRows - undecided 20592 * @param numberOfRows 20593 */ 20594 visibleRows(numberOfRows) { 20595 this.showRows(numberOfRows); 20596 } 20597 20598 /** 20599 * Add event listener 20600 * @param type 20601 * @param fn 20602 */
20603 on(type, fn) { 20604 //this._bindEvents(this.ele, type, fn); 20605 this._settings.on[type] = fn; 20606 } 20607 20608 /** 20609 * Remove event listener 20610 * @param type 20611 * @param fn 20612 */ 20613 off(type, fn) { 20614 //this._unbindEvents(this.ele, type, fn); 20615 this._settings.on[type] = null; 20616 } 20617 /** 20618 * Remake Everything 20619 */ 20620 refresh() { 20621 this._makeChildren(); 20622 this.updateUiAndValue(); 20623 } 20624 20625 /** 20626 * Destroy UI 20627 */ 20628 destroy() { 20629 //show original 20630 this._show(this.ele); 20631 this.ele.required = this._wrapper.valueBox.required; 20632 this.ele.name = this._wrapper.valueBox.name; 20633 this._wrapper.holder.parentNode.removeChild(this._wrapper.holder); 20634 } 20635 20636 /*** Props ***/ 20637 /** 20638 * Get selected index 20639 * @return {*} 20640 */ 20641 get selectedIndex() { 20642 return this.ele.selectedIndex; 20643 } 20644 20645 /** 20646 * Set Index 20647 * @param index 20648 */ 20649 set selectedIndex(index) { 20650 let $this = this; 20651 let selectNow = function (ind) { 20652 $this.ele.selectedIndex = ind; 20653 if (ind === -1) { 20654 //blank 20655 $this._updateHeaderUI(null, ""); 20656 $this._removeOldSelected(); 20657 } else { 20658 $this._setSelectedByOptionItem($this.ele.options[ind]); 20659 } 20660 }; 20661 if (index < this.length && !this._isArray(index)) { 20662 selectNow(index); 20663 } else { 20664 if (this._isMultiple && this._isArray(index)) { 20665 for (let i = 0, len = index.length; i < len; i++) { 20666 if (index[i] < this.length && index[i] !== -1) { 20667 this._setSelectedByOptionItem(this.ele.options[index[i]], i > 0); 20668 } 20669 } 20670 this._updateHeaderUI(null); 20671 } else { 20672 selectNow(index); 20673 } 20674 } 20675 } 20676 20677 /** 20678 * Get options 20679 * @return {*} 20680 */ 20681 get options() { 20682 return this.ele.options; 20683 } 20684 20685 /** 20686 * Set options length 20687 * @param option 20688 */ 20689 set options(option) { 20690 if (option instanceof HTMLOptionElement) { 20691 this.ele.add(option); 20692 this._makeChildren(); 20693 this.updateUiAndValue(); 20694 } else if (typeof option === "number") { 20695 this.ele.length = option; 20696 this._makeChildren(); 20697 this.updateUiAndValue(); 20698 } 20699 } 20700 20701 /** 20702 * get options UI 20703 * @return {any} 20704 */ 20705 get optionsUI() { 20706 if (this._cacheEle["allItems"]) { 20707 //return this._cacheEle["allItems"]; 20708 } 20709 return this._cacheEle["allItems"] = this._getAllEle(`li.${this._css.item}`, this._wrapper.listOfItems); 20710 } 20711 20712 /** 20713 * Get length 20714 * @return {*} 20715 */ 20716 get length() { 20717 return this.ele.length; 20718 } 20719 20720 /** 20721 * Set length 20722 * @param size 20723 */ 20724 set length(size) { 20725 this.ele.options.length = size; 20726 this._makeChildren(); 20727 this.updateUiAndValue(); 20728 } 20729 20730 /** 20731 * Get value 20732 * @return {*} 20733 */ 20734 get value() { 20735 return this.ele.value; 20736 } 20737 20738 /** 20739 * Set value 20740 * @param val 20741 */ 20742 set value(val) { 20743 this.ele.value = val; 20744 this.selectedIndex = this.ele.selectedIndex; 20745 } 20746 20747 /** 20748 * get selected text 20749 * @return {string} 20750 */ 20751 get selectedText() { 20752 return this.selectedIndex >= 0 ? this.ele.options[this.selectedIndex].text : ""; 20753 } 20754 20755 /** 20756 * Check if this is disabled 20757 * @return {boolean | * | Function} 20758 */ 20759 get disabled() { 20760 return this.ele.hasAttribute('disabled'); 20761 } 20762 20763 /** 20764 * Set disabled 20765 * @param val 20766 */ 20767 set disabled(val) { 20768 if (val) { 20769 this.ele.setAttribute('disabled', ''); 20770 this._wrapper.holder.classList.add(this._css.wrapperDisabled); 20771 } else { 20772 this.ele.removeAttribute('disabled'); 20773 this._wrapper.holder.classList.remove(this._css.wrapperDisabled); 20774 } 20775 } 20776 20777 /** 20778 * Get form name if this is inside a form 20779 * @return {*} 20780 */ 20781 get form() { 20782 return this.ele.form; 20783 } 20784 20785 /** 20786 * Get multiple 20787 * @return {*} 20788 */ 20789 get multiple() { 20790 return this.ele.multiple; 20791 } 20792 20793 /** 20794 * Set multiple 20795 * @param val 20796 */ 20797 set multiple(val) { 20798 if (val) { 20799 this.ele.setAttribute('multiple', ''); 20800 this._enableCheckbox = this._settings.enableCheckbox; 20801 } else { 20802 this.ele.removeAttribute('multiple'); 20803 } 20804 this._isMultiple = val; 20805 //reset if this is not multiple 20806 if (!val) { 20807 this.selectedIndex = this.ele.selectedIndex; 20808 this._enableCheckbox = false;
20809 } 20810 this._makeChildren(); 20811 } 20812 20813 /** 20814 * Get the name 20815 * @return {*} 20816 */ 20817 get name() { 20818 if (this._wrapper?.valueBox) { 20819 return this._wrapper.valueBox.name || ""; 20820 } 20821 return this.ele.name; 20822 } 20823 20824 /** 20825 * Set the name 20826 * @param val 20827 */ 20828 set name(val) { 20829 if (this._wrapper?.valueBox) { 20830 this._wrapper.valueBox.name = val; 20831 } else { 20832 this.ele.name = val; 20833 } 20834 } 20835 20836 /** 20837 * Get required 20838 * @return {*} 20839 */ 20840 get required() { 20841 return this._wrapper.valueBox.required; 20842 } 20843 20844 /** 20845 * Set required 20846 * @param val 20847 */ 20848 set required(val) { 20849 if (val) { 20850 this._wrapper.valueBox.setAttribute('required', true); 20851 //update now 20852 } else { 20853 this._wrapper.valueBox.removeAttribute('required'); 20854 } 20855 } 20856 20857 /** 20858 * return the size/height of the dropdown 20859 * @return {*} 20860 */ 20861 get size() { 20862 return this.ele.size; 20863 } 20864 20865 /** 20866 * Change the height of the element 20867 * @param val 20868 */ 20869 set size(val) { 20870 this.ele.size = val; 20871 this._makeUiAsList(val > 1, val); 20872 } 20873 20874 /** 20875 * Get selected option 20876 * @return {null} 20877 */ 20878 get selectedOptions() { 20879 let selectedOptions = null; 20880 if (this.selectedIndex >= 0) { 20881 selectedOptions = this.ele.options[this.selectedIndex]; 20882 if (this.multiple) { 20883 selectedOptions = []; 20884 let options = this.options; 20885 let total = options.length; 20886 for (let i = 0; i < total; i++) { 20887 if (options[i].selected) { 20888 selectedOptions.push(options[i]); 20889 } 20890 } 20891 selectedOptions = selectedOptions.length === 1 ? selectedOptions[0] : selectedOptions; 20892 } 20893 } 20894 return selectedOptions; 20895 } 20896 20897 /** 20898 * Get element children 20899 * @return {*} 20900 */ 20901 get children() { 20902 return this.ele.children; 20903 } 20904 20905 /** 20906 * Get selected ui data 20907 * @return {{data: *, ui: *, index: *, option: *}} 20908 */ 20909 get uiData() { 20910 return this._getDataAndUI(); 20911 } 20912 20913 /** 20914 * Get version 20915 * @return {string} 20916 */ 20917 get version() { 20918 return "4.0.2"; 20919 } 20920} 20921 20922/***/ }), 20923
20924/***/ "./resources/plugins/toastr/build/toastr.min.js": 20925/*!******************************************************!*\ 20926 !*** ./resources/plugins/toastr/build/toastr.min.js ***! 20927 \******************************************************/ 20928/***/ ((module, exports, __webpack_require__) => { 20929 20930var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!function (e) { 20931 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (e) { 20932 return function () { 20933 function t(e, t, n) { 20934 return g({ 20935 type: O.error, 20936 iconClass: m().iconClasses.error, 20937 message: e, 20938 optionsOverride: n, 20939 title: t 20940 }); 20941 } 20942 function n(t, n) { 20943 return t || (t = m()), v = e("#" + t.containerId), v.length ? v : (n && (v = d(t)), v); 20944 } 20945 function o(e, t, n) { 20946 return g({ 20947 type: O.info, 20948 iconClass: m().iconClasses.info, 20949 message: e, 20950 optionsOverride: n, 20951 title: t 20952 }); 20953 } 20954 function s(e) { 20955 C = e; 20956 } 20957 function i(e, t, n) { 20958 return g({ 20959 type: O.success, 20960 iconClass: m().iconClasses.success, 20961 message: e, 20962 optionsOverride: n, 20963 title: t 20964 }); 20965 } 20966 function a(e, t, n) { 20967 return g({ 20968 type: O.warning, 20969 iconClass: m().iconClasses.warning, 20970 message: e, 20971 optionsOverride: n, 20972 title: t 20973 }); 20974 } 20975 function r(e, t) { 20976 var o = m();
20977 v || n(o), u(e, o, t) || l(o); 20978 } 20979 function c(t) { 20980 var o = m(); 20981 return v || n(o), t && 0 === e(":focus", t).length ? void h(t) : void (v.children().length && v.remove()); 20982 } 20983 function l(t) { 20984 for (var n = v.children(), o = n.length - 1; o >= 0; o--) u(e(n[o]), t); 20985 } 20986 function u(t, n, o) { 20987 var s = !(!o || !o.force) && o.force; 20988 return !(!t || !s && 0 !== e(":focus", t).length) && (t[n.hideMethod]({ 20989 duration: n.hideDuration, 20990 easing: n.hideEasing, 20991 complete: function () { 20992 h(t); 20993 } 20994 }), !0); 20995 } 20996 function d(t) { 20997 return v = e("<div/>").attr("id", t.containerId).addClass(t.positionClass), v.appendTo(e(t.target)), v; 20998 } 20999 function p() { 21000 return { 21001 tapToDismiss: !0, 21002 toastClass: "toastr", 21003 containerId: "toastr-container", 21004 debug: !1, 21005 showMethod: "fadeIn", 21006 showDuration: 300, 21007 showEasing: "swing", 21008 onShown: void 0, 21009 hideMethod: "fadeOut", 21010 hideDuration: 1e3, 21011 hideEasing: "swing", 21012 onHidden: void 0, 21013 closeMethod: !1, 21014 closeDuration: !1, 21015 closeEasing: !1, 21016 closeOnHover: !0, 21017 extendedTimeOut: 1e3, 21018 iconClasses: { 21019 error: "toastr-error", 21020 info: "toastr-info", 21021 success: "toastr-success", 21022 warning: "toastr-warning" 21023 }, 21024 iconClass: "toastr-info", 21025 positionClass: "toastr-top-right", 21026 timeOut: 5e3, 21027 titleClass: "toastr-title", 21028 messageClass: "toastr-message", 21029 escapeHtml: !1, 21030 target: "body", 21031 closeHtml: '<button type="button">×</button>', 21032 closeClass: "toastr-close-button", 21033 newestOnTop: !0, 21034 preventDuplicates: !1, 21035 progressBar: !1, 21036 progressClass: "toastr-progress", 21037 rtl: !1 21038 }; 21039 } 21040 function f(e) { 21041 C && C(e); 21042 } 21043 function g(t) { 21044 function o(e) { 21045 return null == e && (e = ""), e.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">"); 21046 } 21047 function s() { 21048 c(), u(), d(), p(), g(), C(), l(), i(); 21049 } 21050 function i() { 21051 var e = ""; 21052 switch (t.iconClass) { 21053 case "toastr-success": 21054 case "toastr-info": 21055 e = "polite"; 21056 break; 21057 default: 21058 e = "assertive"; 21059 } 21060 I.attr("aria-live", e); 21061 } 21062 function a() { 21063 E.closeOnHover && I.hover(H, D), !E.onclick && E.tapToDismiss && I.click(b), E.closeButton && j && j.click(function (e) { 21064 e.stopPropagation ? e.stopPropagation() : void 0 !== e.cancelBubble && e.cancelBubble !== !0 && (e.cancelBubble = !0), E.onCloseClick && E.onCloseClick(e), b(!0); 21065 }), E.onclick && I.click(function (e) { 21066 E.onclick(e), b(); 21067 }); 21068 } 21069 function r() { 21070 I.hide(), I[E.showMethod]({ 21071 duration: E.showDuration, 21072 easing: E.showEasing, 21073 complete: E.onShown 21074 }), E.timeOut > 0 && (k = setTimeout(b, E.timeOut), F.maxHideTime = parseFloat(E.timeOut), F.hideEta = new Date().getTime() + F.maxHideTime, E.progressBar && (F.intervalId = setInterval(x, 10))); 21075 } 21076 function c() { 21077 t.iconClass && I.addClass(E.toastClass).addClass(y); 21078 } 21079 function l() { 21080 E.newestOnTop ? v.prepend(I) : v.append(I); 21081 } 21082 function u() { 21083 if (t.title) { 21084 var e = t.title; 21085 E.escapeHtml && (e = o(t.title)), M.append(e).addClass(E.titleClass), I.append(M); 21086 } 21087 } 21088 function d() { 21089 if (t.message) { 21090 var e = t.message; 21091 E.escapeHtml && (e = o(t.message)), B.append(e).addClass(E.messageClass), I.append(B); 21092 } 21093 } 21094 function p() { 21095 E.closeButton && (j.addClass(E.closeClass).attr("role", "button"), I.prepend(j)); 21096 } 21097 function g() { 21098 E.progressBar && (q.addClass(E.progressClass), I.prepend(q)); 21099 } 21100 function C() { 21101 E.rtl && I.addClass("rtl"); 21102 } 21103 function O(e, t) { 21104 if (e.preventDuplicates) { 21105 if (t.message === w) return !0; 21106 w = t.message; 21107 } 21108 return !1; 21109 } 21110 function b(t) { 21111 var n = t && E.closeMethod !== !1 ? E.closeMethod : E.hideMethod, 21112 o = t && E.closeDuration !== !1 ? E.closeDuration : E.hideDuration, 21113 s = t && E.closeEasing !== !1 ? E.closeEasing : E.hideEasing; 21114 if (!e(":focus", I).length || t) return clearTimeout(F.intervalId), I[n]({ 21115 duration: o, 21116 easing: s, 21117 complete: function () { 21118 h(I), clearTimeout(k), E.onHidden && "hidden" !== P.state && E.onHidden(), P.state = "hidden", P.endTime = new Date(), f(P); 21119 } 21120 }); 21121 } 21122 function D() { 21123 (E.timeOut > 0 || E.extendedTimeOut > 0) && (k = setTimeout(b, E.extendedTimeOut), F.maxHideTime = parseFloat(E.extendedTimeOut), F.hideEta = new Date().getTime() + F.maxHideTime); 21124 } 21125 function H() { 21126 clearTimeout(k), F.hideEta = 0, I.stop(!0, !0)[E.showMethod]({ 21127 duration: E.showDuration, 21128 easing: E.showEasing 21129 }); 21130 } 21131 function x() { 21132 var e = (F.hideEta - new Date().getTime()) / F.maxHideTime * 100; 21133 q.width(e + "%"); 21134 } 21135 var E = m(), 21136 y = t.iconClass || E.iconClass; 21137 if ("undefined" != typeof t.optionsOverride && (E = e.extend(E, t.optionsOverride), y = t.optionsOverride.iconClass || y), !O(E, t)) { 21138 T++, v = n(E, !0); 21139 var k = null, 21140 I = e("<div/>"), 21141 M = e("<div/>"), 21142 B = e("<div/>"), 21143 q = e("<div/>"), 21144 j = e(E.closeHtml), 21145 F = { 21146 intervalId: null, 21147 hideEta: null, 21148 maxHideTime: null 21149 }, 21150 P = { 21151 toastId: T, 21152 state: "visible", 21153 startTime: new Date(), 21154 options: E, 21155 map: t 21156 }; 21157 return s(), r(), a(), f(P), E.debug && console && console.log(P), I; 21158 } 21159 } 21160 function m() { 21161 return e.extend({}, p(), b.options); 21162 } 21163 function h(e) { 21164 v || (v = n()), e.is(":visible") || (e.remove(), e = null, 0 === v.children().length && (v.remove(), w = void 0)); 21165 } 21166 var v, 21167 C, 21168 w, 21169 T = 0, 21170 O = { 21171 error: "error", 21172 info: "info", 21173 success: "success", 21174 warning: "warning" 21175 }, 21176 b = { 21177 clear: r, 21178 remove: c, 21179 error: t, 21180 getContainer: n, 21181 info: o, 21182 options: {}, 21183 subscribe: s, 21184 success: i, 21185 version: "2.1.4", 21186 warning: a 21187 }; 21188 return b; 21189 }(); 21190 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 21191 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 21192}(__webpack_require__.amdD); 21193 21194/***/ }), 21195
vendor: 67,969 bytes, lines 21196-22771
21196/***/ "./node_modules/bootstrap-daterangepicker/daterangepicker.js": 21197/*!*******************************************************************!*\ 21198 !*** ./node_modules/bootstrap-daterangepicker/daterangepicker.js ***! 21199 \*******************************************************************/ 21200/***/ (function(module, exports, __webpack_require__) { 21201 21202var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/** 21203* @version: 3.1 21204* @author: Dan Grossman http://www.dangrossman.info/ 21205* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved. 21206* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php 21207* @website: http://www.daterangepicker.com/ 21208*/ 21209// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js 21210(function (root, factory) { 21211 if (true) { 21212 // AMD. Make globaly available as well 21213 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! moment */ "./node_modules/moment/moment.js"), __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (moment, jquery) { 21214 if (!jquery.fn) jquery.fn = {}; // webpack server rendering 21215 if (typeof moment !== 'function' && moment.hasOwnProperty('default')) moment = moment['default'] 21216 return factory(moment, jquery); 21217 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 21218 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 21219 } else { var moment, jQuery; } 21220}(this, function(moment, $) { 21221 var DateRangePicker = function(element, options, cb) { 21222 21223 //default settings for options 21224 this.parentEl = 'body'; 21225 this.element = $(element); 21226 this.startDate = moment().startOf('day'); 21227 this.endDate = moment().endOf('day'); 21228 this.minDate = false; 21229 this.maxDate = false; 21230 this.maxSpan = false; 21231 this.autoApply = false; 21232 this.singleDatePicker = false; 21233 this.showDropdowns = false; 21234 this.minYear = moment().subtract(100, 'year').format('YYYY'); 21235 this.maxYear = moment().add(100, 'year').format('YYYY'); 21236 this.showWeekNumbers = false; 21237 this.showISOWeekNumbers = false; 21238 this.showCustomRangeLabel = true; 21239 this.timePicker = false; 21240 this.timePicker24Hour = false; 21241 this.timePickerIncrement = 1; 21242 this.timePickerSeconds = false; 21243 this.linkedCalendars = true; 21244 this.autoUpdateInput = true; 21245 this.alwaysShowCalendars = false; 21246 this.ranges = {}; 21247 21248 this.opens = 'right'; 21249 if (this.element.hasClass('pull-right')) 21250 this.opens = 'left'; 21251 21252 this.drops = 'down'; 21253 if (this.element.hasClass('dropup')) 21254 this.drops = 'up'; 21255 21256 this.buttonClasses = 'btn btn-sm'; 21257 this.applyButtonClasses = 'btn-primary'; 21258 this.cancelButtonClasses = 'btn-default'; 21259 21260 this.locale = { 21261 direction: 'ltr', 21262 format: moment.localeData().longDateFormat('L'), 21263 separator: ' - ', 21264 applyLabel: 'Apply', 21265 cancelLabel: 'Cancel', 21266 weekLabel: 'W', 21267 customRangeLabel: 'Custom Range', 21268 daysOfWeek: moment.weekdaysMin(), 21269 monthNames: moment.monthsShort(), 21270 firstDay: moment.localeData().firstDayOfWeek() 21271 }; 21272 21273 this.callback = function() { }; 21274 21275 //some state information 21276 this.isShowing = false; 21277 this.leftCalendar = {}; 21278 this.rightCalendar = {}; 21279 21280 //custom options from user 21281 if (typeof options !== 'object' || options === null) 21282 options = {}; 21283 21284 //allow setting options with data attributes 21285 //data-api options will be overwritten with custom javascript options 21286 options = $.extend(this.element.data(), options); 21287 21288 //html template for the picker UI 21289 if (typeof options.template !== 'string' && !(options.template instanceof $)) 21290 options.template = 21291 '<div class="daterangepicker">' + 21292 '<div class="ranges"></div>' + 21293 '<div class="drp-calendar left">' + 21294 '<div class="calendar-table"></div>' + 21295 '<div class="calendar-time"></div>' + 21296 '</div>' + 21297 '<div class="drp-calendar right">' + 21298 '<div class="calendar-table"></div>' + 21299 '<div class="calendar-time"></div>' + 21300 '</div>' + 21301 '<div class="drp-buttons">' + 21302 '<span class="drp-selected"></span>' + 21303 '<button class="cancelBtn" type="button"></button>' + 21304 '<button class="applyBtn" disabled="disabled" type="button"></button> ' + 21305 '</div>' + 21306 '</div>'; 21307 21308 this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl); 21309 this.container = $(options.template).appendTo(this.parentEl); 21310 21311 // 21312 // handle all the possible options overriding defaults 21313 // 21314 21315 if (typeof options.locale === 'object') { 21316 21317 if (typeof options.locale.direction === 'string') 21318 this.locale.direction = options.locale.direction; 21319 21320 if (typeof options.locale.format === 'string') 21321 this.locale.format = options.locale.format; 21322 21323 if (typeof options.locale.separator === 'string') 21324 this.locale.separator = options.locale.separator; 21325 21326 if (typeof options.locale.daysOfWeek === 'object') 21327 this.locale.daysOfWeek = options.locale.daysOfWeek.slice(); 21328 21329 if (typeof options.locale.monthNames === 'object') 21330 this.locale.monthNames = options.locale.monthNames.slice(); 21331 21332 if (typeof options.locale.firstDay === 'number') 21333 this.locale.firstDay = options.locale.firstDay; 21334 21335 if (typeof options.locale.applyLabel === 'string') 21336 this.locale.applyLabel = options.locale.applyLabel; 21337 21338 if (typeof options.locale.cancelLabel === 'string') 21339 this.locale.cancelLabel = options.locale.cancelLabel; 21340 21341 if (typeof options.locale.weekLabel === 'string') 21342 this.locale.weekLabel = options.locale.weekLabel; 21343 21344 if (typeof options.locale.customRangeLabel === 'string'){ 21345 //Support unicode chars in the custom range name. 21346 var elem = document.createElement('textarea'); 21347 elem.innerHTML = options.locale.customRangeLabel; 21348 var rangeHtml = elem.value; 21349 this.locale.customRangeLabel = rangeHtml; 21350 } 21351 } 21352 this.container.addClass(this.locale.direction); 21353 21354 if (typeof options.startDate === 'string') 21355 this.startDate = moment(options.startDate, this.locale.format); 21356 21357 if (typeof options.endDate === 'string') 21358 this.endDate = moment(options.endDate, this.locale.format); 21359 21360 if (typeof options.minDate === 'string') 21361 this.minDate = moment(options.minDate, this.locale.format); 21362 21363 if (typeof options.maxDate === 'string') 21364 this.maxDate = moment(options.maxDate, this.locale.format); 21365 21366 if (typeof options.startDate === 'object') 21367 this.startDate = moment(options.startDate); 21368 21369 if (typeof options.endDate === 'object') 21370 this.endDate = moment(options.endDate); 21371 21372 if (typeof options.minDate === 'object') 21373 this.minDate = moment(options.minDate); 21374 21375 if (typeof options.maxDate === 'object') 21376 this.maxDate = moment(options.maxDate); 21377 21378 // sanity check for bad options 21379 if (this.minDate && this.startDate.isBefore(this.minDate)) 21380 this.startDate = this.minDate.clone(); 21381 21382 // sanity check for bad options 21383 if (this.maxDate && this.endDate.isAfter(this.maxDate)) 21384 this.endDate = this.maxDate.clone(); 21385 21386 if (typeof options.applyButtonClasses === 'string') 21387 this.applyButtonClasses = options.applyButtonClasses; 21388 21389 if (typeof options.applyClass === 'string') //backwards compat 21390 this.applyButtonClasses = options.applyClass; 21391 21392 if (typeof options.cancelButtonClasses === 'string') 21393 this.cancelButtonClasses = options.cancelButtonClasses; 21394 21395 if (typeof options.cancelClass === 'string') //backwards compat 21396 this.cancelButtonClasses = options.cancelClass; 21397 21398 if (typeof options.maxSpan === 'object') 21399 this.maxSpan = options.maxSpan; 21400 21401 if (typeof options.dateLimit === 'object') //backwards compat 21402 this.maxSpan = options.dateLimit; 21403 21404 if (typeof options.opens === 'string') 21405 this.opens = options.opens; 21406 21407 if (typeof options.drops === 'string') 21408 this.drops = options.drops; 21409 21410 if (typeof options.showWeekNumbers === 'boolean') 21411 this.showWeekNumbers = options.showWeekNumbers; 21412 21413 if (typeof options.showISOWeekNumbers === 'boolean') 21414 this.showISOWeekNumbers = options.showISOWeekNumbers; 21415 21416 if (typeof options.buttonClasses === 'string') 21417 this.buttonClasses = options.buttonClasses; 21418 21419 if (typeof options.buttonClasses === 'object') 21420 this.buttonClasses = options.buttonClasses.join(' '); 21421 21422 if (typeof options.showDropdowns === 'boolean') 21423 this.showDropdowns = options.showDropdowns; 21424 21425 if (typeof options.minYear === 'number') 21426 this.minYear = options.minYear; 21427 21428 if (typeof options.maxYear === 'number') 21429 this.maxYear = options.maxYear; 21430 21431 if (typeof options.showCustomRangeLabel === 'boolean') 21432 this.showCustomRangeLabel = options.showCustomRangeLabel; 21433 21434 if (typeof options.singleDatePicker === 'boolean') { 21435 this.singleDatePicker = options.singleDatePicker; 21436 if (this.singleDatePicker) 21437 this.endDate = this.startDate.clone(); 21438 } 21439 21440 if (typeof options.timePicker === 'boolean') 21441 this.timePicker = options.timePicker; 21442 21443 if (typeof options.timePickerSeconds === 'boolean') 21444 this.timePickerSeconds = options.timePickerSeconds; 21445 21446 if (typeof options.timePickerIncrement === 'number') 21447 this.timePickerIncrement = options.timePickerIncrement; 21448 21449 if (typeof options.timePicker24Hour === 'boolean') 21450 this.timePicker24Hour = options.timePicker24Hour; 21451 21452 if (typeof options.autoApply === 'boolean') 21453 this.autoApply = options.autoApply; 21454 21455 if (typeof options.autoUpdateInput === 'boolean') 21456 this.autoUpdateInput = options.autoUpdateInput; 21457 21458 if (typeof options.linkedCalendars === 'boolean') 21459 this.linkedCalendars = options.linkedCalendars; 21460 21461 if (typeof options.isInvalidDate === 'function') 21462 this.isInvalidDate = options.isInvalidDate; 21463 21464 if (typeof options.isCustomDate === 'function') 21465 this.isCustomDate = options.isCustomDate; 21466 21467 if (typeof options.alwaysShowCalendars === 'boolean') 21468 this.alwaysShowCalendars = options.alwaysShowCalendars; 21469 21470 // update day names order to firstDay 21471 if (this.locale.firstDay != 0) { 21472 var iterator = this.locale.firstDay; 21473 while (iterator > 0) { 21474 this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()); 21475 iterator--; 21476 } 21477 } 21478 21479 var start, end, range; 21480 21481 //if no start/end dates set, check if an input element contains initial values 21482 if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') { 21483 if ($(this.element).is(':text')) { 21484 var val = $(this.element).val(), 21485 split = val.split(this.locale.separator); 21486 21487 start = end = null; 21488 21489 if (split.length == 2) { 21490 start = moment(split[0], this.locale.format); 21491 end = moment(split[1], this.locale.format); 21492 } else if (this.singleDatePicker && val !== "") { 21493 start = moment(val, this.locale.format); 21494 end = moment(val, this.locale.format); 21495 } 21496 if (start !== null && end !== null) { 21497 this.setStartDate(start); 21498 this.setEndDate(end); 21499 } 21500 } 21501 } 21502 21503 if (typeof options.ranges === 'object') { 21504 for (range in options.ranges) { 21505 21506 if (typeof options.ranges[range][0] === 'string') 21507 start = moment(options.ranges[range][0], this.locale.format); 21508 else 21509 start = moment(options.ranges[range][0]); 21510 21511 if (typeof options.ranges[range][1] === 'string') 21512 end = moment(options.ranges[range][1], this.locale.format); 21513 else 21514 end = moment(options.ranges[range][1]); 21515 21516 // If the start or end date exceed those allowed by the minDate or maxSpan 21517 // options, shorten the range to the allowable period. 21518 if (this.minDate && start.isBefore(this.minDate)) 21519 start = this.minDate.clone(); 21520 21521 var maxDate = this.maxDate; 21522 if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate)) 21523 maxDate = start.clone().add(this.maxSpan); 21524 if (maxDate && end.isAfter(maxDate)) 21525 end = maxDate.clone(); 21526 21527 // If the end of the range is before the minimum or the start of the range is 21528 // after the maximum, don't display this range option at all. 21529 if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day')) 21530 || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day'))) 21531 continue; 21532 21533 //Support unicode chars in the range names. 21534 var elem = document.createElement('textarea'); 21535 elem.innerHTML = range; 21536 var rangeHtml = elem.value; 21537 21538 this.ranges[rangeHtml] = [start, end]; 21539 } 21540 21541 var list = '<ul>'; 21542 for (range in this.ranges) { 21543 list += '<li data-range-key="' + range + '">' + range + '</li>'; 21544 } 21545 if (this.showCustomRangeLabel) { 21546 list += '<li data-range-key="' + this.locale.customRangeLabel + '">' + this.locale.customRangeLabel + '</li>'; 21547 } 21548 list += '</ul>'; 21549 this.container.find('.ranges').prepend(list); 21550 } 21551 21552 if (typeof cb === 'function') { 21553 this.callback = cb; 21554 } 21555 21556 if (!this.timePicker) { 21557 this.startDate = this.startDate.startOf('day'); 21558 this.endDate = this.endDate.endOf('day'); 21559 this.container.find('.calendar-time').hide(); 21560 } 21561 21562 //can't be used together for now 21563 if (this.timePicker && this.autoApply) 21564 this.autoApply = false; 21565 21566 if (this.autoApply) { 21567 this.container.addClass('auto-apply'); 21568 } 21569 21570 if (typeof options.ranges === 'object') 21571 this.container.addClass('show-ranges'); 21572 21573 if (this.singleDatePicker) { 21574 this.container.addClass('single'); 21575 this.container.find('.drp-calendar.left').addClass('single'); 21576 this.container.find('.drp-calendar.left').show(); 21577 this.container.find('.drp-calendar.right').hide(); 21578 if (!this.timePicker && this.autoApply) { 21579 this.container.addClass('auto-apply'); 21580 } 21581 } 21582 21583 if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) { 21584 this.container.addClass('show-calendar'); 21585 } 21586 21587 this.container.addClass('opens' + this.opens); 21588 21589 //apply CSS classes and labels to buttons 21590 this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses); 21591 if (this.applyButtonClasses.length) 21592 this.container.find('.applyBtn').addClass(this.applyButtonClasses); 21593 if (this.cancelButtonClasses.length) 21594 this.container.find('.cancelBtn').addClass(this.cancelButtonClasses); 21595 this.container.find('.applyBtn').html(this.locale.applyLabel); 21596 this.container.find('.cancelBtn').html(this.locale.cancelLabel); 21597 21598 // 21599 // event listeners 21600 // 21601 21602 this.container.find('.drp-calendar') 21603 .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this)) 21604 .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this)) 21605 .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this)) 21606 .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this)) 21607 .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this)) 21608 .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this)) 21609 .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this)); 21610 21611 this.container.find('.ranges') 21612 .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this)); 21613 21614 this.container.find('.drp-buttons') 21615 .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)) 21616 .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this)); 21617 21618 if (this.element.is('input') || this.element.is('button')) { 21619 this.element.on({ 21620 'click.daterangepicker': $.proxy(this.show, this), 21621 'focus.daterangepicker': $.proxy(this.show, this), 21622 'keyup.daterangepicker': $.proxy(this.elementChanged, this), 21623 'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility 21624 }); 21625 } else { 21626 this.element.on('click.daterangepicker', $.proxy(this.toggle, this)); 21627 this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this)); 21628 } 21629 21630 // 21631 // if attached to a text input, set the initial value 21632 // 21633 21634 this.updateElement(); 21635 21636 }; 21637 21638 DateRangePicker.prototype = { 21639 21640 constructor: DateRangePicker, 21641 21642 setStartDate: function(startDate) { 21643 if (typeof startDate === 'string') 21644 this.startDate = moment(startDate, this.locale.format); 21645 21646 if (typeof startDate === 'object') 21647 this.startDate = moment(startDate); 21648 21649 if (!this.timePicker) 21650 this.startDate = this.startDate.startOf('day'); 21651 21652 if (this.timePicker && this.timePickerIncrement) 21653 this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); 21654 21655 if (this.minDate && this.startDate.isBefore(this.minDate)) { 21656 this.startDate = this.minDate.clone(); 21657 if (this.timePicker && this.timePickerIncrement) 21658 this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); 21659 } 21660 21661 if (this.maxDate && this.startDate.isAfter(this.maxDate)) { 21662 this.startDate = this.maxDate.clone(); 21663 if (this.timePicker && this.timePickerIncrement) 21664 this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); 21665 } 21666 21667 if (!this.isShowing) 21668 this.updateElement(); 21669 21670 this.updateMonthsInView(); 21671 }, 21672 21673 setEndDate: function(endDate) { 21674 if (typeof endDate === 'string') 21675 this.endDate = moment(endDate, this.locale.format); 21676 21677 if (typeof endDate === 'object') 21678 this.endDate = moment(endDate); 21679 21680 if (!this.timePicker) 21681 this.endDate = this.endDate.endOf('day'); 21682 21683 if (this.timePicker && this.timePickerIncrement) 21684 this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); 21685 21686 if (this.endDate.isBefore(this.startDate)) 21687 this.endDate = this.startDate.clone(); 21688 21689 if (this.maxDate && this.endDate.isAfter(this.maxDate)) 21690 this.endDate = this.maxDate.clone(); 21691 21692 if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate)) 21693 this.endDate = this.startDate.clone().add(this.maxSpan); 21694 21695 this.previousRightTime = this.endDate.clone(); 21696 21697 this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); 21698 21699 if (!this.isShowing) 21700 this.updateElement(); 21701 21702 this.updateMonthsInView(); 21703 }, 21704 21705 isInvalidDate: function() { 21706 return false; 21707 }, 21708 21709 isCustomDate: function() { 21710 return false; 21711 }, 21712 21713 updateView: function() { 21714 if (this.timePicker) { 21715 this.renderTimePicker('left'); 21716 this.renderTimePicker('right'); 21717 if (!this.endDate) { 21718 this.container.find('.right .calendar-time select').prop('disabled', true).addClass('disabled'); 21719 } else { 21720 this.container.find('.right .calendar-time select').prop('disabled', false).removeClass('disabled'); 21721 } 21722 } 21723 if (this.endDate) 21724 this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); 21725 this.updateMonthsInView(); 21726 this.updateCalendars(); 21727 this.updateFormInputs(); 21728 }, 21729 21730 updateMonthsInView: function() { 21731 if (this.endDate) { 21732 21733 //if both dates are visible already, do nothing 21734 if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && 21735 (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) 21736 && 21737 (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) 21738 ) { 21739 return; 21740 } 21741 21742 this.leftCalendar.month = this.startDate.clone().date(2); 21743 if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) { 21744 this.rightCalendar.month = this.endDate.clone().date(2); 21745 } else { 21746 this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); 21747 } 21748 21749 } else { 21750 if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) { 21751 this.leftCalendar.month = this.startDate.clone().date(2); 21752 this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); 21753 } 21754 } 21755 if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) { 21756 this.rightCalendar.month = this.maxDate.clone().date(2); 21757 this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month'); 21758 } 21759 }, 21760 21761 updateCalendars: function() { 21762 21763 if (this.timePicker) { 21764 var hour, minute, second; 21765 if (this.endDate) { 21766 hour = parseInt(this.container.find('.left .hourselect').val(), 10); 21767 minute = parseInt(this.container.find('.left .minuteselect').val(), 10); 21768 if (isNaN(minute)) { 21769 minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10); 21770 } 21771 second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; 21772 if (!this.timePicker24Hour) { 21773 var ampm = this.container.find('.left .ampmselect').val(); 21774 if (ampm === 'PM' && hour < 12) 21775 hour += 12; 21776 if (ampm === 'AM' && hour === 12) 21777 hour = 0; 21778 } 21779 } else { 21780 hour = parseInt(this.container.find('.right .hourselect').val(), 10); 21781 minute = parseInt(this.container.find('.right .minuteselect').val(), 10); 21782 if (isNaN(minute)) { 21783 minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10); 21784 } 21785 second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; 21786 if (!this.timePicker24Hour) { 21787 var ampm = this.container.find('.right .ampmselect').val(); 21788 if (ampm === 'PM' && hour < 12) 21789 hour += 12; 21790 if (ampm === 'AM' && hour === 12) 21791 hour = 0; 21792 } 21793 } 21794 this.leftCalendar.month.hour(hour).minute(minute).second(second); 21795 this.rightCalendar.month.hour(hour).minute(minute).second(second); 21796 } 21797 21798 this.renderCalendar('left'); 21799 this.renderCalendar('right'); 21800 21801 //highlight any predefined range matching the current start and end dates 21802 this.container.find('.ranges li').removeClass('active'); 21803 if (this.endDate == null) return; 21804 21805 this.calculateChosenLabel(); 21806 }, 21807 21808 renderCalendar: function(side) { 21809 21810 // 21811 // Build the matrix of dates that will populate the calendar 21812 // 21813 21814 var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar; 21815 var month = calendar.month.month(); 21816 var year = calendar.month.year(); 21817 var hour = calendar.month.hour(); 21818 var minute = calendar.month.minute(); 21819 var second = calendar.month.second(); 21820 var daysInMonth = moment([year, month]).daysInMonth(); 21821 var firstDay = moment([year, month, 1]); 21822 var lastDay = moment([year, month, daysInMonth]); 21823 var lastMonth = moment(firstDay).subtract(1, 'month').month(); 21824 var lastYear = moment(firstDay).subtract(1, 'month').year(); 21825 var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth(); 21826 var dayOfWeek = firstDay.day(); 21827 21828 //initialize a 6 rows x 7 columns array for the calendar 21829 var calendar = []; 21830 calendar.firstDay = firstDay; 21831 calendar.lastDay = lastDay; 21832 21833 for (var i = 0; i < 6; i++) { 21834 calendar[i] = []; 21835 } 21836 21837 //populate the calendar with date objects 21838 var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1; 21839 if (startDay > daysInLastMonth) 21840 startDay -= 7; 21841 21842 if (dayOfWeek == this.locale.firstDay) 21843 startDay = daysInLastMonth - 6; 21844 21845 var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]); 21846 21847 var col, row; 21848 for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) { 21849 if (i > 0 && col % 7 === 0) { 21850 col = 0; 21851 row++; 21852 } 21853 calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second); 21854 curDate.hour(12); 21855 21856 if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') { 21857 calendar[row][col] = this.minDate.clone(); 21858 } 21859 21860 if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') { 21861 calendar[row][col] = this.maxDate.clone(); 21862 } 21863 21864 } 21865 21866 //make the calendar object available to hoverDate/clickDate 21867 if (side == 'left') { 21868 this.leftCalendar.calendar = calendar; 21869 } else { 21870 this.rightCalendar.calendar = calendar; 21871 } 21872 21873 // 21874 // Display the calendar 21875 // 21876 21877 var minDate = side == 'left' ? this.minDate : this.startDate; 21878 var maxDate = this.maxDate; 21879 var selected = side == 'left' ? this.startDate : this.endDate; 21880 var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'}; 21881 21882 var html = '<table class="table-condensed">'; 21883 html += '<thead>'; 21884 html += '<tr>'; 21885 21886 // add empty cell for week number 21887 if (this.showWeekNumbers || this.showISOWeekNumbers) 21888 html += '<th></th>'; 21889 21890 if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) { 21891 html += '<th class="prev available"><span></span></th>'; 21892 } else { 21893 html += '<th></th>'; 21894 } 21895 21896 var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY"); 21897 21898 if (this.showDropdowns) { 21899 var currentMonth = calendar[1][1].month(); 21900 var currentYear = calendar[1][1].year(); 21901 var maxYear = (maxDate && maxDate.year()) || (this.maxYear); 21902 var minYear = (minDate && minDate.year()) || (this.minYear); 21903 var inMinYear = currentYear == minYear; 21904 var inMaxYear = currentYear == maxYear; 21905 21906 var monthHtml = '<select class="monthselect">'; 21907 for (var m = 0; m < 12; m++) { 21908 if ((!inMinYear || (minDate && m >= minDate.month())) && (!inMaxYear || (maxDate && m <= maxDate.month()))) { 21909 monthHtml += "<option value='" + m + "'" + 21910 (m === currentMonth ? " selected='selected'" : "") + 21911 ">" + this.locale.monthNames[m] + "</option>"; 21912 } else { 21913 monthHtml += "<option value='" + m + "'" + 21914 (m === currentMonth ? " selected='selected'" : "") + 21915 " disabled='disabled'>" + this.locale.monthNames[m] + "</option>"; 21916 } 21917 } 21918 monthHtml += "</select>"; 21919 21920 var yearHtml = '<select class="yearselect">'; 21921 for (var y = minYear; y <= maxYear; y++) { 21922 yearHtml += '<option value="' + y + '"' + 21923 (y === currentYear ? ' selected="selected"' : '') + 21924 '>' + y + '</option>'; 21925 } 21926 yearHtml += '</select>'; 21927 21928 dateHtml = monthHtml + yearHtml; 21929 } 21930 21931 html += '<th colspan="5" class="month">' + dateHtml + '</th>'; 21932 if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) { 21933 html += '<th class="next available"><span></span></th>'; 21934 } else { 21935 html += '<th></th>'; 21936 } 21937 21938 html += '</tr>'; 21939 html += '<tr>'; 21940 21941 // add week number label 21942 if (this.showWeekNumbers || this.showISOWeekNumbers) 21943 html += '<th class="week">' + this.locale.weekLabel + '</th>'; 21944 21945 $.each(this.locale.daysOfWeek, function(index, dayOfWeek) { 21946 html += '<th>' + dayOfWeek + '</th>'; 21947 }); 21948 21949 html += '</tr>'; 21950 html += '</thead>'; 21951 html += '<tbody>'; 21952 21953 //adjust maxDate to reflect the maxSpan setting in order to 21954 //grey out end dates beyond the maxSpan 21955 if (this.endDate == null && this.maxSpan) { 21956 var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day'); 21957 if (!maxDate || maxLimit.isBefore(maxDate)) { 21958 maxDate = maxLimit; 21959 } 21960 } 21961 21962 for (var row = 0; row < 6; row++) { 21963 html += '<tr>'; 21964 21965 // add week number 21966 if (this.showWeekNumbers) 21967 html += '<td class="week">' + calendar[row][0].week() + '</td>'; 21968 else if (this.showISOWeekNumbers) 21969 html += '<td class="week">' + calendar[row][0].isoWeek() + '</td>'; 21970 21971 for (var col = 0; col < 7; col++) { 21972 21973 var classes = []; 21974 21975 //highlight today's date 21976 if (calendar[row][col].isSame(new Date(), "day")) 21977 classes.push('today'); 21978 21979 //highlight weekends 21980 if (calendar[row][col].isoWeekday() > 5) 21981 classes.push('weekend'); 21982 21983 //grey out the dates in other months displayed at beginning and end of this calendar 21984 if (calendar[row][col].month() != calendar[1][1].month()) 21985 classes.push('off', 'ends'); 21986 21987 //don't allow selection of dates before the minimum date 21988 if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day')) 21989 classes.push('off', 'disabled'); 21990 21991 //don't allow selection of dates after the maximum date 21992 if (maxDate && calendar[row][col].isAfter(maxDate, 'day')) 21993 classes.push('off', 'disabled'); 21994 21995 //don't allow selection of date if a custom function decides it's invalid 21996 if (this.isInvalidDate(calendar[row][col])) 21997 classes.push('off', 'disabled'); 21998 21999 //highlight the currently selected start date 22000 if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD')) 22001 classes.push('active', 'start-date'); 22002 22003 //highlight the currently selected end date 22004 if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD')) 22005 classes.push('active', 'end-date'); 22006 22007 //highlight dates in-between the selected dates 22008 if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate) 22009 classes.push('in-range'); 22010 22011 //apply custom classes for this date 22012 var isCustom = this.isCustomDate(calendar[row][col]); 22013 if (isCustom !== false) { 22014 if (typeof isCustom === 'string') 22015 classes.push(isCustom); 22016 else 22017 Array.prototype.push.apply(classes, isCustom); 22018 } 22019 22020 var cname = '', disabled = false; 22021 for (var i = 0; i < classes.length; i++) { 22022 cname += classes[i] + ' '; 22023 if (classes[i] == 'disabled') 22024 disabled = true; 22025 } 22026 if (!disabled) 22027 cname += 'available'; 22028 22029 html += '<td class="' + cname.replace(/^\s+|\s+$/g, '') + '" data-title="' + 'r' + row + 'c' + col + '">' + calendar[row][col].date() + '</td>'; 22030 22031 } 22032 html += '</tr>'; 22033 } 22034 22035 html += '</tbody>'; 22036 html += '</table>'; 22037 22038 this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html); 22039 22040 }, 22041 22042 renderTimePicker: function(side) { 22043 22044 // Don't bother updating the time picker if it's currently disabled 22045 // because an end date hasn't been clicked yet 22046 if (side == 'right' && !this.endDate) return; 22047 22048 var html, selected, minDate, maxDate = this.maxDate; 22049 22050 if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate))) 22051 maxDate = this.startDate.clone().add(this.maxSpan); 22052 22053 if (side == 'left') { 22054 selected = this.startDate.clone(); 22055 minDate = this.minDate; 22056 } else if (side == 'right') { 22057 selected = this.endDate.clone(); 22058 minDate = this.startDate; 22059 22060 //Preserve the time already selected 22061 var timeSelector = this.container.find('.drp-calendar.right .calendar-time'); 22062 if (timeSelector.html() != '') { 22063 22064 selected.hour(!isNaN(selected.hour()) ? selected.hour() : timeSelector.find('.hourselect option:selected').val()); 22065 selected.minute(!isNaN(selected.minute()) ? selected.minute() : timeSelector.find('.minuteselect option:selected').val()); 22066 selected.second(!isNaN(selected.second()) ? selected.second() : timeSelector.find('.secondselect option:selected').val()); 22067 22068 if (!this.timePicker24Hour) { 22069 var ampm = timeSelector.find('.ampmselect option:selected').val(); 22070 if (ampm === 'PM' && selected.hour() < 12) 22071 selected.hour(selected.hour() + 12); 22072 if (ampm === 'AM' && selected.hour() === 12) 22073 selected.hour(0); 22074 } 22075 22076 } 22077 22078 if (selected.isBefore(this.startDate)) 22079 selected = this.startDate.clone(); 22080 22081 if (maxDate && selected.isAfter(maxDate)) 22082 selected = maxDate.clone(); 22083 22084 } 22085 22086 // 22087 // hours 22088 // 22089 22090 html = '<select class="hourselect">'; 22091 22092 var start = this.timePicker24Hour ? 0 : 1; 22093 var end = this.timePicker24Hour ? 23 : 12; 22094 22095 for (var i = start; i <= end; i++) { 22096 var i_in_24 = i; 22097 if (!this.timePicker24Hour) 22098 i_in_24 = selected.hour() >= 12 ? (i == 12 ? 12 : i + 12) : (i == 12 ? 0 : i); 22099 22100 var time = selected.clone().hour(i_in_24); 22101 var disabled = false; 22102 if (minDate && time.minute(59).isBefore(minDate)) 22103 disabled = true; 22104 if (maxDate && time.minute(0).isAfter(maxDate)) 22105 disabled = true; 22106 22107 if (i_in_24 == selected.hour() && !disabled) { 22108 html += '<option value="' + i + '" selected="selected">' + i + '</option>'; 22109 } else if (disabled) { 22110 html += '<option value="' + i + '" disabled="disabled" class="disabled">' + i + '</option>'; 22111 } else { 22112 html += '<option value="' + i + '">' + i + '</option>'; 22113 } 22114 } 22115 22116 html += '</select> '; 22117 22118 // 22119 // minutes 22120 // 22121 22122 html += ': <select class="minuteselect">'; 22123 22124 for (var i = 0; i < 60; i += this.timePickerIncrement) { 22125 var padded = i < 10 ? '0' + i : i; 22126 var time = selected.clone().minute(i); 22127 22128 var disabled = false; 22129 if (minDate && time.second(59).isBefore(minDate)) 22130 disabled = true; 22131 if (maxDate && time.second(0).isAfter(maxDate)) 22132 disabled = true; 22133 22134 if (selected.minute() == i && !disabled) { 22135 html += '<option value="' + i + '" selected="selected">' + padded + '</option>'; 22136 } else if (disabled) { 22137 html += '<option value="' + i + '" disabled="disabled" class="disabled">' + padded + '</option>'; 22138 } else { 22139 html += '<option value="' + i + '">' + padded + '</option>'; 22140 } 22141 } 22142 22143 html += '</select> '; 22144 22145 // 22146 // seconds 22147 // 22148 22149 if (this.timePickerSeconds) { 22150 html += ': <select class="secondselect">'; 22151 22152 for (var i = 0; i < 60; i++) { 22153 var padded = i < 10 ? '0' + i : i; 22154 var time = selected.clone().second(i); 22155 22156 var disabled = false; 22157 if (minDate && time.isBefore(minDate)) 22158 disabled = true; 22159 if (maxDate && time.isAfter(maxDate)) 22160 disabled = true; 22161 22162 if (selected.second() == i && !disabled) { 22163 html += '<option value="' + i + '" selected="selected">' + padded + '</option>'; 22164 } else if (disabled) { 22165 html += '<option value="' + i + '" disabled="disabled" class="disabled">' + padded + '</option>'; 22166 } else { 22167 html += '<option value="' + i + '">' + padded + '</option>'; 22168 } 22169 } 22170 22171 html += '</select> '; 22172 } 22173 22174 // 22175 // AM/PM 22176 // 22177 22178 if (!this.timePicker24Hour) { 22179 html += '<select class="ampmselect">'; 22180 22181 var am_html = ''; 22182 var pm_html = ''; 22183 22184 if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate)) 22185 am_html = ' disabled="disabled" class="disabled"'; 22186 22187 if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate)) 22188 pm_html = ' disabled="disabled" class="disabled"'; 22189 22190 if (selected.hour() >= 12) { 22191 html += '<option value="AM"' + am_html + '>AM</option><option value="PM" selected="selected"' + pm_html + '>PM</option>'; 22192 } else { 22193 html += '<option value="AM" selected="selected"' + am_html + '>AM</option><option value="PM"' + pm_html + '>PM</option>'; 22194 } 22195 22196 html += '</select>'; 22197 } 22198 22199 this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html); 22200 22201 }, 22202 22203 updateFormInputs: function() { 22204 22205 if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) { 22206 this.container.find('button.applyBtn').prop('disabled', false); 22207 } else { 22208 this.container.find('button.applyBtn').prop('disabled', true); 22209 } 22210 22211 }, 22212 22213 move: function() { 22214 var parentOffset = { top: 0, left: 0 }, 22215 containerTop, 22216 drops = this.drops; 22217 22218 var parentRightEdge = $(window).width(); 22219 if (!this.parentEl.is('body')) { 22220 parentOffset = { 22221 top: this.parentEl.offset().top - this.parentEl.scrollTop(), 22222 left: this.parentEl.offset().left - this.parentEl.scrollLeft() 22223 }; 22224 parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left; 22225 } 22226 22227 switch (drops) { 22228 case 'auto': 22229 containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; 22230 if (containerTop + this.container.outerHeight() >= this.parentEl[0].scrollHeight) { 22231 containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; 22232 drops = 'up'; 22233 } 22234 break; 22235 case 'up': 22236 containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; 22237 break; 22238 default: 22239 containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; 22240 break; 22241 } 22242 22243 // Force the container to it's actual width 22244 this.container.css({ 22245 top: 0, 22246 left: 0, 22247 right: 'auto' 22248 }); 22249 var containerWidth = this.container.outerWidth(); 22250 22251 this.container.toggleClass('drop-up', drops == 'up'); 22252 22253 if (this.opens == 'left') { 22254 var containerRight = parentRightEdge - this.element.offset().left - this.element.outerWidth(); 22255 if (containerWidth + containerRight > $(window).width()) { 22256 this.container.css({ 22257 top: containerTop, 22258 right: 'auto', 22259 left: 9 22260 }); 22261 } else { 22262 this.container.css({ 22263 top: containerTop, 22264 right: containerRight, 22265 left: 'auto' 22266 }); 22267 } 22268 } else if (this.opens == 'center') { 22269 var containerLeft = this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2 22270 - containerWidth / 2; 22271 if (containerLeft < 0) { 22272 this.container.css({ 22273 top: containerTop, 22274 right: 'auto', 22275 left: 9 22276 }); 22277 } else if (containerLeft + containerWidth > $(window).width()) { 22278 this.container.css({ 22279 top: containerTop, 22280 left: 'auto', 22281 right: 0 22282 }); 22283 } else { 22284 this.container.css({ 22285 top: containerTop, 22286 left: containerLeft, 22287 right: 'auto' 22288 }); 22289 } 22290 } else { 22291 var containerLeft = this.element.offset().left - parentOffset.left; 22292 if (containerLeft + containerWidth > $(window).width()) { 22293 this.container.css({ 22294 top: containerTop, 22295 left: 'auto', 22296 right: 0 22297 }); 22298 } else { 22299 this.container.css({ 22300 top: containerTop, 22301 left: containerLeft, 22302 right: 'auto' 22303 }); 22304 } 22305 } 22306 }, 22307 22308 show: function(e) { 22309 if (this.isShowing) return; 22310 22311 // Create a click proxy that is private to this instance of datepicker, for unbinding 22312 this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this); 22313 22314 // Bind global datepicker mousedown for hiding and 22315 $(document) 22316 .on('mousedown.daterangepicker', this._outsideClickProxy) 22317 // also support mobile devices 22318 .on('touchend.daterangepicker', this._outsideClickProxy) 22319 // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them 22320 .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy) 22321 // and also close when focus changes to outside the picker (eg. tabbing between controls) 22322 .on('focusin.daterangepicker', this._outsideClickProxy); 22323 22324 // Reposition the picker if the window is resized while it's open 22325 $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this)); 22326 22327 this.oldStartDate = this.startDate.clone(); 22328 this.oldEndDate = this.endDate.clone(); 22329 this.previousRightTime = this.endDate.clone(); 22330 22331 this.updateView(); 22332 this.container.show(); 22333 this.move(); 22334 this.element.trigger('show.daterangepicker', this); 22335 this.isShowing = true; 22336 }, 22337 22338 hide: function(e) { 22339 if (!this.isShowing) return; 22340 22341 //incomplete date selection, revert to last values 22342 if (!this.endDate) { 22343 this.startDate = this.oldStartDate.clone(); 22344 this.endDate = this.oldEndDate.clone(); 22345 } 22346 22347 //if a new date range was selected, invoke the user callback function 22348 if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) 22349 this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel); 22350 22351 //if picker is attached to a text input, update it 22352 this.updateElement(); 22353 22354 $(document).off('.daterangepicker'); 22355 $(window).off('.daterangepicker'); 22356 this.container.hide(); 22357 this.element.trigger('hide.daterangepicker', this); 22358 this.isShowing = false; 22359 }, 22360 22361 toggle: function(e) { 22362 if (this.isShowing) { 22363 this.hide(); 22364 } else { 22365 this.show(); 22366 } 22367 }, 22368 22369 outsideClick: function(e) { 22370 var target = $(e.target); 22371 // if the page is clicked anywhere except within the daterangerpicker/button 22372 // itself then call this.hide() 22373 if ( 22374 // ie modal dialog fix 22375 e.type == "focusin" || 22376 target.closest(this.element).length || 22377 target.closest(this.container).length || 22378 target.closest('.calendar-table').length 22379 ) return; 22380 this.hide(); 22381 this.element.trigger('outsideClick.daterangepicker', this); 22382 }, 22383 22384 showCalendars: function() { 22385 this.container.addClass('show-calendar'); 22386 this.move(); 22387 this.element.trigger('showCalendar.daterangepicker', this); 22388 }, 22389 22390 hideCalendars: function() { 22391 this.container.removeClass('show-calendar'); 22392 this.element.trigger('hideCalendar.daterangepicker', this); 22393 }, 22394 22395 clickRange: function(e) { 22396 var label = e.target.getAttribute('data-range-key'); 22397 this.chosenLabel = label; 22398 if (label == this.locale.customRangeLabel) { 22399 this.showCalendars(); 22400 } else { 22401 var dates = this.ranges[label]; 22402 this.startDate = dates[0]; 22403 this.endDate = dates[1]; 22404 22405 if (!this.timePicker) { 22406 this.startDate.startOf('day'); 22407 this.endDate.endOf('day'); 22408 } 22409 22410 if (!this.alwaysShowCalendars) 22411 this.hideCalendars(); 22412 this.clickApply(); 22413 } 22414 }, 22415 22416 clickPrev: function(e) { 22417 var cal = $(e.target).parents('.drp-calendar'); 22418 if (cal.hasClass('left')) { 22419 this.leftCalendar.month.subtract(1, 'month'); 22420 if (this.linkedCalendars) 22421 this.rightCalendar.month.subtract(1, 'month'); 22422 } else { 22423 this.rightCalendar.month.subtract(1, 'month'); 22424 } 22425 this.updateCalendars(); 22426 }, 22427 22428 clickNext: function(e) { 22429 var cal = $(e.target).parents('.drp-calendar'); 22430 if (cal.hasClass('left')) { 22431 this.leftCalendar.month.add(1, 'month'); 22432 } else { 22433 this.rightCalendar.month.add(1, 'month'); 22434 if (this.linkedCalendars) 22435 this.leftCalendar.month.add(1, 'month'); 22436 } 22437 this.updateCalendars(); 22438 }, 22439 22440 hoverDate: function(e) { 22441 22442 //ignore dates that can't be selected 22443 if (!$(e.target).hasClass('available')) return; 22444 22445 var title = $(e.target).attr('data-title'); 22446 var row = title.substr(1, 1); 22447 var col = title.substr(3, 1); 22448 var cal = $(e.target).parents('.drp-calendar'); 22449 var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; 22450 22451 //highlight the dates between the start date and the date being hovered as a potential end date 22452 var leftCalendar = this.leftCalendar; 22453 var rightCalendar = this.rightCalendar; 22454 var startDate = this.startDate; 22455 if (!this.endDate) { 22456 this.container.find('.drp-calendar tbody td').each(function(index, el) { 22457 22458 //skip week numbers, only look at dates 22459 if ($(el).hasClass('week')) return; 22460 22461 var title = $(el).attr('data-title'); 22462 var row = title.substr(1, 1); 22463 var col = title.substr(3, 1); 22464 var cal = $(el).parents('.drp-calendar'); 22465 var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col]; 22466 22467 if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) { 22468 $(el).addClass('in-range'); 22469 } else { 22470 $(el).removeClass('in-range'); 22471 } 22472 22473 }); 22474 } 22475 22476 }, 22477 22478 clickDate: function(e) { 22479 22480 if (!$(e.target).hasClass('available')) return; 22481 22482 var title = $(e.target).attr('data-title'); 22483 var row = title.substr(1, 1); 22484 var col = title.substr(3, 1); 22485 var cal = $(e.target).parents('.drp-calendar'); 22486 var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; 22487 22488 // 22489 // this function needs to do a few things: 22490 // * alternate between selecting a start and end date for the range, 22491 // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date 22492 // * if autoapply is enabled, and an end date was chosen, apply the selection 22493 // * if single date picker mode, and time picker isn't enabled, apply the selection immediately 22494 // * if one of the inputs above the calendars was focused, cancel that manual input 22495 // 22496 22497 if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start 22498 if (this.timePicker) { 22499 var hour = parseInt(this.container.find('.left .hourselect').val(), 10); 22500 if (!this.timePicker24Hour) { 22501 var ampm = this.container.find('.left .ampmselect').val(); 22502 if (ampm === 'PM' && hour < 12) 22503 hour += 12; 22504 if (ampm === 'AM' && hour === 12) 22505 hour = 0; 22506 } 22507 var minute = parseInt(this.container.find('.left .minuteselect').val(), 10); 22508 if (isNaN(minute)) { 22509 minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10); 22510 } 22511 var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; 22512 date = date.clone().hour(hour).minute(minute).second(second); 22513 } 22514 this.endDate = null; 22515 this.setStartDate(date.clone()); 22516 } else if (!this.endDate && date.isBefore(this.startDate)) { 22517 //special case: clicking the same date for start/end, 22518 //but the time of the end date is before the start date 22519 this.setEndDate(this.startDate.clone()); 22520 } else { // picking end 22521 if (this.timePicker) { 22522 var hour = parseInt(this.container.find('.right .hourselect').val(), 10); 22523 if (!this.timePicker24Hour) { 22524 var ampm = this.container.find('.right .ampmselect').val(); 22525 if (ampm === 'PM' && hour < 12) 22526 hour += 12; 22527 if (ampm === 'AM' && hour === 12) 22528 hour = 0; 22529 } 22530 var minute = parseInt(this.container.find('.right .minuteselect').val(), 10); 22531 if (isNaN(minute)) { 22532 minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10); 22533 } 22534 var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; 22535 date = date.clone().hour(hour).minute(minute).second(second); 22536 } 22537 this.setEndDate(date.clone()); 22538 if (this.autoApply) { 22539 this.calculateChosenLabel(); 22540 this.clickApply(); 22541 } 22542 } 22543 22544 if (this.singleDatePicker) { 22545 this.setEndDate(this.startDate); 22546 if (!this.timePicker && this.autoApply) 22547 this.clickApply(); 22548 } 22549 22550 this.updateView(); 22551 22552 //This is to cancel the blur event handler if the mouse was in one of the inputs 22553 e.stopPropagation(); 22554 22555 }, 22556 22557 calculateChosenLabel: function () { 22558 var customRange = true; 22559 var i = 0; 22560 for (var range in this.ranges) { 22561 if (this.timePicker) { 22562 var format = this.timePickerSeconds ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD HH:mm"; 22563 //ignore times when comparing dates if time picker seconds is not enabled 22564 if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) { 22565 customRange = false; 22566 this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key'); 22567 break; 22568 } 22569 } else { 22570 //ignore times when comparing dates if time picker is not enabled 22571 if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) { 22572 customRange = false; 22573 this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key'); 22574 break; 22575 } 22576 } 22577 i++; 22578 } 22579 if (customRange) { 22580 if (this.showCustomRangeLabel) { 22581 this.chosenLabel = this.container.find('.ranges li:last').addClass('active').attr('data-range-key'); 22582 } else { 22583 this.chosenLabel = null; 22584 } 22585 this.showCalendars(); 22586 } 22587 }, 22588 22589 clickApply: function(e) { 22590 this.hide(); 22591 this.element.trigger('apply.daterangepicker', this); 22592 }, 22593 22594 clickCancel: function(e) { 22595 this.startDate = this.oldStartDate; 22596 this.endDate = this.oldEndDate; 22597 this.hide(); 22598 this.element.trigger('cancel.daterangepicker', this); 22599 }, 22600 22601 monthOrYearChanged: function(e) { 22602 var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'), 22603 leftOrRight = isLeft ? 'left' : 'right', 22604 cal = this.container.find('.drp-calendar.'+leftOrRight); 22605 22606 // Month must be Number for new moment versions 22607 var month = parseInt(cal.find('.monthselect').val(), 10); 22608 var year = cal.find('.yearselect').val(); 22609 22610 if (!isLeft) { 22611 if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) { 22612 month = this.startDate.month(); 22613 year = this.startDate.year(); 22614 } 22615 } 22616 22617 if (this.minDate) { 22618 if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) { 22619 month = this.minDate.month(); 22620 year = this.minDate.year(); 22621 } 22622 } 22623 22624 if (this.maxDate) { 22625 if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) { 22626 month = this.maxDate.month(); 22627 year = this.maxDate.year(); 22628 } 22629 } 22630 22631 if (isLeft) { 22632 this.leftCalendar.month.month(month).year(year); 22633 if (this.linkedCalendars) 22634 this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month'); 22635 } else { 22636 this.rightCalendar.month.month(month).year(year); 22637 if (this.linkedCalendars) 22638 this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month'); 22639 } 22640 this.updateCalendars(); 22641 }, 22642 22643 timeChanged: function(e) { 22644 22645 var cal = $(e.target).closest('.drp-calendar'), 22646 isLeft = cal.hasClass('left'); 22647 22648 var hour = parseInt(cal.find('.hourselect').val(), 10); 22649 var minute = parseInt(cal.find('.minuteselect').val(), 10); 22650 if (isNaN(minute)) { 22651 minute = parseInt(cal.find('.minuteselect option:last').val(), 10); 22652 } 22653 var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0; 22654 22655 if (!this.timePicker24Hour) { 22656 var ampm = cal.find('.ampmselect').val(); 22657 if (ampm === 'PM' && hour < 12) 22658 hour += 12; 22659 if (ampm === 'AM' && hour === 12) 22660 hour = 0; 22661 } 22662 22663 if (isLeft) { 22664 var start = this.startDate.clone(); 22665 start.hour(hour); 22666 start.minute(minute); 22667 start.second(second); 22668 this.setStartDate(start); 22669 if (this.singleDatePicker) { 22670 this.endDate = this.startDate.clone(); 22671 } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) { 22672 this.setEndDate(start.clone()); 22673 } 22674 } else if (this.endDate) { 22675 var end = this.endDate.clone(); 22676 end.hour(hour); 22677 end.minute(minute); 22678 end.second(second); 22679 this.setEndDate(end); 22680 } 22681 22682 //update the calendars so all clickable dates reflect the new time component 22683 this.updateCalendars(); 22684 22685 //update the form inputs above the calendars with the new time 22686 this.updateFormInputs(); 22687 22688 //re-render the time pickers because changing one selection can affect what's enabled in another 22689 this.renderTimePicker('left'); 22690 this.renderTimePicker('right'); 22691 22692 }, 22693 22694 elementChanged: function() { 22695 if (!this.element.is('input')) return; 22696 if (!this.element.val().length) return; 22697 22698 var dateString = this.element.val().split(this.locale.separator), 22699 start = null, 22700 end = null; 22701 22702 if (dateString.length === 2) { 22703 start = moment(dateString[0], this.locale.format); 22704 end = moment(dateString[1], this.locale.format); 22705 } 22706 22707 if (this.singleDatePicker || start === null || end === null) { 22708 start = moment(this.element.val(), this.locale.format); 22709 end = start; 22710 } 22711 22712 if (!start.isValid() || !end.isValid()) return; 22713 22714 this.setStartDate(start); 22715 this.setEndDate(end); 22716 this.updateView(); 22717 }, 22718 22719 keydown: function(e) { 22720 //hide on tab or enter 22721 if ((e.keyCode === 9) || (e.keyCode === 13)) { 22722 this.hide(); 22723 } 22724 22725 //hide on esc and prevent propagation 22726 if (e.keyCode === 27) { 22727 e.preventDefault(); 22728 e.stopPropagation(); 22729 22730 this.hide(); 22731 } 22732 }, 22733 22734 updateElement: function() { 22735 if (this.element.is('input') && this.autoUpdateInput) { 22736 var newValue = this.startDate.format(this.locale.format); 22737 if (!this.singleDatePicker) { 22738 newValue += this.locale.separator + this.endDate.format(this.locale.format); 22739 } 22740 if (newValue !== this.element.val()) { 22741 this.element.val(newValue).trigger('change'); 22742 } 22743 } 22744 }, 22745 22746 remove: function() { 22747 this.container.remove(); 22748 this.element.off('.daterangepicker'); 22749 this.element.removeData(); 22750 } 22751 22752 }; 22753 22754 $.fn.daterangepicker = function(options, callback) { 22755 var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options); 22756 this.each(function() { 22757 var el = $(this); 22758 if (el.data('daterangepicker')) 22759 el.data('daterangepicker').remove(); 22760 el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback)); 22761 }); 22762 return this; 22763 }; 22764 22765 return DateRangePicker; 22766 22767})); 22768 22769 22770/***/ }), 22771
vendor: 20,084 bytes, lines 22772-23379
22772/***/ "./node_modules/bootstrap-maxlength/src/bootstrap-maxlength.js": 22773/*!*********************************************************************!*\ 22774 !*** ./node_modules/bootstrap-maxlength/src/bootstrap-maxlength.js ***! 22775 \*********************************************************************/ 22776/***/ (() => { 22777 22778/* ========================================================== 22779 * bootstrap-maxlength.js v1.10.0 22780 * 22781 * Copyright (c) 2013-2021 Maurizio Napoleoni; 22782 * 22783 * Licensed under the terms of the MIT license. 22784 * See: https://github.com/mimo84/bootstrap-maxlength/blob/master/LICENSE 22785 * ========================================================== */ 22786/*global jQuery*/ 22787 22788(function ($) { 22789 'use strict'; 22790 /** 22791 * We need an event when the elements are destroyed 22792 * because if an input is removed, we have to remove the 22793 * maxlength object associated (if any). 22794 * From: 22795 * http://stackoverflow.com/questions/2200494/jquery-trigger-event-when-an-element-is-removed-from-the-dom 22796 */ 22797 if (!$.event.special.destroyed) { 22798 $.event.special.destroyed = { 22799 remove: function (o) { 22800 if (o.handler) { 22801 o.handler(); 22802 } 22803 } 22804 }; 22805 } 22806 22807 22808 $.fn.extend({ 22809 maxlength: function (options, callback) { 22810 var documentBody = $('body'), 22811 defaults = { 22812 showOnReady: false, // true to always show when indicator is ready 22813 alwaysShow: true, // if true the indicator it's always shown. 22814 threshold: 0, // Represents how many chars left are needed to show up the counter 22815 warningClass: 'small form-text text-muted', 22816 limitReachedClass: 'small form-text text-danger', 22817 limitExceededClass: '', 22818 separator: ' / ', 22819 preText: '', 22820 postText: '', 22821 showMaxLength: true, 22822 placement: 'bottom-right-inside', 22823 message: null, // an alternative way to provide the message text 22824 showCharsTyped: true, // show the number of characters typed and not the number of characters remaining 22825 validate: false, // if the browser doesn't support the maxlength attribute, attempt to type more than the indicated chars, will be prevented. 22826 utf8: false, // counts using bytesize rather than length. eg: '£' is counted as 2 characters. 22827 appendToParent: false, // append the indicator to the input field's parent instead of body 22828 twoCharLinebreak: true, // count linebreak as 2 characters to match IE/Chrome textarea validation. As well as DB storage. 22829 customMaxAttribute: null, // null = use maxlength attribute and browser functionality, string = use specified attribute instead. 22830 customMaxClass: 'overmax', // Class to add to the input field when the maxlength is exceeded. 22831 allowOverMax: false, // Form submit validation is handled on your own. when maxlength has been exceeded 'overmax' class added to element 22832 zIndex: 1099 22833 }; 22834 22835 if ($.isFunction(options) && !callback) { 22836 callback = options; 22837 options = {}; 22838 } 22839 options = $.extend(defaults, options); 22840 22841 22842 /** 22843 * Return the byte count of the specified character in UTF8 encoding. 22844 * Note: This won't cover UTF-8 characters that are 4 bytes long. 22845 * 22846 * @param input 22847 * @return {number} 22848 */ 22849 function utf8CharByteCount(character) { 22850 var c = character.charCodeAt(); 22851 // Not c then 0, else c < 128 then 1, else c < 2048 then 2, else 3 22852 return !c ? 0 : c < 128 ? 1 : c < 2048 ? 2 : 3; 22853 } 22854 22855 /** 22856 * Return the length of the specified input in UTF8 encoding. 22857 * 22858 * @param input 22859 * @return {number} 22860 */ 22861 function utf8Length(string) { 22862 return string.split("") 22863 .map(utf8CharByteCount) 22864 // Prevent reduce from throwing an error if the string is empty. 22865 .concat(0) 22866 .reduce(function (sum, val) { 22867 return sum + val; 22868 }); 22869 } 22870 22871 /** 22872 * Return the length of the specified input. 22873 * 22874 * @param input 22875 * @return {number} 22876 */ 22877 function inputLength(input) { 22878 var text = input.val(); 22879 22880 if (options.twoCharLinebreak) { 22881 // Count all line breaks as 2 characters 22882 text = text.replace(/\r(?!\n)|\n(?!\r)/g, '\r\n'); 22883 } else { 22884 // Remove all double-character (\r\n) linebreaks, so they're counted only once. 22885 text = text.replace(/(?:\r\n|\r|\n)/g, '\n'); 22886 } 22887 22888 var currentLength = 0; 22889 22890 if (options.utf8) { 22891 currentLength = utf8Length(text); 22892 } else { 22893 currentLength = text.length; 22894 } 22895 22896 // Remove "C:\fakepath\" from counter when using file input 22897 // Fix https://github.com/mimo84/bootstrap-maxlength/issues/146 22898 if (input.prop("type") === "file" && input.val() !== "") { 22899 currentLength -= 12; 22900 } 22901 22902 return currentLength; 22903 } 22904 22905 /** 22906 * Truncate the text of the specified input. 22907 * 22908 * @param input 22909 * @param limit 22910 */ 22911 function truncateChars(input, maxlength) { 22912 var text = input.val(); 22913 22914 if (options.twoCharLinebreak) { 22915 text = text.replace(/\r(?!\n)|\n(?!\r)/g, '\r\n'); 22916 22917 if (text[text.length - 1] === '\n') { 22918 maxlength -= text.length % 2; 22919 } 22920 } 22921 22922 if (options.utf8) { 22923 var indexedSize = text.split("").map(utf8CharByteCount); 22924 for ( 22925 var removedBytes = 0, 22926 bytesPastMax = utf8Length(text) - maxlength; removedBytes < bytesPastMax; removedBytes += indexedSize.pop() 22927 ); 22928 maxlength -= (maxlength - indexedSize.length); 22929 } 22930 22931 input.val(text.substr(0, maxlength)); 22932 } 22933 22934 /** 22935 * Return true if the indicator should be showing up. 22936 * 22937 * @param input 22938 * @param threshold 22939 * @param maxlength 22940 * @return {number} 22941 */ 22942 function charsLeftThreshold(input, threshold, maxlength) { 22943 var output = true; 22944 if (!options.alwaysShow && (maxlength - inputLength(input) > threshold)) { 22945 output = false; 22946 } 22947 return output; 22948 } 22949 22950 /** 22951 * Returns how many chars are left to complete the fill up of the form. 22952 * 22953 * @param input 22954 * @param maxlength 22955 * @return {number} 22956 */ 22957 function remainingChars(input, maxlength) { 22958 var length = maxlength - inputLength(input); 22959 return length; 22960 } 22961 22962 /** 22963 * When called displays the indicator. 22964 * 22965 * @param indicator 22966 */ 22967 function showRemaining(currentInput, indicator) { 22968 indicator.css({ 22969 display: 'block' 22970 }); 22971 currentInput.trigger('maxlength.shown'); 22972 } 22973 22974 /** 22975 * When called shows the indicator. 22976 * 22977 * @param indicator 22978 */ 22979 function hideRemaining(currentInput, indicator) { 22980 22981 if (options.alwaysShow) { 22982 return; 22983 } 22984 22985 indicator.css({ 22986 display: 'none' 22987 }); 22988 currentInput.trigger('maxlength.hidden'); 22989 } 22990 22991 /** 22992 * This function updates the value in the indicator 22993 * 22994 * @param maxLengthThisInput 22995 * @param typedChars 22996 * @return String 22997 */ 22998 function updateMaxLengthHTML(currentInputText, maxLengthThisInput, typedChars) { 22999 var output = ''; 23000 if (options.message) { 23001 if (typeof options.message === 'function') { 23002 output = options.message(currentInputText, maxLengthThisInput); 23003 } else { 23004 output = options.message.replace('%charsTyped%', typedChars) 23005 .replace('%charsRemaining%', maxLengthThisInput - typedChars) 23006 .replace('%charsTotal%', maxLengthThisInput); 23007 } 23008 } else { 23009 if (options.preText) { 23010 output += options.preText; 23011 } 23012 if (!options.showCharsTyped) { 23013 output += maxLengthThisInput - typedChars; 23014 } else { 23015 output += typedChars; 23016 } 23017 if (options.showMaxLength) { 23018 output += options.separator + maxLengthThisInput; 23019 } 23020 if (options.postText) { 23021 output += options.postText; 23022 } 23023 } 23024 return output; 23025 } 23026 23027 /** 23028 * This function updates the value of the counter in the indicator. 23029 * Wants as parameters: the number of remaining chars, the element currently managed, 23030 * the maxLength for the current input and the indicator generated for it. 23031 * 23032 * @param remaining 23033 * @param currentInput 23034 * @param maxLengthCurrentInput 23035 * @param maxLengthIndicator 23036 */ 23037 function manageRemainingVisibility(remaining, currentInput, maxLengthCurrentInput, maxLengthIndicator) { 23038 if (maxLengthIndicator) { 23039 maxLengthIndicator.html(updateMaxLengthHTML(currentInput.val(), maxLengthCurrentInput, (maxLengthCurrentInput - remaining))); 23040 23041 if (remaining > 0) { 23042 if (charsLeftThreshold(currentInput, options.threshold, maxLengthCurrentInput)) { 23043 showRemaining(currentInput, maxLengthIndicator.removeClass(options.limitReachedClass + ' ' + options.limitExceededClass).addClass(options.warningClass)); 23044 } else { 23045 hideRemaining(currentInput, maxLengthIndicator); 23046 } 23047 } else { 23048 if (!options.limitExceededClass) { 23049 showRemaining(currentInput, maxLengthIndicator.removeClass(options.warningClass).addClass(options.limitReachedClass)); 23050 } else { 23051 if (remaining === 0) { 23052 showRemaining(currentInput, maxLengthIndicator.removeClass(options.warningClass + ' ' + options.limitExceededClass).addClass(options.limitReachedClass)); 23053 } else { 23054 showRemaining(currentInput, maxLengthIndicator.removeClass(options.warningClass + ' ' + options.limitReachedClass).addClass(options.limitExceededClass)); 23055 } 23056 } 23057 } 23058 } 23059 23060 if (options.customMaxAttribute) { 23061 // class to use for form validation on custom maxlength attribute 23062 if (remaining < 0) { 23063 currentInput.addClass(options.customMaxClass); 23064 } else { 23065 currentInput.removeClass(options.customMaxClass); 23066 } 23067 } 23068 } 23069 23070 /** 23071 * This function returns an object containing all the 23072 * informations about the position of the current input 23073 * 23074 * @param currentInput 23075 * @return object {bottom height left right top width} 23076 * 23077 */ 23078 function getPosition(currentInput) { 23079 var el = currentInput[0]; 23080 return $.extend({}, (typeof el.getBoundingClientRect === 'function') ? el.getBoundingClientRect() : { 23081 width: el.offsetWidth, 23082 height: el.offsetHeight 23083 }, currentInput.offset()); 23084 } 23085 23086 /** 23087 * This function places the maxLengthIndicator based on placement config object. 23088 * 23089 * @param {object} placement 23090 * @param {$} maxLengthIndicator 23091 * @return null 23092 * 23093 */ 23094 function placeWithCSS(placement, maxLengthIndicator) { 23095 if (!placement || !maxLengthIndicator) { 23096 return; 23097 } 23098 23099 var POSITION_KEYS = [ 23100 'top', 23101 'bottom', 23102 'left', 23103 'right', 23104 'position' 23105 ]; 23106 23107 var cssPos = {}; 23108 23109 // filter css properties to position 23110 $.each(POSITION_KEYS, function (i, key) { 23111 var val = options.placement[key]; 23112 if (typeof val !== 'undefined') { 23113 cssPos[key] = val; 23114 } 23115 }); 23116 23117 maxLengthIndicator.css(cssPos); 23118 23119 return; 23120 } 23121 23122 23123 /** 23124 * This function places the maxLengthIndicator at the 23125 * top / bottom / left / right of the currentInput 23126 * 23127 * @param currentInput 23128 * @param maxLengthIndicator 23129 * @return null 23130 * 23131 */ 23132 function place(currentInput, maxLengthIndicator) { 23133 var pos = getPosition(currentInput); 23134 23135 // Supports custom placement handler 23136 if ($.type(options.placement) === 'function') { 23137 options.placement(currentInput, maxLengthIndicator, pos); 23138 return; 23139 } 23140 23141 // Supports custom placement via css positional properties 23142 if ($.isPlainObject(options.placement)) { 23143 placeWithCSS(options.placement, maxLengthIndicator); 23144 return; 23145 } 23146 23147 var inputOuter = currentInput.outerWidth(), 23148 outerWidth = maxLengthIndicator.outerWidth(), 23149 actualWidth = maxLengthIndicator.width(), 23150 actualHeight = maxLengthIndicator.height(); 23151 23152 // get the right position if the indicator is appended to the input's parent 23153 if (options.appendToParent) { 23154 pos.top -= currentInput.parent().offset().top; 23155 pos.left -= currentInput.parent().offset().left; 23156 } 23157 23158 switch (options.placement) { 23159 case 'bottom': 23160 maxLengthIndicator.css({ 23161 top: pos.top + pos.height, 23162 left: pos.left + pos.width / 2 - actualWidth / 2 23163 }); 23164 break; 23165 case 'top': 23166 maxLengthIndicator.css({ 23167 top: pos.top - actualHeight, 23168 left: pos.left + pos.width / 2 - actualWidth / 2 23169 }); 23170 break; 23171 case 'left': 23172 maxLengthIndicator.css({ 23173 top: pos.top + pos.height / 2 - actualHeight / 2, 23174 left: pos.left - actualWidth 23175 }); 23176 break; 23177 case 'right': 23178 maxLengthIndicator.css({ 23179 top: pos.top + pos.height / 2 - actualHeight / 2, 23180 left: pos.left + pos.width 23181 }); 23182 break; 23183 case 'bottom-right': 23184 maxLengthIndicator.css({ 23185 top: pos.top + pos.height, 23186 left: pos.left + pos.width 23187 }); 23188 break; 23189 case 'top-right': 23190 maxLengthIndicator.css({ 23191 top: pos.top - actualHeight, 23192 left: pos.left + inputOuter 23193 }); 23194 break; 23195 case 'top-left': 23196 maxLengthIndicator.css({ 23197 top: pos.top - actualHeight, 23198 left: pos.left - outerWidth 23199 }); 23200 break; 23201 case 'bottom-left': 23202 maxLengthIndicator.css({ 23203 top: pos.top + currentInput.outerHeight(), 23204 left: pos.left - outerWidth 23205 }); 23206 break; 23207 case 'centered-right': 23208 maxLengthIndicator.css({ 23209 top: pos.top + (actualHeight / 2), 23210 left: pos.left + inputOuter - outerWidth - 3 23211 }); 23212 break; 23213 23214 // Some more options for placements 23215 case 'bottom-right-inside': 23216 maxLengthIndicator.css({ 23217 top: pos.top + pos.height, 23218 left: pos.left + pos.width - outerWidth 23219 }); 23220 break; 23221 case 'top-right-inside': 23222 maxLengthIndicator.css({ 23223 top: pos.top - actualHeight, 23224 left: pos.left + inputOuter - outerWidth 23225 }); 23226 break; 23227 case 'top-left-inside': 23228 maxLengthIndicator.css({ 23229 top: pos.top - actualHeight, 23230 left: pos.left 23231 }); 23232 break; 23233 case 'bottom-left-inside': 23234 maxLengthIndicator.css({ 23235 top: pos.top + currentInput.outerHeight(), 23236 left: pos.left 23237 }); 23238 break; 23239 } 23240 } 23241 23242 /** 23243 * This function returns true if the indicator position needs to 23244 * be recalculated when the currentInput changes 23245 * 23246 * @return {boolean} 23247 * 23248 */ 23249 function isPlacementMutable() { 23250 return options.placement === 'bottom-right-inside' || options.placement === 'top-right-inside' || typeof options.placement === 'function' || (options.message && typeof options.message === 'function'); 23251 } 23252 23253 /** 23254 * This function retrieves the maximum length of currentInput 23255 * 23256 * @param currentInput 23257 * @return {number} 23258 * 23259 */ 23260 function getMaxLength(currentInput) { 23261 var max = currentInput.attr('maxlength') || options.customMaxAttribute; 23262 23263 if (options.customMaxAttribute && !options.allowOverMax) { 23264 var custom = currentInput.attr(options.customMaxAttribute); 23265 if (!max || custom < max) { 23266 max = custom; 23267 } 23268 } 23269 23270 if (!max) { 23271 max = currentInput.attr('size'); 23272 } 23273 return max; 23274 } 23275 23276 return this.each(function () { 23277 23278 var currentInput = $(this), 23279 maxLengthCurrentInput, 23280 maxLengthIndicator; 23281 23282 $(window).resize(function () { 23283 if (maxLengthIndicator) { 23284 place(currentInput, maxLengthIndicator); 23285 } 23286 }); 23287 23288 function firstInit() { 23289 var maxlengthContent = updateMaxLengthHTML(currentInput.val(), maxLengthCurrentInput, '0'); 23290 maxLengthCurrentInput = getMaxLength(currentInput); 23291 23292 if (!maxLengthIndicator) { 23293 maxLengthIndicator = $('<span class="bootstrap-maxlength"></span>').css({ 23294 display: 'none', 23295 position: 'absolute', 23296 whiteSpace: 'nowrap', 23297 zIndex: options.zIndex 23298 }).html(maxlengthContent); 23299 } 23300 23301 // We need to detect resizes if we are dealing with a textarea: 23302 if (currentInput.is('textarea')) { 23303 currentInput.data('maxlenghtsizex', currentInput.outerWidth()); 23304 currentInput.data('maxlenghtsizey', currentInput.outerHeight()); 23305 23306 currentInput.mouseup(function () { 23307 if (currentInput.outerWidth() !== currentInput.data('maxlenghtsizex') || currentInput.outerHeight() !== currentInput.data('maxlenghtsizey')) { 23308 place(currentInput, maxLengthIndicator); 23309 } 23310 23311 currentInput.data('maxlenghtsizex', currentInput.outerWidth()); 23312 currentInput.data('maxlenghtsizey', currentInput.outerHeight()); 23313 }); 23314 } 23315 23316 if (options.appendToParent) { 23317 currentInput.parent().append(maxLengthIndicator); 23318 currentInput.parent().css('position', 'relative'); 23319 } else { 23320 documentBody.append(maxLengthIndicator); 23321 } 23322 23323 var remaining = remainingChars(currentInput, getMaxLength(currentInput)); 23324 manageRemainingVisibility(remaining, currentInput, maxLengthCurrentInput, maxLengthIndicator); 23325 place(currentInput, maxLengthIndicator); 23326 } 23327 23328 if (options.showOnReady) { 23329 currentInput.ready(function () { 23330 firstInit(); 23331 }); 23332 } else { 23333 currentInput.focus(function () { 23334 firstInit(); 23335 }); 23336 } 23337 23338 currentInput.on('maxlength.reposition', function () { 23339 place(currentInput, maxLengthIndicator); 23340 }); 23341 23342 23343 currentInput.on('destroyed', function () { 23344 if (maxLengthIndicator) { 23345 maxLengthIndicator.remove(); 23346 } 23347 }); 23348 23349 currentInput.on('blur', function () { 23350 if (maxLengthIndicator && !options.showOnReady) { 23351 maxLengthIndicator.remove(); 23352 } 23353 }); 23354 23355 currentInput.on('input', function () { 23356 var maxlength = getMaxLength(currentInput), 23357 remaining = remainingChars(currentInput, maxlength), 23358 output = true; 23359 23360 if (options.validate && remaining < 0) { 23361 truncateChars(currentInput, maxlength); 23362 output = false; 23363 } else { 23364 manageRemainingVisibility(remaining, currentInput, maxLengthCurrentInput, maxLengthIndicator); 23365 } 23366 23367 // if (isPlacementMutable()) { 23368 // place(currentInput, maxLengthIndicator); 23369 // } 23370 23371 return output; 23372 }); 23373 }); 23374 } 23375 }); 23376}(jQuery)); 23377 23378/***/ }), 23379
vendor: 6,242 bytes, lines 23380-23389
23380/***/ "./node_modules/bootstrap-multiselectsplitter/bootstrap-multiselectsplitter.min.js": 23381/*!*****************************************************************************************!*\ 23382 !*** ./node_modules/bootstrap-multiselectsplitter/bootstrap-multiselectsplitter.min.js ***! 23383 \*****************************************************************************************/ 23384/***/ (() => { 23385 23386+function(a){"use strict";function c(c){return this.each(function(){var d=a(this),e=d.data("multiselectsplitter"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("multiselectsplitter",e=new b(this,f)),"string"==typeof c&&e[c]())})}var b=function(a,b){this.init("multiselectsplitter",a,b)};b.DEFAULTS={selectSize:null,maxSelectSize:null,clearOnFirstChange:!1,onlySameGroup:!1,groupCounter:!1,maximumSelected:null,afterInitialize:null,maximumAlert:function(a){alert("Only "+a+" values can be selected")},createFirstSelect:function(a,b){return"<option>"+a+"</option>"},createSecondSelect:function(a,b){return"<option>"+a+"</option>"},template:'<div class="row" data-multiselectsplitter-wrapper-selector><div class="col-xs-6 col-sm-6"><select class="form-control" data-multiselectsplitter-firstselect-selector></select></div> <!-- Add the extra clearfix for only the required viewport --><div class="col-xs-6 col-sm-6"><select class="form-control" data-multiselectsplitter-secondselect-selector></select></div></div>'},b.prototype.init=function(c,d,e){var f=this;f.type=c,f.last$ElementSelected=[],f.initialized=!1,f.$element=a(d),f.$element.hide(),f.options=a.extend({},b.DEFAULTS,e),f.$element.after(f.options.template),f.$wrapper=f.$element.next("div[data-multiselectsplitter-wrapper-selector]"),f.$firstSelect=a("select[data-multiselectsplitter-firstselect-selector]",f.$wrapper),f.$secondSelect=a("select[data-multiselectsplitter-secondselect-selector]",f.$wrapper);var g=0,h=0;if(0!=f.$element.find("optgroup").length){f.$element.find("optgroup").each(function(){var b=a(this).attr("label"),c=a(f.options.createFirstSelect(b,f.$element));c.val(b),c.attr("data-current-label",c.text()),f.$firstSelect.append(c);var d=a(this).find("option").length;d>h&&(h=d),g++});var i=Math.max(g,h);i=Math.min(i,10),f.options.selectSize?i=f.options.selectSize:f.options.maxSelectSize&&(i=Math.min(i,f.options.maxSelectSize)),f.$firstSelect.attr("size",i),f.$secondSelect.attr("size",i),f.$element.attr("multiple")&&f.$secondSelect.attr("multiple","multiple"),f.$element.is(":disabled")&&f.disable(),f.$firstSelect.on("change",a.proxy(f.updateParentCategory,f)),f.$secondSelect.on("click change",a.proxy(f.updateChildCategory,f)),f.update=function(){if(!(f.$element.find("option").length<1)){var b,a=f.$element.find("option:selected:first");b=a.length?a.parent().attr("label"):f.$element.find("option:first").parent().attr("label"),f.$firstSelect.find('option[value="'+b+'"]').prop("selected",!0),f.$firstSelect.trigger("change")}},f.update(),f.initialized=!0,f.options.afterInitialize&&f.options.afterInitialize(f.$firstSelect,f.$secondSelect)}},b.prototype.disable=function(){this.$secondSelect.prop("disabled",!0),this.$firstSelect.prop("disabled",!0)},b.prototype.enable=function(){this.$secondSelect.prop("disabled",!1),this.$firstSelect.prop("disabled",!1)},b.prototype.createSecondSelect=function(){var b=this;b.$secondSelect.empty(),a.each(b.$element.find('optgroup[label="'+b.$firstSelect.val()+'"] option'),function(c,d){var e=a(this).val(),f=a(this).text(),g=a(b.options.createSecondSelect(f,b.$firstSelect));g.val(e),a.each(b.$element.find("option:selected"),function(b,c){a(c).val()==e&&g.prop("selected",!0)}),b.$secondSelect.append(g)})},b.prototype.updateParentCategory=function(){var a=this;a.last$ElementSelected=a.$element.find("option:selected"),a.options.clearOnFirstChange&&a.initialized&&a.$element.find("option:selected").prop("selected",!1),a.createSecondSelect(),a.checkSelected(),a.updateCounter()},b.prototype.updateCounter=function(){var b=this;b.$element.attr("multiple")&&b.options.groupCounter&&a.each(b.$firstSelect.find("option"),function(c,d){var e=a(d).val(),f=a(d).data("currentLabel"),g=b.$element.find('optgroup[label="'+e+'"] option:selected').length;g>0&&(f+=" ("+g+")"),a(d).html(f)})},b.prototype.checkSelected=function(){var b=this;if(b.$element.attr("multiple")&&b.options.maximumSelected){var c=0;if(c="function"==typeof b.options.maximumSelected?b.options.maximumSelected(b.$firstSelect,b.$secondSelect):b.options.maximumSelected,!(c<1)){var d=b.$element.find("option:selected");if(d.length>c){b.$firstSelect.find("option:selected").prop("selected",!1),b.$secondSelect.find("option:selected").prop("selected",!1),b.initialized?(b.$element.find("option:selected").prop("selected",!1),b.last$ElementSelected.prop("selected",!0)):a.each(b.$element.find("option:selected"),function(b,d){b>c-1&&a(d).prop("selected",!1)});var e=b.last$ElementSelected.first().parent().attr("label");b.$firstSelect.find('option[value="'+e+'"]').prop("selected",!0),b.createSecondSelect(),b.options.maximumAlert(c)}}}},b.prototype.basicUpdateChildCategory=function(b,c){var d=this;d.last$ElementSelected=d.$element.find("option:selected");var e=d.$secondSelect.val();a.isArray(e)||(e=[e]);var f=d.$firstSelect.val(),g=!1;d.$element.attr("multiple")?d.options.onlySameGroup?a.each(d.$element.find("option:selected"),function(b,c){if(a(c).parent().attr("label")!=f)return g=!0,!1}):c||(g=!0):g=!0,g?d.$element.find("option:selected").prop("selected",!1):a.each(d.$element.find("option:selected"),function(b,c){f==a(c).parent().attr("label")&&a.inArray(a(c).val(),e)==-1&&a(c).prop("selected",!1)}),a.each(e,function(a,b){d.$element.find('option[value="'+b+'"]').prop("selected",!0)}),d.checkSelected(),d.updateCounter(),d.$element.trigger("change")},b.prototype.updateChildCategory=function(b){"change"==b.type?this.timeOut=setTimeout(a.proxy(function(){this.basicUpdateChildCategory(b,b.ctrlKey)},this),10):"click"==b.type&&(clearTimeout(this.timeOut),this.basicUpdateChildCategory(b,b.ctrlKey))},b.prototype.destroy=function(){this.$wrapper.remove(),this.$element.removeData(this.type),this.$element.show()},a.fn.multiselectsplitter=c,a.fn.multiselectsplitter.Constructor=b,a.fn.multiselectsplitter.VERSION="1.0.1"}(jQuery); 23387 23388/***/ }), 23389
vendor: 137,404 bytes, lines 23390-27864
23390/***/ "./node_modules/bootstrap/dist/js/bootstrap.esm.js": 23391/*!*********************************************************!*\ 23392 !*** ./node_modules/bootstrap/dist/js/bootstrap.esm.js ***! 23393 \*********************************************************/ 23394/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 23395 23396"use strict"; 23397__webpack_require__.r(__webpack_exports__); 23398/* harmony export */ __webpack_require__.d(__webpack_exports__, { 23399/* harmony export */ "Alert": () => (/* binding */ Alert), 23400/* harmony export */ "Button": () => (/* binding */ Button), 23401/* harmony export */ "Carousel": () => (/* binding */ Carousel), 23402/* harmony export */ "Collapse": () => (/* binding */ Collapse), 23403/* harmony export */ "Dropdown": () => (/* binding */ Dropdown), 23404/* harmony export */ "Modal": () => (/* binding */ Modal), 23405/* harmony export */ "Offcanvas": () => (/* binding */ Offcanvas), 23406/* harmony export */ "Popover": () => (/* binding */ Popover), 23407/* harmony export */ "ScrollSpy": () => (/* binding */ ScrollSpy), 23408/* harmony export */ "Tab": () => (/* binding */ Tab), 23409/* harmony export */ "Toast": () => (/* binding */ Toast), 23410/* harmony export */ "Tooltip": () => (/* binding */ Tooltip) 23411/* harmony export */ }); 23412/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @popperjs/core */ "./node_modules/@popperjs/core/lib/index.js"); 23413/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @popperjs/core */ "./node_modules/@popperjs/core/lib/popper.js"); 23414/*! 23415 * Bootstrap v5.3.3 (https://getbootstrap.com/) 23416 * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 23417 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 23418 */ 23419 23420 23421/** 23422 * -------------------------------------------------------------------------- 23423 * Bootstrap dom/data.js 23424 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 23425 * -------------------------------------------------------------------------- 23426 */ 23427 23428/** 23429 * Constants 23430 */ 23431 23432const elementMap = new Map(); 23433const Data = { 23434 set(element, key, instance) { 23435 if (!elementMap.has(element)) { 23436 elementMap.set(element, new Map()); 23437 } 23438 const instanceMap = elementMap.get(element); 23439 23440 // make it clear we only want one instance per element 23441 // can be removed later when multiple key/instances are fine to be used 23442 if (!instanceMap.has(key) && instanceMap.size !== 0) { 23443 // eslint-disable-next-line no-console 23444 console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); 23445 return; 23446 } 23447 instanceMap.set(key, instance); 23448 }, 23449 get(element, key) { 23450 if (elementMap.has(element)) { 23451 return elementMap.get(element).get(key) || null; 23452 } 23453 return null; 23454 }, 23455 remove(element, key) { 23456 if (!elementMap.has(element)) { 23457 return; 23458 } 23459 const instanceMap = elementMap.get(element); 23460 instanceMap.delete(key); 23461 23462 // free up element references if there are no instances left for an element 23463 if (instanceMap.size === 0) { 23464 elementMap.delete(element); 23465 } 23466 } 23467}; 23468 23469/** 23470 * -------------------------------------------------------------------------- 23471 * Bootstrap util/index.js 23472 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 23473 * -------------------------------------------------------------------------- 23474 */ 23475 23476const MAX_UID = 1000000; 23477const MILLISECONDS_MULTIPLIER = 1000; 23478const TRANSITION_END = 'transitionend'; 23479 23480/** 23481 * Properly escape IDs selectors to handle weird IDs 23482 * @param {string} selector 23483 * @returns {string} 23484 */ 23485const parseSelector = selector => { 23486 if (selector && window.CSS && window.CSS.escape) { 23487 // document.querySelector needs escaping to handle IDs (html5+) containing for instance / 23488 selector = selector.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`); 23489 } 23490 return selector; 23491}; 23492 23493// Shout-out Angus Croll (https://goo.gl/pxwQGp) 23494const toType = object => { 23495 if (object === null || object === undefined) { 23496 return `${object}`; 23497 } 23498 return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); 23499}; 23500 23501/** 23502 * Public Util API 23503 */ 23504 23505const getUID = prefix => { 23506 do { 23507 prefix += Math.floor(Math.random() * MAX_UID); 23508 } while (document.getElementById(prefix)); 23509 return prefix; 23510}; 23511const getTransitionDurationFromElement = element => { 23512 if (!element) { 23513 return 0; 23514 } 23515 23516 // Get transition-duration of the element 23517 let { 23518 transitionDuration, 23519 transitionDelay 23520 } = window.getComputedStyle(element); 23521 const floatTransitionDuration = Number.parseFloat(transitionDuration); 23522 const floatTransitionDelay = Number.parseFloat(transitionDelay); 23523 23524 // Return 0 if element or transition duration is not found 23525 if (!floatTransitionDuration && !floatTransitionDelay) { 23526 return 0; 23527 } 23528 23529 // If multiple durations are defined, take the first 23530 transitionDuration = transitionDuration.split(',')[0]; 23531 transitionDelay = transitionDelay.split(',')[0]; 23532 return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; 23533}; 23534const triggerTransitionEnd = element => { 23535 element.dispatchEvent(new Event(TRANSITION_END)); 23536}; 23537const isElement = object => { 23538 if (!object || typeof object !== 'object') { 23539 return false; 23540 } 23541 if (typeof object.jquery !== 'undefined') { 23542 object = object[0]; 23543 } 23544 return typeof object.nodeType !== 'undefined'; 23545}; 23546const getElement = object => { 23547 // it's a jQuery object or a node element 23548 if (isElement(object)) { 23549 return object.jquery ? object[0] : object; 23550 } 23551 if (typeof object === 'string' && object.length > 0) { 23552 return document.querySelector(parseSelector(object)); 23553 } 23554 return null; 23555}; 23556const isVisible = element => { 23557 if (!isElement(element) || element.getClientRects().length === 0) { 23558 return false; 23559 } 23560 const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; 23561 // Handle `details` element as its content may falsie appear visible when it is closed 23562 const closedDetails = element.closest('details:not([open])'); 23563 if (!closedDetails) { 23564 return elementIsVisible; 23565 } 23566 if (closedDetails !== element) { 23567 const summary = element.closest('summary'); 23568 if (summary && summary.parentNode !== closedDetails) { 23569 return false; 23570 } 23571 if (summary === null) { 23572 return false; 23573 } 23574 } 23575 return elementIsVisible; 23576}; 23577const isDisabled = element => { 23578 if (!element || element.nodeType !== Node.ELEMENT_NODE) { 23579 return true; 23580 } 23581 if (element.classList.contains('disabled')) { 23582 return true; 23583 } 23584 if (typeof element.disabled !== 'undefined') { 23585 return element.disabled; 23586 } 23587 return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'; 23588}; 23589const findShadowRoot = element => { 23590 if (!document.documentElement.attachShadow) { 23591 return null; 23592 } 23593 23594 // Can find the shadow root otherwise it'll return the document 23595 if (typeof element.getRootNode === 'function') { 23596 const root = element.getRootNode(); 23597 return root instanceof ShadowRoot ? root : null; 23598 } 23599 if (element instanceof ShadowRoot) { 23600 return element; 23601 } 23602 23603 // when we don't find a shadow root 23604 if (!element.parentNode) { 23605 return null; 23606 } 23607 return findShadowRoot(element.parentNode); 23608}; 23609const noop = () => {}; 23610 23611/** 23612 * Trick to restart an element's animation 23613 * 23614 * @param {HTMLElement} element 23615 * @return void 23616 * 23617 * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation 23618 */ 23619const reflow = element => { 23620 element.offsetHeight; // eslint-disable-line no-unused-expressions 23621}; 23622const getjQuery = () => { 23623 if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { 23624 return window.jQuery; 23625 } 23626 return null; 23627}; 23628const DOMContentLoadedCallbacks = []; 23629const onDOMContentLoaded = callback => { 23630 if (document.readyState === 'loading') { 23631 // add listener on the first call when the document is in loading state 23632 if (!DOMContentLoadedCallbacks.length) { 23633 document.addEventListener('DOMContentLoaded', () => { 23634 for (const callback of DOMContentLoadedCallbacks) { 23635 callback(); 23636 } 23637 }); 23638 } 23639 DOMContentLoadedCallbacks.push(callback); 23640 } else { 23641 callback(); 23642 } 23643}; 23644const isRTL = () => document.documentElement.dir === 'rtl'; 23645const defineJQueryPlugin = plugin => { 23646 onDOMContentLoaded(() => { 23647 const $ = getjQuery(); 23648 /* istanbul ignore if */ 23649 if ($) { 23650 const name = plugin.NAME; 23651 const JQUERY_NO_CONFLICT = $.fn[name]; 23652 $.fn[name] = plugin.jQueryInterface; 23653 $.fn[name].Constructor = plugin; 23654 $.fn[name].noConflict = () => { 23655 $.fn[name] = JQUERY_NO_CONFLICT; 23656 return plugin.jQueryInterface; 23657 }; 23658 } 23659 }); 23660}; 23661const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => { 23662 return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue; 23663}; 23664const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => { 23665 if (!waitForTransition) { 23666 execute(callback); 23667 return; 23668 } 23669 const durationPadding = 5; 23670 const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding; 23671 let called = false; 23672 const handler = ({ 23673 target 23674 }) => { 23675 if (target !== transitionElement) { 23676 return; 23677 } 23678 called = true; 23679 transitionElement.removeEventListener(TRANSITION_END, handler); 23680 execute(callback); 23681 }; 23682 transitionElement.addEventListener(TRANSITION_END, handler); 23683 setTimeout(() => { 23684 if (!called) { 23685 triggerTransitionEnd(transitionElement); 23686 } 23687 }, emulatedDuration); 23688}; 23689 23690/** 23691 * Return the previous/next element of a list. 23692 * 23693 * @param {array} list The list of elements 23694 * @param activeElement The active element 23695 * @param shouldGetNext Choose to get next or previous element 23696 * @param isCycleAllowed 23697 * @return {Element|elem} The proper element 23698 */ 23699const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => { 23700 const listLength = list.length; 23701 let index = list.indexOf(activeElement); 23702 23703 // if the element does not exist in the list return an element 23704 // depending on the direction and if cycle is allowed 23705 if (index === -1) { 23706 return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; 23707 } 23708 index += shouldGetNext ? 1 : -1; 23709 if (isCycleAllowed) { 23710 index = (index + listLength) % listLength; 23711 } 23712 return list[Math.max(0, Math.min(index, listLength - 1))]; 23713}; 23714 23715/** 23716 * -------------------------------------------------------------------------- 23717 * Bootstrap dom/event-handler.js 23718 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 23719 * -------------------------------------------------------------------------- 23720 */ 23721 23722 23723/** 23724 * Constants 23725 */ 23726 23727const namespaceRegex = /[^.]*(?=\..*)\.|.*/; 23728const stripNameRegex = /\..*/; 23729const stripUidRegex = /::\d+$/; 23730const eventRegistry = {}; // Events storage 23731let uidEvent = 1; 23732const customEvents = { 23733 mouseenter: 'mouseover', 23734 mouseleave: 'mouseout' 23735}; 23736const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); 23737 23738/** 23739 * Private methods 23740 */ 23741 23742function makeEventUid(element, uid) { 23743 return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; 23744} 23745function getElementEvents(element) { 23746 const uid = makeEventUid(element); 23747 element.uidEvent = uid; 23748 eventRegistry[uid] = eventRegistry[uid] || {}; 23749 return eventRegistry[uid]; 23750} 23751function bootstrapHandler(element, fn) { 23752 return function handler(event) { 23753 hydrateObj(event, { 23754 delegateTarget: element 23755 }); 23756 if (handler.oneOff) { 23757 EventHandler.off(element, event.type, fn); 23758 } 23759 return fn.apply(element, [event]); 23760 }; 23761} 23762function bootstrapDelegationHandler(element, selector, fn) { 23763 return function handler(event) { 23764 const domElements = element.querySelectorAll(selector); 23765 for (let { 23766 target 23767 } = event; target && target !== this; target = target.parentNode) { 23768 for (const domElement of domElements) { 23769 if (domElement !== target) { 23770 continue; 23771 } 23772 hydrateObj(event, { 23773 delegateTarget: target 23774 }); 23775 if (handler.oneOff) { 23776 EventHandler.off(element, event.type, selector, fn); 23777 } 23778 return fn.apply(target, [event]); 23779 } 23780 } 23781 }; 23782} 23783function findHandler(events, callable, delegationSelector = null) { 23784 return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector); 23785} 23786function normalizeParameters(originalTypeEvent, handler, delegationFunction) { 23787 const isDelegated = typeof handler === 'string'; 23788 // TODO: tooltip passes `false` instead of selector, so we need to check 23789 const callable = isDelegated ? delegationFunction : handler || delegationFunction; 23790 let typeEvent = getTypeEvent(originalTypeEvent); 23791 if (!nativeEvents.has(typeEvent)) { 23792 typeEvent = originalTypeEvent; 23793 } 23794 return [isDelegated, callable, typeEvent]; 23795} 23796function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) { 23797 if (typeof originalTypeEvent !== 'string' || !element) { 23798 return; 23799 } 23800 let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); 23801 23802 // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position 23803 // this prevents the handler from being dispatched the same way as mouseover or mouseout does 23804 if (originalTypeEvent in customEvents) { 23805 const wrapFunction = fn => { 23806 return function (event) { 23807 if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) { 23808 return fn.call(this, event); 23809 } 23810 }; 23811 }; 23812 callable = wrapFunction(callable); 23813 } 23814 const events = getElementEvents(element); 23815 const handlers = events[typeEvent] || (events[typeEvent] = {}); 23816 const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); 23817 if (previousFunction) { 23818 previousFunction.oneOff = previousFunction.oneOff && oneOff; 23819 return; 23820 } 23821 const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, '')); 23822 const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable); 23823 fn.delegationSelector = isDelegated ? handler : null; 23824 fn.callable = callable; 23825 fn.oneOff = oneOff; 23826 fn.uidEvent = uid; 23827 handlers[uid] = fn; 23828 element.addEventListener(typeEvent, fn, isDelegated); 23829} 23830function removeHandler(element, events, typeEvent, handler, delegationSelector) { 23831 const fn = findHandler(events[typeEvent], handler, delegationSelector); 23832 if (!fn) { 23833 return; 23834 } 23835 element.removeEventListener(typeEvent, fn, Boolean(delegationSelector)); 23836 delete events[typeEvent][fn.uidEvent]; 23837} 23838function removeNamespacedHandlers(element, events, typeEvent, namespace) { 23839 const storeElementEvent = events[typeEvent] || {}; 23840 for (const [handlerKey, event] of Object.entries(storeElementEvent)) { 23841 if (handlerKey.includes(namespace)) { 23842 removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); 23843 } 23844 } 23845} 23846function getTypeEvent(event) { 23847 // allow to get the native events from namespaced events ('click.bs.button' --> 'click') 23848 event = event.replace(stripNameRegex, ''); 23849 return customEvents[event] || event; 23850} 23851const EventHandler = { 23852 on(element, event, handler, delegationFunction) { 23853 addHandler(element, event, handler, delegationFunction, false); 23854 }, 23855 one(element, event, handler, delegationFunction) { 23856 addHandler(element, event, handler, delegationFunction, true); 23857 }, 23858 off(element, originalTypeEvent, handler, delegationFunction) { 23859 if (typeof originalTypeEvent !== 'string' || !element) { 23860 return; 23861 } 23862 const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); 23863 const inNamespace = typeEvent !== originalTypeEvent; 23864 const events = getElementEvents(element); 23865 const storeElementEvent = events[typeEvent] || {}; 23866 const isNamespace = originalTypeEvent.startsWith('.'); 23867 if (typeof callable !== 'undefined') { 23868 // Simplest case: handler is passed, remove that listener ONLY. 23869 if (!Object.keys(storeElementEvent).length) { 23870 return; 23871 } 23872 removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null); 23873 return; 23874 } 23875 if (isNamespace) { 23876 for (const elementEvent of Object.keys(events)) { 23877 removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); 23878 } 23879 } 23880 for (const [keyHandlers, event] of Object.entries(storeElementEvent)) { 23881 const handlerKey = keyHandlers.replace(stripUidRegex, ''); 23882 if (!inNamespace || originalTypeEvent.includes(handlerKey)) { 23883 removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); 23884 } 23885 } 23886 }, 23887 trigger(element, event, args) { 23888 if (typeof event !== 'string' || !element) { 23889 return null; 23890 } 23891 const $ = getjQuery(); 23892 const typeEvent = getTypeEvent(event); 23893 const inNamespace = event !== typeEvent; 23894 let jQueryEvent = null; 23895 let bubbles = true; 23896 let nativeDispatch = true; 23897 let defaultPrevented = false; 23898 if (inNamespace && $) { 23899 jQueryEvent = $.Event(event, args); 23900 $(element).trigger(jQueryEvent); 23901 bubbles = !jQueryEvent.isPropagationStopped(); 23902 nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); 23903 defaultPrevented = jQueryEvent.isDefaultPrevented(); 23904 } 23905 const evt = hydrateObj(new Event(event, { 23906 bubbles, 23907 cancelable: true 23908 }), args); 23909 if (defaultPrevented) { 23910 evt.preventDefault(); 23911 } 23912 if (nativeDispatch) { 23913 element.dispatchEvent(evt); 23914 } 23915 if (evt.defaultPrevented && jQueryEvent) { 23916 jQueryEvent.preventDefault(); 23917 } 23918 return evt; 23919 } 23920}; 23921function hydrateObj(obj, meta = {}) { 23922 for (const [key, value] of Object.entries(meta)) { 23923 try { 23924 obj[key] = value; 23925 } catch (_unused) { 23926 Object.defineProperty(obj, key, { 23927 configurable: true, 23928 get() { 23929 return value; 23930 } 23931 }); 23932 } 23933 } 23934 return obj; 23935} 23936 23937/** 23938 * -------------------------------------------------------------------------- 23939 * Bootstrap dom/manipulator.js 23940 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 23941 * -------------------------------------------------------------------------- 23942 */ 23943 23944function normalizeData(value) { 23945 if (value === 'true') { 23946 return true; 23947 } 23948 if (value === 'false') { 23949 return false; 23950 } 23951 if (value === Number(value).toString()) { 23952 return Number(value); 23953 } 23954 if (value === '' || value === 'null') { 23955 return null; 23956 } 23957 if (typeof value !== 'string') { 23958 return value; 23959 } 23960 try { 23961 return JSON.parse(decodeURIComponent(value)); 23962 } catch (_unused) { 23963 return value; 23964 } 23965} 23966function normalizeDataKey(key) { 23967 return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); 23968} 23969const Manipulator = { 23970 setDataAttribute(element, key, value) { 23971 element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); 23972 }, 23973 removeDataAttribute(element, key) { 23974 element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); 23975 }, 23976 getDataAttributes(element) { 23977 if (!element) { 23978 return {}; 23979 } 23980 const attributes = {}; 23981 const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig')); 23982 for (const key of bsKeys) { 23983 let pureKey = key.replace(/^bs/, ''); 23984 pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); 23985 attributes[pureKey] = normalizeData(element.dataset[key]); 23986 } 23987 return attributes; 23988 }, 23989 getDataAttribute(element, key) { 23990 return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); 23991 } 23992}; 23993 23994/** 23995 * -------------------------------------------------------------------------- 23996 * Bootstrap util/config.js 23997 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 23998 * -------------------------------------------------------------------------- 23999 */ 24000 24001 24002/** 24003 * Class definition 24004 */ 24005 24006class Config { 24007 // Getters 24008 static get Default() { 24009 return {}; 24010 } 24011 static get DefaultType() { 24012 return {}; 24013 } 24014 static get NAME() { 24015 throw new Error('You have to implement the static method "NAME", for each component!'); 24016 } 24017 _getConfig(config) { 24018 config = this._mergeConfigObj(config); 24019 config = this._configAfterMerge(config); 24020 this._typeCheckConfig(config); 24021 return config; 24022 } 24023 _configAfterMerge(config) { 24024 return config; 24025 } 24026 _mergeConfigObj(config, element) { 24027 const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse 24028 24029 return { 24030 ...this.constructor.Default, 24031 ...(typeof jsonConfig === 'object' ? jsonConfig : {}), 24032 ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}), 24033 ...(typeof config === 'object' ? config : {}) 24034 }; 24035 } 24036 _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { 24037 for (const [property, expectedTypes] of Object.entries(configTypes)) { 24038 const value = config[property]; 24039 const valueType = isElement(value) ? 'element' : toType(value); 24040 if (!new RegExp(expectedTypes).test(valueType)) { 24041 throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); 24042 } 24043 } 24044 } 24045} 24046 24047/** 24048 * -------------------------------------------------------------------------- 24049 * Bootstrap base-component.js 24050 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 24051 * -------------------------------------------------------------------------- 24052 */ 24053 24054 24055/** 24056 * Constants 24057 */ 24058 24059const VERSION = '5.3.3'; 24060 24061/** 24062 * Class definition 24063 */ 24064 24065class BaseComponent extends Config { 24066 constructor(element, config) { 24067 super(); 24068 element = getElement(element); 24069 if (!element) { 24070 return; 24071 } 24072 this._element = element; 24073 this._config = this._getConfig(config); 24074 Data.set(this._element, this.constructor.DATA_KEY, this); 24075 } 24076 24077 // Public 24078 dispose() { 24079 Data.remove(this._element, this.constructor.DATA_KEY); 24080 EventHandler.off(this._element, this.constructor.EVENT_KEY); 24081 for (const propertyName of Object.getOwnPropertyNames(this)) { 24082 this[propertyName] = null; 24083 } 24084 } 24085 _queueCallback(callback, element, isAnimated = true) { 24086 executeAfterTransition(callback, element, isAnimated); 24087 } 24088 _getConfig(config) { 24089 config = this._mergeConfigObj(config, this._element); 24090 config = this._configAfterMerge(config); 24091 this._typeCheckConfig(config); 24092 return config; 24093 } 24094 24095 // Static 24096 static getInstance(element) { 24097 return Data.get(getElement(element), this.DATA_KEY); 24098 } 24099 static getOrCreateInstance(element, config = {}) { 24100 return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null); 24101 } 24102 static get VERSION() { 24103 return VERSION; 24104 } 24105 static get DATA_KEY() { 24106 return `bs.${this.NAME}`; 24107 } 24108 static get EVENT_KEY() { 24109 return `.${this.DATA_KEY}`; 24110 } 24111 static eventName(name) { 24112 return `${name}${this.EVENT_KEY}`; 24113 } 24114} 24115 24116/** 24117 * -------------------------------------------------------------------------- 24118 * Bootstrap dom/selector-engine.js 24119 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 24120 * -------------------------------------------------------------------------- 24121 */ 24122 24123const getSelector = element => { 24124 let selector = element.getAttribute('data-bs-target'); 24125 if (!selector || selector === '#') { 24126 let hrefAttribute = element.getAttribute('href'); 24127 24128 // The only valid content that could double as a selector are IDs or classes, 24129 // so everything starting with `#` or `.`. If a "real" URL is used as the selector, 24130 // `document.querySelector` will rightfully complain it is invalid. 24131 // See https://github.com/twbs/bootstrap/issues/32273 24132 if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) { 24133 return null; 24134 } 24135 24136 // Just in case some CMS puts out a full URL with the anchor appended 24137 if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) { 24138 hrefAttribute = `#${hrefAttribute.split('#')[1]}`; 24139 } 24140 selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null; 24141 } 24142 return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null; 24143}; 24144const SelectorEngine = { 24145 find(selector, element = document.documentElement) { 24146 return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); 24147 }, 24148 findOne(selector, element = document.documentElement) { 24149 return Element.prototype.querySelector.call(element, selector); 24150 }, 24151 children(element, selector) { 24152 return [].concat(...element.children).filter(child => child.matches(selector)); 24153 }, 24154 parents(element, selector) { 24155 const parents = []; 24156 let ancestor = element.parentNode.closest(selector); 24157 while (ancestor) { 24158 parents.push(ancestor); 24159 ancestor = ancestor.parentNode.closest(selector); 24160 } 24161 return parents; 24162 }, 24163 prev(element, selector) { 24164 let previous = element.previousElementSibling; 24165 while (previous) { 24166 if (previous.matches(selector)) { 24167 return [previous]; 24168 } 24169 previous = previous.previousElementSibling; 24170 } 24171 return []; 24172 }, 24173 // TODO: this is now unused; remove later along with prev() 24174 next(element, selector) { 24175 let next = element.nextElementSibling; 24176 while (next) { 24177 if (next.matches(selector)) { 24178 return [next]; 24179 } 24180 next = next.nextElementSibling; 24181 } 24182 return []; 24183 }, 24184 focusableChildren(element) { 24185 const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(','); 24186 return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el)); 24187 }, 24188 getSelectorFromElement(element) { 24189 const selector = getSelector(element); 24190 if (selector) { 24191 return SelectorEngine.findOne(selector) ? selector : null; 24192 } 24193 return null; 24194 }, 24195 getElementFromSelector(element) { 24196 const selector = getSelector(element); 24197 return selector ? SelectorEngine.findOne(selector) : null; 24198 }, 24199 getMultipleElementsFromSelector(element) { 24200 const selector = getSelector(element); 24201 return selector ? SelectorEngine.find(selector) : []; 24202 } 24203}; 24204 24205/** 24206 * -------------------------------------------------------------------------- 24207 * Bootstrap util/component-functions.js 24208 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 24209 * -------------------------------------------------------------------------- 24210 */ 24211 24212const enableDismissTrigger = (component, method = 'hide') => { 24213 const clickEvent = `click.dismiss${component.EVENT_KEY}`; 24214 const name = component.NAME; 24215 EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) { 24216 if (['A', 'AREA'].includes(this.tagName)) { 24217 event.preventDefault(); 24218 } 24219 if (isDisabled(this)) { 24220 return; 24221 } 24222 const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`); 24223 const instance = component.getOrCreateInstance(target); 24224 24225 // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method 24226 instance[method](); 24227 }); 24228}; 24229 24230/** 24231 * -------------------------------------------------------------------------- 24232 * Bootstrap alert.js 24233 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 24234 * -------------------------------------------------------------------------- 24235 */ 24236 24237 24238/** 24239 * Constants 24240 */ 24241 24242const NAME$f = 'alert'; 24243const DATA_KEY$a = 'bs.alert'; 24244const EVENT_KEY$b = `.${DATA_KEY$a}`; 24245const EVENT_CLOSE = `close${EVENT_KEY$b}`; 24246const EVENT_CLOSED = `closed${EVENT_KEY$b}`; 24247const CLASS_NAME_FADE$5 = 'fade'; 24248const CLASS_NAME_SHOW$8 = 'show'; 24249 24250/** 24251 * Class definition 24252 */ 24253 24254class Alert extends BaseComponent { 24255 // Getters 24256 static get NAME() { 24257 return NAME$f; 24258 } 24259 24260 // Public 24261 close() { 24262 const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); 24263 if (closeEvent.defaultPrevented) { 24264 return; 24265 } 24266 this._element.classList.remove(CLASS_NAME_SHOW$8); 24267 const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5); 24268 this._queueCallback(() => this._destroyElement(), this._element, isAnimated); 24269 } 24270 24271 // Private 24272 _destroyElement() { 24273 this._element.remove(); 24274 EventHandler.trigger(this._element, EVENT_CLOSED); 24275 this.dispose(); 24276 } 24277 24278 // Static 24279 static jQueryInterface(config) { 24280 return this.each(function () { 24281 const data = Alert.getOrCreateInstance(this); 24282 if (typeof config !== 'string') { 24283 return; 24284 } 24285 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 24286 throw new TypeError(`No method named "${config}"`); 24287 } 24288 data[config](this); 24289 }); 24290 } 24291} 24292 24293/** 24294 * Data API implementation 24295 */ 24296 24297enableDismissTrigger(Alert, 'close'); 24298 24299/** 24300 * jQuery 24301 */ 24302 24303defineJQueryPlugin(Alert); 24304 24305/** 24306 * -------------------------------------------------------------------------- 24307 * Bootstrap button.js 24308 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 24309 * -------------------------------------------------------------------------- 24310 */ 24311 24312 24313/** 24314 * Constants 24315 */ 24316 24317const NAME$e = 'button'; 24318const DATA_KEY$9 = 'bs.button'; 24319const EVENT_KEY$a = `.${DATA_KEY$9}`; 24320const DATA_API_KEY$6 = '.data-api'; 24321const CLASS_NAME_ACTIVE$3 = 'active'; 24322const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; 24323const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; 24324 24325/** 24326 * Class definition 24327 */ 24328 24329class Button extends BaseComponent { 24330 // Getters 24331 static get NAME() { 24332 return NAME$e; 24333 } 24334 24335 // Public 24336 toggle() { 24337 // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method 24338 this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); 24339 } 24340 24341 // Static 24342 static jQueryInterface(config) { 24343 return this.each(function () { 24344 const data = Button.getOrCreateInstance(this); 24345 if (config === 'toggle') { 24346 data[config](); 24347 } 24348 }); 24349 } 24350} 24351 24352/** 24353 * Data API implementation 24354 */ 24355 24356EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => { 24357 event.preventDefault(); 24358 const button = event.target.closest(SELECTOR_DATA_TOGGLE$5); 24359 const data = Button.getOrCreateInstance(button); 24360 data.toggle(); 24361}); 24362 24363/** 24364 * jQuery 24365 */ 24366 24367defineJQueryPlugin(Button); 24368 24369/** 24370 * -------------------------------------------------------------------------- 24371 * Bootstrap util/swipe.js 24372 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 24373 * -------------------------------------------------------------------------- 24374 */ 24375 24376 24377/** 24378 * Constants 24379 */ 24380 24381const NAME$d = 'swipe'; 24382const EVENT_KEY$9 = '.bs.swipe'; 24383const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; 24384const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; 24385const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; 24386const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; 24387const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; 24388const POINTER_TYPE_TOUCH = 'touch'; 24389const POINTER_TYPE_PEN = 'pen'; 24390const CLASS_NAME_POINTER_EVENT = 'pointer-event'; 24391const SWIPE_THRESHOLD = 40; 24392const Default$c = { 24393 endCallback: null, 24394 leftCallback: null, 24395 rightCallback: null 24396}; 24397const DefaultType$c = { 24398 endCallback: '(function|null)', 24399 leftCallback: '(function|null)', 24400 rightCallback: '(function|null)' 24401}; 24402 24403/** 24404 * Class definition 24405 */ 24406 24407class Swipe extends Config { 24408 constructor(element, config) { 24409 super(); 24410 this._element = element; 24411 if (!element || !Swipe.isSupported()) { 24412 return; 24413 } 24414 this._config = this._getConfig(config); 24415 this._deltaX = 0; 24416 this._supportPointerEvents = Boolean(window.PointerEvent); 24417 this._initEvents(); 24418 } 24419 24420 // Getters 24421 static get Default() { 24422 return Default$c; 24423 } 24424 static get DefaultType() { 24425 return DefaultType$c; 24426 } 24427 static get NAME() { 24428 return NAME$d; 24429 } 24430 24431 // Public 24432 dispose() { 24433 EventHandler.off(this._element, EVENT_KEY$9); 24434 } 24435 24436 // Private 24437 _start(event) { 24438 if (!this._supportPointerEvents) { 24439 this._deltaX = event.touches[0].clientX; 24440 return; 24441 } 24442 if (this._eventIsPointerPenTouch(event)) { 24443 this._deltaX = event.clientX; 24444 } 24445 } 24446 _end(event) { 24447 if (this._eventIsPointerPenTouch(event)) { 24448 this._deltaX = event.clientX - this._deltaX; 24449 } 24450 this._handleSwipe(); 24451 execute(this._config.endCallback); 24452 } 24453 _move(event) { 24454 this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX; 24455 } 24456 _handleSwipe() { 24457 const absDeltaX = Math.abs(this._deltaX); 24458 if (absDeltaX <= SWIPE_THRESHOLD) { 24459 return; 24460 } 24461 const direction = absDeltaX / this._deltaX; 24462 this._deltaX = 0; 24463 if (!direction) { 24464 return; 24465 } 24466 execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback); 24467 } 24468 _initEvents() { 24469 if (this._supportPointerEvents) { 24470 EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event)); 24471 EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event)); 24472 this._element.classList.add(CLASS_NAME_POINTER_EVENT); 24473 } else { 24474 EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event)); 24475 EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event)); 24476 EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event)); 24477 } 24478 } 24479 _eventIsPointerPenTouch(event) { 24480 return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); 24481 } 24482 24483 // Static 24484 static isSupported() { 24485 return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; 24486 } 24487} 24488 24489/** 24490 * -------------------------------------------------------------------------- 24491 * Bootstrap carousel.js 24492 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 24493 * -------------------------------------------------------------------------- 24494 */ 24495 24496 24497/** 24498 * Constants 24499 */ 24500 24501const NAME$c = 'carousel'; 24502const DATA_KEY$8 = 'bs.carousel'; 24503const EVENT_KEY$8 = `.${DATA_KEY$8}`; 24504const DATA_API_KEY$5 = '.data-api'; 24505const ARROW_LEFT_KEY$1 = 'ArrowLeft'; 24506const ARROW_RIGHT_KEY$1 = 'ArrowRight'; 24507const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch 24508 24509const ORDER_NEXT = 'next'; 24510const ORDER_PREV = 'prev'; 24511const DIRECTION_LEFT = 'left'; 24512const DIRECTION_RIGHT = 'right'; 24513const EVENT_SLIDE = `slide${EVENT_KEY$8}`; 24514const EVENT_SLID = `slid${EVENT_KEY$8}`; 24515const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`; 24516const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`; 24517const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`; 24518const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`; 24519const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`; 24520const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; 24521const CLASS_NAME_CAROUSEL = 'carousel'; 24522const CLASS_NAME_ACTIVE$2 = 'active'; 24523const CLASS_NAME_SLIDE = 'slide'; 24524const CLASS_NAME_END = 'carousel-item-end'; 24525const CLASS_NAME_START = 'carousel-item-start'; 24526const CLASS_NAME_NEXT = 'carousel-item-next'; 24527const CLASS_NAME_PREV = 'carousel-item-prev'; 24528const SELECTOR_ACTIVE = '.active'; 24529const SELECTOR_ITEM = '.carousel-item'; 24530const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM; 24531const SELECTOR_ITEM_IMG = '.carousel-item img'; 24532const SELECTOR_INDICATORS = '.carousel-indicators'; 24533const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; 24534const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; 24535const KEY_TO_DIRECTION = { 24536 [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT, 24537 [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT 24538}; 24539const Default$b = { 24540 interval: 5000, 24541 keyboard: true, 24542 pause: 'hover', 24543 ride: false, 24544 touch: true, 24545 wrap: true 24546}; 24547const DefaultType$b = { 24548 interval: '(number|boolean)', 24549 // TODO:v6 remove boolean support 24550 keyboard: 'boolean', 24551 pause: '(string|boolean)', 24552 ride: '(boolean|string)', 24553 touch: 'boolean', 24554 wrap: 'boolean' 24555}; 24556 24557/** 24558 * Class definition 24559 */ 24560 24561class Carousel extends BaseComponent { 24562 constructor(element, config) { 24563 super(element, config); 24564 this._interval = null; 24565 this._activeElement = null; 24566 this._isSliding = false; 24567 this.touchTimeout = null; 24568 this._swipeHelper = null; 24569 this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); 24570 this._addEventListeners(); 24571 if (this._config.ride === CLASS_NAME_CAROUSEL) { 24572 this.cycle(); 24573 } 24574 } 24575 24576 // Getters 24577 static get Default() { 24578 return Default$b; 24579 } 24580 static get DefaultType() { 24581 return DefaultType$b; 24582 } 24583 static get NAME() { 24584 return NAME$c; 24585 } 24586 24587 // Public 24588 next() { 24589 this._slide(ORDER_NEXT); 24590 } 24591 nextWhenVisible() { 24592 // FIXME TODO use `document.visibilityState` 24593 // Don't call next when the page isn't visible 24594 // or the carousel or its parent isn't visible 24595 if (!document.hidden && isVisible(this._element)) { 24596 this.next(); 24597 } 24598 } 24599 prev() { 24600 this._slide(ORDER_PREV); 24601 } 24602 pause() { 24603 if (this._isSliding) { 24604 triggerTransitionEnd(this._element); 24605 } 24606 this._clearInterval(); 24607 } 24608 cycle() { 24609 this._clearInterval(); 24610 this._updateInterval(); 24611 this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval); 24612 } 24613 _maybeEnableCycle() { 24614 if (!this._config.ride) { 24615 return; 24616 } 24617 if (this._isSliding) { 24618 EventHandler.one(this._element, EVENT_SLID, () => this.cycle()); 24619 return; 24620 } 24621 this.cycle(); 24622 } 24623 to(index) { 24624 const items = this._getItems(); 24625 if (index > items.length - 1 || index < 0) { 24626 return; 24627 } 24628 if (this._isSliding) { 24629 EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); 24630 return; 24631 } 24632 const activeIndex = this._getItemIndex(this._getActive()); 24633 if (activeIndex === index) { 24634 return; 24635 } 24636 const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; 24637 this._slide(order, items[index]); 24638 } 24639 dispose() { 24640 if (this._swipeHelper) { 24641 this._swipeHelper.dispose(); 24642 } 24643 super.dispose(); 24644 } 24645 24646 // Private 24647 _configAfterMerge(config) { 24648 config.defaultInterval = config.interval; 24649 return config; 24650 } 24651 _addEventListeners() { 24652 if (this._config.keyboard) { 24653 EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event)); 24654 } 24655 if (this._config.pause === 'hover') { 24656 EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause()); 24657 EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle()); 24658 } 24659 if (this._config.touch && Swipe.isSupported()) { 24660 this._addTouchEventListeners(); 24661 } 24662 } 24663 _addTouchEventListeners() { 24664 for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) { 24665 EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault()); 24666 } 24667 const endCallBack = () => { 24668 if (this._config.pause !== 'hover') { 24669 return; 24670 } 24671 24672 // If it's a touch-enabled device, mouseenter/leave are fired as 24673 // part of the mouse compatibility events on first tap - the carousel 24674 // would stop cycling until user tapped out of it; 24675 // here, we listen for touchend, explicitly pause the carousel 24676 // (as if it's the second time we tap on it, mouseenter compat event 24677 // is NOT fired) and after a timeout (to allow for mouse compatibility 24678 // events to fire) we explicitly restart cycling 24679 24680 this.pause(); 24681 if (this.touchTimeout) { 24682 clearTimeout(this.touchTimeout); 24683 } 24684 this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval); 24685 }; 24686 const swipeConfig = { 24687 leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)), 24688 rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)), 24689 endCallback: endCallBack 24690 }; 24691 this._swipeHelper = new Swipe(this._element, swipeConfig); 24692 } 24693 _keydown(event) { 24694 if (/input|textarea/i.test(event.target.tagName)) { 24695 return; 24696 } 24697 const direction = KEY_TO_DIRECTION[event.key]; 24698 if (direction) { 24699 event.preventDefault(); 24700 this._slide(this._directionToOrder(direction)); 24701 } 24702 } 24703 _getItemIndex(element) { 24704 return this._getItems().indexOf(element); 24705 } 24706 _setActiveIndicatorElement(index) { 24707 if (!this._indicatorsElement) { 24708 return; 24709 } 24710 const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement); 24711 activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); 24712 activeIndicator.removeAttribute('aria-current'); 24713 const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement); 24714 if (newActiveIndicator) { 24715 newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2); 24716 newActiveIndicator.setAttribute('aria-current', 'true'); 24717 } 24718 } 24719 _updateInterval() { 24720 const element = this._activeElement || this._getActive(); 24721 if (!element) { 24722 return; 24723 } 24724 const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); 24725 this._config.interval = elementInterval || this._config.defaultInterval; 24726 } 24727 _slide(order, element = null) { 24728 if (this._isSliding) { 24729 return; 24730 } 24731 const activeElement = this._getActive(); 24732 const isNext = order === ORDER_NEXT; 24733 const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap); 24734 if (nextElement === activeElement) { 24735 return; 24736 } 24737 const nextElementIndex = this._getItemIndex(nextElement); 24738 const triggerEvent = eventName => { 24739 return EventHandler.trigger(this._element, eventName, { 24740 relatedTarget: nextElement, 24741 direction: this._orderToDirection(order), 24742 from: this._getItemIndex(activeElement), 24743 to: nextElementIndex 24744 }); 24745 }; 24746 const slideEvent = triggerEvent(EVENT_SLIDE); 24747 if (slideEvent.defaultPrevented) { 24748 return; 24749 } 24750 if (!activeElement || !nextElement) { 24751 // Some weirdness is happening, so we bail 24752 // TODO: change tests that use empty divs to avoid this check 24753 return; 24754 } 24755 const isCycling = Boolean(this._interval); 24756 this.pause(); 24757 this._isSliding = true; 24758 this._setActiveIndicatorElement(nextElementIndex); 24759 this._activeElement = nextElement; 24760 const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; 24761 const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; 24762 nextElement.classList.add(orderClassName); 24763 reflow(nextElement); 24764 activeElement.classList.add(directionalClassName); 24765 nextElement.classList.add(directionalClassName); 24766 const completeCallBack = () => { 24767 nextElement.classList.remove(directionalClassName, orderClassName); 24768 nextElement.classList.add(CLASS_NAME_ACTIVE$2); 24769 activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); 24770 this._isSliding = false; 24771 triggerEvent(EVENT_SLID); 24772 }; 24773 this._queueCallback(completeCallBack, activeElement, this._isAnimated()); 24774 if (isCycling) { 24775 this.cycle(); 24776 } 24777 } 24778 _isAnimated() { 24779 return this._element.classList.contains(CLASS_NAME_SLIDE); 24780 } 24781 _getActive() { 24782 return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); 24783 } 24784 _getItems() { 24785 return SelectorEngine.find(SELECTOR_ITEM, this._element); 24786 } 24787 _clearInterval() { 24788 if (this._interval) { 24789 clearInterval(this._interval); 24790 this._interval = null; 24791 } 24792 } 24793 _directionToOrder(direction) { 24794 if (isRTL()) { 24795 return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT; 24796 } 24797 return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV; 24798 } 24799 _orderToDirection(order) { 24800 if (isRTL()) { 24801 return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT; 24802 } 24803 return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT; 24804 } 24805 24806 // Static 24807 static jQueryInterface(config) { 24808 return this.each(function () { 24809 const data = Carousel.getOrCreateInstance(this, config); 24810 if (typeof config === 'number') { 24811 data.to(config); 24812 return; 24813 } 24814 if (typeof config === 'string') { 24815 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 24816 throw new TypeError(`No method named "${config}"`); 24817 } 24818 data[config](); 24819 } 24820 }); 24821 } 24822} 24823 24824/** 24825 * Data API implementation 24826 */ 24827 24828EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) { 24829 const target = SelectorEngine.getElementFromSelector(this); 24830 if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { 24831 return; 24832 } 24833 event.preventDefault(); 24834 const carousel = Carousel.getOrCreateInstance(target); 24835 const slideIndex = this.getAttribute('data-bs-slide-to'); 24836 if (slideIndex) { 24837 carousel.to(slideIndex); 24838 carousel._maybeEnableCycle(); 24839 return; 24840 } 24841 if (Manipulator.getDataAttribute(this, 'slide') === 'next') { 24842 carousel.next(); 24843 carousel._maybeEnableCycle(); 24844 return; 24845 } 24846 carousel.prev(); 24847 carousel._maybeEnableCycle(); 24848}); 24849EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => { 24850 const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); 24851 for (const carousel of carousels) { 24852 Carousel.getOrCreateInstance(carousel); 24853 } 24854}); 24855 24856/** 24857 * jQuery 24858 */ 24859 24860defineJQueryPlugin(Carousel); 24861 24862/** 24863 * -------------------------------------------------------------------------- 24864 * Bootstrap collapse.js 24865 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 24866 * -------------------------------------------------------------------------- 24867 */ 24868 24869 24870/** 24871 * Constants 24872 */ 24873 24874const NAME$b = 'collapse'; 24875const DATA_KEY$7 = 'bs.collapse'; 24876const EVENT_KEY$7 = `.${DATA_KEY$7}`; 24877const DATA_API_KEY$4 = '.data-api'; 24878const EVENT_SHOW$6 = `show${EVENT_KEY$7}`; 24879const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`; 24880const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`; 24881const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`; 24882const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; 24883const CLASS_NAME_SHOW$7 = 'show'; 24884const CLASS_NAME_COLLAPSE = 'collapse'; 24885const CLASS_NAME_COLLAPSING = 'collapsing'; 24886const CLASS_NAME_COLLAPSED = 'collapsed'; 24887const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`; 24888const CLASS_NAME_HORIZONTAL = 'collapse-horizontal'; 24889const WIDTH = 'width'; 24890const HEIGHT = 'height'; 24891const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'; 24892const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; 24893const Default$a = { 24894 parent: null, 24895 toggle: true 24896}; 24897const DefaultType$a = { 24898 parent: '(null|element)', 24899 toggle: 'boolean' 24900}; 24901 24902/** 24903 * Class definition 24904 */ 24905 24906class Collapse extends BaseComponent { 24907 constructor(element, config) { 24908 super(element, config); 24909 this._isTransitioning = false; 24910 this._triggerArray = []; 24911 const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); 24912 for (const elem of toggleList) { 24913 const selector = SelectorEngine.getSelectorFromElement(elem); 24914 const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element); 24915 if (selector !== null && filterElement.length) { 24916 this._triggerArray.push(elem); 24917 } 24918 } 24919 this._initializeChildren(); 24920 if (!this._config.parent) { 24921 this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()); 24922 } 24923 if (this._config.toggle) { 24924 this.toggle(); 24925 } 24926 } 24927 24928 // Getters 24929 static get Default() { 24930 return Default$a; 24931 } 24932 static get DefaultType() { 24933 return DefaultType$a; 24934 } 24935 static get NAME() { 24936 return NAME$b; 24937 } 24938 24939 // Public 24940 toggle() { 24941 if (this._isShown()) { 24942 this.hide(); 24943 } else { 24944 this.show(); 24945 } 24946 } 24947 show() { 24948 if (this._isTransitioning || this._isShown()) { 24949 return; 24950 } 24951 let activeChildren = []; 24952 24953 // find active children 24954 if (this._config.parent) { 24955 activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, { 24956 toggle: false 24957 })); 24958 } 24959 if (activeChildren.length && activeChildren[0]._isTransitioning) { 24960 return; 24961 } 24962 const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6); 24963 if (startEvent.defaultPrevented) { 24964 return; 24965 } 24966 for (const activeInstance of activeChildren) { 24967 activeInstance.hide(); 24968 } 24969 const dimension = this._getDimension(); 24970 this._element.classList.remove(CLASS_NAME_COLLAPSE); 24971 this._element.classList.add(CLASS_NAME_COLLAPSING); 24972 this._element.style[dimension] = 0; 24973 this._addAriaAndCollapsedClass(this._triggerArray, true); 24974 this._isTransitioning = true; 24975 const complete = () => { 24976 this._isTransitioning = false; 24977 this._element.classList.remove(CLASS_NAME_COLLAPSING); 24978 this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); 24979 this._element.style[dimension] = ''; 24980 EventHandler.trigger(this._element, EVENT_SHOWN$6); 24981 }; 24982 const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); 24983 const scrollSize = `scroll${capitalizedDimension}`; 24984 this._queueCallback(complete, this._element, true); 24985 this._element.style[dimension] = `${this._element[scrollSize]}px`; 24986 } 24987 hide() { 24988 if (this._isTransitioning || !this._isShown()) { 24989 return; 24990 } 24991 const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6); 24992 if (startEvent.defaultPrevented) { 24993 return; 24994 } 24995 const dimension = this._getDimension(); 24996 this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; 24997 reflow(this._element); 24998 this._element.classList.add(CLASS_NAME_COLLAPSING); 24999 this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); 25000 for (const trigger of this._triggerArray) { 25001 const element = SelectorEngine.getElementFromSelector(trigger); 25002 if (element && !this._isShown(element)) { 25003 this._addAriaAndCollapsedClass([trigger], false); 25004 } 25005 } 25006 this._isTransitioning = true; 25007 const complete = () => { 25008 this._isTransitioning = false; 25009 this._element.classList.remove(CLASS_NAME_COLLAPSING); 25010 this._element.classList.add(CLASS_NAME_COLLAPSE); 25011 EventHandler.trigger(this._element, EVENT_HIDDEN$6); 25012 }; 25013 this._element.style[dimension] = ''; 25014 this._queueCallback(complete, this._element, true); 25015 } 25016 _isShown(element = this._element) { 25017 return element.classList.contains(CLASS_NAME_SHOW$7); 25018 } 25019 25020 // Private 25021 _configAfterMerge(config) { 25022 config.toggle = Boolean(config.toggle); // Coerce string values 25023 config.parent = getElement(config.parent); 25024 return config; 25025 } 25026 _getDimension() { 25027 return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; 25028 } 25029 _initializeChildren() { 25030 if (!this._config.parent) { 25031 return; 25032 } 25033 const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4); 25034 for (const element of children) { 25035 const selected = SelectorEngine.getElementFromSelector(element); 25036 if (selected) { 25037 this._addAriaAndCollapsedClass([element], this._isShown(selected)); 25038 } 25039 } 25040 } 25041 _getFirstLevelChildren(selector) { 25042 const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); 25043 // remove children if greater depth 25044 return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element)); 25045 } 25046 _addAriaAndCollapsedClass(triggerArray, isOpen) { 25047 if (!triggerArray.length) { 25048 return; 25049 } 25050 for (const element of triggerArray) { 25051 element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); 25052 element.setAttribute('aria-expanded', isOpen); 25053 } 25054 } 25055 25056 // Static 25057 static jQueryInterface(config) { 25058 const _config = {}; 25059 if (typeof config === 'string' && /show|hide/.test(config)) { 25060 _config.toggle = false; 25061 } 25062 return this.each(function () { 25063 const data = Collapse.getOrCreateInstance(this, _config); 25064 if (typeof config === 'string') { 25065 if (typeof data[config] === 'undefined') { 25066 throw new TypeError(`No method named "${config}"`); 25067 } 25068 data[config](); 25069 } 25070 }); 25071 } 25072} 25073 25074/** 25075 * Data API implementation 25076 */ 25077 25078EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) { 25079 // preventDefault only for <a> elements (which change the URL) not inside the collapsible element 25080 if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { 25081 event.preventDefault(); 25082 } 25083 for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) { 25084 Collapse.getOrCreateInstance(element, { 25085 toggle: false 25086 }).toggle(); 25087 } 25088}); 25089 25090/** 25091 * jQuery 25092 */ 25093 25094defineJQueryPlugin(Collapse); 25095 25096/** 25097 * -------------------------------------------------------------------------- 25098 * Bootstrap dropdown.js 25099 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 25100 * -------------------------------------------------------------------------- 25101 */ 25102 25103 25104/** 25105 * Constants 25106 */ 25107 25108const NAME$a = 'dropdown'; 25109const DATA_KEY$6 = 'bs.dropdown'; 25110const EVENT_KEY$6 = `.${DATA_KEY$6}`; 25111const DATA_API_KEY$3 = '.data-api'; 25112const ESCAPE_KEY$2 = 'Escape'; 25113const TAB_KEY$1 = 'Tab'; 25114const ARROW_UP_KEY$1 = 'ArrowUp'; 25115const ARROW_DOWN_KEY$1 = 'ArrowDown'; 25116const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button 25117 25118const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`; 25119const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`; 25120const EVENT_SHOW$5 = `show${EVENT_KEY$6}`; 25121const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`; 25122const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; 25123const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`; 25124const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`; 25125const CLASS_NAME_SHOW$6 = 'show'; 25126const CLASS_NAME_DROPUP = 'dropup'; 25127const CLASS_NAME_DROPEND = 'dropend'; 25128const CLASS_NAME_DROPSTART = 'dropstart'; 25129const CLASS_NAME_DROPUP_CENTER = 'dropup-center'; 25130const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'; 25131const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)'; 25132const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`; 25133const SELECTOR_MENU = '.dropdown-menu'; 25134const SELECTOR_NAVBAR = '.navbar'; 25135const SELECTOR_NAVBAR_NAV = '.navbar-nav'; 25136const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; 25137const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'; 25138const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'; 25139const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'; 25140const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'; 25141const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'; 25142const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'; 25143const PLACEMENT_TOPCENTER = 'top'; 25144const PLACEMENT_BOTTOMCENTER = 'bottom'; 25145const Default$9 = { 25146 autoClose: true, 25147 boundary: 'clippingParents', 25148 display: 'dynamic', 25149 offset: [0, 2], 25150 popperConfig: null, 25151 reference: 'toggle' 25152}; 25153const DefaultType$9 = { 25154 autoClose: '(boolean|string)', 25155 boundary: '(string|element)', 25156 display: 'string', 25157 offset: '(array|string|function)', 25158 popperConfig: '(null|object|function)', 25159 reference: '(string|element|object)' 25160}; 25161 25162/** 25163 * Class definition 25164 */ 25165 25166class Dropdown extends BaseComponent { 25167 constructor(element, config) { 25168 super(element, config); 25169 this._popper = null; 25170 this._parent = this._element.parentNode; // dropdown wrapper 25171 // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ 25172 this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); 25173 this._inNavbar = this._detectNavbar(); 25174 } 25175 25176 // Getters 25177 static get Default() { 25178 return Default$9; 25179 } 25180 static get DefaultType() { 25181 return DefaultType$9; 25182 } 25183 static get NAME() { 25184 return NAME$a; 25185 } 25186 25187 // Public 25188 toggle() { 25189 return this._isShown() ? this.hide() : this.show(); 25190 } 25191 show() { 25192 if (isDisabled(this._element) || this._isShown()) { 25193 return; 25194 } 25195 const relatedTarget = { 25196 relatedTarget: this._element 25197 }; 25198 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget); 25199 if (showEvent.defaultPrevented) { 25200 return; 25201 } 25202 this._createPopper(); 25203 25204 // If this is a touch-enabled device we add extra 25205 // empty mouseover listeners to the body's immediate children; 25206 // only needed because of broken event delegation on iOS 25207 // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html 25208 if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) { 25209 for (const element of [].concat(...document.body.children)) { 25210 EventHandler.on(element, 'mouseover', noop); 25211 } 25212 } 25213 this._element.focus(); 25214 this._element.setAttribute('aria-expanded', true); 25215 this._menu.classList.add(CLASS_NAME_SHOW$6); 25216 this._element.classList.add(CLASS_NAME_SHOW$6); 25217 EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget); 25218 } 25219 hide() { 25220 if (isDisabled(this._element) || !this._isShown()) { 25221 return; 25222 } 25223 const relatedTarget = { 25224 relatedTarget: this._element 25225 }; 25226 this._completeHide(relatedTarget); 25227 } 25228 dispose() { 25229 if (this._popper) { 25230 this._popper.destroy(); 25231 } 25232 super.dispose(); 25233 } 25234 update() { 25235 this._inNavbar = this._detectNavbar(); 25236 if (this._popper) { 25237 this._popper.update(); 25238 } 25239 } 25240 25241 // Private 25242 _completeHide(relatedTarget) { 25243 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget); 25244 if (hideEvent.defaultPrevented) { 25245 return; 25246 } 25247 25248 // If this is a touch-enabled device we remove the extra 25249 // empty mouseover listeners we added for iOS support 25250 if ('ontouchstart' in document.documentElement) { 25251 for (const element of [].concat(...document.body.children)) { 25252 EventHandler.off(element, 'mouseover', noop); 25253 } 25254 } 25255 if (this._popper) { 25256 this._popper.destroy(); 25257 } 25258 this._menu.classList.remove(CLASS_NAME_SHOW$6); 25259 this._element.classList.remove(CLASS_NAME_SHOW$6); 25260 this._element.setAttribute('aria-expanded', 'false'); 25261 Manipulator.removeDataAttribute(this._menu, 'popper'); 25262 EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget); 25263 } 25264 _getConfig(config) { 25265 config = super._getConfig(config); 25266 if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { 25267 // Popper virtual elements require a getBoundingClientRect method 25268 throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); 25269 } 25270 return config; 25271 } 25272 _createPopper() { 25273 if (typeof _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ === 'undefined') { 25274 throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); 25275 } 25276 let referenceElement = this._element; 25277 if (this._config.reference === 'parent') { 25278 referenceElement = this._parent; 25279 } else if (isElement(this._config.reference)) { 25280 referenceElement = getElement(this._config.reference); 25281 } else if (typeof this._config.reference === 'object') { 25282 referenceElement = this._config.reference; 25283 } 25284 const popperConfig = this._getPopperConfig(); 25285 this._popper = _popperjs_core__WEBPACK_IMPORTED_MODULE_1__.createPopper(referenceElement, this._menu, popperConfig); 25286 } 25287 _isShown() { 25288 return this._menu.classList.contains(CLASS_NAME_SHOW$6); 25289 } 25290 _getPlacement() { 25291 const parentDropdown = this._parent; 25292 if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { 25293 return PLACEMENT_RIGHT; 25294 } 25295 if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { 25296 return PLACEMENT_LEFT; 25297 } 25298 if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) { 25299 return PLACEMENT_TOPCENTER; 25300 } 25301 if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) { 25302 return PLACEMENT_BOTTOMCENTER; 25303 } 25304 25305 // We need to trim the value because custom properties can also include spaces 25306 const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'; 25307 if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { 25308 return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; 25309 } 25310 return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; 25311 } 25312 _detectNavbar() { 25313 return this._element.closest(SELECTOR_NAVBAR) !== null; 25314 } 25315 _getOffset() { 25316 const { 25317 offset 25318 } = this._config; 25319 if (typeof offset === 'string') { 25320 return offset.split(',').map(value => Number.parseInt(value, 10)); 25321 } 25322 if (typeof offset === 'function') { 25323 return popperData => offset(popperData, this._element); 25324 } 25325 return offset; 25326 } 25327 _getPopperConfig() { 25328 const defaultBsPopperConfig = { 25329 placement: this._getPlacement(), 25330 modifiers: [{ 25331 name: 'preventOverflow', 25332 options: { 25333 boundary: this._config.boundary 25334 } 25335 }, { 25336 name: 'offset', 25337 options: { 25338 offset: this._getOffset() 25339 } 25340 }] 25341 }; 25342 25343 // Disable Popper if we have a static display or Dropdown is in Navbar 25344 if (this._inNavbar || this._config.display === 'static') { 25345 Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove 25346 defaultBsPopperConfig.modifiers = [{ 25347 name: 'applyStyles', 25348 enabled: false 25349 }]; 25350 } 25351 return { 25352 ...defaultBsPopperConfig, 25353 ...execute(this._config.popperConfig, [defaultBsPopperConfig]) 25354 }; 25355 } 25356 _selectMenuItem({ 25357 key, 25358 target 25359 }) { 25360 const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element)); 25361 if (!items.length) { 25362 return; 25363 } 25364 25365 // if target isn't included in items (e.g. when expanding the dropdown) 25366 // allow cycling to get the last item in case key equals ARROW_UP_KEY 25367 getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus(); 25368 } 25369 25370 // Static 25371 static jQueryInterface(config) { 25372 return this.each(function () { 25373 const data = Dropdown.getOrCreateInstance(this, config); 25374 if (typeof config !== 'string') { 25375 return; 25376 } 25377 if (typeof data[config] === 'undefined') { 25378 throw new TypeError(`No method named "${config}"`); 25379 } 25380 data[config](); 25381 }); 25382 } 25383 static clearMenus(event) { 25384 if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) { 25385 return; 25386 } 25387 const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN); 25388 for (const toggle of openToggles) { 25389 const context = Dropdown.getInstance(toggle); 25390 if (!context || context._config.autoClose === false) { 25391 continue; 25392 } 25393 const composedPath = event.composedPath(); 25394 const isMenuTarget = composedPath.includes(context._menu); 25395 if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) { 25396 continue; 25397 } 25398 25399 // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu 25400 if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) { 25401 continue; 25402 } 25403 const relatedTarget = { 25404 relatedTarget: context._element 25405 }; 25406 if (event.type === 'click') { 25407 relatedTarget.clickEvent = event; 25408 } 25409 context._completeHide(relatedTarget); 25410 } 25411 } 25412 static dataApiKeydownHandler(event) { 25413 // If not an UP | DOWN | ESCAPE key => not a dropdown command 25414 // If input/textarea && if key is other than ESCAPE => not a dropdown command 25415 25416 const isInput = /input|textarea/i.test(event.target.tagName); 25417 const isEscapeEvent = event.key === ESCAPE_KEY$2; 25418 const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key); 25419 if (!isUpOrDownEvent && !isEscapeEvent) { 25420 return; 25421 } 25422 if (isInput && !isEscapeEvent) { 25423 return; 25424 } 25425 event.preventDefault(); 25426 25427 // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ 25428 const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); 25429 const instance = Dropdown.getOrCreateInstance(getToggleButton); 25430 if (isUpOrDownEvent) { 25431 event.stopPropagation(); 25432 instance.show(); 25433 instance._selectMenuItem(event); 25434 return; 25435 } 25436 if (instance._isShown()) { 25437 // else is escape and we check if it is shown 25438 event.stopPropagation(); 25439 instance.hide(); 25440 getToggleButton.focus(); 25441 } 25442 } 25443} 25444 25445/** 25446 * Data API implementation 25447 */ 25448 25449EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler); 25450EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); 25451EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus); 25452EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); 25453EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) { 25454 event.preventDefault(); 25455 Dropdown.getOrCreateInstance(this).toggle(); 25456}); 25457 25458/** 25459 * jQuery 25460 */ 25461 25462defineJQueryPlugin(Dropdown); 25463 25464/** 25465 * -------------------------------------------------------------------------- 25466 * Bootstrap util/backdrop.js 25467 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 25468 * -------------------------------------------------------------------------- 25469 */ 25470 25471 25472/** 25473 * Constants 25474 */ 25475 25476const NAME$9 = 'backdrop'; 25477const CLASS_NAME_FADE$4 = 'fade'; 25478const CLASS_NAME_SHOW$5 = 'show'; 25479const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`; 25480const Default$8 = { 25481 className: 'modal-backdrop', 25482 clickCallback: null, 25483 isAnimated: false, 25484 isVisible: true, 25485 // if false, we use the backdrop helper without adding any element to the dom 25486 rootElement: 'body' // give the choice to place backdrop under different elements 25487}; 25488const DefaultType$8 = { 25489 className: 'string', 25490 clickCallback: '(function|null)', 25491 isAnimated: 'boolean', 25492 isVisible: 'boolean', 25493 rootElement: '(element|string)' 25494}; 25495 25496/** 25497 * Class definition 25498 */ 25499 25500class Backdrop extends Config { 25501 constructor(config) { 25502 super(); 25503 this._config = this._getConfig(config); 25504 this._isAppended = false; 25505 this._element = null; 25506 } 25507 25508 // Getters 25509 static get Default() { 25510 return Default$8; 25511 } 25512 static get DefaultType() { 25513 return DefaultType$8; 25514 } 25515 static get NAME() { 25516 return NAME$9; 25517 } 25518 25519 // Public 25520 show(callback) { 25521 if (!this._config.isVisible) { 25522 execute(callback); 25523 return; 25524 } 25525 this._append(); 25526 const element = this._getElement(); 25527 if (this._config.isAnimated) { 25528 reflow(element); 25529 } 25530 element.classList.add(CLASS_NAME_SHOW$5); 25531 this._emulateAnimation(() => { 25532 execute(callback); 25533 }); 25534 } 25535 hide(callback) { 25536 if (!this._config.isVisible) { 25537 execute(callback); 25538 return; 25539 } 25540 this._getElement().classList.remove(CLASS_NAME_SHOW$5); 25541 this._emulateAnimation(() => { 25542 this.dispose(); 25543 execute(callback); 25544 }); 25545 } 25546 dispose() { 25547 if (!this._isAppended) { 25548 return; 25549 } 25550 EventHandler.off(this._element, EVENT_MOUSEDOWN); 25551 this._element.remove(); 25552 this._isAppended = false; 25553 } 25554 25555 // Private 25556 _getElement() { 25557 if (!this._element) { 25558 const backdrop = document.createElement('div'); 25559 backdrop.className = this._config.className; 25560 if (this._config.isAnimated) { 25561 backdrop.classList.add(CLASS_NAME_FADE$4); 25562 } 25563 this._element = backdrop; 25564 } 25565 return this._element; 25566 } 25567 _configAfterMerge(config) { 25568 // use getElement() with the default "body" to get a fresh Element on each instantiation 25569 config.rootElement = getElement(config.rootElement); 25570 return config; 25571 } 25572 _append() { 25573 if (this._isAppended) { 25574 return; 25575 } 25576 const element = this._getElement(); 25577 this._config.rootElement.append(element); 25578 EventHandler.on(element, EVENT_MOUSEDOWN, () => { 25579 execute(this._config.clickCallback); 25580 }); 25581 this._isAppended = true; 25582 } 25583 _emulateAnimation(callback) { 25584 executeAfterTransition(callback, this._getElement(), this._config.isAnimated); 25585 } 25586} 25587 25588/** 25589 * -------------------------------------------------------------------------- 25590 * Bootstrap util/focustrap.js 25591 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 25592 * -------------------------------------------------------------------------- 25593 */ 25594 25595 25596/** 25597 * Constants 25598 */ 25599 25600const NAME$8 = 'focustrap'; 25601const DATA_KEY$5 = 'bs.focustrap'; 25602const EVENT_KEY$5 = `.${DATA_KEY$5}`; 25603const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`; 25604const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`; 25605const TAB_KEY = 'Tab'; 25606const TAB_NAV_FORWARD = 'forward'; 25607const TAB_NAV_BACKWARD = 'backward'; 25608const Default$7 = { 25609 autofocus: true, 25610 trapElement: null // The element to trap focus inside of 25611}; 25612const DefaultType$7 = { 25613 autofocus: 'boolean', 25614 trapElement: 'element' 25615}; 25616 25617/** 25618 * Class definition 25619 */ 25620 25621class FocusTrap extends Config { 25622 constructor(config) { 25623 super(); 25624 this._config = this._getConfig(config); 25625 this._isActive = false; 25626 this._lastTabNavDirection = null; 25627 } 25628 25629 // Getters 25630 static get Default() { 25631 return Default$7; 25632 } 25633 static get DefaultType() { 25634 return DefaultType$7; 25635 } 25636 static get NAME() { 25637 return NAME$8; 25638 } 25639 25640 // Public 25641 activate() { 25642 if (this._isActive) { 25643 return; 25644 } 25645 if (this._config.autofocus) { 25646 this._config.trapElement.focus(); 25647 } 25648 EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop 25649 EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event)); 25650 EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event)); 25651 this._isActive = true; 25652 } 25653 deactivate() { 25654 if (!this._isActive) { 25655 return; 25656 } 25657 this._isActive = false; 25658 EventHandler.off(document, EVENT_KEY$5); 25659 } 25660 25661 // Private 25662 _handleFocusin(event) { 25663 const { 25664 trapElement 25665 } = this._config; 25666 if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) { 25667 return; 25668 } 25669 const elements = SelectorEngine.focusableChildren(trapElement); 25670 if (elements.length === 0) { 25671 trapElement.focus(); 25672 } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) { 25673 elements[elements.length - 1].focus(); 25674 } else { 25675 elements[0].focus(); 25676 } 25677 } 25678 _handleKeydown(event) { 25679 if (event.key !== TAB_KEY) { 25680 return; 25681 } 25682 this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD; 25683 } 25684} 25685 25686/** 25687 * -------------------------------------------------------------------------- 25688 * Bootstrap util/scrollBar.js 25689 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 25690 * -------------------------------------------------------------------------- 25691 */ 25692 25693 25694/** 25695 * Constants 25696 */ 25697 25698const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; 25699const SELECTOR_STICKY_CONTENT = '.sticky-top'; 25700const PROPERTY_PADDING = 'padding-right'; 25701const PROPERTY_MARGIN = 'margin-right'; 25702 25703/** 25704 * Class definition 25705 */ 25706 25707class ScrollBarHelper { 25708 constructor() { 25709 this._element = document.body; 25710 } 25711 25712 // Public 25713 getWidth() { 25714 // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes 25715 const documentWidth = document.documentElement.clientWidth; 25716 return Math.abs(window.innerWidth - documentWidth); 25717 } 25718 hide() { 25719 const width = this.getWidth(); 25720 this._disableOverFlow(); 25721 // give padding to element to balance the hidden scrollbar width 25722 this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); 25723 // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth 25724 this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width); 25725 this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width); 25726 } 25727 reset() { 25728 this._resetElementAttributes(this._element, 'overflow'); 25729 this._resetElementAttributes(this._element, PROPERTY_PADDING); 25730 this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING); 25731 this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN); 25732 } 25733 isOverflowing() { 25734 return this.getWidth() > 0; 25735 } 25736 25737 // Private 25738 _disableOverFlow() { 25739 this._saveInitialAttribute(this._element, 'overflow'); 25740 this._element.style.overflow = 'hidden'; 25741 } 25742 _setElementAttributes(selector, styleProperty, callback) { 25743 const scrollbarWidth = this.getWidth(); 25744 const manipulationCallBack = element => { 25745 if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) { 25746 return; 25747 } 25748 this._saveInitialAttribute(element, styleProperty); 25749 const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty); 25750 element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`); 25751 }; 25752 this._applyManipulationCallback(selector, manipulationCallBack); 25753 } 25754 _saveInitialAttribute(element, styleProperty) { 25755 const actualValue = element.style.getPropertyValue(styleProperty); 25756 if (actualValue) { 25757 Manipulator.setDataAttribute(element, styleProperty, actualValue); 25758 } 25759 } 25760 _resetElementAttributes(selector, styleProperty) { 25761 const manipulationCallBack = element => { 25762 const value = Manipulator.getDataAttribute(element, styleProperty); 25763 // We only want to remove the property if the value is `null`; the value can also be zero 25764 if (value === null) { 25765 element.style.removeProperty(styleProperty); 25766 return; 25767 } 25768 Manipulator.removeDataAttribute(element, styleProperty); 25769 element.style.setProperty(styleProperty, value); 25770 }; 25771 this._applyManipulationCallback(selector, manipulationCallBack); 25772 } 25773 _applyManipulationCallback(selector, callBack) { 25774 if (isElement(selector)) { 25775 callBack(selector); 25776 return; 25777 } 25778 for (const sel of SelectorEngine.find(selector, this._element)) { 25779 callBack(sel); 25780 } 25781 } 25782} 25783 25784/** 25785 * -------------------------------------------------------------------------- 25786 * Bootstrap modal.js 25787 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 25788 * -------------------------------------------------------------------------- 25789 */ 25790 25791 25792/** 25793 * Constants 25794 */ 25795 25796const NAME$7 = 'modal'; 25797const DATA_KEY$4 = 'bs.modal'; 25798const EVENT_KEY$4 = `.${DATA_KEY$4}`; 25799const DATA_API_KEY$2 = '.data-api'; 25800const ESCAPE_KEY$1 = 'Escape'; 25801const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`; 25802const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`; 25803const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`; 25804const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; 25805const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; 25806const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; 25807const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`; 25808const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; 25809const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; 25810const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; 25811const CLASS_NAME_OPEN = 'modal-open'; 25812const CLASS_NAME_FADE$3 = 'fade'; 25813const CLASS_NAME_SHOW$4 = 'show'; 25814const CLASS_NAME_STATIC = 'modal-static'; 25815const OPEN_SELECTOR$1 = '.modal.show'; 25816const SELECTOR_DIALOG = '.modal-dialog'; 25817const SELECTOR_MODAL_BODY = '.modal-body'; 25818const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; 25819const Default$6 = { 25820 backdrop: true, 25821 focus: true, 25822 keyboard: true 25823}; 25824const DefaultType$6 = { 25825 backdrop: '(boolean|string)', 25826 focus: 'boolean', 25827 keyboard: 'boolean' 25828}; 25829 25830/** 25831 * Class definition 25832 */ 25833 25834class Modal extends BaseComponent { 25835 constructor(element, config) { 25836 super(element, config); 25837 this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); 25838 this._backdrop = this._initializeBackDrop(); 25839 this._focustrap = this._initializeFocusTrap(); 25840 this._isShown = false; 25841 this._isTransitioning = false; 25842 this._scrollBar = new ScrollBarHelper(); 25843 this._addEventListeners(); 25844 } 25845 25846 // Getters 25847 static get Default() { 25848 return Default$6; 25849 } 25850 static get DefaultType() { 25851 return DefaultType$6; 25852 } 25853 static get NAME() { 25854 return NAME$7; 25855 } 25856 25857 // Public 25858 toggle(relatedTarget) { 25859 return this._isShown ? this.hide() : this.show(relatedTarget); 25860 } 25861 show(relatedTarget) { 25862 if (this._isShown || this._isTransitioning) { 25863 return; 25864 } 25865 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, { 25866 relatedTarget 25867 }); 25868 if (showEvent.defaultPrevented) { 25869 return; 25870 } 25871 this._isShown = true; 25872 this._isTransitioning = true; 25873 this._scrollBar.hide(); 25874 document.body.classList.add(CLASS_NAME_OPEN); 25875 this._adjustDialog(); 25876 this._backdrop.show(() => this._showElement(relatedTarget)); 25877 } 25878 hide() { 25879 if (!this._isShown || this._isTransitioning) { 25880 return; 25881 } 25882 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); 25883 if (hideEvent.defaultPrevented) { 25884 return; 25885 } 25886 this._isShown = false; 25887 this._isTransitioning = true; 25888 this._focustrap.deactivate(); 25889 this._element.classList.remove(CLASS_NAME_SHOW$4); 25890 this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); 25891 } 25892 dispose() { 25893 EventHandler.off(window, EVENT_KEY$4); 25894 EventHandler.off(this._dialog, EVENT_KEY$4); 25895 this._backdrop.dispose(); 25896 this._focustrap.deactivate(); 25897 super.dispose(); 25898 } 25899 handleUpdate() { 25900 this._adjustDialog(); 25901 } 25902 25903 // Private 25904 _initializeBackDrop() { 25905 return new Backdrop({ 25906 isVisible: Boolean(this._config.backdrop), 25907 // 'static' option will be translated to true, and booleans will keep their value, 25908 isAnimated: this._isAnimated() 25909 }); 25910 } 25911 _initializeFocusTrap() { 25912 return new FocusTrap({ 25913 trapElement: this._element 25914 }); 25915 } 25916 _showElement(relatedTarget) { 25917 // try to append dynamic modal 25918 if (!document.body.contains(this._element)) { 25919 document.body.append(this._element); 25920 } 25921 this._element.style.display = 'block'; 25922 this._element.removeAttribute('aria-hidden'); 25923 this._element.setAttribute('aria-modal', true); 25924 this._element.setAttribute('role', 'dialog'); 25925 this._element.scrollTop = 0; 25926 const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); 25927 if (modalBody) { 25928 modalBody.scrollTop = 0; 25929 } 25930 reflow(this._element); 25931 this._element.classList.add(CLASS_NAME_SHOW$4); 25932 const transitionComplete = () => { 25933 if (this._config.focus) { 25934 this._focustrap.activate(); 25935 } 25936 this._isTransitioning = false; 25937 EventHandler.trigger(this._element, EVENT_SHOWN$4, { 25938 relatedTarget 25939 }); 25940 }; 25941 this._queueCallback(transitionComplete, this._dialog, this._isAnimated()); 25942 } 25943 _addEventListeners() { 25944 EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => { 25945 if (event.key !== ESCAPE_KEY$1) { 25946 return; 25947 } 25948 if (this._config.keyboard) { 25949 this.hide(); 25950 return; 25951 } 25952 this._triggerBackdropTransition(); 25953 }); 25954 EventHandler.on(window, EVENT_RESIZE$1, () => { 25955 if (this._isShown && !this._isTransitioning) { 25956 this._adjustDialog(); 25957 } 25958 }); 25959 EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => { 25960 // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks 25961 EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => { 25962 if (this._element !== event.target || this._element !== event2.target) { 25963 return; 25964 } 25965 if (this._config.backdrop === 'static') { 25966 this._triggerBackdropTransition(); 25967 return; 25968 } 25969 if (this._config.backdrop) { 25970 this.hide(); 25971 } 25972 }); 25973 }); 25974 } 25975 _hideModal() { 25976 this._element.style.display = 'none'; 25977 this._element.setAttribute('aria-hidden', true); 25978 this._element.removeAttribute('aria-modal'); 25979 this._element.removeAttribute('role'); 25980 this._isTransitioning = false; 25981 this._backdrop.hide(() => { 25982 document.body.classList.remove(CLASS_NAME_OPEN); 25983 this._resetAdjustments(); 25984 this._scrollBar.reset(); 25985 EventHandler.trigger(this._element, EVENT_HIDDEN$4); 25986 }); 25987 } 25988 _isAnimated() { 25989 return this._element.classList.contains(CLASS_NAME_FADE$3); 25990 } 25991 _triggerBackdropTransition() { 25992 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1); 25993 if (hideEvent.defaultPrevented) { 25994 return; 25995 } 25996 const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 25997 const initialOverflowY = this._element.style.overflowY; 25998 // return if the following background transition hasn't yet completed 25999 if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) { 26000 return; 26001 } 26002 if (!isModalOverflowing) { 26003 this._element.style.overflowY = 'hidden'; 26004 } 26005 this._element.classList.add(CLASS_NAME_STATIC); 26006 this._queueCallback(() => { 26007 this._element.classList.remove(CLASS_NAME_STATIC); 26008 this._queueCallback(() => { 26009 this._element.style.overflowY = initialOverflowY; 26010 }, this._dialog); 26011 }, this._dialog); 26012 this._element.focus(); 26013 } 26014 26015 /** 26016 * The following methods are used to handle overflowing modals 26017 */ 26018 26019 _adjustDialog() { 26020 const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 26021 const scrollbarWidth = this._scrollBar.getWidth(); 26022 const isBodyOverflowing = scrollbarWidth > 0; 26023 if (isBodyOverflowing && !isModalOverflowing) { 26024 const property = isRTL() ? 'paddingLeft' : 'paddingRight'; 26025 this._element.style[property] = `${scrollbarWidth}px`; 26026 } 26027 if (!isBodyOverflowing && isModalOverflowing) { 26028 const property = isRTL() ? 'paddingRight' : 'paddingLeft'; 26029 this._element.style[property] = `${scrollbarWidth}px`; 26030 } 26031 } 26032 _resetAdjustments() { 26033 this._element.style.paddingLeft = ''; 26034 this._element.style.paddingRight = ''; 26035 } 26036 26037 // Static 26038 static jQueryInterface(config, relatedTarget) { 26039 return this.each(function () { 26040 const data = Modal.getOrCreateInstance(this, config); 26041 if (typeof config !== 'string') { 26042 return; 26043 } 26044 if (typeof data[config] === 'undefined') { 26045 throw new TypeError(`No method named "${config}"`); 26046 } 26047 data[config](relatedTarget); 26048 }); 26049 } 26050} 26051 26052/** 26053 * Data API implementation 26054 */ 26055 26056EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) { 26057 const target = SelectorEngine.getElementFromSelector(this); 26058 if (['A', 'AREA'].includes(this.tagName)) { 26059 event.preventDefault(); 26060 } 26061 EventHandler.one(target, EVENT_SHOW$4, showEvent => { 26062 if (showEvent.defaultPrevented) { 26063 // only register focus restorer if modal will actually get shown 26064 return; 26065 } 26066 EventHandler.one(target, EVENT_HIDDEN$4, () => { 26067 if (isVisible(this)) { 26068 this.focus(); 26069 } 26070 }); 26071 }); 26072 26073 // avoid conflict when clicking modal toggler while another one is open 26074 const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1); 26075 if (alreadyOpen) { 26076 Modal.getInstance(alreadyOpen).hide(); 26077 } 26078 const data = Modal.getOrCreateInstance(target); 26079 data.toggle(this); 26080}); 26081enableDismissTrigger(Modal); 26082 26083/** 26084 * jQuery 26085 */ 26086 26087defineJQueryPlugin(Modal); 26088 26089/** 26090 * -------------------------------------------------------------------------- 26091 * Bootstrap offcanvas.js 26092 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 26093 * -------------------------------------------------------------------------- 26094 */ 26095 26096 26097/** 26098 * Constants 26099 */ 26100 26101const NAME$6 = 'offcanvas'; 26102const DATA_KEY$3 = 'bs.offcanvas'; 26103const EVENT_KEY$3 = `.${DATA_KEY$3}`; 26104const DATA_API_KEY$1 = '.data-api'; 26105const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`; 26106const ESCAPE_KEY = 'Escape'; 26107const CLASS_NAME_SHOW$3 = 'show'; 26108const CLASS_NAME_SHOWING$1 = 'showing'; 26109const CLASS_NAME_HIDING = 'hiding'; 26110const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'; 26111const OPEN_SELECTOR = '.offcanvas.show'; 26112const EVENT_SHOW$3 = `show${EVENT_KEY$3}`; 26113const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`; 26114const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`; 26115const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`; 26116const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`; 26117const EVENT_RESIZE = `resize${EVENT_KEY$3}`; 26118const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`; 26119const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`; 26120const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; 26121const Default$5 = { 26122 backdrop: true, 26123 keyboard: true, 26124 scroll: false 26125}; 26126const DefaultType$5 = { 26127 backdrop: '(boolean|string)', 26128 keyboard: 'boolean', 26129 scroll: 'boolean' 26130}; 26131 26132/** 26133 * Class definition 26134 */ 26135 26136class Offcanvas extends BaseComponent { 26137 constructor(element, config) { 26138 super(element, config); 26139 this._isShown = false; 26140 this._backdrop = this._initializeBackDrop(); 26141 this._focustrap = this._initializeFocusTrap(); 26142 this._addEventListeners(); 26143 } 26144 26145 // Getters 26146 static get Default() { 26147 return Default$5; 26148 } 26149 static get DefaultType() { 26150 return DefaultType$5; 26151 } 26152 static get NAME() { 26153 return NAME$6; 26154 } 26155 26156 // Public 26157 toggle(relatedTarget) { 26158 return this._isShown ? this.hide() : this.show(relatedTarget); 26159 } 26160 show(relatedTarget) { 26161 if (this._isShown) { 26162 return; 26163 } 26164 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { 26165 relatedTarget 26166 }); 26167 if (showEvent.defaultPrevented) { 26168 return; 26169 } 26170 this._isShown = true; 26171 this._backdrop.show(); 26172 if (!this._config.scroll) { 26173 new ScrollBarHelper().hide(); 26174 } 26175 this._element.setAttribute('aria-modal', true); 26176 this._element.setAttribute('role', 'dialog'); 26177 this._element.classList.add(CLASS_NAME_SHOWING$1); 26178 const completeCallBack = () => { 26179 if (!this._config.scroll || this._config.backdrop) { 26180 this._focustrap.activate(); 26181 } 26182 this._element.classList.add(CLASS_NAME_SHOW$3); 26183 this._element.classList.remove(CLASS_NAME_SHOWING$1); 26184 EventHandler.trigger(this._element, EVENT_SHOWN$3, { 26185 relatedTarget 26186 }); 26187 }; 26188 this._queueCallback(completeCallBack, this._element, true); 26189 } 26190 hide() { 26191 if (!this._isShown) { 26192 return; 26193 } 26194 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); 26195 if (hideEvent.defaultPrevented) { 26196 return; 26197 } 26198 this._focustrap.deactivate(); 26199 this._element.blur(); 26200 this._isShown = false; 26201 this._element.classList.add(CLASS_NAME_HIDING); 26202 this._backdrop.hide(); 26203 const completeCallback = () => { 26204 this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING); 26205 this._element.removeAttribute('aria-modal'); 26206 this._element.removeAttribute('role'); 26207 if (!this._config.scroll) { 26208 new ScrollBarHelper().reset(); 26209 } 26210 EventHandler.trigger(this._element, EVENT_HIDDEN$3); 26211 }; 26212 this._queueCallback(completeCallback, this._element, true); 26213 } 26214 dispose() { 26215 this._backdrop.dispose(); 26216 this._focustrap.deactivate(); 26217 super.dispose(); 26218 } 26219 26220 // Private 26221 _initializeBackDrop() { 26222 const clickCallback = () => { 26223 if (this._config.backdrop === 'static') { 26224 EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); 26225 return; 26226 } 26227 this.hide(); 26228 }; 26229 26230 // 'static' option will be translated to true, and booleans will keep their value 26231 const isVisible = Boolean(this._config.backdrop); 26232 return new Backdrop({ 26233 className: CLASS_NAME_BACKDROP, 26234 isVisible, 26235 isAnimated: true, 26236 rootElement: this._element.parentNode, 26237 clickCallback: isVisible ? clickCallback : null 26238 }); 26239 } 26240 _initializeFocusTrap() { 26241 return new FocusTrap({ 26242 trapElement: this._element 26243 }); 26244 } 26245 _addEventListeners() { 26246 EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { 26247 if (event.key !== ESCAPE_KEY) { 26248 return; 26249 } 26250 if (this._config.keyboard) { 26251 this.hide(); 26252 return; 26253 } 26254 EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); 26255 }); 26256 } 26257 26258 // Static 26259 static jQueryInterface(config) { 26260 return this.each(function () { 26261 const data = Offcanvas.getOrCreateInstance(this, config); 26262 if (typeof config !== 'string') { 26263 return; 26264 } 26265 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 26266 throw new TypeError(`No method named "${config}"`); 26267 } 26268 data[config](this); 26269 }); 26270 } 26271} 26272 26273/** 26274 * Data API implementation 26275 */ 26276 26277EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) { 26278 const target = SelectorEngine.getElementFromSelector(this); 26279 if (['A', 'AREA'].includes(this.tagName)) { 26280 event.preventDefault(); 26281 } 26282 if (isDisabled(this)) { 26283 return; 26284 } 26285 EventHandler.one(target, EVENT_HIDDEN$3, () => { 26286 // focus on trigger when it is closed 26287 if (isVisible(this)) { 26288 this.focus(); 26289 } 26290 }); 26291 26292 // avoid conflict when clicking a toggler of an offcanvas, while another is open 26293 const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); 26294 if (alreadyOpen && alreadyOpen !== target) { 26295 Offcanvas.getInstance(alreadyOpen).hide(); 26296 } 26297 const data = Offcanvas.getOrCreateInstance(target); 26298 data.toggle(this); 26299}); 26300EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { 26301 for (const selector of SelectorEngine.find(OPEN_SELECTOR)) { 26302 Offcanvas.getOrCreateInstance(selector).show(); 26303 } 26304}); 26305EventHandler.on(window, EVENT_RESIZE, () => { 26306 for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) { 26307 if (getComputedStyle(element).position !== 'fixed') { 26308 Offcanvas.getOrCreateInstance(element).hide(); 26309 } 26310 } 26311}); 26312enableDismissTrigger(Offcanvas); 26313 26314/** 26315 * jQuery 26316 */ 26317 26318defineJQueryPlugin(Offcanvas); 26319 26320/** 26321 * -------------------------------------------------------------------------- 26322 * Bootstrap util/sanitizer.js 26323 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 26324 * -------------------------------------------------------------------------- 26325 */ 26326 26327// js-docs-start allow-list 26328const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; 26329const DefaultAllowlist = { 26330 // Global attributes allowed on any supplied element below. 26331 '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], 26332 a: ['target', 'href', 'title', 'rel'], 26333 area: [], 26334 b: [], 26335 br: [], 26336 col: [], 26337 code: [], 26338 dd: [], 26339 div: [], 26340 dl: [], 26341 dt: [], 26342 em: [], 26343 hr: [], 26344 h1: [], 26345 h2: [], 26346 h3: [], 26347 h4: [], 26348 h5: [], 26349 h6: [], 26350 i: [], 26351 img: ['src', 'srcset', 'alt', 'title', 'width', 'height'], 26352 li: [], 26353 ol: [], 26354 p: [], 26355 pre: [], 26356 s: [], 26357 small: [], 26358 span: [], 26359 sub: [], 26360 sup: [], 26361 strong: [], 26362 u: [], 26363 ul: [] 26364}; 26365// js-docs-end allow-list 26366 26367const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); 26368 26369/** 26370 * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation 26371 * contexts. 26372 * 26373 * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38 26374 */ 26375// eslint-disable-next-line unicorn/better-regex 26376const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i; 26377const allowedAttribute = (attribute, allowedAttributeList) => { 26378 const attributeName = attribute.nodeName.toLowerCase(); 26379 if (allowedAttributeList.includes(attributeName)) { 26380 if (uriAttributes.has(attributeName)) { 26381 return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue)); 26382 } 26383 return true; 26384 } 26385 26386 // Check if a regular expression validates the attribute. 26387 return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName)); 26388}; 26389function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { 26390 if (!unsafeHtml.length) { 26391 return unsafeHtml; 26392 } 26393 if (sanitizeFunction && typeof sanitizeFunction === 'function') { 26394 return sanitizeFunction(unsafeHtml); 26395 } 26396 const domParser = new window.DOMParser(); 26397 const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); 26398 const elements = [].concat(...createdDocument.body.querySelectorAll('*')); 26399 for (const element of elements) { 26400 const elementName = element.nodeName.toLowerCase(); 26401 if (!Object.keys(allowList).includes(elementName)) { 26402 element.remove(); 26403 continue; 26404 } 26405 const attributeList = [].concat(...element.attributes); 26406 const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []); 26407 for (const attribute of attributeList) { 26408 if (!allowedAttribute(attribute, allowedAttributes)) { 26409 element.removeAttribute(attribute.nodeName); 26410 } 26411 } 26412 } 26413 return createdDocument.body.innerHTML; 26414} 26415 26416/** 26417 * -------------------------------------------------------------------------- 26418 * Bootstrap util/template-factory.js 26419 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 26420 * -------------------------------------------------------------------------- 26421 */ 26422 26423 26424/** 26425 * Constants 26426 */ 26427 26428const NAME$5 = 'TemplateFactory'; 26429const Default$4 = { 26430 allowList: DefaultAllowlist, 26431 content: {}, 26432 // { selector : text , selector2 : text2 , } 26433 extraClass: '', 26434 html: false, 26435 sanitize: true, 26436 sanitizeFn: null, 26437 template: '<div></div>' 26438}; 26439const DefaultType$4 = { 26440 allowList: 'object', 26441 content: 'object', 26442 extraClass: '(string|function)', 26443 html: 'boolean', 26444 sanitize: 'boolean', 26445 sanitizeFn: '(null|function)', 26446 template: 'string' 26447}; 26448const DefaultContentType = { 26449 entry: '(string|element|function|null)', 26450 selector: '(string|element)' 26451}; 26452 26453/** 26454 * Class definition 26455 */ 26456 26457class TemplateFactory extends Config { 26458 constructor(config) { 26459 super(); 26460 this._config = this._getConfig(config); 26461 } 26462 26463 // Getters 26464 static get Default() { 26465 return Default$4; 26466 } 26467 static get DefaultType() { 26468 return DefaultType$4; 26469 } 26470 static get NAME() { 26471 return NAME$5; 26472 } 26473 26474 // Public 26475 getContent() { 26476 return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean); 26477 } 26478 hasContent() { 26479 return this.getContent().length > 0; 26480 } 26481 changeContent(content) { 26482 this._checkContent(content); 26483 this._config.content = { 26484 ...this._config.content, 26485 ...content 26486 }; 26487 return this; 26488 } 26489 toHtml() { 26490 const templateWrapper = document.createElement('div'); 26491 templateWrapper.innerHTML = this._maybeSanitize(this._config.template); 26492 for (const [selector, text] of Object.entries(this._config.content)) { 26493 this._setContent(templateWrapper, text, selector); 26494 } 26495 const template = templateWrapper.children[0]; 26496 const extraClass = this._resolvePossibleFunction(this._config.extraClass); 26497 if (extraClass) { 26498 template.classList.add(...extraClass.split(' ')); 26499 } 26500 return template; 26501 } 26502 26503 // Private 26504 _typeCheckConfig(config) { 26505 super._typeCheckConfig(config); 26506 this._checkContent(config.content); 26507 } 26508 _checkContent(arg) { 26509 for (const [selector, content] of Object.entries(arg)) { 26510 super._typeCheckConfig({ 26511 selector, 26512 entry: content 26513 }, DefaultContentType); 26514 } 26515 } 26516 _setContent(template, content, selector) { 26517 const templateElement = SelectorEngine.findOne(selector, template); 26518 if (!templateElement) { 26519 return; 26520 } 26521 content = this._resolvePossibleFunction(content); 26522 if (!content) { 26523 templateElement.remove(); 26524 return; 26525 } 26526 if (isElement(content)) { 26527 this._putElementInTemplate(getElement(content), templateElement); 26528 return; 26529 } 26530 if (this._config.html) { 26531 templateElement.innerHTML = this._maybeSanitize(content); 26532 return; 26533 } 26534 templateElement.textContent = content; 26535 } 26536 _maybeSanitize(arg) { 26537 return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; 26538 } 26539 _resolvePossibleFunction(arg) { 26540 return execute(arg, [this]); 26541 } 26542 _putElementInTemplate(element, templateElement) { 26543 if (this._config.html) { 26544 templateElement.innerHTML = ''; 26545 templateElement.append(element); 26546 return; 26547 } 26548 templateElement.textContent = element.textContent; 26549 } 26550} 26551 26552/** 26553 * -------------------------------------------------------------------------- 26554 * Bootstrap tooltip.js 26555 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 26556 * -------------------------------------------------------------------------- 26557 */ 26558 26559 26560/** 26561 * Constants 26562 */ 26563 26564const NAME$4 = 'tooltip'; 26565const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); 26566const CLASS_NAME_FADE$2 = 'fade'; 26567const CLASS_NAME_MODAL = 'modal'; 26568const CLASS_NAME_SHOW$2 = 'show'; 26569const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; 26570const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; 26571const EVENT_MODAL_HIDE = 'hide.bs.modal'; 26572const TRIGGER_HOVER = 'hover'; 26573const TRIGGER_FOCUS = 'focus'; 26574const TRIGGER_CLICK = 'click'; 26575const TRIGGER_MANUAL = 'manual'; 26576const EVENT_HIDE$2 = 'hide'; 26577const EVENT_HIDDEN$2 = 'hidden'; 26578const EVENT_SHOW$2 = 'show'; 26579const EVENT_SHOWN$2 = 'shown'; 26580const EVENT_INSERTED = 'inserted'; 26581const EVENT_CLICK$1 = 'click'; 26582const EVENT_FOCUSIN$1 = 'focusin'; 26583const EVENT_FOCUSOUT$1 = 'focusout'; 26584const EVENT_MOUSEENTER = 'mouseenter'; 26585const EVENT_MOUSELEAVE = 'mouseleave'; 26586const AttachmentMap = { 26587 AUTO: 'auto', 26588 TOP: 'top', 26589 RIGHT: isRTL() ? 'left' : 'right', 26590 BOTTOM: 'bottom', 26591 LEFT: isRTL() ? 'right' : 'left' 26592}; 26593const Default$3 = { 26594 allowList: DefaultAllowlist, 26595 animation: true, 26596 boundary: 'clippingParents', 26597 container: false, 26598 customClass: '', 26599 delay: 0, 26600 fallbackPlacements: ['top', 'right', 'bottom', 'left'], 26601 html: false, 26602 offset: [0, 6], 26603 placement: 'top', 26604 popperConfig: null, 26605 sanitize: true, 26606 sanitizeFn: null, 26607 selector: false, 26608 template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>', 26609 title: '', 26610 trigger: 'hover focus' 26611}; 26612const DefaultType$3 = { 26613 allowList: 'object', 26614 animation: 'boolean', 26615 boundary: '(string|element)', 26616 container: '(string|element|boolean)', 26617 customClass: '(string|function)', 26618 delay: '(number|object)', 26619 fallbackPlacements: 'array', 26620 html: 'boolean', 26621 offset: '(array|string|function)', 26622 placement: '(string|function)', 26623 popperConfig: '(null|object|function)', 26624 sanitize: 'boolean', 26625 sanitizeFn: '(null|function)', 26626 selector: '(string|boolean)', 26627 template: 'string', 26628 title: '(string|element|function)', 26629 trigger: 'string' 26630}; 26631 26632/** 26633 * Class definition 26634 */ 26635 26636class Tooltip extends BaseComponent { 26637 constructor(element, config) { 26638 if (typeof _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ === 'undefined') { 26639 throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); 26640 } 26641 super(element, config); 26642 26643 // Private 26644 this._isEnabled = true; 26645 this._timeout = 0; 26646 this._isHovered = null; 26647 this._activeTrigger = {}; 26648 this._popper = null; 26649 this._templateFactory = null; 26650 this._newContent = null; 26651 26652 // Protected 26653 this.tip = null; 26654 this._setListeners(); 26655 if (!this._config.selector) { 26656 this._fixTitle(); 26657 } 26658 } 26659 26660 // Getters 26661 static get Default() { 26662 return Default$3; 26663 } 26664 static get DefaultType() { 26665 return DefaultType$3; 26666 } 26667 static get NAME() { 26668 return NAME$4; 26669 } 26670 26671 // Public 26672 enable() { 26673 this._isEnabled = true; 26674 } 26675 disable() { 26676 this._isEnabled = false; 26677 } 26678 toggleEnabled() { 26679 this._isEnabled = !this._isEnabled; 26680 } 26681 toggle() { 26682 if (!this._isEnabled) { 26683 return; 26684 } 26685 this._activeTrigger.click = !this._activeTrigger.click; 26686 if (this._isShown()) { 26687 this._leave(); 26688 return; 26689 } 26690 this._enter(); 26691 } 26692 dispose() { 26693 clearTimeout(this._timeout); 26694 EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); 26695 if (this._element.getAttribute('data-bs-original-title')) { 26696 this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title')); 26697 } 26698 this._disposePopper(); 26699 super.dispose(); 26700 } 26701 show() { 26702 if (this._element.style.display === 'none') { 26703 throw new Error('Please use show on visible elements'); 26704 } 26705 if (!(this._isWithContent() && this._isEnabled)) { 26706 return; 26707 } 26708 const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2)); 26709 const shadowRoot = findShadowRoot(this._element); 26710 const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element); 26711 if (showEvent.defaultPrevented || !isInTheDom) { 26712 return; 26713 } 26714 26715 // TODO: v6 remove this or make it optional 26716 this._disposePopper(); 26717 const tip = this._getTipElement(); 26718 this._element.setAttribute('aria-describedby', tip.getAttribute('id')); 26719 const { 26720 container 26721 } = this._config; 26722 if (!this._element.ownerDocument.documentElement.contains(this.tip)) { 26723 container.append(tip); 26724 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); 26725 } 26726 this._popper = this._createPopper(tip); 26727 tip.classList.add(CLASS_NAME_SHOW$2); 26728 26729 // If this is a touch-enabled device we add extra 26730 // empty mouseover listeners to the body's immediate children; 26731 // only needed because of broken event delegation on iOS 26732 // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html 26733 if ('ontouchstart' in document.documentElement) { 26734 for (const element of [].concat(...document.body.children)) { 26735 EventHandler.on(element, 'mouseover', noop); 26736 } 26737 } 26738 const complete = () => { 26739 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); 26740 if (this._isHovered === false) { 26741 this._leave(); 26742 } 26743 this._isHovered = false; 26744 }; 26745 this._queueCallback(complete, this.tip, this._isAnimated()); 26746 } 26747 hide() { 26748 if (!this._isShown()) { 26749 return; 26750 } 26751 const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2)); 26752 if (hideEvent.defaultPrevented) { 26753 return; 26754 } 26755 const tip = this._getTipElement(); 26756 tip.classList.remove(CLASS_NAME_SHOW$2); 26757 26758 // If this is a touch-enabled device we remove the extra 26759 // empty mouseover listeners we added for iOS support 26760 if ('ontouchstart' in document.documentElement) { 26761 for (const element of [].concat(...document.body.children)) { 26762 EventHandler.off(element, 'mouseover', noop); 26763 } 26764 } 26765 this._activeTrigger[TRIGGER_CLICK] = false; 26766 this._activeTrigger[TRIGGER_FOCUS] = false; 26767 this._activeTrigger[TRIGGER_HOVER] = false; 26768 this._isHovered = null; // it is a trick to support manual triggering 26769 26770 const complete = () => { 26771 if (this._isWithActiveTrigger()) { 26772 return; 26773 } 26774 if (!this._isHovered) { 26775 this._disposePopper(); 26776 } 26777 this._element.removeAttribute('aria-describedby'); 26778 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); 26779 }; 26780 this._queueCallback(complete, this.tip, this._isAnimated()); 26781 } 26782 update() { 26783 if (this._popper) { 26784 this._popper.update(); 26785 } 26786 } 26787 26788 // Protected 26789 _isWithContent() { 26790 return Boolean(this._getTitle()); 26791 } 26792 _getTipElement() { 26793 if (!this.tip) { 26794 this.tip = this._createTipElement(this._newContent || this._getContentForTemplate()); 26795 } 26796 return this.tip; 26797 } 26798 _createTipElement(content) { 26799 const tip = this._getTemplateFactory(content).toHtml(); 26800 26801 // TODO: remove this check in v6 26802 if (!tip) { 26803 return null; 26804 } 26805 tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); 26806 // TODO: v6 the following can be achieved with CSS only 26807 tip.classList.add(`bs-${this.constructor.NAME}-auto`); 26808 const tipId = getUID(this.constructor.NAME).toString(); 26809 tip.setAttribute('id', tipId); 26810 if (this._isAnimated()) { 26811 tip.classList.add(CLASS_NAME_FADE$2); 26812 } 26813 return tip; 26814 } 26815 setContent(content) { 26816 this._newContent = content; 26817 if (this._isShown()) { 26818 this._disposePopper(); 26819 this.show(); 26820 } 26821 } 26822 _getTemplateFactory(content) { 26823 if (this._templateFactory) { 26824 this._templateFactory.changeContent(content); 26825 } else { 26826 this._templateFactory = new TemplateFactory({ 26827 ...this._config, 26828 // the `content` var has to be after `this._config` 26829 // to override config.content in case of popover 26830 content, 26831 extraClass: this._resolvePossibleFunction(this._config.customClass) 26832 }); 26833 } 26834 return this._templateFactory; 26835 } 26836 _getContentForTemplate() { 26837 return { 26838 [SELECTOR_TOOLTIP_INNER]: this._getTitle() 26839 }; 26840 } 26841 _getTitle() { 26842 return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title'); 26843 } 26844 26845 // Private 26846 _initializeOnDelegatedTarget(event) { 26847 return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); 26848 } 26849 _isAnimated() { 26850 return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2); 26851 } 26852 _isShown() { 26853 return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2); 26854 } 26855 _createPopper(tip) { 26856 const placement = execute(this._config.placement, [this, tip, this._element]); 26857 const attachment = AttachmentMap[placement.toUpperCase()]; 26858 return _popperjs_core__WEBPACK_IMPORTED_MODULE_1__.createPopper(this._element, tip, this._getPopperConfig(attachment)); 26859 } 26860 _getOffset() { 26861 const { 26862 offset 26863 } = this._config; 26864 if (typeof offset === 'string') { 26865 return offset.split(',').map(value => Number.parseInt(value, 10)); 26866 } 26867 if (typeof offset === 'function') { 26868 return popperData => offset(popperData, this._element); 26869 } 26870 return offset; 26871 } 26872 _resolvePossibleFunction(arg) { 26873 return execute(arg, [this._element]); 26874 } 26875 _getPopperConfig(attachment) { 26876 const defaultBsPopperConfig = { 26877 placement: attachment, 26878 modifiers: [{ 26879 name: 'flip', 26880 options: { 26881 fallbackPlacements: this._config.fallbackPlacements 26882 } 26883 }, { 26884 name: 'offset', 26885 options: { 26886 offset: this._getOffset() 26887 } 26888 }, { 26889 name: 'preventOverflow', 26890 options: { 26891 boundary: this._config.boundary 26892 } 26893 }, { 26894 name: 'arrow', 26895 options: { 26896 element: `.${this.constructor.NAME}-arrow` 26897 } 26898 }, { 26899 name: 'preSetPlacement', 26900 enabled: true, 26901 phase: 'beforeMain', 26902 fn: data => { 26903 // Pre-set Popper's placement attribute in order to read the arrow sizes properly. 26904 // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement 26905 this._getTipElement().setAttribute('data-popper-placement', data.state.placement); 26906 } 26907 }] 26908 }; 26909 return { 26910 ...defaultBsPopperConfig, 26911 ...execute(this._config.popperConfig, [defaultBsPopperConfig]) 26912 }; 26913 } 26914 _setListeners() { 26915 const triggers = this._config.trigger.split(' '); 26916 for (const trigger of triggers) { 26917 if (trigger === 'click') { 26918 EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => { 26919 const context = this._initializeOnDelegatedTarget(event); 26920 context.toggle(); 26921 }); 26922 } else if (trigger !== TRIGGER_MANUAL) { 26923 const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); 26924 const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); 26925 EventHandler.on(this._element, eventIn, this._config.selector, event => { 26926 const context = this._initializeOnDelegatedTarget(event); 26927 context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; 26928 context._enter(); 26929 }); 26930 EventHandler.on(this._element, eventOut, this._config.selector, event => { 26931 const context = this._initializeOnDelegatedTarget(event); 26932 context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); 26933 context._leave(); 26934 }); 26935 } 26936 } 26937 this._hideModalHandler = () => { 26938 if (this._element) { 26939 this.hide(); 26940 } 26941 }; 26942 EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); 26943 } 26944 _fixTitle() { 26945 const title = this._element.getAttribute('title'); 26946 if (!title) { 26947 return; 26948 } 26949 if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) { 26950 this._element.setAttribute('aria-label', title); 26951 } 26952 this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility 26953 this._element.removeAttribute('title'); 26954 } 26955 _enter() { 26956 if (this._isShown() || this._isHovered) { 26957 this._isHovered = true; 26958 return; 26959 } 26960 this._isHovered = true; 26961 this._setTimeout(() => { 26962 if (this._isHovered) { 26963 this.show(); 26964 } 26965 }, this._config.delay.show); 26966 } 26967 _leave() { 26968 if (this._isWithActiveTrigger()) { 26969 return; 26970 } 26971 this._isHovered = false; 26972 this._setTimeout(() => { 26973 if (!this._isHovered) { 26974 this.hide(); 26975 } 26976 }, this._config.delay.hide); 26977 } 26978 _setTimeout(handler, timeout) { 26979 clearTimeout(this._timeout); 26980 this._timeout = setTimeout(handler, timeout); 26981 } 26982 _isWithActiveTrigger() { 26983 return Object.values(this._activeTrigger).includes(true); 26984 } 26985 _getConfig(config) { 26986 const dataAttributes = Manipulator.getDataAttributes(this._element); 26987 for (const dataAttribute of Object.keys(dataAttributes)) { 26988 if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) { 26989 delete dataAttributes[dataAttribute]; 26990 } 26991 } 26992 config = { 26993 ...dataAttributes, 26994 ...(typeof config === 'object' && config ? config : {}) 26995 }; 26996 config = this._mergeConfigObj(config); 26997 config = this._configAfterMerge(config); 26998 this._typeCheckConfig(config); 26999 return config; 27000 } 27001 _configAfterMerge(config) { 27002 config.container = config.container === false ? document.body : getElement(config.container); 27003 if (typeof config.delay === 'number') { 27004 config.delay = { 27005 show: config.delay, 27006 hide: config.delay 27007 }; 27008 } 27009 if (typeof config.title === 'number') { 27010 config.title = config.title.toString(); 27011 } 27012 if (typeof config.content === 'number') { 27013 config.content = config.content.toString(); 27014 } 27015 return config; 27016 } 27017 _getDelegateConfig() { 27018 const config = {}; 27019 for (const [key, value] of Object.entries(this._config)) { 27020 if (this.constructor.Default[key] !== value) { 27021 config[key] = value; 27022 } 27023 } 27024 config.selector = false; 27025 config.trigger = 'manual'; 27026 27027 // In the future can be replaced with: 27028 // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]]) 27029 // `Object.fromEntries(keysWithDifferentValues)` 27030 return config; 27031 } 27032 _disposePopper() { 27033 if (this._popper) { 27034 this._popper.destroy(); 27035 this._popper = null; 27036 } 27037 if (this.tip) { 27038 this.tip.remove(); 27039 this.tip = null; 27040 } 27041 } 27042 27043 // Static 27044 static jQueryInterface(config) { 27045 return this.each(function () { 27046 const data = Tooltip.getOrCreateInstance(this, config); 27047 if (typeof config !== 'string') { 27048 return; 27049 } 27050 if (typeof data[config] === 'undefined') { 27051 throw new TypeError(`No method named "${config}"`); 27052 } 27053 data[config](); 27054 }); 27055 } 27056} 27057 27058/** 27059 * jQuery 27060 */ 27061 27062defineJQueryPlugin(Tooltip); 27063 27064/** 27065 * -------------------------------------------------------------------------- 27066 * Bootstrap popover.js 27067 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 27068 * -------------------------------------------------------------------------- 27069 */ 27070 27071 27072/** 27073 * Constants 27074 */ 27075 27076const NAME$3 = 'popover'; 27077const SELECTOR_TITLE = '.popover-header'; 27078const SELECTOR_CONTENT = '.popover-body'; 27079const Default$2 = { 27080 ...Tooltip.Default, 27081 content: '', 27082 offset: [0, 8], 27083 placement: 'right', 27084 template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>', 27085 trigger: 'click' 27086}; 27087const DefaultType$2 = { 27088 ...Tooltip.DefaultType, 27089 content: '(null|string|element|function)' 27090}; 27091 27092/** 27093 * Class definition 27094 */ 27095 27096class Popover extends Tooltip { 27097 // Getters 27098 static get Default() { 27099 return Default$2; 27100 } 27101 static get DefaultType() { 27102 return DefaultType$2; 27103 } 27104 static get NAME() { 27105 return NAME$3; 27106 } 27107 27108 // Overrides 27109 _isWithContent() { 27110 return this._getTitle() || this._getContent(); 27111 } 27112 27113 // Private 27114 _getContentForTemplate() { 27115 return { 27116 [SELECTOR_TITLE]: this._getTitle(), 27117 [SELECTOR_CONTENT]: this._getContent() 27118 }; 27119 } 27120 _getContent() { 27121 return this._resolvePossibleFunction(this._config.content); 27122 } 27123 27124 // Static 27125 static jQueryInterface(config) { 27126 return this.each(function () { 27127 const data = Popover.getOrCreateInstance(this, config); 27128 if (typeof config !== 'string') { 27129 return; 27130 } 27131 if (typeof data[config] === 'undefined') { 27132 throw new TypeError(`No method named "${config}"`); 27133 } 27134 data[config](); 27135 }); 27136 } 27137} 27138 27139/** 27140 * jQuery 27141 */ 27142 27143defineJQueryPlugin(Popover); 27144 27145/** 27146 * -------------------------------------------------------------------------- 27147 * Bootstrap scrollspy.js 27148 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 27149 * -------------------------------------------------------------------------- 27150 */ 27151 27152 27153/** 27154 * Constants 27155 */ 27156 27157const NAME$2 = 'scrollspy'; 27158const DATA_KEY$2 = 'bs.scrollspy'; 27159const EVENT_KEY$2 = `.${DATA_KEY$2}`; 27160const DATA_API_KEY = '.data-api'; 27161const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; 27162const EVENT_CLICK = `click${EVENT_KEY$2}`; 27163const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`; 27164const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; 27165const CLASS_NAME_ACTIVE$1 = 'active'; 27166const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; 27167const SELECTOR_TARGET_LINKS = '[href]'; 27168const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; 27169const SELECTOR_NAV_LINKS = '.nav-link'; 27170const SELECTOR_NAV_ITEMS = '.nav-item'; 27171const SELECTOR_LIST_ITEMS = '.list-group-item'; 27172const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; 27173const SELECTOR_DROPDOWN = '.dropdown'; 27174const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; 27175const Default$1 = { 27176 offset: null, 27177 // TODO: v6 @deprecated, keep it for backwards compatibility reasons 27178 rootMargin: '0px 0px -25%', 27179 smoothScroll: false, 27180 target: null, 27181 threshold: [0.1, 0.5, 1] 27182}; 27183const DefaultType$1 = { 27184 offset: '(number|null)', 27185 // TODO v6 @deprecated, keep it for backwards compatibility reasons 27186 rootMargin: 'string', 27187 smoothScroll: 'boolean', 27188 target: 'element', 27189 threshold: 'array' 27190}; 27191 27192/** 27193 * Class definition 27194 */ 27195 27196class ScrollSpy extends BaseComponent { 27197 constructor(element, config) { 27198 super(element, config); 27199 27200 // this._element is the observablesContainer and config.target the menu links wrapper 27201 this._targetLinks = new Map(); 27202 this._observableSections = new Map(); 27203 this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element; 27204 this._activeTarget = null; 27205 this._observer = null; 27206 this._previousScrollData = { 27207 visibleEntryTop: 0, 27208 parentScrollTop: 0 27209 }; 27210 this.refresh(); // initialize 27211 } 27212 27213 // Getters 27214 static get Default() { 27215 return Default$1; 27216 } 27217 static get DefaultType() { 27218 return DefaultType$1; 27219 } 27220 static get NAME() { 27221 return NAME$2; 27222 } 27223 27224 // Public 27225 refresh() { 27226 this._initializeTargetsAndObservables(); 27227 this._maybeEnableSmoothScroll(); 27228 if (this._observer) { 27229 this._observer.disconnect(); 27230 } else { 27231 this._observer = this._getNewObserver(); 27232 } 27233 for (const section of this._observableSections.values()) { 27234 this._observer.observe(section); 27235 } 27236 } 27237 dispose() { 27238 this._observer.disconnect(); 27239 super.dispose(); 27240 } 27241 27242 // Private 27243 _configAfterMerge(config) { 27244 // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case 27245 config.target = getElement(config.target) || document.body; 27246 27247 // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only 27248 config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin; 27249 if (typeof config.threshold === 'string') { 27250 config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value)); 27251 } 27252 return config; 27253 } 27254 _maybeEnableSmoothScroll() { 27255 if (!this._config.smoothScroll) { 27256 return; 27257 } 27258 27259 // unregister any previous listeners 27260 EventHandler.off(this._config.target, EVENT_CLICK); 27261 EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => { 27262 const observableSection = this._observableSections.get(event.target.hash); 27263 if (observableSection) { 27264 event.preventDefault(); 27265 const root = this._rootElement || window; 27266 const height = observableSection.offsetTop - this._element.offsetTop; 27267 if (root.scrollTo) { 27268 root.scrollTo({ 27269 top: height, 27270 behavior: 'smooth' 27271 }); 27272 return; 27273 } 27274 27275 // Chrome 60 doesn't support `scrollTo` 27276 root.scrollTop = height; 27277 } 27278 }); 27279 } 27280 _getNewObserver() { 27281 const options = { 27282 root: this._rootElement, 27283 threshold: this._config.threshold, 27284 rootMargin: this._config.rootMargin 27285 }; 27286 return new IntersectionObserver(entries => this._observerCallback(entries), options); 27287 } 27288 27289 // The logic of selection 27290 _observerCallback(entries) { 27291 const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`); 27292 const activate = entry => { 27293 this._previousScrollData.visibleEntryTop = entry.target.offsetTop; 27294 this._process(targetElement(entry)); 27295 }; 27296 const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; 27297 const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; 27298 this._previousScrollData.parentScrollTop = parentScrollTop; 27299 for (const entry of entries) { 27300 if (!entry.isIntersecting) { 27301 this._activeTarget = null; 27302 this._clearActiveClass(targetElement(entry)); 27303 continue; 27304 } 27305 const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; 27306 // if we are scrolling down, pick the bigger offsetTop 27307 if (userScrollsDown && entryIsLowerThanPrevious) { 27308 activate(entry); 27309 // if parent isn't scrolled, let's keep the first visible item, breaking the iteration 27310 if (!parentScrollTop) { 27311 return; 27312 } 27313 continue; 27314 } 27315 27316 // if we are scrolling up, pick the smallest offsetTop 27317 if (!userScrollsDown && !entryIsLowerThanPrevious) { 27318 activate(entry); 27319 } 27320 } 27321 } 27322 _initializeTargetsAndObservables() { 27323 this._targetLinks = new Map(); 27324 this._observableSections = new Map(); 27325 const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); 27326 for (const anchor of targetLinks) { 27327 // ensure that the anchor has an id and is not disabled 27328 if (!anchor.hash || isDisabled(anchor)) { 27329 continue; 27330 } 27331 const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element); 27332 27333 // ensure that the observableSection exists & is visible 27334 if (isVisible(observableSection)) { 27335 this._targetLinks.set(decodeURI(anchor.hash), anchor); 27336 this._observableSections.set(anchor.hash, observableSection); 27337 } 27338 } 27339 } 27340 _process(target) { 27341 if (this._activeTarget === target) { 27342 return; 27343 } 27344 this._clearActiveClass(this._config.target); 27345 this._activeTarget = target; 27346 target.classList.add(CLASS_NAME_ACTIVE$1); 27347 this._activateParents(target); 27348 EventHandler.trigger(this._element, EVENT_ACTIVATE, { 27349 relatedTarget: target 27350 }); 27351 } 27352 _activateParents(target) { 27353 // Activate dropdown parents 27354 if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { 27355 SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1); 27356 return; 27357 } 27358 for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { 27359 // Set triggered links parents as active 27360 // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor 27361 for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) { 27362 item.classList.add(CLASS_NAME_ACTIVE$1); 27363 } 27364 } 27365 } 27366 _clearActiveClass(parent) { 27367 parent.classList.remove(CLASS_NAME_ACTIVE$1); 27368 const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent); 27369 for (const node of activeNodes) { 27370 node.classList.remove(CLASS_NAME_ACTIVE$1); 27371 } 27372 } 27373 27374 // Static 27375 static jQueryInterface(config) { 27376 return this.each(function () { 27377 const data = ScrollSpy.getOrCreateInstance(this, config); 27378 if (typeof config !== 'string') { 27379 return; 27380 } 27381 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 27382 throw new TypeError(`No method named "${config}"`); 27383 } 27384 data[config](); 27385 }); 27386 } 27387} 27388 27389/** 27390 * Data API implementation 27391 */ 27392 27393EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => { 27394 for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) { 27395 ScrollSpy.getOrCreateInstance(spy); 27396 } 27397}); 27398 27399/** 27400 * jQuery 27401 */ 27402 27403defineJQueryPlugin(ScrollSpy); 27404 27405/** 27406 * -------------------------------------------------------------------------- 27407 * Bootstrap tab.js 27408 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 27409 * -------------------------------------------------------------------------- 27410 */ 27411 27412 27413/** 27414 * Constants 27415 */ 27416 27417const NAME$1 = 'tab'; 27418const DATA_KEY$1 = 'bs.tab'; 27419const EVENT_KEY$1 = `.${DATA_KEY$1}`; 27420const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; 27421const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; 27422const EVENT_SHOW$1 = `show${EVENT_KEY$1}`; 27423const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; 27424const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`; 27425const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`; 27426const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`; 27427const ARROW_LEFT_KEY = 'ArrowLeft'; 27428const ARROW_RIGHT_KEY = 'ArrowRight'; 27429const ARROW_UP_KEY = 'ArrowUp'; 27430const ARROW_DOWN_KEY = 'ArrowDown'; 27431const HOME_KEY = 'Home'; 27432const END_KEY = 'End'; 27433const CLASS_NAME_ACTIVE = 'active'; 27434const CLASS_NAME_FADE$1 = 'fade'; 27435const CLASS_NAME_SHOW$1 = 'show'; 27436const CLASS_DROPDOWN = 'dropdown'; 27437const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; 27438const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; 27439const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`; 27440const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; 27441const SELECTOR_OUTER = '.nav-item, .list-group-item'; 27442const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; 27443const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // TODO: could only be `tab` in v6 27444const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`; 27445const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`; 27446 27447/** 27448 * Class definition 27449 */ 27450 27451class Tab extends BaseComponent { 27452 constructor(element) { 27453 super(element); 27454 this._parent = this._element.closest(SELECTOR_TAB_PANEL); 27455 if (!this._parent) { 27456 return; 27457 // TODO: should throw exception in v6 27458 // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`) 27459 } 27460 27461 // Set up initial aria attributes 27462 this._setInitialAttributes(this._parent, this._getChildren()); 27463 EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event)); 27464 } 27465 27466 // Getters 27467 static get NAME() { 27468 return NAME$1; 27469 } 27470 27471 // Public 27472 show() { 27473 // Shows this elem and deactivate the active sibling if exists 27474 const innerElem = this._element; 27475 if (this._elemIsActive(innerElem)) { 27476 return; 27477 } 27478 27479 // Search for active tab on same parent to deactivate it 27480 const active = this._getActiveElem(); 27481 const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, { 27482 relatedTarget: innerElem 27483 }) : null; 27484 const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, { 27485 relatedTarget: active 27486 }); 27487 if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) { 27488 return; 27489 } 27490 this._deactivate(active, innerElem); 27491 this._activate(innerElem, active); 27492 } 27493 27494 // Private 27495 _activate(element, relatedElem) { 27496 if (!element) { 27497 return; 27498 } 27499 element.classList.add(CLASS_NAME_ACTIVE); 27500 this._activate(SelectorEngine.getElementFromSelector(element)); // Search and activate/show the proper section 27501 27502 const complete = () => { 27503 if (element.getAttribute('role') !== 'tab') { 27504 element.classList.add(CLASS_NAME_SHOW$1); 27505 return; 27506 } 27507 element.removeAttribute('tabindex'); 27508 element.setAttribute('aria-selected', true); 27509 this._toggleDropDown(element, true); 27510 EventHandler.trigger(element, EVENT_SHOWN$1, { 27511 relatedTarget: relatedElem 27512 }); 27513 }; 27514 this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); 27515 } 27516 _deactivate(element, relatedElem) { 27517 if (!element) { 27518 return; 27519 } 27520 element.classList.remove(CLASS_NAME_ACTIVE); 27521 element.blur(); 27522 this._deactivate(SelectorEngine.getElementFromSelector(element)); // Search and deactivate the shown section too 27523 27524 const complete = () => { 27525 if (element.getAttribute('role') !== 'tab') { 27526 element.classList.remove(CLASS_NAME_SHOW$1); 27527 return; 27528 } 27529 element.setAttribute('aria-selected', false); 27530 element.setAttribute('tabindex', '-1'); 27531 this._toggleDropDown(element, false); 27532 EventHandler.trigger(element, EVENT_HIDDEN$1, { 27533 relatedTarget: relatedElem 27534 }); 27535 }; 27536 this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); 27537 } 27538 _keydown(event) { 27539 if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) { 27540 return; 27541 } 27542 event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page 27543 event.preventDefault(); 27544 const children = this._getChildren().filter(element => !isDisabled(element)); 27545 let nextActiveElement; 27546 if ([HOME_KEY, END_KEY].includes(event.key)) { 27547 nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1]; 27548 } else { 27549 const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); 27550 nextActiveElement = getNextActiveElement(children, event.target, isNext, true); 27551 } 27552 if (nextActiveElement) { 27553 nextActiveElement.focus({ 27554 preventScroll: true 27555 }); 27556 Tab.getOrCreateInstance(nextActiveElement).show(); 27557 } 27558 } 27559 _getChildren() { 27560 // collection of inner elements 27561 return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent); 27562 } 27563 _getActiveElem() { 27564 return this._getChildren().find(child => this._elemIsActive(child)) || null; 27565 } 27566 _setInitialAttributes(parent, children) { 27567 this._setAttributeIfNotExists(parent, 'role', 'tablist'); 27568 for (const child of children) { 27569 this._setInitialAttributesOnChild(child); 27570 } 27571 } 27572 _setInitialAttributesOnChild(child) { 27573 child = this._getInnerElement(child); 27574 const isActive = this._elemIsActive(child); 27575 const outerElem = this._getOuterElement(child); 27576 child.setAttribute('aria-selected', isActive); 27577 if (outerElem !== child) { 27578 this._setAttributeIfNotExists(outerElem, 'role', 'presentation'); 27579 } 27580 if (!isActive) { 27581 child.setAttribute('tabindex', '-1'); 27582 } 27583 this._setAttributeIfNotExists(child, 'role', 'tab'); 27584 27585 // set attributes to the related panel too 27586 this._setInitialAttributesOnTargetPanel(child); 27587 } 27588 _setInitialAttributesOnTargetPanel(child) { 27589 const target = SelectorEngine.getElementFromSelector(child); 27590 if (!target) { 27591 return; 27592 } 27593 this._setAttributeIfNotExists(target, 'role', 'tabpanel'); 27594 if (child.id) { 27595 this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`); 27596 } 27597 } 27598 _toggleDropDown(element, open) { 27599 const outerElem = this._getOuterElement(element); 27600 if (!outerElem.classList.contains(CLASS_DROPDOWN)) { 27601 return; 27602 } 27603 const toggle = (selector, className) => { 27604 const element = SelectorEngine.findOne(selector, outerElem); 27605 if (element) { 27606 element.classList.toggle(className, open); 27607 } 27608 }; 27609 toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); 27610 toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); 27611 outerElem.setAttribute('aria-expanded', open); 27612 } 27613 _setAttributeIfNotExists(element, attribute, value) { 27614 if (!element.hasAttribute(attribute)) { 27615 element.setAttribute(attribute, value); 27616 } 27617 } 27618 _elemIsActive(elem) { 27619 return elem.classList.contains(CLASS_NAME_ACTIVE); 27620 } 27621 27622 // Try to get the inner element (usually the .nav-link) 27623 _getInnerElement(elem) { 27624 return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem); 27625 } 27626 27627 // Try to get the outer element (usually the .nav-item) 27628 _getOuterElement(elem) { 27629 return elem.closest(SELECTOR_OUTER) || elem; 27630 } 27631 27632 // Static 27633 static jQueryInterface(config) { 27634 return this.each(function () { 27635 const data = Tab.getOrCreateInstance(this); 27636 if (typeof config !== 'string') { 27637 return; 27638 } 27639 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 27640 throw new TypeError(`No method named "${config}"`); 27641 } 27642 data[config](); 27643 }); 27644 } 27645} 27646 27647/** 27648 * Data API implementation 27649 */ 27650 27651EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { 27652 if (['A', 'AREA'].includes(this.tagName)) { 27653 event.preventDefault(); 27654 } 27655 if (isDisabled(this)) { 27656 return; 27657 } 27658 Tab.getOrCreateInstance(this).show(); 27659}); 27660 27661/** 27662 * Initialize on focus 27663 */ 27664EventHandler.on(window, EVENT_LOAD_DATA_API, () => { 27665 for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) { 27666 Tab.getOrCreateInstance(element); 27667 } 27668}); 27669/** 27670 * jQuery 27671 */ 27672 27673defineJQueryPlugin(Tab); 27674 27675/** 27676 * -------------------------------------------------------------------------- 27677 * Bootstrap toast.js 27678 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 27679 * -------------------------------------------------------------------------- 27680 */ 27681 27682 27683/** 27684 * Constants 27685 */ 27686 27687const NAME = 'toast'; 27688const DATA_KEY = 'bs.toast'; 27689const EVENT_KEY = `.${DATA_KEY}`; 27690const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`; 27691const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`; 27692const EVENT_FOCUSIN = `focusin${EVENT_KEY}`; 27693const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`; 27694const EVENT_HIDE = `hide${EVENT_KEY}`; 27695const EVENT_HIDDEN = `hidden${EVENT_KEY}`; 27696const EVENT_SHOW = `show${EVENT_KEY}`; 27697const EVENT_SHOWN = `shown${EVENT_KEY}`; 27698const CLASS_NAME_FADE = 'fade'; 27699const CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility 27700const CLASS_NAME_SHOW = 'show'; 27701const CLASS_NAME_SHOWING = 'showing'; 27702const DefaultType = { 27703 animation: 'boolean', 27704 autohide: 'boolean', 27705 delay: 'number' 27706}; 27707const Default = { 27708 animation: true, 27709 autohide: true, 27710 delay: 5000 27711}; 27712 27713/** 27714 * Class definition 27715 */ 27716 27717class Toast extends BaseComponent { 27718 constructor(element, config) { 27719 super(element, config); 27720 this._timeout = null; 27721 this._hasMouseInteraction = false; 27722 this._hasKeyboardInteraction = false; 27723 this._setListeners(); 27724 } 27725 27726 // Getters 27727 static get Default() { 27728 return Default; 27729 } 27730 static get DefaultType() { 27731 return DefaultType; 27732 } 27733 static get NAME() { 27734 return NAME; 27735 } 27736 27737 // Public 27738 show() { 27739 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW); 27740 if (showEvent.defaultPrevented) { 27741 return; 27742 } 27743 this._clearTimeout(); 27744 if (this._config.animation) { 27745 this._element.classList.add(CLASS_NAME_FADE); 27746 } 27747 const complete = () => { 27748 this._element.classList.remove(CLASS_NAME_SHOWING); 27749 EventHandler.trigger(this._element, EVENT_SHOWN); 27750 this._maybeScheduleHide(); 27751 }; 27752 this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated 27753 reflow(this._element); 27754 this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING); 27755 this._queueCallback(complete, this._element, this._config.animation); 27756 } 27757 hide() { 27758 if (!this.isShown()) { 27759 return; 27760 } 27761 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); 27762 if (hideEvent.defaultPrevented) { 27763 return; 27764 } 27765 const complete = () => { 27766 this._element.classList.add(CLASS_NAME_HIDE); // @deprecated 27767 this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW); 27768 EventHandler.trigger(this._element, EVENT_HIDDEN); 27769 }; 27770 this._element.classList.add(CLASS_NAME_SHOWING); 27771 this._queueCallback(complete, this._element, this._config.animation); 27772 } 27773 dispose() { 27774 this._clearTimeout(); 27775 if (this.isShown()) { 27776 this._element.classList.remove(CLASS_NAME_SHOW); 27777 } 27778 super.dispose(); 27779 } 27780 isShown() { 27781 return this._element.classList.contains(CLASS_NAME_SHOW); 27782 } 27783 27784 // Private 27785 27786 _maybeScheduleHide() { 27787 if (!this._config.autohide) { 27788 return; 27789 } 27790 if (this._hasMouseInteraction || this._hasKeyboardInteraction) { 27791 return; 27792 } 27793 this._timeout = setTimeout(() => { 27794 this.hide(); 27795 }, this._config.delay); 27796 } 27797 _onInteraction(event, isInteracting) { 27798 switch (event.type) { 27799 case 'mouseover': 27800 case 'mouseout': 27801 { 27802 this._hasMouseInteraction = isInteracting; 27803 break; 27804 } 27805 case 'focusin': 27806 case 'focusout': 27807 { 27808 this._hasKeyboardInteraction = isInteracting; 27809 break; 27810 } 27811 } 27812 if (isInteracting) { 27813 this._clearTimeout(); 27814 return; 27815 } 27816 const nextElement = event.relatedTarget; 27817 if (this._element === nextElement || this._element.contains(nextElement)) { 27818 return; 27819 } 27820 this._maybeScheduleHide(); 27821 } 27822 _setListeners() { 27823 EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true)); 27824 EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false)); 27825 EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true)); 27826 EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false)); 27827 } 27828 _clearTimeout() { 27829 clearTimeout(this._timeout); 27830 this._timeout = null; 27831 } 27832 27833 // Static 27834 static jQueryInterface(config) { 27835 return this.each(function () { 27836 const data = Toast.getOrCreateInstance(this, config); 27837 if (typeof config === 'string') { 27838 if (typeof data[config] === 'undefined') { 27839 throw new TypeError(`No method named "${config}"`); 27840 } 27841 data[config](this); 27842 } 27843 }); 27844 } 27845} 27846 27847/** 27848 * Data API implementation 27849 */ 27850 27851enableDismissTrigger(Toast); 27852 27853/** 27854 * jQuery 27855 */ 27856 27857defineJQueryPlugin(Toast); 27858 27859 27860//# sourceMappingURL=bootstrap.esm.js.map 27861 27862 27863/***/ }), 27864
vendor: 9,275 bytes, lines 27865-27880
27865/***/ "./node_modules/clipboard/dist/clipboard.min.js": 27866/*!******************************************************!*\ 27867 !*** ./node_modules/clipboard/dist/clipboard.min.js ***! 27868 \******************************************************/ 27869/***/ (function(module) { 27870 27871/*! 27872 * clipboard.js v2.0.11 27873 * https://clipboardjs.com/ 27874 * 27875 * Licensed MIT © Zeno Rocha 27876 */ 27877!function(t,e){ true?module.exports=e():0}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof t?n=o(t,e):t instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==t?void 0:t.type)?n=o(t.value,e):(n=r()(t),c("copy")),n};function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==e){if(!e||"object"!==l(e)||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return t?f(t,{container:o}):e?"cut"===n?a(e):f(e,{container:o}):void 0};function p(t){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=v(n);return t=o?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==p(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function m(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var b=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:"copy",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return f(t,e)}},{key:"cut",value:function(t){return a(t)}},{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===p(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=u()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,n=this.action(e)||"copy",t=s({action:n,container:this.container,target:this.target(e),text:this.text(e)});this.emit(t?"success":"error",{action:n,text:t,trigger:e,clearSelection:function(){e&&e.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(t){return m("action",t)}},{key:"defaultTarget",value:function(t){t=m("target",t);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(t){return m("text",t)}},{key:"destroy",value:function(){this.listener.destroy()}}])&&d(t.prototype,e),n&&d(t,n),r}()},828:function(t){var e;"undefined"==typeof Element||Element.prototype.matches||((e=Element.prototype).matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var u=n(828);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=u(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},879:function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:function(t,e,n){var f=n(879),l=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!f.string(e))throw new TypeError("Second argument must be a String");if(!f.fn(n))throw new TypeError("Third argument must be a Function");if(f.node(t))return c=e,a=n,(u=t).addEventListener(c,a),{destroy:function(){u.removeEventListener(c,a)}};if(f.nodeList(t))return o=t,r=e,i=n,Array.prototype.forEach.call(o,function(t){t.addEventListener(r,i)}),{destroy:function(){Array.prototype.forEach.call(o,function(t){t.removeEventListener(r,i)})}};if(f.string(t))return t=t,e=e,n=n,l(document.body,t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,u,c,a}},817:function(t){t.exports=function(t){var e,n="SELECT"===t.nodeName?(t.focus(),t.value):"INPUT"===t.nodeName||"TEXTAREA"===t.nodeName?((e=t.hasAttribute("readonly"))||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),e||t.removeAttribute("readonly"),t.value):(t.hasAttribute("contenteditable")&&t.focus(),n=window.getSelection(),(e=document.createRange()).selectNodeContents(t),n.removeAllRanges(),n.addRange(e),n.toString());return n}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,u=o.length;i<u;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=e,t.exports.TinyEmitter=e}},r={},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,{a:e}),e},o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o(686).default;function o(t){if(r[t])return r[t].exports;var e=r[t]={exports:{}};return n[t](e,e.exports,o),e.exports}var n,r}); 27878 27879/***/ }), 27880
vendor: 3,374 bytes, lines 27881-27896
27881/***/ "./node_modules/es6-promise-polyfill/promise.min.js": 27882/*!**********************************************************!*\ 27883 !*** ./node_modules/es6-promise-polyfill/promise.min.js ***! 27884 \**********************************************************/ 27885/***/ (function(module, exports, __webpack_require__) { 27886 27887var __WEBPACK_AMD_DEFINE_RESULT__;(function(t){function z(){for(var a=0;a<g.length;a++)g[a][0](g[a][1]);g=[];m=!1}function n(a,b){g.push([a,b]);m||(m=!0,A(z,0))}function B(a,b){function c(a){p(b,a)}function h(a){k(b,a)}try{a(c,h)}catch(d){h(d)}}function u(a){var b=a.owner,c=b.state_,b=b.data_,h=a[c];a=a.then;if("function"===typeof h){c=l;try{b=h(b)}catch(d){k(a,d)}}v(a,b)||(c===l&&p(a,b),c===q&&k(a,b))}function v(a,b){var c;try{if(a===b)throw new TypeError("A promises callback cannot return that same promise.");if(b&&("function"=== 27888typeof b||"object"===typeof b)){var h=b.then;if("function"===typeof h)return h.call(b,function(d){c||(c=!0,b!==d?p(a,d):w(a,d))},function(b){c||(c=!0,k(a,b))}),!0}}catch(d){return c||k(a,d),!0}return!1}function p(a,b){a!==b&&v(a,b)||w(a,b)}function w(a,b){a.state_===r&&(a.state_=x,a.data_=b,n(C,a))}function k(a,b){a.state_===r&&(a.state_=x,a.data_=b,n(D,a))}function y(a){var b=a.then_;a.then_=void 0;for(a=0;a<b.length;a++)u(b[a])}function C(a){a.state_=l;y(a)}function D(a){a.state_=q;y(a)}function e(a){if("function"!== 27889typeof a)throw new TypeError("Promise constructor takes a function argument");if(!1===this instanceof e)throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this.then_=[];B(a,this)}var f=t.Promise,s=f&&"resolve"in f&&"reject"in f&&"all"in f&&"race"in f&&function(){var a;new f(function(b){a=b});return"function"===typeof a}(); true&&exports?(exports.Promise=s?f:e,exports.Polyfill=e): true?!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return s?f:e}).call(exports, __webpack_require__, exports, module), 27890 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0;var r="pending",x="sealed",l="fulfilled",q="rejected",E=function(){},A="undefined"!==typeof setImmediate?setImmediate:setTimeout,g=[],m;e.prototype={constructor:e,state_:r,then_:null,data_:void 0,then:function(a,b){var c={owner:this,then:new this.constructor(E),fulfilled:a,rejected:b};this.state_===l||this.state_===q?n(u,c):this.then_.push(c);return c.then},"catch":function(a){return this.then(null,a)}};e.all=function(a){if("[object Array]"!== 27891Object.prototype.toString.call(a))throw new TypeError("You must pass an array to Promise.all().");return new this(function(b,c){function h(a){e++;return function(c){d[a]=c;--e||b(d)}}for(var d=[],e=0,f=0,g;f<a.length;f++)(g=a[f])&&"function"===typeof g.then?g.then(h(f),c):d[f]=g;e||b(d)})};e.race=function(a){if("[object Array]"!==Object.prototype.toString.call(a))throw new TypeError("You must pass an array to Promise.race().");return new this(function(b,c){for(var e=0,d;e<a.length;e++)(d=a[e])&&"function"=== 27892typeof d.then?d.then(b,c):b(d)})};e.resolve=function(a){return a&&"object"===typeof a&&a.constructor===this?a:new this(function(b){b(a)})};e.reject=function(a){return new this(function(b,c){c(a)})}})("undefined"!=typeof window?window:"undefined"!=typeof __webpack_require__.g?__webpack_require__.g:"undefined"!=typeof self?self:this); 27893 27894 27895/***/ }), 27896
vendor: 58,444 bytes, lines 27897-27923
27897/***/ "./node_modules/es6-shim/es6-shim.min.js": 27898/*!***********************************************!*\ 27899 !*** ./node_modules/es6-shim/es6-shim.min.js ***! 27900 \***********************************************/ 27901/***/ (function(module, exports, __webpack_require__) { 27902 27903/* provided dependency */ var process = __webpack_require__(/*! process/browser.js */ "./node_modules/process/browser.js"); 27904var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 27905 * https://github.com/paulmillr/es6-shim 27906 * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com) 27907 * and contributors, MIT License 27908 * es6-shim: v0.35.4 27909 * see https://github.com/paulmillr/es6-shim/blob/0.35.3/LICENSE 27910 * Details and documentation: 27911 * https://github.com/paulmillr/es6-shim/ 27912 */ 27913(function(e,t){if(true){!(__WEBPACK_AMD_DEFINE_FACTORY__ = (t), 27914 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 27915 (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : 27916 __WEBPACK_AMD_DEFINE_FACTORY__), 27917 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))}else {}})(this,function(){"use strict";var e=Function.call.bind(Function.apply);var t=Function.call.bind(Function.call);var r=Array.isArray;var n=Object.keys;var o=function notThunker(t){return function notThunk(){return!e(t,this,arguments)}};var i=function(e){try{e();return false}catch(t){return true}};var a=function valueOrFalseIfThrows(e){try{return e()}catch(t){return false}};var u=o(i);var f=function(){return!i(function(){return Object.defineProperty({},"x",{get:function(){}})})};var s=!!Object.defineProperty&&f();var c=function foo(){}.name==="foo";var l=Function.call.bind(Array.prototype.forEach);var p=Function.call.bind(Array.prototype.reduce);var v=Function.call.bind(Array.prototype.filter);var y=Function.call.bind(Array.prototype.some);var h=function(e,t,r,n){if(!n&&t in e){return}if(s){Object.defineProperty(e,t,{configurable:true,enumerable:false,writable:true,value:r})}else{e[t]=r}};var b=function(e,t,r){l(n(t),function(n){var o=t[n];h(e,n,o,!!r)})};var g=Function.call.bind(Object.prototype.toString);var d= false?0:function IsCallableFast(e){return typeof e==="function"};var m={getter:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}Object.defineProperty(e,t,{configurable:true,enumerable:false,get:r})},proxy:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,{configurable:n.configurable,enumerable:n.enumerable,get:function getKey(){return e[t]},set:function setKey(r){e[t]=r}})},redefine:function(e,t,r){if(s){var n=Object.getOwnPropertyDescriptor(e,t);n.value=r;Object.defineProperty(e,t,n)}else{e[t]=r}},defineByDescriptor:function(e,t,r){if(s){Object.defineProperty(e,t,r)}else if("value"in r){e[t]=r.value}},preserveToString:function(e,t){if(t&&d(t.toString)){h(e,"toString",t.toString.bind(t),true)}}};var O=Object.create||function(e,t){var r=function Prototype(){};r.prototype=e;var o=new r;if(typeof t!=="undefined"){n(t).forEach(function(e){m.defineByDescriptor(o,e,t[e])})}return o};var w=function(e,t){if(!Object.setPrototypeOf){return false}return a(function(){var r=function Subclass(t){var r=new e(t);Object.setPrototypeOf(r,Subclass.prototype);return r};Object.setPrototypeOf(r,e);r.prototype=O(e.prototype,{constructor:{value:r}});return t(r)})};var j=function(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof __webpack_require__.g!=="undefined"){return __webpack_require__.g}throw new Error("unable to locate global object")};var S=j();var T=S.isFinite;var I=Function.call.bind(String.prototype.indexOf);var E=Function.apply.bind(Array.prototype.indexOf);var P=Function.call.bind(Array.prototype.concat);var C=Function.call.bind(String.prototype.slice);var M=Function.call.bind(Array.prototype.push);var x=Function.apply.bind(Array.prototype.push);var N=Function.call.bind(Array.prototype.join);var A=Function.call.bind(Array.prototype.shift);var _=Math.max;var R=Math.min;var k=Math.floor;var L=Math.abs;var F=Math.exp;var D=Math.log;var z=Math.sqrt;var q=Function.call.bind(Object.prototype.hasOwnProperty);var W;var G=function(){};var H=S.Map;var V=H&&H.prototype["delete"];var B=H&&H.prototype.get;var U=H&&H.prototype.has;var $=H&&H.prototype.set;var J=S.Symbol||{};var X=J.species||"@@species";var K=Number.isNaN||function isNaN(e){return e!==e};var Z=Number.isFinite||function isFinite(e){return typeof e==="number"&&T(e)};var Y=d(Math.sign)?Math.sign:function sign(e){var t=Number(e);if(t===0){return t}if(K(t)){return t}return t<0?-1:1};var Q=function log1p(e){var t=Number(e);if(t<-1||K(t)){return NaN}if(t===0||t===Infinity){return t}if(t===-1){return-Infinity}return 1+t-1===0?t:t*(D(1+t)/(1+t-1))};var ee=function isArguments(e){return g(e)==="[object Arguments]"};var te=function isArguments(e){return e!==null&&typeof e==="object"&&typeof e.length==="number"&&e.length>=0&&g(e)!=="[object Array]"&&g(e.callee)==="[object Function]"};var re=ee(arguments)?ee:te;var ne={primitive:function(e){return e===null||typeof e!=="function"&&typeof e!=="object"},string:function(e){return g(e)==="[object String]"},regex:function(e){return g(e)==="[object RegExp]"},symbol:function(e){return typeof S.Symbol==="function"&&typeof e==="symbol"}};var oe=function overrideNative(e,t,r){var n=e[t];h(e,t,r,true);m.preserveToString(e[t],n)};var ie=typeof J==="function"&&typeof J["for"]==="function"&&ne.symbol(J());var ae=ne.symbol(J.iterator)?J.iterator:"_es6-shim iterator_";if(S.Set&&typeof(new S.Set)["@@iterator"]==="function"){ae="@@iterator"}if(!S.Reflect){h(S,"Reflect",{},true)}var ue=S.Reflect;var fe=String;var se=typeof document==="undefined"||!document?null:document.all;var ce=se==null?function isNullOrUndefined(e){return e==null}:function isNullOrUndefinedAndNotDocumentAll(e){return e==null&&e!==se};var le={Call:function Call(t,r){var n=arguments.length>2?arguments[2]:[];if(!le.IsCallable(t)){throw new TypeError(t+" is not a function")}return e(t,r,n)},RequireObjectCoercible:function(e,t){if(ce(e)){throw new TypeError(t||"Cannot call method on "+e)}return e},TypeIsObject:function(e){if(e===void 0||e===null||e===true||e===false){return false}return typeof e==="function"||typeof e==="object"||e===se},ToObject:function(e,t){return Object(le.RequireObjectCoercible(e,t))},IsCallable:d,IsConstructor:function(e){return le.IsCallable(e)},ToInt32:function(e){return le.ToNumber(e)>>0},ToUint32:function(e){return le.ToNumber(e)>>>0},ToNumber:function(e){if(ie&&g(e)==="[object Symbol]"){throw new TypeError("Cannot convert a Symbol value to a number")}return+e},ToInteger:function(e){var t=le.ToNumber(e);if(K(t)){return 0}if(t===0||!Z(t)){return t}return(t>0?1:-1)*k(L(t))},ToLength:function(e){var t=le.ToInteger(e);if(t<=0){return 0}if(t>Number.MAX_SAFE_INTEGER){return Number.MAX_SAFE_INTEGER}return t},SameValue:function(e,t){if(e===t){if(e===0){return 1/e===1/t}return true}return K(e)&&K(t)},SameValueZero:function(e,t){return e===t||K(e)&&K(t)},GetIterator:function(e){if(re(e)){return new W(e,"value")}var t=le.GetMethod(e,ae);if(!le.IsCallable(t)){throw new TypeError("value is not an iterable")}var r=le.Call(t,e);if(!le.TypeIsObject(r)){throw new TypeError("bad iterator")}return r},GetMethod:function(e,t){var r=le.ToObject(e)[t];if(ce(r)){return void 0}if(!le.IsCallable(r)){throw new TypeError("Method not callable: "+t)}return r},IteratorComplete:function(e){return!!e.done},IteratorClose:function(e,t){var r=le.GetMethod(e,"return");if(r===void 0){return}var n,o;try{n=le.Call(r,e)}catch(i){o=i}if(t){return}if(o){throw o}if(!le.TypeIsObject(n)){throw new TypeError("Iterator's return method returned a non-object.")}},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!le.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},IteratorStep:function(e){var t=le.IteratorNext(e);var r=le.IteratorComplete(t);return r?false:t},Construct:function(e,t,r,n){var o=typeof r==="undefined"?e:r;if(!n&&ue.construct){return ue.construct(e,t,o)}var i=o.prototype;if(!le.TypeIsObject(i)){i=Object.prototype}var a=O(i);var u=le.Call(e,a,t);return le.TypeIsObject(u)?u:a},SpeciesConstructor:function(e,t){var r=e.constructor;if(r===void 0){return t}if(!le.TypeIsObject(r)){throw new TypeError("Bad constructor")}var n=r[X];if(ce(n)){return t}if(!le.IsConstructor(n)){throw new TypeError("Bad @@species")}return n},CreateHTML:function(e,t,r,n){var o=le.ToString(e);var i="<"+t;if(r!==""){var a=le.ToString(n);var u=a.replace(/"/g,""");i+=" "+r+'="'+u+'"'}var f=i+">";var s=f+o;return s+"</"+t+">"},IsRegExp:function IsRegExp(e){if(!le.TypeIsObject(e)){return false}var t=e[J.match];if(typeof t!=="undefined"){return!!t}return ne.regex(e)},ToString:function ToString(e){if(ie&&g(e)==="[object Symbol]"){throw new TypeError("Cannot convert a Symbol value to a number")}return fe(e)}};if(s&&ie){var pe=function defineWellKnownSymbol(e){if(ne.symbol(J[e])){return J[e]}var t=J["for"]("Symbol."+e);Object.defineProperty(J,e,{configurable:false,enumerable:false,writable:false,value:t});return t};if(!ne.symbol(J.search)){var ve=pe("search");var ye=String.prototype.search;h(RegExp.prototype,ve,function search(e){return le.Call(ye,e,[this])});var he=function search(e){var t=le.RequireObjectCoercible(this);if(!ce(e)){var r=le.GetMethod(e,ve);if(typeof r!=="undefined"){return le.Call(r,e,[t])}}return le.Call(ye,t,[le.ToString(e)])};oe(String.prototype,"search",he)}if(!ne.symbol(J.replace)){var be=pe("replace");var ge=String.prototype.replace;h(RegExp.prototype,be,function replace(e,t){return le.Call(ge,e,[this,t])});var de=function replace(e,t){var r=le.RequireObjectCoercible(this);if(!ce(e)){var n=le.GetMethod(e,be);if(typeof n!=="undefined"){return le.Call(n,e,[r,t])}}return le.Call(ge,r,[le.ToString(e),t])};oe(String.prototype,"replace",de)}if(!ne.symbol(J.split)){var me=pe("split");var Oe=String.prototype.split;h(RegExp.prototype,me,function split(e,t){return le.Call(Oe,e,[this,t])});var we=function split(e,t){var r=le.RequireObjectCoercible(this);if(!ce(e)){var n=le.GetMethod(e,me);if(typeof n!=="undefined"){return le.Call(n,e,[r,t])}}return le.Call(Oe,r,[le.ToString(e),t])};oe(String.prototype,"split",we)}var je=ne.symbol(J.match);var Se=je&&function(){var e={};e[J.match]=function(){return 42};return"a".match(e)!==42}();if(!je||Se){var Te=pe("match");var Ie=String.prototype.match;h(RegExp.prototype,Te,function match(e){return le.Call(Ie,e,[this])});var Ee=function match(e){var t=le.RequireObjectCoercible(this);if(!ce(e)){var r=le.GetMethod(e,Te);if(typeof r!=="undefined"){return le.Call(r,e,[t])}}return le.Call(Ie,t,[le.ToString(e)])};oe(String.prototype,"match",Ee)}}var Pe=function wrapConstructor(e,t,r){m.preserveToString(t,e);if(Object.setPrototypeOf){Object.setPrototypeOf(e,t)}if(s){l(Object.getOwnPropertyNames(e),function(n){if(n in G||r[n]){return}m.proxy(e,n,t)})}else{l(Object.keys(e),function(n){if(n in G||r[n]){return}t[n]=e[n]})}t.prototype=e.prototype;m.redefine(e.prototype,"constructor",t)};var Ce=function(){return this};var Me=function(e){if(s&&!q(e,X)){m.getter(e,X,Ce)}};var xe=function(e,t){var r=t||function iterator(){return this};h(e,ae,r);if(!e[ae]&&ne.symbol(ae)){e[ae]=r}};var Ne=function createDataProperty(e,t,r){if(s){Object.defineProperty(e,t,{configurable:true,enumerable:true,writable:true,value:r})}else{e[t]=r}};var Ae=function createDataPropertyOrThrow(e,t,r){Ne(e,t,r);if(!le.SameValue(e[t],r)){throw new TypeError("property is nonconfigurable")}};var _e=function(e,t,r,n){if(!le.TypeIsObject(e)){throw new TypeError("Constructor requires `new`: "+t.name)}var o=t.prototype;if(!le.TypeIsObject(o)){o=r}var i=O(o);for(var a in n){if(q(n,a)){var u=n[a];h(i,a,u,true)}}return i};if(String.fromCodePoint&&String.fromCodePoint.length!==1){var Re=String.fromCodePoint;oe(String,"fromCodePoint",function fromCodePoint(e){return le.Call(Re,this,arguments)})}var ke={fromCodePoint:function fromCodePoint(e){var t=[];var r;for(var n=0,o=arguments.length;n<o;n++){r=Number(arguments[n]);if(!le.SameValue(r,le.ToInteger(r))||r<0||r>1114111){throw new RangeError("Invalid code point "+r)}if(r<65536){M(t,String.fromCharCode(r))}else{r-=65536;M(t,String.fromCharCode((r>>10)+55296));M(t,String.fromCharCode(r%1024+56320))}}return N(t,"")},raw:function raw(e){var t=arguments.length-1;var r=le.ToObject(e,"bad template");var raw=le.ToObject(r.raw,"bad raw value");var n=raw.length;var o=le.ToLength(n);if(o<=0){return""}var i=[];var a=0;var u,f,s,c;while(a<o){u=le.ToString(a);s=le.ToString(raw[u]);M(i,s);if(a+1>=o){break}f=a+1<arguments.length?arguments[a+1]:"";c=le.ToString(f);M(i,c);a+=1}return N(i,"")}};if(String.raw&&String.raw({raw:{0:"x",1:"y",length:2}})!=="xy"){oe(String,"raw",ke.raw)}b(String,ke);var Le=function repeat(e,t){if(t<1){return""}if(t%2){return repeat(e,t-1)+e}var r=repeat(e,t/2);return r+r};var Fe=Infinity;var De={repeat:function repeat(e){var t=le.ToString(le.RequireObjectCoercible(this));var r=le.ToInteger(e);if(r<0||r>=Fe){throw new RangeError("repeat count must be less than infinity and not overflow maximum string size")}return Le(t,r)},startsWith:function startsWith(e){var t=le.ToString(le.RequireObjectCoercible(this));if(le.IsRegExp(e)){throw new TypeError('Cannot call method "startsWith" with a regex')}var r=le.ToString(e);var n;if(arguments.length>1){n=arguments[1]}var o=_(le.ToInteger(n),0);return C(t,o,o+r.length)===r},endsWith:function endsWith(e){var t=le.ToString(le.RequireObjectCoercible(this));if(le.IsRegExp(e)){throw new TypeError('Cannot call method "endsWith" with a regex')}var r=le.ToString(e);var n=t.length;var o;if(arguments.length>1){o=arguments[1]}var i=typeof o==="undefined"?n:le.ToInteger(o);var a=R(_(i,0),n);return C(t,a-r.length,a)===r},includes:function includes(e){if(le.IsRegExp(e)){throw new TypeError('"includes" does not accept a RegExp')}var t=le.ToString(e);var r;if(arguments.length>1){r=arguments[1]}return I(this,t,r)!==-1},codePointAt:function codePointAt(e){var t=le.ToString(le.RequireObjectCoercible(this));var r=le.ToInteger(e);var n=t.length;if(r>=0&&r<n){var o=t.charCodeAt(r);var i=r+1===n;if(o<55296||o>56319||i){return o}var a=t.charCodeAt(r+1);if(a<56320||a>57343){return o}return(o-55296)*1024+(a-56320)+65536}}};if(String.prototype.includes&&"a".includes("a",Infinity)!==false){oe(String.prototype,"includes",De.includes)}if(String.prototype.startsWith&&String.prototype.endsWith){var ze=i(function(){return"/a/".startsWith(/a/)});var qe=a(function(){return"abc".startsWith("a",Infinity)===false});if(!ze||!qe){oe(String.prototype,"startsWith",De.startsWith);oe(String.prototype,"endsWith",De.endsWith)}}if(ie){var We=a(function(){var e=/a/;e[J.match]=false;return"/a/".startsWith(e)});if(!We){oe(String.prototype,"startsWith",De.startsWith)}var Ge=a(function(){var e=/a/;e[J.match]=false;return"/a/".endsWith(e)});if(!Ge){oe(String.prototype,"endsWith",De.endsWith)}var He=a(function(){var e=/a/;e[J.match]=false;return"/a/".includes(e)});if(!He){oe(String.prototype,"includes",De.includes)}}b(String.prototype,De);var Ve=["\t\n\x0B\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003","\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028","\u2029\ufeff"].join("");var Be=new RegExp("(^["+Ve+"]+)|(["+Ve+"]+$)","g");var Ue=function trim(){return le.ToString(le.RequireObjectCoercible(this)).replace(Be,"")};var $e=["\x85","\u200b","\ufffe"].join("");var Je=new RegExp("["+$e+"]","g");var Xe=/^[-+]0x[0-9a-f]+$/i;var Ke=$e.trim().length!==$e.length;h(String.prototype,"trim",Ue,Ke);var Ze=function(e){return{value:e,done:arguments.length===0}};var Ye=function(e){le.RequireObjectCoercible(e);h(this,"_s",le.ToString(e));h(this,"_i",0)};Ye.prototype.next=function(){var e=this._s;var t=this._i;if(typeof e==="undefined"||t>=e.length){this._s=void 0;return Ze()}var r=e.charCodeAt(t);var n,o;if(r<55296||r>56319||t+1===e.length){o=1}else{n=e.charCodeAt(t+1);o=n<56320||n>57343?1:2}this._i=t+o;return Ze(e.substr(t,o))};xe(Ye.prototype);xe(String.prototype,function(){return new Ye(this)});var Qe={from:function from(e){var r=this;var n;if(arguments.length>1){n=arguments[1]}var o,i;if(typeof n==="undefined"){o=false}else{if(!le.IsCallable(n)){throw new TypeError("Array.from: when provided, the second argument must be a function")}if(arguments.length>2){i=arguments[2]}o=true}var a=typeof(re(e)||le.GetMethod(e,ae))!=="undefined";var u,f,s;if(a){f=le.IsConstructor(r)?Object(new r):[];var c=le.GetIterator(e);var l,p;s=0;while(true){l=le.IteratorStep(c);if(l===false){break}p=l.value;try{if(o){p=typeof i==="undefined"?n(p,s):t(n,i,p,s)}f[s]=p}catch(v){le.IteratorClose(c,true);throw v}s+=1}u=s}else{var y=le.ToObject(e);u=le.ToLength(y.length);f=le.IsConstructor(r)?Object(new r(u)):new Array(u);var h;for(s=0;s<u;++s){h=y[s];if(o){h=typeof i==="undefined"?n(h,s):t(n,i,h,s)}Ae(f,s,h)}}f.length=u;return f},of:function of(){var e=arguments.length;var t=this;var n=r(t)||!le.IsCallable(t)?new Array(e):le.Construct(t,[e]);for(var o=0;o<e;++o){Ae(n,o,arguments[o])}n.length=e;return n}};b(Array,Qe);Me(Array);W=function(e,t){h(this,"i",0);h(this,"array",e);h(this,"kind",t)};b(W.prototype,{next:function(){var e=this.i;var t=this.array;if(!(this instanceof W)){throw new TypeError("Not an ArrayIterator")}if(typeof t!=="undefined"){var r=le.ToLength(t.length);if(e<r){var n=this.kind;var o;if(n==="key"){o=e}else if(n==="value"){o=t[e]}else if(n==="entry"){o=[e,t[e]]}this.i=e+1;return Ze(o)}}this.array=void 0;return Ze()}});xe(W.prototype);var et=Array.of===Qe.of||function(){var e=function Foo(e){this.length=e};e.prototype=[];var t=Array.of.apply(e,[1,2]);return t instanceof e&&t.length===2}();if(!et){oe(Array,"of",Qe.of)}var tt={copyWithin:function copyWithin(e,t){var r=le.ToObject(this);var n=le.ToLength(r.length);var o=le.ToInteger(e);var i=le.ToInteger(t);var a=o<0?_(n+o,0):R(o,n);var u=i<0?_(n+i,0):R(i,n);var f;if(arguments.length>2){f=arguments[2]}var s=typeof f==="undefined"?n:le.ToInteger(f);var c=s<0?_(n+s,0):R(s,n);var l=R(c-u,n-a);var p=1;if(u<a&&a<u+l){p=-1;u+=l-1;a+=l-1}while(l>0){if(u in r){r[a]=r[u]}else{delete r[a]}u+=p;a+=p;l-=1}return r},fill:function fill(e){var t;if(arguments.length>1){t=arguments[1]}var r;if(arguments.length>2){r=arguments[2]}var n=le.ToObject(this);var o=le.ToLength(n.length);t=le.ToInteger(typeof t==="undefined"?0:t);r=le.ToInteger(typeof r==="undefined"?o:r);var i=t<0?_(o+t,0):R(t,o);var a=r<0?o+r:r;for(var u=i;u<o&&u<a;++u){n[u]=e}return n},find:function find(e){var r=le.ToObject(this);var n=le.ToLength(r.length);if(!le.IsCallable(e)){throw new TypeError("Array#find: predicate must be a function")}var o=arguments.length>1?arguments[1]:null;for(var i=0,a;i<n;i++){a=r[i];if(o){if(t(e,o,a,i,r)){return a}}else if(e(a,i,r)){return a}}},findIndex:function findIndex(e){var r=le.ToObject(this);var n=le.ToLength(r.length);if(!le.IsCallable(e)){throw new TypeError("Array#findIndex: predicate must be a function")}var o=arguments.length>1?arguments[1]:null;for(var i=0;i<n;i++){if(o){if(t(e,o,r[i],i,r)){return i}}else if(e(r[i],i,r)){return i}}return-1},keys:function keys(){return new W(this,"key")},values:function values(){return new W(this,"value")},entries:function entries(){return new W(this,"entry")}};if(Array.prototype.keys&&!le.IsCallable([1].keys().next)){delete Array.prototype.keys}if(Array.prototype.entries&&!le.IsCallable([1].entries().next)){delete Array.prototype.entries}if(Array.prototype.keys&&Array.prototype.entries&&!Array.prototype.values&&Array.prototype[ae]){b(Array.prototype,{values:Array.prototype[ae]});if(ne.symbol(J.unscopables)){Array.prototype[J.unscopables].values=true}}if(c&&Array.prototype.values&&Array.prototype.values.name!=="values"){var rt=Array.prototype.values;oe(Array.prototype,"values",function values(){return le.Call(rt,this,arguments)});h(Array.prototype,ae,Array.prototype.values,true)}b(Array.prototype,tt);if(1/[true].indexOf(true,-0)<0){h(Array.prototype,"indexOf",function indexOf(e){var t=E(this,arguments);if(t===0&&1/t<0){return 0}return t},true)}xe(Array.prototype,function(){return this.values()});if(Object.getPrototypeOf){var nt=Object.getPrototypeOf([].values());if(nt){xe(nt)}}var ot=function(){return a(function(){return Array.from({length:-1}).length===0})}();var it=function(){var e=Array.from([0].entries());return e.length===1&&r(e[0])&&e[0][0]===0&&e[0][1]===0}();if(!ot||!it){oe(Array,"from",Qe.from)}var at=function(){return a(function(){return Array.from([0],void 0)})}();if(!at){var ut=Array.from;oe(Array,"from",function from(e){if(arguments.length>1&&typeof arguments[1]!=="undefined"){return le.Call(ut,this,arguments)}return t(ut,this,e)})}var ft=-(Math.pow(2,32)-1);var st=function(e,r){var n={length:ft};n[r?(n.length>>>0)-1:0]=true;return a(function(){t(e,n,function(){throw new RangeError("should not reach here")},[]);return true})};if(!st(Array.prototype.forEach)){var ct=Array.prototype.forEach;oe(Array.prototype,"forEach",function forEach(e){return le.Call(ct,this.length>=0?this:[],arguments)})}if(!st(Array.prototype.map)){var lt=Array.prototype.map;oe(Array.prototype,"map",function map(e){return le.Call(lt,this.length>=0?this:[],arguments)})}if(!st(Array.prototype.filter)){var pt=Array.prototype.filter;oe(Array.prototype,"filter",function filter(e){return le.Call(pt,this.length>=0?this:[],arguments)})}if(!st(Array.prototype.some)){var vt=Array.prototype.some;oe(Array.prototype,"some",function some(e){return le.Call(vt,this.length>=0?this:[],arguments)})}if(!st(Array.prototype.every)){var yt=Array.prototype.every;oe(Array.prototype,"every",function every(e){return le.Call(yt,this.length>=0?this:[],arguments)})}if(!st(Array.prototype.reduce)){var ht=Array.prototype.reduce;oe(Array.prototype,"reduce",function reduce(e){return le.Call(ht,this.length>=0?this:[],arguments)})}if(!st(Array.prototype.reduceRight,true)){var bt=Array.prototype.reduceRight;oe(Array.prototype,"reduceRight",function reduceRight(e){return le.Call(bt,this.length>=0?this:[],arguments)})}var gt=Number("0o10")!==8;var dt=Number("0b10")!==2;var mt=y($e,function(e){return Number(e+0+e)===0});if(gt||dt||mt){var Ot=Number;var wt=/^0b[01]+$/i;var jt=/^0o[0-7]+$/i;var St=wt.test.bind(wt);var Tt=jt.test.bind(jt);var It=function(e,t){var r;if(typeof e.valueOf==="function"){r=e.valueOf();if(ne.primitive(r)){return r}}if(typeof e.toString==="function"){r=e.toString();if(ne.primitive(r)){return r}}throw new TypeError("No default value")};var Et=Je.test.bind(Je);var Pt=Xe.test.bind(Xe);var Ct=function(){var e=function Number(t){var r;if(arguments.length>0){r=ne.primitive(t)?t:It(t,"number")}else{r=0}if(typeof r==="string"){r=le.Call(Ue,r);if(St(r)){r=parseInt(C(r,2),2)}else if(Tt(r)){r=parseInt(C(r,2),8)}else if(Et(r)||Pt(r)){r=NaN}}var n=this;var o=a(function(){Ot.prototype.valueOf.call(n);return true});if(n instanceof e&&!o){return new Ot(r)}return Ot(r)};return e}();Pe(Ot,Ct,{});b(Ct,{NaN:Ot.NaN,MAX_VALUE:Ot.MAX_VALUE,MIN_VALUE:Ot.MIN_VALUE,NEGATIVE_INFINITY:Ot.NEGATIVE_INFINITY,POSITIVE_INFINITY:Ot.POSITIVE_INFINITY});Number=Ct;m.redefine(S,"Number",Ct)}var Mt=Math.pow(2,53)-1;b(Number,{MAX_SAFE_INTEGER:Mt,MIN_SAFE_INTEGER:-Mt,EPSILON:2.220446049250313e-16,parseInt:S.parseInt,parseFloat:S.parseFloat,isFinite:Z,isInteger:function isInteger(e){return Z(e)&&le.ToInteger(e)===e},isSafeInteger:function isSafeInteger(e){return Number.isInteger(e)&&L(e)<=Number.MAX_SAFE_INTEGER},isNaN:K});h(Number,"parseInt",S.parseInt,Number.parseInt!==S.parseInt);if([,1].find(function(){return true})===1){oe(Array.prototype,"find",tt.find)}if([,1].findIndex(function(){return true})!==0){oe(Array.prototype,"findIndex",tt.findIndex)}var xt=Function.bind.call(Function.bind,Object.prototype.propertyIsEnumerable);var Nt=function ensureEnumerable(e,t){if(s&&xt(e,t)){Object.defineProperty(e,t,{enumerable:false})}};var At=function sliceArgs(){var e=Number(this);var t=arguments.length;var r=t-e;var n=new Array(r<0?0:r);for(var o=e;o<t;++o){n[o-e]=arguments[o]}return n};var _t=function assignTo(e){return function assignToSource(t,r){t[r]=e[r];return t}};var Rt=function(e,t){var r=n(Object(t));var o;if(le.IsCallable(Object.getOwnPropertySymbols)){o=v(Object.getOwnPropertySymbols(Object(t)),xt(t))}return p(P(r,o||[]),_t(t),e)};var kt={assign:function(e,t){var r=le.ToObject(e,"Cannot convert undefined or null to object");return p(le.Call(At,1,arguments),Rt,r)},is:function is(e,t){return le.SameValue(e,t)}};var Lt=Object.assign&&Object.preventExtensions&&function(){var e=Object.preventExtensions({1:2});try{Object.assign(e,"xy")}catch(t){return e[1]==="y"}}();if(Lt){oe(Object,"assign",kt.assign)}b(Object,kt);if(s){var Ft={setPrototypeOf:function(e){var r;var n=function(e,t){if(!le.TypeIsObject(e)){throw new TypeError("cannot set prototype on a non-object")}if(!(t===null||le.TypeIsObject(t))){throw new TypeError("can only set prototype to an object or null"+t)}};var o=function(e,o){n(e,o);t(r,e,o);return e};try{r=e.getOwnPropertyDescriptor(e.prototype,"__proto__").set;t(r,{},null)}catch(i){if(e.prototype!=={}.__proto__){return}r=function(e){this.__proto__=e};o.polyfill=o(o({},null),e.prototype)instanceof e}return o}(Object)};b(Object,Ft)}if(Object.setPrototypeOf&&Object.getPrototypeOf&&Object.getPrototypeOf(Object.setPrototypeOf({},null))!==null&&Object.getPrototypeOf(Object.create(null))===null){(function(){var e=Object.create(null);var t=Object.getPrototypeOf;var r=Object.setPrototypeOf;Object.getPrototypeOf=function(r){var n=t(r);return n===e?null:n};Object.setPrototypeOf=function(t,n){var o=n===null?e:n;return r(t,o)};Object.setPrototypeOf.polyfill=false})()}var Dt=!i(function(){return Object.keys("foo")});if(!Dt){var zt=Object.keys;oe(Object,"keys",function keys(e){return zt(le.ToObject(e))});n=Object.keys}var qt=i(function(){return Object.keys(/a/g)});if(qt){var Wt=Object.keys;oe(Object,"keys",function keys(e){if(ne.regex(e)){var t=[];for(var r in e){if(q(e,r)){M(t,r)}}return t}return Wt(e)});n=Object.keys}if(Object.getOwnPropertyNames){var Gt=!i(function(){return Object.getOwnPropertyNames("foo")});if(!Gt){var Ht=typeof window==="object"?Object.getOwnPropertyNames(window):[];var Vt=Object.getOwnPropertyNames;oe(Object,"getOwnPropertyNames",function getOwnPropertyNames(e){var t=le.ToObject(e);if(g(t)==="[object Window]"){try{return Vt(t)}catch(r){return P([],Ht)}}return Vt(t)})}}if(Object.getOwnPropertyDescriptor){var Bt=!i(function(){return Object.getOwnPropertyDescriptor("foo","bar")});if(!Bt){var Ut=Object.getOwnPropertyDescriptor;oe(Object,"getOwnPropertyDescriptor",function getOwnPropertyDescriptor(e,t){return Ut(le.ToObject(e),t)})}}if(Object.seal){var $t=!i(function(){return Object.seal("foo")});if(!$t){var Jt=Object.seal;oe(Object,"seal",function seal(e){if(!le.TypeIsObject(e)){return e}return Jt(e)})}}if(Object.isSealed){var Xt=!i(function(){return Object.isSealed("foo")});if(!Xt){var Kt=Object.isSealed;oe(Object,"isSealed",function isSealed(e){if(!le.TypeIsObject(e)){return true}return Kt(e)})}}if(Object.freeze){var Zt=!i(function(){return Object.freeze("foo")});if(!Zt){var Yt=Object.freeze;oe(Object,"freeze",function freeze(e){if(!le.TypeIsObject(e)){return e}return Yt(e)})}}if(Object.isFrozen){var Qt=!i(function(){return Object.isFrozen("foo")});if(!Qt){var er=Object.isFrozen;oe(Object,"isFrozen",function isFrozen(e){if(!le.TypeIsObject(e)){return true}return er(e)})}}if(Object.preventExtensions){var tr=!i(function(){return Object.preventExtensions("foo")});if(!tr){var rr=Object.preventExtensions;oe(Object,"preventExtensions",function preventExtensions(e){if(!le.TypeIsObject(e)){return e}return rr(e)})}}if(Object.isExtensible){var nr=!i(function(){return Object.isExtensible("foo")});if(!nr){var or=Object.isExtensible;oe(Object,"isExtensible",function isExtensible(e){if(!le.TypeIsObject(e)){return false}return or(e)})}}if(Object.getPrototypeOf){var ir=!i(function(){return Object.getPrototypeOf("foo")});if(!ir){var ar=Object.getPrototypeOf;oe(Object,"getPrototypeOf",function getPrototypeOf(e){return ar(le.ToObject(e))})}}var ur=s&&function(){var e=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags");return e&&le.IsCallable(e.get)}();if(s&&!ur){var fr=function flags(){if(!le.TypeIsObject(this)){throw new TypeError("Method called on incompatible type: must be an object.")}var e="";if(this.global){e+="g"}if(this.ignoreCase){e+="i"}if(this.multiline){e+="m"}if(this.unicode){e+="u"}if(this.sticky){e+="y"}return e};m.getter(RegExp.prototype,"flags",fr)}var sr=s&&a(function(){return String(new RegExp(/a/g,"i"))==="/a/i"});var cr=ie&&s&&function(){var e=/./;e[J.match]=false;return RegExp(e)===e}();var lr=a(function(){return RegExp.prototype.toString.call({source:"abc"})==="/abc/"});var pr=lr&&a(function(){return RegExp.prototype.toString.call({source:"a",flags:"b"})==="/a/b"});if(!lr||!pr){var vr=RegExp.prototype.toString;h(RegExp.prototype,"toString",function toString(){var e=le.RequireObjectCoercible(this);if(ne.regex(e)){return t(vr,e)}var r=fe(e.source);var n=fe(e.flags);return"/"+r+"/"+n},true);m.preserveToString(RegExp.prototype.toString,vr);RegExp.prototype.toString.prototype=void 0}if(s&&(!sr||cr)){var yr=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags").get;var hr=Object.getOwnPropertyDescriptor(RegExp.prototype,"source")||{};var br=function(){return this.source};var gr=le.IsCallable(hr.get)?hr.get:br;var dr=RegExp;var mr=function(){return function RegExp(e,t){var r=le.IsRegExp(e);var n=this instanceof RegExp;if(!n&&r&&typeof t==="undefined"&&e.constructor===RegExp){return e}var o=e;var i=t;if(ne.regex(e)){o=le.Call(gr,e);i=typeof t==="undefined"?le.Call(yr,e):t;return new RegExp(o,i)}else if(r){o=e.source;i=typeof t==="undefined"?e.flags:t}return new dr(e,t)}}();Pe(dr,mr,{$input:true});RegExp=mr;m.redefine(S,"RegExp",mr)}if(s){var Or={input:"$_",lastMatch:"$&",lastParen:"$+",leftContext:"$`",rightContext:"$'"};l(n(Or),function(e){if(e in RegExp&&!(Or[e]in RegExp)){m.getter(RegExp,Or[e],function get(){return RegExp[e]})}})}Me(RegExp);var wr=1/Number.EPSILON;var jr=function roundTiesToEven(e){return e+wr-wr};var Sr=Math.pow(2,-23);var Tr=Math.pow(2,127)*(2-Sr);var Ir=Math.pow(2,-126);var Er=Math.E;var Pr=Math.LOG2E;var Cr=Math.LOG10E;var Mr=Number.prototype.clz;delete Number.prototype.clz;var xr={acosh:function acosh(e){var t=Number(e);if(K(t)||e<1){return NaN}if(t===1){return 0}if(t===Infinity){return t}var r=1/(t*t);if(t<2){return Q(t-1+z(1-r)*t)}var n=t/2;return Q(n+z(1-r)*n-1)+1/Pr},asinh:function asinh(e){var t=Number(e);if(t===0||!T(t)){return t}var r=L(t);var n=r*r;var o=Y(t);if(r<1){return o*Q(r+n/(z(n+1)+1))}return o*(Q(r/2+z(1+1/n)*r/2-1)+1/Pr)},atanh:function atanh(e){var t=Number(e);if(t===0){return t}if(t===-1){return-Infinity}if(t===1){return Infinity}if(K(t)||t<-1||t>1){return NaN}var r=L(t);return Y(t)*Q(2*r/(1-r))/2},cbrt:function cbrt(e){var t=Number(e);if(t===0){return t}var r=t<0;var n;if(r){t=-t}if(t===Infinity){n=Infinity}else{n=F(D(t)/3);n=(t/(n*n)+2*n)/3}return r?-n:n},clz32:function clz32(e){var t=Number(e);var r=le.ToUint32(t);if(r===0){return 32}return Mr?le.Call(Mr,r):31-k(D(r+.5)*Pr)},cosh:function cosh(e){var t=Number(e);if(t===0){return 1}if(K(t)){return NaN}if(!T(t)){return Infinity}var r=F(L(t)-1);return(r+1/(r*Er*Er))*(Er/2)},expm1:function expm1(e){var t=Number(e);if(t===-Infinity){return-1}if(!T(t)||t===0){return t}if(L(t)>.5){return F(t)-1}var r=t;var n=0;var o=1;while(n+r!==n){n+=r;o+=1;r*=t/o}return n},hypot:function hypot(e,t){var r=0;var n=0;for(var o=0;o<arguments.length;++o){var i=L(Number(arguments[o]));if(n<i){r*=n/i*(n/i);r+=1;n=i}else{r+=i>0?i/n*(i/n):i}}return n===Infinity?Infinity:n*z(r)},log2:function log2(e){return D(e)*Pr},log10:function log10(e){return D(e)*Cr},log1p:Q,sign:Y,sinh:function sinh(e){var t=Number(e);if(!T(t)||t===0){return t}var r=L(t);if(r<1){var n=Math.expm1(r);return Y(t)*n*(1+1/(n+1))/2}var o=F(r-1);return Y(t)*(o-1/(o*Er*Er))*(Er/2)},tanh:function tanh(e){var t=Number(e);if(K(t)||t===0){return t}if(t>=20){return 1}if(t<=-20){return-1}return(Math.expm1(t)-Math.expm1(-t))/(F(t)+F(-t))},trunc:function trunc(e){var t=Number(e);return t<0?-k(-t):k(t)},imul:function imul(e,t){var r=le.ToUint32(e);var n=le.ToUint32(t);var o=r>>>16&65535;var i=r&65535;var a=n>>>16&65535;var u=n&65535;return i*u+(o*u+i*a<<16>>>0)|0},fround:function fround(e){var t=Number(e);if(t===0||t===Infinity||t===-Infinity||K(t)){return t}var r=Y(t);var n=L(t);if(n<Ir){return r*jr(n/Ir/Sr)*Ir*Sr}var o=(1+Sr/Number.EPSILON)*n;var i=o-(o-n);if(i>Tr||K(i)){return r*Infinity}return r*i}};var Nr=function withinULPDistance(e,t,r){return L(1-e/t)/Number.EPSILON<(r||8)};b(Math,xr);h(Math,"sinh",xr.sinh,Math.sinh(710)===Infinity);h(Math,"cosh",xr.cosh,Math.cosh(710)===Infinity);h(Math,"log1p",xr.log1p,Math.log1p(-1e-17)!==-1e-17);h(Math,"asinh",xr.asinh,Math.asinh(-1e7)!==-Math.asinh(1e7)); 27918h(Math,"asinh",xr.asinh,Math.asinh(1e300)===Infinity);h(Math,"atanh",xr.atanh,Math.atanh(1e-300)===0);h(Math,"tanh",xr.tanh,Math.tanh(-2e-17)!==-2e-17);h(Math,"acosh",xr.acosh,Math.acosh(Number.MAX_VALUE)===Infinity);h(Math,"acosh",xr.acosh,!Nr(Math.acosh(1+Number.EPSILON),Math.sqrt(2*Number.EPSILON)));h(Math,"cbrt",xr.cbrt,!Nr(Math.cbrt(1e-300),1e-100));h(Math,"sinh",xr.sinh,Math.sinh(-2e-17)!==-2e-17);var Ar=Math.expm1(10);h(Math,"expm1",xr.expm1,Ar>22025.465794806718||Ar<22025.465794806718);h(Math,"hypot",xr.hypot,Math.hypot(Infinity,NaN)!==Infinity);var _r=Math.round;var Rr=Math.round(.5-Number.EPSILON/4)===0&&Math.round(-.5+Number.EPSILON/3.99)===1;var kr=wr+1;var Lr=2*wr-1;var Fr=[kr,Lr].every(function(e){return Math.round(e)===e});h(Math,"round",function round(e){var t=k(e);var r=t===-1?-0:t+1;return e-t<.5?t:r},!Rr||!Fr);m.preserveToString(Math.round,_r);var Dr=Math.imul;if(Math.imul(4294967295,5)!==-5){Math.imul=xr.imul;m.preserveToString(Math.imul,Dr)}if(Math.imul.length!==2){oe(Math,"imul",function imul(e,t){return le.Call(Dr,Math,arguments)})}var zr=function(){var e=S.setTimeout;if(typeof e!=="function"&&typeof e!=="object"){return}le.IsPromise=function(e){if(!le.TypeIsObject(e)){return false}if(typeof e._promise==="undefined"){return false}return true};var r=function(e){if(!le.IsConstructor(e)){throw new TypeError("Bad promise constructor")}var t=this;var r=function(e,r){if(t.resolve!==void 0||t.reject!==void 0){throw new TypeError("Bad Promise implementation!")}t.resolve=e;t.reject=r};t.resolve=void 0;t.reject=void 0;t.promise=new e(r);if(!(le.IsCallable(t.resolve)&&le.IsCallable(t.reject))){throw new TypeError("Bad promise constructor")}};var n;if(typeof window!=="undefined"&&le.IsCallable(window.postMessage)){n=function(){var e=[];var t="zero-timeout-message";var r=function(r){M(e,r);window.postMessage(t,"*")};var n=function(r){if(r.source===window&&r.data===t){r.stopPropagation();if(e.length===0){return}var n=A(e);n()}};window.addEventListener("message",n,true);return r}}var o=function(){var e=S.Promise;var t=e&&e.resolve&&e.resolve();return t&&function(e){return t.then(e)}};var i=le.IsCallable(S.setImmediate)?S.setImmediate:typeof process==="object"&&process.nextTick?process.nextTick:o()||(le.IsCallable(n)?n():function(t){e(t,0)});var a=function(e){return e};var u=function(e){throw e};var f=0;var s=1;var c=2;var l=0;var p=1;var v=2;var y={};var h=function(e,t,r){i(function(){g(e,t,r)})};var g=function(e,t,r){var n,o;if(t===y){return e(r)}try{n=e(r);o=t.resolve}catch(i){n=i;o=t.reject}o(n)};var d=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.fulfillReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o<n;o++,i+=3){h(r[i+l],r[i+v],t);e[i+l]=void 0;e[i+p]=void 0;e[i+v]=void 0}}}r.result=t;r.state=s;r.reactionLength=0};var m=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.rejectReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o<n;o++,i+=3){h(r[i+p],r[i+v],t);e[i+l]=void 0;e[i+p]=void 0;e[i+v]=void 0}}}r.result=t;r.state=c;r.reactionLength=0};var O=function(e){var t=false;var r=function(r){var n;if(t){return}t=true;if(r===e){return m(e,new TypeError("Self resolution"))}if(!le.TypeIsObject(r)){return d(e,r)}try{n=r.then}catch(o){return m(e,o)}if(!le.IsCallable(n)){return d(e,r)}i(function(){j(e,r,n)})};var n=function(r){if(t){return}t=true;return m(e,r)};return{resolve:r,reject:n}};var w=function(e,r,n,o){if(e===I){t(e,r,n,o,y)}else{t(e,r,n,o)}};var j=function(e,t,r){var n=O(e);var o=n.resolve;var i=n.reject;try{w(r,t,o,i)}catch(a){i(a)}};var T,I;var E=function(){var e=function Promise(t){if(!(this instanceof e)){throw new TypeError('Constructor Promise requires "new"')}if(this&&this._promise){throw new TypeError("Bad construction")}if(!le.IsCallable(t)){throw new TypeError("not a valid resolver")}var r=_e(this,e,T,{_promise:{result:void 0,state:f,reactionLength:0,fulfillReactionHandler0:void 0,rejectReactionHandler0:void 0,reactionCapability0:void 0}});var n=O(r);var o=n.reject;try{t(n.resolve,o)}catch(i){o(i)}return r};return e}();T=E.prototype;var P=function(e,t,r,n){var o=false;return function(i){if(o){return}o=true;t[e]=i;if(--n.count===0){var a=r.resolve;a(t)}}};var C=function(e,t,r){var n=e.iterator;var o=[];var i={count:1};var a,u;var f=0;while(true){try{a=le.IteratorStep(n);if(a===false){e.done=true;break}u=a.value}catch(s){e.done=true;throw s}o[f]=void 0;var c=t.resolve(u);var l=P(f,o,r,i);i.count+=1;w(c.then,c,l,r.reject);f+=1}if(--i.count===0){var p=r.resolve;p(o)}return r.promise};var x=function(e,t,r){var n=e.iterator;var o,i,a;while(true){try{o=le.IteratorStep(n);if(o===false){e.done=true;break}i=o.value}catch(u){e.done=true;throw u}a=t.resolve(i);w(a.then,a,r.resolve,r.reject)}return r.promise};b(E,{all:function all(e){var t=this;if(!le.TypeIsObject(t)){throw new TypeError("Promise is not object")}var n=new r(t);var o,i;try{o=le.GetIterator(e);i={iterator:o,done:false};return C(i,t,n)}catch(a){var u=a;if(i&&!i.done){try{le.IteratorClose(o,true)}catch(f){u=f}}var s=n.reject;s(u);return n.promise}},race:function race(e){var t=this;if(!le.TypeIsObject(t)){throw new TypeError("Promise is not object")}var n=new r(t);var o,i;try{o=le.GetIterator(e);i={iterator:o,done:false};return x(i,t,n)}catch(a){var u=a;if(i&&!i.done){try{le.IteratorClose(o,true)}catch(f){u=f}}var s=n.reject;s(u);return n.promise}},reject:function reject(e){var t=this;if(!le.TypeIsObject(t)){throw new TypeError("Bad promise constructor")}var n=new r(t);var o=n.reject;o(e);return n.promise},resolve:function resolve(e){var t=this;if(!le.TypeIsObject(t)){throw new TypeError("Bad promise constructor")}if(le.IsPromise(e)){var n=e.constructor;if(n===t){return e}}var o=new r(t);var i=o.resolve;i(e);return o.promise}});b(T,{"catch":function(e){return this.then(null,e)},then:function then(e,t){var n=this;if(!le.IsPromise(n)){throw new TypeError("not a promise")}var o=le.SpeciesConstructor(n,E);var i;var b=arguments.length>2&&arguments[2]===y;if(b&&o===E){i=y}else{i=new r(o)}var g=le.IsCallable(e)?e:a;var d=le.IsCallable(t)?t:u;var m=n._promise;var O;if(m.state===f){if(m.reactionLength===0){m.fulfillReactionHandler0=g;m.rejectReactionHandler0=d;m.reactionCapability0=i}else{var w=3*(m.reactionLength-1);m[w+l]=g;m[w+p]=d;m[w+v]=i}m.reactionLength+=1}else if(m.state===s){O=m.result;h(g,i,O)}else if(m.state===c){O=m.result;h(d,i,O)}else{throw new TypeError("unexpected Promise state")}return i.promise}});y=new r(E);I=T.then;return E}();if(S.Promise){delete S.Promise.accept;delete S.Promise.defer;delete S.Promise.prototype.chain}if(typeof zr==="function"){b(S,{Promise:zr});var qr=w(S.Promise,function(e){return e.resolve(42).then(function(){})instanceof e});var Wr=!i(function(){return S.Promise.reject(42).then(null,5).then(null,G)});var Gr=i(function(){return S.Promise.call(3,G)});var Hr=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);try{r.then(null,G).then(null,G)}catch(n){return true}return t===r}(S.Promise);var Vr=s&&function(){var e=0;var t=Object.defineProperty({},"then",{get:function(){e+=1}});Promise.resolve(t);return e===1}();var Br=function BadResolverPromise(e){var t=new Promise(e);e(3,function(){});this.then=t.then;this.constructor=BadResolverPromise};Br.prototype=Promise.prototype;Br.all=Promise.all;var Ur=a(function(){return!!Br.all([1,2])});if(!qr||!Wr||!Gr||Hr||!Vr||Ur){Promise=zr;oe(S,"Promise",zr)}if(Promise.all.length!==1){var $r=Promise.all;oe(Promise,"all",function all(e){return le.Call($r,this,arguments)})}if(Promise.race.length!==1){var Jr=Promise.race;oe(Promise,"race",function race(e){return le.Call(Jr,this,arguments)})}if(Promise.resolve.length!==1){var Xr=Promise.resolve;oe(Promise,"resolve",function resolve(e){return le.Call(Xr,this,arguments)})}if(Promise.reject.length!==1){var Kr=Promise.reject;oe(Promise,"reject",function reject(e){return le.Call(Kr,this,arguments)})}Nt(Promise,"all");Nt(Promise,"race");Nt(Promise,"resolve");Nt(Promise,"reject");Me(Promise)}var Zr=function(e){var t=n(p(e,function(e,t){e[t]=true;return e},{}));return e.join(":")===t.join(":")};var Yr=Zr(["z","a","bb"]);var Qr=Zr(["z",1,"a","3",2]);if(s){var en=function fastkey(e,t){if(!t&&!Yr){return null}if(ce(e)){return"^"+le.ToString(e)}else if(typeof e==="string"){return"$"+e}else if(typeof e==="number"){if(!Qr){return"n"+e}return e}else if(typeof e==="boolean"){return"b"+e}return null};var tn=function emptyObject(){return Object.create?Object.create(null):{}};var rn=function addIterableToMap(e,n,o){if(r(o)||ne.string(o)){l(o,function(e){if(!le.TypeIsObject(e)){throw new TypeError("Iterator value "+e+" is not an entry object")}n.set(e[0],e[1])})}else if(o instanceof e){t(e.prototype.forEach,o,function(e,t){n.set(t,e)})}else{var i,a;if(!ce(o)){a=n.set;if(!le.IsCallable(a)){throw new TypeError("bad map")}i=le.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=le.IteratorStep(i);if(u===false){break}var f=u.value;try{if(!le.TypeIsObject(f)){throw new TypeError("Iterator value "+f+" is not an entry object")}t(a,n,f[0],f[1])}catch(s){le.IteratorClose(i,true);throw s}}}}};var nn=function addIterableToSet(e,n,o){if(r(o)||ne.string(o)){l(o,function(e){n.add(e)})}else if(o instanceof e){t(e.prototype.forEach,o,function(e){n.add(e)})}else{var i,a;if(!ce(o)){a=n.add;if(!le.IsCallable(a)){throw new TypeError("bad set")}i=le.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=le.IteratorStep(i);if(u===false){break}var f=u.value;try{t(a,n,f)}catch(s){le.IteratorClose(i,true);throw s}}}}};var on={Map:function(){var e={};var r=function MapEntry(e,t){this.key=e;this.value=t;this.next=null;this.prev=null};r.prototype.isRemoved=function isRemoved(){return this.key===e};var n=function isMap(e){return!!e._es6map};var o=function requireMapSlot(e,t){if(!le.TypeIsObject(e)||!n(e)){throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+le.ToString(e))}};var i=function MapIterator(e,t){o(e,"[[MapIterator]]");h(this,"head",e._head);h(this,"i",this.head);h(this,"kind",t)};i.prototype={isMapIterator:true,next:function next(){if(!this.isMapIterator){throw new TypeError("Not a MapIterator")}var e=this.i;var t=this.kind;var r=this.head;if(typeof this.i==="undefined"){return Ze()}while(e.isRemoved()&&e!==r){e=e.prev}var n;while(e.next!==r){e=e.next;if(!e.isRemoved()){if(t==="key"){n=e.key}else if(t==="value"){n=e.value}else{n=[e.key,e.value]}this.i=e;return Ze(n)}}this.i=void 0;return Ze()}};xe(i.prototype);var a;var u=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}if(this&&this._es6map){throw new TypeError("Bad construction")}var e=_e(this,Map,a,{_es6map:true,_head:null,_map:H?new H:null,_size:0,_storage:tn()});var t=new r(null,null);t.next=t.prev=t;e._head=t;if(arguments.length>0){rn(Map,e,arguments[0])}return e};a=u.prototype;m.getter(a,"size",function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size});b(a,{get:function get(e){o(this,"get");var t;var r=en(e,true);if(r!==null){t=this._storage[r];if(t){return t.value}return}if(this._map){t=B.call(this._map,e);if(t){return t.value}return}var n=this._head;var i=n;while((i=i.next)!==n){if(le.SameValueZero(i.key,e)){return i.value}}},has:function has(e){o(this,"has");var t=en(e,true);if(t!==null){return typeof this._storage[t]!=="undefined"}if(this._map){return U.call(this._map,e)}var r=this._head;var n=r;while((n=n.next)!==r){if(le.SameValueZero(n.key,e)){return true}}return false},set:function set(e,t){o(this,"set");var n=this._head;var i=n;var a;var u=en(e,true);if(u!==null){if(typeof this._storage[u]!=="undefined"){this._storage[u].value=t;return this}a=this._storage[u]=new r(e,t);i=n.prev}else if(this._map){if(U.call(this._map,e)){B.call(this._map,e).value=t}else{a=new r(e,t);$.call(this._map,e,a);i=n.prev}}while((i=i.next)!==n){if(le.SameValueZero(i.key,e)){i.value=t;return this}}a=a||new r(e,t);if(le.SameValue(-0,e)){a.key=+0}a.next=this._head;a.prev=this._head.prev;a.prev.next=a;a.next.prev=a;this._size+=1;return this},"delete":function(t){o(this,"delete");var r=this._head;var n=r;var i=en(t,true);if(i!==null){if(typeof this._storage[i]==="undefined"){return false}n=this._storage[i].prev;delete this._storage[i]}else if(this._map){if(!U.call(this._map,t)){return false}n=B.call(this._map,t).prev;V.call(this._map,t)}while((n=n.next)!==r){if(le.SameValueZero(n.key,t)){n.key=e;n.value=e;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function clear(){o(this,"clear");this._map=H?new H:null;this._size=0;this._storage=tn();var t=this._head;var r=t;var n=r.next;while((r=n)!==t){r.key=e;r.value=e;n=r.next;r.next=r.prev=t}t.next=t.prev=t},keys:function keys(){o(this,"keys");return new i(this,"key")},values:function values(){o(this,"values");return new i(this,"value")},entries:function entries(){o(this,"entries");return new i(this,"key+value")},forEach:function forEach(e){o(this,"forEach");var r=arguments.length>1?arguments[1]:null;var n=this.entries();for(var i=n.next();!i.done;i=n.next()){if(r){t(e,r,i.value[1],i.value[0],this)}else{e(i.value[1],i.value[0],this)}}}});xe(a,a.entries);return u}(),Set:function(){var e=function isSet(e){return e._es6set&&typeof e._storage!=="undefined"};var r=function requireSetSlot(t,r){if(!le.TypeIsObject(t)||!e(t)){throw new TypeError("Set.prototype."+r+" called on incompatible receiver "+le.ToString(t))}};var o;var i=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}if(this&&this._es6set){throw new TypeError("Bad construction")}var e=_e(this,Set,o,{_es6set:true,"[[SetData]]":null,_storage:tn()});if(!e._es6set){throw new TypeError("bad set")}if(arguments.length>0){nn(Set,e,arguments[0])}return e};o=i.prototype;var a=function(e){var t=e;if(t==="^null"){return null}else if(t==="^undefined"){return void 0}var r=t.charAt(0);if(r==="$"){return C(t,1)}else if(r==="n"){return+C(t,1)}else if(r==="b"){return t==="btrue"}return+t};var u=function ensureMap(e){if(!e["[[SetData]]"]){var t=new on.Map;e["[[SetData]]"]=t;l(n(e._storage),function(e){var r=a(e);t.set(r,r)});e["[[SetData]]"]=t}e._storage=null};m.getter(i.prototype,"size",function(){r(this,"size");if(this._storage){return n(this._storage).length}u(this);return this["[[SetData]]"].size});b(i.prototype,{has:function has(e){r(this,"has");var t;if(this._storage&&(t=en(e))!==null){return!!this._storage[t]}u(this);return this["[[SetData]]"].has(e)},add:function add(e){r(this,"add");var t;if(this._storage&&(t=en(e))!==null){this._storage[t]=true;return this}u(this);this["[[SetData]]"].set(e,e);return this},"delete":function(e){r(this,"delete");var t;if(this._storage&&(t=en(e))!==null){var n=q(this._storage,t);return delete this._storage[t]&&n}u(this);return this["[[SetData]]"]["delete"](e)},clear:function clear(){r(this,"clear");if(this._storage){this._storage=tn()}if(this["[[SetData]]"]){this["[[SetData]]"].clear()}},values:function values(){r(this,"values");u(this);return new f(this["[[SetData]]"].values())},entries:function entries(){r(this,"entries");u(this);return new f(this["[[SetData]]"].entries())},forEach:function forEach(e){r(this,"forEach");var n=arguments.length>1?arguments[1]:null;var o=this;u(o);this["[[SetData]]"].forEach(function(r,i){if(n){t(e,n,i,i,o)}else{e(i,i,o)}})}});h(i.prototype,"keys",i.prototype.values,true);xe(i.prototype,i.prototype.values);var f=function SetIterator(e){h(this,"it",e)};f.prototype={isSetIterator:true,next:function next(){if(!this.isSetIterator){throw new TypeError("Not a SetIterator")}return this.it.next()}};xe(f.prototype);return i}()};var an=S.Set&&!Set.prototype["delete"]&&Set.prototype.remove&&Set.prototype.items&&Set.prototype.map&&Array.isArray((new Set).keys);if(an){S.Set=on.Set}if(S.Map||S.Set){var un=a(function(){return new Map([[1,2]]).get(1)===2});if(!un){S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new H;if(arguments.length>0){rn(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,S.Map.prototype);return e};S.Map.prototype=O(H.prototype);h(S.Map.prototype,"constructor",S.Map,true);m.preserveToString(S.Map,H)}var fn=new Map;var sn=function(){var e=new Map([[1,0],[2,0],[3,0],[4,0]]);e.set(-0,e);return e.get(0)===e&&e.get(-0)===e&&e.has(0)&&e.has(-0)}();var cn=fn.set(1,2)===fn;if(!sn||!cn){oe(Map.prototype,"set",function set(e,r){t($,this,e===0?0:e,r);return this})}if(!sn){b(Map.prototype,{get:function get(e){return t(B,this,e===0?0:e)},has:function has(e){return t(U,this,e===0?0:e)}},true);m.preserveToString(Map.prototype.get,B);m.preserveToString(Map.prototype.has,U)}var ln=new Set;var pn=Set.prototype["delete"]&&Set.prototype.add&&Set.prototype.has&&function(e){e["delete"](0);e.add(-0);return!e.has(0)}(ln);var vn=ln.add(1)===ln;if(!pn||!vn){var yn=Set.prototype.add;Set.prototype.add=function add(e){t(yn,this,e===0?0:e);return this};m.preserveToString(Set.prototype.add,yn)}if(!pn){var hn=Set.prototype.has;Set.prototype.has=function has(e){return t(hn,this,e===0?0:e)};m.preserveToString(Set.prototype.has,hn);var bn=Set.prototype["delete"];Set.prototype["delete"]=function SetDelete(e){return t(bn,this,e===0?0:e)};m.preserveToString(Set.prototype["delete"],bn)}var gn=w(S.Map,function(e){var t=new e([]);t.set(42,42);return t instanceof e});var dn=Object.setPrototypeOf&&!gn;var mn=function(){try{return!(S.Map()instanceof S.Map)}catch(e){return e instanceof TypeError}}();if(S.Map.length!==0||dn||!mn){S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new H;if(arguments.length>0){rn(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Map.prototype);return e};S.Map.prototype=H.prototype;h(S.Map.prototype,"constructor",S.Map,true);m.preserveToString(S.Map,H)}var On=w(S.Set,function(e){var t=new e([]);t.add(42,42);return t instanceof e});var wn=Object.setPrototypeOf&&!On;var jn=function(){try{return!(S.Set()instanceof S.Set)}catch(e){return e instanceof TypeError}}();if(S.Set.length!==0||wn||!jn){var Sn=S.Set;S.Set=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}var e=new Sn;if(arguments.length>0){nn(Set,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Set.prototype);return e};S.Set.prototype=Sn.prototype;h(S.Set.prototype,"constructor",S.Set,true);m.preserveToString(S.Set,Sn)}var Tn=new S.Map;var In=!a(function(){return Tn.keys().next().done});if(typeof S.Map.prototype.clear!=="function"||(new S.Set).size!==0||Tn.size!==0||typeof S.Map.prototype.keys!=="function"||typeof S.Set.prototype.keys!=="function"||typeof S.Map.prototype.forEach!=="function"||typeof S.Set.prototype.forEach!=="function"||u(S.Map)||u(S.Set)||typeof Tn.keys().next!=="function"||In||!gn){b(S,{Map:on.Map,Set:on.Set},true)}if(S.Set.prototype.keys!==S.Set.prototype.values){h(S.Set.prototype,"keys",S.Set.prototype.values,true)}xe(Object.getPrototypeOf((new S.Map).keys()));xe(Object.getPrototypeOf((new S.Set).keys()));if(c&&S.Set.prototype.has.name!=="has"){var En=S.Set.prototype.has;oe(S.Set.prototype,"has",function has(e){return t(En,this,e)})}}b(S,on);Me(S.Map);Me(S.Set)}var Pn=function throwUnlessTargetIsObject(e){if(!le.TypeIsObject(e)){throw new TypeError("target must be an object")}};var Cn={apply:function apply(){return le.Call(le.Call,null,arguments)},construct:function construct(e,t){if(!le.IsConstructor(e)){throw new TypeError("First argument must be a constructor.")}var r=arguments.length>2?arguments[2]:e;if(!le.IsConstructor(r)){throw new TypeError("new.target must be a constructor.")}return le.Construct(e,t,r,"internal")},deleteProperty:function deleteProperty(e,t){Pn(e);if(s){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable){return false}}return delete e[t]},has:function has(e,t){Pn(e);return t in e}};if(Object.getOwnPropertyNames){Object.assign(Cn,{ownKeys:function ownKeys(e){Pn(e);var t=Object.getOwnPropertyNames(e);if(le.IsCallable(Object.getOwnPropertySymbols)){x(t,Object.getOwnPropertySymbols(e))}return t}})}var Mn=function ConvertExceptionToBoolean(e){return!i(e)};if(Object.preventExtensions){Object.assign(Cn,{isExtensible:function isExtensible(e){Pn(e);return Object.isExtensible(e)},preventExtensions:function preventExtensions(e){Pn(e);return Mn(function(){return Object.preventExtensions(e)})}})}if(s){var xn=function get(e,t,r){var n=Object.getOwnPropertyDescriptor(e,t);if(!n){var o=Object.getPrototypeOf(e);if(o===null){return void 0}return xn(o,t,r)}if("value"in n){return n.value}if(n.get){return le.Call(n.get,r)}return void 0};var Nn=function set(e,r,n,o){var i=Object.getOwnPropertyDescriptor(e,r);if(!i){var a=Object.getPrototypeOf(e);if(a!==null){return Nn(a,r,n,o)}i={value:void 0,writable:true,enumerable:true,configurable:true}}if("value"in i){if(!i.writable){return false}if(!le.TypeIsObject(o)){return false}var u=Object.getOwnPropertyDescriptor(o,r);if(u){return ue.defineProperty(o,r,{value:n})}return ue.defineProperty(o,r,{value:n,writable:true,enumerable:true,configurable:true})}if(i.set){t(i.set,o,n);return true}return false};Object.assign(Cn,{defineProperty:function defineProperty(e,t,r){Pn(e);return Mn(function(){return Object.defineProperty(e,t,r)})},getOwnPropertyDescriptor:function getOwnPropertyDescriptor(e,t){Pn(e);return Object.getOwnPropertyDescriptor(e,t)},get:function get(e,t){Pn(e);var r=arguments.length>2?arguments[2]:e;return xn(e,t,r)},set:function set(e,t,r){Pn(e);var n=arguments.length>3?arguments[3]:e;return Nn(e,t,r,n)}})}if(Object.getPrototypeOf){var An=Object.getPrototypeOf;Cn.getPrototypeOf=function getPrototypeOf(e){Pn(e);return An(e)}}if(Object.setPrototypeOf&&Cn.getPrototypeOf){var _n=function(e,t){var r=t;while(r){if(e===r){return true}r=Cn.getPrototypeOf(r)}return false};Object.assign(Cn,{setPrototypeOf:function setPrototypeOf(e,t){Pn(e);if(t!==null&&!le.TypeIsObject(t)){throw new TypeError("proto must be an object or null")}if(t===ue.getPrototypeOf(e)){return true}if(ue.isExtensible&&!ue.isExtensible(e)){return false}if(_n(e,t)){return false}Object.setPrototypeOf(e,t);return true}})}var Rn=function(e,t){if(!le.IsCallable(S.Reflect[e])){h(S.Reflect,e,t)}else{var r=a(function(){S.Reflect[e](1);S.Reflect[e](NaN);S.Reflect[e](true);return true});if(r){oe(S.Reflect,e,t)}}};Object.keys(Cn).forEach(function(e){Rn(e,Cn[e])});var kn=S.Reflect.getPrototypeOf;if(c&&kn&&kn.name!=="getPrototypeOf"){oe(S.Reflect,"getPrototypeOf",function getPrototypeOf(e){return t(kn,S.Reflect,e)})}if(S.Reflect.setPrototypeOf){if(a(function(){S.Reflect.setPrototypeOf(1,{});return true})){oe(S.Reflect,"setPrototypeOf",Cn.setPrototypeOf)}}if(S.Reflect.defineProperty){if(!a(function(){var e=!S.Reflect.defineProperty(1,"test",{value:1});var t=typeof Object.preventExtensions!=="function"||!S.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t})){oe(S.Reflect,"defineProperty",Cn.defineProperty)}}if(S.Reflect.construct){if(!a(function(){var e=function F(){};return S.Reflect.construct(function(){},[],e)instanceof e})){oe(S.Reflect,"construct",Cn.construct)}}if(String(new Date(NaN))!=="Invalid Date"){var Ln=Date.prototype.toString;var Fn=function toString(){var e=+this;if(e!==e){return"Invalid Date"}return le.Call(Ln,this)};oe(Date.prototype,"toString",Fn)}var Dn={anchor:function anchor(e){return le.CreateHTML(this,"a","name",e)},big:function big(){return le.CreateHTML(this,"big","","")},blink:function blink(){return le.CreateHTML(this,"blink","","")},bold:function bold(){return le.CreateHTML(this,"b","","")},fixed:function fixed(){return le.CreateHTML(this,"tt","","")},fontcolor:function fontcolor(e){return le.CreateHTML(this,"font","color",e)},fontsize:function fontsize(e){return le.CreateHTML(this,"font","size",e)},italics:function italics(){return le.CreateHTML(this,"i","","")},link:function link(e){return le.CreateHTML(this,"a","href",e)},small:function small(){return le.CreateHTML(this,"small","","")},strike:function strike(){return le.CreateHTML(this,"strike","","")},sub:function sub(){return le.CreateHTML(this,"sub","","")},sup:function sub(){return le.CreateHTML(this,"sup","","")}};l(Object.keys(Dn),function(e){var r=String.prototype[e];var n=false;if(le.IsCallable(r)){var o=t(r,"",' " ');var i=P([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else{n=true}if(n){oe(String.prototype,e,Dn[e])}});var zn=function(){if(!ie){return false}var e=typeof JSON==="object"&&typeof JSON.stringify==="function"?JSON.stringify:null;if(!e){return false}if(typeof e(J())!=="undefined"){return true}if(e([J()])!=="[null]"){return true}var t={a:J()};t[J()]=true;if(e(t)!=="{}"){return true}return false}();var qn=a(function(){if(!ie){return true}return JSON.stringify(Object(J()))==="{}"&&JSON.stringify([Object(J())])==="[{}]"});if(zn||!qn){var Wn=JSON.stringify;oe(JSON,"stringify",function stringify(e){if(typeof e==="symbol"){return}var n;if(arguments.length>1){n=arguments[1]}var o=[e];if(!r(n)){var i=le.IsCallable(n)?n:null;var a=function(e,r){var n=i?t(i,this,e,r):r;if(typeof n!=="symbol"){if(ne.symbol(n)){return _t({})(n)}return n}};o.push(a)}else{o.push(n)}if(arguments.length>2){o.push(arguments[2])}return Wn.apply(this,o)})}return S}); 27919//# sourceMappingURL=es6-shim.map 27920 27921 27922/***/ }), 27923
vendor: 50,793 bytes, lines 27924-27934
27924/***/ "./node_modules/flatpickr/dist/flatpickr.min.js": 27925/*!******************************************************!*\ 27926 !*** ./node_modules/flatpickr/dist/flatpickr.min.js ***! 27927 \******************************************************/ 27928/***/ (function(module) { 27929 27930/* flatpickr v4.6.13,, @license MIT */ 27931!function(e,n){ true?module.exports=n():0}(this,(function(){"use strict";var e=function(){return(e=Object.assign||function(e){for(var n,t=1,a=arguments.length;t<a;t++)for(var i in n=arguments[t])Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i]);return e}).apply(this,arguments)};function n(){for(var e=0,n=0,t=arguments.length;n<t;n++)e+=arguments[n].length;var a=Array(e),i=0;for(n=0;n<t;n++)for(var o=arguments[n],r=0,l=o.length;r<l;r++,i++)a[i]=o[r];return a}var t=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],a={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:"object"==typeof window&&-1===window.navigator.userAgent.indexOf("MSIE"),ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(e){return"undefined"!=typeof console&&console.warn(e)},getWeek:function(e){var n=new Date(e.getTime());n.setHours(0,0,0,0),n.setDate(n.getDate()+3-(n.getDay()+6)%7);var t=new Date(n.getFullYear(),0,4);return 1+Math.round(((n.getTime()-t.getTime())/864e5-3+(t.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},i={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var n=e%100;if(n>3&&n<21)return"th";switch(n%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},o=function(e,n){return void 0===n&&(n=2),("000"+e).slice(-1*n)},r=function(e){return!0===e?1:0};function l(e,n){var t;return function(){var a=this,i=arguments;clearTimeout(t),t=setTimeout((function(){return e.apply(a,i)}),n)}}var c=function(e){return e instanceof Array?e:[e]};function s(e,n,t){if(!0===t)return e.classList.add(n);e.classList.remove(n)}function d(e,n,t){var a=window.document.createElement(e);return n=n||"",t=t||"",a.className=n,void 0!==t&&(a.textContent=t),a}function u(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function f(e,n){return n(e)?e:e.parentNode?f(e.parentNode,n):void 0}function m(e,n){var t=d("div","numInputWrapper"),a=d("input","numInput "+e),i=d("span","arrowUp"),o=d("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?a.type="number":(a.type="text",a.pattern="\\d*"),void 0!==n)for(var r in n)a.setAttribute(r,n[r]);return t.appendChild(a),t.appendChild(i),t.appendChild(o),t}function g(e){try{return"function"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(n){return e.target}}var p=function(){},h=function(e,n,t){return t.months[n?"shorthand":"longhand"][e]},v={D:p,F:function(e,n,t){e.setMonth(t.months.longhand.indexOf(n))},G:function(e,n){e.setHours((e.getHours()>=12?12:0)+parseFloat(n))},H:function(e,n){e.setHours(parseFloat(n))},J:function(e,n){e.setDate(parseFloat(n))},K:function(e,n,t){e.setHours(e.getHours()%12+12*r(new RegExp(t.amPM[1],"i").test(n)))},M:function(e,n,t){e.setMonth(t.months.shorthand.indexOf(n))},S:function(e,n){e.setSeconds(parseFloat(n))},U:function(e,n){return new Date(1e3*parseFloat(n))},W:function(e,n,t){var a=parseInt(n),i=new Date(e.getFullYear(),0,2+7*(a-1),0,0,0,0);return i.setDate(i.getDate()-i.getDay()+t.firstDayOfWeek),i},Y:function(e,n){e.setFullYear(parseFloat(n))},Z:function(e,n){return new Date(n)},d:function(e,n){e.setDate(parseFloat(n))},h:function(e,n){e.setHours((e.getHours()>=12?12:0)+parseFloat(n))},i:function(e,n){e.setMinutes(parseFloat(n))},j:function(e,n){e.setDate(parseFloat(n))},l:p,m:function(e,n){e.setMonth(parseFloat(n)-1)},n:function(e,n){e.setMonth(parseFloat(n)-1)},s:function(e,n){e.setSeconds(parseFloat(n))},u:function(e,n){return new Date(parseFloat(n))},w:p,y:function(e,n){e.setFullYear(2e3+parseFloat(n))}},D={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},w={Z:function(e){return e.toISOString()},D:function(e,n,t){return n.weekdays.shorthand[w.w(e,n,t)]},F:function(e,n,t){return h(w.n(e,n,t)-1,!1,n)},G:function(e,n,t){return o(w.h(e,n,t))},H:function(e){return o(e.getHours())},J:function(e,n){return void 0!==n.ordinal?e.getDate()+n.ordinal(e.getDate()):e.getDate()},K:function(e,n){return n.amPM[r(e.getHours()>11)]},M:function(e,n){return h(e.getMonth(),!0,n)},S:function(e){return o(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,n,t){return t.getWeek(e)},Y:function(e){return o(e.getFullYear(),4)},d:function(e){return o(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return o(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,n){return n.weekdays.longhand[e.getDay()]},m:function(e){return o(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var n=e.config,t=void 0===n?a:n,o=e.l10n,r=void 0===o?i:o,l=e.isMobile,c=void 0!==l&&l;return function(e,n,a){var i=a||r;return void 0===t.formatDate||c?n.split("").map((function(n,a,o){return w[n]&&"\\"!==o[a-1]?w[n](e,i,t):"\\"!==n?n:""})).join(""):t.formatDate(e,n,i)}},C=function(e){var n=e.config,t=void 0===n?a:n,o=e.l10n,r=void 0===o?i:o;return function(e,n,i,o){if(0===e||e){var l,c=o||r,s=e;if(e instanceof Date)l=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)l=new Date(e);else if("string"==typeof e){var d=n||(t||a).dateFormat,u=String(e).trim();if("today"===u)l=new Date,i=!0;else if(t&&t.parseDate)l=t.parseDate(e,d);else if(/Z$/.test(u)||/GMT$/.test(u))l=new Date(e);else{for(var f=void 0,m=[],g=0,p=0,h="";g<d.length;g++){var w=d[g],b="\\"===w,C="\\"===d[g-1]||b;if(D[w]&&!C){h+=D[w];var M=new RegExp(h).exec(e);M&&(f=!0)&&m["Y"!==w?"push":"unshift"]({fn:v[w],val:M[++p]})}else b||(h+=".")}l=t&&t.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0),m.forEach((function(e){var n=e.fn,t=e.val;return l=n(l,t,c)||l})),l=f?l:void 0}}if(l instanceof Date&&!isNaN(l.getTime()))return!0===i&&l.setHours(0,0,0,0),l;t.errorHandler(new Error("Invalid date provided: "+s))}}};function M(e,n,t){return void 0===t&&(t=!0),!1!==t?new Date(e.getTime()).setHours(0,0,0,0)-new Date(n.getTime()).setHours(0,0,0,0):e.getTime()-n.getTime()}var y=function(e,n,t){return 3600*e+60*n+t},x=864e5;function E(e){var n=e.defaultHour,t=e.defaultMinute,a=e.defaultSeconds;if(void 0!==e.minDate){var i=e.minDate.getHours(),o=e.minDate.getMinutes(),r=e.minDate.getSeconds();n<i&&(n=i),n===i&&t<o&&(t=o),n===i&&t===o&&a<r&&(a=e.minDate.getSeconds())}if(void 0!==e.maxDate){var l=e.maxDate.getHours(),c=e.maxDate.getMinutes();(n=Math.min(n,l))===l&&(t=Math.min(c,t)),n===l&&t===c&&(a=e.maxDate.getSeconds())}return{hours:n,minutes:t,seconds:a}}"function"!=typeof Object.assign&&(Object.assign=function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];if(!e)throw TypeError("Cannot convert undefined or null to object");for(var a=function(n){n&&Object.keys(n).forEach((function(t){return e[t]=n[t]}))},i=0,o=n;i<o.length;i++){var r=o[i];a(r)}return e});function k(p,v){var w={config:e(e({},a),I.defaultConfig),l10n:i};function k(){var e;return(null===(e=w.calendarContainer)||void 0===e?void 0:e.getRootNode()).activeElement||document.activeElement}function T(e){return e.bind(w)}function S(){var e=w.config;!1===e.weekNumbers&&1===e.showMonths||!0!==e.noCalendar&&window.requestAnimationFrame((function(){if(void 0!==w.calendarContainer&&(w.calendarContainer.style.visibility="hidden",w.calendarContainer.style.display="block"),void 0!==w.daysContainer){var n=(w.days.offsetWidth+1)*e.showMonths;w.daysContainer.style.width=n+"px",w.calendarContainer.style.width=n+(void 0!==w.weekWrapper?w.weekWrapper.offsetWidth:0)+"px",w.calendarContainer.style.removeProperty("visibility"),w.calendarContainer.style.removeProperty("display")}}))}function _(e){if(0===w.selectedDates.length){var n=void 0===w.config.minDate||M(new Date,w.config.minDate)>=0?new Date:new Date(w.config.minDate.getTime()),t=E(w.config);n.setHours(t.hours,t.minutes,t.seconds,n.getMilliseconds()),w.selectedDates=[n],w.latestSelectedDateObj=n}void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var n="keydown"===e.type,t=g(e),a=t;void 0!==w.amPM&&t===w.amPM&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]);var i=parseFloat(a.getAttribute("min")),l=parseFloat(a.getAttribute("max")),c=parseFloat(a.getAttribute("step")),s=parseInt(a.value,10),d=e.delta||(n?38===e.which?1:-1:0),u=s+c*d;if(void 0!==a.value&&2===a.value.length){var f=a===w.hourElement,m=a===w.minuteElement;u<i?(u=l+u+r(!f)+(r(f)&&r(!w.amPM)),m&&L(void 0,-1,w.hourElement)):u>l&&(u=a===w.hourElement?u-l-r(!w.amPM):i,m&&L(void 0,1,w.hourElement)),w.amPM&&f&&(1===c?u+s===23:Math.abs(u-s)>c)&&(w.amPM.textContent=w.l10n.amPM[r(w.amPM.textContent===w.l10n.amPM[0])]),a.value=o(u)}}(e);var a=w._input.value;O(),ye(),w._input.value!==a&&w._debouncedChange()}function O(){if(void 0!==w.hourElement&&void 0!==w.minuteElement){var e,n,t=(parseInt(w.hourElement.value.slice(-2),10)||0)%24,a=(parseInt(w.minuteElement.value,10)||0)%60,i=void 0!==w.secondElement?(parseInt(w.secondElement.value,10)||0)%60:0;void 0!==w.amPM&&(e=t,n=w.amPM.textContent,t=e%12+12*r(n===w.l10n.amPM[1]));var o=void 0!==w.config.minTime||w.config.minDate&&w.minDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.minDate,!0),l=void 0!==w.config.maxTime||w.config.maxDate&&w.maxDateHasTime&&w.latestSelectedDateObj&&0===M(w.latestSelectedDateObj,w.config.maxDate,!0);if(void 0!==w.config.maxTime&&void 0!==w.config.minTime&&w.config.minTime>w.config.maxTime){var c=y(w.config.minTime.getHours(),w.config.minTime.getMinutes(),w.config.minTime.getSeconds()),s=y(w.config.maxTime.getHours(),w.config.maxTime.getMinutes(),w.config.maxTime.getSeconds()),d=y(t,a,i);if(d>s&&d<c){var u=function(e){var n=Math.floor(e/3600),t=(e-3600*n)/60;return[n,t,e-3600*n-60*t]}(c);t=u[0],a=u[1],i=u[2]}}else{if(l){var f=void 0!==w.config.maxTime?w.config.maxTime:w.config.maxDate;(t=Math.min(t,f.getHours()))===f.getHours()&&(a=Math.min(a,f.getMinutes())),a===f.getMinutes()&&(i=Math.min(i,f.getSeconds()))}if(o){var m=void 0!==w.config.minTime?w.config.minTime:w.config.minDate;(t=Math.max(t,m.getHours()))===m.getHours()&&a<m.getMinutes()&&(a=m.getMinutes()),a===m.getMinutes()&&(i=Math.max(i,m.getSeconds()))}}A(t,a,i)}}function F(e){var n=e||w.latestSelectedDateObj;n&&n instanceof Date&&A(n.getHours(),n.getMinutes(),n.getSeconds())}function A(e,n,t){void 0!==w.latestSelectedDateObj&&w.latestSelectedDateObj.setHours(e%24,n,t||0,0),w.hourElement&&w.minuteElement&&!w.isMobile&&(w.hourElement.value=o(w.config.time_24hr?e:(12+e)%12+12*r(e%12==0)),w.minuteElement.value=o(n),void 0!==w.amPM&&(w.amPM.textContent=w.l10n.amPM[r(e>=12)]),void 0!==w.secondElement&&(w.secondElement.value=o(t)))}function N(e){var n=g(e),t=parseInt(n.value)+(e.delta||0);(t/1e3>1||"Enter"===e.key&&!/[^\d]/.test(t.toString()))&&ee(t)}function P(e,n,t,a){return n instanceof Array?n.forEach((function(n){return P(e,n,t,a)})):e instanceof Array?e.forEach((function(e){return P(e,n,t,a)})):(e.addEventListener(n,t,a),void w._handlers.push({remove:function(){return e.removeEventListener(n,t,a)}}))}function Y(){De("onChange")}function j(e,n){var t=void 0!==e?w.parseDate(e):w.latestSelectedDateObj||(w.config.minDate&&w.config.minDate>w.now?w.config.minDate:w.config.maxDate&&w.config.maxDate<w.now?w.config.maxDate:w.now),a=w.currentYear,i=w.currentMonth;try{void 0!==t&&(w.currentYear=t.getFullYear(),w.currentMonth=t.getMonth())}catch(e){e.message="Invalid date supplied: "+t,w.config.errorHandler(e)}n&&w.currentYear!==a&&(De("onYearChange"),q()),!n||w.currentYear===a&&w.currentMonth===i||De("onMonthChange"),w.redraw()}function H(e){var n=g(e);~n.className.indexOf("arrow")&&L(e,n.classList.contains("arrowUp")?1:-1)}function L(e,n,t){var a=e&&g(e),i=t||a&&a.parentNode&&a.parentNode.firstChild,o=we("increment");o.delta=n,i&&i.dispatchEvent(o)}function R(e,n,t,a){var i=ne(n,!0),o=d("span",e,n.getDate().toString());return o.dateObj=n,o.$i=a,o.setAttribute("aria-label",w.formatDate(n,w.config.ariaDateFormat)),-1===e.indexOf("hidden")&&0===M(n,w.now)&&(w.todayDateElem=o,o.classList.add("today"),o.setAttribute("aria-current","date")),i?(o.tabIndex=-1,be(n)&&(o.classList.add("selected"),w.selectedDateElem=o,"range"===w.config.mode&&(s(o,"startRange",w.selectedDates[0]&&0===M(n,w.selectedDates[0],!0)),s(o,"endRange",w.selectedDates[1]&&0===M(n,w.selectedDates[1],!0)),"nextMonthDay"===e&&o.classList.add("inRange")))):o.classList.add("flatpickr-disabled"),"range"===w.config.mode&&function(e){return!("range"!==w.config.mode||w.selectedDates.length<2)&&(M(e,w.selectedDates[0])>=0&&M(e,w.selectedDates[1])<=0)}(n)&&!be(n)&&o.classList.add("inRange"),w.weekNumbers&&1===w.config.showMonths&&"prevMonthDay"!==e&&a%7==6&&w.weekNumbers.insertAdjacentHTML("beforeend","<span class='flatpickr-day'>"+w.config.getWeek(n)+"</span>"),De("onDayCreate",o),o}function W(e){e.focus(),"range"===w.config.mode&&oe(e)}function B(e){for(var n=e>0?0:w.config.showMonths-1,t=e>0?w.config.showMonths:-1,a=n;a!=t;a+=e)for(var i=w.daysContainer.children[a],o=e>0?0:i.children.length-1,r=e>0?i.children.length:-1,l=o;l!=r;l+=e){var c=i.children[l];if(-1===c.className.indexOf("hidden")&&ne(c.dateObj))return c}}function J(e,n){var t=k(),a=te(t||document.body),i=void 0!==e?e:a?t:void 0!==w.selectedDateElem&&te(w.selectedDateElem)?w.selectedDateElem:void 0!==w.todayDateElem&&te(w.todayDateElem)?w.todayDateElem:B(n>0?1:-1);void 0===i?w._input.focus():a?function(e,n){for(var t=-1===e.className.indexOf("Month")?e.dateObj.getMonth():w.currentMonth,a=n>0?w.config.showMonths:-1,i=n>0?1:-1,o=t-w.currentMonth;o!=a;o+=i)for(var r=w.daysContainer.children[o],l=t-w.currentMonth===o?e.$i+n:n<0?r.children.length-1:0,c=r.children.length,s=l;s>=0&&s<c&&s!=(n>0?c:-1);s+=i){var d=r.children[s];if(-1===d.className.indexOf("hidden")&&ne(d.dateObj)&&Math.abs(e.$i-s)>=Math.abs(n))return W(d)}w.changeMonth(i),J(B(i),0)}(i,n):W(i)}function K(e,n){for(var t=(new Date(e,n,1).getDay()-w.l10n.firstDayOfWeek+7)%7,a=w.utils.getDaysInMonth((n-1+12)%12,e),i=w.utils.getDaysInMonth(n,e),o=window.document.createDocumentFragment(),r=w.config.showMonths>1,l=r?"prevMonthDay hidden":"prevMonthDay",c=r?"nextMonthDay hidden":"nextMonthDay",s=a+1-t,u=0;s<=a;s++,u++)o.appendChild(R("flatpickr-day "+l,new Date(e,n-1,s),0,u));for(s=1;s<=i;s++,u++)o.appendChild(R("flatpickr-day",new Date(e,n,s),0,u));for(var f=i+1;f<=42-t&&(1===w.config.showMonths||u%7!=0);f++,u++)o.appendChild(R("flatpickr-day "+c,new Date(e,n+1,f%i),0,u));var m=d("div","dayContainer");return m.appendChild(o),m}function U(){if(void 0!==w.daysContainer){u(w.daysContainer),w.weekNumbers&&u(w.weekNumbers);for(var e=document.createDocumentFragment(),n=0;n<w.config.showMonths;n++){var t=new Date(w.currentYear,w.currentMonth,1);t.setMonth(w.currentMonth+n),e.appendChild(K(t.getFullYear(),t.getMonth()))}w.daysContainer.appendChild(e),w.days=w.daysContainer.firstChild,"range"===w.config.mode&&1===w.selectedDates.length&&oe()}}function q(){if(!(w.config.showMonths>1||"dropdown"!==w.config.monthSelectorType)){var e=function(e){return!(void 0!==w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&e<w.config.minDate.getMonth())&&!(void 0!==w.config.maxDate&&w.currentYear===w.config.maxDate.getFullYear()&&e>w.config.maxDate.getMonth())};w.monthsDropdownContainer.tabIndex=-1,w.monthsDropdownContainer.innerHTML="";for(var n=0;n<12;n++)if(e(n)){var t=d("option","flatpickr-monthDropdown-month");t.value=new Date(w.currentYear,n).getMonth().toString(),t.textContent=h(n,w.config.shorthandCurrentMonth,w.l10n),t.tabIndex=-1,w.currentMonth===n&&(t.selected=!0),w.monthsDropdownContainer.appendChild(t)}}}function $(){var e,n=d("div","flatpickr-month"),t=window.document.createDocumentFragment();w.config.showMonths>1||"static"===w.config.monthSelectorType?e=d("span","cur-month"):(w.monthsDropdownContainer=d("select","flatpickr-monthDropdown-months"),w.monthsDropdownContainer.setAttribute("aria-label",w.l10n.monthAriaLabel),P(w.monthsDropdownContainer,"change",(function(e){var n=g(e),t=parseInt(n.value,10);w.changeMonth(t-w.currentMonth),De("onMonthChange")})),q(),e=w.monthsDropdownContainer);var a=m("cur-year",{tabindex:"-1"}),i=a.getElementsByTagName("input")[0];i.setAttribute("aria-label",w.l10n.yearAriaLabel),w.config.minDate&&i.setAttribute("min",w.config.minDate.getFullYear().toString()),w.config.maxDate&&(i.setAttribute("max",w.config.maxDate.getFullYear().toString()),i.disabled=!!w.config.minDate&&w.config.minDate.getFullYear()===w.config.maxDate.getFullYear());var o=d("div","flatpickr-current-month");return o.appendChild(e),o.appendChild(a),t.appendChild(o),n.appendChild(t),{container:n,yearElement:i,monthElement:e}}function V(){u(w.monthNav),w.monthNav.appendChild(w.prevMonthNav),w.config.showMonths&&(w.yearElements=[],w.monthElements=[]);for(var e=w.config.showMonths;e--;){var n=$();w.yearElements.push(n.yearElement),w.monthElements.push(n.monthElement),w.monthNav.appendChild(n.container)}w.monthNav.appendChild(w.nextMonthNav)}function z(){w.weekdayContainer?u(w.weekdayContainer):w.weekdayContainer=d("div","flatpickr-weekdays");for(var e=w.config.showMonths;e--;){var n=d("div","flatpickr-weekdaycontainer");w.weekdayContainer.appendChild(n)}return G(),w.weekdayContainer}function G(){if(w.weekdayContainer){var e=w.l10n.firstDayOfWeek,t=n(w.l10n.weekdays.shorthand);e>0&&e<t.length&&(t=n(t.splice(e,t.length),t.splice(0,e)));for(var a=w.config.showMonths;a--;)w.weekdayContainer.children[a].innerHTML="\n <span class='flatpickr-weekday'>\n "+t.join("</span><span class='flatpickr-weekday'>")+"\n </span>\n "}}function Z(e,n){void 0===n&&(n=!0);var t=n?e:e-w.currentMonth;t<0&&!0===w._hidePrevMonthArrow||t>0&&!0===w._hideNextMonthArrow||(w.currentMonth+=t,(w.currentMonth<0||w.currentMonth>11)&&(w.currentYear+=w.currentMonth>11?1:-1,w.currentMonth=(w.currentMonth+12)%12,De("onYearChange"),q()),U(),De("onMonthChange"),Ce())}function Q(e){return w.calendarContainer.contains(e)}function X(e){if(w.isOpen&&!w.config.inline){var n=g(e),t=Q(n),a=!(n===w.input||n===w.altInput||w.element.contains(n)||e.path&&e.path.indexOf&&(~e.path.indexOf(w.input)||~e.path.indexOf(w.altInput)))&&!t&&!Q(e.relatedTarget),i=!w.config.ignoredFocusElements.some((function(e){return e.contains(n)}));a&&i&&(w.config.allowInput&&w.setDate(w._input.value,!1,w.config.altInput?w.config.altFormat:w.config.dateFormat),void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement&&""!==w.input.value&&void 0!==w.input.value&&_(),w.close(),w.config&&"range"===w.config.mode&&1===w.selectedDates.length&&w.clear(!1))}}function ee(e){if(!(!e||w.config.minDate&&e<w.config.minDate.getFullYear()||w.config.maxDate&&e>w.config.maxDate.getFullYear())){var n=e,t=w.currentYear!==n;w.currentYear=n||w.currentYear,w.config.maxDate&&w.currentYear===w.config.maxDate.getFullYear()?w.currentMonth=Math.min(w.config.maxDate.getMonth(),w.currentMonth):w.config.minDate&&w.currentYear===w.config.minDate.getFullYear()&&(w.currentMonth=Math.max(w.config.minDate.getMonth(),w.currentMonth)),t&&(w.redraw(),De("onYearChange"),q())}}function ne(e,n){var t;void 0===n&&(n=!0);var a=w.parseDate(e,void 0,n);if(w.config.minDate&&a&&M(a,w.config.minDate,void 0!==n?n:!w.minDateHasTime)<0||w.config.maxDate&&a&&M(a,w.config.maxDate,void 0!==n?n:!w.maxDateHasTime)>0)return!1;if(!w.config.enable&&0===w.config.disable.length)return!0;if(void 0===a)return!1;for(var i=!!w.config.enable,o=null!==(t=w.config.enable)&&void 0!==t?t:w.config.disable,r=0,l=void 0;r<o.length;r++){if("function"==typeof(l=o[r])&&l(a))return i;if(l instanceof Date&&void 0!==a&&l.getTime()===a.getTime())return i;if("string"==typeof l){var c=w.parseDate(l,void 0,!0);return c&&c.getTime()===a.getTime()?i:!i}if("object"==typeof l&&void 0!==a&&l.from&&l.to&&a.getTime()>=l.from.getTime()&&a.getTime()<=l.to.getTime())return i}return!i}function te(e){return void 0!==w.daysContainer&&(-1===e.className.indexOf("hidden")&&-1===e.className.indexOf("flatpickr-disabled")&&w.daysContainer.contains(e))}function ae(e){var n=e.target===w._input,t=w._input.value.trimEnd()!==Me();!n||!t||e.relatedTarget&&Q(e.relatedTarget)||w.setDate(w._input.value,!0,e.target===w.altInput?w.config.altFormat:w.config.dateFormat)}function ie(e){var n=g(e),t=w.config.wrap?p.contains(n):n===w._input,a=w.config.allowInput,i=w.isOpen&&(!a||!t),o=w.config.inline&&t&&!a;if(13===e.keyCode&&t){if(a)return w.setDate(w._input.value,!0,n===w.altInput?w.config.altFormat:w.config.dateFormat),w.close(),n.blur();w.open()}else if(Q(n)||i||o){var r=!!w.timeContainer&&w.timeContainer.contains(n);switch(e.keyCode){case 13:r?(e.preventDefault(),_(),fe()):me(e);break;case 27:e.preventDefault(),fe();break;case 8:case 46:t&&!w.config.allowInput&&(e.preventDefault(),w.clear());break;case 37:case 39:if(r||t)w.hourElement&&w.hourElement.focus();else{e.preventDefault();var l=k();if(void 0!==w.daysContainer&&(!1===a||l&&te(l))){var c=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),Z(c),J(B(1),0)):J(void 0,c)}}break;case 38:case 40:e.preventDefault();var s=40===e.keyCode?1:-1;w.daysContainer&&void 0!==n.$i||n===w.input||n===w.altInput?e.ctrlKey?(e.stopPropagation(),ee(w.currentYear-s),J(B(1),0)):r||J(void 0,7*s):n===w.currentYearElement?ee(w.currentYear-s):w.config.enableTime&&(!r&&w.hourElement&&w.hourElement.focus(),_(e),w._debouncedChange());break;case 9:if(r){var d=[w.hourElement,w.minuteElement,w.secondElement,w.amPM].concat(w.pluginElements).filter((function(e){return e})),u=d.indexOf(n);if(-1!==u){var f=d[u+(e.shiftKey?-1:1)];e.preventDefault(),(f||w._input).focus()}}else!w.config.noCalendar&&w.daysContainer&&w.daysContainer.contains(n)&&e.shiftKey&&(e.preventDefault(),w._input.focus())}}if(void 0!==w.amPM&&n===w.amPM)switch(e.key){case w.l10n.amPM[0].charAt(0):case w.l10n.amPM[0].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[0],O(),ye();break;case w.l10n.amPM[1].charAt(0):case w.l10n.amPM[1].charAt(0).toLowerCase():w.amPM.textContent=w.l10n.amPM[1],O(),ye()}(t||Q(n))&&De("onKeyDown",e)}function oe(e,n){if(void 0===n&&(n="flatpickr-day"),1===w.selectedDates.length&&(!e||e.classList.contains(n)&&!e.classList.contains("flatpickr-disabled"))){for(var t=e?e.dateObj.getTime():w.days.firstElementChild.dateObj.getTime(),a=w.parseDate(w.selectedDates[0],void 0,!0).getTime(),i=Math.min(t,w.selectedDates[0].getTime()),o=Math.max(t,w.selectedDates[0].getTime()),r=!1,l=0,c=0,s=i;s<o;s+=x)ne(new Date(s),!0)||(r=r||s>i&&s<o,s<a&&(!l||s>l)?l=s:s>a&&(!c||s<c)&&(c=s));Array.from(w.rContainer.querySelectorAll("*:nth-child(-n+"+w.config.showMonths+") > ."+n)).forEach((function(n){var i,o,s,d=n.dateObj.getTime(),u=l>0&&d<l||c>0&&d>c;if(u)return n.classList.add("notAllowed"),void["inRange","startRange","endRange"].forEach((function(e){n.classList.remove(e)}));r&&!u||(["startRange","inRange","endRange","notAllowed"].forEach((function(e){n.classList.remove(e)})),void 0!==e&&(e.classList.add(t<=w.selectedDates[0].getTime()?"startRange":"endRange"),a<t&&d===a?n.classList.add("startRange"):a>t&&d===a&&n.classList.add("endRange"),d>=l&&(0===c||d<=c)&&(o=a,s=t,(i=d)>Math.min(o,s)&&i<Math.max(o,s))&&n.classList.add("inRange")))}))}}function re(){!w.isOpen||w.config.static||w.config.inline||de()}function le(e){return function(n){var t=w.config["_"+e+"Date"]=w.parseDate(n,w.config.dateFormat),a=w.config["_"+("min"===e?"max":"min")+"Date"];void 0!==t&&(w["min"===e?"minDateHasTime":"maxDateHasTime"]=t.getHours()>0||t.getMinutes()>0||t.getSeconds()>0),w.selectedDates&&(w.selectedDates=w.selectedDates.filter((function(e){return ne(e)})),w.selectedDates.length||"min"!==e||F(t),ye()),w.daysContainer&&(ue(),void 0!==t?w.currentYearElement[e]=t.getFullYear().toString():w.currentYearElement.removeAttribute(e),w.currentYearElement.disabled=!!a&&void 0!==t&&a.getFullYear()===t.getFullYear())}}function ce(){return w.config.wrap?p.querySelector("[data-input]"):p}function se(){"object"!=typeof w.config.locale&&void 0===I.l10ns[w.config.locale]&&w.config.errorHandler(new Error("flatpickr: invalid locale "+w.config.locale)),w.l10n=e(e({},I.l10ns.default),"object"==typeof w.config.locale?w.config.locale:"default"!==w.config.locale?I.l10ns[w.config.locale]:void 0),D.D="("+w.l10n.weekdays.shorthand.join("|")+")",D.l="("+w.l10n.weekdays.longhand.join("|")+")",D.M="("+w.l10n.months.shorthand.join("|")+")",D.F="("+w.l10n.months.longhand.join("|")+")",D.K="("+w.l10n.amPM[0]+"|"+w.l10n.amPM[1]+"|"+w.l10n.amPM[0].toLowerCase()+"|"+w.l10n.amPM[1].toLowerCase()+")",void 0===e(e({},v),JSON.parse(JSON.stringify(p.dataset||{}))).time_24hr&&void 0===I.defaultConfig.time_24hr&&(w.config.time_24hr=w.l10n.time_24hr),w.formatDate=b(w),w.parseDate=C({config:w.config,l10n:w.l10n})}function de(e){if("function"!=typeof w.config.position){if(void 0!==w.calendarContainer){De("onPreCalendarPosition");var n=e||w._positionElement,t=Array.prototype.reduce.call(w.calendarContainer.children,(function(e,n){return e+n.offsetHeight}),0),a=w.calendarContainer.offsetWidth,i=w.config.position.split(" "),o=i[0],r=i.length>1?i[1]:null,l=n.getBoundingClientRect(),c=window.innerHeight-l.bottom,d="above"===o||"below"!==o&&c<t&&l.top>t,u=window.pageYOffset+l.top+(d?-t-2:n.offsetHeight+2);if(s(w.calendarContainer,"arrowTop",!d),s(w.calendarContainer,"arrowBottom",d),!w.config.inline){var f=window.pageXOffset+l.left,m=!1,g=!1;"center"===r?(f-=(a-l.width)/2,m=!0):"right"===r&&(f-=a-l.width,g=!0),s(w.calendarContainer,"arrowLeft",!m&&!g),s(w.calendarContainer,"arrowCenter",m),s(w.calendarContainer,"arrowRight",g);var p=window.document.body.offsetWidth-(window.pageXOffset+l.right),h=f+a>window.document.body.offsetWidth,v=p+a>window.document.body.offsetWidth;if(s(w.calendarContainer,"rightMost",h),!w.config.static)if(w.calendarContainer.style.top=u+"px",h)if(v){var D=function(){for(var e=null,n=0;n<document.styleSheets.length;n++){var t=document.styleSheets[n];if(t.cssRules){try{t.cssRules}catch(e){continue}e=t;break}}return null!=e?e:(a=document.createElement("style"),document.head.appendChild(a),a.sheet);var a}();if(void 0===D)return;var b=window.document.body.offsetWidth,C=Math.max(0,b/2-a/2),M=D.cssRules.length,y="{left:"+l.left+"px;right:auto;}";s(w.calendarContainer,"rightMost",!1),s(w.calendarContainer,"centerMost",!0),D.insertRule(".flatpickr-calendar.centerMost:before,.flatpickr-calendar.centerMost:after"+y,M),w.calendarContainer.style.left=C+"px",w.calendarContainer.style.right="auto"}else w.calendarContainer.style.left="auto",w.calendarContainer.style.right=p+"px";else w.calendarContainer.style.left=f+"px",w.calendarContainer.style.right="auto"}}}else w.config.position(w,e)}function ue(){w.config.noCalendar||w.isMobile||(q(),Ce(),U())}function fe(){w._input.focus(),-1!==window.navigator.userAgent.indexOf("MSIE")||void 0!==navigator.msMaxTouchPoints?setTimeout(w.close,0):w.close()}function me(e){e.preventDefault(),e.stopPropagation();var n=f(g(e),(function(e){return e.classList&&e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled")&&!e.classList.contains("notAllowed")}));if(void 0!==n){var t=n,a=w.latestSelectedDateObj=new Date(t.dateObj.getTime()),i=(a.getMonth()<w.currentMonth||a.getMonth()>w.currentMonth+w.config.showMonths-1)&&"range"!==w.config.mode;if(w.selectedDateElem=t,"single"===w.config.mode)w.selectedDates=[a];else if("multiple"===w.config.mode){var o=be(a);o?w.selectedDates.splice(parseInt(o),1):w.selectedDates.push(a)}else"range"===w.config.mode&&(2===w.selectedDates.length&&w.clear(!1,!1),w.latestSelectedDateObj=a,w.selectedDates.push(a),0!==M(a,w.selectedDates[0],!0)&&w.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()})));if(O(),i){var r=w.currentYear!==a.getFullYear();w.currentYear=a.getFullYear(),w.currentMonth=a.getMonth(),r&&(De("onYearChange"),q()),De("onMonthChange")}if(Ce(),U(),ye(),i||"range"===w.config.mode||1!==w.config.showMonths?void 0!==w.selectedDateElem&&void 0===w.hourElement&&w.selectedDateElem&&w.selectedDateElem.focus():W(t),void 0!==w.hourElement&&void 0!==w.hourElement&&w.hourElement.focus(),w.config.closeOnSelect){var l="single"===w.config.mode&&!w.config.enableTime,c="range"===w.config.mode&&2===w.selectedDates.length&&!w.config.enableTime;(l||c)&&fe()}Y()}}w.parseDate=C({config:w.config,l10n:w.l10n}),w._handlers=[],w.pluginElements=[],w.loadedPlugins=[],w._bind=P,w._setHoursFromDate=F,w._positionCalendar=de,w.changeMonth=Z,w.changeYear=ee,w.clear=function(e,n){void 0===e&&(e=!0);void 0===n&&(n=!0);w.input.value="",void 0!==w.altInput&&(w.altInput.value="");void 0!==w.mobileInput&&(w.mobileInput.value="");w.selectedDates=[],w.latestSelectedDateObj=void 0,!0===n&&(w.currentYear=w._initialDate.getFullYear(),w.currentMonth=w._initialDate.getMonth());if(!0===w.config.enableTime){var t=E(w.config),a=t.hours,i=t.minutes,o=t.seconds;A(a,i,o)}w.redraw(),e&&De("onChange")},w.close=function(){w.isOpen=!1,w.isMobile||(void 0!==w.calendarContainer&&w.calendarContainer.classList.remove("open"),void 0!==w._input&&w._input.classList.remove("active"));De("onClose")},w.onMouseOver=oe,w._createElement=d,w.createDay=R,w.destroy=function(){void 0!==w.config&&De("onDestroy");for(var e=w._handlers.length;e--;)w._handlers[e].remove();if(w._handlers=[],w.mobileInput)w.mobileInput.parentNode&&w.mobileInput.parentNode.removeChild(w.mobileInput),w.mobileInput=void 0;else if(w.calendarContainer&&w.calendarContainer.parentNode)if(w.config.static&&w.calendarContainer.parentNode){var n=w.calendarContainer.parentNode;if(n.lastChild&&n.removeChild(n.lastChild),n.parentNode){for(;n.firstChild;)n.parentNode.insertBefore(n.firstChild,n);n.parentNode.removeChild(n)}}else w.calendarContainer.parentNode.removeChild(w.calendarContainer);w.altInput&&(w.input.type="text",w.altInput.parentNode&&w.altInput.parentNode.removeChild(w.altInput),delete w.altInput);w.input&&(w.input.type=w.input._type,w.input.classList.remove("flatpickr-input"),w.input.removeAttribute("readonly"));["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach((function(e){try{delete w[e]}catch(e){}}))},w.isEnabled=ne,w.jumpToDate=j,w.updateValue=ye,w.open=function(e,n){void 0===n&&(n=w._positionElement);if(!0===w.isMobile){if(e){e.preventDefault();var t=g(e);t&&t.blur()}return void 0!==w.mobileInput&&(w.mobileInput.focus(),w.mobileInput.click()),void De("onOpen")}if(w._input.disabled||w.config.inline)return;var a=w.isOpen;w.isOpen=!0,a||(w.calendarContainer.classList.add("open"),w._input.classList.add("active"),De("onOpen"),de(n));!0===w.config.enableTime&&!0===w.config.noCalendar&&(!1!==w.config.allowInput||void 0!==e&&w.timeContainer.contains(e.relatedTarget)||setTimeout((function(){return w.hourElement.select()}),50))},w.redraw=ue,w.set=function(e,n){if(null!==e&&"object"==typeof e)for(var a in Object.assign(w.config,e),e)void 0!==ge[a]&&ge[a].forEach((function(e){return e()}));else w.config[e]=n,void 0!==ge[e]?ge[e].forEach((function(e){return e()})):t.indexOf(e)>-1&&(w.config[e]=c(n));w.redraw(),ye(!0)},w.setDate=function(e,n,t){void 0===n&&(n=!1);void 0===t&&(t=w.config.dateFormat);if(0!==e&&!e||e instanceof Array&&0===e.length)return w.clear(n);pe(e,t),w.latestSelectedDateObj=w.selectedDates[w.selectedDates.length-1],w.redraw(),j(void 0,n),F(),0===w.selectedDates.length&&w.clear(!1);ye(n),n&&De("onChange")},w.toggle=function(e){if(!0===w.isOpen)return w.close();w.open(e)};var ge={locale:[se,G],showMonths:[V,S,z],minDate:[j],maxDate:[j],positionElement:[ve],clickOpens:[function(){!0===w.config.clickOpens?(P(w._input,"focus",w.open),P(w._input,"click",w.open)):(w._input.removeEventListener("focus",w.open),w._input.removeEventListener("click",w.open))}]};function pe(e,n){var t=[];if(e instanceof Array)t=e.map((function(e){return w.parseDate(e,n)}));else if(e instanceof Date||"number"==typeof e)t=[w.parseDate(e,n)];else if("string"==typeof e)switch(w.config.mode){case"single":case"time":t=[w.parseDate(e,n)];break;case"multiple":t=e.split(w.config.conjunction).map((function(e){return w.parseDate(e,n)}));break;case"range":t=e.split(w.l10n.rangeSeparator).map((function(e){return w.parseDate(e,n)}))}else w.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));w.selectedDates=w.config.allowInvalidPreload?t:t.filter((function(e){return e instanceof Date&&ne(e,!1)})),"range"===w.config.mode&&w.selectedDates.sort((function(e,n){return e.getTime()-n.getTime()}))}function he(e){return e.slice().map((function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?w.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:w.parseDate(e.from,void 0),to:w.parseDate(e.to,void 0)}:e})).filter((function(e){return e}))}function ve(){w._positionElement=w.config.positionElement||w._input}function De(e,n){if(void 0!==w.config){var t=w.config[e];if(void 0!==t&&t.length>0)for(var a=0;t[a]&&a<t.length;a++)t[a](w.selectedDates,w.input.value,w,n);"onChange"===e&&(w.input.dispatchEvent(we("change")),w.input.dispatchEvent(we("input")))}}function we(e){var n=document.createEvent("Event");return n.initEvent(e,!0,!0),n}function be(e){for(var n=0;n<w.selectedDates.length;n++){var t=w.selectedDates[n];if(t instanceof Date&&0===M(t,e))return""+n}return!1}function Ce(){w.config.noCalendar||w.isMobile||!w.monthNav||(w.yearElements.forEach((function(e,n){var t=new Date(w.currentYear,w.currentMonth,1);t.setMonth(w.currentMonth+n),w.config.showMonths>1||"static"===w.config.monthSelectorType?w.monthElements[n].textContent=h(t.getMonth(),w.config.shorthandCurrentMonth,w.l10n)+" ":w.monthsDropdownContainer.value=t.getMonth().toString(),e.value=t.getFullYear().toString()})),w._hidePrevMonthArrow=void 0!==w.config.minDate&&(w.currentYear===w.config.minDate.getFullYear()?w.currentMonth<=w.config.minDate.getMonth():w.currentYear<w.config.minDate.getFullYear()),w._hideNextMonthArrow=void 0!==w.config.maxDate&&(w.currentYear===w.config.maxDate.getFullYear()?w.currentMonth+1>w.config.maxDate.getMonth():w.currentYear>w.config.maxDate.getFullYear()))}function Me(e){var n=e||(w.config.altInput?w.config.altFormat:w.config.dateFormat);return w.selectedDates.map((function(e){return w.formatDate(e,n)})).filter((function(e,n,t){return"range"!==w.config.mode||w.config.enableTime||t.indexOf(e)===n})).join("range"!==w.config.mode?w.config.conjunction:w.l10n.rangeSeparator)}function ye(e){void 0===e&&(e=!0),void 0!==w.mobileInput&&w.mobileFormatStr&&(w.mobileInput.value=void 0!==w.latestSelectedDateObj?w.formatDate(w.latestSelectedDateObj,w.mobileFormatStr):""),w.input.value=Me(w.config.dateFormat),void 0!==w.altInput&&(w.altInput.value=Me(w.config.altFormat)),!1!==e&&De("onValueUpdate")}function xe(e){var n=g(e),t=w.prevMonthNav.contains(n),a=w.nextMonthNav.contains(n);t||a?Z(t?-1:1):w.yearElements.indexOf(n)>=0?n.select():n.classList.contains("arrowUp")?w.changeYear(w.currentYear+1):n.classList.contains("arrowDown")&&w.changeYear(w.currentYear-1)}return function(){w.element=w.input=p,w.isOpen=!1,function(){var n=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],i=e(e({},JSON.parse(JSON.stringify(p.dataset||{}))),v),o={};w.config.parseDate=i.parseDate,w.config.formatDate=i.formatDate,Object.defineProperty(w.config,"enable",{get:function(){return w.config._enable},set:function(e){w.config._enable=he(e)}}),Object.defineProperty(w.config,"disable",{get:function(){return w.config._disable},set:function(e){w.config._disable=he(e)}});var r="time"===i.mode;if(!i.dateFormat&&(i.enableTime||r)){var l=I.defaultConfig.dateFormat||a.dateFormat;o.dateFormat=i.noCalendar||r?"H:i"+(i.enableSeconds?":S":""):l+" H:i"+(i.enableSeconds?":S":"")}if(i.altInput&&(i.enableTime||r)&&!i.altFormat){var s=I.defaultConfig.altFormat||a.altFormat;o.altFormat=i.noCalendar||r?"h:i"+(i.enableSeconds?":S K":" K"):s+" h:i"+(i.enableSeconds?":S":"")+" K"}Object.defineProperty(w.config,"minDate",{get:function(){return w.config._minDate},set:le("min")}),Object.defineProperty(w.config,"maxDate",{get:function(){return w.config._maxDate},set:le("max")});var d=function(e){return function(n){w.config["min"===e?"_minTime":"_maxTime"]=w.parseDate(n,"H:i:S")}};Object.defineProperty(w.config,"minTime",{get:function(){return w.config._minTime},set:d("min")}),Object.defineProperty(w.config,"maxTime",{get:function(){return w.config._maxTime},set:d("max")}),"time"===i.mode&&(w.config.noCalendar=!0,w.config.enableTime=!0);Object.assign(w.config,o,i);for(var u=0;u<n.length;u++)w.config[n[u]]=!0===w.config[n[u]]||"true"===w.config[n[u]];t.filter((function(e){return void 0!==w.config[e]})).forEach((function(e){w.config[e]=c(w.config[e]||[]).map(T)})),w.isMobile=!w.config.disableMobile&&!w.config.inline&&"single"===w.config.mode&&!w.config.disable.length&&!w.config.enable&&!w.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(u=0;u<w.config.plugins.length;u++){var f=w.config.plugins[u](w)||{};for(var m in f)t.indexOf(m)>-1?w.config[m]=c(f[m]).map(T).concat(w.config[m]):void 0===i[m]&&(w.config[m]=f[m])}i.altInputClass||(w.config.altInputClass=ce().className+" "+w.config.altInputClass);De("onParseConfig")}(),se(),function(){if(w.input=ce(),!w.input)return void w.config.errorHandler(new Error("Invalid input element specified"));w.input._type=w.input.type,w.input.type="text",w.input.classList.add("flatpickr-input"),w._input=w.input,w.config.altInput&&(w.altInput=d(w.input.nodeName,w.config.altInputClass),w._input=w.altInput,w.altInput.placeholder=w.input.placeholder,w.altInput.disabled=w.input.disabled,w.altInput.required=w.input.required,w.altInput.tabIndex=w.input.tabIndex,w.altInput.type="text",w.input.setAttribute("type","hidden"),!w.config.static&&w.input.parentNode&&w.input.parentNode.insertBefore(w.altInput,w.input.nextSibling));w.config.allowInput||w._input.setAttribute("readonly","readonly");ve()}(),function(){w.selectedDates=[],w.now=w.parseDate(w.config.now)||new Date;var e=w.config.defaultDate||("INPUT"!==w.input.nodeName&&"TEXTAREA"!==w.input.nodeName||!w.input.placeholder||w.input.value!==w.input.placeholder?w.input.value:null);e&&pe(e,w.config.dateFormat);w._initialDate=w.selectedDates.length>0?w.selectedDates[0]:w.config.minDate&&w.config.minDate.getTime()>w.now.getTime()?w.config.minDate:w.config.maxDate&&w.config.maxDate.getTime()<w.now.getTime()?w.config.maxDate:w.now,w.currentYear=w._initialDate.getFullYear(),w.currentMonth=w._initialDate.getMonth(),w.selectedDates.length>0&&(w.latestSelectedDateObj=w.selectedDates[0]);void 0!==w.config.minTime&&(w.config.minTime=w.parseDate(w.config.minTime,"H:i"));void 0!==w.config.maxTime&&(w.config.maxTime=w.parseDate(w.config.maxTime,"H:i"));w.minDateHasTime=!!w.config.minDate&&(w.config.minDate.getHours()>0||w.config.minDate.getMinutes()>0||w.config.minDate.getSeconds()>0),w.maxDateHasTime=!!w.config.maxDate&&(w.config.maxDate.getHours()>0||w.config.maxDate.getMinutes()>0||w.config.maxDate.getSeconds()>0)}(),w.utils={getDaysInMonth:function(e,n){return void 0===e&&(e=w.currentMonth),void 0===n&&(n=w.currentYear),1===e&&(n%4==0&&n%100!=0||n%400==0)?29:w.l10n.daysInMonth[e]}},w.isMobile||function(){var e=window.document.createDocumentFragment();if(w.calendarContainer=d("div","flatpickr-calendar"),w.calendarContainer.tabIndex=-1,!w.config.noCalendar){if(e.appendChild((w.monthNav=d("div","flatpickr-months"),w.yearElements=[],w.monthElements=[],w.prevMonthNav=d("span","flatpickr-prev-month"),w.prevMonthNav.innerHTML=w.config.prevArrow,w.nextMonthNav=d("span","flatpickr-next-month"),w.nextMonthNav.innerHTML=w.config.nextArrow,V(),Object.defineProperty(w,"_hidePrevMonthArrow",{get:function(){return w.__hidePrevMonthArrow},set:function(e){w.__hidePrevMonthArrow!==e&&(s(w.prevMonthNav,"flatpickr-disabled",e),w.__hidePrevMonthArrow=e)}}),Object.defineProperty(w,"_hideNextMonthArrow",{get:function(){return w.__hideNextMonthArrow},set:function(e){w.__hideNextMonthArrow!==e&&(s(w.nextMonthNav,"flatpickr-disabled",e),w.__hideNextMonthArrow=e)}}),w.currentYearElement=w.yearElements[0],Ce(),w.monthNav)),w.innerContainer=d("div","flatpickr-innerContainer"),w.config.weekNumbers){var n=function(){w.calendarContainer.classList.add("hasWeeks");var e=d("div","flatpickr-weekwrapper");e.appendChild(d("span","flatpickr-weekday",w.l10n.weekAbbreviation));var n=d("div","flatpickr-weeks");return e.appendChild(n),{weekWrapper:e,weekNumbers:n}}(),t=n.weekWrapper,a=n.weekNumbers;w.innerContainer.appendChild(t),w.weekNumbers=a,w.weekWrapper=t}w.rContainer=d("div","flatpickr-rContainer"),w.rContainer.appendChild(z()),w.daysContainer||(w.daysContainer=d("div","flatpickr-days"),w.daysContainer.tabIndex=-1),U(),w.rContainer.appendChild(w.daysContainer),w.innerContainer.appendChild(w.rContainer),e.appendChild(w.innerContainer)}w.config.enableTime&&e.appendChild(function(){w.calendarContainer.classList.add("hasTime"),w.config.noCalendar&&w.calendarContainer.classList.add("noCalendar");var e=E(w.config);w.timeContainer=d("div","flatpickr-time"),w.timeContainer.tabIndex=-1;var n=d("span","flatpickr-time-separator",":"),t=m("flatpickr-hour",{"aria-label":w.l10n.hourAriaLabel});w.hourElement=t.getElementsByTagName("input")[0];var a=m("flatpickr-minute",{"aria-label":w.l10n.minuteAriaLabel});w.minuteElement=a.getElementsByTagName("input")[0],w.hourElement.tabIndex=w.minuteElement.tabIndex=-1,w.hourElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getHours():w.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),w.minuteElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getMinutes():e.minutes),w.hourElement.setAttribute("step",w.config.hourIncrement.toString()),w.minuteElement.setAttribute("step",w.config.minuteIncrement.toString()),w.hourElement.setAttribute("min",w.config.time_24hr?"0":"1"),w.hourElement.setAttribute("max",w.config.time_24hr?"23":"12"),w.hourElement.setAttribute("maxlength","2"),w.minuteElement.setAttribute("min","0"),w.minuteElement.setAttribute("max","59"),w.minuteElement.setAttribute("maxlength","2"),w.timeContainer.appendChild(t),w.timeContainer.appendChild(n),w.timeContainer.appendChild(a),w.config.time_24hr&&w.timeContainer.classList.add("time24hr");if(w.config.enableSeconds){w.timeContainer.classList.add("hasSeconds");var i=m("flatpickr-second");w.secondElement=i.getElementsByTagName("input")[0],w.secondElement.value=o(w.latestSelectedDateObj?w.latestSelectedDateObj.getSeconds():e.seconds),w.secondElement.setAttribute("step",w.minuteElement.getAttribute("step")),w.secondElement.setAttribute("min","0"),w.secondElement.setAttribute("max","59"),w.secondElement.setAttribute("maxlength","2"),w.timeContainer.appendChild(d("span","flatpickr-time-separator",":")),w.timeContainer.appendChild(i)}w.config.time_24hr||(w.amPM=d("span","flatpickr-am-pm",w.l10n.amPM[r((w.latestSelectedDateObj?w.hourElement.value:w.config.defaultHour)>11)]),w.amPM.title=w.l10n.toggleTitle,w.amPM.tabIndex=-1,w.timeContainer.appendChild(w.amPM));return w.timeContainer}());s(w.calendarContainer,"rangeMode","range"===w.config.mode),s(w.calendarContainer,"animate",!0===w.config.animate),s(w.calendarContainer,"multiMonth",w.config.showMonths>1),w.calendarContainer.appendChild(e);var i=void 0!==w.config.appendTo&&void 0!==w.config.appendTo.nodeType;if((w.config.inline||w.config.static)&&(w.calendarContainer.classList.add(w.config.inline?"inline":"static"),w.config.inline&&(!i&&w.element.parentNode?w.element.parentNode.insertBefore(w.calendarContainer,w._input.nextSibling):void 0!==w.config.appendTo&&w.config.appendTo.appendChild(w.calendarContainer)),w.config.static)){var l=d("div","flatpickr-wrapper");w.element.parentNode&&w.element.parentNode.insertBefore(l,w.element),l.appendChild(w.element),w.altInput&&l.appendChild(w.altInput),l.appendChild(w.calendarContainer)}w.config.static||w.config.inline||(void 0!==w.config.appendTo?w.config.appendTo:window.document.body).appendChild(w.calendarContainer)}(),function(){w.config.wrap&&["open","close","toggle","clear"].forEach((function(e){Array.prototype.forEach.call(w.element.querySelectorAll("[data-"+e+"]"),(function(n){return P(n,"click",w[e])}))}));if(w.isMobile)return void function(){var e=w.config.enableTime?w.config.noCalendar?"time":"datetime-local":"date";w.mobileInput=d("input",w.input.className+" flatpickr-mobile"),w.mobileInput.tabIndex=1,w.mobileInput.type=e,w.mobileInput.disabled=w.input.disabled,w.mobileInput.required=w.input.required,w.mobileInput.placeholder=w.input.placeholder,w.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",w.selectedDates.length>0&&(w.mobileInput.defaultValue=w.mobileInput.value=w.formatDate(w.selectedDates[0],w.mobileFormatStr));w.config.minDate&&(w.mobileInput.min=w.formatDate(w.config.minDate,"Y-m-d"));w.config.maxDate&&(w.mobileInput.max=w.formatDate(w.config.maxDate,"Y-m-d"));w.input.getAttribute("step")&&(w.mobileInput.step=String(w.input.getAttribute("step")));w.input.type="hidden",void 0!==w.altInput&&(w.altInput.type="hidden");try{w.input.parentNode&&w.input.parentNode.insertBefore(w.mobileInput,w.input.nextSibling)}catch(e){}P(w.mobileInput,"change",(function(e){w.setDate(g(e).value,!1,w.mobileFormatStr),De("onChange"),De("onClose")}))}();var e=l(re,50);w._debouncedChange=l(Y,300),w.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&P(w.daysContainer,"mouseover",(function(e){"range"===w.config.mode&&oe(g(e))}));P(w._input,"keydown",ie),void 0!==w.calendarContainer&&P(w.calendarContainer,"keydown",ie);w.config.inline||w.config.static||P(window,"resize",e);void 0!==window.ontouchstart?P(window.document,"touchstart",X):P(window.document,"mousedown",X);P(window.document,"focus",X,{capture:!0}),!0===w.config.clickOpens&&(P(w._input,"focus",w.open),P(w._input,"click",w.open));void 0!==w.daysContainer&&(P(w.monthNav,"click",xe),P(w.monthNav,["keyup","increment"],N),P(w.daysContainer,"click",me));if(void 0!==w.timeContainer&&void 0!==w.minuteElement&&void 0!==w.hourElement){var n=function(e){return g(e).select()};P(w.timeContainer,["increment"],_),P(w.timeContainer,"blur",_,{capture:!0}),P(w.timeContainer,"click",H),P([w.hourElement,w.minuteElement],["focus","click"],n),void 0!==w.secondElement&&P(w.secondElement,"focus",(function(){return w.secondElement&&w.secondElement.select()})),void 0!==w.amPM&&P(w.amPM,"click",(function(e){_(e)}))}w.config.allowInput&&P(w._input,"blur",ae)}(),(w.selectedDates.length||w.config.noCalendar)&&(w.config.enableTime&&F(w.config.noCalendar?w.latestSelectedDateObj:void 0),ye(!1)),S();var n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!w.isMobile&&n&&de(),De("onReady")}(),w}function T(e,n){for(var t=Array.prototype.slice.call(e).filter((function(e){return e instanceof HTMLElement})),a=[],i=0;i<t.length;i++){var o=t[i];try{if(null!==o.getAttribute("data-fp-omit"))continue;void 0!==o._flatpickr&&(o._flatpickr.destroy(),o._flatpickr=void 0),o._flatpickr=k(o,n||{}),a.push(o._flatpickr)}catch(e){console.error(e)}}return 1===a.length?a[0]:a}"undefined"!=typeof HTMLElement&&"undefined"!=typeof HTMLCollection&&"undefined"!=typeof NodeList&&(HTMLCollection.prototype.flatpickr=NodeList.prototype.flatpickr=function(e){return T(this,e)},HTMLElement.prototype.flatpickr=function(e){return T([this],e)});var I=function(e,n){return"string"==typeof e?T(window.document.querySelectorAll(e),n):e instanceof Node?T([e],n):T(e,n)};return I.defaultConfig={},I.l10ns={en:e({},i),default:e({},i)},I.localize=function(n){I.l10ns.default=e(e({},I.l10ns.default),n)},I.setDefaults=function(n){I.defaultConfig=e(e({},I.defaultConfig),n)},I.parseDate=C({}),I.formatDate=b({}),I.compareDates=M,"undefined"!=typeof jQuery&&void 0!==jQuery.fn&&(jQuery.fn.flatpickr=function(e){return T(this,e)}),Date.prototype.fp_incr=function(e){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+("string"==typeof e?parseInt(e,10):e))},"undefined"!=typeof window&&(window.flatpickr=I),I})); 27932 27933/***/ }), 27934
vendor: 67,492 bytes, lines 27935-29529
27935/***/ "./node_modules/gsap/CSSPlugin.js": 27936/*!****************************************!*\ 27937 !*** ./node_modules/gsap/CSSPlugin.js ***! 27938 \****************************************/ 27939/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 27940 27941"use strict"; 27942__webpack_require__.r(__webpack_exports__); 27943/* harmony export */ __webpack_require__.d(__webpack_exports__, { 27944/* harmony export */ "CSSPlugin": () => (/* binding */ CSSPlugin), 27945/* harmony export */ "_createElement": () => (/* binding */ _createElement), 27946/* harmony export */ "_getBBox": () => (/* binding */ _getBBox), 27947/* harmony export */ "checkPrefix": () => (/* binding */ _checkPropPrefix), 27948/* harmony export */ "default": () => (/* binding */ CSSPlugin) 27949/* harmony export */ }); 27950/* harmony import */ var _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gsap-core.js */ "./node_modules/gsap/gsap-core.js"); 27951/*! 27952 * CSSPlugin 3.12.5 27953 * https://gsap.com 27954 * 27955 * Copyright 2008-2024, GreenSock. All rights reserved. 27956 * Subject to the terms at https://gsap.com/standard-license or for 27957 * Club GSAP members, the agreement issued with that membership. 27958 * @author: Jack Doyle, [email protected] 27959*/ 27960 27961/* eslint-disable */ 27962 27963 27964var _win, 27965 _doc, 27966 _docElement, 27967 _pluginInitted, 27968 _tempDiv, 27969 _tempDivStyler, 27970 _recentSetterPlugin, 27971 _reverting, 27972 _windowExists = function _windowExists() { 27973 return typeof window !== "undefined"; 27974}, 27975 _transformProps = {}, 27976 _RAD2DEG = 180 / Math.PI, 27977 _DEG2RAD = Math.PI / 180, 27978 _atan2 = Math.atan2, 27979 _bigNum = 1e8, 27980 _capsExp = /([A-Z])/g, 27981 _horizontalExp = /(left|right|width|margin|padding|x)/i, 27982 _complexExp = /[\s,\(]\S/, 27983 _propertyAliases = { 27984 autoAlpha: "opacity,visibility", 27985 scale: "scaleX,scaleY", 27986 alpha: "opacity" 27987}, 27988 _renderCSSProp = function _renderCSSProp(ratio, data) { 27989 return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data); 27990}, 27991 _renderPropWithEnd = function _renderPropWithEnd(ratio, data) { 27992 return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data); 27993}, 27994 _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) { 27995 return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data); 27996}, 27997 //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0) 27998_renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) { 27999 var value = data.s + data.c * ratio; 28000 data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data); 28001}, 28002 _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) { 28003 return data.set(data.t, data.p, ratio ? data.e : data.b, data); 28004}, 28005 _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) { 28006 return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data); 28007}, 28008 _setterCSSStyle = function _setterCSSStyle(target, property, value) { 28009 return target.style[property] = value; 28010}, 28011 _setterCSSProp = function _setterCSSProp(target, property, value) { 28012 return target.style.setProperty(property, value); 28013}, 28014 _setterTransform = function _setterTransform(target, property, value) { 28015 return target._gsap[property] = value; 28016}, 28017 _setterScale = function _setterScale(target, property, value) { 28018 return target._gsap.scaleX = target._gsap.scaleY = value; 28019}, 28020 _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) { 28021 var cache = target._gsap; 28022 cache.scaleX = cache.scaleY = value; 28023 cache.renderTransform(ratio, cache); 28024}, 28025 _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) { 28026 var cache = target._gsap; 28027 cache[property] = value; 28028 cache.renderTransform(ratio, cache); 28029}, 28030 _transformProp = "transform", 28031 _transformOriginProp = _transformProp + "Origin", 28032 _saveStyle = function _saveStyle(property, isNotCSS) { 28033 var _this = this; 28034 28035 var target = this.target, 28036 style = target.style, 28037 cache = target._gsap; 28038 28039 if (property in _transformProps && style) { 28040 this.tfm = this.tfm || {}; 28041 28042 if (property !== "transform") { 28043 property = _propertyAliases[property] || property; 28044 ~property.indexOf(",") ? property.split(",").forEach(function (a) { 28045 return _this.tfm[a] = _get(target, a); 28046 }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property); // note: scale would map to "scaleX,scaleY", thus we loop and apply them both. 28047 28048 property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin); 28049 } else { 28050 return _propertyAliases.transform.split(",").forEach(function (p) { 28051 return _saveStyle.call(_this, p, isNotCSS); 28052 }); 28053 } 28054 28055 if (this.props.indexOf(_transformProp) >= 0) { 28056 return; 28057 } 28058 28059 if (cache.svg) { 28060 this.svgo = target.getAttribute("data-svg-origin"); 28061 this.props.push(_transformOriginProp, isNotCSS, ""); 28062 } 28063 28064 property = _transformProp; 28065 } 28066 28067 (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]); 28068}, 28069 _removeIndependentTransforms = function _removeIndependentTransforms(style) { 28070 if (style.translate) { 28071 style.removeProperty("translate"); 28072 style.removeProperty("scale"); 28073 style.removeProperty("rotate"); 28074 } 28075}, 28076 _revertStyle = function _revertStyle() { 28077 var props = this.props, 28078 target = this.target, 28079 style = target.style, 28080 cache = target._gsap, 28081 i, 28082 p; 28083 28084 for (i = 0; i < props.length; i += 3) { 28085 // stored like this: property, isNotCSS, value 28086 props[i + 1] ? target[props[i]] = props[i + 2] : props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === "--" ? props[i] : props[i].replace(_capsExp, "-$1").toLowerCase()); 28087 } 28088 28089 if (this.tfm) { 28090 for (p in this.tfm) { 28091 cache[p] = this.tfm[p]; 28092 } 28093 28094 if (cache.svg) { 28095 cache.renderTransform(); 28096 target.setAttribute("data-svg-origin", this.svgo || ""); 28097 } 28098 28099 i = _reverting(); 28100 28101 if ((!i || !i.isStart) && !style[_transformProp]) { 28102 _removeIndependentTransforms(style); 28103 28104 if (cache.zOrigin && style[_transformOriginProp]) { 28105 style[_transformOriginProp] += " " + cache.zOrigin + "px"; // since we're uncaching, we must put the zOrigin back into the transformOrigin so that we can pull it out accurately when we parse again. Otherwise, we'd lose the z portion of the origin since we extract it to protect from Safari bugs. 28106 28107 cache.zOrigin = 0; 28108 cache.renderTransform(); 28109 } 28110 28111 cache.uncache = 1; // if it's a startAt that's being reverted in the _initTween() of the core, we don't need to uncache transforms. This is purely a performance optimization. 28112 } 28113 } 28114}, 28115 _getStyleSaver = function _getStyleSaver(target, properties) { 28116 var saver = { 28117 target: target, 28118 props: [], 28119 revert: _revertStyle, 28120 save: _saveStyle 28121 }; 28122 target._gsap || _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.core.getCache(target); // just make sure there's a _gsap cache defined because we read from it in _saveStyle() and it's more efficient to just check it here once. 28123 28124 properties && properties.split(",").forEach(function (p) { 28125 return saver.save(p); 28126 }); 28127 return saver; 28128}, 28129 _supports3D, 28130 _createElement = function _createElement(type, ns) { 28131 var e = _doc.createElementNS ? _doc.createElementNS((ns || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making "style" inaccessible. 28132 28133 return e && e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://gsap.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/). 28134}, 28135 _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) { 28136 var cs = getComputedStyle(target); 28137 return cs[property] || cs.getPropertyValue(property.replace(_capsExp, "-$1").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || ""; //css variables may not need caps swapped out for dashes and lowercase. 28138}, 28139 _prefixes = "O,Moz,ms,Ms,Webkit".split(","), 28140 _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) { 28141 var e = element || _tempDiv, 28142 s = e.style, 28143 i = 5; 28144 28145 if (property in s && !preferPrefix) { 28146 return property; 28147 } 28148 28149 property = property.charAt(0).toUpperCase() + property.substr(1); 28150 28151 while (i-- && !(_prefixes[i] + property in s)) {} 28152 28153 return i < 0 ? null : (i === 3 ? "ms" : i >= 0 ? _prefixes[i] : "") + property; 28154}, 28155 _initCore = function _initCore() { 28156 if (_windowExists() && window.document) { 28157 _win = window; 28158 _doc = _win.document; 28159 _docElement = _doc.documentElement; 28160 _tempDiv = _createElement("div") || { 28161 style: {} 28162 }; 28163 _tempDivStyler = _createElement("div"); 28164 _transformProp = _checkPropPrefix(_transformProp); 28165 _transformOriginProp = _transformProp + "Origin"; 28166 _tempDiv.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets. 28167 28168 _supports3D = !!_checkPropPrefix("perspective"); 28169 _reverting = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.core.reverting; 28170 _pluginInitted = 1; 28171 } 28172}, 28173 _getBBoxHack = function _getBBoxHack(swapIfPossible) { 28174 //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a <defs> element and/or <mask>. We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it). 28175 var svg = _createElement("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"), 28176 oldParent = this.parentNode, 28177 oldSibling = this.nextSibling, 28178 oldCSS = this.style.cssText, 28179 bbox; 28180 28181 _docElement.appendChild(svg); 28182 28183 svg.appendChild(this); 28184 this.style.display = "block"; 28185 28186 if (swapIfPossible) { 28187 try { 28188 bbox = this.getBBox(); 28189 this._gsapBBox = this.getBBox; //store the original 28190 28191 this.getBBox = _getBBoxHack; 28192 } catch (e) {} 28193 } else if (this._gsapBBox) { 28194 bbox = this._gsapBBox(); 28195 } 28196 28197 if (oldParent) { 28198 if (oldSibling) { 28199 oldParent.insertBefore(this, oldSibling); 28200 } else { 28201 oldParent.appendChild(this); 28202 } 28203 } 28204 28205 _docElement.removeChild(svg); 28206 28207 this.style.cssText = oldCSS; 28208 return bbox; 28209}, 28210 _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) { 28211 var i = attributesArray.length; 28212 28213 while (i--) { 28214 if (target.hasAttribute(attributesArray[i])) { 28215 return target.getAttribute(attributesArray[i]); 28216 } 28217 } 28218}, 28219 _getBBox = function _getBBox(target) { 28220 var bounds; 28221 28222 try { 28223 bounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a <symbol> or <defs>). https://bugzilla.mozilla.org/show_bug.cgi?id=612118 28224 } catch (error) { 28225 bounds = _getBBoxHack.call(target, true); 28226 } 28227 28228 bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true)); //some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case. 28229 28230 return bounds && !bounds.width && !bounds.x && !bounds.y ? { 28231 x: +_getAttributeFallbacks(target, ["x", "cx", "x1"]) || 0, 28232 y: +_getAttributeFallbacks(target, ["y", "cy", "y1"]) || 0, 28233 width: 0, 28234 height: 0 28235 } : bounds; 28236}, 28237 _isSVG = function _isSVG(e) { 28238 return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e)); 28239}, 28240 //reports if the element is an SVG on which getBBox() actually works 28241_removeProperty = function _removeProperty(target, property) { 28242 if (property) { 28243 var style = target.style, 28244 first2Chars; 28245 28246 if (property in _transformProps && property !== _transformOriginProp) { 28247 property = _transformProp; 28248 } 28249 28250 if (style.removeProperty) { 28251 first2Chars = property.substr(0, 2); 28252 28253 if (first2Chars === "ms" || property.substr(0, 6) === "webkit") { 28254 //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be "ms-transform" instead of "-ms-transform" for IE9, for example) 28255 property = "-" + property; 28256 } 28257 28258 style.removeProperty(first2Chars === "--" ? property : property.replace(_capsExp, "-$1").toLowerCase()); 28259 } else { 28260 //note: old versions of IE use "removeAttribute()" instead of "removeProperty()" 28261 style.removeAttribute(property); 28262 } 28263 } 28264}, 28265 _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) { 28266 var pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue); 28267 plugin._pt = pt; 28268 pt.b = beginning; 28269 pt.e = end; 28270 28271 plugin._props.push(property); 28272 28273 return pt; 28274}, 28275 _nonConvertibleUnits = { 28276 deg: 1, 28277 rad: 1, 28278 turn: 1 28279}, 28280 _nonStandardLayouts = { 28281 grid: 1, 28282 flex: 1 28283}, 28284 //takes a single value like 20px and converts it to the unit specified, like "%", returning only the numeric amount. 28285_convertToUnit = function _convertToUnit(target, property, value, unit) { 28286 var curValue = parseFloat(value) || 0, 28287 curUnit = (value + "").trim().substr((curValue + "").length) || "px", 28288 // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim() 28289 style = _tempDiv.style, 28290 horizontal = _horizontalExp.test(property), 28291 isRootSVG = target.tagName.toLowerCase() === "svg", 28292 measureProperty = (isRootSVG ? "client" : "offset") + (horizontal ? "Width" : "Height"), 28293 amount = 100, 28294 toPixels = unit === "px", 28295 toPercent = unit === "%", 28296 px, 28297 parent, 28298 cache, 28299 isSVG; 28300 28301 if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) { 28302 return curValue; 28303 } 28304 28305 curUnit !== "px" && !toPixels && (curValue = _convertToUnit(target, property, value, "px")); 28306 isSVG = target.getCTM && _isSVG(target); 28307 28308 if ((toPercent || curUnit === "%") && (_transformProps[property] || ~property.indexOf("adius"))) { 28309 px = isSVG ? target.getBBox()[horizontal ? "width" : "height"] : target[measureProperty]; 28310 return (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(toPercent ? curValue / px * amount : curValue / 100 * px); 28311 } 28312 28313 style[horizontal ? "width" : "height"] = amount + (toPixels ? curUnit : unit); 28314 parent = ~property.indexOf("adius") || unit === "em" && target.appendChild && !isRootSVG ? target : target.parentNode; 28315 28316 if (isSVG) { 28317 parent = (target.ownerSVGElement || {}).parentNode; 28318 } 28319 28320 if (!parent || parent === _doc || !parent.appendChild) { 28321 parent = _doc.body; 28322 } 28323 28324 cache = parent._gsap; 28325 28326 if (cache && toPercent && cache.width && horizontal && cache.time === _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._ticker.time && !cache.uncache) { 28327 return (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(curValue / cache.width * amount); 28328 } else { 28329 if (toPercent && (property === "height" || property === "width")) { 28330 // if we're dealing with width/height that's inside a container with padding and/or it's a flexbox/grid container, we must apply it to the target itself rather than the _tempDiv in order to ensure complete accuracy, factoring in the parent's padding. 28331 var v = target.style[property]; 28332 target.style[property] = amount + unit; 28333 px = target[measureProperty]; 28334 v ? target.style[property] = v : _removeProperty(target, property); 28335 } else { 28336 (toPercent || curUnit === "%") && !_nonStandardLayouts[_getComputedProperty(parent, "display")] && (style.position = _getComputedProperty(target, "position")); 28337 parent === target && (style.position = "static"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that. 28338 28339 parent.appendChild(_tempDiv); 28340 px = _tempDiv[measureProperty]; 28341 parent.removeChild(_tempDiv); 28342 style.position = "absolute"; 28343 } 28344 28345 if (horizontal && toPercent) { 28346 cache = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._getCache)(parent); 28347 cache.time = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._ticker.time; 28348 cache.width = parent[measureProperty]; 28349 } 28350 } 28351 28352 return (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0); 28353}, 28354 _get = function _get(target, property, unit, uncache) { 28355 var value; 28356 _pluginInitted || _initCore(); 28357 28358 if (property in _propertyAliases && property !== "transform") { 28359 property = _propertyAliases[property]; 28360 28361 if (~property.indexOf(",")) { 28362 property = property.split(",")[0]; 28363 } 28364 } 28365 28366 if (_transformProps[property] && property !== "transform") { 28367 value = _parseTransform(target, uncache); 28368 value = property !== "transformOrigin" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + " " + value.zOrigin + "px"; 28369 } else { 28370 value = target.style[property]; 28371 28372 if (!value || value === "auto" || uncache || ~(value + "").indexOf("calc(")) { 28373 value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._getProperty)(target, property) || (property === "opacity" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius 28374 } 28375 } 28376 28377 return unit && !~(value + "").trim().indexOf(" ") ? _convertToUnit(target, property, value, unit) + unit : value; 28378}, 28379 _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) { 28380 // note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus "this" would refer to the plugin. 28381 if (!start || start === "none") { 28382 // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style ("clipPath" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as "none" whereas WebkitClipPath reports accurately like "ellipse(100% 0% at 50% 0%)", so in this case we must SWITCH to using the prefixed property instead. See https://gsap.com/forums/topic/18310-clippath-doesnt-work-on-ios/ 28383 var p = _checkPropPrefix(prop, target, 1), 28384 s = p && _getComputedProperty(target, p, 1); 28385 28386 if (s && s !== start) { 28387 prop = p; 28388 start = s; 28389 } else if (prop === "borderColor") { 28390 start = _getComputedProperty(target, "borderTopColor"); // Firefox bug: always reports "borderColor" as "", so we must fall back to borderTopColor. See https://gsap.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/ 28391 } 28392 } 28393 28394 var pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(this._pt, target.style, prop, 0, 1, _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._renderComplexString), 28395 index = 0, 28396 matchIndex = 0, 28397 a, 28398 result, 28399 startValues, 28400 startNum, 28401 color, 28402 startValue, 28403 endValue, 28404 endNum, 28405 chunk, 28406 endUnit, 28407 startUnit, 28408 endValues; 28409 pt.b = start; 28410 pt.e = end; 28411 start += ""; // ensure values are strings 28412 28413 end += ""; 28414 28415 if (end === "auto") { 28416 startValue = target.style[prop]; 28417 target.style[prop] = end; 28418 end = _getComputedProperty(target, prop) || end; 28419 startValue ? target.style[prop] = startValue : _removeProperty(target, prop); 28420 } 28421 28422 a = [start, end]; 28423 28424 (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._colorStringFilter)(a); // pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow(). 28425 28426 28427 start = a[0]; 28428 end = a[1]; 28429 startValues = start.match(_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._numWithUnitExp) || []; 28430 endValues = end.match(_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._numWithUnitExp) || []; 28431 28432 if (endValues.length) { 28433 while (result = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._numWithUnitExp.exec(end)) { 28434 endValue = result[0]; 28435 chunk = end.substring(index, result.index); 28436 28437 if (color) { 28438 color = (color + 1) % 5; 28439 } else if (chunk.substr(-5) === "rgba(" || chunk.substr(-5) === "hsla(") { 28440 color = 1; 28441 } 28442 28443 if (endValue !== (startValue = startValues[matchIndex++] || "")) { 28444 startNum = parseFloat(startValue) || 0; 28445 startUnit = startValue.substr((startNum + "").length); 28446 endValue.charAt(1) === "=" && (endValue = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._parseRelative)(startNum, endValue) + startUnit); 28447 endNum = parseFloat(endValue); 28448 endUnit = endValue.substr((endNum + "").length); 28449 index = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._numWithUnitExp.lastIndex - endUnit.length; 28450 28451 if (!endUnit) { 28452 //if something like "perspective:300" is passed in and we must add a unit to the end 28453 endUnit = endUnit || _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units[prop] || startUnit; 28454 28455 if (index === end.length) { 28456 end += endUnit; 28457 pt.e += endUnit; 28458 } 28459 } 28460 28461 if (startUnit !== endUnit) { 28462 startNum = _convertToUnit(target, prop, startValue, endUnit) || 0; 28463 } // these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method. 28464 28465 28466 pt._pt = { 28467 _next: pt._pt, 28468 p: chunk || matchIndex === 1 ? chunk : ",", 28469 //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case. 28470 s: startNum, 28471 c: endNum - startNum, 28472 m: color && color < 4 || prop === "zIndex" ? Math.round : 0 28473 }; 28474 } 28475 } 28476 28477 pt.c = index < end.length ? end.substring(index, end.length) : ""; //we use the "c" of the PropTween to store the final part of the string (after the last number) 28478 } else { 28479 pt.r = prop === "display" && end === "none" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue; 28480 } 28481 28482 _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value). 28483 28484 this._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus "this" would refer to the plugin. 28485 28486 return pt; 28487}, 28488 _keywordToPercent = { 28489 top: "0%", 28490 bottom: "100%", 28491 left: "0%", 28492 right: "100%", 28493 center: "50%" 28494}, 28495 _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) { 28496 var split = value.split(" "), 28497 x = split[0], 28498 y = split[1] || "50%"; 28499 28500 if (x === "top" || x === "bottom" || y === "left" || y === "right") { 28501 //the user provided them in the wrong order, so flip them 28502 value = x; 28503 x = y; 28504 y = value; 28505 } 28506 28507 split[0] = _keywordToPercent[x] || x; 28508 split[1] = _keywordToPercent[y] || y; 28509 return split.join(" "); 28510}, 28511 _renderClearProps = function _renderClearProps(ratio, data) { 28512 if (data.tween && data.tween._time === data.tween._dur) { 28513 var target = data.t, 28514 style = target.style, 28515 props = data.u, 28516 cache = target._gsap, 28517 prop, 28518 clearTransforms, 28519 i; 28520 28521 if (props === "all" || props === true) { 28522 style.cssText = ""; 28523 clearTransforms = 1; 28524 } else { 28525 props = props.split(","); 28526 i = props.length; 28527 28528 while (--i > -1) { 28529 prop = props[i]; 28530 28531 if (_transformProps[prop]) { 28532 clearTransforms = 1; 28533 prop = prop === "transformOrigin" ? _transformOriginProp : _transformProp; 28534 } 28535 28536 _removeProperty(target, prop); 28537 } 28538 } 28539 28540 if (clearTransforms) { 28541 _removeProperty(target, _transformProp); 28542 28543 if (cache) { 28544 cache.svg && target.removeAttribute("transform"); 28545 28546 _parseTransform(target, 1); // force all the cached values back to "normal"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values. 28547 28548 28549 cache.uncache = 1; 28550 28551 _removeIndependentTransforms(style); 28552 } 28553 } 28554 } 28555}, 28556 // note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list. 28557_specialProps = { 28558 clearProps: function clearProps(plugin, target, property, endValue, tween) { 28559 if (tween.data !== "isFromStart") { 28560 var pt = plugin._pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(plugin._pt, target, property, 0, 0, _renderClearProps); 28561 pt.u = endValue; 28562 pt.pr = -10; 28563 pt.tween = tween; 28564 28565 plugin._props.push(property); 28566 28567 return 1; 28568 } 28569 } 28570 /* className feature (about 0.4kb gzipped). 28571 , className(plugin, target, property, endValue, tween) { 28572 let _renderClassName = (ratio, data) => { 28573 data.css.render(ratio, data.css); 28574 if (!ratio || ratio === 1) { 28575 let inline = data.rmv, 28576 target = data.t, 28577 p; 28578 target.setAttribute("class", ratio ? data.e : data.b); 28579 for (p in inline) { 28580 _removeProperty(target, p); 28581 } 28582 } 28583 }, 28584 _getAllStyles = (target) => { 28585 let styles = {}, 28586 computed = getComputedStyle(target), 28587 p; 28588 for (p in computed) { 28589 if (isNaN(p) && p !== "cssText" && p !== "length") { 28590 styles[p] = computed[p]; 28591 } 28592 } 28593 _setDefaults(styles, _parseTransform(target, 1)); 28594 return styles; 28595 }, 28596 startClassList = target.getAttribute("class"), 28597 style = target.style, 28598 cssText = style.cssText, 28599 cache = target._gsap, 28600 classPT = cache.classPT, 28601 inlineToRemoveAtEnd = {}, 28602 data = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== "=") ? endValue : startClassList.replace(new RegExp("(?:\\s|^)" + endValue.substr(2) + "(?![\\w-])"), "") + ((endValue.charAt(0) === "+") ? " " + endValue.substr(2) : "")}, 28603 changingVars = {}, 28604 startVars = _getAllStyles(target), 28605 transformRelated = /(transform|perspective)/i, 28606 endVars, p; 28607 if (classPT) { 28608 classPT.r(1, classPT.d); 28609 _removeLinkedListItem(classPT.d.plugin, classPT, "_pt"); 28610 } 28611 target.setAttribute("class", data.e); 28612 endVars = _getAllStyles(target, true); 28613 target.setAttribute("class", startClassList); 28614 for (p in endVars) { 28615 if (endVars[p] !== startVars[p] && !transformRelated.test(p)) { 28616 changingVars[p] = endVars[p]; 28617 if (!style[p] && style[p] !== "0") { 28618 inlineToRemoveAtEnd[p] = 1; 28619 } 28620 } 28621 } 28622 cache.classPT = plugin._pt = new PropTween(plugin._pt, target, "className", 0, 0, _renderClassName, data, 0, -11); 28623 if (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://gsap.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/. 28624 style.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity). 28625 } 28626 _parseTransform(target, true); //to clear the caching of transforms 28627 data.css = new gsap.plugins.css(); 28628 data.css.init(target, changingVars, tween); 28629 plugin._props.push(...data.css._props); 28630 return 1; 28631 } 28632 */ 28633 28634}, 28635 28636/* 28637 * -------------------------------------------------------------------------------------- 28638 * TRANSFORMS 28639 * -------------------------------------------------------------------------------------- 28640 */ 28641_identity2DMatrix = [1, 0, 0, 1, 0, 0], 28642 _rotationalProperties = {}, 28643 _isNullTransform = function _isNullTransform(value) { 28644 return value === "matrix(1, 0, 0, 1, 0, 0)" || value === "none" || !value; 28645}, 28646 _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) { 28647 var matrixString = _getComputedProperty(target, _transformProp); 28648 28649 return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._numExp).map(_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round); 28650}, 28651 _getMatrix = function _getMatrix(target, force2D) { 28652 var cache = target._gsap || (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._getCache)(target), 28653 style = target.style, 28654 matrix = _getComputedTransformMatrixAsArray(target), 28655 parent, 28656 nextSibling, 28657 temp, 28658 addedToDOM; 28659 28660 if (cache.svg && target.getAttribute("transform")) { 28661 temp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like "translate(50,60) rotate(135,0,0)" are parsed because it mashes it into a matrix. 28662 28663 matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f]; 28664 return matrix.join(",") === "1,0,0,1,0,0" ? _identity2DMatrix : matrix; 28665 } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) { 28666 //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397 28667 //browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not "none". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px). 28668 temp = style.display; 28669 style.display = "block"; 28670 parent = target.parentNode; 28671 28672 if (!parent || !target.offsetParent) { 28673 // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375 28674 addedToDOM = 1; //flag 28675 28676 nextSibling = target.nextElementSibling; 28677 28678 _docElement.appendChild(target); //we must add it to the DOM in order to get values properly 28679 28680 } 28681 28682 matrix = _getComputedTransformMatrixAsArray(target); 28683 temp ? style.display = temp : _removeProperty(target, "display"); 28684 28685 if (addedToDOM) { 28686 nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target); 28687 } 28688 } 28689 28690 return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix; 28691}, 28692 _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) { 28693 var cache = target._gsap, 28694 matrix = matrixArray || _getMatrix(target, true), 28695 xOriginOld = cache.xOrigin || 0, 28696 yOriginOld = cache.yOrigin || 0, 28697 xOffsetOld = cache.xOffset || 0, 28698 yOffsetOld = cache.yOffset || 0, 28699 a = matrix[0], 28700 b = matrix[1], 28701 c = matrix[2], 28702 d = matrix[3], 28703 tx = matrix[4], 28704 ty = matrix[5], 28705 originSplit = origin.split(" "), 28706 xOrigin = parseFloat(originSplit[0]) || 0, 28707 yOrigin = parseFloat(originSplit[1]) || 0, 28708 bounds, 28709 determinant, 28710 x, 28711 y; 28712 28713 if (!originIsAbsolute) { 28714 bounds = _getBBox(target); 28715 xOrigin = bounds.x + (~originSplit[0].indexOf("%") ? xOrigin / 100 * bounds.width : xOrigin); 28716 yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf("%") ? yOrigin / 100 * bounds.height : yOrigin); // if (!("xOrigin" in cache) && (xOrigin || yOrigin)) { // added in 3.12.3, reverted in 3.12.4; requires more exploration 28717 // xOrigin -= bounds.x; 28718 // yOrigin -= bounds.y; 28719 // } 28720 } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) { 28721 //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero. 28722 x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant; 28723 y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant; 28724 xOrigin = x; 28725 yOrigin = y; // theory: we only had to do this for smoothing and it assumes that the previous one was not originIsAbsolute. 28726 } 28727 28728 if (smooth || smooth !== false && cache.smooth) { 28729 tx = xOrigin - xOriginOld; 28730 ty = yOrigin - yOriginOld; 28731 cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx; 28732 cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty; 28733 } else { 28734 cache.xOffset = cache.yOffset = 0; 28735 } 28736 28737 cache.xOrigin = xOrigin; 28738 cache.yOrigin = yOrigin; 28739 cache.smooth = !!smooth; 28740 cache.origin = origin; 28741 cache.originIsAbsolute = !!originIsAbsolute; 28742 target.style[_transformOriginProp] = "0px 0px"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value). 28743 28744 if (pluginToAddPropTweensTo) { 28745 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOrigin", xOriginOld, xOrigin); 28746 28747 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOrigin", yOriginOld, yOrigin); 28748 28749 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOffset", xOffsetOld, cache.xOffset); 28750 28751 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOffset", yOffsetOld, cache.yOffset); 28752 } 28753 28754 target.setAttribute("data-svg-origin", xOrigin + " " + yOrigin); 28755}, 28756 _parseTransform = function _parseTransform(target, uncache) { 28757 var cache = target._gsap || new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.GSCache(target); 28758 28759 if ("x" in cache && !uncache && !cache.uncache) { 28760 return cache; 28761 } 28762 28763 var style = target.style, 28764 invertedScaleX = cache.scaleX < 0, 28765 px = "px", 28766 deg = "deg", 28767 cs = getComputedStyle(target), 28768 origin = _getComputedProperty(target, _transformOriginProp) || "0", 28769 x, 28770 y, 28771 z, 28772 scaleX, 28773 scaleY, 28774 rotation, 28775 rotationX, 28776 rotationY, 28777 skewX, 28778 skewY, 28779 perspective, 28780 xOrigin, 28781 yOrigin, 28782 matrix, 28783 angle, 28784 cos, 28785 sin, 28786 a, 28787 b, 28788 c, 28789 d, 28790 a12, 28791 a22, 28792 t1, 28793 t2, 28794 t3, 28795 a13, 28796 a23, 28797 a33, 28798 a42, 28799 a43, 28800 a32; 28801 x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0; 28802 scaleX = scaleY = 1; 28803 cache.svg = !!(target.getCTM && _isSVG(target)); 28804 28805 if (cs.translate) { 28806 // accommodate independent transforms by combining them into normal ones. 28807 if (cs.translate !== "none" || cs.scale !== "none" || cs.rotate !== "none") { 28808 style[_transformProp] = (cs.translate !== "none" ? "translate3d(" + (cs.translate + " 0 0").split(" ").slice(0, 3).join(", ") + ") " : "") + (cs.rotate !== "none" ? "rotate(" + cs.rotate + ") " : "") + (cs.scale !== "none" ? "scale(" + cs.scale.split(" ").join(",") + ") " : "") + (cs[_transformProp] !== "none" ? cs[_transformProp] : ""); 28809 } 28810 28811 style.scale = style.rotate = style.translate = "none"; 28812 } 28813 28814 matrix = _getMatrix(target, cache.svg); 28815 28816 if (cache.svg) { 28817 if (cache.uncache) { 28818 // if cache.uncache is true (and maybe if origin is 0,0), we need to set element.style.transformOrigin = (cache.xOrigin - bbox.x) + "px " + (cache.yOrigin - bbox.y) + "px". Previously we let the data-svg-origin stay instead, but when introducing revert(), it complicated things. 28819 t2 = target.getBBox(); 28820 origin = cache.xOrigin - t2.x + "px " + (cache.yOrigin - t2.y) + "px"; 28821 t1 = ""; 28822 } else { 28823 t1 = !uncache && target.getAttribute("data-svg-origin"); // Remember, to work around browser inconsistencies we always force SVG elements' transformOrigin to 0,0 and offset the translation accordingly. 28824 } 28825 28826 _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix); 28827 } 28828 28829 xOrigin = cache.xOrigin || 0; 28830 yOrigin = cache.yOrigin || 0; 28831 28832 if (matrix !== _identity2DMatrix) { 28833 a = matrix[0]; //a11 28834 28835 b = matrix[1]; //a21 28836 28837 c = matrix[2]; //a31 28838 28839 d = matrix[3]; //a41 28840 28841 x = a12 = matrix[4]; 28842 y = a22 = matrix[5]; //2D matrix 28843 28844 if (matrix.length === 6) { 28845 scaleX = Math.sqrt(a * a + b * b); 28846 scaleY = Math.sqrt(d * d + c * c); 28847 rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist). 28848 28849 skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0; 28850 skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD))); 28851 28852 if (cache.svg) { 28853 x -= xOrigin - (xOrigin * a + yOrigin * c); 28854 y -= yOrigin - (xOrigin * b + yOrigin * d); 28855 } //3D matrix 28856 28857 } else { 28858 a32 = matrix[6]; 28859 a42 = matrix[7]; 28860 a13 = matrix[8]; 28861 a23 = matrix[9]; 28862 a33 = matrix[10]; 28863 a43 = matrix[11]; 28864 x = matrix[12]; 28865 y = matrix[13]; 28866 z = matrix[14]; 28867 angle = _atan2(a32, a33); 28868 rotationX = angle * _RAD2DEG; //rotationX 28869 28870 if (angle) { 28871 cos = Math.cos(-angle); 28872 sin = Math.sin(-angle); 28873 t1 = a12 * cos + a13 * sin; 28874 t2 = a22 * cos + a23 * sin; 28875 t3 = a32 * cos + a33 * sin; 28876 a13 = a12 * -sin + a13 * cos; 28877 a23 = a22 * -sin + a23 * cos; 28878 a33 = a32 * -sin + a33 * cos; 28879 a43 = a42 * -sin + a43 * cos; 28880 a12 = t1; 28881 a22 = t2; 28882 a32 = t3; 28883 } //rotationY 28884 28885 28886 angle = _atan2(-c, a33); 28887 rotationY = angle * _RAD2DEG; 28888 28889 if (angle) { 28890 cos = Math.cos(-angle); 28891 sin = Math.sin(-angle); 28892 t1 = a * cos - a13 * sin; 28893 t2 = b * cos - a23 * sin; 28894 t3 = c * cos - a33 * sin; 28895 a43 = d * sin + a43 * cos; 28896 a = t1; 28897 b = t2; 28898 c = t3; 28899 } //rotationZ 28900 28901 28902 angle = _atan2(b, a); 28903 rotation = angle * _RAD2DEG; 28904 28905 if (angle) { 28906 cos = Math.cos(angle); 28907 sin = Math.sin(angle); 28908 t1 = a * cos + b * sin; 28909 t2 = a12 * cos + a22 * sin; 28910 b = b * cos - a * sin; 28911 a22 = a22 * cos - a12 * sin; 28912 a = t1; 28913 a12 = t2; 28914 } 28915 28916 if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) { 28917 //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here. 28918 rotationX = rotation = 0; 28919 rotationY = 180 - rotationY; 28920 } 28921 28922 scaleX = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(Math.sqrt(a * a + b * b + c * c)); 28923 scaleY = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(Math.sqrt(a22 * a22 + a32 * a32)); 28924 angle = _atan2(a12, a22); 28925 skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0; 28926 perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0; 28927 } 28928 28929 if (cache.svg) { 28930 //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline). 28931 t1 = target.getAttribute("transform"); 28932 cache.forceCSS = target.setAttribute("transform", "") || !_isNullTransform(_getComputedProperty(target, _transformProp)); 28933 t1 && target.setAttribute("transform", t1); 28934 } 28935 } 28936 28937 if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) { 28938 if (invertedScaleX) { 28939 scaleX *= -1; 28940 skewX += rotation <= 0 ? 180 : -180; 28941 rotation += rotation <= 0 ? 180 : -180; 28942 } else { 28943 scaleY *= -1; 28944 skewX += skewX <= 0 ? 180 : -180; 28945 } 28946 } 28947 28948 uncache = uncache || cache.uncache; 28949 cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px; 28950 cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px; 28951 cache.z = z + px; 28952 cache.scaleX = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(scaleX); 28953 cache.scaleY = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(scaleY); 28954 cache.rotation = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(rotation) + deg; 28955 cache.rotationX = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(rotationX) + deg; 28956 cache.rotationY = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(rotationY) + deg; 28957 cache.skewX = skewX + deg; 28958 cache.skewY = skewY + deg; 28959 cache.transformPerspective = perspective + px; 28960 28961 if (cache.zOrigin = parseFloat(origin.split(" ")[2]) || !uncache && cache.zOrigin || 0) { 28962 style[_transformOriginProp] = _firstTwoOnly(origin); 28963 } 28964 28965 cache.xOffset = cache.yOffset = 0; 28966 cache.force3D = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.force3D; 28967 cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms; 28968 cache.uncache = 0; 28969 return cache; 28970}, 28971 _firstTwoOnly = function _firstTwoOnly(value) { 28972 return (value = value.split(" "))[0] + " " + value[1]; 28973}, 28974 //for handling transformOrigin values, stripping out the 3rd dimension 28975_addPxTranslate = function _addPxTranslate(target, start, value) { 28976 var unit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(start); 28977 return (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(parseFloat(start) + parseFloat(_convertToUnit(target, "x", value + "px", unit))) + unit; 28978}, 28979 _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) { 28980 cache.z = "0px"; 28981 cache.rotationY = cache.rotationX = "0deg"; 28982 cache.force3D = 0; 28983 28984 _renderCSSTransforms(ratio, cache); 28985}, 28986 _zeroDeg = "0deg", 28987 _zeroPx = "0px", 28988 _endParenthesis = ") ", 28989 _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) { 28990 var _ref = cache || this, 28991 xPercent = _ref.xPercent, 28992 yPercent = _ref.yPercent, 28993 x = _ref.x, 28994 y = _ref.y, 28995 z = _ref.z, 28996 rotation = _ref.rotation, 28997 rotationY = _ref.rotationY, 28998 rotationX = _ref.rotationX, 28999 skewX = _ref.skewX, 29000 skewY = _ref.skewY, 29001 scaleX = _ref.scaleX, 29002 scaleY = _ref.scaleY, 29003 transformPerspective = _ref.transformPerspective, 29004 force3D = _ref.force3D, 29005 target = _ref.target, 29006 zOrigin = _ref.zOrigin, 29007 transforms = "", 29008 use3D = force3D === "auto" && ratio && ratio !== 1 || force3D === true; // Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually) 29009 29010 29011 if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) { 29012 var angle = parseFloat(rotationY) * _DEG2RAD, 29013 a13 = Math.sin(angle), 29014 a33 = Math.cos(angle), 29015 cos; 29016 29017 angle = parseFloat(rotationX) * _DEG2RAD; 29018 cos = Math.cos(angle); 29019 x = _addPxTranslate(target, x, a13 * cos * -zOrigin); 29020 y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin); 29021 z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin); 29022 } 29023 29024 if (transformPerspective !== _zeroPx) { 29025 transforms += "perspective(" + transformPerspective + _endParenthesis; 29026 } 29027 29028 if (xPercent || yPercent) { 29029 transforms += "translate(" + xPercent + "%, " + yPercent + "%) "; 29030 } 29031 29032 if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) { 29033 transforms += z !== _zeroPx || use3D ? "translate3d(" + x + ", " + y + ", " + z + ") " : "translate(" + x + ", " + y + _endParenthesis; 29034 } 29035 29036 if (rotation !== _zeroDeg) { 29037 transforms += "rotate(" + rotation + _endParenthesis; 29038 } 29039 29040 if (rotationY !== _zeroDeg) { 29041 transforms += "rotateY(" + rotationY + _endParenthesis; 29042 } 29043 29044 if (rotationX !== _zeroDeg) { 29045 transforms += "rotateX(" + rotationX + _endParenthesis; 29046 } 29047 29048 if (skewX !== _zeroDeg || skewY !== _zeroDeg) { 29049 transforms += "skew(" + skewX + ", " + skewY + _endParenthesis; 29050 } 29051 29052 if (scaleX !== 1 || scaleY !== 1) { 29053 transforms += "scale(" + scaleX + ", " + scaleY + _endParenthesis; 29054 } 29055 29056 target.style[_transformProp] = transforms || "translate(0, 0)"; 29057}, 29058 _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) { 29059 var _ref2 = cache || this, 29060 xPercent = _ref2.xPercent, 29061 yPercent = _ref2.yPercent, 29062 x = _ref2.x, 29063 y = _ref2.y, 29064 rotation = _ref2.rotation, 29065 skewX = _ref2.skewX, 29066 skewY = _ref2.skewY, 29067 scaleX = _ref2.scaleX, 29068 scaleY = _ref2.scaleY, 29069 target = _ref2.target, 29070 xOrigin = _ref2.xOrigin, 29071 yOrigin = _ref2.yOrigin, 29072 xOffset = _ref2.xOffset, 29073 yOffset = _ref2.yOffset, 29074 forceCSS = _ref2.forceCSS, 29075 tx = parseFloat(x), 29076 ty = parseFloat(y), 29077 a11, 29078 a21, 29079 a12, 29080 a22, 29081 temp; 29082 29083 rotation = parseFloat(rotation); 29084 skewX = parseFloat(skewX); 29085 skewY = parseFloat(skewY); 29086 29087 if (skewY) { 29088 //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees. 29089 skewY = parseFloat(skewY); 29090 skewX += skewY; 29091 rotation += skewY; 29092 } 29093 29094 if (rotation || skewX) { 29095 rotation *= _DEG2RAD; 29096 skewX *= _DEG2RAD; 29097 a11 = Math.cos(rotation) * scaleX; 29098 a21 = Math.sin(rotation) * scaleX; 29099 a12 = Math.sin(rotation - skewX) * -scaleY; 29100 a22 = Math.cos(rotation - skewX) * scaleY; 29101 29102 if (skewX) { 29103 skewY *= _DEG2RAD; 29104 temp = Math.tan(skewX - skewY); 29105 temp = Math.sqrt(1 + temp * temp); 29106 a12 *= temp; 29107 a22 *= temp; 29108 29109 if (skewY) { 29110 temp = Math.tan(skewY); 29111 temp = Math.sqrt(1 + temp * temp); 29112 a11 *= temp; 29113 a21 *= temp; 29114 } 29115 } 29116 29117 a11 = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(a11); 29118 a21 = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(a21); 29119 a12 = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(a12); 29120 a22 = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(a22); 29121 } else { 29122 a11 = scaleX; 29123 a22 = scaleY; 29124 a21 = a12 = 0; 29125 } 29126 29127 if (tx && !~(x + "").indexOf("px") || ty && !~(y + "").indexOf("px")) { 29128 tx = _convertToUnit(target, "x", x, "px"); 29129 ty = _convertToUnit(target, "y", y, "px"); 29130 } 29131 29132 if (xOrigin || yOrigin || xOffset || yOffset) { 29133 tx = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset); 29134 ty = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset); 29135 } 29136 29137 if (xPercent || yPercent) { 29138 //The SVG spec doesn't support percentage-based translation in the "transform" attribute, so we merge it into the translation to simulate it. 29139 temp = target.getBBox(); 29140 tx = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(tx + xPercent / 100 * temp.width); 29141 ty = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._round)(ty + yPercent / 100 * temp.height); 29142 } 29143 29144 temp = "matrix(" + a11 + "," + a21 + "," + a12 + "," + a22 + "," + tx + "," + ty + ")"; 29145 target.setAttribute("transform", temp); 29146 forceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!) 29147}, 29148 _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue) { 29149 var cap = 360, 29150 isString = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._isString)(endValue), 29151 endNum = parseFloat(endValue) * (isString && ~endValue.indexOf("rad") ? _RAD2DEG : 1), 29152 change = endNum - startNum, 29153 finalValue = startNum + change + "deg", 29154 direction, 29155 pt; 29156 29157 if (isString) { 29158 direction = endValue.split("_")[1]; 29159 29160 if (direction === "short") { 29161 change %= cap; 29162 29163 if (change !== change % (cap / 2)) { 29164 change += change < 0 ? cap : -cap; 29165 } 29166 } 29167 29168 if (direction === "cw" && change < 0) { 29169 change = (change + cap * _bigNum) % cap - ~~(change / cap) * cap; 29170 } else if (direction === "ccw" && change > 0) { 29171 change = (change - cap * _bigNum) % cap - ~~(change / cap) * cap; 29172 } 29173 } 29174 29175 plugin._pt = pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd); 29176 pt.e = finalValue; 29177 pt.u = "deg"; 29178 29179 plugin._props.push(property); 29180 29181 return pt; 29182}, 29183 _assign = function _assign(target, source) { 29184 // Internet Explorer doesn't have Object.assign(), so we recreate it here. 29185 for (var p in source) { 29186 target[p] = source[p]; 29187 } 29188 29189 return target; 29190}, 29191 _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) { 29192 //for handling cases where someone passes in a whole transform string, like transform: "scale(2, 3) rotate(20deg) translateY(30em)" 29193 var startCache = _assign({}, target._gsap), 29194 exclude = "perspective,force3D,transformOrigin,svgOrigin", 29195 style = target.style, 29196 endCache, 29197 p, 29198 startValue, 29199 endValue, 29200 startNum, 29201 endNum, 29202 startUnit, 29203 endUnit; 29204 29205 if (startCache.svg) { 29206 startValue = target.getAttribute("transform"); 29207 target.setAttribute("transform", ""); 29208 style[_transformProp] = transforms; 29209 endCache = _parseTransform(target, 1); 29210 29211 _removeProperty(target, _transformProp); 29212 29213 target.setAttribute("transform", startValue); 29214 } else { 29215 startValue = getComputedStyle(target)[_transformProp]; 29216 style[_transformProp] = transforms; 29217 endCache = _parseTransform(target, 1); 29218 style[_transformProp] = startValue; 29219 } 29220 29221 for (p in _transformProps) { 29222 startValue = startCache[p]; 29223 endValue = endCache[p]; 29224 29225 if (startValue !== endValue && exclude.indexOf(p) < 0) { 29226 //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case. 29227 startUnit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(startValue); 29228 endUnit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(endValue); 29229 startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue); 29230 endNum = parseFloat(endValue); 29231 plugin._pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp); 29232 plugin._pt.u = endUnit || 0; 29233 29234 plugin._props.push(p); 29235 } 29236 } 29237 29238 _assign(endCache, startCache); 29239}; // handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc. 29240 29241 29242(0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._forEachName)("padding,margin,Width,Radius", function (name, index) { 29243 var t = "Top", 29244 r = "Right", 29245 b = "Bottom", 29246 l = "Left", 29247 props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) { 29248 return index < 2 ? name + side : "border" + side + name; 29249 }); 29250 29251 _specialProps[index > 1 ? "border" + name : name] = function (plugin, target, property, endValue, tween) { 29252 var a, vars; 29253 29254 if (arguments.length < 4) { 29255 // getter, passed target, property, and unit (from _get()) 29256 a = props.map(function (prop) { 29257 return _get(plugin, prop, property); 29258 }); 29259 vars = a.join(" "); 29260 return vars.split(a[0]).length === 5 ? a[0] : vars; 29261 } 29262 29263 a = (endValue + "").split(" "); 29264 vars = {}; 29265 props.forEach(function (prop, i) { 29266 return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0]; 29267 }); 29268 plugin.init(target, vars, tween); 29269 }; 29270}); 29271 29272var CSSPlugin = { 29273 name: "css", 29274 register: _initCore, 29275 targetTest: function targetTest(target) { 29276 return target.style && target.nodeType; 29277 }, 29278 init: function init(target, vars, tween, index, targets) { 29279 var props = this._props, 29280 style = target.style, 29281 startAt = tween.vars.startAt, 29282 startValue, 29283 endValue, 29284 endNum, 29285 startNum, 29286 type, 29287 specialProp, 29288 p, 29289 startUnit, 29290 endUnit, 29291 relative, 29292 isTransformRelated, 29293 transformPropTween, 29294 cache, 29295 smooth, 29296 hasPriority, 29297 inlineProps; 29298 _pluginInitted || _initCore(); // we may call init() multiple times on the same plugin instance, like when adding special properties, so make sure we don't overwrite the revert data or inlineProps 29299 29300 this.styles = this.styles || _getStyleSaver(target); 29301 inlineProps = this.styles.props; 29302 this.tween = tween; 29303 29304 for (p in vars) { 29305 if (p === "autoRound") { 29306 continue; 29307 } 29308 29309 endValue = vars[p]; 29310 29311 if (_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._plugins[p] && (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._checkPlugin)(p, vars, tween, index, target, targets)) { 29312 // plugins 29313 continue; 29314 } 29315 29316 type = typeof endValue; 29317 specialProp = _specialProps[p]; 29318 29319 if (type === "function") { 29320 endValue = endValue.call(tween, index, target, targets); 29321 type = typeof endValue; 29322 } 29323 29324 if (type === "string" && ~endValue.indexOf("random(")) { 29325 endValue = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._replaceRandom)(endValue); 29326 } 29327 29328 if (specialProp) { 29329 specialProp(this, target, p, endValue, tween) && (hasPriority = 1); 29330 } else if (p.substr(0, 2) === "--") { 29331 //CSS variable 29332 startValue = (getComputedStyle(target).getPropertyValue(p) + "").trim(); 29333 endValue += ""; 29334 _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._colorExp.lastIndex = 0; 29335 29336 if (!_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._colorExp.test(startValue)) { 29337 // colors don't have units 29338 startUnit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(startValue); 29339 endUnit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(endValue); 29340 } 29341 29342 endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit); 29343 this.add(style, "setProperty", startValue, endValue, index, targets, 0, 0, p); 29344 props.push(p); 29345 inlineProps.push(p, 0, style[p]); 29346 } else if (type !== "undefined") { 29347 if (startAt && p in startAt) { 29348 // in case someone hard-codes a complex value as the start, like top: "calc(2vh / 2)". Without this, it'd use the computed value (always in px) 29349 startValue = typeof startAt[p] === "function" ? startAt[p].call(tween, index, target, targets) : startAt[p]; 29350 (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._isString)(startValue) && ~startValue.indexOf("random(") && (startValue = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._replaceRandom)(startValue)); 29351 (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(startValue + "") || startValue === "auto" || (startValue += _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units[p] || (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(_get(target, p)) || ""); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work. 29352 29353 (startValue + "").charAt(1) === "=" && (startValue = _get(target, p)); // can't work with relative values 29354 } else { 29355 startValue = _get(target, p); 29356 } 29357 29358 startNum = parseFloat(startValue); 29359 relative = type === "string" && endValue.charAt(1) === "=" && endValue.substr(0, 2); 29360 relative && (endValue = endValue.substr(2)); 29361 endNum = parseFloat(endValue); 29362 29363 if (p in _propertyAliases) { 29364 if (p === "autoAlpha") { 29365 //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened. 29366 if (startNum === 1 && _get(target, "visibility") === "hidden" && endNum) { 29367 //if visibility is initially set to "hidden", we should interpret that as intent to make opacity 0 (a convenience) 29368 startNum = 0; 29369 } 29370 29371 inlineProps.push("visibility", 0, style.visibility); 29372 29373 _addNonTweeningPT(this, style, "visibility", startNum ? "inherit" : "hidden", endNum ? "inherit" : "hidden", !endNum); 29374 } 29375 29376 if (p !== "scale" && p !== "transform") { 29377 p = _propertyAliases[p]; 29378 ~p.indexOf(",") && (p = p.split(",")[0]); 29379 } 29380 } 29381 29382 isTransformRelated = p in _transformProps; //--- TRANSFORM-RELATED --- 29383 29384 if (isTransformRelated) { 29385 this.styles.save(p); 29386 29387 if (!transformPropTween) { 29388 cache = target._gsap; 29389 cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:"translateX(50vw)"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here. 29390 29391 smooth = vars.smoothOrigin !== false && cache.smooth; 29392 transformPropTween = this._pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning) 29393 29394 transformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween. 29395 } 29396 29397 if (p === "scale") { 29398 this._pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(this._pt, cache, "scaleY", cache.scaleY, (relative ? (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._parseRelative)(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp); 29399 this._pt.u = 0; 29400 props.push("scaleY", p); 29401 p += "X"; 29402 } else if (p === "transformOrigin") { 29403 inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]); 29404 endValue = _convertKeywordsToPercentages(endValue); //in case something like "left top" or "bottom right" is passed in. Convert to percentages. 29405 29406 if (cache.svg) { 29407 _applySVGOrigin(target, endValue, 0, smooth, 0, this); 29408 } else { 29409 endUnit = parseFloat(endValue.split(" ")[2]) || 0; //handle the zOrigin separately! 29410 29411 endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, "zOrigin", cache.zOrigin, endUnit); 29412 29413 _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue)); 29414 } 29415 29416 continue; 29417 } else if (p === "svgOrigin") { 29418 _applySVGOrigin(target, endValue, 1, smooth, 0, this); 29419 29420 continue; 29421 } else if (p in _rotationalProperties) { 29422 _addRotationalPropTween(this, cache, p, startNum, relative ? (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._parseRelative)(startNum, relative + endValue) : endValue); 29423 29424 continue; 29425 } else if (p === "smoothOrigin") { 29426 _addNonTweeningPT(this, cache, "smooth", cache.smooth, endValue); 29427 29428 continue; 29429 } else if (p === "force3D") { 29430 cache[p] = endValue; 29431 continue; 29432 } else if (p === "transform") { 29433 _addRawTransformPTs(this, endValue, target); 29434 29435 continue; 29436 } 29437 } else if (!(p in style)) { 29438 p = _checkPropPrefix(p) || p; 29439 } 29440 29441 if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) { 29442 startUnit = (startValue + "").substr((startNum + "").length); 29443 endNum || (endNum = 0); // protect against NaN 29444 29445 endUnit = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.getUnit)(endValue) || (p in _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units ? _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units[p] : startUnit); 29446 startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit)); 29447 this._pt = new _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._parseRelative)(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === "px" || p === "zIndex") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp); 29448 this._pt.u = endUnit || 0; 29449 29450 if (startUnit !== endUnit && endUnit !== "%") { 29451 //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a "b" (beginning) property and point to a render method that handles that. (performance optimization) 29452 this._pt.b = startValue; 29453 this._pt.r = _renderCSSPropWithBeginning; 29454 } 29455 } else if (!(p in style)) { 29456 if (p in target) { 29457 //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that. 29458 this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets); 29459 } else if (p !== "parseTransform") { 29460 (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._missingPlugin)(p, endValue); 29461 29462 continue; 29463 } 29464 } else { 29465 _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue); 29466 } 29467 29468 isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : inlineProps.push(p, 1, startValue || target[p])); 29469 props.push(p); 29470 } 29471 } 29472 29473 hasPriority && (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._sortPropTweensByPriority)(this); 29474 }, 29475 render: function render(ratio, data) { 29476 if (data.tween._time || !_reverting()) { 29477 var pt = data._pt; 29478 29479 while (pt) { 29480 pt.r(ratio, pt.d); 29481 pt = pt._next; 29482 } 29483 } else { 29484 data.styles.revert(); 29485 } 29486 }, 29487 get: _get, 29488 aliases: _propertyAliases, 29489 getSetter: function getSetter(target, property, plugin) { 29490 //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like "x" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer. 29491 var p = _propertyAliases[property]; 29492 p && p.indexOf(",") < 0 && (property = p); 29493 return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, "x")) ? plugin && _recentSetterPlugin === plugin ? property === "scale" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === "scale" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !(0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._isUndefined)(target.style[property]) ? _setterCSSStyle : ~property.indexOf("-") ? _setterCSSProp : (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._getSetter)(target, property); 29494 }, 29495 core: { 29496 _removeProperty: _removeProperty, 29497 _getMatrix: _getMatrix 29498 } 29499}; 29500_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.utils.checkPrefix = _checkPropPrefix; 29501_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.core.getStyleSaver = _getStyleSaver; 29502 29503(function (positionAndScale, rotation, others, aliases) { 29504 var all = (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._forEachName)(positionAndScale + "," + rotation + "," + others, function (name) { 29505 _transformProps[name] = 1; 29506 }); 29507 29508 (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._forEachName)(rotation, function (name) { 29509 _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units[name] = "deg"; 29510 _rotationalProperties[name] = 1; 29511 }); 29512 29513 _propertyAliases[all[13]] = positionAndScale + "," + rotation; 29514 29515 (0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._forEachName)(aliases, function (name) { 29516 var split = name.split(":"); 29517 _propertyAliases[split[1]] = all[split[0]]; 29518 }); 29519})("x,y,z,scale,scaleX,scaleY,xPercent,yPercent", "rotation,rotationX,rotationY,skewX,skewY", "transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective", "0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY"); 29520 29521(0,_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._forEachName)("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", function (name) { 29522 _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__._config.units[name] = "px"; 29523}); 29524 29525_gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.registerPlugin(CSSPlugin); 29526 29527 29528/***/ }), 29529
vendor: 14,509 bytes, lines 29530-29914
29530/***/ "./node_modules/gsap/MotionPathPlugin.js": 29531/*!***********************************************!*\ 29532 !*** ./node_modules/gsap/MotionPathPlugin.js ***! 29533 \***********************************************/ 29534/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 29535 29536"use strict"; 29537__webpack_require__.r(__webpack_exports__); 29538/* harmony export */ __webpack_require__.d(__webpack_exports__, { 29539/* harmony export */ "MotionPathPlugin": () => (/* binding */ MotionPathPlugin), 29540/* harmony export */ "default": () => (/* binding */ MotionPathPlugin) 29541/* harmony export */ }); 29542/* harmony import */ var _utils_paths_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/paths.js */ "./node_modules/gsap/utils/paths.js"); 29543/* harmony import */ var _utils_matrix_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/matrix.js */ "./node_modules/gsap/utils/matrix.js"); 29544/*! 29545 * MotionPathPlugin 3.12.5 29546 * https://gsap.com 29547 * 29548 * @license Copyright 2008-2024, GreenSock. All rights reserved. 29549 * Subject to the terms at https://gsap.com/standard-license or for 29550 * Club GSAP members, the agreement issued with that membership. 29551 * @author: Jack Doyle, [email protected] 29552*/ 29553 29554/* eslint-disable */ 29555 29556 29557 29558var _xProps = "x,translateX,left,marginLeft,xPercent".split(","), 29559 _yProps = "y,translateY,top,marginTop,yPercent".split(","), 29560 _DEG2RAD = Math.PI / 180, 29561 gsap, 29562 PropTween, 29563 _getUnit, 29564 _toArray, 29565 _getStyleSaver, 29566 _reverting, 29567 _getGSAP = function _getGSAP() { 29568 return gsap || typeof window !== "undefined" && (gsap = window.gsap) && gsap.registerPlugin && gsap; 29569}, 29570 _populateSegmentFromArray = function _populateSegmentFromArray(segment, values, property, mode) { 29571 //mode: 0 = x but don't fill y yet, 1 = y, 2 = x and fill y with 0. 29572 var l = values.length, 29573 si = mode === 2 ? 0 : mode, 29574 i = 0, 29575 v; 29576 29577 for (; i < l; i++) { 29578 segment[si] = v = parseFloat(values[i][property]); 29579 mode === 2 && (segment[si + 1] = 0); 29580 si += 2; 29581 } 29582 29583 return segment; 29584}, 29585 _getPropNum = function _getPropNum(target, prop, unit) { 29586 return parseFloat(target._gsap.get(target, prop, unit || "px")) || 0; 29587}, 29588 _relativize = function _relativize(segment) { 29589 var x = segment[0], 29590 y = segment[1], 29591 i; 29592 29593 for (i = 2; i < segment.length; i += 2) { 29594 x = segment[i] += x; 29595 y = segment[i + 1] += y; 29596 } 29597}, 29598 // feed in an array of quadratic bezier points like [{x: 0, y: 0}, ...] and it'll convert it to cubic bezier 29599// _quadToCubic = points => { 29600// let cubic = [], 29601// l = points.length - 1, 29602// i = 1, 29603// a, b, c; 29604// for (; i < l; i+=2) { 29605// a = points[i-1]; 29606// b = points[i]; 29607// c = points[i+1]; 29608// cubic.push(a, {x: (2 * b.x + a.x) / 3, y: (2 * b.y + a.y) / 3}, {x: (2 * b.x + c.x) / 3, y: (2 * b.y + c.y) / 3}); 29609// } 29610// cubic.push(points[l]); 29611// return cubic; 29612// }, 29613_segmentToRawPath = function _segmentToRawPath(plugin, segment, target, x, y, slicer, vars, unitX, unitY) { 29614 if (vars.type === "cubic") { 29615 segment = [segment]; 29616 } else { 29617 vars.fromCurrent !== false && segment.unshift(_getPropNum(target, x, unitX), y ? _getPropNum(target, y, unitY) : 0); 29618 vars.relative && _relativize(segment); 29619 var pointFunc = y ? _utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.pointsToSegment : _utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.flatPointsToSegment; 29620 segment = [pointFunc(segment, vars.curviness)]; 29621 } 29622 29623 segment = slicer(_align(segment, target, vars)); 29624 29625 _addDimensionalPropTween(plugin, target, x, segment, "x", unitX); 29626 29627 y && _addDimensionalPropTween(plugin, target, y, segment, "y", unitY); 29628 return (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.cacheRawPathMeasurements)(segment, vars.resolution || (vars.curviness === 0 ? 20 : 12)); //when curviness is 0, it creates control points right on top of the anchors which makes it more sensitive to resolution, thus we change the default accordingly. 29629}, 29630 _emptyFunc = function _emptyFunc(v) { 29631 return v; 29632}, 29633 _numExp = /[-+\.]*\d+\.?(?:e-|e\+)?\d*/g, 29634 _originToPoint = function _originToPoint(element, origin, parentMatrix) { 29635 // origin is an array of normalized values (0-1) in relation to the width/height, so [0.5, 0.5] would be the center. It can also be "auto" in which case it will be the top left unless it's a <path>, when it will start at the beginning of the path itself. 29636 var m = (0,_utils_matrix_js__WEBPACK_IMPORTED_MODULE_1__.getGlobalMatrix)(element), 29637 x = 0, 29638 y = 0, 29639 svg; 29640 29641 if ((element.tagName + "").toLowerCase() === "svg") { 29642 svg = element.viewBox.baseVal; 29643 svg.width || (svg = { 29644 width: +element.getAttribute("width"), 29645 height: +element.getAttribute("height") 29646 }); 29647 } else { 29648 svg = origin && element.getBBox && element.getBBox(); 29649 } 29650 29651 if (origin && origin !== "auto") { 29652 x = origin.push ? origin[0] * (svg ? svg.width : element.offsetWidth || 0) : origin.x; 29653 y = origin.push ? origin[1] * (svg ? svg.height : element.offsetHeight || 0) : origin.y; 29654 } 29655 29656 return parentMatrix.apply(x || y ? m.apply({ 29657 x: x, 29658 y: y 29659 }) : { 29660 x: m.e, 29661 y: m.f 29662 }); 29663}, 29664 _getAlignMatrix = function _getAlignMatrix(fromElement, toElement, fromOrigin, toOrigin) { 29665 var parentMatrix = (0,_utils_matrix_js__WEBPACK_IMPORTED_MODULE_1__.getGlobalMatrix)(fromElement.parentNode, true, true), 29666 m = parentMatrix.clone().multiply((0,_utils_matrix_js__WEBPACK_IMPORTED_MODULE_1__.getGlobalMatrix)(toElement)), 29667 fromPoint = _originToPoint(fromElement, fromOrigin, parentMatrix), 29668 _originToPoint2 = _originToPoint(toElement, toOrigin, parentMatrix), 29669 x = _originToPoint2.x, 29670 y = _originToPoint2.y, 29671 p; 29672 29673 m.e = m.f = 0; 29674 29675 if (toOrigin === "auto" && toElement.getTotalLength && toElement.tagName.toLowerCase() === "path") { 29676 p = toElement.getAttribute("d").match(_numExp) || []; 29677 p = m.apply({ 29678 x: +p[0], 29679 y: +p[1] 29680 }); 29681 x += p.x; 29682 y += p.y; 29683 } //if (p || (toElement.getBBox && fromElement.getBBox && toElement.ownerSVGElement === fromElement.ownerSVGElement)) { 29684 29685 29686 if (p) { 29687 p = m.apply(toElement.getBBox()); 29688 x -= p.x; 29689 y -= p.y; 29690 } 29691 29692 m.e = x - fromPoint.x; 29693 m.f = y - fromPoint.y; 29694 return m; 29695}, 29696 _align = function _align(rawPath, target, _ref) { 29697 var align = _ref.align, 29698 matrix = _ref.matrix, 29699 offsetX = _ref.offsetX, 29700 offsetY = _ref.offsetY, 29701 alignOrigin = _ref.alignOrigin; 29702 29703 var x = rawPath[0][0], 29704 y = rawPath[0][1], 29705 curX = _getPropNum(target, "x"), 29706 curY = _getPropNum(target, "y"), 29707 alignTarget, 29708 m, 29709 p; 29710 29711 if (!rawPath || !rawPath.length) { 29712 return (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.getRawPath)("M0,0L0,0"); 29713 } 29714 29715 if (align) { 29716 if (align === "self" || (alignTarget = _toArray(align)[0] || target) === target) { 29717 (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.transformRawPath)(rawPath, 1, 0, 0, 1, curX - x, curY - y); 29718 } else { 29719 if (alignOrigin && alignOrigin[2] !== false) { 29720 gsap.set(target, { 29721 transformOrigin: alignOrigin[0] * 100 + "% " + alignOrigin[1] * 100 + "%" 29722 }); 29723 } else { 29724 alignOrigin = [_getPropNum(target, "xPercent") / -100, _getPropNum(target, "yPercent") / -100]; 29725 } 29726 29727 m = _getAlignMatrix(target, alignTarget, alignOrigin, "auto"); 29728 p = m.apply({ 29729 x: x, 29730 y: y 29731 }); 29732 (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.transformRawPath)(rawPath, m.a, m.b, m.c, m.d, curX + m.e - (p.x - m.e), curY + m.f - (p.y - m.f)); 29733 } 29734 } 29735 29736 if (matrix) { 29737 (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.transformRawPath)(rawPath, matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f); 29738 } else if (offsetX || offsetY) { 29739 (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.transformRawPath)(rawPath, 1, 0, 0, 1, offsetX || 0, offsetY || 0); 29740 } 29741 29742 return rawPath; 29743}, 29744 _addDimensionalPropTween = function _addDimensionalPropTween(plugin, target, property, rawPath, pathProperty, forceUnit) { 29745 var cache = target._gsap, 29746 harness = cache.harness, 29747 alias = harness && harness.aliases && harness.aliases[property], 29748 prop = alias && alias.indexOf(",") < 0 ? alias : property, 29749 pt = plugin._pt = new PropTween(plugin._pt, target, prop, 0, 0, _emptyFunc, 0, cache.set(target, prop, plugin)); 29750 pt.u = _getUnit(cache.get(target, prop, forceUnit)) || 0; 29751 pt.path = rawPath; 29752 pt.pp = pathProperty; 29753 29754 plugin._props.push(prop); 29755}, 29756 _sliceModifier = function _sliceModifier(start, end) { 29757 return function (rawPath) { 29758 return start || end !== 1 ? (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.sliceRawPath)(rawPath, start, end) : rawPath; 29759 }; 29760}; 29761 29762var MotionPathPlugin = { 29763 version: "3.12.5", 29764 name: "motionPath", 29765 register: function register(core, Plugin, propTween) { 29766 gsap = core; 29767 _getUnit = gsap.utils.getUnit; 29768 _toArray = gsap.utils.toArray; 29769 _getStyleSaver = gsap.core.getStyleSaver; 29770 29771 _reverting = gsap.core.reverting || function () {}; 29772 29773 PropTween = propTween; 29774 }, 29775 init: function init(target, vars, tween) { 29776 if (!gsap) { 29777 console.warn("Please gsap.registerPlugin(MotionPathPlugin)"); 29778 return false; 29779 } 29780 29781 if (!(typeof vars === "object" && !vars.style) || !vars.path) { 29782 vars = { 29783 path: vars 29784 }; 29785 } 29786 29787 var rawPaths = [], 29788 _vars = vars, 29789 path = _vars.path, 29790 autoRotate = _vars.autoRotate, 29791 unitX = _vars.unitX, 29792 unitY = _vars.unitY, 29793 x = _vars.x, 29794 y = _vars.y, 29795 firstObj = path[0], 29796 slicer = _sliceModifier(vars.start, "end" in vars ? vars.end : 1), 29797 rawPath, 29798 p; 29799 29800 this.rawPaths = rawPaths; 29801 this.target = target; 29802 this.tween = tween; 29803 this.styles = _getStyleSaver && _getStyleSaver(target, "transform"); 29804 29805 if (this.rotate = autoRotate || autoRotate === 0) { 29806 //get the rotational data FIRST so that the setTransform() method is called in the correct order in the render() loop - rotation gets set last. 29807 this.rOffset = parseFloat(autoRotate) || 0; 29808 this.radians = !!vars.useRadians; 29809 this.rProp = vars.rotation || "rotation"; // rotation property 29810 29811 this.rSet = target._gsap.set(target, this.rProp, this); // rotation setter 29812 29813 this.ru = _getUnit(target._gsap.get(target, this.rProp)) || 0; // rotation units 29814 } 29815 29816 if (Array.isArray(path) && !("closed" in path) && typeof firstObj !== "number") { 29817 for (p in firstObj) { 29818 if (!x && ~_xProps.indexOf(p)) { 29819 x = p; 29820 } else if (!y && ~_yProps.indexOf(p)) { 29821 y = p; 29822 } 29823 } 29824 29825 if (x && y) { 29826 //correlated values 29827 rawPaths.push(_segmentToRawPath(this, _populateSegmentFromArray(_populateSegmentFromArray([], path, x, 0), path, y, 1), target, x, y, slicer, vars, unitX || _getUnit(path[0][x]), unitY || _getUnit(path[0][y]))); 29828 } else { 29829 x = y = 0; 29830 } 29831 29832 for (p in firstObj) { 29833 p !== x && p !== y && rawPaths.push(_segmentToRawPath(this, _populateSegmentFromArray([], path, p, 2), target, p, 0, slicer, vars, _getUnit(path[0][p]))); 29834 } 29835 } else { 29836 rawPath = slicer(_align((0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.getRawPath)(vars.path), target, vars)); 29837 (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.cacheRawPathMeasurements)(rawPath, vars.resolution); 29838 rawPaths.push(rawPath); 29839 29840 _addDimensionalPropTween(this, target, vars.x || "x", rawPath, "x", vars.unitX || "px"); 29841 29842 _addDimensionalPropTween(this, target, vars.y || "y", rawPath, "y", vars.unitY || "px"); 29843 } 29844 }, 29845 render: function render(ratio, data) { 29846 var rawPaths = data.rawPaths, 29847 i = rawPaths.length, 29848 pt = data._pt; 29849 29850 if (data.tween._time || !_reverting()) { 29851 if (ratio > 1) { 29852 ratio = 1; 29853 } else if (ratio < 0) { 29854 ratio = 0; 29855 } 29856 29857 while (i--) { 29858 (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.getPositionOnPath)(rawPaths[i], ratio, !i && data.rotate, rawPaths[i]); 29859 } 29860 29861 while (pt) { 29862 pt.set(pt.t, pt.p, pt.path[pt.pp] + pt.u, pt.d, ratio); 29863 pt = pt._next; 29864 } 29865 29866 data.rotate && data.rSet(data.target, data.rProp, rawPaths[0].angle * (data.radians ? _DEG2RAD : 1) + data.rOffset + data.ru, data, ratio); 29867 } else { 29868 data.styles.revert(); 29869 } 29870 }, 29871 getLength: function getLength(path) { 29872 return (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.cacheRawPathMeasurements)((0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.getRawPath)(path)).totalLength; 29873 }, 29874 sliceRawPath: _utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.sliceRawPath, 29875 getRawPath: _utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.getRawPath, 29876 pointsToSegment: _utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.pointsToSegment, 29877 stringToRawPath: _utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.stringToRawPath, 29878 rawPathToString: _utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.rawPathToString, 29879 transformRawPath: _utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.transformRawPath, 29880 getGlobalMatrix: _utils_matrix_js__WEBPACK_IMPORTED_MODULE_1__.getGlobalMatrix, 29881 getPositionOnPath: _utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.getPositionOnPath, 29882 cacheRawPathMeasurements: _utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.cacheRawPathMeasurements, 29883 convertToPath: function convertToPath(targets, swap) { 29884 return _toArray(targets).map(function (target) { 29885 return (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.convertToPath)(target, swap !== false); 29886 }); 29887 }, 29888 convertCoordinates: function convertCoordinates(fromElement, toElement, point) { 29889 var m = (0,_utils_matrix_js__WEBPACK_IMPORTED_MODULE_1__.getGlobalMatrix)(toElement, true, true).multiply((0,_utils_matrix_js__WEBPACK_IMPORTED_MODULE_1__.getGlobalMatrix)(fromElement)); 29890 return point ? m.apply(point) : m; 29891 }, 29892 getAlignMatrix: _getAlignMatrix, 29893 getRelativePosition: function getRelativePosition(fromElement, toElement, fromOrigin, toOrigin) { 29894 var m = _getAlignMatrix(fromElement, toElement, fromOrigin, toOrigin); 29895 29896 return { 29897 x: m.e, 29898 y: m.f 29899 }; 29900 }, 29901 arrayToRawPath: function arrayToRawPath(value, vars) { 29902 vars = vars || {}; 29903 29904 var segment = _populateSegmentFromArray(_populateSegmentFromArray([], value, vars.x || "x", 0), value, vars.y || "y", 1); 29905 29906 vars.relative && _relativize(segment); 29907 return [vars.type === "cubic" ? segment : (0,_utils_paths_js__WEBPACK_IMPORTED_MODULE_0__.pointsToSegment)(segment, vars.curviness)]; 29908 } 29909}; 29910_getGSAP() && gsap.registerPlugin(MotionPathPlugin); 29911 29912 29913/***/ }), 29914
vendor: 26,482 bytes, lines 29915-30624
29915/***/ "./node_modules/gsap/Observer.js": 29916/*!***************************************!*\ 29917 !*** ./node_modules/gsap/Observer.js ***! 29918 \***************************************/ 29919/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 29920 29921"use strict"; 29922__webpack_require__.r(__webpack_exports__); 29923/* harmony export */ __webpack_require__.d(__webpack_exports__, { 29924/* harmony export */ "Observer": () => (/* binding */ Observer), 29925/* harmony export */ "_getProxyProp": () => (/* binding */ _getProxyProp), 29926/* harmony export */ "_getScrollFunc": () => (/* binding */ _getScrollFunc), 29927/* harmony export */ "_getTarget": () => (/* binding */ _getTarget), 29928/* harmony export */ "_getVelocityProp": () => (/* binding */ _getVelocityProp), 29929/* harmony export */ "_horizontal": () => (/* binding */ _horizontal), 29930/* harmony export */ "_isViewport": () => (/* binding */ _isViewport), 29931/* harmony export */ "_proxies": () => (/* binding */ _proxies), 29932/* harmony export */ "_scrollers": () => (/* binding */ _scrollers), 29933/* harmony export */ "_vertical": () => (/* binding */ _vertical), 29934/* harmony export */ "default": () => (/* binding */ Observer) 29935/* harmony export */ }); 29936function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 29937 29938function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 29939 29940/*! 29941 * Observer 3.12.5 29942 * https://gsap.com 29943 * 29944 * @license Copyright 2008-2024, GreenSock. All rights reserved. 29945 * Subject to the terms at https://gsap.com/standard-license or for 29946 * Club GSAP members, the agreement issued with that membership. 29947 * @author: Jack Doyle, [email protected] 29948*/ 29949 29950/* eslint-disable */ 29951var gsap, 29952 _coreInitted, 29953 _clamp, 29954 _win, 29955 _doc, 29956 _docEl, 29957 _body, 29958 _isTouch, 29959 _pointerType, 29960 ScrollTrigger, 29961 _root, 29962 _normalizer, 29963 _eventTypes, 29964 _context, 29965 _getGSAP = function _getGSAP() { 29966 return gsap || typeof window !== "undefined" && (gsap = window.gsap) && gsap.registerPlugin && gsap; 29967}, 29968 _startup = 1, 29969 _observers = [], 29970 _scrollers = [], 29971 _proxies = [], 29972 _getTime = Date.now, 29973 _bridge = function _bridge(name, value) { 29974 return value; 29975}, 29976 _integrate = function _integrate() { 29977 var core = ScrollTrigger.core, 29978 data = core.bridge || {}, 29979 scrollers = core._scrollers, 29980 proxies = core._proxies; 29981 scrollers.push.apply(scrollers, _scrollers); 29982 proxies.push.apply(proxies, _proxies); 29983 _scrollers = scrollers; 29984 _proxies = proxies; 29985 29986 _bridge = function _bridge(name, value) { 29987 return data[name](value); 29988 }; 29989}, 29990 _getProxyProp = function _getProxyProp(element, property) { 29991 return ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property]; 29992}, 29993 _isViewport = function _isViewport(el) { 29994 return !!~_root.indexOf(el); 29995}, 29996 _addListener = function _addListener(element, type, func, passive, capture) { 29997 return element.addEventListener(type, func, { 29998 passive: passive !== false, 29999 capture: !!capture 30000 }); 30001}, 30002 _removeListener = function _removeListener(element, type, func, capture) { 30003 return element.removeEventListener(type, func, !!capture); 30004}, 30005 _scrollLeft = "scrollLeft", 30006 _scrollTop = "scrollTop", 30007 _onScroll = function _onScroll() { 30008 return _normalizer && _normalizer.isPressed || _scrollers.cache++; 30009}, 30010 _scrollCacheFunc = function _scrollCacheFunc(f, doNotCache) { 30011 var cachingFunc = function cachingFunc(value) { 30012 // since reading the scrollTop/scrollLeft/pageOffsetY/pageOffsetX can trigger a layout, this function allows us to cache the value so it only gets read fresh after a "scroll" event fires (or while we're refreshing because that can lengthen the page and alter the scroll position). when "soft" is true, that means don't actually set the scroll, but cache the new value instead (useful in ScrollSmoother) 30013 if (value || value === 0) { 30014 _startup && (_win.history.scrollRestoration = "manual"); // otherwise the new position will get overwritten by the browser onload. 30015 30016 var isNormalizing = _normalizer && _normalizer.isPressed; 30017 value = cachingFunc.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0); //TODO: iOS Bug: if you allow it to go to 0, Safari can start to report super strange (wildly inaccurate) touch positions! 30018 30019 f(value); 30020 cachingFunc.cacheID = _scrollers.cache; 30021 isNormalizing && _bridge("ss", value); // set scroll (notify ScrollTrigger so it can dispatch a "scrollStart" event if necessary 30022 } else if (doNotCache || _scrollers.cache !== cachingFunc.cacheID || _bridge("ref")) { 30023 cachingFunc.cacheID = _scrollers.cache; 30024 cachingFunc.v = f(); 30025 } 30026 30027 return cachingFunc.v + cachingFunc.offset; 30028 }; 30029 30030 cachingFunc.offset = 0; 30031 return f && cachingFunc; 30032}, 30033 _horizontal = { 30034 s: _scrollLeft, 30035 p: "left", 30036 p2: "Left", 30037 os: "right", 30038 os2: "Right", 30039 d: "width", 30040 d2: "Width", 30041 a: "x", 30042 sc: _scrollCacheFunc(function (value) { 30043 return arguments.length ? _win.scrollTo(value, _vertical.sc()) : _win.pageXOffset || _doc[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0; 30044 }) 30045}, 30046 _vertical = { 30047 s: _scrollTop, 30048 p: "top", 30049 p2: "Top", 30050 os: "bottom", 30051 os2: "Bottom", 30052 d: "height", 30053 d2: "Height", 30054 a: "y", 30055 op: _horizontal, 30056 sc: _scrollCacheFunc(function (value) { 30057 return arguments.length ? _win.scrollTo(_horizontal.sc(), value) : _win.pageYOffset || _doc[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0; 30058 }) 30059}, 30060 _getTarget = function _getTarget(t, self) { 30061 return (self && self._ctx && self._ctx.selector || gsap.utils.toArray)(t)[0] || (typeof t === "string" && gsap.config().nullTargetWarn !== false ? console.warn("Element not found:", t) : null); 30062}, 30063 _getScrollFunc = function _getScrollFunc(element, _ref) { 30064 var s = _ref.s, 30065 sc = _ref.sc; 30066 // we store the scroller functions in an alternating sequenced Array like [element, verticalScrollFunc, horizontalScrollFunc, ...] so that we can minimize memory, maximize performance, and we also record the last position as a ".rec" property in order to revert to that after refreshing to ensure things don't shift around. 30067 _isViewport(element) && (element = _doc.scrollingElement || _docEl); 30068 30069 var i = _scrollers.indexOf(element), 30070 offset = sc === _vertical.sc ? 1 : 2; 30071 30072 !~i && (i = _scrollers.push(element) - 1); 30073 _scrollers[i + offset] || _addListener(element, "scroll", _onScroll); // clear the cache when a scroll occurs 30074 30075 var prev = _scrollers[i + offset], 30076 func = prev || (_scrollers[i + offset] = _scrollCacheFunc(_getProxyProp(element, s), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function (value) { 30077 return arguments.length ? element[s] = value : element[s]; 30078 }))); 30079 func.target = element; 30080 prev || (func.smooth = gsap.getProperty(element, "scrollBehavior") === "smooth"); // only set it the first time (don't reset every time a scrollFunc is requested because perhaps it happens during a refresh() when it's disabled in ScrollTrigger. 30081 30082 return func; 30083}, 30084 _getVelocityProp = function _getVelocityProp(value, minTimeRefresh, useDelta) { 30085 var v1 = value, 30086 v2 = value, 30087 t1 = _getTime(), 30088 t2 = t1, 30089 min = minTimeRefresh || 50, 30090 dropToZeroTime = Math.max(500, min * 3), 30091 update = function update(value, force) { 30092 var t = _getTime(); 30093 30094 if (force || t - t1 > min) { 30095 v2 = v1; 30096 v1 = value; 30097 t2 = t1; 30098 t1 = t; 30099 } else if (useDelta) { 30100 v1 += value; 30101 } else { 30102 // not totally necessary, but makes it a bit more accurate by adjusting the v1 value according to the new slope. This way we're not just ignoring the incoming data. Removing for now because it doesn't seem to make much practical difference and it's probably not worth the kb. 30103 v1 = v2 + (value - v2) / (t - t2) * (t1 - t2); 30104 } 30105 }, 30106 reset = function reset() { 30107 v2 = v1 = useDelta ? 0 : v1; 30108 t2 = t1 = 0; 30109 }, 30110 getVelocity = function getVelocity(latestValue) { 30111 var tOld = t2, 30112 vOld = v2, 30113 t = _getTime(); 30114 30115 (latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue); 30116 return t1 === t2 || t - t2 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t : t1) - tOld) * 1000; 30117 }; 30118 30119 return { 30120 update: update, 30121 reset: reset, 30122 getVelocity: getVelocity 30123 }; 30124}, 30125 _getEvent = function _getEvent(e, preventDefault) { 30126 preventDefault && !e._gsapAllow && e.preventDefault(); 30127 return e.changedTouches ? e.changedTouches[0] : e; 30128}, 30129 _getAbsoluteMax = function _getAbsoluteMax(a) { 30130 var max = Math.max.apply(Math, a), 30131 min = Math.min.apply(Math, a); 30132 return Math.abs(max) >= Math.abs(min) ? max : min; 30133}, 30134 _setScrollTrigger = function _setScrollTrigger() { 30135 ScrollTrigger = gsap.core.globals().ScrollTrigger; 30136 ScrollTrigger && ScrollTrigger.core && _integrate(); 30137}, 30138 _initCore = function _initCore(core) { 30139 gsap = core || _getGSAP(); 30140 30141 if (!_coreInitted && gsap && typeof document !== "undefined" && document.body) { 30142 _win = window; 30143 _doc = document; 30144 _docEl = _doc.documentElement; 30145 _body = _doc.body; 30146 _root = [_win, _doc, _docEl, _body]; 30147 _clamp = gsap.utils.clamp; 30148 30149 _context = gsap.core.context || function () {}; 30150 30151 _pointerType = "onpointerenter" in _body ? "pointer" : "mouse"; // isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer. 30152 30153 _isTouch = Observer.isTouch = _win.matchMedia && _win.matchMedia("(hover: none), (pointer: coarse)").matches ? 1 : "ontouchstart" in _win || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0; 30154 _eventTypes = Observer.eventTypes = ("ontouchstart" in _docEl ? "touchstart,touchmove,touchcancel,touchend" : !("onpointerdown" in _docEl) ? "mousedown,mousemove,mouseup,mouseup" : "pointerdown,pointermove,pointercancel,pointerup").split(","); 30155 setTimeout(function () { 30156 return _startup = 0; 30157 }, 500); 30158 30159 _setScrollTrigger(); 30160 30161 _coreInitted = 1; 30162 } 30163 30164 return _coreInitted; 30165}; 30166 30167_horizontal.op = _vertical; 30168_scrollers.cache = 0; 30169var Observer = /*#__PURE__*/function () { 30170 function Observer(vars) { 30171 this.init(vars); 30172 } 30173 30174 var _proto = Observer.prototype; 30175 30176 _proto.init = function init(vars) { 30177 _coreInitted || _initCore(gsap) || console.warn("Please gsap.registerPlugin(Observer)"); 30178 ScrollTrigger || _setScrollTrigger(); 30179 var tolerance = vars.tolerance, 30180 dragMinimum = vars.dragMinimum, 30181 type = vars.type, 30182 target = vars.target, 30183 lineHeight = vars.lineHeight, 30184 debounce = vars.debounce, 30185 preventDefault = vars.preventDefault, 30186 onStop = vars.onStop, 30187 onStopDelay = vars.onStopDelay, 30188 ignore = vars.ignore, 30189 wheelSpeed = vars.wheelSpeed, 30190 event = vars.event, 30191 onDragStart = vars.onDragStart, 30192 onDragEnd = vars.onDragEnd, 30193 onDrag = vars.onDrag, 30194 onPress = vars.onPress, 30195 onRelease = vars.onRelease, 30196 onRight = vars.onRight, 30197 onLeft = vars.onLeft, 30198 onUp = vars.onUp, 30199 onDown = vars.onDown, 30200 onChangeX = vars.onChangeX, 30201 onChangeY = vars.onChangeY, 30202 onChange = vars.onChange, 30203 onToggleX = vars.onToggleX, 30204 onToggleY = vars.onToggleY, 30205 onHover = vars.onHover, 30206 onHoverEnd = vars.onHoverEnd, 30207 onMove = vars.onMove, 30208 ignoreCheck = vars.ignoreCheck, 30209 isNormalizer = vars.isNormalizer, 30210 onGestureStart = vars.onGestureStart, 30211 onGestureEnd = vars.onGestureEnd, 30212 onWheel = vars.onWheel, 30213 onEnable = vars.onEnable, 30214 onDisable = vars.onDisable, 30215 onClick = vars.onClick, 30216 scrollSpeed = vars.scrollSpeed, 30217 capture = vars.capture, 30218 allowClicks = vars.allowClicks, 30219 lockAxis = vars.lockAxis, 30220 onLockAxis = vars.onLockAxis; 30221 this.target = target = _getTarget(target) || _docEl; 30222 this.vars = vars; 30223 ignore && (ignore = gsap.utils.toArray(ignore)); 30224 tolerance = tolerance || 1e-9; 30225 dragMinimum = dragMinimum || 0; 30226 wheelSpeed = wheelSpeed || 1; 30227 scrollSpeed = scrollSpeed || 1; 30228 type = type || "wheel,touch,pointer"; 30229 debounce = debounce !== false; 30230 lineHeight || (lineHeight = parseFloat(_win.getComputedStyle(_body).lineHeight) || 22); // note: browser may report "normal", so default to 22. 30231 30232 var id, 30233 onStopDelayedCall, 30234 dragged, 30235 moved, 30236 wheeled, 30237 locked, 30238 axis, 30239 self = this, 30240 prevDeltaX = 0, 30241 prevDeltaY = 0, 30242 passive = vars.passive || !preventDefault, 30243 scrollFuncX = _getScrollFunc(target, _horizontal), 30244 scrollFuncY = _getScrollFunc(target, _vertical), 30245 scrollX = scrollFuncX(), 30246 scrollY = scrollFuncY(), 30247 limitToTouch = ~type.indexOf("touch") && !~type.indexOf("pointer") && _eventTypes[0] === "pointerdown", 30248 // for devices that accommodate mouse events and touch events, we need to distinguish. 30249 isViewport = _isViewport(target), 30250 ownerDoc = target.ownerDocument || _doc, 30251 deltaX = [0, 0, 0], 30252 // wheel, scroll, pointer/touch 30253 deltaY = [0, 0, 0], 30254 onClickTime = 0, 30255 clickCapture = function clickCapture() { 30256 return onClickTime = _getTime(); 30257 }, 30258 _ignoreCheck = function _ignoreCheck(e, isPointerOrTouch) { 30259 return (self.event = e) && ignore && ~ignore.indexOf(e.target) || isPointerOrTouch && limitToTouch && e.pointerType !== "touch" || ignoreCheck && ignoreCheck(e, isPointerOrTouch); 30260 }, 30261 onStopFunc = function onStopFunc() { 30262 self._vx.reset(); 30263 30264 self._vy.reset(); 30265 30266 onStopDelayedCall.pause(); 30267 onStop && onStop(self); 30268 }, 30269 update = function update() { 30270 var dx = self.deltaX = _getAbsoluteMax(deltaX), 30271 dy = self.deltaY = _getAbsoluteMax(deltaY), 30272 changedX = Math.abs(dx) >= tolerance, 30273 changedY = Math.abs(dy) >= tolerance; 30274 30275 onChange && (changedX || changedY) && onChange(self, dx, dy, deltaX, deltaY); // in ScrollTrigger.normalizeScroll(), we need to know if it was touch/pointer so we need access to the deltaX/deltaY Arrays before we clear them out. 30276 30277 if (changedX) { 30278 onRight && self.deltaX > 0 && onRight(self); 30279 onLeft && self.deltaX < 0 && onLeft(self); 30280 onChangeX && onChangeX(self); 30281 onToggleX && self.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self); 30282 prevDeltaX = self.deltaX; 30283 deltaX[0] = deltaX[1] = deltaX[2] = 0; 30284 } 30285 30286 if (changedY) { 30287 onDown && self.deltaY > 0 && onDown(self); 30288 onUp && self.deltaY < 0 && onUp(self); 30289 onChangeY && onChangeY(self); 30290 onToggleY && self.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self); 30291 prevDeltaY = self.deltaY; 30292 deltaY[0] = deltaY[1] = deltaY[2] = 0; 30293 } 30294 30295 if (moved || dragged) { 30296 onMove && onMove(self); 30297 30298 if (dragged) { 30299 onDrag(self); 30300 dragged = false; 30301 } 30302 30303 moved = false; 30304 } 30305 30306 locked && !(locked = false) && onLockAxis && onLockAxis(self); 30307 30308 if (wheeled) { 30309 onWheel(self); 30310 wheeled = false; 30311 } 30312 30313 id = 0; 30314 }, 30315 onDelta = function onDelta(x, y, index) { 30316 deltaX[index] += x; 30317 deltaY[index] += y; 30318 30319 self._vx.update(x); 30320 30321 self._vy.update(y); 30322 30323 debounce ? id || (id = requestAnimationFrame(update)) : update(); 30324 }, 30325 onTouchOrPointerDelta = function onTouchOrPointerDelta(x, y) { 30326 if (lockAxis && !axis) { 30327 self.axis = axis = Math.abs(x) > Math.abs(y) ? "x" : "y"; 30328 locked = true; 30329 } 30330 30331 if (axis !== "y") { 30332 deltaX[2] += x; 30333 30334 self._vx.update(x, true); // update the velocity as frequently as possible instead of in the debounced function so that very quick touch-scrolls (flicks) feel natural. If it's the mouse/touch/pointer, force it so that we get snappy/accurate momentum scroll. 30335 30336 } 30337 30338 if (axis !== "x") { 30339 deltaY[2] += y; 30340 30341 self._vy.update(y, true); 30342 } 30343 30344 debounce ? id || (id = requestAnimationFrame(update)) : update(); 30345 }, 30346 _onDrag = function _onDrag(e) { 30347 if (_ignoreCheck(e, 1)) { 30348 return; 30349 } 30350 30351 e = _getEvent(e, preventDefault); 30352 var x = e.clientX, 30353 y = e.clientY, 30354 dx = x - self.x, 30355 dy = y - self.y, 30356 isDragging = self.isDragging; 30357 self.x = x; 30358 self.y = y; 30359 30360 if (isDragging || Math.abs(self.startX - x) >= dragMinimum || Math.abs(self.startY - y) >= dragMinimum) { 30361 onDrag && (dragged = true); 30362 isDragging || (self.isDragging = true); 30363 onTouchOrPointerDelta(dx, dy); 30364 isDragging || onDragStart && onDragStart(self); 30365 } 30366 }, 30367 _onPress = self.onPress = function (e) { 30368 if (_ignoreCheck(e, 1) || e && e.button) { 30369 return; 30370 } 30371 30372 self.axis = axis = null; 30373 onStopDelayedCall.pause(); 30374 self.isPressed = true; 30375 e = _getEvent(e); // note: may need to preventDefault(?) Won't side-scroll on iOS Safari if we do, though. 30376 30377 prevDeltaX = prevDeltaY = 0; 30378 self.startX = self.x = e.clientX; 30379 self.startY = self.y = e.clientY; 30380 30381 self._vx.reset(); // otherwise the t2 may be stale if the user touches and flicks super fast and releases in less than 2 requestAnimationFrame ticks, causing velocity to be 0. 30382 30383 30384 self._vy.reset(); 30385 30386 _addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, passive, true); 30387 30388 self.deltaX = self.deltaY = 0; 30389 onPress && onPress(self); 30390 }, 30391 _onRelease = self.onRelease = function (e) { 30392 if (_ignoreCheck(e, 1)) { 30393 return; 30394 } 30395 30396 _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true); 30397 30398 var isTrackingDrag = !isNaN(self.y - self.startY), 30399 wasDragging = self.isDragging, 30400 isDragNotClick = wasDragging && (Math.abs(self.x - self.startX) > 3 || Math.abs(self.y - self.startY) > 3), 30401 // some touch devices need some wiggle room in terms of sensing clicks - the finger may move a few pixels. 30402 eventData = _getEvent(e); 30403 30404 if (!isDragNotClick && isTrackingDrag) { 30405 self._vx.reset(); 30406 30407 self._vy.reset(); //if (preventDefault && allowClicks && self.isPressed) { // check isPressed because in a rare edge case, the inputObserver in ScrollTrigger may stopPropagation() on the press/drag, so the onRelease may get fired without the onPress/onDrag ever getting called, thus it could trigger a click to occur on a link after scroll-dragging it. 30408 30409 30410 if (preventDefault && allowClicks) { 30411 gsap.delayedCall(0.08, function () { 30412 // some browsers (like Firefox) won't trust script-generated clicks, so if the user tries to click on a video to play it, for example, it simply won't work. Since a regular "click" event will most likely be generated anyway (one that has its isTrusted flag set to true), we must slightly delay our script-generated click so that the "real"/trusted one is prioritized. Remember, when there are duplicate events in quick succession, we suppress all but the first one. Some browsers don't even trigger the "real" one at all, so our synthetic one is a safety valve that ensures that no matter what, a click event does get dispatched. 30413 if (_getTime() - onClickTime > 300 && !e.defaultPrevented) { 30414 if (e.target.click) { 30415 //some browsers (like mobile Safari) don't properly trigger the click event 30416 e.target.click(); 30417 } else if (ownerDoc.createEvent) { 30418 var syntheticEvent = ownerDoc.createEvent("MouseEvents"); 30419 syntheticEvent.initMouseEvent("click", true, true, _win, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null); 30420 e.target.dispatchEvent(syntheticEvent); 30421 } 30422 } 30423 }); 30424 } 30425 } 30426 30427 self.isDragging = self.isGesturing = self.isPressed = false; 30428 onStop && wasDragging && !isNormalizer && onStopDelayedCall.restart(true); 30429 onDragEnd && wasDragging && onDragEnd(self); 30430 onRelease && onRelease(self, isDragNotClick); 30431 }, 30432 _onGestureStart = function _onGestureStart(e) { 30433 return e.touches && e.touches.length > 1 && (self.isGesturing = true) && onGestureStart(e, self.isDragging); 30434 }, 30435 _onGestureEnd = function _onGestureEnd() { 30436 return (self.isGesturing = false) || onGestureEnd(self); 30437 }, 30438 onScroll = function onScroll(e) { 30439 if (_ignoreCheck(e)) { 30440 return; 30441 } 30442 30443 var x = scrollFuncX(), 30444 y = scrollFuncY(); 30445 onDelta((x - scrollX) * scrollSpeed, (y - scrollY) * scrollSpeed, 1); 30446 scrollX = x; 30447 scrollY = y; 30448 onStop && onStopDelayedCall.restart(true); 30449 }, 30450 _onWheel = function _onWheel(e) { 30451 if (_ignoreCheck(e)) { 30452 return; 30453 } 30454 30455 e = _getEvent(e, preventDefault); 30456 onWheel && (wheeled = true); 30457 var multiplier = (e.deltaMode === 1 ? lineHeight : e.deltaMode === 2 ? _win.innerHeight : 1) * wheelSpeed; 30458 onDelta(e.deltaX * multiplier, e.deltaY * multiplier, 0); 30459 onStop && !isNormalizer && onStopDelayedCall.restart(true); 30460 }, 30461 _onMove = function _onMove(e) { 30462 if (_ignoreCheck(e)) { 30463 return; 30464 } 30465 30466 var x = e.clientX, 30467 y = e.clientY, 30468 dx = x - self.x, 30469 dy = y - self.y; 30470 self.x = x; 30471 self.y = y; 30472 moved = true; 30473 onStop && onStopDelayedCall.restart(true); 30474 (dx || dy) && onTouchOrPointerDelta(dx, dy); 30475 }, 30476 _onHover = function _onHover(e) { 30477 self.event = e; 30478 onHover(self); 30479 }, 30480 _onHoverEnd = function _onHoverEnd(e) { 30481 self.event = e; 30482 onHoverEnd(self); 30483 }, 30484 _onClick = function _onClick(e) { 30485 return _ignoreCheck(e) || _getEvent(e, preventDefault) && onClick(self); 30486 }; 30487 30488 onStopDelayedCall = self._dc = gsap.delayedCall(onStopDelay || 0.25, onStopFunc).pause(); 30489 self.deltaX = self.deltaY = 0; 30490 self._vx = _getVelocityProp(0, 50, true); 30491 self._vy = _getVelocityProp(0, 50, true); 30492 self.scrollX = scrollFuncX; 30493 self.scrollY = scrollFuncY; 30494 self.isDragging = self.isGesturing = self.isPressed = false; 30495 30496 _context(this); 30497 30498 self.enable = function (e) { 30499 if (!self.isEnabled) { 30500 _addListener(isViewport ? ownerDoc : target, "scroll", _onScroll); 30501 30502 type.indexOf("scroll") >= 0 && _addListener(isViewport ? ownerDoc : target, "scroll", onScroll, passive, capture); 30503 type.indexOf("wheel") >= 0 && _addListener(target, "wheel", _onWheel, passive, capture); 30504 30505 if (type.indexOf("touch") >= 0 && _isTouch || type.indexOf("pointer") >= 0) { 30506 _addListener(target, _eventTypes[0], _onPress, passive, capture); 30507 30508 _addListener(ownerDoc, _eventTypes[2], _onRelease); 30509 30510 _addListener(ownerDoc, _eventTypes[3], _onRelease); 30511 30512 allowClicks && _addListener(target, "click", clickCapture, true, true); 30513 onClick && _addListener(target, "click", _onClick); 30514 onGestureStart && _addListener(ownerDoc, "gesturestart", _onGestureStart); 30515 onGestureEnd && _addListener(ownerDoc, "gestureend", _onGestureEnd); 30516 onHover && _addListener(target, _pointerType + "enter", _onHover); 30517 onHoverEnd && _addListener(target, _pointerType + "leave", _onHoverEnd); 30518 onMove && _addListener(target, _pointerType + "move", _onMove); 30519 } 30520 30521 self.isEnabled = true; 30522 e && e.type && _onPress(e); 30523 onEnable && onEnable(self); 30524 } 30525 30526 return self; 30527 }; 30528 30529 self.disable = function () { 30530 if (self.isEnabled) { 30531 // only remove the _onScroll listener if there aren't any others that rely on the functionality. 30532 _observers.filter(function (o) { 30533 return o !== self && _isViewport(o.target); 30534 }).length || _removeListener(isViewport ? ownerDoc : target, "scroll", _onScroll); 30535 30536 if (self.isPressed) { 30537 self._vx.reset(); 30538 30539 self._vy.reset(); 30540 30541 _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true); 30542 } 30543 30544 _removeListener(isViewport ? ownerDoc : target, "scroll", onScroll, capture); 30545 30546 _removeListener(target, "wheel", _onWheel, capture); 30547 30548 _removeListener(target, _eventTypes[0], _onPress, capture); 30549 30550 _removeListener(ownerDoc, _eventTypes[2], _onRelease); 30551 30552 _removeListener(ownerDoc, _eventTypes[3], _onRelease); 30553 30554 _removeListener(target, "click", clickCapture, true); 30555 30556 _removeListener(target, "click", _onClick); 30557 30558 _removeListener(ownerDoc, "gesturestart", _onGestureStart); 30559 30560 _removeListener(ownerDoc, "gestureend", _onGestureEnd); 30561 30562 _removeListener(target, _pointerType + "enter", _onHover); 30563 30564 _removeListener(target, _pointerType + "leave", _onHoverEnd); 30565 30566 _removeListener(target, _pointerType + "move", _onMove); 30567 30568 self.isEnabled = self.isPressed = self.isDragging = false; 30569 onDisable && onDisable(self); 30570 } 30571 }; 30572 30573 self.kill = self.revert = function () { 30574 self.disable(); 30575 30576 var i = _observers.indexOf(self); 30577 30578 i >= 0 && _observers.splice(i, 1); 30579 _normalizer === self && (_normalizer = 0); 30580 }; 30581 30582 _observers.push(self); 30583 30584 isNormalizer && _isViewport(target) && (_normalizer = self); 30585 self.enable(event); 30586 }; 30587 30588 _createClass(Observer, [{ 30589 key: "velocityX", 30590 get: function get() { 30591 return this._vx.getVelocity(); 30592 } 30593 }, { 30594 key: "velocityY", 30595 get: function get() { 30596 return this._vy.getVelocity(); 30597 } 30598 }]); 30599 30600 return Observer; 30601}(); 30602Observer.version = "3.12.5"; 30603 30604Observer.create = function (vars) { 30605 return new Observer(vars); 30606}; 30607 30608Observer.register = _initCore; 30609 30610Observer.getAll = function () { 30611 return _observers.slice(); 30612}; 30613 30614Observer.getById = function (id) { 30615 return _observers.filter(function (o) { 30616 return o.vars.id === id; 30617 })[0]; 30618}; 30619 30620_getGSAP() && gsap.registerPlugin(Observer); 30621 30622 30623/***/ }), 30624
vendor: 15,468 bytes, lines 30625-31100
30625/***/ "./node_modules/gsap/PixiPlugin.js": 30626/*!*****************************************!*\ 30627 !*** ./node_modules/gsap/PixiPlugin.js ***! 30628 \*****************************************/ 30629/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 30630 30631"use strict"; 30632__webpack_require__.r(__webpack_exports__); 30633/* harmony export */ __webpack_require__.d(__webpack_exports__, { 30634/* harmony export */ "PixiPlugin": () => (/* binding */ PixiPlugin), 30635/* harmony export */ "default": () => (/* binding */ PixiPlugin) 30636/* harmony export */ }); 30637/*! 30638 * PixiPlugin 3.12.5 30639 * https://gsap.com 30640 * 30641 * @license Copyright 2008-2024, GreenSock. All rights reserved. 30642 * Subject to the terms at https://gsap.com/standard-license or for 30643 * Club GSAP members, the agreement issued with that membership. 30644 * @author: Jack Doyle, [email protected] 30645*/ 30646 30647/* eslint-disable */ 30648var gsap, 30649 _splitColor, 30650 _coreInitted, 30651 _PIXI, 30652 PropTween, 30653 _getSetter, 30654 _isV4, 30655 _windowExists = function _windowExists() { 30656 return typeof window !== "undefined"; 30657}, 30658 _getGSAP = function _getGSAP() { 30659 return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap; 30660}, 30661 _isFunction = function _isFunction(value) { 30662 return typeof value === "function"; 30663}, 30664 _warn = function _warn(message) { 30665 return console.warn(message); 30666}, 30667 _idMatrix = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0], 30668 _lumR = 0.212671, 30669 _lumG = 0.715160, 30670 _lumB = 0.072169, 30671 _filterClass = function _filterClass(name) { 30672 return _isFunction(_PIXI[name]) ? _PIXI[name] : _PIXI.filters[name]; 30673}, 30674 // in PIXI 7.1, filters moved from PIXI.filters to just PIXI 30675_applyMatrix = function _applyMatrix(m, m2) { 30676 var temp = [], 30677 i = 0, 30678 z = 0, 30679 y, 30680 x; 30681 30682 for (y = 0; y < 4; y++) { 30683 for (x = 0; x < 5; x++) { 30684 z = x === 4 ? m[i + 4] : 0; 30685 temp[i + x] = m[i] * m2[x] + m[i + 1] * m2[x + 5] + m[i + 2] * m2[x + 10] + m[i + 3] * m2[x + 15] + z; 30686 } 30687 30688 i += 5; 30689 } 30690 30691 return temp; 30692}, 30693 _setSaturation = function _setSaturation(m, n) { 30694 var inv = 1 - n, 30695 r = inv * _lumR, 30696 g = inv * _lumG, 30697 b = inv * _lumB; 30698 return _applyMatrix([r + n, g, b, 0, 0, r, g + n, b, 0, 0, r, g, b + n, 0, 0, 0, 0, 0, 1, 0], m); 30699}, 30700 _colorize = function _colorize(m, color, amount) { 30701 var c = _splitColor(color), 30702 r = c[0] / 255, 30703 g = c[1] / 255, 30704 b = c[2] / 255, 30705 inv = 1 - amount; 30706 30707 return _applyMatrix([inv + amount * r * _lumR, amount * r * _lumG, amount * r * _lumB, 0, 0, amount * g * _lumR, inv + amount * g * _lumG, amount * g * _lumB, 0, 0, amount * b * _lumR, amount * b * _lumG, inv + amount * b * _lumB, 0, 0, 0, 0, 0, 1, 0], m); 30708}, 30709 _setHue = function _setHue(m, n) { 30710 n *= Math.PI / 180; 30711 var c = Math.cos(n), 30712 s = Math.sin(n); 30713 return _applyMatrix([_lumR + c * (1 - _lumR) + s * -_lumR, _lumG + c * -_lumG + s * -_lumG, _lumB + c * -_lumB + s * (1 - _lumB), 0, 0, _lumR + c * -_lumR + s * 0.143, _lumG + c * (1 - _lumG) + s * 0.14, _lumB + c * -_lumB + s * -0.283, 0, 0, _lumR + c * -_lumR + s * -(1 - _lumR), _lumG + c * -_lumG + s * _lumG, _lumB + c * (1 - _lumB) + s * _lumB, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], m); 30714}, 30715 _setContrast = function _setContrast(m, n) { 30716 return _applyMatrix([n, 0, 0, 0, 0.5 * (1 - n), 0, n, 0, 0, 0.5 * (1 - n), 0, 0, n, 0, 0.5 * (1 - n), 0, 0, 0, 1, 0], m); 30717}, 30718 _getFilter = function _getFilter(target, type) { 30719 var filterClass = _filterClass(type), 30720 filters = target.filters || [], 30721 i = filters.length, 30722 filter; 30723 30724 filterClass || _warn(type + " not found. PixiPlugin.registerPIXI(PIXI)"); 30725 30726 while (--i > -1) { 30727 if (filters[i] instanceof filterClass) { 30728 return filters[i]; 30729 } 30730 } 30731 30732 filter = new filterClass(); 30733 30734 if (type === "BlurFilter") { 30735 filter.blur = 0; 30736 } 30737 30738 filters.push(filter); 30739 target.filters = filters; 30740 return filter; 30741}, 30742 _addColorMatrixFilterCacheTween = function _addColorMatrixFilterCacheTween(p, plugin, cache, vars) { 30743 //we cache the ColorMatrixFilter components in a _gsColorMatrixFilter object attached to the target object so that it's easy to grab the current value at any time. 30744 plugin.add(cache, p, cache[p], vars[p]); 30745 30746 plugin._props.push(p); 30747}, 30748 _applyBrightnessToMatrix = function _applyBrightnessToMatrix(brightness, matrix) { 30749 var filterClass = _filterClass("ColorMatrixFilter"), 30750 temp = new filterClass(); 30751 30752 temp.matrix = matrix; 30753 temp.brightness(brightness, true); 30754 return temp.matrix; 30755}, 30756 _copy = function _copy(obj) { 30757 var copy = {}, 30758 p; 30759 30760 for (p in obj) { 30761 copy[p] = obj[p]; 30762 } 30763 30764 return copy; 30765}, 30766 _CMFdefaults = { 30767 contrast: 1, 30768 saturation: 1, 30769 colorizeAmount: 0, 30770 colorize: "rgb(255,255,255)", 30771 hue: 0, 30772 brightness: 1 30773}, 30774 _parseColorMatrixFilter = function _parseColorMatrixFilter(target, v, pg) { 30775 var filter = _getFilter(target, "ColorMatrixFilter"), 30776 cache = target._gsColorMatrixFilter = target._gsColorMatrixFilter || _copy(_CMFdefaults), 30777 combine = v.combineCMF && !("colorMatrixFilter" in v && !v.colorMatrixFilter), 30778 i, 30779 matrix, 30780 startMatrix; 30781 30782 startMatrix = filter.matrix; 30783 30784 if (v.resolution) { 30785 filter.resolution = v.resolution; 30786 } 30787 30788 if (v.matrix && v.matrix.length === startMatrix.length) { 30789 matrix = v.matrix; 30790 30791 if (cache.contrast !== 1) { 30792 _addColorMatrixFilterCacheTween("contrast", pg, cache, _CMFdefaults); 30793 } 30794 30795 if (cache.hue) { 30796 _addColorMatrixFilterCacheTween("hue", pg, cache, _CMFdefaults); 30797 } 30798 30799 if (cache.brightness !== 1) { 30800 _addColorMatrixFilterCacheTween("brightness", pg, cache, _CMFdefaults); 30801 } 30802 30803 if (cache.colorizeAmount) { 30804 _addColorMatrixFilterCacheTween("colorize", pg, cache, _CMFdefaults); 30805 30806 _addColorMatrixFilterCacheTween("colorizeAmount", pg, cache, _CMFdefaults); 30807 } 30808 30809 if (cache.saturation !== 1) { 30810 _addColorMatrixFilterCacheTween("saturation", pg, cache, _CMFdefaults); 30811 } 30812 } else { 30813 matrix = _idMatrix.slice(); 30814 30815 if (v.contrast != null) { 30816 matrix = _setContrast(matrix, +v.contrast); 30817 30818 _addColorMatrixFilterCacheTween("contrast", pg, cache, v); 30819 } else if (cache.contrast !== 1) { 30820 if (combine) { 30821 matrix = _setContrast(matrix, cache.contrast); 30822 } else { 30823 _addColorMatrixFilterCacheTween("contrast", pg, cache, _CMFdefaults); 30824 } 30825 } 30826 30827 if (v.hue != null) { 30828 matrix = _setHue(matrix, +v.hue); 30829 30830 _addColorMatrixFilterCacheTween("hue", pg, cache, v); 30831 } else if (cache.hue) { 30832 if (combine) { 30833 matrix = _setHue(matrix, cache.hue); 30834 } else { 30835 _addColorMatrixFilterCacheTween("hue", pg, cache, _CMFdefaults); 30836 } 30837 } 30838 30839 if (v.brightness != null) { 30840 matrix = _applyBrightnessToMatrix(+v.brightness, matrix); 30841 30842 _addColorMatrixFilterCacheTween("brightness", pg, cache, v); 30843 } else if (cache.brightness !== 1) { 30844 if (combine) { 30845 matrix = _applyBrightnessToMatrix(cache.brightness, matrix); 30846 } else { 30847 _addColorMatrixFilterCacheTween("brightness", pg, cache, _CMFdefaults); 30848 } 30849 } 30850 30851 if (v.colorize != null) { 30852 v.colorizeAmount = "colorizeAmount" in v ? +v.colorizeAmount : 1; 30853 matrix = _colorize(matrix, v.colorize, v.colorizeAmount); 30854 30855 _addColorMatrixFilterCacheTween("colorize", pg, cache, v); 30856 30857 _addColorMatrixFilterCacheTween("colorizeAmount", pg, cache, v); 30858 } else if (cache.colorizeAmount) { 30859 if (combine) { 30860 matrix = _colorize(matrix, cache.colorize, cache.colorizeAmount); 30861 } else { 30862 _addColorMatrixFilterCacheTween("colorize", pg, cache, _CMFdefaults); 30863 30864 _addColorMatrixFilterCacheTween("colorizeAmount", pg, cache, _CMFdefaults); 30865 } 30866 } 30867 30868 if (v.saturation != null) { 30869 matrix = _setSaturation(matrix, +v.saturation); 30870 30871 _addColorMatrixFilterCacheTween("saturation", pg, cache, v); 30872 } else if (cache.saturation !== 1) { 30873 if (combine) { 30874 matrix = _setSaturation(matrix, cache.saturation); 30875 } else { 30876 _addColorMatrixFilterCacheTween("saturation", pg, cache, _CMFdefaults); 30877 } 30878 } 30879 } 30880 30881 i = matrix.length; 30882 30883 while (--i > -1) { 30884 if (matrix[i] !== startMatrix[i]) { 30885 pg.add(startMatrix, i, startMatrix[i], matrix[i], "colorMatrixFilter"); 30886 } 30887 } 30888 30889 pg._props.push("colorMatrixFilter"); 30890}, 30891 _renderColor = function _renderColor(ratio, _ref) { 30892 var t = _ref.t, 30893 p = _ref.p, 30894 color = _ref.color, 30895 set = _ref.set; 30896 set(t, p, color[0] << 16 | color[1] << 8 | color[2]); 30897}, 30898 _renderDirtyCache = function _renderDirtyCache(ratio, _ref2) { 30899 var g = _ref2.g; 30900 30901 if (g) { 30902 //in order for PixiJS to actually redraw GraphicsData, we've gotta increment the "dirty" and "clearDirty" values. If we don't do this, the values will be tween properly, but not rendered. 30903 g.dirty++; 30904 g.clearDirty++; 30905 } 30906}, 30907 _renderAutoAlpha = function _renderAutoAlpha(ratio, data) { 30908 data.t.visible = !!data.t.alpha; 30909}, 30910 _addColorTween = function _addColorTween(target, p, value, plugin) { 30911 var currentValue = target[p], 30912 startColor = _splitColor(_isFunction(currentValue) ? target[p.indexOf("set") || !_isFunction(target["get" + p.substr(3)]) ? p : "get" + p.substr(3)]() : currentValue), 30913 endColor = _splitColor(value); 30914 30915 plugin._pt = new PropTween(plugin._pt, target, p, 0, 0, _renderColor, { 30916 t: target, 30917 p: p, 30918 color: startColor, 30919 set: _getSetter(target, p) 30920 }); 30921 plugin.add(startColor, 0, startColor[0], endColor[0]); 30922 plugin.add(startColor, 1, startColor[1], endColor[1]); 30923 plugin.add(startColor, 2, startColor[2], endColor[2]); 30924}, 30925 _colorProps = { 30926 tint: 1, 30927 lineColor: 1, 30928 fillColor: 1 30929}, 30930 _xyContexts = "position,scale,skew,pivot,anchor,tilePosition,tileScale".split(","), 30931 _contexts = { 30932 x: "position", 30933 y: "position", 30934 tileX: "tilePosition", 30935 tileY: "tilePosition" 30936}, 30937 _colorMatrixFilterProps = { 30938 colorMatrixFilter: 1, 30939 saturation: 1, 30940 contrast: 1, 30941 hue: 1, 30942 colorize: 1, 30943 colorizeAmount: 1, 30944 brightness: 1, 30945 combineCMF: 1 30946}, 30947 _DEG2RAD = Math.PI / 180, 30948 _isString = function _isString(value) { 30949 return typeof value === "string"; 30950}, 30951 _degreesToRadians = function _degreesToRadians(value) { 30952 return _isString(value) && value.charAt(1) === "=" ? value.substr(0, 2) + parseFloat(value.substr(2)) * _DEG2RAD : value * _DEG2RAD; 30953}, 30954 _renderPropWithEnd = function _renderPropWithEnd(ratio, data) { 30955 return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 100000) / 100000, data); 30956}, 30957 _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue, radians) { 30958 var cap = 360 * (radians ? _DEG2RAD : 1), 30959 isString = _isString(endValue), 30960 relative = isString && endValue.charAt(1) === "=" ? +(endValue.charAt(0) + "1") : 0, 30961 endNum = parseFloat(relative ? endValue.substr(2) : endValue) * (radians ? _DEG2RAD : 1), 30962 change = relative ? endNum * relative : endNum - startNum, 30963 finalValue = startNum + change, 30964 direction, 30965 pt; 30966 30967 if (isString) { 30968 direction = endValue.split("_")[1]; 30969 30970 if (direction === "short") { 30971 change %= cap; 30972 30973 if (change !== change % (cap / 2)) { 30974 change += change < 0 ? cap : -cap; 30975 } 30976 } 30977 30978 if (direction === "cw" && change < 0) { 30979 change = (change + cap * 1e10) % cap - ~~(change / cap) * cap; 30980 } else if (direction === "ccw" && change > 0) { 30981 change = (change - cap * 1e10) % cap - ~~(change / cap) * cap; 30982 } 30983 } 30984 30985 plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd); 30986 pt.e = finalValue; 30987 return pt; 30988}, 30989 _initCore = function _initCore() { 30990 if (!_coreInitted) { 30991 gsap = _getGSAP(); 30992 _PIXI = _coreInitted = _PIXI || _windowExists() && window.PIXI; 30993 _isV4 = _PIXI && _PIXI.VERSION && _PIXI.VERSION.charAt(0) === "4"; 30994 30995 _splitColor = function _splitColor(color) { 30996 return gsap.utils.splitColor((color + "").substr(0, 2) === "0x" ? "#" + color.substr(2) : color); 30997 }; // some colors in PIXI are reported as "0xFF4421" instead of "#FF4421". 30998 30999 } 31000}, 31001 i, 31002 p; //context setup... 31003 31004 31005for (i = 0; i < _xyContexts.length; i++) { 31006 p = _xyContexts[i]; 31007 _contexts[p + "X"] = p; 31008 _contexts[p + "Y"] = p; 31009} 31010 31011var PixiPlugin = { 31012 version: "3.12.5", 31013 name: "pixi", 31014 register: function register(core, Plugin, propTween) { 31015 gsap = core; 31016 PropTween = propTween; 31017 _getSetter = Plugin.getSetter; 31018 31019 _initCore(); 31020 }, 31021 headless: true, 31022 // doesn't need window 31023 registerPIXI: function registerPIXI(pixi) { 31024 _PIXI = pixi; 31025 }, 31026 init: function init(target, values, tween, index, targets) { 31027 _PIXI || _initCore(); 31028 31029 if (!_PIXI) { 31030 _warn("PIXI was not found. PixiPlugin.registerPIXI(PIXI);"); 31031 31032 return false; 31033 } 31034 31035 var context, axis, value, colorMatrix, filter, p, padding, i, data; 31036 31037 for (p in values) { 31038 context = _contexts[p]; 31039 value = values[p]; 31040 31041 if (context) { 31042 axis = ~p.charAt(p.length - 1).toLowerCase().indexOf("x") ? "x" : "y"; 31043 this.add(target[context], axis, target[context][axis], context === "skew" ? _degreesToRadians(value) : value, 0, 0, 0, 0, 0, 1); 31044 } else if (p === "scale" || p === "anchor" || p === "pivot" || p === "tileScale") { 31045 this.add(target[p], "x", target[p].x, value); 31046 this.add(target[p], "y", target[p].y, value); 31047 } else if (p === "rotation" || p === "angle") { 31048 //PIXI expects rotation in radians, but as a convenience we let folks define it in degrees and we do the conversion. 31049 _addRotationalPropTween(this, target, p, target[p], value, p === "rotation"); 31050 } else if (_colorMatrixFilterProps[p]) { 31051 if (!colorMatrix) { 31052 _parseColorMatrixFilter(target, values.colorMatrixFilter || values, this); 31053 31054 colorMatrix = true; 31055 } 31056 } else if (p === "blur" || p === "blurX" || p === "blurY" || p === "blurPadding") { 31057 filter = _getFilter(target, "BlurFilter"); 31058 this.add(filter, p, filter[p], value); 31059 31060 if (values.blurPadding !== 0) { 31061 padding = values.blurPadding || Math.max(filter[p], value) * 2; 31062 i = target.filters.length; 31063 31064 while (--i > -1) { 31065 target.filters[i].padding = Math.max(target.filters[i].padding, padding); //if we don't expand the padding on all the filters, it can look clipped. 31066 } 31067 } 31068 } else if (_colorProps[p]) { 31069 if ((p === "lineColor" || p === "fillColor") && target instanceof _PIXI.Graphics) { 31070 data = (target.geometry || target).graphicsData; //"geometry" was introduced in PIXI version 5 31071 31072 this._pt = new PropTween(this._pt, target, p, 0, 0, _renderDirtyCache, { 31073 g: target.geometry || target 31074 }); 31075 i = data.length; 31076 31077 while (--i > -1) { 31078 _addColorTween(_isV4 ? data[i] : data[i][p.substr(0, 4) + "Style"], _isV4 ? p : "color", value, this); 31079 } 31080 } else { 31081 _addColorTween(target, p, value, this); 31082 } 31083 } else if (p === "autoAlpha") { 31084 this._pt = new PropTween(this._pt, target, "visible", 0, 0, _renderAutoAlpha); 31085 this.add(target, "alpha", target.alpha, value); 31086 31087 this._props.push("alpha", "visible"); 31088 } else if (p !== "resolution") { 31089 this.add(target, p, "get", value); 31090 } 31091 31092 this._props.push(p); 31093 } 31094 } 31095}; 31096_getGSAP() && gsap.registerPlugin(PixiPlugin); 31097 31098 31099/***/ }), 31100
vendor: 114,561 bytes, lines 31101-33774
31101/***/ "./node_modules/gsap/ScrollTrigger.js": 31102/*!********************************************!*\ 31103 !*** ./node_modules/gsap/ScrollTrigger.js ***! 31104 \********************************************/ 31105/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 31106 31107"use strict"; 31108__webpack_require__.r(__webpack_exports__); 31109/* harmony export */ __webpack_require__.d(__webpack_exports__, { 31110/* harmony export */ "ScrollTrigger": () => (/* binding */ ScrollTrigger), 31111/* harmony export */ "default": () => (/* binding */ ScrollTrigger) 31112/* harmony export */ }); 31113/* harmony import */ var _Observer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Observer.js */ "./node_modules/gsap/Observer.js"); 31114/*! 31115 * ScrollTrigger 3.12.5 31116 * https://gsap.com 31117 * 31118 * @license Copyright 2008-2024, GreenSock. All rights reserved. 31119 * Subject to the terms at https://gsap.com/standard-license or for 31120 * Club GSAP members, the agreement issued with that membership. 31121 * @author: Jack Doyle, [email protected] 31122*/ 31123 31124/* eslint-disable */ 31125 31126 31127var gsap, 31128 _coreInitted, 31129 _win, 31130 _doc, 31131 _docEl, 31132 _body, 31133 _root, 31134 _resizeDelay, 31135 _toArray, 31136 _clamp, 31137 _time2, 31138 _syncInterval, 31139 _refreshing, 31140 _pointerIsDown, 31141 _transformProp, 31142 _i, 31143 _prevWidth, 31144 _prevHeight, 31145 _autoRefresh, 31146 _sort, 31147 _suppressOverwrites, 31148 _ignoreResize, 31149 _normalizer, 31150 _ignoreMobileResize, 31151 _baseScreenHeight, 31152 _baseScreenWidth, 31153 _fixIOSBug, 31154 _context, 31155 _scrollRestoration, 31156 _div100vh, 31157 _100vh, 31158 _isReverted, 31159 _clampingMax, 31160 _limitCallbacks, 31161 // if true, we'll only trigger callbacks if the active state toggles, so if you scroll immediately past both the start and end positions of a ScrollTrigger (thus inactive to inactive), neither its onEnter nor onLeave will be called. This is useful during startup. 31162_startup = 1, 31163 _getTime = Date.now, 31164 _time1 = _getTime(), 31165 _lastScrollTime = 0, 31166 _enabled = 0, 31167 _parseClamp = function _parseClamp(value, type, self) { 31168 var clamp = _isString(value) && (value.substr(0, 6) === "clamp(" || value.indexOf("max") > -1); 31169 self["_" + type + "Clamp"] = clamp; 31170 return clamp ? value.substr(6, value.length - 7) : value; 31171}, 31172 _keepClamp = function _keepClamp(value, clamp) { 31173 return clamp && (!_isString(value) || value.substr(0, 6) !== "clamp(") ? "clamp(" + value + ")" : value; 31174}, 31175 _rafBugFix = function _rafBugFix() { 31176 return _enabled && requestAnimationFrame(_rafBugFix); 31177}, 31178 // in some browsers (like Firefox), screen repaints weren't consistent unless we had SOMETHING queued up in requestAnimationFrame()! So this just creates a super simple loop to keep it alive and smooth out repaints. 31179_pointerDownHandler = function _pointerDownHandler() { 31180 return _pointerIsDown = 1; 31181}, 31182 _pointerUpHandler = function _pointerUpHandler() { 31183 return _pointerIsDown = 0; 31184}, 31185 _passThrough = function _passThrough(v) { 31186 return v; 31187}, 31188 _round = function _round(value) { 31189 return Math.round(value * 100000) / 100000 || 0; 31190}, 31191 _windowExists = function _windowExists() { 31192 return typeof window !== "undefined"; 31193}, 31194 _getGSAP = function _getGSAP() { 31195 return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap; 31196}, 31197 _isViewport = function _isViewport(e) { 31198 return !!~_root.indexOf(e); 31199}, 31200 _getViewportDimension = function _getViewportDimension(dimensionProperty) { 31201 return (dimensionProperty === "Height" ? _100vh : _win["inner" + dimensionProperty]) || _docEl["client" + dimensionProperty] || _body["client" + dimensionProperty]; 31202}, 31203 _getBoundsFunc = function _getBoundsFunc(element) { 31204 return (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getProxyProp)(element, "getBoundingClientRect") || (_isViewport(element) ? function () { 31205 _winOffsets.width = _win.innerWidth; 31206 _winOffsets.height = _100vh; 31207 return _winOffsets; 31208 } : function () { 31209 return _getBounds(element); 31210 }); 31211}, 31212 _getSizeFunc = function _getSizeFunc(scroller, isViewport, _ref) { 31213 var d = _ref.d, 31214 d2 = _ref.d2, 31215 a = _ref.a; 31216 return (a = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getProxyProp)(scroller, "getBoundingClientRect")) ? function () { 31217 return a()[d]; 31218 } : function () { 31219 return (isViewport ? _getViewportDimension(d2) : scroller["client" + d2]) || 0; 31220 }; 31221}, 31222 _getOffsetsFunc = function _getOffsetsFunc(element, isViewport) { 31223 return !isViewport || ~_Observer_js__WEBPACK_IMPORTED_MODULE_0__._proxies.indexOf(element) ? _getBoundsFunc(element) : function () { 31224 return _winOffsets; 31225 }; 31226}, 31227 _maxScroll = function _maxScroll(element, _ref2) { 31228 var s = _ref2.s, 31229 d2 = _ref2.d2, 31230 d = _ref2.d, 31231 a = _ref2.a; 31232 return Math.max(0, (s = "scroll" + d2) && (a = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getProxyProp)(element, s)) ? a() - _getBoundsFunc(element)()[d] : _isViewport(element) ? (_docEl[s] || _body[s]) - _getViewportDimension(d2) : element[s] - element["offset" + d2]); 31233}, 31234 _iterateAutoRefresh = function _iterateAutoRefresh(func, events) { 31235 for (var i = 0; i < _autoRefresh.length; i += 3) { 31236 (!events || ~events.indexOf(_autoRefresh[i + 1])) && func(_autoRefresh[i], _autoRefresh[i + 1], _autoRefresh[i + 2]); 31237 } 31238}, 31239 _isString = function _isString(value) { 31240 return typeof value === "string"; 31241}, 31242 _isFunction = function _isFunction(value) { 31243 return typeof value === "function"; 31244}, 31245 _isNumber = function _isNumber(value) { 31246 return typeof value === "number"; 31247}, 31248 _isObject = function _isObject(value) { 31249 return typeof value === "object"; 31250}, 31251 _endAnimation = function _endAnimation(animation, reversed, pause) { 31252 return animation && animation.progress(reversed ? 0 : 1) && pause && animation.pause(); 31253}, 31254 _callback = function _callback(self, func) { 31255 if (self.enabled) { 31256 var result = self._ctx ? self._ctx.add(function () { 31257 return func(self); 31258 }) : func(self); 31259 result && result.totalTime && (self.callbackAnimation = result); 31260 } 31261}, 31262 _abs = Math.abs, 31263 _left = "left", 31264 _top = "top", 31265 _right = "right", 31266 _bottom = "bottom", 31267 _width = "width", 31268 _height = "height", 31269 _Right = "Right", 31270 _Left = "Left", 31271 _Top = "Top", 31272 _Bottom = "Bottom", 31273 _padding = "padding", 31274 _margin = "margin", 31275 _Width = "Width", 31276 _Height = "Height", 31277 _px = "px", 31278 _getComputedStyle = function _getComputedStyle(element) { 31279 return _win.getComputedStyle(element); 31280}, 31281 _makePositionable = function _makePositionable(element) { 31282 // if the element already has position: absolute or fixed, leave that, otherwise make it position: relative 31283 var position = _getComputedStyle(element).position; 31284 31285 element.style.position = position === "absolute" || position === "fixed" ? position : "relative"; 31286}, 31287 _setDefaults = function _setDefaults(obj, defaults) { 31288 for (var p in defaults) { 31289 p in obj || (obj[p] = defaults[p]); 31290 } 31291 31292 return obj; 31293}, 31294 _getBounds = function _getBounds(element, withoutTransforms) { 31295 var tween = withoutTransforms && _getComputedStyle(element)[_transformProp] !== "matrix(1, 0, 0, 1, 0, 0)" && gsap.to(element, { 31296 x: 0, 31297 y: 0, 31298 xPercent: 0, 31299 yPercent: 0, 31300 rotation: 0, 31301 rotationX: 0, 31302 rotationY: 0, 31303 scale: 1, 31304 skewX: 0, 31305 skewY: 0 31306 }).progress(1), 31307 bounds = element.getBoundingClientRect(); 31308 tween && tween.progress(0).kill(); 31309 return bounds; 31310}, 31311 _getSize = function _getSize(element, _ref3) { 31312 var d2 = _ref3.d2; 31313 return element["offset" + d2] || element["client" + d2] || 0; 31314}, 31315 _getLabelRatioArray = function _getLabelRatioArray(timeline) { 31316 var a = [], 31317 labels = timeline.labels, 31318 duration = timeline.duration(), 31319 p; 31320 31321 for (p in labels) { 31322 a.push(labels[p] / duration); 31323 } 31324 31325 return a; 31326}, 31327 _getClosestLabel = function _getClosestLabel(animation) { 31328 return function (value) { 31329 return gsap.utils.snap(_getLabelRatioArray(animation), value); 31330 }; 31331}, 31332 _snapDirectional = function _snapDirectional(snapIncrementOrArray) { 31333 var snap = gsap.utils.snap(snapIncrementOrArray), 31334 a = Array.isArray(snapIncrementOrArray) && snapIncrementOrArray.slice(0).sort(function (a, b) { 31335 return a - b; 31336 }); 31337 return a ? function (value, direction, threshold) { 31338 if (threshold === void 0) { 31339 threshold = 1e-3; 31340 } 31341 31342 var i; 31343 31344 if (!direction) { 31345 return snap(value); 31346 } 31347 31348 if (direction > 0) { 31349 value -= threshold; // to avoid rounding errors. If we're too strict, it might snap forward, then immediately again, and again. 31350 31351 for (i = 0; i < a.length; i++) { 31352 if (a[i] >= value) { 31353 return a[i]; 31354 } 31355 } 31356 31357 return a[i - 1]; 31358 } else { 31359 i = a.length; 31360 value += threshold; 31361 31362 while (i--) { 31363 if (a[i] <= value) { 31364 return a[i]; 31365 } 31366 } 31367 } 31368 31369 return a[0]; 31370 } : function (value, direction, threshold) { 31371 if (threshold === void 0) { 31372 threshold = 1e-3; 31373 } 31374 31375 var snapped = snap(value); 31376 return !direction || Math.abs(snapped - value) < threshold || snapped - value < 0 === direction < 0 ? snapped : snap(direction < 0 ? value - snapIncrementOrArray : value + snapIncrementOrArray); 31377 }; 31378}, 31379 _getLabelAtDirection = function _getLabelAtDirection(timeline) { 31380 return function (value, st) { 31381 return _snapDirectional(_getLabelRatioArray(timeline))(value, st.direction); 31382 }; 31383}, 31384 _multiListener = function _multiListener(func, element, types, callback) { 31385 return types.split(",").forEach(function (type) { 31386 return func(element, type, callback); 31387 }); 31388}, 31389 _addListener = function _addListener(element, type, func, nonPassive, capture) { 31390 return element.addEventListener(type, func, { 31391 passive: !nonPassive, 31392 capture: !!capture 31393 }); 31394}, 31395 _removeListener = function _removeListener(element, type, func, capture) { 31396 return element.removeEventListener(type, func, !!capture); 31397}, 31398 _wheelListener = function _wheelListener(func, el, scrollFunc) { 31399 scrollFunc = scrollFunc && scrollFunc.wheelHandler; 31400 31401 if (scrollFunc) { 31402 func(el, "wheel", scrollFunc); 31403 func(el, "touchmove", scrollFunc); 31404 } 31405}, 31406 _markerDefaults = { 31407 startColor: "green", 31408 endColor: "red", 31409 indent: 0, 31410 fontSize: "16px", 31411 fontWeight: "normal" 31412}, 31413 _defaults = { 31414 toggleActions: "play", 31415 anticipatePin: 0 31416}, 31417 _keywords = { 31418 top: 0, 31419 left: 0, 31420 center: 0.5, 31421 bottom: 1, 31422 right: 1 31423}, 31424 _offsetToPx = function _offsetToPx(value, size) { 31425 if (_isString(value)) { 31426 var eqIndex = value.indexOf("="), 31427 relative = ~eqIndex ? +(value.charAt(eqIndex - 1) + 1) * parseFloat(value.substr(eqIndex + 1)) : 0; 31428 31429 if (~eqIndex) { 31430 value.indexOf("%") > eqIndex && (relative *= size / 100); 31431 value = value.substr(0, eqIndex - 1); 31432 } 31433 31434 value = relative + (value in _keywords ? _keywords[value] * size : ~value.indexOf("%") ? parseFloat(value) * size / 100 : parseFloat(value) || 0); 31435 } 31436 31437 return value; 31438}, 31439 _createMarker = function _createMarker(type, name, container, direction, _ref4, offset, matchWidthEl, containerAnimation) { 31440 var startColor = _ref4.startColor, 31441 endColor = _ref4.endColor, 31442 fontSize = _ref4.fontSize, 31443 indent = _ref4.indent, 31444 fontWeight = _ref4.fontWeight; 31445 31446 var e = _doc.createElement("div"), 31447 useFixedPosition = _isViewport(container) || (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getProxyProp)(container, "pinType") === "fixed", 31448 isScroller = type.indexOf("scroller") !== -1, 31449 parent = useFixedPosition ? _body : container, 31450 isStart = type.indexOf("start") !== -1, 31451 color = isStart ? startColor : endColor, 31452 css = "border-color:" + color + ";font-size:" + fontSize + ";color:" + color + ";font-weight:" + fontWeight + ";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;"; 31453 31454 css += "position:" + ((isScroller || containerAnimation) && useFixedPosition ? "fixed;" : "absolute;"); 31455 (isScroller || containerAnimation || !useFixedPosition) && (css += (direction === _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical ? _right : _bottom) + ":" + (offset + parseFloat(indent)) + "px;"); 31456 matchWidthEl && (css += "box-sizing:border-box;text-align:left;width:" + matchWidthEl.offsetWidth + "px;"); 31457 e._isStart = isStart; 31458 e.setAttribute("class", "gsap-marker-" + type + (name ? " marker-" + name : "")); 31459 e.style.cssText = css; 31460 e.innerText = name || name === 0 ? type + "-" + name : type; 31461 parent.children[0] ? parent.insertBefore(e, parent.children[0]) : parent.appendChild(e); 31462 e._offset = e["offset" + direction.op.d2]; 31463 31464 _positionMarker(e, 0, direction, isStart); 31465 31466 return e; 31467}, 31468 _positionMarker = function _positionMarker(marker, start, direction, flipped) { 31469 var vars = { 31470 display: "block" 31471 }, 31472 side = direction[flipped ? "os2" : "p2"], 31473 oppositeSide = direction[flipped ? "p2" : "os2"]; 31474 marker._isFlipped = flipped; 31475 vars[direction.a + "Percent"] = flipped ? -100 : 0; 31476 vars[direction.a] = flipped ? "1px" : 0; 31477 vars["border" + side + _Width] = 1; 31478 vars["border" + oppositeSide + _Width] = 0; 31479 vars[direction.p] = start + "px"; 31480 gsap.set(marker, vars); 31481}, 31482 _triggers = [], 31483 _ids = {}, 31484 _rafID, 31485 _sync = function _sync() { 31486 return _getTime() - _lastScrollTime > 34 && (_rafID || (_rafID = requestAnimationFrame(_updateAll))); 31487}, 31488 _onScroll = function _onScroll() { 31489 // previously, we tried to optimize performance by batching/deferring to the next requestAnimationFrame(), but discovered that Safari has a few bugs that make this unworkable (especially on iOS). See https://codepen.io/GreenSock/pen/16c435b12ef09c38125204818e7b45fc?editors=0010 and https://codepen.io/GreenSock/pen/JjOxYpQ/3dd65ccec5a60f1d862c355d84d14562?editors=0010 and https://codepen.io/GreenSock/pen/ExbrPNa/087cef197dc35445a0951e8935c41503?editors=0010 31490 if (!_normalizer || !_normalizer.isPressed || _normalizer.startX > _body.clientWidth) { 31491 // if the user is dragging the scrollbar, allow it. 31492 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.cache++; 31493 31494 if (_normalizer) { 31495 _rafID || (_rafID = requestAnimationFrame(_updateAll)); 31496 } else { 31497 _updateAll(); // Safari in particular (on desktop) NEEDS the immediate update rather than waiting for a requestAnimationFrame() whereas iOS seems to benefit from waiting for the requestAnimationFrame() tick, at least when normalizing. See https://codepen.io/GreenSock/pen/qBYozqO?editors=0110 31498 31499 } 31500 31501 _lastScrollTime || _dispatch("scrollStart"); 31502 _lastScrollTime = _getTime(); 31503 } 31504}, 31505 _setBaseDimensions = function _setBaseDimensions() { 31506 _baseScreenWidth = _win.innerWidth; 31507 _baseScreenHeight = _win.innerHeight; 31508}, 31509 _onResize = function _onResize() { 31510 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.cache++; 31511 !_refreshing && !_ignoreResize && !_doc.fullscreenElement && !_doc.webkitFullscreenElement && (!_ignoreMobileResize || _baseScreenWidth !== _win.innerWidth || Math.abs(_win.innerHeight - _baseScreenHeight) > _win.innerHeight * 0.25) && _resizeDelay.restart(true); 31512}, 31513 // ignore resizes triggered by refresh() 31514_listeners = {}, 31515 _emptyArray = [], 31516 _softRefresh = function _softRefresh() { 31517 return _removeListener(ScrollTrigger, "scrollEnd", _softRefresh) || _refreshAll(true); 31518}, 31519 _dispatch = function _dispatch(type) { 31520 return _listeners[type] && _listeners[type].map(function (f) { 31521 return f(); 31522 }) || _emptyArray; 31523}, 31524 _savedStyles = [], 31525 // when ScrollTrigger.saveStyles() is called, the inline styles are recorded in this Array in a sequential format like [element, cssText, gsCache, media]. This keeps it very memory-efficient and fast to iterate through. 31526_revertRecorded = function _revertRecorded(media) { 31527 for (var i = 0; i < _savedStyles.length; i += 5) { 31528 if (!media || _savedStyles[i + 4] && _savedStyles[i + 4].query === media) { 31529 _savedStyles[i].style.cssText = _savedStyles[i + 1]; 31530 _savedStyles[i].getBBox && _savedStyles[i].setAttribute("transform", _savedStyles[i + 2] || ""); 31531 _savedStyles[i + 3].uncache = 1; 31532 } 31533 } 31534}, 31535 _revertAll = function _revertAll(kill, media) { 31536 var trigger; 31537 31538 for (_i = 0; _i < _triggers.length; _i++) { 31539 trigger = _triggers[_i]; 31540 31541 if (trigger && (!media || trigger._ctx === media)) { 31542 if (kill) { 31543 trigger.kill(1); 31544 } else { 31545 trigger.revert(true, true); 31546 } 31547 } 31548 } 31549 31550 _isReverted = true; 31551 media && _revertRecorded(media); 31552 media || _dispatch("revert"); 31553}, 31554 _clearScrollMemory = function _clearScrollMemory(scrollRestoration, force) { 31555 // zero-out all the recorded scroll positions. Don't use _triggers because if, for example, .matchMedia() is used to create some ScrollTriggers and then the user resizes and it removes ALL ScrollTriggers, and then go back to a size where there are ScrollTriggers, it would have kept the position(s) saved from the initial state. 31556 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.cache++; 31557 (force || !_refreshingAll) && _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.forEach(function (obj) { 31558 return _isFunction(obj) && obj.cacheID++ && (obj.rec = 0); 31559 }); 31560 _isString(scrollRestoration) && (_win.history.scrollRestoration = _scrollRestoration = scrollRestoration); 31561}, 31562 _refreshingAll, 31563 _refreshID = 0, 31564 _queueRefreshID, 31565 _queueRefreshAll = function _queueRefreshAll() { 31566 // we don't want to call _refreshAll() every time we create a new ScrollTrigger (for performance reasons) - it's better to batch them. Some frameworks dynamically load content and we can't rely on the window's "load" or "DOMContentLoaded" events to trigger it. 31567 if (_queueRefreshID !== _refreshID) { 31568 var id = _queueRefreshID = _refreshID; 31569 requestAnimationFrame(function () { 31570 return id === _refreshID && _refreshAll(true); 31571 }); 31572 } 31573}, 31574 _refresh100vh = function _refresh100vh() { 31575 _body.appendChild(_div100vh); 31576 31577 _100vh = !_normalizer && _div100vh.offsetHeight || _win.innerHeight; 31578 31579 _body.removeChild(_div100vh); 31580}, 31581 _hideAllMarkers = function _hideAllMarkers(hide) { 31582 return _toArray(".gsap-marker-start, .gsap-marker-end, .gsap-marker-scroller-start, .gsap-marker-scroller-end").forEach(function (el) { 31583 return el.style.display = hide ? "none" : "block"; 31584 }); 31585}, 31586 _refreshAll = function _refreshAll(force, skipRevert) { 31587 if (_lastScrollTime && !force && !_isReverted) { 31588 _addListener(ScrollTrigger, "scrollEnd", _softRefresh); 31589 31590 return; 31591 } 31592 31593 _refresh100vh(); 31594 31595 _refreshingAll = ScrollTrigger.isRefreshing = true; 31596 31597 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.forEach(function (obj) { 31598 return _isFunction(obj) && ++obj.cacheID && (obj.rec = obj()); 31599 }); // force the clearing of the cache because some browsers take a little while to dispatch the "scroll" event and the user may have changed the scroll position and then called ScrollTrigger.refresh() right away 31600 31601 31602 var refreshInits = _dispatch("refreshInit"); 31603 31604 _sort && ScrollTrigger.sort(); 31605 skipRevert || _revertAll(); 31606 31607 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.forEach(function (obj) { 31608 if (_isFunction(obj)) { 31609 obj.smooth && (obj.target.style.scrollBehavior = "auto"); // smooth scrolling interferes 31610 31611 obj(0); 31612 } 31613 }); 31614 31615 _triggers.slice(0).forEach(function (t) { 31616 return t.refresh(); 31617 }); // don't loop with _i because during a refresh() someone could call ScrollTrigger.update() which would iterate through _i resulting in a skip. 31618 31619 31620 _isReverted = false; 31621 31622 _triggers.forEach(function (t) { 31623 // nested pins (pinnedContainer) with pinSpacing may expand the container, so we must accommodate that here. 31624 if (t._subPinOffset && t.pin) { 31625 var prop = t.vars.horizontal ? "offsetWidth" : "offsetHeight", 31626 original = t.pin[prop]; 31627 t.revert(true, 1); 31628 t.adjustPinSpacing(t.pin[prop] - original); 31629 t.refresh(); 31630 } 31631 }); 31632 31633 _clampingMax = 1; // pinSpacing might be propping a page open, thus when we .setPositions() to clamp a ScrollTrigger's end we should leave the pinSpacing alone. That's what this flag is for. 31634 31635 _hideAllMarkers(true); 31636 31637 _triggers.forEach(function (t) { 31638 // the scroller's max scroll position may change after all the ScrollTriggers refreshed (like pinning could push it down), so we need to loop back and correct any with end: "max". Same for anything with a clamped end 31639 var max = _maxScroll(t.scroller, t._dir), 31640 endClamp = t.vars.end === "max" || t._endClamp && t.end > max, 31641 startClamp = t._startClamp && t.start >= max; 31642 31643 (endClamp || startClamp) && t.setPositions(startClamp ? max - 1 : t.start, endClamp ? Math.max(startClamp ? max : t.start + 1, max) : t.end, true); 31644 }); 31645 31646 _hideAllMarkers(false); 31647 31648 _clampingMax = 0; 31649 refreshInits.forEach(function (result) { 31650 return result && result.render && result.render(-1); 31651 }); // if the onRefreshInit() returns an animation (typically a gsap.set()), revert it. This makes it easy to put things in a certain spot before refreshing for measurement purposes, and then put things back. 31652 31653 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.forEach(function (obj) { 31654 if (_isFunction(obj)) { 31655 obj.smooth && requestAnimationFrame(function () { 31656 return obj.target.style.scrollBehavior = "smooth"; 31657 }); 31658 obj.rec && obj(obj.rec); 31659 } 31660 }); 31661 31662 _clearScrollMemory(_scrollRestoration, 1); 31663 31664 _resizeDelay.pause(); 31665 31666 _refreshID++; 31667 _refreshingAll = 2; 31668 31669 _updateAll(2); 31670 31671 _triggers.forEach(function (t) { 31672 return _isFunction(t.vars.onRefresh) && t.vars.onRefresh(t); 31673 }); 31674 31675 _refreshingAll = ScrollTrigger.isRefreshing = false; 31676 31677 _dispatch("refresh"); 31678}, 31679 _lastScroll = 0, 31680 _direction = 1, 31681 _primary, 31682 _updateAll = function _updateAll(force) { 31683 if (force === 2 || !_refreshingAll && !_isReverted) { 31684 // _isReverted could be true if, for example, a matchMedia() is in the process of executing. We don't want to update during the time everything is reverted. 31685 ScrollTrigger.isUpdating = true; 31686 _primary && _primary.update(0); // ScrollSmoother uses refreshPriority -9999 to become the primary that gets updated before all others because it affects the scroll position. 31687 31688 var l = _triggers.length, 31689 time = _getTime(), 31690 recordVelocity = time - _time1 >= 50, 31691 scroll = l && _triggers[0].scroll(); 31692 31693 _direction = _lastScroll > scroll ? -1 : 1; 31694 _refreshingAll || (_lastScroll = scroll); 31695 31696 if (recordVelocity) { 31697 if (_lastScrollTime && !_pointerIsDown && time - _lastScrollTime > 200) { 31698 _lastScrollTime = 0; 31699 31700 _dispatch("scrollEnd"); 31701 } 31702 31703 _time2 = _time1; 31704 _time1 = time; 31705 } 31706 31707 if (_direction < 0) { 31708 _i = l; 31709 31710 while (_i-- > 0) { 31711 _triggers[_i] && _triggers[_i].update(0, recordVelocity); 31712 } 31713 31714 _direction = 1; 31715 } else { 31716 for (_i = 0; _i < l; _i++) { 31717 _triggers[_i] && _triggers[_i].update(0, recordVelocity); 31718 } 31719 } 31720 31721 ScrollTrigger.isUpdating = false; 31722 } 31723 31724 _rafID = 0; 31725}, 31726 _propNamesToCopy = [_left, _top, _bottom, _right, _margin + _Bottom, _margin + _Right, _margin + _Top, _margin + _Left, "display", "flexShrink", "float", "zIndex", "gridColumnStart", "gridColumnEnd", "gridRowStart", "gridRowEnd", "gridArea", "justifySelf", "alignSelf", "placeSelf", "order"], 31727 _stateProps = _propNamesToCopy.concat([_width, _height, "boxSizing", "max" + _Width, "max" + _Height, "position", _margin, _padding, _padding + _Top, _padding + _Right, _padding + _Bottom, _padding + _Left]), 31728 _swapPinOut = function _swapPinOut(pin, spacer, state) { 31729 _setState(state); 31730 31731 var cache = pin._gsap; 31732 31733 if (cache.spacerIsNative) { 31734 _setState(cache.spacerState); 31735 } else if (pin._gsap.swappedIn) { 31736 var parent = spacer.parentNode; 31737 31738 if (parent) { 31739 parent.insertBefore(pin, spacer); 31740 parent.removeChild(spacer); 31741 } 31742 } 31743 31744 pin._gsap.swappedIn = false; 31745}, 31746 _swapPinIn = function _swapPinIn(pin, spacer, cs, spacerState) { 31747 if (!pin._gsap.swappedIn) { 31748 var i = _propNamesToCopy.length, 31749 spacerStyle = spacer.style, 31750 pinStyle = pin.style, 31751 p; 31752 31753 while (i--) { 31754 p = _propNamesToCopy[i]; 31755 spacerStyle[p] = cs[p]; 31756 } 31757 31758 spacerStyle.position = cs.position === "absolute" ? "absolute" : "relative"; 31759 cs.display === "inline" && (spacerStyle.display = "inline-block"); 31760 pinStyle[_bottom] = pinStyle[_right] = "auto"; 31761 spacerStyle.flexBasis = cs.flexBasis || "auto"; 31762 spacerStyle.overflow = "visible"; 31763 spacerStyle.boxSizing = "border-box"; 31764 spacerStyle[_width] = _getSize(pin, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._horizontal) + _px; 31765 spacerStyle[_height] = _getSize(pin, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical) + _px; 31766 spacerStyle[_padding] = pinStyle[_margin] = pinStyle[_top] = pinStyle[_left] = "0"; 31767 31768 _setState(spacerState); 31769 31770 pinStyle[_width] = pinStyle["max" + _Width] = cs[_width]; 31771 pinStyle[_height] = pinStyle["max" + _Height] = cs[_height]; 31772 pinStyle[_padding] = cs[_padding]; 31773 31774 if (pin.parentNode !== spacer) { 31775 pin.parentNode.insertBefore(spacer, pin); 31776 spacer.appendChild(pin); 31777 } 31778 31779 pin._gsap.swappedIn = true; 31780 } 31781}, 31782 _capsExp = /([A-Z])/g, 31783 _setState = function _setState(state) { 31784 if (state) { 31785 var style = state.t.style, 31786 l = state.length, 31787 i = 0, 31788 p, 31789 value; 31790 (state.t._gsap || gsap.core.getCache(state.t)).uncache = 1; // otherwise transforms may be off 31791 31792 for (; i < l; i += 2) { 31793 value = state[i + 1]; 31794 p = state[i]; 31795 31796 if (value) { 31797 style[p] = value; 31798 } else if (style[p]) { 31799 style.removeProperty(p.replace(_capsExp, "-$1").toLowerCase()); 31800 } 31801 } 31802 } 31803}, 31804 _getState = function _getState(element) { 31805 // returns an Array with alternating values like [property, value, property, value] and a "t" property pointing to the target (element). Makes it fast and cheap. 31806 var l = _stateProps.length, 31807 style = element.style, 31808 state = [], 31809 i = 0; 31810 31811 for (; i < l; i++) { 31812 state.push(_stateProps[i], style[_stateProps[i]]); 31813 } 31814 31815 state.t = element; 31816 return state; 31817}, 31818 _copyState = function _copyState(state, override, omitOffsets) { 31819 var result = [], 31820 l = state.length, 31821 i = omitOffsets ? 8 : 0, 31822 // skip top, left, right, bottom if omitOffsets is true 31823 p; 31824 31825 for (; i < l; i += 2) { 31826 p = state[i]; 31827 result.push(p, p in override ? override[p] : state[i + 1]); 31828 } 31829 31830 result.t = state.t; 31831 return result; 31832}, 31833 _winOffsets = { 31834 left: 0, 31835 top: 0 31836}, 31837 // // potential future feature (?) Allow users to calculate where a trigger hits (scroll position) like getScrollPosition("#id", "top bottom") 31838// _getScrollPosition = (trigger, position, {scroller, containerAnimation, horizontal}) => { 31839// scroller = _getTarget(scroller || _win); 31840// let direction = horizontal ? _horizontal : _vertical, 31841// isViewport = _isViewport(scroller); 31842// _getSizeFunc(scroller, isViewport, direction); 31843// return _parsePosition(position, _getTarget(trigger), _getSizeFunc(scroller, isViewport, direction)(), direction, _getScrollFunc(scroller, direction)(), 0, 0, 0, _getOffsetsFunc(scroller, isViewport)(), isViewport ? 0 : parseFloat(_getComputedStyle(scroller)["border" + direction.p2 + _Width]) || 0, 0, containerAnimation ? containerAnimation.duration() : _maxScroll(scroller), containerAnimation); 31844// }, 31845_parsePosition = function _parsePosition(value, trigger, scrollerSize, direction, scroll, marker, markerScroller, self, scrollerBounds, borderWidth, useFixedPosition, scrollerMax, containerAnimation, clampZeroProp) { 31846 _isFunction(value) && (value = value(self)); 31847 31848 if (_isString(value) && value.substr(0, 3) === "max") { 31849 value = scrollerMax + (value.charAt(4) === "=" ? _offsetToPx("0" + value.substr(3), scrollerSize) : 0); 31850 } 31851 31852 var time = containerAnimation ? containerAnimation.time() : 0, 31853 p1, 31854 p2, 31855 element; 31856 containerAnimation && containerAnimation.seek(0); 31857 isNaN(value) || (value = +value); // convert a string number like "45" to an actual number 31858 31859 if (!_isNumber(value)) { 31860 _isFunction(trigger) && (trigger = trigger(self)); 31861 var offsets = (value || "0").split(" "), 31862 bounds, 31863 localOffset, 31864 globalOffset, 31865 display; 31866 element = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(trigger, self) || _body; 31867 bounds = _getBounds(element) || {}; 31868 31869 if ((!bounds || !bounds.left && !bounds.top) && _getComputedStyle(element).display === "none") { 31870 // if display is "none", it won't report getBoundingClientRect() properly 31871 display = element.style.display; 31872 element.style.display = "block"; 31873 bounds = _getBounds(element); 31874 display ? element.style.display = display : element.style.removeProperty("display"); 31875 } 31876 31877 localOffset = _offsetToPx(offsets[0], bounds[direction.d]); 31878 globalOffset = _offsetToPx(offsets[1] || "0", scrollerSize); 31879 value = bounds[direction.p] - scrollerBounds[direction.p] - borderWidth + localOffset + scroll - globalOffset; 31880 markerScroller && _positionMarker(markerScroller, globalOffset, direction, scrollerSize - globalOffset < 20 || markerScroller._isStart && globalOffset > 20); 31881 scrollerSize -= scrollerSize - globalOffset; // adjust for the marker 31882 } else { 31883 containerAnimation && (value = gsap.utils.mapRange(containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, 0, scrollerMax, value)); 31884 markerScroller && _positionMarker(markerScroller, scrollerSize, direction, true); 31885 } 31886 31887 if (clampZeroProp) { 31888 self[clampZeroProp] = value || -0.001; 31889 value < 0 && (value = 0); 31890 } 31891 31892 if (marker) { 31893 var position = value + scrollerSize, 31894 isStart = marker._isStart; 31895 p1 = "scroll" + direction.d2; 31896 31897 _positionMarker(marker, position, direction, isStart && position > 20 || !isStart && (useFixedPosition ? Math.max(_body[p1], _docEl[p1]) : marker.parentNode[p1]) <= position + 1); 31898 31899 if (useFixedPosition) { 31900 scrollerBounds = _getBounds(markerScroller); 31901 useFixedPosition && (marker.style[direction.op.p] = scrollerBounds[direction.op.p] - direction.op.m - marker._offset + _px); 31902 } 31903 } 31904 31905 if (containerAnimation && element) { 31906 p1 = _getBounds(element); 31907 containerAnimation.seek(scrollerMax); 31908 p2 = _getBounds(element); 31909 containerAnimation._caScrollDist = p1[direction.p] - p2[direction.p]; 31910 value = value / containerAnimation._caScrollDist * scrollerMax; 31911 } 31912 31913 containerAnimation && containerAnimation.seek(time); 31914 return containerAnimation ? value : Math.round(value); 31915}, 31916 _prefixExp = /(webkit|moz|length|cssText|inset)/i, 31917 _reparent = function _reparent(element, parent, top, left) { 31918 if (element.parentNode !== parent) { 31919 var style = element.style, 31920 p, 31921 cs; 31922 31923 if (parent === _body) { 31924 element._stOrig = style.cssText; // record original inline styles so we can revert them later 31925 31926 cs = _getComputedStyle(element); 31927 31928 for (p in cs) { 31929 // must copy all relevant styles to ensure that nothing changes visually when we reparent to the <body>. Skip the vendor prefixed ones. 31930 if (!+p && !_prefixExp.test(p) && cs[p] && typeof style[p] === "string" && p !== "0") { 31931 style[p] = cs[p]; 31932 } 31933 } 31934 31935 style.top = top; 31936 style.left = left; 31937 } else { 31938 style.cssText = element._stOrig; 31939 } 31940 31941 gsap.core.getCache(element).uncache = 1; 31942 parent.appendChild(element); 31943 } 31944}, 31945 _interruptionTracker = function _interruptionTracker(getValueFunc, initialValue, onInterrupt) { 31946 var last1 = initialValue, 31947 last2 = last1; 31948 return function (value) { 31949 var current = Math.round(getValueFunc()); // round because in some [very uncommon] Windows environments, scroll can get reported with decimals even though it was set without. 31950 31951 if (current !== last1 && current !== last2 && Math.abs(current - last1) > 3 && Math.abs(current - last2) > 3) { 31952 // if the user scrolls, kill the tween. iOS Safari intermittently misreports the scroll position, it may be the most recently-set one or the one before that! When Safari is zoomed (CMD-+), it often misreports as 1 pixel off too! So if we set the scroll position to 125, for example, it'll actually report it as 124. 31953 value = current; 31954 onInterrupt && onInterrupt(); 31955 } 31956 31957 last2 = last1; 31958 last1 = value; 31959 return value; 31960 }; 31961}, 31962 _shiftMarker = function _shiftMarker(marker, direction, value) { 31963 var vars = {}; 31964 vars[direction.p] = "+=" + value; 31965 gsap.set(marker, vars); 31966}, 31967 // _mergeAnimations = animations => { 31968// let tl = gsap.timeline({smoothChildTiming: true}).startTime(Math.min(...animations.map(a => a.globalTime(0)))); 31969// animations.forEach(a => {let time = a.totalTime(); tl.add(a); a.totalTime(time); }); 31970// tl.smoothChildTiming = false; 31971// return tl; 31972// }, 31973// returns a function that can be used to tween the scroll position in the direction provided, and when doing so it'll add a .tween property to the FUNCTION itself, and remove it when the tween completes or gets killed. This gives us a way to have multiple ScrollTriggers use a central function for any given scroller and see if there's a scroll tween running (which would affect if/how things get updated) 31974_getTweenCreator = function _getTweenCreator(scroller, direction) { 31975 var getScroll = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getScrollFunc)(scroller, direction), 31976 prop = "_scroll" + direction.p2, 31977 // add a tweenable property to the scroller that's a getter/setter function, like _scrollTop or _scrollLeft. This way, if someone does gsap.killTweensOf(scroller) it'll kill the scroll tween. 31978 getTween = function getTween(scrollTo, vars, initialValue, change1, change2) { 31979 var tween = getTween.tween, 31980 onComplete = vars.onComplete, 31981 modifiers = {}; 31982 initialValue = initialValue || getScroll(); 31983 31984 var checkForInterruption = _interruptionTracker(getScroll, initialValue, function () { 31985 tween.kill(); 31986 getTween.tween = 0; 31987 }); 31988 31989 change2 = change1 && change2 || 0; // if change1 is 0, we set that to the difference and ignore change2. Otherwise, there would be a compound effect. 31990 31991 change1 = change1 || scrollTo - initialValue; 31992 tween && tween.kill(); 31993 vars[prop] = scrollTo; 31994 vars.inherit = false; 31995 vars.modifiers = modifiers; 31996 31997 modifiers[prop] = function () { 31998 return checkForInterruption(initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio); 31999 }; 32000 32001 vars.onUpdate = function () { 32002 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.cache++; 32003 getTween.tween && _updateAll(); // if it was interrupted/killed, like in a context.revert(), don't force an updateAll() 32004 }; 32005 32006 vars.onComplete = function () { 32007 getTween.tween = 0; 32008 onComplete && onComplete.call(tween); 32009 }; 32010 32011 tween = getTween.tween = gsap.to(scroller, vars); 32012 return tween; 32013 }; 32014 32015 scroller[prop] = getScroll; 32016 32017 getScroll.wheelHandler = function () { 32018 return getTween.tween && getTween.tween.kill() && (getTween.tween = 0); 32019 }; 32020 32021 _addListener(scroller, "wheel", getScroll.wheelHandler); // Windows machines handle mousewheel scrolling in chunks (like "3 lines per scroll") meaning the typical strategy for cancelling the scroll isn't as sensitive. It's much more likely to match one of the previous 2 scroll event positions. So we kill any snapping as soon as there's a wheel event. 32022 32023 32024 ScrollTrigger.isTouch && _addListener(scroller, "touchmove", getScroll.wheelHandler); 32025 return getTween; 32026}; 32027 32028var ScrollTrigger = /*#__PURE__*/function () { 32029 function ScrollTrigger(vars, animation) { 32030 _coreInitted || ScrollTrigger.register(gsap) || console.warn("Please gsap.registerPlugin(ScrollTrigger)"); 32031 32032 _context(this); 32033 32034 this.init(vars, animation); 32035 } 32036 32037 var _proto = ScrollTrigger.prototype; 32038 32039 _proto.init = function init(vars, animation) { 32040 this.progress = this.start = 0; 32041 this.vars && this.kill(true, true); // in case it's being initted again 32042 32043 if (!_enabled) { 32044 this.update = this.refresh = this.kill = _passThrough; 32045 return; 32046 } 32047 32048 vars = _setDefaults(_isString(vars) || _isNumber(vars) || vars.nodeType ? { 32049 trigger: vars 32050 } : vars, _defaults); 32051 32052 var _vars = vars, 32053 onUpdate = _vars.onUpdate, 32054 toggleClass = _vars.toggleClass, 32055 id = _vars.id, 32056 onToggle = _vars.onToggle, 32057 onRefresh = _vars.onRefresh, 32058 scrub = _vars.scrub, 32059 trigger = _vars.trigger, 32060 pin = _vars.pin, 32061 pinSpacing = _vars.pinSpacing, 32062 invalidateOnRefresh = _vars.invalidateOnRefresh, 32063 anticipatePin = _vars.anticipatePin, 32064 onScrubComplete = _vars.onScrubComplete, 32065 onSnapComplete = _vars.onSnapComplete, 32066 once = _vars.once, 32067 snap = _vars.snap, 32068 pinReparent = _vars.pinReparent, 32069 pinSpacer = _vars.pinSpacer, 32070 containerAnimation = _vars.containerAnimation, 32071 fastScrollEnd = _vars.fastScrollEnd, 32072 preventOverlaps = _vars.preventOverlaps, 32073 direction = vars.horizontal || vars.containerAnimation && vars.horizontal !== false ? _Observer_js__WEBPACK_IMPORTED_MODULE_0__._horizontal : _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical, 32074 isToggle = !scrub && scrub !== 0, 32075 scroller = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(vars.scroller || _win), 32076 scrollerCache = gsap.core.getCache(scroller), 32077 isViewport = _isViewport(scroller), 32078 useFixedPosition = ("pinType" in vars ? vars.pinType : (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getProxyProp)(scroller, "pinType") || isViewport && "fixed") === "fixed", 32079 callbacks = [vars.onEnter, vars.onLeave, vars.onEnterBack, vars.onLeaveBack], 32080 toggleActions = isToggle && vars.toggleActions.split(" "), 32081 markers = "markers" in vars ? vars.markers : _defaults.markers, 32082 borderWidth = isViewport ? 0 : parseFloat(_getComputedStyle(scroller)["border" + direction.p2 + _Width]) || 0, 32083 self = this, 32084 onRefreshInit = vars.onRefreshInit && function () { 32085 return vars.onRefreshInit(self); 32086 }, 32087 getScrollerSize = _getSizeFunc(scroller, isViewport, direction), 32088 getScrollerOffsets = _getOffsetsFunc(scroller, isViewport), 32089 lastSnap = 0, 32090 lastRefresh = 0, 32091 prevProgress = 0, 32092 scrollFunc = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getScrollFunc)(scroller, direction), 32093 tweenTo, 32094 pinCache, 32095 snapFunc, 32096 scroll1, 32097 scroll2, 32098 start, 32099 end, 32100 markerStart, 32101 markerEnd, 32102 markerStartTrigger, 32103 markerEndTrigger, 32104 markerVars, 32105 executingOnRefresh, 32106 change, 32107 pinOriginalState, 32108 pinActiveState, 32109 pinState, 32110 spacer, 32111 offset, 32112 pinGetter, 32113 pinSetter, 32114 pinStart, 32115 pinChange, 32116 spacingStart, 32117 spacerState, 32118 markerStartSetter, 32119 pinMoves, 32120 markerEndSetter, 32121 cs, 32122 snap1, 32123 snap2, 32124 scrubTween, 32125 scrubSmooth, 32126 snapDurClamp, 32127 snapDelayedCall, 32128 prevScroll, 32129 prevAnimProgress, 32130 caMarkerSetter, 32131 customRevertReturn; // for the sake of efficiency, _startClamp/_endClamp serve like a truthy value indicating that clamping was enabled on the start/end, and ALSO store the actual pre-clamped numeric value. We tap into that in ScrollSmoother for speed effects. So for example, if start="clamp(top bottom)" results in a start of -100 naturally, it would get clamped to 0 but -100 would be stored in _startClamp. 32132 32133 32134 self._startClamp = self._endClamp = false; 32135 self._dir = direction; 32136 anticipatePin *= 45; 32137 self.scroller = scroller; 32138 self.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc; 32139 scroll1 = scrollFunc(); 32140 self.vars = vars; 32141 animation = animation || vars.animation; 32142 32143 if ("refreshPriority" in vars) { 32144 _sort = 1; 32145 vars.refreshPriority === -9999 && (_primary = self); // used by ScrollSmoother 32146 } 32147 32148 scrollerCache.tweenScroll = scrollerCache.tweenScroll || { 32149 top: _getTweenCreator(scroller, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical), 32150 left: _getTweenCreator(scroller, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._horizontal) 32151 }; 32152 self.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p]; 32153 32154 self.scrubDuration = function (value) { 32155 scrubSmooth = _isNumber(value) && value; 32156 32157 if (!scrubSmooth) { 32158 scrubTween && scrubTween.progress(1).kill(); 32159 scrubTween = 0; 32160 } else { 32161 scrubTween ? scrubTween.duration(value) : scrubTween = gsap.to(animation, { 32162 ease: "expo", 32163 totalProgress: "+=0", 32164 inherit: false, 32165 duration: scrubSmooth, 32166 paused: true, 32167 onComplete: function onComplete() { 32168 return onScrubComplete && onScrubComplete(self); 32169 } 32170 }); 32171 } 32172 }; 32173 32174 if (animation) { 32175 animation.vars.lazy = false; 32176 animation._initted && !self.isReverted || animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.duration() && animation.render(0, true, true); // special case: if this ScrollTrigger gets re-initted, a from() tween with a stagger could get initted initially and then reverted on the re-init which means it'll need to get rendered again here to properly display things. Otherwise, See https://gsap.com/forums/topic/36777-scrollsmoother-splittext-nextjs/ and https://codepen.io/GreenSock/pen/eYPyPpd?editors=0010 32177 32178 self.animation = animation.pause(); 32179 animation.scrollTrigger = self; 32180 self.scrubDuration(scrub); 32181 snap1 = 0; 32182 id || (id = animation.vars.id); 32183 } 32184 32185 if (snap) { 32186 // TODO: potential idea: use legitimate CSS scroll snapping by pushing invisible elements into the DOM that serve as snap positions, and toggle the document.scrollingElement.style.scrollSnapType onToggle. See https://codepen.io/GreenSock/pen/JjLrgWM for a quick proof of concept. 32187 if (!_isObject(snap) || snap.push) { 32188 snap = { 32189 snapTo: snap 32190 }; 32191 } 32192 32193 "scrollBehavior" in _body.style && gsap.set(isViewport ? [_body, _docEl] : scroller, { 32194 scrollBehavior: "auto" 32195 }); // smooth scrolling doesn't work with snap. 32196 32197 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.forEach(function (o) { 32198 return _isFunction(o) && o.target === (isViewport ? _doc.scrollingElement || _docEl : scroller) && (o.smooth = false); 32199 }); // note: set smooth to false on both the vertical and horizontal scroll getters/setters 32200 32201 32202 snapFunc = _isFunction(snap.snapTo) ? snap.snapTo : snap.snapTo === "labels" ? _getClosestLabel(animation) : snap.snapTo === "labelsDirectional" ? _getLabelAtDirection(animation) : snap.directional !== false ? function (value, st) { 32203 return _snapDirectional(snap.snapTo)(value, _getTime() - lastRefresh < 500 ? 0 : st.direction); 32204 } : gsap.utils.snap(snap.snapTo); 32205 snapDurClamp = snap.duration || { 32206 min: 0.1, 32207 max: 2 32208 }; 32209 snapDurClamp = _isObject(snapDurClamp) ? _clamp(snapDurClamp.min, snapDurClamp.max) : _clamp(snapDurClamp, snapDurClamp); 32210 snapDelayedCall = gsap.delayedCall(snap.delay || scrubSmooth / 2 || 0.1, function () { 32211 var scroll = scrollFunc(), 32212 refreshedRecently = _getTime() - lastRefresh < 500, 32213 tween = tweenTo.tween; 32214 32215 if ((refreshedRecently || Math.abs(self.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) { 32216 var progress = (scroll - start) / change, 32217 totalProgress = animation && !isToggle ? animation.totalProgress() : progress, 32218 velocity = refreshedRecently ? 0 : (totalProgress - snap2) / (_getTime() - _time2) * 1000 || 0, 32219 change1 = gsap.utils.clamp(-progress, 1 - progress, _abs(velocity / 2) * velocity / 0.185), 32220 naturalEnd = progress + (snap.inertia === false ? 0 : change1), 32221 endValue, 32222 endScroll, 32223 _snap = snap, 32224 onStart = _snap.onStart, 32225 _onInterrupt = _snap.onInterrupt, 32226 _onComplete = _snap.onComplete; 32227 endValue = snapFunc(naturalEnd, self); 32228 _isNumber(endValue) || (endValue = naturalEnd); // in case the function didn't return a number, fall back to using the naturalEnd 32229 32230 endScroll = Math.round(start + endValue * change); 32231 32232 if (scroll <= end && scroll >= start && endScroll !== scroll) { 32233 if (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) { 32234 // there's an overlapping snap! So we must figure out which one is closer and let that tween live. 32235 return; 32236 } 32237 32238 if (snap.inertia === false) { 32239 change1 = endValue - progress; 32240 } 32241 32242 tweenTo(endScroll, { 32243 duration: snapDurClamp(_abs(Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05 || 0)), 32244 ease: snap.ease || "power3", 32245 data: _abs(endScroll - scroll), 32246 // record the distance so that if another snap tween occurs (conflict) we can prioritize the closest snap. 32247 onInterrupt: function onInterrupt() { 32248 return snapDelayedCall.restart(true) && _onInterrupt && _onInterrupt(self); 32249 }, 32250 onComplete: function onComplete() { 32251 self.update(); 32252 lastSnap = scrollFunc(); 32253 32254 if (animation) { 32255 // the resolution of the scrollbar is limited, so we should correct the scrubbed animation's playhead at the end to match EXACTLY where it was supposed to snap 32256 scrubTween ? scrubTween.resetTo("totalProgress", endValue, animation._tTime / animation._tDur) : animation.progress(endValue); 32257 } 32258 32259 snap1 = snap2 = animation && !isToggle ? animation.totalProgress() : self.progress; 32260 onSnapComplete && onSnapComplete(self); 32261 _onComplete && _onComplete(self); 32262 } 32263 }, scroll, change1 * change, endScroll - scroll - change1 * change); 32264 onStart && onStart(self, tweenTo.tween); 32265 } 32266 } else if (self.isActive && lastSnap !== scroll) { 32267 snapDelayedCall.restart(true); 32268 } 32269 }).pause(); 32270 } 32271 32272 id && (_ids[id] = self); 32273 trigger = self.trigger = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(trigger || pin !== true && pin); // if a trigger has some kind of scroll-related effect applied that could contaminate the "y" or "x" position (like a ScrollSmoother effect), we needed a way to temporarily revert it, so we use the stRevert property of the gsCache. It can return another function that we'll call at the end so it can return to its normal state. 32274 32275 customRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert; 32276 customRevertReturn && (customRevertReturn = customRevertReturn(self)); 32277 pin = pin === true ? trigger : (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(pin); 32278 _isString(toggleClass) && (toggleClass = { 32279 targets: trigger, 32280 className: toggleClass 32281 }); 32282 32283 if (pin) { 32284 pinSpacing === false || pinSpacing === _margin || (pinSpacing = !pinSpacing && pin.parentNode && pin.parentNode.style && _getComputedStyle(pin.parentNode).display === "flex" ? false : _padding); // if the parent is display: flex, don't apply pinSpacing by default. We should check that pin.parentNode is an element (not shadow dom window) 32285 32286 self.pin = pin; 32287 pinCache = gsap.core.getCache(pin); 32288 32289 if (!pinCache.spacer) { 32290 // record the spacer and pinOriginalState on the cache in case someone tries pinning the same element with MULTIPLE ScrollTriggers - we don't want to have multiple spacers or record the "original" pin state after it has already been affected by another ScrollTrigger. 32291 if (pinSpacer) { 32292 pinSpacer = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(pinSpacer); 32293 pinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement); // for React & Angular 32294 32295 pinCache.spacerIsNative = !!pinSpacer; 32296 pinSpacer && (pinCache.spacerState = _getState(pinSpacer)); 32297 } 32298 32299 pinCache.spacer = spacer = pinSpacer || _doc.createElement("div"); 32300 spacer.classList.add("pin-spacer"); 32301 id && spacer.classList.add("pin-spacer-" + id); 32302 pinCache.pinState = pinOriginalState = _getState(pin); 32303 } else { 32304 pinOriginalState = pinCache.pinState; 32305 } 32306 32307 vars.force3D !== false && gsap.set(pin, { 32308 force3D: true 32309 }); 32310 self.spacer = spacer = pinCache.spacer; 32311 cs = _getComputedStyle(pin); 32312 spacingStart = cs[pinSpacing + direction.os2]; 32313 pinGetter = gsap.getProperty(pin); 32314 pinSetter = gsap.quickSetter(pin, direction.a, _px); // pin.firstChild && !_maxScroll(pin, direction) && (pin.style.overflow = "hidden"); // protects from collapsing margins, but can have unintended consequences as demonstrated here: https://codepen.io/GreenSock/pen/1e42c7a73bfa409d2cf1e184e7a4248d so it was removed in favor of just telling people to set up their CSS to avoid the collapsing margins (overflow: hidden | auto is just one option. Another is border-top: 1px solid transparent). 32315 32316 _swapPinIn(pin, spacer, cs); 32317 32318 pinState = _getState(pin); 32319 } 32320 32321 if (markers) { 32322 markerVars = _isObject(markers) ? _setDefaults(markers, _markerDefaults) : _markerDefaults; 32323 markerStartTrigger = _createMarker("scroller-start", id, scroller, direction, markerVars, 0); 32324 markerEndTrigger = _createMarker("scroller-end", id, scroller, direction, markerVars, 0, markerStartTrigger); 32325 offset = markerStartTrigger["offset" + direction.op.d2]; 32326 32327 var content = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)((0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getProxyProp)(scroller, "content") || scroller); 32328 32329 markerStart = this.markerStart = _createMarker("start", id, content, direction, markerVars, offset, 0, containerAnimation); 32330 markerEnd = this.markerEnd = _createMarker("end", id, content, direction, markerVars, offset, 0, containerAnimation); 32331 containerAnimation && (caMarkerSetter = gsap.quickSetter([markerStart, markerEnd], direction.a, _px)); 32332 32333 if (!useFixedPosition && !(_Observer_js__WEBPACK_IMPORTED_MODULE_0__._proxies.length && (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getProxyProp)(scroller, "fixedMarkers") === true)) { 32334 _makePositionable(isViewport ? _body : scroller); 32335 32336 gsap.set([markerStartTrigger, markerEndTrigger], { 32337 force3D: true 32338 }); 32339 markerStartSetter = gsap.quickSetter(markerStartTrigger, direction.a, _px); 32340 markerEndSetter = gsap.quickSetter(markerEndTrigger, direction.a, _px); 32341 } 32342 } 32343 32344 if (containerAnimation) { 32345 var oldOnUpdate = containerAnimation.vars.onUpdate, 32346 oldParams = containerAnimation.vars.onUpdateParams; 32347 containerAnimation.eventCallback("onUpdate", function () { 32348 self.update(0, 0, 1); 32349 oldOnUpdate && oldOnUpdate.apply(containerAnimation, oldParams || []); 32350 }); 32351 } 32352 32353 self.previous = function () { 32354 return _triggers[_triggers.indexOf(self) - 1]; 32355 }; 32356 32357 self.next = function () { 32358 return _triggers[_triggers.indexOf(self) + 1]; 32359 }; 32360 32361 self.revert = function (revert, temp) { 32362 if (!temp) { 32363 return self.kill(true); 32364 } // for compatibility with gsap.context() and gsap.matchMedia() which call revert() 32365 32366 32367 var r = revert !== false || !self.enabled, 32368 prevRefreshing = _refreshing; 32369 32370 if (r !== self.isReverted) { 32371 if (r) { 32372 prevScroll = Math.max(scrollFunc(), self.scroll.rec || 0); // record the scroll so we can revert later (repositioning/pinning things can affect scroll position). In the static refresh() method, we first record all the scroll positions as a reference. 32373 32374 prevProgress = self.progress; 32375 prevAnimProgress = animation && animation.progress(); 32376 } 32377 32378 markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function (m) { 32379 return m.style.display = r ? "none" : "block"; 32380 }); 32381 32382 if (r) { 32383 _refreshing = self; 32384 self.update(r); // make sure the pin is back in its original position so that all the measurements are correct. do this BEFORE swapping the pin out 32385 } 32386 32387 if (pin && (!pinReparent || !self.isActive)) { 32388 if (r) { 32389 _swapPinOut(pin, spacer, pinOriginalState); 32390 } else { 32391 _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState); 32392 } 32393 } 32394 32395 r || self.update(r); // when we're restoring, the update should run AFTER swapping the pin into its pin-spacer. 32396 32397 _refreshing = prevRefreshing; // restore. We set it to true during the update() so that things fire properly in there. 32398 32399 self.isReverted = r; 32400 } 32401 }; 32402 32403 self.refresh = function (soft, force, position, pinOffset) { 32404 // position is typically only defined if it's coming from setPositions() - it's a way to skip the normal parsing. pinOffset is also only from setPositions() and is mostly related to fancy stuff we need to do in ScrollSmoother with effects 32405 if ((_refreshing || !self.enabled) && !force) { 32406 return; 32407 } 32408 32409 if (pin && soft && _lastScrollTime) { 32410 _addListener(ScrollTrigger, "scrollEnd", _softRefresh); 32411 32412 return; 32413 } 32414 32415 !_refreshingAll && onRefreshInit && onRefreshInit(self); 32416 _refreshing = self; 32417 32418 if (tweenTo.tween && !position) { 32419 // we skip this if a position is passed in because typically that's from .setPositions() and it's best to allow in-progress snapping to continue. 32420 tweenTo.tween.kill(); 32421 tweenTo.tween = 0; 32422 } 32423 32424 scrubTween && scrubTween.pause(); 32425 invalidateOnRefresh && animation && animation.revert({ 32426 kill: false 32427 }).invalidate(); 32428 self.isReverted || self.revert(true, true); 32429 self._subPinOffset = false; // we'll set this to true in the sub-pins if we find any 32430 32431 var size = getScrollerSize(), 32432 scrollerBounds = getScrollerOffsets(), 32433 max = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction), 32434 isFirstRefresh = change <= 0.01, 32435 offset = 0, 32436 otherPinOffset = pinOffset || 0, 32437 parsedEnd = _isObject(position) ? position.end : vars.end, 32438 parsedEndTrigger = vars.endTrigger || trigger, 32439 parsedStart = _isObject(position) ? position.start : vars.start || (vars.start === 0 || !trigger ? 0 : pin ? "0 0" : "0 100%"), 32440 pinnedContainer = self.pinnedContainer = vars.pinnedContainer && (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(vars.pinnedContainer, self), 32441 triggerIndex = trigger && Math.max(0, _triggers.indexOf(self)) || 0, 32442 i = triggerIndex, 32443 cs, 32444 bounds, 32445 scroll, 32446 isVertical, 32447 override, 32448 curTrigger, 32449 curPin, 32450 oppositeScroll, 32451 initted, 32452 revertedPins, 32453 forcedOverflow, 32454 markerStartOffset, 32455 markerEndOffset; 32456 32457 if (markers && _isObject(position)) { 32458 // if we alter the start/end positions with .setPositions(), it generally feeds in absolute NUMBERS which don't convey information about where to line up the markers, so to keep it intuitive, we record how far the trigger positions shift after applying the new numbers and then offset by that much in the opposite direction. We do the same to the associated trigger markers too of course. 32459 markerStartOffset = gsap.getProperty(markerStartTrigger, direction.p); 32460 markerEndOffset = gsap.getProperty(markerEndTrigger, direction.p); 32461 } 32462 32463 while (i--) { 32464 // user might try to pin the same element more than once, so we must find any prior triggers with the same pin, revert them, and determine how long they're pinning so that we can offset things appropriately. Make sure we revert from last to first so that things "rewind" properly. 32465 curTrigger = _triggers[i]; 32466 curTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = self); // if it's a timeline-based trigger that hasn't been fully initialized yet because it's waiting for 1 tick, just force the refresh() here, otherwise if it contains a pin that's supposed to affect other ScrollTriggers further down the page, they won't be adjusted properly. 32467 32468 curPin = curTrigger.pin; 32469 32470 if (curPin && (curPin === trigger || curPin === pin || curPin === pinnedContainer) && !curTrigger.isReverted) { 32471 revertedPins || (revertedPins = []); 32472 revertedPins.unshift(curTrigger); // we'll revert from first to last to make sure things reach their end state properly 32473 32474 curTrigger.revert(true, true); 32475 } 32476 32477 if (curTrigger !== _triggers[i]) { 32478 // in case it got removed. 32479 triggerIndex--; 32480 i--; 32481 } 32482 } 32483 32484 _isFunction(parsedStart) && (parsedStart = parsedStart(self)); 32485 parsedStart = _parseClamp(parsedStart, "start", self); 32486 start = _parsePosition(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self._startClamp && "_startClamp") || (pin ? -0.001 : 0); 32487 _isFunction(parsedEnd) && (parsedEnd = parsedEnd(self)); 32488 32489 if (_isString(parsedEnd) && !parsedEnd.indexOf("+=")) { 32490 if (~parsedEnd.indexOf(" ")) { 32491 parsedEnd = (_isString(parsedStart) ? parsedStart.split(" ")[0] : "") + parsedEnd; 32492 } else { 32493 offset = _offsetToPx(parsedEnd.substr(2), size); 32494 parsedEnd = _isString(parsedStart) ? parsedStart : (containerAnimation ? gsap.utils.mapRange(0, containerAnimation.duration(), containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, start) : start) + offset; // _parsePosition won't factor in the offset if the start is a number, so do it here. 32495 32496 parsedEndTrigger = trigger; 32497 } 32498 } 32499 32500 parsedEnd = _parseClamp(parsedEnd, "end", self); 32501 end = Math.max(start, _parsePosition(parsedEnd || (parsedEndTrigger ? "100% 0" : max), parsedEndTrigger, size, direction, scrollFunc() + offset, markerEnd, markerEndTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self._endClamp && "_endClamp")) || -0.001; 32502 offset = 0; 32503 i = triggerIndex; 32504 32505 while (i--) { 32506 curTrigger = _triggers[i]; 32507 curPin = curTrigger.pin; 32508 32509 if (curPin && curTrigger.start - curTrigger._pinPush <= start && !containerAnimation && curTrigger.end > 0) { 32510 cs = curTrigger.end - (self._startClamp ? Math.max(0, curTrigger.start) : curTrigger.start); 32511 32512 if ((curPin === trigger && curTrigger.start - curTrigger._pinPush < start || curPin === pinnedContainer) && isNaN(parsedStart)) { 32513 // numeric start values shouldn't be offset at all - treat them as absolute 32514 offset += cs * (1 - curTrigger.progress); 32515 } 32516 32517 curPin === pin && (otherPinOffset += cs); 32518 } 32519 } 32520 32521 start += offset; 32522 end += offset; 32523 self._startClamp && (self._startClamp += offset); 32524 32525 if (self._endClamp && !_refreshingAll) { 32526 self._endClamp = end || -0.001; 32527 end = Math.min(end, _maxScroll(scroller, direction)); 32528 } 32529 32530 change = end - start || (start -= 0.01) && 0.001; 32531 32532 if (isFirstRefresh) { 32533 // on the very first refresh(), the prevProgress couldn't have been accurate yet because the start/end were never calculated, so we set it here. Before 3.11.5, it could lead to an inaccurate scroll position restoration with snapping. 32534 prevProgress = gsap.utils.clamp(0, 1, gsap.utils.normalize(start, end, prevScroll)); 32535 } 32536 32537 self._pinPush = otherPinOffset; 32538 32539 if (markerStart && offset) { 32540 // offset the markers if necessary 32541 cs = {}; 32542 cs[direction.a] = "+=" + offset; 32543 pinnedContainer && (cs[direction.p] = "-=" + scrollFunc()); 32544 gsap.set([markerStart, markerEnd], cs); 32545 } 32546 32547 if (pin && !(_clampingMax && self.end >= _maxScroll(scroller, direction))) { 32548 cs = _getComputedStyle(pin); 32549 isVertical = direction === _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical; 32550 scroll = scrollFunc(); // recalculate because the triggers can affect the scroll 32551 32552 pinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset; 32553 32554 if (!max && end > 1) { 32555 // makes sure the scroller has a scrollbar, otherwise if something has width: 100%, for example, it would be too big (exclude the scrollbar). See https://gsap.com/forums/topic/25182-scrolltrigger-width-of-page-increase-where-markers-are-set-to-false/ 32556 forcedOverflow = (isViewport ? _doc.scrollingElement || _docEl : scroller).style; 32557 forcedOverflow = { 32558 style: forcedOverflow, 32559 value: forcedOverflow["overflow" + direction.a.toUpperCase()] 32560 }; 32561 32562 if (isViewport && _getComputedStyle(_body)["overflow" + direction.a.toUpperCase()] !== "scroll") { 32563 // avoid an extra scrollbar if BOTH <html> and <body> have overflow set to "scroll" 32564 forcedOverflow.style["overflow" + direction.a.toUpperCase()] = "scroll"; 32565 } 32566 } 32567 32568 _swapPinIn(pin, spacer, cs); 32569 32570 pinState = _getState(pin); // transforms will interfere with the top/left/right/bottom placement, so remove them temporarily. getBoundingClientRect() factors in transforms. 32571 32572 bounds = _getBounds(pin, true); 32573 oppositeScroll = useFixedPosition && (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getScrollFunc)(scroller, isVertical ? _Observer_js__WEBPACK_IMPORTED_MODULE_0__._horizontal : _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical)(); 32574 32575 if (pinSpacing) { 32576 spacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px]; 32577 spacerState.t = spacer; 32578 i = pinSpacing === _padding ? _getSize(pin, direction) + change + otherPinOffset : 0; 32579 32580 if (i) { 32581 spacerState.push(direction.d, i + _px); // for box-sizing: border-box (must include padding). 32582 32583 spacer.style.flexBasis !== "auto" && (spacer.style.flexBasis = i + _px); 32584 } 32585 32586 _setState(spacerState); 32587 32588 if (pinnedContainer) { 32589 // in ScrollTrigger.refresh(), we need to re-evaluate the pinContainer's size because this pinSpacing may stretch it out, but we can't just add the exact distance because depending on layout, it may not push things down or it may only do so partially. 32590 _triggers.forEach(function (t) { 32591 if (t.pin === pinnedContainer && t.vars.pinSpacing !== false) { 32592 t._subPinOffset = true; 32593 } 32594 }); 32595 } 32596 32597 useFixedPosition && scrollFunc(prevScroll); 32598 } else { 32599 i = _getSize(pin, direction); 32600 i && spacer.style.flexBasis !== "auto" && (spacer.style.flexBasis = i + _px); 32601 } 32602 32603 if (useFixedPosition) { 32604 override = { 32605 top: bounds.top + (isVertical ? scroll - start : oppositeScroll) + _px, 32606 left: bounds.left + (isVertical ? oppositeScroll : scroll - start) + _px, 32607 boxSizing: "border-box", 32608 position: "fixed" 32609 }; 32610 override[_width] = override["max" + _Width] = Math.ceil(bounds.width) + _px; 32611 override[_height] = override["max" + _Height] = Math.ceil(bounds.height) + _px; 32612 override[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = "0"; 32613 override[_padding] = cs[_padding]; 32614 override[_padding + _Top] = cs[_padding + _Top]; 32615 override[_padding + _Right] = cs[_padding + _Right]; 32616 override[_padding + _Bottom] = cs[_padding + _Bottom]; 32617 override[_padding + _Left] = cs[_padding + _Left]; 32618 pinActiveState = _copyState(pinOriginalState, override, pinReparent); 32619 _refreshingAll && scrollFunc(0); 32620 } 32621 32622 if (animation) { 32623 // the animation might be affecting the transform, so we must jump to the end, check the value, and compensate accordingly. Otherwise, when it becomes unpinned, the pinSetter() will get set to a value that doesn't include whatever the animation did. 32624 initted = animation._initted; // if not, we must invalidate() after this step, otherwise it could lock in starting values prematurely. 32625 32626 _suppressOverwrites(1); 32627 32628 animation.render(animation.duration(), true, true); 32629 pinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset; 32630 pinMoves = Math.abs(change - pinChange) > 1; 32631 useFixedPosition && pinMoves && pinActiveState.splice(pinActiveState.length - 2, 2); // transform is the last property/value set in the state Array. Since the animation is controlling that, we should omit it. 32632 32633 animation.render(0, true, true); 32634 initted || animation.invalidate(true); 32635 animation.parent || animation.totalTime(animation.totalTime()); // if, for example, a toggleAction called play() and then refresh() happens and when we render(1) above, it would cause the animation to complete and get removed from its parent, so this makes sure it gets put back in. 32636 32637 _suppressOverwrites(0); 32638 } else { 32639 pinChange = change; 32640 } 32641 32642 forcedOverflow && (forcedOverflow.value ? forcedOverflow.style["overflow" + direction.a.toUpperCase()] = forcedOverflow.value : forcedOverflow.style.removeProperty("overflow-" + direction.a)); 32643 } else if (trigger && scrollFunc() && !containerAnimation) { 32644 // it may be INSIDE a pinned element, so walk up the tree and look for any elements with _pinOffset to compensate because anything with pinSpacing that's already scrolled would throw off the measurements in getBoundingClientRect() 32645 bounds = trigger.parentNode; 32646 32647 while (bounds && bounds !== _body) { 32648 if (bounds._pinOffset) { 32649 start -= bounds._pinOffset; 32650 end -= bounds._pinOffset; 32651 } 32652 32653 bounds = bounds.parentNode; 32654 } 32655 } 32656 32657 revertedPins && revertedPins.forEach(function (t) { 32658 return t.revert(false, true); 32659 }); 32660 self.start = start; 32661 self.end = end; 32662 scroll1 = scroll2 = _refreshingAll ? prevScroll : scrollFunc(); // reset velocity 32663 32664 if (!containerAnimation && !_refreshingAll) { 32665 scroll1 < prevScroll && scrollFunc(prevScroll); 32666 self.scroll.rec = 0; 32667 } 32668 32669 self.revert(false, true); 32670 lastRefresh = _getTime(); 32671 32672 if (snapDelayedCall) { 32673 lastSnap = -1; // just so snapping gets re-enabled, clear out any recorded last value 32674 // self.isActive && scrollFunc(start + change * prevProgress); // previously this line was here to ensure that when snapping kicks in, it's from the previous progress but in some cases that's not desirable, like an all-page ScrollTrigger when new content gets added to the page, that'd totally change the progress. 32675 32676 snapDelayedCall.restart(true); 32677 } 32678 32679 _refreshing = 0; 32680 animation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress || 0, true).render(animation.time(), true, true); // must force a re-render because if saveStyles() was used on the target(s), the styles could have been wiped out during the refresh(). 32681 32682 if (isFirstRefresh || prevProgress !== self.progress || containerAnimation || invalidateOnRefresh) { 32683 // ensures that the direction is set properly (when refreshing, progress is set back to 0 initially, then back again to wherever it needs to be) and that callbacks are triggered. 32684 animation && !isToggle && animation.totalProgress(containerAnimation && start < -0.001 && !prevProgress ? gsap.utils.normalize(start, end, 0) : prevProgress, true); // to avoid issues where animation callbacks like onStart aren't triggered. 32685 32686 self.progress = isFirstRefresh || (scroll1 - start) / change === prevProgress ? 0 : prevProgress; 32687 } 32688 32689 pin && pinSpacing && (spacer._pinOffset = Math.round(self.progress * pinChange)); 32690 scrubTween && scrubTween.invalidate(); 32691 32692 if (!isNaN(markerStartOffset)) { 32693 // numbers were passed in for the position which are absolute, so instead of just putting the markers at the very bottom of the viewport, we figure out how far they shifted down (it's safe to assume they were originally positioned in closer relation to the trigger element with values like "top", "center", a percentage or whatever, so we offset that much in the opposite direction to basically revert them to the relative position thy were at previously. 32694 markerStartOffset -= gsap.getProperty(markerStartTrigger, direction.p); 32695 markerEndOffset -= gsap.getProperty(markerEndTrigger, direction.p); 32696 32697 _shiftMarker(markerStartTrigger, direction, markerStartOffset); 32698 32699 _shiftMarker(markerStart, direction, markerStartOffset - (pinOffset || 0)); 32700 32701 _shiftMarker(markerEndTrigger, direction, markerEndOffset); 32702 32703 _shiftMarker(markerEnd, direction, markerEndOffset - (pinOffset || 0)); 32704 } 32705 32706 isFirstRefresh && !_refreshingAll && self.update(); // edge case - when you reload a page when it's already scrolled down, some browsers fire a "scroll" event before DOMContentLoaded, triggering an updateAll(). If we don't update the self.progress as part of refresh(), then when it happens next, it may record prevProgress as 0 when it really shouldn't, potentially causing a callback in an animation to fire again. 32707 32708 if (onRefresh && !_refreshingAll && !executingOnRefresh) { 32709 // when refreshing all, we do extra work to correct pinnedContainer sizes and ensure things don't exceed the maxScroll, so we should do all the refreshes at the end after all that work so that the start/end values are corrected. 32710 executingOnRefresh = true; 32711 onRefresh(self); 32712 executingOnRefresh = false; 32713 } 32714 }; 32715 32716 self.getVelocity = function () { 32717 return (scrollFunc() - scroll2) / (_getTime() - _time2) * 1000 || 0; 32718 }; 32719 32720 self.endAnimation = function () { 32721 _endAnimation(self.callbackAnimation); 32722 32723 if (animation) { 32724 scrubTween ? scrubTween.progress(1) : !animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self.direction < 0, 1); 32725 } 32726 }; 32727 32728 self.labelToScroll = function (label) { 32729 return animation && animation.labels && (start || self.refresh() || start) + animation.labels[label] / animation.duration() * change || 0; 32730 }; 32731 32732 self.getTrailing = function (name) { 32733 var i = _triggers.indexOf(self), 32734 a = self.direction > 0 ? _triggers.slice(0, i).reverse() : _triggers.slice(i + 1); 32735 32736 return (_isString(name) ? a.filter(function (t) { 32737 return t.vars.preventOverlaps === name; 32738 }) : a).filter(function (t) { 32739 return self.direction > 0 ? t.end <= start : t.start >= end; 32740 }); 32741 }; 32742 32743 self.update = function (reset, recordVelocity, forceFake) { 32744 if (containerAnimation && !forceFake && !reset) { 32745 return; 32746 } 32747 32748 var scroll = _refreshingAll === true ? prevScroll : self.scroll(), 32749 p = reset ? 0 : (scroll - start) / change, 32750 clipped = p < 0 ? 0 : p > 1 ? 1 : p || 0, 32751 prevProgress = self.progress, 32752 isActive, 32753 wasActive, 32754 toggleState, 32755 action, 32756 stateChanged, 32757 toggled, 32758 isAtMax, 32759 isTakingAction; 32760 32761 if (recordVelocity) { 32762 scroll2 = scroll1; 32763 scroll1 = containerAnimation ? scrollFunc() : scroll; 32764 32765 if (snap) { 32766 snap2 = snap1; 32767 snap1 = animation && !isToggle ? animation.totalProgress() : clipped; 32768 } 32769 } // anticipate the pinning a few ticks ahead of time based on velocity to avoid a visual glitch due to the fact that most browsers do scrolling on a separate thread (not synced with requestAnimationFrame). 32770 32771 32772 if (anticipatePin && pin && !_refreshing && !_startup && _lastScrollTime) { 32773 if (!clipped && start < scroll + (scroll - scroll2) / (_getTime() - _time2) * anticipatePin) { 32774 clipped = 0.0001; 32775 } else if (clipped === 1 && end > scroll + (scroll - scroll2) / (_getTime() - _time2) * anticipatePin) { 32776 clipped = 0.9999; 32777 } 32778 } 32779 32780 if (clipped !== prevProgress && self.enabled) { 32781 isActive = self.isActive = !!clipped && clipped < 1; 32782 wasActive = !!prevProgress && prevProgress < 1; 32783 toggled = isActive !== wasActive; 32784 stateChanged = toggled || !!clipped !== !!prevProgress; // could go from start all the way to end, thus it didn't toggle but it did change state in a sense (may need to fire a callback) 32785 32786 self.direction = clipped > prevProgress ? 1 : -1; 32787 self.progress = clipped; 32788 32789 if (stateChanged && !_refreshing) { 32790 toggleState = clipped && !prevProgress ? 0 : clipped === 1 ? 1 : prevProgress === 1 ? 2 : 3; // 0 = enter, 1 = leave, 2 = enterBack, 3 = leaveBack (we prioritize the FIRST encounter, thus if you scroll really fast past the onEnter and onLeave in one tick, it'd prioritize onEnter. 32791 32792 if (isToggle) { 32793 action = !toggled && toggleActions[toggleState + 1] !== "none" && toggleActions[toggleState + 1] || toggleActions[toggleState]; // if it didn't toggle, that means it shot right past and since we prioritize the "enter" action, we should switch to the "leave" in this case (but only if one is defined) 32794 32795 isTakingAction = animation && (action === "complete" || action === "reset" || action in animation); 32796 } 32797 } 32798 32799 preventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction(preventOverlaps) ? preventOverlaps(self) : self.getTrailing(preventOverlaps).forEach(function (t) { 32800 return t.endAnimation(); 32801 })); 32802 32803 if (!isToggle) { 32804 if (scrubTween && !_refreshing && !_startup) { 32805 scrubTween._dp._time - scrubTween._start !== scrubTween._time && scrubTween.render(scrubTween._dp._time - scrubTween._start); // if there's a scrub on both the container animation and this one (or a ScrollSmoother), the update order would cause this one not to have rendered yet, so it wouldn't make any progress before we .restart() it heading toward the new progress so it'd appear stuck thus we force a render here. 32806 32807 if (scrubTween.resetTo) { 32808 scrubTween.resetTo("totalProgress", clipped, animation._tTime / animation._tDur); 32809 } else { 32810 // legacy support (courtesy), before 3.10.0 32811 scrubTween.vars.totalProgress = clipped; 32812 scrubTween.invalidate().restart(); 32813 } 32814 } else if (animation) { 32815 animation.totalProgress(clipped, !!(_refreshing && (lastRefresh || reset))); 32816 } 32817 } 32818 32819 if (pin) { 32820 reset && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart); 32821 32822 if (!useFixedPosition) { 32823 pinSetter(_round(pinStart + pinChange * clipped)); 32824 } else if (stateChanged) { 32825 isAtMax = !reset && clipped > prevProgress && end + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction); // if it's at the VERY end of the page, don't switch away from position: fixed because it's pointless and it could cause a brief flash when the user scrolls back up (when it gets pinned again) 32826 32827 if (pinReparent) { 32828 if (!reset && (isActive || isAtMax)) { 32829 var bounds = _getBounds(pin, true), 32830 _offset = scroll - start; 32831 32832 _reparent(pin, _body, bounds.top + (direction === _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical ? _offset : 0) + _px, bounds.left + (direction === _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical ? 0 : _offset) + _px); 32833 } else { 32834 _reparent(pin, spacer); 32835 } 32836 } 32837 32838 _setState(isActive || isAtMax ? pinActiveState : pinState); 32839 32840 pinMoves && clipped < 1 && isActive || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0)); 32841 } 32842 } 32843 32844 snap && !tweenTo.tween && !_refreshing && !_startup && snapDelayedCall.restart(true); 32845 toggleClass && (toggled || once && clipped && (clipped < 1 || !_limitCallbacks)) && _toArray(toggleClass.targets).forEach(function (el) { 32846 return el.classList[isActive || once ? "add" : "remove"](toggleClass.className); 32847 }); // classes could affect positioning, so do it even if reset or refreshing is true. 32848 32849 onUpdate && !isToggle && !reset && onUpdate(self); 32850 32851 if (stateChanged && !_refreshing) { 32852 if (isToggle) { 32853 if (isTakingAction) { 32854 if (action === "complete") { 32855 animation.pause().totalProgress(1); 32856 } else if (action === "reset") { 32857 animation.restart(true).pause(); 32858 } else if (action === "restart") { 32859 animation.restart(true); 32860 } else { 32861 animation[action](); 32862 } 32863 } 32864 32865 onUpdate && onUpdate(self); 32866 } 32867 32868 if (toggled || !_limitCallbacks) { 32869 // on startup, the page could be scrolled and we don't want to fire callbacks that didn't toggle. For example onEnter shouldn't fire if the ScrollTrigger isn't actually entered. 32870 onToggle && toggled && _callback(self, onToggle); 32871 callbacks[toggleState] && _callback(self, callbacks[toggleState]); 32872 once && (clipped === 1 ? self.kill(false, 1) : callbacks[toggleState] = 0); // a callback shouldn't be called again if once is true. 32873 32874 if (!toggled) { 32875 // it's possible to go completely past, like from before the start to after the end (or vice-versa) in which case BOTH callbacks should be fired in that order 32876 toggleState = clipped === 1 ? 1 : 3; 32877 callbacks[toggleState] && _callback(self, callbacks[toggleState]); 32878 } 32879 } 32880 32881 if (fastScrollEnd && !isActive && Math.abs(self.getVelocity()) > (_isNumber(fastScrollEnd) ? fastScrollEnd : 2500)) { 32882 _endAnimation(self.callbackAnimation); 32883 32884 scrubTween ? scrubTween.progress(1) : _endAnimation(animation, action === "reverse" ? 1 : !clipped, 1); 32885 } 32886 } else if (isToggle && onUpdate && !_refreshing) { 32887 onUpdate(self); 32888 } 32889 } // update absolutely-positioned markers (only if the scroller isn't the viewport) 32890 32891 32892 if (markerEndSetter) { 32893 var n = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll; 32894 markerStartSetter(n + (markerStartTrigger._isFlipped ? 1 : 0)); 32895 markerEndSetter(n); 32896 } 32897 32898 caMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0)); 32899 }; 32900 32901 self.enable = function (reset, refresh) { 32902 if (!self.enabled) { 32903 self.enabled = true; 32904 32905 _addListener(scroller, "resize", _onResize); 32906 32907 isViewport || _addListener(scroller, "scroll", _onScroll); 32908 onRefreshInit && _addListener(ScrollTrigger, "refreshInit", onRefreshInit); 32909 32910 if (reset !== false) { 32911 self.progress = prevProgress = 0; 32912 scroll1 = scroll2 = lastSnap = scrollFunc(); 32913 } 32914 32915 refresh !== false && self.refresh(); 32916 } 32917 }; 32918 32919 self.getTween = function (snap) { 32920 return snap && tweenTo ? tweenTo.tween : scrubTween; 32921 }; 32922 32923 self.setPositions = function (newStart, newEnd, keepClamp, pinOffset) { 32924 // doesn't persist after refresh()! Intended to be a way to override values that were set during refresh(), like you could set it in onRefresh() 32925 if (containerAnimation) { 32926 // convert ratios into scroll positions. Remember, start/end values on ScrollTriggers that have a containerAnimation refer to the time (in seconds), NOT scroll positions. 32927 var st = containerAnimation.scrollTrigger, 32928 duration = containerAnimation.duration(), 32929 _change = st.end - st.start; 32930 32931 newStart = st.start + _change * newStart / duration; 32932 newEnd = st.start + _change * newEnd / duration; 32933 } 32934 32935 self.refresh(false, false, { 32936 start: _keepClamp(newStart, keepClamp && !!self._startClamp), 32937 end: _keepClamp(newEnd, keepClamp && !!self._endClamp) 32938 }, pinOffset); 32939 self.update(); 32940 }; 32941 32942 self.adjustPinSpacing = function (amount) { 32943 if (spacerState && amount) { 32944 var i = spacerState.indexOf(direction.d) + 1; 32945 spacerState[i] = parseFloat(spacerState[i]) + amount + _px; 32946 spacerState[1] = parseFloat(spacerState[1]) + amount + _px; 32947 32948 _setState(spacerState); 32949 } 32950 }; 32951 32952 self.disable = function (reset, allowAnimation) { 32953 if (self.enabled) { 32954 reset !== false && self.revert(true, true); 32955 self.enabled = self.isActive = false; 32956 allowAnimation || scrubTween && scrubTween.pause(); 32957 prevScroll = 0; 32958 pinCache && (pinCache.uncache = 1); 32959 onRefreshInit && _removeListener(ScrollTrigger, "refreshInit", onRefreshInit); 32960 32961 if (snapDelayedCall) { 32962 snapDelayedCall.pause(); 32963 tweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0); 32964 } 32965 32966 if (!isViewport) { 32967 var i = _triggers.length; 32968 32969 while (i--) { 32970 if (_triggers[i].scroller === scroller && _triggers[i] !== self) { 32971 return; //don't remove the listeners if there are still other triggers referencing it. 32972 } 32973 } 32974 32975 _removeListener(scroller, "resize", _onResize); 32976 32977 isViewport || _removeListener(scroller, "scroll", _onScroll); 32978 } 32979 } 32980 }; 32981 32982 self.kill = function (revert, allowAnimation) { 32983 self.disable(revert, allowAnimation); 32984 scrubTween && !allowAnimation && scrubTween.kill(); 32985 id && delete _ids[id]; 32986 32987 var i = _triggers.indexOf(self); 32988 32989 i >= 0 && _triggers.splice(i, 1); 32990 i === _i && _direction > 0 && _i--; // if we're in the middle of a refresh() or update(), splicing would cause skips in the index, so adjust... 32991 // if no other ScrollTrigger instances of the same scroller are found, wipe out any recorded scroll position. Otherwise, in a single page application, for example, it could maintain scroll position when it really shouldn't. 32992 32993 i = 0; 32994 32995 _triggers.forEach(function (t) { 32996 return t.scroller === self.scroller && (i = 1); 32997 }); 32998 32999 i || _refreshingAll || (self.scroll.rec = 0); 33000 33001 if (animation) { 33002 animation.scrollTrigger = null; 33003 revert && animation.revert({ 33004 kill: false 33005 }); 33006 allowAnimation || animation.kill(); 33007 } 33008 33009 markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function (m) { 33010 return m.parentNode && m.parentNode.removeChild(m); 33011 }); 33012 _primary === self && (_primary = 0); 33013 33014 if (pin) { 33015 pinCache && (pinCache.uncache = 1); 33016 i = 0; 33017 33018 _triggers.forEach(function (t) { 33019 return t.pin === pin && i++; 33020 }); 33021 33022 i || (pinCache.spacer = 0); // if there aren't any more ScrollTriggers with the same pin, remove the spacer, otherwise it could be contaminated with old/stale values if the user re-creates a ScrollTrigger for the same element. 33023 } 33024 33025 vars.onKill && vars.onKill(self); 33026 }; 33027 33028 _triggers.push(self); 33029 33030 self.enable(false, false); 33031 customRevertReturn && customRevertReturn(self); 33032 33033 if (animation && animation.add && !change) { 33034 // if the animation is a timeline, it may not have been populated yet, so it wouldn't render at the proper place on the first refresh(), thus we should schedule one for the next tick. If "change" is defined, we know it must be re-enabling, thus we can refresh() right away. 33035 var updateFunc = self.update; // some browsers may fire a scroll event BEFORE a tick elapses and/or the DOMContentLoaded fires. So there's a chance update() will be called BEFORE a refresh() has happened on a Timeline-attached ScrollTrigger which means the start/end won't be calculated yet. We don't want to add conditional logic inside the update() method (like check to see if end is defined and if not, force a refresh()) because that's a function that gets hit a LOT (performance). So we swap out the real update() method for this one that'll re-attach it the first time it gets called and of course forces a refresh(). 33036 33037 self.update = function () { 33038 self.update = updateFunc; 33039 start || end || self.refresh(); 33040 }; 33041 33042 gsap.delayedCall(0.01, self.update); 33043 change = 0.01; 33044 start = end = 0; 33045 } else { 33046 self.refresh(); 33047 } 33048 33049 pin && _queueRefreshAll(); // pinning could affect the positions of other things, so make sure we queue a full refresh() 33050 }; 33051 33052 ScrollTrigger.register = function register(core) { 33053 if (!_coreInitted) { 33054 gsap = core || _getGSAP(); 33055 _windowExists() && window.document && ScrollTrigger.enable(); 33056 _coreInitted = _enabled; 33057 } 33058 33059 return _coreInitted; 33060 }; 33061 33062 ScrollTrigger.defaults = function defaults(config) { 33063 if (config) { 33064 for (var p in config) { 33065 _defaults[p] = config[p]; 33066 } 33067 } 33068 33069 return _defaults; 33070 }; 33071 33072 ScrollTrigger.disable = function disable(reset, kill) { 33073 _enabled = 0; 33074 33075 _triggers.forEach(function (trigger) { 33076 return trigger[kill ? "kill" : "disable"](reset); 33077 }); 33078 33079 _removeListener(_win, "wheel", _onScroll); 33080 33081 _removeListener(_doc, "scroll", _onScroll); 33082 33083 clearInterval(_syncInterval); 33084 33085 _removeListener(_doc, "touchcancel", _passThrough); 33086 33087 _removeListener(_body, "touchstart", _passThrough); 33088 33089 _multiListener(_removeListener, _doc, "pointerdown,touchstart,mousedown", _pointerDownHandler); 33090 33091 _multiListener(_removeListener, _doc, "pointerup,touchend,mouseup", _pointerUpHandler); 33092 33093 _resizeDelay.kill(); 33094 33095 _iterateAutoRefresh(_removeListener); 33096 33097 for (var i = 0; i < _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.length; i += 3) { 33098 _wheelListener(_removeListener, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers[i], _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers[i + 1]); 33099 33100 _wheelListener(_removeListener, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers[i], _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers[i + 2]); 33101 } 33102 }; 33103 33104 ScrollTrigger.enable = function enable() { 33105 _win = window; 33106 _doc = document; 33107 _docEl = _doc.documentElement; 33108 _body = _doc.body; 33109 33110 if (gsap) { 33111 _toArray = gsap.utils.toArray; 33112 _clamp = gsap.utils.clamp; 33113 _context = gsap.core.context || _passThrough; 33114 _suppressOverwrites = gsap.core.suppressOverwrites || _passThrough; 33115 _scrollRestoration = _win.history.scrollRestoration || "auto"; 33116 _lastScroll = _win.pageYOffset; 33117 gsap.core.globals("ScrollTrigger", ScrollTrigger); // must register the global manually because in Internet Explorer, functions (classes) don't have a "name" property. 33118 33119 if (_body) { 33120 _enabled = 1; 33121 _div100vh = document.createElement("div"); // to solve mobile browser address bar show/hide resizing, we shouldn't rely on window.innerHeight. Instead, use a <div> with its height set to 100vh and measure that since that's what the scrolling is based on anyway and it's not affected by address bar showing/hiding. 33122 33123 _div100vh.style.height = "100vh"; 33124 _div100vh.style.position = "absolute"; 33125 33126 _refresh100vh(); 33127 33128 _rafBugFix(); 33129 33130 _Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer.register(gsap); // isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer. 33131 33132 ScrollTrigger.isTouch = _Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer.isTouch; 33133 _fixIOSBug = _Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent); // since 2017, iOS has had a bug that causes event.clientX/Y to be inaccurate when a scroll occurs, thus we must alternate ignoring every other touchmove event to work around it. See https://bugs.webkit.org/show_bug.cgi?id=181954 and https://codepen.io/GreenSock/pen/ExbrPNa/087cef197dc35445a0951e8935c41503 33134 33135 _ignoreMobileResize = _Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer.isTouch === 1; 33136 33137 _addListener(_win, "wheel", _onScroll); // mostly for 3rd party smooth scrolling libraries. 33138 33139 33140 _root = [_win, _doc, _docEl, _body]; 33141 33142 if (gsap.matchMedia) { 33143 ScrollTrigger.matchMedia = function (vars) { 33144 var mm = gsap.matchMedia(), 33145 p; 33146 33147 for (p in vars) { 33148 mm.add(p, vars[p]); 33149 } 33150 33151 return mm; 33152 }; 33153 33154 gsap.addEventListener("matchMediaInit", function () { 33155 return _revertAll(); 33156 }); 33157 gsap.addEventListener("matchMediaRevert", function () { 33158 return _revertRecorded(); 33159 }); 33160 gsap.addEventListener("matchMedia", function () { 33161 _refreshAll(0, 1); 33162 33163 _dispatch("matchMedia"); 33164 }); 33165 gsap.matchMedia("(orientation: portrait)", function () { 33166 // when orientation changes, we should take new base measurements for the ignoreMobileResize feature. 33167 _setBaseDimensions(); 33168 33169 return _setBaseDimensions; 33170 }); 33171 } else { 33172 console.warn("Requires GSAP 3.11.0 or later"); 33173 } 33174 33175 _setBaseDimensions(); 33176 33177 _addListener(_doc, "scroll", _onScroll); // some browsers (like Chrome), the window stops dispatching scroll events on the window if you scroll really fast, but it's consistent on the document! 33178 33179 33180 var bodyStyle = _body.style, 33181 border = bodyStyle.borderTopStyle, 33182 AnimationProto = gsap.core.Animation.prototype, 33183 bounds, 33184 i; 33185 AnimationProto.revert || Object.defineProperty(AnimationProto, "revert", { 33186 value: function value() { 33187 return this.time(-0.01, true); 33188 } 33189 }); // only for backwards compatibility (Animation.revert() was added after 3.10.4) 33190 33191 bodyStyle.borderTopStyle = "solid"; // works around an issue where a margin of a child element could throw off the bounds of the _body, making it seem like there's a margin when there actually isn't. The border ensures that the bounds are accurate. 33192 33193 bounds = _getBounds(_body); 33194 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical.m = Math.round(bounds.top + _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical.sc()) || 0; // accommodate the offset of the <body> caused by margins and/or padding 33195 33196 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._horizontal.m = Math.round(bounds.left + _Observer_js__WEBPACK_IMPORTED_MODULE_0__._horizontal.sc()) || 0; 33197 border ? bodyStyle.borderTopStyle = border : bodyStyle.removeProperty("border-top-style"); // TODO: (?) maybe move to leveraging the velocity mechanism in Observer and skip intervals. 33198 33199 _syncInterval = setInterval(_sync, 250); 33200 gsap.delayedCall(0.5, function () { 33201 return _startup = 0; 33202 }); 33203 33204 _addListener(_doc, "touchcancel", _passThrough); // some older Android devices intermittently stop dispatching "touchmove" events if we don't listen for "touchcancel" on the document. 33205 33206 33207 _addListener(_body, "touchstart", _passThrough); //works around Safari bug: https://gsap.com/forums/topic/21450-draggable-in-iframe-on-mobile-is-buggy/ 33208 33209 33210 _multiListener(_addListener, _doc, "pointerdown,touchstart,mousedown", _pointerDownHandler); 33211 33212 _multiListener(_addListener, _doc, "pointerup,touchend,mouseup", _pointerUpHandler); 33213 33214 _transformProp = gsap.utils.checkPrefix("transform"); 33215 33216 _stateProps.push(_transformProp); 33217 33218 _coreInitted = _getTime(); 33219 _resizeDelay = gsap.delayedCall(0.2, _refreshAll).pause(); 33220 _autoRefresh = [_doc, "visibilitychange", function () { 33221 var w = _win.innerWidth, 33222 h = _win.innerHeight; 33223 33224 if (_doc.hidden) { 33225 _prevWidth = w; 33226 _prevHeight = h; 33227 } else if (_prevWidth !== w || _prevHeight !== h) { 33228 _onResize(); 33229 } 33230 }, _doc, "DOMContentLoaded", _refreshAll, _win, "load", _refreshAll, _win, "resize", _onResize]; 33231 33232 _iterateAutoRefresh(_addListener); 33233 33234 _triggers.forEach(function (trigger) { 33235 return trigger.enable(0, 1); 33236 }); 33237 33238 for (i = 0; i < _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.length; i += 3) { 33239 _wheelListener(_removeListener, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers[i], _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers[i + 1]); 33240 33241 _wheelListener(_removeListener, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers[i], _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers[i + 2]); 33242 } 33243 } 33244 } 33245 }; 33246 33247 ScrollTrigger.config = function config(vars) { 33248 "limitCallbacks" in vars && (_limitCallbacks = !!vars.limitCallbacks); 33249 var ms = vars.syncInterval; 33250 ms && clearInterval(_syncInterval) || (_syncInterval = ms) && setInterval(_sync, ms); 33251 "ignoreMobileResize" in vars && (_ignoreMobileResize = ScrollTrigger.isTouch === 1 && vars.ignoreMobileResize); 33252 33253 if ("autoRefreshEvents" in vars) { 33254 _iterateAutoRefresh(_removeListener) || _iterateAutoRefresh(_addListener, vars.autoRefreshEvents || "none"); 33255 _ignoreResize = (vars.autoRefreshEvents + "").indexOf("resize") === -1; 33256 } 33257 }; 33258 33259 ScrollTrigger.scrollerProxy = function scrollerProxy(target, vars) { 33260 var t = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(target), 33261 i = _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.indexOf(t), 33262 isViewport = _isViewport(t); 33263 33264 if (~i) { 33265 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.splice(i, isViewport ? 6 : 2); 33266 } 33267 33268 if (vars) { 33269 isViewport ? _Observer_js__WEBPACK_IMPORTED_MODULE_0__._proxies.unshift(_win, vars, _body, vars, _docEl, vars) : _Observer_js__WEBPACK_IMPORTED_MODULE_0__._proxies.unshift(t, vars); 33270 } 33271 }; 33272 33273 ScrollTrigger.clearMatchMedia = function clearMatchMedia(query) { 33274 _triggers.forEach(function (t) { 33275 return t._ctx && t._ctx.query === query && t._ctx.kill(true, true); 33276 }); 33277 }; 33278 33279 ScrollTrigger.isInViewport = function isInViewport(element, ratio, horizontal) { 33280 var bounds = (_isString(element) ? (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(element) : element).getBoundingClientRect(), 33281 offset = bounds[horizontal ? _width : _height] * ratio || 0; 33282 return horizontal ? bounds.right - offset > 0 && bounds.left + offset < _win.innerWidth : bounds.bottom - offset > 0 && bounds.top + offset < _win.innerHeight; 33283 }; 33284 33285 ScrollTrigger.positionInViewport = function positionInViewport(element, referencePoint, horizontal) { 33286 _isString(element) && (element = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(element)); 33287 var bounds = element.getBoundingClientRect(), 33288 size = bounds[horizontal ? _width : _height], 33289 offset = referencePoint == null ? size / 2 : referencePoint in _keywords ? _keywords[referencePoint] * size : ~referencePoint.indexOf("%") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0; 33290 return horizontal ? (bounds.left + offset) / _win.innerWidth : (bounds.top + offset) / _win.innerHeight; 33291 }; 33292 33293 ScrollTrigger.killAll = function killAll(allowListeners) { 33294 _triggers.slice(0).forEach(function (t) { 33295 return t.vars.id !== "ScrollSmoother" && t.kill(); 33296 }); 33297 33298 if (allowListeners !== true) { 33299 var listeners = _listeners.killAll || []; 33300 _listeners = {}; 33301 listeners.forEach(function (f) { 33302 return f(); 33303 }); 33304 } 33305 }; 33306 33307 return ScrollTrigger; 33308}(); 33309ScrollTrigger.version = "3.12.5"; 33310 33311ScrollTrigger.saveStyles = function (targets) { 33312 return targets ? _toArray(targets).forEach(function (target) { 33313 // saved styles are recorded in a consecutive alternating Array, like [element, cssText, transform attribute, cache, matchMedia, ...] 33314 if (target && target.style) { 33315 var i = _savedStyles.indexOf(target); 33316 33317 i >= 0 && _savedStyles.splice(i, 5); 33318 33319 _savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute("transform"), gsap.core.getCache(target), _context()); 33320 } 33321 }) : _savedStyles; 33322}; 33323 33324ScrollTrigger.revert = function (soft, media) { 33325 return _revertAll(!soft, media); 33326}; 33327 33328ScrollTrigger.create = function (vars, animation) { 33329 return new ScrollTrigger(vars, animation); 33330}; 33331 33332ScrollTrigger.refresh = function (safe) { 33333 return safe ? _onResize() : (_coreInitted || ScrollTrigger.register()) && _refreshAll(true); 33334}; 33335 33336ScrollTrigger.update = function (force) { 33337 return ++_Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.cache && _updateAll(force === true ? 2 : 0); 33338}; 33339 33340ScrollTrigger.clearScrollMemory = _clearScrollMemory; 33341 33342ScrollTrigger.maxScroll = function (element, horizontal) { 33343 return _maxScroll(element, horizontal ? _Observer_js__WEBPACK_IMPORTED_MODULE_0__._horizontal : _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical); 33344}; 33345 33346ScrollTrigger.getScrollFunc = function (element, horizontal) { 33347 return (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getScrollFunc)((0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(element), horizontal ? _Observer_js__WEBPACK_IMPORTED_MODULE_0__._horizontal : _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical); 33348}; 33349 33350ScrollTrigger.getById = function (id) { 33351 return _ids[id]; 33352}; 33353 33354ScrollTrigger.getAll = function () { 33355 return _triggers.filter(function (t) { 33356 return t.vars.id !== "ScrollSmoother"; 33357 }); 33358}; // it's common for people to ScrollTrigger.getAll(t => t.kill()) on page routes, for example, and we don't want it to ruin smooth scrolling by killing the main ScrollSmoother one. 33359 33360 33361ScrollTrigger.isScrolling = function () { 33362 return !!_lastScrollTime; 33363}; 33364 33365ScrollTrigger.snapDirectional = _snapDirectional; 33366 33367ScrollTrigger.addEventListener = function (type, callback) { 33368 var a = _listeners[type] || (_listeners[type] = []); 33369 ~a.indexOf(callback) || a.push(callback); 33370}; 33371 33372ScrollTrigger.removeEventListener = function (type, callback) { 33373 var a = _listeners[type], 33374 i = a && a.indexOf(callback); 33375 i >= 0 && a.splice(i, 1); 33376}; 33377 33378ScrollTrigger.batch = function (targets, vars) { 33379 var result = [], 33380 varsCopy = {}, 33381 interval = vars.interval || 0.016, 33382 batchMax = vars.batchMax || 1e9, 33383 proxyCallback = function proxyCallback(type, callback) { 33384 var elements = [], 33385 triggers = [], 33386 delay = gsap.delayedCall(interval, function () { 33387 callback(elements, triggers); 33388 elements = []; 33389 triggers = []; 33390 }).pause(); 33391 return function (self) { 33392 elements.length || delay.restart(true); 33393 elements.push(self.trigger); 33394 triggers.push(self); 33395 batchMax <= elements.length && delay.progress(1); 33396 }; 33397 }, 33398 p; 33399 33400 for (p in vars) { 33401 varsCopy[p] = p.substr(0, 2) === "on" && _isFunction(vars[p]) && p !== "onRefreshInit" ? proxyCallback(p, vars[p]) : vars[p]; 33402 } 33403 33404 if (_isFunction(batchMax)) { 33405 batchMax = batchMax(); 33406 33407 _addListener(ScrollTrigger, "refresh", function () { 33408 return batchMax = vars.batchMax(); 33409 }); 33410 } 33411 33412 _toArray(targets).forEach(function (target) { 33413 var config = {}; 33414 33415 for (p in varsCopy) { 33416 config[p] = varsCopy[p]; 33417 } 33418 33419 config.trigger = target; 33420 result.push(ScrollTrigger.create(config)); 33421 }); 33422 33423 return result; 33424}; // to reduce file size. clamps the scroll and also returns a duration multiplier so that if the scroll gets chopped shorter, the duration gets curtailed as well (otherwise if you're very close to the top of the page, for example, and swipe up really fast, it'll suddenly slow down and take a long time to reach the top). 33425 33426 33427var _clampScrollAndGetDurationMultiplier = function _clampScrollAndGetDurationMultiplier(scrollFunc, current, end, max) { 33428 current > max ? scrollFunc(max) : current < 0 && scrollFunc(0); 33429 return end > max ? (max - current) / (end - current) : end < 0 ? current / (current - end) : 1; 33430}, 33431 _allowNativePanning = function _allowNativePanning(target, direction) { 33432 if (direction === true) { 33433 target.style.removeProperty("touch-action"); 33434 } else { 33435 target.style.touchAction = direction === true ? "auto" : direction ? "pan-" + direction + (_Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer.isTouch ? " pinch-zoom" : "") : "none"; // note: Firefox doesn't support it pinch-zoom properly, at least in addition to a pan-x or pan-y. 33436 } 33437 33438 target === _docEl && _allowNativePanning(_body, direction); 33439}, 33440 _overflow = { 33441 auto: 1, 33442 scroll: 1 33443}, 33444 _nestedScroll = function _nestedScroll(_ref5) { 33445 var event = _ref5.event, 33446 target = _ref5.target, 33447 axis = _ref5.axis; 33448 33449 var node = (event.changedTouches ? event.changedTouches[0] : event).target, 33450 cache = node._gsap || gsap.core.getCache(node), 33451 time = _getTime(), 33452 cs; 33453 33454 if (!cache._isScrollT || time - cache._isScrollT > 2000) { 33455 // cache for 2 seconds to improve performance. 33456 while (node && node !== _body && (node.scrollHeight <= node.clientHeight && node.scrollWidth <= node.clientWidth || !(_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]))) { 33457 node = node.parentNode; 33458 } 33459 33460 cache._isScroll = node && node !== target && !_isViewport(node) && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]); 33461 cache._isScrollT = time; 33462 } 33463 33464 if (cache._isScroll || axis === "x") { 33465 event.stopPropagation(); 33466 event._gsapAllow = true; 33467 } 33468}, 33469 // capture events on scrollable elements INSIDE the <body> and allow those by calling stopPropagation() when we find a scrollable ancestor 33470_inputObserver = function _inputObserver(target, type, inputs, nested) { 33471 return _Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer.create({ 33472 target: target, 33473 capture: true, 33474 debounce: false, 33475 lockAxis: true, 33476 type: type, 33477 onWheel: nested = nested && _nestedScroll, 33478 onPress: nested, 33479 onDrag: nested, 33480 onScroll: nested, 33481 onEnable: function onEnable() { 33482 return inputs && _addListener(_doc, _Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer.eventTypes[0], _captureInputs, false, true); 33483 }, 33484 onDisable: function onDisable() { 33485 return _removeListener(_doc, _Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer.eventTypes[0], _captureInputs, true); 33486 } 33487 }); 33488}, 33489 _inputExp = /(input|label|select|textarea)/i, 33490 _inputIsFocused, 33491 _captureInputs = function _captureInputs(e) { 33492 var isInput = _inputExp.test(e.target.tagName); 33493 33494 if (isInput || _inputIsFocused) { 33495 e._gsapAllow = true; 33496 _inputIsFocused = isInput; 33497 } 33498}, 33499 _getScrollNormalizer = function _getScrollNormalizer(vars) { 33500 _isObject(vars) || (vars = {}); 33501 vars.preventDefault = vars.isNormalizer = vars.allowClicks = true; 33502 vars.type || (vars.type = "wheel,touch"); 33503 vars.debounce = !!vars.debounce; 33504 vars.id = vars.id || "normalizer"; 33505 33506 var _vars2 = vars, 33507 normalizeScrollX = _vars2.normalizeScrollX, 33508 momentum = _vars2.momentum, 33509 allowNestedScroll = _vars2.allowNestedScroll, 33510 onRelease = _vars2.onRelease, 33511 self, 33512 maxY, 33513 target = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(vars.target) || _docEl, 33514 smoother = gsap.core.globals().ScrollSmoother, 33515 smootherInstance = smoother && smoother.get(), 33516 content = _fixIOSBug && (vars.content && (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getTarget)(vars.content) || smootherInstance && vars.content !== false && !smootherInstance.smooth() && smootherInstance.content()), 33517 scrollFuncY = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getScrollFunc)(target, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical), 33518 scrollFuncX = (0,_Observer_js__WEBPACK_IMPORTED_MODULE_0__._getScrollFunc)(target, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._horizontal), 33519 scale = 1, 33520 initialScale = (_Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer.isTouch && _win.visualViewport ? _win.visualViewport.scale * _win.visualViewport.width : _win.outerWidth) / _win.innerWidth, 33521 wheelRefresh = 0, 33522 resolveMomentumDuration = _isFunction(momentum) ? function () { 33523 return momentum(self); 33524 } : function () { 33525 return momentum || 2.8; 33526 }, 33527 lastRefreshID, 33528 skipTouchMove, 33529 inputObserver = _inputObserver(target, vars.type, true, allowNestedScroll), 33530 resumeTouchMove = function resumeTouchMove() { 33531 return skipTouchMove = false; 33532 }, 33533 scrollClampX = _passThrough, 33534 scrollClampY = _passThrough, 33535 updateClamps = function updateClamps() { 33536 maxY = _maxScroll(target, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical); 33537 scrollClampY = _clamp(_fixIOSBug ? 1 : 0, maxY); 33538 normalizeScrollX && (scrollClampX = _clamp(0, _maxScroll(target, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._horizontal))); 33539 lastRefreshID = _refreshID; 33540 }, 33541 removeContentOffset = function removeContentOffset() { 33542 content._gsap.y = _round(parseFloat(content._gsap.y) + scrollFuncY.offset) + "px"; 33543 content.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + parseFloat(content._gsap.y) + ", 0, 1)"; 33544 scrollFuncY.offset = scrollFuncY.cacheID = 0; 33545 }, 33546 ignoreDrag = function ignoreDrag() { 33547 if (skipTouchMove) { 33548 requestAnimationFrame(resumeTouchMove); 33549 33550 var offset = _round(self.deltaY / 2), 33551 scroll = scrollClampY(scrollFuncY.v - offset); 33552 33553 if (content && scroll !== scrollFuncY.v + scrollFuncY.offset) { 33554 scrollFuncY.offset = scroll - scrollFuncY.v; 33555 33556 var y = _round((parseFloat(content && content._gsap.y) || 0) - scrollFuncY.offset); 33557 33558 content.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + y + ", 0, 1)"; 33559 content._gsap.y = y + "px"; 33560 scrollFuncY.cacheID = _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.cache; 33561 33562 _updateAll(); 33563 } 33564 33565 return true; 33566 } 33567 33568 scrollFuncY.offset && removeContentOffset(); 33569 skipTouchMove = true; 33570 }, 33571 tween, 33572 startScrollX, 33573 startScrollY, 33574 onStopDelayedCall, 33575 onResize = function onResize() { 33576 // if the window resizes, like on an iPhone which Apple FORCES the address bar to show/hide even if we event.preventDefault(), it may be scrolling too far now that the address bar is showing, so we must dynamically adjust the momentum tween. 33577 updateClamps(); 33578 33579 if (tween.isActive() && tween.vars.scrollY > maxY) { 33580 scrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo("scrollY", maxY); 33581 } 33582 }; 33583 33584 content && gsap.set(content, { 33585 y: "+=0" 33586 }); // to ensure there's a cache (element._gsap) 33587 33588 vars.ignoreCheck = function (e) { 33589 return _fixIOSBug && e.type === "touchmove" && ignoreDrag(e) || scale > 1.05 && e.type !== "touchstart" || self.isGesturing || e.touches && e.touches.length > 1; 33590 }; 33591 33592 vars.onPress = function () { 33593 skipTouchMove = false; 33594 var prevScale = scale; 33595 scale = _round((_win.visualViewport && _win.visualViewport.scale || 1) / initialScale); 33596 tween.pause(); 33597 prevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : "x"); 33598 startScrollX = scrollFuncX(); 33599 startScrollY = scrollFuncY(); 33600 updateClamps(); 33601 lastRefreshID = _refreshID; 33602 }; 33603 33604 vars.onRelease = vars.onGestureStart = function (self, wasDragging) { 33605 scrollFuncY.offset && removeContentOffset(); 33606 33607 if (!wasDragging) { 33608 onStopDelayedCall.restart(true); 33609 } else { 33610 _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers.cache++; // make sure we're pulling the non-cached value 33611 // alternate algorithm: durX = Math.min(6, Math.abs(self.velocityX / 800)), dur = Math.max(durX, Math.min(6, Math.abs(self.velocityY / 800))); dur = dur * (0.4 + (1 - _power4In(dur / 6)) * 0.6)) * (momentumSpeed || 1) 33612 33613 var dur = resolveMomentumDuration(), 33614 currentScroll, 33615 endScroll; 33616 33617 if (normalizeScrollX) { 33618 currentScroll = scrollFuncX(); 33619 endScroll = currentScroll + dur * 0.05 * -self.velocityX / 0.227; // the constant .227 is from power4(0.05). velocity is inverted because scrolling goes in the opposite direction. 33620 33621 dur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._horizontal)); 33622 tween.vars.scrollX = scrollClampX(endScroll); 33623 } 33624 33625 currentScroll = scrollFuncY(); 33626 endScroll = currentScroll + dur * 0.05 * -self.velocityY / 0.227; // the constant .227 is from power4(0.05) 33627 33628 dur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _Observer_js__WEBPACK_IMPORTED_MODULE_0__._vertical)); 33629 tween.vars.scrollY = scrollClampY(endScroll); 33630 tween.invalidate().duration(dur).play(0.01); 33631 33632 if (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY - 1) { 33633 // iOS bug: it'll show the address bar but NOT fire the window "resize" event until the animation is done but we must protect against overshoot so we leverage an onUpdate to do so. 33634 gsap.to({}, { 33635 onUpdate: onResize, 33636 duration: dur 33637 }); 33638 } 33639 } 33640 33641 onRelease && onRelease(self); 33642 }; 33643 33644 vars.onWheel = function () { 33645 tween._ts && tween.pause(); 33646 33647 if (_getTime() - wheelRefresh > 1000) { 33648 // after 1 second, refresh the clamps otherwise that'll only happen when ScrollTrigger.refresh() is called or for touch-scrolling. 33649 lastRefreshID = 0; 33650 wheelRefresh = _getTime(); 33651 } 33652 }; 33653 33654 vars.onChange = function (self, dx, dy, xArray, yArray) { 33655 _refreshID !== lastRefreshID && updateClamps(); 33656 dx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self.startX - self.x) : scrollFuncX() + dx - xArray[1])); // for more precision, we track pointer/touch movement from the start, otherwise it'll drift. 33657 33658 if (dy) { 33659 scrollFuncY.offset && removeContentOffset(); 33660 var isTouch = yArray[2] === dy, 33661 y = isTouch ? startScrollY + self.startY - self.y : scrollFuncY() + dy - yArray[1], 33662 yClamped = scrollClampY(y); 33663 isTouch && y !== yClamped && (startScrollY += yClamped - y); 33664 scrollFuncY(yClamped); 33665 } 33666 33667 (dy || dx) && _updateAll(); 33668 }; 33669 33670 vars.onEnable = function () { 33671 _allowNativePanning(target, normalizeScrollX ? false : "x"); 33672 33673 ScrollTrigger.addEventListener("refresh", onResize); 33674 33675 _addListener(_win, "resize", onResize); 33676 33677 if (scrollFuncY.smooth) { 33678 scrollFuncY.target.style.scrollBehavior = "auto"; 33679 scrollFuncY.smooth = scrollFuncX.smooth = false; 33680 } 33681 33682 inputObserver.enable(); 33683 }; 33684 33685 vars.onDisable = function () { 33686 _allowNativePanning(target, true); 33687 33688 _removeListener(_win, "resize", onResize); 33689 33690 ScrollTrigger.removeEventListener("refresh", onResize); 33691 inputObserver.kill(); 33692 }; 33693 33694 vars.lockAxis = vars.lockAxis !== false; 33695 self = new _Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer(vars); 33696 self.iOS = _fixIOSBug; // used in the Observer getCachedScroll() function to work around an iOS bug that wreaks havoc with TouchEvent.clientY if we allow scroll to go all the way back to 0. 33697 33698 _fixIOSBug && !scrollFuncY() && scrollFuncY(1); // iOS bug causes event.clientY values to freak out (wildly inaccurate) if the scroll position is exactly 0. 33699 33700 _fixIOSBug && gsap.ticker.add(_passThrough); // prevent the ticker from sleeping 33701 33702 onStopDelayedCall = self._dc; 33703 tween = gsap.to(self, { 33704 ease: "power4", 33705 paused: true, 33706 inherit: false, 33707 scrollX: normalizeScrollX ? "+=0.1" : "+=0", 33708 scrollY: "+=0.1", 33709 modifiers: { 33710 scrollY: _interruptionTracker(scrollFuncY, scrollFuncY(), function () { 33711 return tween.pause(); 33712 }) 33713 }, 33714 onUpdate: _updateAll, 33715 onComplete: onStopDelayedCall.vars.onComplete 33716 }); // we need the modifier to sense if the scroll position is altered outside of the momentum tween (like with a scrollTo tween) so we can pause() it to prevent conflicts. 33717 33718 return self; 33719}; 33720 33721ScrollTrigger.sort = function (func) { 33722 return _triggers.sort(func || function (a, b) { 33723 return (a.vars.refreshPriority || 0) * -1e6 + a.start - (b.start + (b.vars.refreshPriority || 0) * -1e6); 33724 }); 33725}; 33726 33727ScrollTrigger.observe = function (vars) { 33728 return new _Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer(vars); 33729}; 33730 33731ScrollTrigger.normalizeScroll = function (vars) { 33732 if (typeof vars === "undefined") { 33733 return _normalizer; 33734 } 33735 33736 if (vars === true && _normalizer) { 33737 return _normalizer.enable(); 33738 } 33739 33740 if (vars === false) { 33741 _normalizer && _normalizer.kill(); 33742 _normalizer = vars; 33743 return; 33744 } 33745 33746 var normalizer = vars instanceof _Observer_js__WEBPACK_IMPORTED_MODULE_0__.Observer ? vars : _getScrollNormalizer(vars); 33747 _normalizer && _normalizer.target === normalizer.target && _normalizer.kill(); 33748 _isViewport(normalizer.target) && (_normalizer = normalizer); 33749 return normalizer; 33750}; 33751 33752ScrollTrigger.core = { 33753 // smaller file size way to leverage in ScrollSmoother and Observer 33754 _getVelocityProp: _Observer_js__WEBPACK_IMPORTED_MODULE_0__._getVelocityProp, 33755 _inputObserver: _inputObserver, 33756 _scrollers: _Observer_js__WEBPACK_IMPORTED_MODULE_0__._scrollers, 33757 _proxies: _Observer_js__WEBPACK_IMPORTED_MODULE_0__._proxies, 33758 bridge: { 33759 // when normalizeScroll sets the scroll position (ss = setScroll) 33760 ss: function ss() { 33761 _lastScrollTime || _dispatch("scrollStart"); 33762 _lastScrollTime = _getTime(); 33763 }, 33764 // a way to get the _refreshing value in Observer 33765 ref: function ref() { 33766 return _refreshing; 33767 } 33768 } 33769}; 33770_getGSAP() && gsap.registerPlugin(ScrollTrigger); 33771 33772 33773/***/ }), 33774
vendor: 174,839 bytes, lines 33775-38343
33775/***/ "./node_modules/gsap/gsap-core.js": 33776/*!****************************************!*\ 33777 !*** ./node_modules/gsap/gsap-core.js ***! 33778 \****************************************/ 33779/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 33780 33781"use strict"; 33782__webpack_require__.r(__webpack_exports__); 33783/* harmony export */ __webpack_require__.d(__webpack_exports__, { 33784/* harmony export */ "Animation": () => (/* binding */ Animation), 33785/* harmony export */ "Back": () => (/* binding */ Back), 33786/* harmony export */ "Bounce": () => (/* binding */ Bounce), 33787/* harmony export */ "Circ": () => (/* binding */ Circ), 33788/* harmony export */ "Cubic": () => (/* binding */ Cubic), 33789/* harmony export */ "Elastic": () => (/* binding */ Elastic), 33790/* harmony export */ "Expo": () => (/* binding */ Expo), 33791/* harmony export */ "GSCache": () => (/* binding */ GSCache), 33792/* harmony export */ "Linear": () => (/* binding */ Linear), 33793/* harmony export */ "Power0": () => (/* binding */ Power0), 33794/* harmony export */ "Power1": () => (/* binding */ Power1), 33795/* harmony export */ "Power2": () => (/* binding */ Power2), 33796/* harmony export */ "Power3": () => (/* binding */ Power3), 33797/* harmony export */ "Power4": () => (/* binding */ Power4), 33798/* harmony export */ "PropTween": () => (/* binding */ PropTween), 33799/* harmony export */ "Quad": () => (/* binding */ Quad), 33800/* harmony export */ "Quart": () => (/* binding */ Quart), 33801/* harmony export */ "Quint": () => (/* binding */ Quint), 33802/* harmony export */ "Sine": () => (/* binding */ Sine), 33803/* harmony export */ "SteppedEase": () => (/* binding */ SteppedEase), 33804/* harmony export */ "Strong": () => (/* binding */ Strong), 33805/* harmony export */ "Timeline": () => (/* binding */ Timeline), 33806/* harmony export */ "TimelineLite": () => (/* binding */ Timeline), 33807/* harmony export */ "TimelineMax": () => (/* binding */ Timeline), 33808/* harmony export */ "Tween": () => (/* binding */ Tween), 33809/* harmony export */ "TweenLite": () => (/* binding */ Tween), 33810/* harmony export */ "TweenMax": () => (/* binding */ Tween), 33811/* harmony export */ "_checkPlugin": () => (/* binding */ _checkPlugin), 33812/* harmony export */ "_colorExp": () => (/* binding */ _colorExp), 33813/* harmony export */ "_colorStringFilter": () => (/* binding */ _colorStringFilter), 33814/* harmony export */ "_config": () => (/* binding */ _config), 33815/* harmony export */ "_forEachName": () => (/* binding */ _forEachName), 33816/* harmony export */ "_getCache": () => (/* binding */ _getCache), 33817/* harmony export */ "_getProperty": () => (/* binding */ _getProperty), 33818/* harmony export */ "_getSetter": () => (/* binding */ _getSetter), 33819/* harmony export */ "_isString": () => (/* binding */ _isString), 33820/* harmony export */ "_isUndefined": () => (/* binding */ _isUndefined), 33821/* harmony export */ "_missingPlugin": () => (/* binding */ _missingPlugin), 33822/* harmony export */ "_numExp": () => (/* binding */ _numExp), 33823/* harmony export */ "_numWithUnitExp": () => (/* binding */ _numWithUnitExp), 33824/* harmony export */ "_parseRelative": () => (/* binding */ _parseRelative), 33825/* harmony export */ "_plugins": () => (/* binding */ _plugins), 33826/* harmony export */ "_relExp": () => (/* binding */ _relExp), 33827/* harmony export */ "_removeLinkedListItem": () => (/* binding */ _removeLinkedListItem), 33828/* harmony export */ "_renderComplexString": () => (/* binding */ _renderComplexString), 33829/* harmony export */ "_replaceRandom": () => (/* binding */ _replaceRandom), 33830/* harmony export */ "_round": () => (/* binding */ _round), 33831/* harmony export */ "_roundModifier": () => (/* binding */ _roundModifier), 33832/* harmony export */ "_setDefaults": () => (/* binding */ _setDefaults), 33833/* harmony export */ "_sortPropTweensByPriority": () => (/* binding */ _sortPropTweensByPriority), 33834/* harmony export */ "_ticker": () => (/* binding */ _ticker), 33835/* harmony export */ "clamp": () => (/* binding */ clamp), 33836/* harmony export */ "default": () => (/* binding */ gsap), 33837/* harmony export */ "distribute": () => (/* binding */ distribute), 33838/* harmony export */ "getUnit": () => (/* binding */ getUnit), 33839/* harmony export */ "gsap": () => (/* binding */ gsap), 33840/* harmony export */ "interpolate": () => (/* binding */ interpolate), 33841/* harmony export */ "mapRange": () => (/* binding */ mapRange), 33842/* harmony export */ "normalize": () => (/* binding */ normalize), 33843/* harmony export */ "pipe": () => (/* binding */ pipe), 33844/* harmony export */ "random": () => (/* binding */ random), 33845/* harmony export */ "selector": () => (/* binding */ selector), 33846/* harmony export */ "shuffle": () => (/* binding */ shuffle), 33847/* harmony export */ "snap": () => (/* binding */ snap), 33848/* harmony export */ "splitColor": () => (/* binding */ splitColor), 33849/* harmony export */ "toArray": () => (/* binding */ toArray), 33850/* harmony export */ "unitize": () => (/* binding */ unitize), 33851/* harmony export */ "wrap": () => (/* binding */ wrap), 33852/* harmony export */ "wrapYoyo": () => (/* binding */ wrapYoyo) 33853/* harmony export */ }); 33854function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 33855 33856function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } 33857 33858/*! 33859 * GSAP 3.12.5 33860 * https://gsap.com 33861 * 33862 * @license Copyright 2008-2024, GreenSock. All rights reserved. 33863 * Subject to the terms at https://gsap.com/standard-license or for 33864 * Club GSAP members, the agreement issued with that membership. 33865 * @author: Jack Doyle, [email protected] 33866*/ 33867 33868/* eslint-disable */ 33869var _config = { 33870 autoSleep: 120, 33871 force3D: "auto", 33872 nullTargetWarn: 1, 33873 units: { 33874 lineHeight: "" 33875 } 33876}, 33877 _defaults = { 33878 duration: .5, 33879 overwrite: false, 33880 delay: 0 33881}, 33882 _suppressOverwrites, 33883 _reverting, 33884 _context, 33885 _bigNum = 1e8, 33886 _tinyNum = 1 / _bigNum, 33887 _2PI = Math.PI * 2, 33888 _HALF_PI = _2PI / 4, 33889 _gsID = 0, 33890 _sqrt = Math.sqrt, 33891 _cos = Math.cos, 33892 _sin = Math.sin, 33893 _isString = function _isString(value) { 33894 return typeof value === "string"; 33895}, 33896 _isFunction = function _isFunction(value) { 33897 return typeof value === "function"; 33898}, 33899 _isNumber = function _isNumber(value) { 33900 return typeof value === "number"; 33901}, 33902 _isUndefined = function _isUndefined(value) { 33903 return typeof value === "undefined"; 33904}, 33905 _isObject = function _isObject(value) { 33906 return typeof value === "object"; 33907}, 33908 _isNotFalse = function _isNotFalse(value) { 33909 return value !== false; 33910}, 33911 _windowExists = function _windowExists() { 33912 return typeof window !== "undefined"; 33913}, 33914 _isFuncOrString = function _isFuncOrString(value) { 33915 return _isFunction(value) || _isString(value); 33916}, 33917 _isTypedArray = typeof ArrayBuffer === "function" && ArrayBuffer.isView || function () {}, 33918 // note: IE10 has ArrayBuffer, but NOT ArrayBuffer.isView(). 33919_isArray = Array.isArray, 33920 _strictNumExp = /(?:-?\.?\d|\.)+/gi, 33921 //only numbers (including negatives and decimals) but NOT relative values. 33922_numExp = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g, 33923 //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8. 33924_numWithUnitExp = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g, 33925 _complexStringNumExp = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi, 33926 //duplicate so that while we're looping through matches from exec(), it doesn't contaminate the lastIndex of _numExp which we use to search for colors too. 33927_relExp = /[+-]=-?[.\d]+/, 33928 _delimitedValueExp = /[^,'"\[\]\s]+/gi, 33929 // previously /[#\-+.]*\b[a-z\d\-=+%.]+/gi but didn't catch special characters. 33930_unitExp = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i, 33931 _globalTimeline, 33932 _win, 33933 _coreInitted, 33934 _doc, 33935 _globals = {}, 33936 _installScope = {}, 33937 _coreReady, 33938 _install = function _install(scope) { 33939 return (_installScope = _merge(scope, _globals)) && gsap; 33940}, 33941 _missingPlugin = function _missingPlugin(property, value) { 33942 return console.warn("Invalid property", property, "set to", value, "Missing plugin? gsap.registerPlugin()"); 33943}, 33944 _warn = function _warn(message, suppress) { 33945 return !suppress && console.warn(message); 33946}, 33947 _addGlobal = function _addGlobal(name, obj) { 33948 return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals; 33949}, 33950 _emptyFunc = function _emptyFunc() { 33951 return 0; 33952}, 33953 _startAtRevertConfig = { 33954 suppressEvents: true, 33955 isStart: true, 33956 kill: false 33957}, 33958 _revertConfigNoKill = { 33959 suppressEvents: true, 33960 kill: false 33961}, 33962 _revertConfig = { 33963 suppressEvents: true 33964}, 33965 _reservedProps = {}, 33966 _lazyTweens = [], 33967 _lazyLookup = {}, 33968 _lastRenderedFrame, 33969 _plugins = {}, 33970 _effects = {}, 33971 _nextGCFrame = 30, 33972 _harnessPlugins = [], 33973 _callbackNames = "", 33974 _harness = function _harness(targets) { 33975 var target = targets[0], 33976 harnessPlugin, 33977 i; 33978 _isObject(target) || _isFunction(target) || (targets = [targets]); 33979 33980 if (!(harnessPlugin = (target._gsap || {}).harness)) { 33981 // find the first target with a harness. We assume targets passed into an animation will be of similar type, meaning the same kind of harness can be used for them all (performance optimization) 33982 i = _harnessPlugins.length; 33983 33984 while (i-- && !_harnessPlugins[i].targetTest(target)) {} 33985 33986 harnessPlugin = _harnessPlugins[i]; 33987 } 33988 33989 i = targets.length; 33990 33991 while (i--) { 33992 targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1); 33993 } 33994 33995 return targets; 33996}, 33997 _getCache = function _getCache(target) { 33998 return target._gsap || _harness(toArray(target))[0]._gsap; 33999}, 34000 _getProperty = function _getProperty(target, property, v) { 34001 return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v; 34002}, 34003 _forEachName = function _forEachName(names, func) { 34004 return (names = names.split(",")).forEach(func) || names; 34005}, 34006 //split a comma-delimited list of names into an array, then run a forEach() function and return the split array (this is just a way to consolidate/shorten some code). 34007_round = function _round(value) { 34008 return Math.round(value * 100000) / 100000 || 0; 34009}, 34010 _roundPrecise = function _roundPrecise(value) { 34011 return Math.round(value * 10000000) / 10000000 || 0; 34012}, 34013 // increased precision mostly for timing values. 34014_parseRelative = function _parseRelative(start, value) { 34015 var operator = value.charAt(0), 34016 end = parseFloat(value.substr(2)); 34017 start = parseFloat(start); 34018 return operator === "+" ? start + end : operator === "-" ? start - end : operator === "*" ? start * end : start / end; 34019}, 34020 _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) { 34021 //searches one array to find matches for any of the items in the toFind array. As soon as one is found, it returns true. It does NOT return all the matches; it's simply a boolean search. 34022 var l = toFind.length, 34023 i = 0; 34024 34025 for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {} 34026 34027 return i < l; 34028}, 34029 _lazyRender = function _lazyRender() { 34030 var l = _lazyTweens.length, 34031 a = _lazyTweens.slice(0), 34032 i, 34033 tween; 34034 34035 _lazyLookup = {}; 34036 _lazyTweens.length = 0; 34037 34038 for (i = 0; i < l; i++) { 34039 tween = a[i]; 34040 tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0); 34041 } 34042}, 34043 _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) { 34044 _lazyTweens.length && !_reverting && _lazyRender(); 34045 animation.render(time, suppressEvents, force || _reverting && time < 0 && (animation._initted || animation._startAt)); 34046 _lazyTweens.length && !_reverting && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render. 34047}, 34048 _numericIfPossible = function _numericIfPossible(value) { 34049 var n = parseFloat(value); 34050 return (n || n === 0) && (value + "").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value; 34051}, 34052 _passThrough = function _passThrough(p) { 34053 return p; 34054}, 34055 _setDefaults = function _setDefaults(obj, defaults) { 34056 for (var p in defaults) { 34057 p in obj || (obj[p] = defaults[p]); 34058 } 34059 34060 return obj; 34061}, 34062 _setKeyframeDefaults = function _setKeyframeDefaults(excludeDuration) { 34063 return function (obj, defaults) { 34064 for (var p in defaults) { 34065 p in obj || p === "duration" && excludeDuration || p === "ease" || (obj[p] = defaults[p]); 34066 } 34067 }; 34068}, 34069 _merge = function _merge(base, toMerge) { 34070 for (var p in toMerge) { 34071 base[p] = toMerge[p]; 34072 } 34073 34074 return base; 34075}, 34076 _mergeDeep = function _mergeDeep(base, toMerge) { 34077 for (var p in toMerge) { 34078 p !== "__proto__" && p !== "constructor" && p !== "prototype" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]); 34079 } 34080 34081 return base; 34082}, 34083 _copyExcluding = function _copyExcluding(obj, excluding) { 34084 var copy = {}, 34085 p; 34086 34087 for (p in obj) { 34088 p in excluding || (copy[p] = obj[p]); 34089 } 34090 34091 return copy; 34092}, 34093 _inheritDefaults = function _inheritDefaults(vars) { 34094 var parent = vars.parent || _globalTimeline, 34095 func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults; 34096 34097 if (_isNotFalse(vars.inherit)) { 34098 while (parent) { 34099 func(vars, parent.vars.defaults); 34100 parent = parent.parent || parent._dp; 34101 } 34102 } 34103 34104 return vars; 34105}, 34106 _arraysMatch = function _arraysMatch(a1, a2) { 34107 var i = a1.length, 34108 match = i === a2.length; 34109 34110 while (match && i-- && a1[i] === a2[i]) {} 34111 34112 return i < 0; 34113}, 34114 _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) { 34115 if (firstProp === void 0) { 34116 firstProp = "_first"; 34117 } 34118 34119 if (lastProp === void 0) { 34120 lastProp = "_last"; 34121 } 34122 34123 var prev = parent[lastProp], 34124 t; 34125 34126 if (sortBy) { 34127 t = child[sortBy]; 34128 34129 while (prev && prev[sortBy] > t) { 34130 prev = prev._prev; 34131 } 34132 } 34133 34134 if (prev) { 34135 child._next = prev._next; 34136 prev._next = child; 34137 } else { 34138 child._next = parent[firstProp]; 34139 parent[firstProp] = child; 34140 } 34141 34142 if (child._next) { 34143 child._next._prev = child; 34144 } else { 34145 parent[lastProp] = child; 34146 } 34147 34148 child._prev = prev; 34149 child.parent = child._dp = parent; 34150 return child; 34151}, 34152 _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) { 34153 if (firstProp === void 0) { 34154 firstProp = "_first"; 34155 } 34156 34157 if (lastProp === void 0) { 34158 lastProp = "_last"; 34159 } 34160 34161 var prev = child._prev, 34162 next = child._next; 34163 34164 if (prev) { 34165 prev._next = next; 34166 } else if (parent[firstProp] === child) { 34167 parent[firstProp] = next; 34168 } 34169 34170 if (next) { 34171 next._prev = prev; 34172 } else if (parent[lastProp] === child) { 34173 parent[lastProp] = prev; 34174 } 34175 34176 child._next = child._prev = child.parent = null; // don't delete the _dp just so we can revert if necessary. But parent should be null to indicate the item isn't in a linked list. 34177}, 34178 _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) { 34179 child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child); 34180 child._act = 0; 34181}, 34182 _uncache = function _uncache(animation, child) { 34183 if (animation && (!child || child._end > animation._dur || child._start < 0)) { 34184 // performance optimization: if a child animation is passed in we should only uncache if that child EXTENDS the animation (its end time is beyond the end) 34185 var a = animation; 34186 34187 while (a) { 34188 a._dirty = 1; 34189 a = a.parent; 34190 } 34191 } 34192 34193 return animation; 34194}, 34195 _recacheAncestors = function _recacheAncestors(animation) { 34196 var parent = animation.parent; 34197 34198 while (parent && parent.parent) { 34199 //sometimes we must force a re-sort of all children and update the duration/totalDuration of all ancestor timelines immediately in case, for example, in the middle of a render loop, one tween alters another tween's timeScale which shoves its startTime before 0, forcing the parent timeline to shift around and shiftChildren() which could affect that next tween's render (startTime). Doesn't matter for the root timeline though. 34200 parent._dirty = 1; 34201 parent.totalDuration(); 34202 parent = parent.parent; 34203 } 34204 34205 return animation; 34206}, 34207 _rewindStartAt = function _rewindStartAt(tween, totalTime, suppressEvents, force) { 34208 return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force)); 34209}, 34210 _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) { 34211 return !animation || animation._ts && _hasNoPausedAncestors(animation.parent); 34212}, 34213 _elapsedCycleDuration = function _elapsedCycleDuration(animation) { 34214 return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0; 34215}, 34216 // feed in the totalTime and cycleDuration and it'll return the cycle (iteration minus 1) and if the playhead is exactly at the very END, it will NOT bump up to the next cycle. 34217_animationCycle = function _animationCycle(tTime, cycleDuration) { 34218 var whole = Math.floor(tTime /= cycleDuration); 34219 return tTime && whole === tTime ? whole - 1 : whole; 34220}, 34221 _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) { 34222 return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur); 34223}, 34224 _setEnd = function _setEnd(animation) { 34225 return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0)); 34226}, 34227 _alignPlayhead = function _alignPlayhead(animation, totalTime) { 34228 // adjusts the animation's _start and _end according to the provided totalTime (only if the parent's smoothChildTiming is true and the animation isn't paused). It doesn't do any rendering or forcing things back into parent timelines, etc. - that's what totalTime() is for. 34229 var parent = animation._dp; 34230 34231 if (parent && parent.smoothChildTiming && animation._ts) { 34232 animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts)); 34233 34234 _setEnd(animation); 34235 34236 parent._dirty || _uncache(parent, animation); //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here. 34237 } 34238 34239 return animation; 34240}, 34241 34242/* 34243_totalTimeToTime = (clampedTotalTime, duration, repeat, repeatDelay, yoyo) => { 34244 let cycleDuration = duration + repeatDelay, 34245 time = _round(clampedTotalTime % cycleDuration); 34246 if (time > duration) { 34247 time = duration; 34248 } 34249 return (yoyo && (~~(clampedTotalTime / cycleDuration) & 1)) ? duration - time : time; 34250}, 34251*/ 34252_postAddChecks = function _postAddChecks(timeline, child) { 34253 var t; 34254 34255 if (child._time || !child._dur && child._initted || child._start < timeline._time && (child._dur || !child.add)) { 34256 // in case, for example, the _start is moved on a tween that has already rendered, or if it's being inserted into a timeline BEFORE where the playhead is currently. Imagine it's at its end state, then the startTime is moved WAY later (after the end of this timeline), it should render at its beginning. Special case: if it's a timeline (has .add() method) and no duration, we can skip rendering because the user may be populating it AFTER adding it to a parent timeline (unconventional, but possible, and we wouldn't want it to get removed if the parent's autoRemoveChildren is true). 34257 t = _parentToChildTotalTime(timeline.rawTime(), child); 34258 34259 if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) { 34260 child.render(t, true); 34261 } 34262 } //if the timeline has already ended but the inserted tween/timeline extends the duration, we should enable this timeline again so that it renders properly. We should also align the playhead with the parent timeline's when appropriate. 34263 34264 34265 if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) { 34266 //in case any of the ancestors had completed but should now be enabled... 34267 if (timeline._dur < timeline.duration()) { 34268 t = timeline; 34269 34270 while (t._dp) { 34271 t.rawTime() >= 0 && t.totalTime(t._tTime); //moves the timeline (shifts its startTime) if necessary, and also enables it. If it's currently zero, though, it may not be scheduled to render until later so there's no need to force it to align with the current playhead position. Only move to catch up with the playhead. 34272 34273 t = t._dp; 34274 } 34275 } 34276 34277 timeline._zTime = -_tinyNum; // helps ensure that the next render() will be forced (crossingStart = true in render()), even if the duration hasn't changed (we're adding a child which would need to get rendered). Definitely an edge case. Note: we MUST do this AFTER the loop above where the totalTime() might trigger a render() because this _addToTimeline() method gets called from the Animation constructor, BEFORE tweens even record their targets, etc. so we wouldn't want things to get triggered in the wrong order. 34278 } 34279}, 34280 _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) { 34281 child.parent && _removeFromParent(child); 34282 child._start = _roundPrecise((_isNumber(position) ? position : position || timeline !== _globalTimeline ? _parsePosition(timeline, position, child) : timeline._time) + child._delay); 34283 child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0)); 34284 34285 _addLinkedListItem(timeline, child, "_first", "_last", timeline._sort ? "_start" : 0); 34286 34287 _isFromOrFromStart(child) || (timeline._recent = child); 34288 skipChecks || _postAddChecks(timeline, child); 34289 timeline._ts < 0 && _alignPlayhead(timeline, timeline._tTime); // if the timeline is reversed and the new child makes it longer, we may need to adjust the parent's _start (push it back) 34290 34291 return timeline; 34292}, 34293 _scrollTrigger = function _scrollTrigger(animation, trigger) { 34294 return (_globals.ScrollTrigger || _missingPlugin("scrollTrigger", trigger)) && _globals.ScrollTrigger.create(trigger, animation); 34295}, 34296 _attemptInitTween = function _attemptInitTween(tween, time, force, suppressEvents, tTime) { 34297 _initTween(tween, time, tTime); 34298 34299 if (!tween._initted) { 34300 return 1; 34301 } 34302 34303 if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) { 34304 _lazyTweens.push(tween); 34305 34306 tween._lazy = [tTime, suppressEvents]; 34307 return 1; 34308 } 34309}, 34310 _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) { 34311 var parent = _ref.parent; 34312 return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent)); 34313}, 34314 // check parent's _lock because when a timeline repeats/yoyos and does its artificial wrapping, we shouldn't force the ratio back to 0 34315_isFromOrFromStart = function _isFromOrFromStart(_ref2) { 34316 var data = _ref2.data; 34317 return data === "isFromStart" || data === "isStart"; 34318}, 34319 _renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) { 34320 var prevRatio = tween.ratio, 34321 ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1, 34322 // if the tween or its parent is reversed and the totalTime is 0, we should go to a ratio of 0. Edge case: if a from() or fromTo() stagger tween is placed later in a timeline, the "startAt" zero-duration tween could initially render at a time when the parent timeline's playhead is technically BEFORE where this tween is, so make sure that any "from" and "fromTo" startAt tweens are rendered the first time at a ratio of 1. 34323 repeatDelay = tween._rDelay, 34324 tTime = 0, 34325 pt, 34326 iteration, 34327 prevIteration; 34328 34329 if (repeatDelay && tween._repeat) { 34330 // in case there's a zero-duration tween that has a repeat with a repeatDelay 34331 tTime = _clamp(0, tween._tDur, totalTime); 34332 iteration = _animationCycle(tTime, repeatDelay); 34333 tween._yoyo && iteration & 1 && (ratio = 1 - ratio); 34334 34335 if (iteration !== _animationCycle(tween._tTime, repeatDelay)) { 34336 // if iteration changed 34337 prevRatio = 1 - ratio; 34338 tween.vars.repeatRefresh && tween._initted && tween.invalidate(); 34339 } 34340 } 34341 34342 if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) { 34343 if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) { 34344 // if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately. 34345 return; 34346 } 34347 34348 prevIteration = tween._zTime; 34349 tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); // when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. 34350 34351 suppressEvents || (suppressEvents = totalTime && !prevIteration); // if it was rendered previously at exactly 0 (_zTime) and now the playhead is moving away, DON'T fire callbacks otherwise they'll seem like duplicates. 34352 34353 tween.ratio = ratio; 34354 tween._from && (ratio = 1 - ratio); 34355 tween._time = 0; 34356 tween._tTime = tTime; 34357 pt = tween._pt; 34358 34359 while (pt) { 34360 pt.r(ratio, pt.d); 34361 pt = pt._next; 34362 } 34363 34364 totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true); 34365 tween._onUpdate && !suppressEvents && _callback(tween, "onUpdate"); 34366 tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, "onRepeat"); 34367 34368 if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) { 34369 ratio && _removeFromParent(tween, 1); 34370 34371 if (!suppressEvents && !_reverting) { 34372 _callback(tween, ratio ? "onComplete" : "onReverseComplete", true); 34373 34374 tween._prom && tween._prom(); 34375 } 34376 } 34377 } else if (!tween._zTime) { 34378 tween._zTime = totalTime; 34379 } 34380}, 34381 _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) { 34382 var child; 34383 34384 if (time > prevTime) { 34385 child = animation._first; 34386 34387 while (child && child._start <= time) { 34388 if (child.data === "isPause" && child._start > prevTime) { 34389 return child; 34390 } 34391 34392 child = child._next; 34393 } 34394 } else { 34395 child = animation._last; 34396 34397 while (child && child._start >= time) { 34398 if (child.data === "isPause" && child._start < prevTime) { 34399 return child; 34400 } 34401 34402 child = child._prev; 34403 } 34404 } 34405}, 34406 _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) { 34407 var repeat = animation._repeat, 34408 dur = _roundPrecise(duration) || 0, 34409 totalProgress = animation._tTime / animation._tDur; 34410 totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur); 34411 animation._dur = dur; 34412 animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat); 34413 totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress); 34414 animation.parent && _setEnd(animation); 34415 skipUncache || _uncache(animation.parent, animation); 34416 return animation; 34417}, 34418 _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) { 34419 return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur); 34420}, 34421 _zeroPosition = { 34422 _start: 0, 34423 endTime: _emptyFunc, 34424 totalDuration: _emptyFunc 34425}, 34426 _parsePosition = function _parsePosition(animation, position, percentAnimation) { 34427 var labels = animation.labels, 34428 recent = animation._recent || _zeroPosition, 34429 clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur, 34430 //in case there's a child that infinitely repeats, users almost never intend for the insertion point of a new child to be based on a SUPER long value like that so we clip it and assume the most recently-added child's endTime should be used instead. 34431 i, 34432 offset, 34433 isPercent; 34434 34435 if (_isString(position) && (isNaN(position) || position in labels)) { 34436 //if the string is a number like "1", check to see if there's a label with that name, otherwise interpret it as a number (absolute value). 34437 offset = position.charAt(0); 34438 isPercent = position.substr(-1) === "%"; 34439 i = position.indexOf("="); 34440 34441 if (offset === "<" || offset === ">") { 34442 i >= 0 && (position = position.replace(/=/, "")); 34443 return (offset === "<" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1); 34444 } 34445 34446 if (i < 0) { 34447 position in labels || (labels[position] = clippedDuration); 34448 return labels[position]; 34449 } 34450 34451 offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1)); 34452 34453 if (isPercent && percentAnimation) { 34454 offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration(); 34455 } 34456 34457 return i > 1 ? _parsePosition(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset; 34458 } 34459 34460 return position == null ? clippedDuration : +position; 34461}, 34462 _createTweenType = function _createTweenType(type, params, timeline) { 34463 var isLegacy = _isNumber(params[1]), 34464 varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1), 34465 vars = params[varsIndex], 34466 irVars, 34467 parent; 34468 34469 isLegacy && (vars.duration = params[1]); 34470 vars.parent = timeline; 34471 34472 if (type) { 34473 irVars = vars; 34474 parent = timeline; 34475 34476 while (parent && !("immediateRender" in irVars)) { 34477 // inheritance hasn't happened yet, but someone may have set a default in an ancestor timeline. We could do vars.immediateRender = _isNotFalse(_inheritDefaults(vars).immediateRender) but that'd exact a slight performance penalty because _inheritDefaults() also runs in the Tween constructor. We're paying a small kb price here to gain speed. 34478 irVars = parent.vars.defaults || {}; 34479 parent = _isNotFalse(parent.vars.inherit) && parent.parent; 34480 } 34481 34482 vars.immediateRender = _isNotFalse(irVars.immediateRender); 34483 type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; // "from" vars 34484 } 34485 34486 return new Tween(params[0], vars, params[varsIndex + 1]); 34487}, 34488 _conditionalReturn = function _conditionalReturn(value, func) { 34489 return value || value === 0 ? func(value) : func; 34490}, 34491 _clamp = function _clamp(min, max, value) { 34492 return value < min ? min : value > max ? max : value; 34493}, 34494 getUnit = function getUnit(value, v) { 34495 return !_isString(value) || !(v = _unitExp.exec(value)) ? "" : v[1]; 34496}, 34497 // note: protect against padded numbers as strings, like "100.100". That shouldn't return "00" as the unit. If it's numeric, return no unit. 34498clamp = function clamp(min, max, value) { 34499 return _conditionalReturn(value, function (v) { 34500 return _clamp(min, max, v); 34501 }); 34502}, 34503 _slice = [].slice, 34504 _isArrayLike = function _isArrayLike(value, nonEmpty) { 34505 return value && _isObject(value) && "length" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win; 34506}, 34507 _flatten = function _flatten(ar, leaveStrings, accumulator) { 34508 if (accumulator === void 0) { 34509 accumulator = []; 34510 } 34511 34512 return ar.forEach(function (value) { 34513 var _accumulator; 34514 34515 return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value); 34516 }) || accumulator; 34517}, 34518 //takes any value and returns an array. If it's a string (and leaveStrings isn't true), it'll use document.querySelectorAll() and convert that to an array. It'll also accept iterables like jQuery objects. 34519toArray = function toArray(value, scope, leaveStrings) { 34520 return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : []; 34521}, 34522 selector = function selector(value) { 34523 value = toArray(value)[0] || _warn("Invalid scope") || {}; 34524 return function (v) { 34525 var el = value.current || value.nativeElement || value; 34526 return toArray(v, el.querySelectorAll ? el : el === value ? _warn("Invalid scope") || _doc.createElement("div") : value); 34527 }; 34528}, 34529 shuffle = function shuffle(a) { 34530 return a.sort(function () { 34531 return .5 - Math.random(); 34532 }); 34533}, 34534 // alternative that's a bit faster and more reliably diverse but bigger: for (let j, v, i = a.length; i; j = Math.floor(Math.random() * i), v = a[--i], a[i] = a[j], a[j] = v); return a; 34535//for distributing values across an array. Can accept a number, a function or (most commonly) a function which can contain the following properties: {base, amount, from, ease, grid, axis, length, each}. Returns a function that expects the following parameters: index, target, array. Recognizes the following 34536distribute = function distribute(v) { 34537 if (_isFunction(v)) { 34538 return v; 34539 } 34540 34541 var vars = _isObject(v) ? v : { 34542 each: v 34543 }, 34544 //n:1 is just to indicate v was a number; we leverage that later to set v according to the length we get. If a number is passed in, we treat it like the old stagger value where 0.1, for example, would mean that things would be distributed with 0.1 between each element in the array rather than a total "amount" that's chunked out among them all. 34545 ease = _parseEase(vars.ease), 34546 from = vars.from || 0, 34547 base = parseFloat(vars.base) || 0, 34548 cache = {}, 34549 isDecimal = from > 0 && from < 1, 34550 ratios = isNaN(from) || isDecimal, 34551 axis = vars.axis, 34552 ratioX = from, 34553 ratioY = from; 34554 34555 if (_isString(from)) { 34556 ratioX = ratioY = { 34557 center: .5, 34558 edges: .5, 34559 end: 1 34560 }[from] || 0; 34561 } else if (!isDecimal && ratios) { 34562 ratioX = from[0]; 34563 ratioY = from[1]; 34564 } 34565 34566 return function (i, target, a) { 34567 var l = (a || vars).length, 34568 distances = cache[l], 34569 originX, 34570 originY, 34571 x, 34572 y, 34573 d, 34574 j, 34575 max, 34576 min, 34577 wrapAt; 34578 34579 if (!distances) { 34580 wrapAt = vars.grid === "auto" ? 0 : (vars.grid || [1, _bigNum])[1]; 34581 34582 if (!wrapAt) { 34583 max = -_bigNum; 34584 34585 while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {} 34586 34587 wrapAt < l && wrapAt--; 34588 } 34589 34590 distances = cache[l] = []; 34591 originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt; 34592 originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0; 34593 max = 0; 34594 min = _bigNum; 34595 34596 for (j = 0; j < l; j++) { 34597 x = j % wrapAt - originX; 34598 y = originY - (j / wrapAt | 0); 34599 distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === "y" ? y : x); 34600 d > max && (max = d); 34601 d < min && (min = d); 34602 } 34603 34604 from === "random" && shuffle(distances); 34605 distances.max = max - min; 34606 distances.min = min; 34607 distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === "y" ? l / wrapAt : wrapAt) || 0) * (from === "edges" ? -1 : 1); 34608 distances.b = l < 0 ? base - l : base; 34609 distances.u = getUnit(vars.amount || vars.each) || 0; //unit 34610 34611 ease = ease && l < 0 ? _invertEase(ease) : ease; 34612 } 34613 34614 l = (distances[i] - distances.min) / distances.max || 0; 34615 return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; //round in order to work around floating point errors 34616 }; 34617}, 34618 _roundModifier = function _roundModifier(v) { 34619 //pass in 0.1 get a function that'll round to the nearest tenth, or 5 to round to the closest 5, or 0.001 to the closest 1000th, etc. 34620 var p = Math.pow(10, ((v + "").split(".")[1] || "").length); //to avoid floating point math errors (like 24 * 0.1 == 2.4000000000000004), we chop off at a specific number of decimal places (much faster than toFixed()) 34621 34622 return function (raw) { 34623 var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p); 34624 34625 return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); // n - n % 1 replaces Math.floor() in order to handle negative values properly. For example, Math.floor(-150.00000000000003) is 151! 34626 }; 34627}, 34628 snap = function snap(snapTo, value) { 34629 var isArray = _isArray(snapTo), 34630 radius, 34631 is2D; 34632 34633 if (!isArray && _isObject(snapTo)) { 34634 radius = isArray = snapTo.radius || _bigNum; 34635 34636 if (snapTo.values) { 34637 snapTo = toArray(snapTo.values); 34638 34639 if (is2D = !_isNumber(snapTo[0])) { 34640 radius *= radius; //performance optimization so we don't have to Math.sqrt() in the loop. 34641 } 34642 } else { 34643 snapTo = _roundModifier(snapTo.increment); 34644 } 34645 } 34646 34647 return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) { 34648 is2D = snapTo(raw); 34649 return Math.abs(is2D - raw) <= radius ? is2D : raw; 34650 } : function (raw) { 34651 var x = parseFloat(is2D ? raw.x : raw), 34652 y = parseFloat(is2D ? raw.y : 0), 34653 min = _bigNum, 34654 closest = 0, 34655 i = snapTo.length, 34656 dx, 34657 dy; 34658 34659 while (i--) { 34660 if (is2D) { 34661 dx = snapTo[i].x - x; 34662 dy = snapTo[i].y - y; 34663 dx = dx * dx + dy * dy; 34664 } else { 34665 dx = Math.abs(snapTo[i] - x); 34666 } 34667 34668 if (dx < min) { 34669 min = dx; 34670 closest = i; 34671 } 34672 } 34673 34674 closest = !radius || min <= radius ? snapTo[closest] : raw; 34675 return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw); 34676 }); 34677}, 34678 random = function random(min, max, roundingIncrement, returnFunction) { 34679 return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () { 34680 return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + "").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction; 34681 }); 34682}, 34683 pipe = function pipe() { 34684 for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) { 34685 functions[_key] = arguments[_key]; 34686 } 34687 34688 return function (value) { 34689 return functions.reduce(function (v, f) { 34690 return f(v); 34691 }, value); 34692 }; 34693}, 34694 unitize = function unitize(func, unit) { 34695 return function (value) { 34696 return func(parseFloat(value)) + (unit || getUnit(value)); 34697 }; 34698}, 34699 normalize = function normalize(min, max, value) { 34700 return mapRange(min, max, 0, 1, value); 34701}, 34702 _wrapArray = function _wrapArray(a, wrapper, value) { 34703 return _conditionalReturn(value, function (index) { 34704 return a[~~wrapper(index)]; 34705 }); 34706}, 34707 wrap = function wrap(min, max, value) { 34708 // NOTE: wrap() CANNOT be an arrow function! A very odd compiling bug causes problems (unrelated to GSAP). 34709 var range = max - min; 34710 return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) { 34711 return (range + (value - min) % range) % range + min; 34712 }); 34713}, 34714 wrapYoyo = function wrapYoyo(min, max, value) { 34715 var range = max - min, 34716 total = range * 2; 34717 return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) { 34718 value = (total + (value - min) % total) % total || 0; 34719 return min + (value > range ? total - value : value); 34720 }); 34721}, 34722 _replaceRandom = function _replaceRandom(value) { 34723 //replaces all occurrences of random(...) in a string with the calculated random value. can be a range like random(-100, 100, 5) or an array like random([0, 100, 500]) 34724 var prev = 0, 34725 s = "", 34726 i, 34727 nums, 34728 end, 34729 isArray; 34730 34731 while (~(i = value.indexOf("random(", prev))) { 34732 end = value.indexOf(")", i); 34733 isArray = value.charAt(i + 7) === "["; 34734 nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp); 34735 s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5); 34736 prev = end + 1; 34737 } 34738 34739 return s + value.substr(prev, value.length - prev); 34740}, 34741 mapRange = function mapRange(inMin, inMax, outMin, outMax, value) { 34742 var inRange = inMax - inMin, 34743 outRange = outMax - outMin; 34744 return _conditionalReturn(value, function (value) { 34745 return outMin + ((value - inMin) / inRange * outRange || 0); 34746 }); 34747}, 34748 interpolate = function interpolate(start, end, progress, mutate) { 34749 var func = isNaN(start + end) ? 0 : function (p) { 34750 return (1 - p) * start + p * end; 34751 }; 34752 34753 if (!func) { 34754 var isString = _isString(start), 34755 master = {}, 34756 p, 34757 i, 34758 interpolators, 34759 l, 34760 il; 34761 34762 progress === true && (mutate = 1) && (progress = null); 34763 34764 if (isString) { 34765 start = { 34766 p: start 34767 }; 34768 end = { 34769 p: end 34770 }; 34771 } else if (_isArray(start) && !_isArray(end)) { 34772 interpolators = []; 34773 l = start.length; 34774 il = l - 2; 34775 34776 for (i = 1; i < l; i++) { 34777 interpolators.push(interpolate(start[i - 1], start[i])); //build the interpolators up front as a performance optimization so that when the function is called many times, it can just reuse them. 34778 } 34779 34780 l--; 34781 34782 func = function func(p) { 34783 p *= l; 34784 var i = Math.min(il, ~~p); 34785 return interpolators[i](p - i); 34786 }; 34787 34788 progress = end; 34789 } else if (!mutate) { 34790 start = _merge(_isArray(start) ? [] : {}, start); 34791 } 34792 34793 if (!interpolators) { 34794 for (p in end) { 34795 _addPropTween.call(master, start, p, "get", end[p]); 34796 } 34797 34798 func = function func(p) { 34799 return _renderPropTweens(p, master) || (isString ? start.p : start); 34800 }; 34801 } 34802 } 34803 34804 return _conditionalReturn(progress, func); 34805}, 34806 _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) { 34807 //used for nextLabel() and previousLabel() 34808 var labels = timeline.labels, 34809 min = _bigNum, 34810 p, 34811 distance, 34812 label; 34813 34814 for (p in labels) { 34815 distance = labels[p] - fromTime; 34816 34817 if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) { 34818 label = p; 34819 min = distance; 34820 } 34821 } 34822 34823 return label; 34824}, 34825 _callback = function _callback(animation, type, executeLazyFirst) { 34826 var v = animation.vars, 34827 callback = v[type], 34828 prevContext = _context, 34829 context = animation._ctx, 34830 params, 34831 scope, 34832 result; 34833 34834 if (!callback) { 34835 return; 34836 } 34837 34838 params = v[type + "Params"]; 34839 scope = v.callbackScope || animation; 34840 executeLazyFirst && _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when a timeline finishes, users expect things to have rendered fully. Imagine an onUpdate on a timeline that reports/checks tweened values. 34841 34842 context && (_context = context); 34843 result = params ? callback.apply(scope, params) : callback.call(scope); 34844 _context = prevContext; 34845 return result; 34846}, 34847 _interrupt = function _interrupt(animation) { 34848 _removeFromParent(animation); 34849 34850 animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting); 34851 animation.progress() < 1 && _callback(animation, "onInterrupt"); 34852 return animation; 34853}, 34854 _quickTween, 34855 _registerPluginQueue = [], 34856 _createPlugin = function _createPlugin(config) { 34857 if (!config) return; 34858 config = !config.name && config["default"] || config; // UMD packaging wraps things oddly, so for example MotionPathHelper becomes {MotionPathHelper:MotionPathHelper, default:MotionPathHelper}. 34859 34860 if (_windowExists() || config.headless) { 34861 // edge case: some build tools may pass in a null/undefined value 34862 var name = config.name, 34863 isFunc = _isFunction(config), 34864 Plugin = name && !isFunc && config.init ? function () { 34865 this._props = []; 34866 } : config, 34867 //in case someone passes in an object that's not a plugin, like CustomEase 34868 instanceDefaults = { 34869 init: _emptyFunc, 34870 render: _renderPropTweens, 34871 add: _addPropTween, 34872 kill: _killPropTweensOf, 34873 modifier: _addPluginModifier, 34874 rawVars: 0 34875 }, 34876 statics = { 34877 targetTest: 0, 34878 get: 0, 34879 getSetter: _getSetter, 34880 aliases: {}, 34881 register: 0 34882 }; 34883 34884 _wake(); 34885 34886 if (config !== Plugin) { 34887 if (_plugins[name]) { 34888 return; 34889 } 34890 34891 _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics)); //static methods 34892 34893 34894 _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics))); //instance methods 34895 34896 34897 _plugins[Plugin.prop = name] = Plugin; 34898 34899 if (config.targetTest) { 34900 _harnessPlugins.push(Plugin); 34901 34902 _reservedProps[name] = 1; 34903 } 34904 34905 name = (name === "css" ? "CSS" : name.charAt(0).toUpperCase() + name.substr(1)) + "Plugin"; //for the global name. "motionPath" should become MotionPathPlugin 34906 } 34907 34908 _addGlobal(name, Plugin); 34909 34910 config.register && config.register(gsap, Plugin, PropTween); 34911 } else { 34912 _registerPluginQueue.push(config); 34913 } 34914}, 34915 34916/* 34917 * -------------------------------------------------------------------------------------- 34918 * COLORS 34919 * -------------------------------------------------------------------------------------- 34920 */ 34921_255 = 255, 34922 _colorLookup = { 34923 aqua: [0, _255, _255], 34924 lime: [0, _255, 0], 34925 silver: [192, 192, 192], 34926 black: [0, 0, 0], 34927 maroon: [128, 0, 0], 34928 teal: [0, 128, 128], 34929 blue: [0, 0, _255], 34930 navy: [0, 0, 128], 34931 white: [_255, _255, _255], 34932 olive: [128, 128, 0], 34933 yellow: [_255, _255, 0], 34934 orange: [_255, 165, 0], 34935 gray: [128, 128, 128], 34936 purple: [128, 0, 128], 34937 green: [0, 128, 0], 34938 red: [_255, 0, 0], 34939 pink: [_255, 192, 203], 34940 cyan: [0, _255, _255], 34941 transparent: [_255, _255, _255, 0] 34942}, 34943 // possible future idea to replace the hard-coded color name values - put this in the ticker.wake() where we set the _doc: 34944// let ctx = _doc.createElement("canvas").getContext("2d"); 34945// _forEachName("aqua,lime,silver,black,maroon,teal,blue,navy,white,olive,yellow,orange,gray,purple,green,red,pink,cyan", color => {ctx.fillStyle = color; _colorLookup[color] = splitColor(ctx.fillStyle)}); 34946_hue = function _hue(h, m1, m2) { 34947 h += h < 0 ? 1 : h > 1 ? -1 : 0; 34948 return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0; 34949}, 34950 splitColor = function splitColor(v, toHSL, forceAlpha) { 34951 var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0, 34952 r, 34953 g, 34954 b, 34955 h, 34956 s, 34957 l, 34958 max, 34959 min, 34960 d, 34961 wasHSL; 34962 34963 if (!a) { 34964 if (v.substr(-1) === ",") { 34965 //sometimes a trailing comma is included and we should chop it off (typically from a comma-delimited list of values like a textShadow:"2px 2px 2px blue, 5px 5px 5px rgb(255,0,0)" - in this example "blue," has a trailing comma. We could strip it out inside parseComplex() but we'd need to do it to the beginning and ending values plus it wouldn't provide protection from other potential scenarios like if the user passes in a similar value. 34966 v = v.substr(0, v.length - 1); 34967 } 34968 34969 if (_colorLookup[v]) { 34970 a = _colorLookup[v]; 34971 } else if (v.charAt(0) === "#") { 34972 if (v.length < 6) { 34973 //for shorthand like #9F0 or #9F0F (could have alpha) 34974 r = v.charAt(1); 34975 g = v.charAt(2); 34976 b = v.charAt(3); 34977 v = "#" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : ""); 34978 } 34979 34980 if (v.length === 9) { 34981 // hex with alpha, like #fd5e53ff 34982 a = parseInt(v.substr(1, 6), 16); 34983 return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255]; 34984 } 34985 34986 v = parseInt(v.substr(1), 16); 34987 a = [v >> 16, v >> 8 & _255, v & _255]; 34988 } else if (v.substr(0, 3) === "hsl") { 34989 a = wasHSL = v.match(_strictNumExp); 34990 34991 if (!toHSL) { 34992 h = +a[0] % 360 / 360; 34993 s = +a[1] / 100; 34994 l = +a[2] / 100; 34995 g = l <= .5 ? l * (s + 1) : l + s - l * s; 34996 r = l * 2 - g; 34997 a.length > 3 && (a[3] *= 1); //cast as number 34998 34999 a[0] = _hue(h + 1 / 3, r, g); 35000 a[1] = _hue(h, r, g); 35001 a[2] = _hue(h - 1 / 3, r, g); 35002 } else if (~v.indexOf("=")) { 35003 //if relative values are found, just return the raw strings with the relative prefixes in place. 35004 a = v.match(_numExp); 35005 forceAlpha && a.length < 4 && (a[3] = 1); 35006 return a; 35007 } 35008 } else { 35009 a = v.match(_strictNumExp) || _colorLookup.transparent; 35010 } 35011 35012 a = a.map(Number); 35013 } 35014 35015 if (toHSL && !wasHSL) { 35016 r = a[0] / _255; 35017 g = a[1] / _255; 35018 b = a[2] / _255; 35019 max = Math.max(r, g, b); 35020 min = Math.min(r, g, b); 35021 l = (max + min) / 2; 35022 35023 if (max === min) { 35024 h = s = 0; 35025 } else { 35026 d = max - min; 35027 s = l > 0.5 ? d / (2 - max - min) : d / (max + min); 35028 h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4; 35029 h *= 60; 35030 } 35031 35032 a[0] = ~~(h + .5); 35033 a[1] = ~~(s * 100 + .5); 35034 a[2] = ~~(l * 100 + .5); 35035 } 35036 35037 forceAlpha && a.length < 4 && (a[3] = 1); 35038 return a; 35039}, 35040 _colorOrderData = function _colorOrderData(v) { 35041 // strips out the colors from the string, finds all the numeric slots (with units) and returns an array of those. The Array also has a "c" property which is an Array of the index values where the colors belong. This is to help work around issues where there's a mis-matched order of color/numeric data like drop-shadow(#f00 0px 1px 2px) and drop-shadow(0x 1px 2px #f00). This is basically a helper function used in _formatColors() 35042 var values = [], 35043 c = [], 35044 i = -1; 35045 v.split(_colorExp).forEach(function (v) { 35046 var a = v.match(_numWithUnitExp) || []; 35047 values.push.apply(values, a); 35048 c.push(i += a.length + 1); 35049 }); 35050 values.c = c; 35051 return values; 35052}, 35053 _formatColors = function _formatColors(s, toHSL, orderMatchData) { 35054 var result = "", 35055 colors = (s + result).match(_colorExp), 35056 type = toHSL ? "hsla(" : "rgba(", 35057 i = 0, 35058 c, 35059 shell, 35060 d, 35061 l; 35062 35063 if (!colors) { 35064 return s; 35065 } 35066 35067 colors = colors.map(function (color) { 35068 return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + "," + color[1] + "%," + color[2] + "%," + color[3] : color.join(",")) + ")"; 35069 }); 35070 35071 if (orderMatchData) { 35072 d = _colorOrderData(s); 35073 c = orderMatchData.c; 35074 35075 if (c.join(result) !== d.c.join(result)) { 35076 shell = s.replace(_colorExp, "1").split(_numWithUnitExp); 35077 l = shell.length - 1; 35078 35079 for (; i < l; i++) { 35080 result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + "0,0,0,0)" : (d.length ? d : colors.length ? colors : orderMatchData).shift()); 35081 } 35082 } 35083 } 35084 35085 if (!shell) { 35086 shell = s.split(_colorExp); 35087 l = shell.length - 1; 35088 35089 for (; i < l; i++) { 35090 result += shell[i] + colors[i]; 35091 } 35092 } 35093 35094 return result + shell[l]; 35095}, 35096 _colorExp = function () { 35097 var s = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b", 35098 //we'll dynamically build this Regular Expression to conserve file size. After building it, it will be able to find rgb(), rgba(), # (hexadecimal), and named color values like red, blue, purple, etc., 35099 p; 35100 35101 for (p in _colorLookup) { 35102 s += "|" + p + "\\b"; 35103 } 35104 35105 return new RegExp(s + ")", "gi"); 35106}(), 35107 _hslExp = /hsl[a]?\(/, 35108 _colorStringFilter = function _colorStringFilter(a) { 35109 var combined = a.join(" "), 35110 toHSL; 35111 _colorExp.lastIndex = 0; 35112 35113 if (_colorExp.test(combined)) { 35114 toHSL = _hslExp.test(combined); 35115 a[1] = _formatColors(a[1], toHSL); 35116 a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); // make sure the order of numbers/colors match with the END value. 35117 35118 return true; 35119 } 35120}, 35121 35122/* 35123 * -------------------------------------------------------------------------------------- 35124 * TICKER 35125 * -------------------------------------------------------------------------------------- 35126 */ 35127_tickerActive, 35128 _ticker = function () { 35129 var _getTime = Date.now, 35130 _lagThreshold = 500, 35131 _adjustedLag = 33, 35132 _startTime = _getTime(), 35133 _lastUpdate = _startTime, 35134 _gap = 1000 / 240, 35135 _nextTime = _gap, 35136 _listeners = [], 35137 _id, 35138 _req, 35139 _raf, 35140 _self, 35141 _delta, 35142 _i, 35143 _tick = function _tick(v) { 35144 var elapsed = _getTime() - _lastUpdate, 35145 manual = v === true, 35146 overlap, 35147 dispatch, 35148 time, 35149 frame; 35150 35151 (elapsed > _lagThreshold || elapsed < 0) && (_startTime += elapsed - _adjustedLag); 35152 _lastUpdate += elapsed; 35153 time = _lastUpdate - _startTime; 35154 overlap = time - _nextTime; 35155 35156 if (overlap > 0 || manual) { 35157 frame = ++_self.frame; 35158 _delta = time - _self.time * 1000; 35159 _self.time = time = time / 1000; 35160 _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap); 35161 dispatch = 1; 35162 } 35163 35164 manual || (_id = _req(_tick)); //make sure the request is made before we dispatch the "tick" event so that timing is maintained. Otherwise, if processing the "tick" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise. 35165 35166 if (dispatch) { 35167 for (_i = 0; _i < _listeners.length; _i++) { 35168 // use _i and check _listeners.length instead of a variable because a listener could get removed during the loop, and if that happens to an element less than the current index, it'd throw things off in the loop. 35169 _listeners[_i](time, _delta, frame, v); 35170 } 35171 } 35172 }; 35173 35174 _self = { 35175 time: 0, 35176 frame: 0, 35177 tick: function tick() { 35178 _tick(true); 35179 }, 35180 deltaRatio: function deltaRatio(fps) { 35181 return _delta / (1000 / (fps || 60)); 35182 }, 35183 wake: function wake() { 35184 if (_coreReady) { 35185 if (!_coreInitted && _windowExists()) { 35186 _win = _coreInitted = window; 35187 _doc = _win.document || {}; 35188 _globals.gsap = gsap; 35189 (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version); 35190 35191 _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {}); 35192 35193 _registerPluginQueue.forEach(_createPlugin); 35194 } 35195 35196 _raf = typeof requestAnimationFrame !== "undefined" && requestAnimationFrame; 35197 _id && _self.sleep(); 35198 35199 _req = _raf || function (f) { 35200 return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0); 35201 }; 35202 35203 _tickerActive = 1; 35204 35205 _tick(2); 35206 } 35207 }, 35208 sleep: function sleep() { 35209 (_raf ? cancelAnimationFrame : clearTimeout)(_id); 35210 _tickerActive = 0; 35211 _req = _emptyFunc; 35212 }, 35213 lagSmoothing: function lagSmoothing(threshold, adjustedLag) { 35214 _lagThreshold = threshold || Infinity; // zero should be interpreted as basically unlimited 35215 35216 _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold); 35217 }, 35218 fps: function fps(_fps) { 35219 _gap = 1000 / (_fps || 240); 35220 _nextTime = _self.time * 1000 + _gap; 35221 }, 35222 add: function add(callback, once, prioritize) { 35223 var func = once ? function (t, d, f, v) { 35224 callback(t, d, f, v); 35225 35226 _self.remove(func); 35227 } : callback; 35228 35229 _self.remove(callback); 35230 35231 _listeners[prioritize ? "unshift" : "push"](func); 35232 35233 _wake(); 35234 35235 return func; 35236 }, 35237 remove: function remove(callback, i) { 35238 ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--; 35239 }, 35240 _listeners: _listeners 35241 }; 35242 return _self; 35243}(), 35244 _wake = function _wake() { 35245 return !_tickerActive && _ticker.wake(); 35246}, 35247 //also ensures the core classes are initialized. 35248 35249/* 35250* ------------------------------------------------- 35251* EASING 35252* ------------------------------------------------- 35253*/ 35254_easeMap = {}, 35255 _customEaseExp = /^[\d.\-M][\d.\-,\s]/, 35256 _quotesExp = /["']/g, 35257 _parseObjectInString = function _parseObjectInString(value) { 35258 //takes a string like "{wiggles:10, type:anticipate})" and turns it into a real object. Notice it ends in ")" and includes the {} wrappers. This is because we only use this function for parsing ease configs and prioritized optimization rather than reusability. 35259 var obj = {}, 35260 split = value.substr(1, value.length - 3).split(":"), 35261 key = split[0], 35262 i = 1, 35263 l = split.length, 35264 index, 35265 val, 35266 parsedVal; 35267 35268 for (; i < l; i++) { 35269 val = split[i]; 35270 index = i !== l - 1 ? val.lastIndexOf(",") : val.length; 35271 parsedVal = val.substr(0, index); 35272 obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, "").trim() : +parsedVal; 35273 key = val.substr(index + 1).trim(); 35274 } 35275 35276 return obj; 35277}, 35278 _valueInParentheses = function _valueInParentheses(value) { 35279 var open = value.indexOf("(") + 1, 35280 close = value.indexOf(")"), 35281 nested = value.indexOf("(", open); 35282 return value.substring(open, ~nested && nested < close ? value.indexOf(")", close + 1) : close); 35283}, 35284 _configEaseFromString = function _configEaseFromString(name) { 35285 //name can be a string like "elastic.out(1,0.5)", and pass in _easeMap as obj and it'll parse it out and call the actual function like _easeMap.Elastic.easeOut.config(1,0.5). It will also parse custom ease strings as long as CustomEase is loaded and registered (internally as _easeMap._CE). 35286 var split = (name + "").split("("), 35287 ease = _easeMap[split[0]]; 35288 return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf("{") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(",").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE("", name) : ease; 35289}, 35290 _invertEase = function _invertEase(ease) { 35291 return function (p) { 35292 return 1 - ease(1 - p); 35293 }; 35294}, 35295 // allow yoyoEase to be set in children and have those affected when the parent/ancestor timeline yoyos. 35296_propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) { 35297 var child = timeline._first, 35298 ease; 35299 35300 while (child) { 35301 if (child instanceof Timeline) { 35302 _propagateYoyoEase(child, isYoyo); 35303 } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) { 35304 if (child.timeline) { 35305 _propagateYoyoEase(child.timeline, isYoyo); 35306 } else { 35307 ease = child._ease; 35308 child._ease = child._yEase; 35309 child._yEase = ease; 35310 child._yoyo = isYoyo; 35311 } 35312 } 35313 35314 child = child._next; 35315 } 35316}, 35317 _parseEase = function _parseEase(ease, defaultEase) { 35318 return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase; 35319}, 35320 _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) { 35321 if (easeOut === void 0) { 35322 easeOut = function easeOut(p) { 35323 return 1 - easeIn(1 - p); 35324 }; 35325 } 35326 35327 if (easeInOut === void 0) { 35328 easeInOut = function easeInOut(p) { 35329 return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2; 35330 }; 35331 } 35332 35333 var ease = { 35334 easeIn: easeIn, 35335 easeOut: easeOut, 35336 easeInOut: easeInOut 35337 }, 35338 lowercaseName; 35339 35340 _forEachName(names, function (name) { 35341 _easeMap[name] = _globals[name] = ease; 35342 _easeMap[lowercaseName = name.toLowerCase()] = easeOut; 35343 35344 for (var p in ease) { 35345 _easeMap[lowercaseName + (p === "easeIn" ? ".in" : p === "easeOut" ? ".out" : ".inOut")] = _easeMap[name + "." + p] = ease[p]; 35346 } 35347 }); 35348 35349 return ease; 35350}, 35351 _easeInOutFromOut = function _easeInOutFromOut(easeOut) { 35352 return function (p) { 35353 return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2; 35354 }; 35355}, 35356 _configElastic = function _configElastic(type, amplitude, period) { 35357 var p1 = amplitude >= 1 ? amplitude : 1, 35358 //note: if amplitude is < 1, we simply adjust the period for a more natural feel. Otherwise the math doesn't work right and the curve starts at 1. 35359 p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1), 35360 p3 = p2 / _2PI * (Math.asin(1 / p1) || 0), 35361 easeOut = function easeOut(p) { 35362 return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1; 35363 }, 35364 ease = type === "out" ? easeOut : type === "in" ? function (p) { 35365 return 1 - easeOut(1 - p); 35366 } : _easeInOutFromOut(easeOut); 35367 35368 p2 = _2PI / p2; //precalculate to optimize 35369 35370 ease.config = function (amplitude, period) { 35371 return _configElastic(type, amplitude, period); 35372 }; 35373 35374 return ease; 35375}, 35376 _configBack = function _configBack(type, overshoot) { 35377 if (overshoot === void 0) { 35378 overshoot = 1.70158; 35379 } 35380 35381 var easeOut = function easeOut(p) { 35382 return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0; 35383 }, 35384 ease = type === "out" ? easeOut : type === "in" ? function (p) { 35385 return 1 - easeOut(1 - p); 35386 } : _easeInOutFromOut(easeOut); 35387 35388 ease.config = function (overshoot) { 35389 return _configBack(type, overshoot); 35390 }; 35391 35392 return ease; 35393}; // a cheaper (kb and cpu) but more mild way to get a parameterized weighted ease by feeding in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear. 35394// _weightedEase = ratio => { 35395// let y = 0.5 + ratio / 2; 35396// return p => (2 * (1 - p) * p * y + p * p); 35397// }, 35398// a stronger (but more expensive kb/cpu) parameterized weighted ease that lets you feed in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear. 35399// _weightedEaseStrong = ratio => { 35400// ratio = .5 + ratio / 2; 35401// let o = 1 / 3 * (ratio < .5 ? ratio : 1 - ratio), 35402// b = ratio - o, 35403// c = ratio + o; 35404// return p => p === 1 ? p : 3 * b * (1 - p) * (1 - p) * p + 3 * c * (1 - p) * p * p + p * p * p; 35405// }; 35406 35407 35408_forEachName("Linear,Quad,Cubic,Quart,Quint,Strong", function (name, i) { 35409 var power = i < 5 ? i + 1 : i; 35410 35411 _insertEase(name + ",Power" + (power - 1), i ? function (p) { 35412 return Math.pow(p, power); 35413 } : function (p) { 35414 return p; 35415 }, function (p) { 35416 return 1 - Math.pow(1 - p, power); 35417 }, function (p) { 35418 return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2; 35419 }); 35420}); 35421 35422_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn; 35423 35424_insertEase("Elastic", _configElastic("in"), _configElastic("out"), _configElastic()); 35425 35426(function (n, c) { 35427 var n1 = 1 / c, 35428 n2 = 2 * n1, 35429 n3 = 2.5 * n1, 35430 easeOut = function easeOut(p) { 35431 return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375; 35432 }; 35433 35434 _insertEase("Bounce", function (p) { 35435 return 1 - easeOut(1 - p); 35436 }, easeOut); 35437})(7.5625, 2.75); 35438 35439_insertEase("Expo", function (p) { 35440 return p ? Math.pow(2, 10 * (p - 1)) : 0; 35441}); 35442 35443_insertEase("Circ", function (p) { 35444 return -(_sqrt(1 - p * p) - 1); 35445}); 35446 35447_insertEase("Sine", function (p) { 35448 return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1; 35449}); 35450 35451_insertEase("Back", _configBack("in"), _configBack("out"), _configBack()); 35452 35453_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = { 35454 config: function config(steps, immediateStart) { 35455 if (steps === void 0) { 35456 steps = 1; 35457 } 35458 35459 var p1 = 1 / steps, 35460 p2 = steps + (immediateStart ? 0 : 1), 35461 p3 = immediateStart ? 1 : 0, 35462 max = 1 - _tinyNum; 35463 return function (p) { 35464 return ((p2 * _clamp(0, max, p) | 0) + p3) * p1; 35465 }; 35466 } 35467}; 35468_defaults.ease = _easeMap["quad.out"]; 35469 35470_forEachName("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", function (name) { 35471 return _callbackNames += name + "," + name + "Params,"; 35472}); 35473/* 35474 * -------------------------------------------------------------------------------------- 35475 * CACHE 35476 * -------------------------------------------------------------------------------------- 35477 */ 35478 35479 35480var GSCache = function GSCache(target, harness) { 35481 this.id = _gsID++; 35482 target._gsap = this; 35483 this.target = target; 35484 this.harness = harness; 35485 this.get = harness ? harness.get : _getProperty; 35486 this.set = harness ? harness.getSetter : _getSetter; 35487}; 35488/* 35489 * -------------------------------------------------------------------------------------- 35490 * ANIMATION 35491 * -------------------------------------------------------------------------------------- 35492 */ 35493 35494var Animation = /*#__PURE__*/function () { 35495 function Animation(vars) { 35496 this.vars = vars; 35497 this._delay = +vars.delay || 0; 35498 35499 if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) { 35500 // TODO: repeat: Infinity on a timeline's children must flag that timeline internally and affect its totalDuration, otherwise it'll stop in the negative direction when reaching the start. 35501 this._rDelay = vars.repeatDelay || 0; 35502 this._yoyo = !!vars.yoyo || !!vars.yoyoEase; 35503 } 35504 35505 this._ts = 1; 35506 35507 _setDuration(this, +vars.duration, 1, 1); 35508 35509 this.data = vars.data; 35510 35511 if (_context) { 35512 this._ctx = _context; 35513 35514 _context.data.push(this); 35515 } 35516 35517 _tickerActive || _ticker.wake(); 35518 } 35519 35520 var _proto = Animation.prototype; 35521 35522 _proto.delay = function delay(value) { 35523 if (value || value === 0) { 35524 this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay); 35525 this._delay = value; 35526 return this; 35527 } 35528 35529 return this._delay; 35530 }; 35531 35532 _proto.duration = function duration(value) { 35533 return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur; 35534 }; 35535 35536 _proto.totalDuration = function totalDuration(value) { 35537 if (!arguments.length) { 35538 return this._tDur; 35539 } 35540 35541 this._dirty = 0; 35542 return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1)); 35543 }; 35544 35545 _proto.totalTime = function totalTime(_totalTime, suppressEvents) { 35546 _wake(); 35547 35548 if (!arguments.length) { 35549 return this._tTime; 35550 } 35551 35552 var parent = this._dp; 35553 35554 if (parent && parent.smoothChildTiming && this._ts) { 35555 _alignPlayhead(this, _totalTime); 35556 35557 !parent._dp || parent.parent || _postAddChecks(parent, this); // edge case: if this is a child of a timeline that already completed, for example, we must re-activate the parent. 35558 //in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The start of that child would get pushed out, but one of the ancestors may have completed. 35559 35560 while (parent && parent.parent) { 35561 if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) { 35562 parent.totalTime(parent._tTime, true); 35563 } 35564 35565 parent = parent.parent; 35566 } 35567 35568 if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) { 35569 //if the animation doesn't have a parent, put it back into its last parent (recorded as _dp for exactly cases like this). Limit to parents with autoRemoveChildren (like globalTimeline) so that if the user manually removes an animation from a timeline and then alters its playhead, it doesn't get added back in. 35570 _addToTimeline(this._dp, this, this._start - this._delay); 35571 } 35572 } 35573 35574 if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) { 35575 // check for _ptLookup on a Tween instance to ensure it has actually finished being instantiated, otherwise if this.reverse() gets called in the Animation constructor, it could trigger a render() here even though the _targets weren't populated, thus when _init() is called there won't be any PropTweens (it'll act like the tween is non-functional) 35576 this._ts || (this._pTime = _totalTime); // otherwise, if an animation is paused, then the playhead is moved back to zero, then resumed, it'd revert back to the original time at the pause 35577 //if (!this._lock) { // avoid endless recursion (not sure we need this yet or if it's worth the performance hit) 35578 // this._lock = 1; 35579 35580 _lazySafeRender(this, _totalTime, suppressEvents); // this._lock = 0; 35581 //} 35582 35583 } 35584 35585 return this; 35586 }; 35587 35588 _proto.time = function time(value, suppressEvents) { 35589 return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time; // note: if the modulus results in 0, the playhead could be exactly at the end or the beginning, and we always defer to the END with a non-zero value, otherwise if you set the time() to the very end (duration()), it would render at the START! 35590 }; 35591 35592 _proto.totalProgress = function totalProgress(value, suppressEvents) { 35593 return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.rawTime() > 0 ? 1 : 0; 35594 }; 35595 35596 _proto.progress = function progress(value, suppressEvents) { 35597 return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.rawTime() > 0 ? 1 : 0; 35598 }; 35599 35600 _proto.iteration = function iteration(value, suppressEvents) { 35601 var cycleDuration = this.duration() + this._rDelay; 35602 35603 return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1; 35604 } // potential future addition: 35605 // isPlayingBackwards() { 35606 // let animation = this, 35607 // orientation = 1; // 1 = forward, -1 = backward 35608 // while (animation) { 35609 // orientation *= animation.reversed() || (animation.repeat() && !(animation.iteration() & 1)) ? -1 : 1; 35610 // animation = animation.parent; 35611 // } 35612 // return orientation < 0; 35613 // } 35614 ; 35615 35616 _proto.timeScale = function timeScale(value, suppressEvents) { 35617 if (!arguments.length) { 35618 return this._rts === -_tinyNum ? 0 : this._rts; // recorded timeScale. Special case: if someone calls reverse() on an animation with timeScale of 0, we assign it -_tinyNum to remember it's reversed. 35619 } 35620 35621 if (this._rts === value) { 35622 return this; 35623 } 35624 35625 var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; // make sure to do the parentToChildTotalTime() BEFORE setting the new _ts because the old one must be used in that calculation. 35626 // future addition? Up side: fast and minimal file size. Down side: only works on this animation; if a timeline is reversed, for example, its childrens' onReverse wouldn't get called. 35627 //(+value < 0 && this._rts >= 0) && _callback(this, "onReverse", true); 35628 // prioritize rendering where the parent's playhead lines up instead of this._tTime because there could be a tween that's animating another tween's timeScale in the same rendering loop (same parent), thus if the timeScale tween renders first, it would alter _start BEFORE _tTime was set on that tick (in the rendering loop), effectively freezing it until the timeScale tween finishes. 35629 35630 this._rts = +value || 0; 35631 this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; // _ts is the functional timeScale which would be 0 if the animation is paused. 35632 35633 this.totalTime(_clamp(-Math.abs(this._delay), this._tDur, tTime), suppressEvents !== false); 35634 35635 _setEnd(this); // if parent.smoothChildTiming was false, the end time didn't get updated in the _alignPlayhead() method, so do it here. 35636 35637 35638 return _recacheAncestors(this); 35639 }; 35640 35641 _proto.paused = function paused(value) { 35642 if (!arguments.length) { 35643 return this._ps; 35644 } 35645 35646 if (this._ps !== value) { 35647 this._ps = value; 35648 35649 if (value) { 35650 this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); // if the pause occurs during the delay phase, make sure that's factored in when resuming. 35651 35652 this._ts = this._act = 0; // _ts is the functional timeScale, so a paused tween would effectively have a timeScale of 0. We record the "real" timeScale as _rts (recorded time scale) 35653 } else { 35654 _wake(); 35655 35656 this._ts = this._rts; //only defer to _pTime (pauseTime) if tTime is zero. Remember, someone could pause() an animation, then scrub the playhead and resume(). If the parent doesn't have smoothChildTiming, we render at the rawTime() because the startTime won't get updated. 35657 35658 this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); // edge case: animation.progress(1).pause().play() wouldn't render again because the playhead is already at the end, but the call to totalTime() below will add it back to its parent...and not remove it again (since removing only happens upon rendering at a new time). Offsetting the _tTime slightly is done simply to cause the final render in totalTime() that'll pop it off its timeline (if autoRemoveChildren is true, of course). Check to make sure _zTime isn't -_tinyNum to avoid an edge case where the playhead is pushed to the end but INSIDE a tween/callback, the timeline itself is paused thus halting rendering and leaving a few unrendered. When resuming, it wouldn't render those otherwise. 35659 } 35660 } 35661 35662 return this; 35663 }; 35664 35665 _proto.startTime = function startTime(value) { 35666 if (arguments.length) { 35667 this._start = value; 35668 var parent = this.parent || this._dp; 35669 parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay); 35670 return this; 35671 } 35672 35673 return this._start; 35674 }; 35675 35676 _proto.endTime = function endTime(includeRepeats) { 35677 return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1); 35678 }; 35679 35680 _proto.rawTime = function rawTime(wrapRepeats) { 35681 var parent = this.parent || this._dp; // _dp = detached parent 35682 35683 return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this); 35684 }; 35685 35686 _proto.revert = function revert(config) { 35687 if (config === void 0) { 35688 config = _revertConfig; 35689 } 35690 35691 var prevIsReverting = _reverting; 35692 _reverting = config; 35693 35694 if (this._initted || this._startAt) { 35695 this.timeline && this.timeline.revert(config); 35696 this.totalTime(-0.01, config.suppressEvents); 35697 } 35698 35699 this.data !== "nested" && config.kill !== false && this.kill(); 35700 _reverting = prevIsReverting; 35701 return this; 35702 }; 35703 35704 _proto.globalTime = function globalTime(rawTime) { 35705 var animation = this, 35706 time = arguments.length ? rawTime : animation.rawTime(); 35707 35708 while (animation) { 35709 time = animation._start + time / (Math.abs(animation._ts) || 1); 35710 animation = animation._dp; 35711 } 35712 35713 return !this.parent && this._sat ? this._sat.globalTime(rawTime) : time; // the _startAt tweens for .fromTo() and .from() that have immediateRender should always be FIRST in the timeline (important for context.revert()). "_sat" stands for _startAtTween, referring to the parent tween that created the _startAt. We must discern if that tween had immediateRender so that we can know whether or not to prioritize it in revert(). 35714 }; 35715 35716 _proto.repeat = function repeat(value) { 35717 if (arguments.length) { 35718 this._repeat = value === Infinity ? -2 : value; 35719 return _onUpdateTotalDuration(this); 35720 } 35721 35722 return this._repeat === -2 ? Infinity : this._repeat; 35723 }; 35724 35725 _proto.repeatDelay = function repeatDelay(value) { 35726 if (arguments.length) { 35727 var time = this._time; 35728 this._rDelay = value; 35729 35730 _onUpdateTotalDuration(this); 35731 35732 return time ? this.time(time) : this; 35733 } 35734 35735 return this._rDelay; 35736 }; 35737 35738 _proto.yoyo = function yoyo(value) { 35739 if (arguments.length) { 35740 this._yoyo = value; 35741 return this; 35742 } 35743 35744 return this._yoyo; 35745 }; 35746 35747 _proto.seek = function seek(position, suppressEvents) { 35748 return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents)); 35749 }; 35750 35751 _proto.restart = function restart(includeDelay, suppressEvents) { 35752 return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents)); 35753 }; 35754 35755 _proto.play = function play(from, suppressEvents) { 35756 from != null && this.seek(from, suppressEvents); 35757 return this.reversed(false).paused(false); 35758 }; 35759 35760 _proto.reverse = function reverse(from, suppressEvents) { 35761 from != null && this.seek(from || this.totalDuration(), suppressEvents); 35762 return this.reversed(true).paused(false); 35763 }; 35764 35765 _proto.pause = function pause(atTime, suppressEvents) { 35766 atTime != null && this.seek(atTime, suppressEvents); 35767 return this.paused(true); 35768 }; 35769 35770 _proto.resume = function resume() { 35771 return this.paused(false); 35772 }; 35773 35774 _proto.reversed = function reversed(value) { 35775 if (arguments.length) { 35776 !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); // in case timeScale is zero, reversing would have no effect so we use _tinyNum. 35777 35778 return this; 35779 } 35780 35781 return this._rts < 0; 35782 }; 35783 35784 _proto.invalidate = function invalidate() { 35785 this._initted = this._act = 0; 35786 this._zTime = -_tinyNum; 35787 return this; 35788 }; 35789 35790 _proto.isActive = function isActive() { 35791 var parent = this.parent || this._dp, 35792 start = this._start, 35793 rawTime; 35794 return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum); 35795 }; 35796 35797 _proto.eventCallback = function eventCallback(type, callback, params) { 35798 var vars = this.vars; 35799 35800 if (arguments.length > 1) { 35801 if (!callback) { 35802 delete vars[type]; 35803 } else { 35804 vars[type] = callback; 35805 params && (vars[type + "Params"] = params); 35806 type === "onUpdate" && (this._onUpdate = callback); 35807 } 35808 35809 return this; 35810 } 35811 35812 return vars[type]; 35813 }; 35814 35815 _proto.then = function then(onFulfilled) { 35816 var self = this; 35817 return new Promise(function (resolve) { 35818 var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough, 35819 _resolve = function _resolve() { 35820 var _then = self.then; 35821 self.then = null; // temporarily null the then() method to avoid an infinite loop (see https://github.com/greensock/GSAP/issues/322) 35822 35823 _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then); 35824 resolve(f); 35825 self.then = _then; 35826 }; 35827 35828 if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) { 35829 _resolve(); 35830 } else { 35831 self._prom = _resolve; 35832 } 35833 }); 35834 }; 35835 35836 _proto.kill = function kill() { 35837 _interrupt(this); 35838 }; 35839 35840 return Animation; 35841}(); 35842 35843_setDefaults(Animation.prototype, { 35844 _time: 0, 35845 _start: 0, 35846 _end: 0, 35847 _tTime: 0, 35848 _tDur: 0, 35849 _dirty: 0, 35850 _repeat: 0, 35851 _yoyo: false, 35852 parent: null, 35853 _initted: false, 35854 _rDelay: 0, 35855 _ts: 1, 35856 _dp: 0, 35857 ratio: 0, 35858 _zTime: -_tinyNum, 35859 _prom: 0, 35860 _ps: false, 35861 _rts: 1 35862}); 35863/* 35864 * ------------------------------------------------- 35865 * TIMELINE 35866 * ------------------------------------------------- 35867 */ 35868 35869 35870var Timeline = /*#__PURE__*/function (_Animation) { 35871 _inheritsLoose(Timeline, _Animation); 35872 35873 function Timeline(vars, position) { 35874 var _this; 35875 35876 if (vars === void 0) { 35877 vars = {}; 35878 } 35879 35880 _this = _Animation.call(this, vars) || this; 35881 _this.labels = {}; 35882 _this.smoothChildTiming = !!vars.smoothChildTiming; 35883 _this.autoRemoveChildren = !!vars.autoRemoveChildren; 35884 _this._sort = _isNotFalse(vars.sortChildren); 35885 _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position); 35886 vars.reversed && _this.reverse(); 35887 vars.paused && _this.paused(true); 35888 vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger); 35889 return _this; 35890 } 35891 35892 var _proto2 = Timeline.prototype; 35893 35894 _proto2.to = function to(targets, vars, position) { 35895 _createTweenType(0, arguments, this); 35896 35897 return this; 35898 }; 35899 35900 _proto2.from = function from(targets, vars, position) { 35901 _createTweenType(1, arguments, this); 35902 35903 return this; 35904 }; 35905 35906 _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) { 35907 _createTweenType(2, arguments, this); 35908 35909 return this; 35910 }; 35911 35912 _proto2.set = function set(targets, vars, position) { 35913 vars.duration = 0; 35914 vars.parent = this; 35915 _inheritDefaults(vars).repeatDelay || (vars.repeat = 0); 35916 vars.immediateRender = !!vars.immediateRender; 35917 new Tween(targets, vars, _parsePosition(this, position), 1); 35918 return this; 35919 }; 35920 35921 _proto2.call = function call(callback, params, position) { 35922 return _addToTimeline(this, Tween.delayedCall(0, callback, params), position); 35923 } //ONLY for backward compatibility! Maybe delete? 35924 ; 35925 35926 _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) { 35927 vars.duration = duration; 35928 vars.stagger = vars.stagger || stagger; 35929 vars.onComplete = onCompleteAll; 35930 vars.onCompleteParams = onCompleteAllParams; 35931 vars.parent = this; 35932 new Tween(targets, vars, _parsePosition(this, position)); 35933 return this; 35934 }; 35935 35936 _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) { 35937 vars.runBackwards = 1; 35938 _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender); 35939 return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams); 35940 }; 35941 35942 _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) { 35943 toVars.startAt = fromVars; 35944 _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender); 35945 return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams); 35946 }; 35947 35948 _proto2.render = function render(totalTime, suppressEvents, force) { 35949 var prevTime = this._time, 35950 tDur = this._dirty ? this.totalDuration() : this._tDur, 35951 dur = this._dur, 35952 tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime), 35953 // if a paused timeline is resumed (or its _start is updated for another reason...which rounds it), that could result in the playhead shifting a **tiny** amount and a zero-duration child at that spot may get rendered at a different ratio, like its totalTime in render() may be 1e-17 instead of 0, for example. 35954 crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur), 35955 time, 35956 child, 35957 next, 35958 iteration, 35959 cycleDuration, 35960 prevPaused, 35961 pauseTween, 35962 timeScale, 35963 prevStart, 35964 prevIteration, 35965 yoyo, 35966 isYoyo; 35967 this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur); 35968 35969 if (tTime !== this._tTime || force || crossingStart) { 35970 if (prevTime !== this._time && dur) { 35971 //if totalDuration() finds a child with a negative startTime and smoothChildTiming is true, things get shifted around internally so we need to adjust the time accordingly. For example, if a tween starts at -30 we must shift EVERYTHING forward 30 seconds and move this timeline's startTime backward by 30 seconds so that things align with the playhead (no jump). 35972 tTime += this._time - prevTime; 35973 totalTime += this._time - prevTime; 35974 } 35975 35976 time = tTime; 35977 prevStart = this._start; 35978 timeScale = this._ts; 35979 prevPaused = !timeScale; 35980 35981 if (crossingStart) { 35982 dur || (prevTime = this._zTime); //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. 35983 35984 (totalTime || !suppressEvents) && (this._zTime = totalTime); 35985 } 35986 35987 if (this._repeat) { 35988 //adjust the time for repeats and yoyos 35989 yoyo = this._yoyo; 35990 cycleDuration = dur + this._rDelay; 35991 35992 if (this._repeat < -1 && totalTime < 0) { 35993 return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force); 35994 } 35995 35996 time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!) 35997 35998 if (tTime === tDur) { 35999 // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't) 36000 iteration = this._repeat; 36001 time = dur; 36002 } else { 36003 iteration = ~~(tTime / cycleDuration); 36004 36005 if (iteration && iteration === tTime / cycleDuration) { 36006 time = dur; 36007 iteration--; 36008 } 36009 36010 time > dur && (time = dur); 36011 } 36012 36013 prevIteration = _animationCycle(this._tTime, cycleDuration); 36014 !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration); // edge case - if someone does addPause() at the very beginning of a repeating timeline, that pause is technically at the same spot as the end which causes this._time to get set to 0 when the totalTime would normally place the playhead at the end. See https://gsap.com/forums/topic/23823-closing-nav-animation-not-working-on-ie-and-iphone-6-maybe-other-older-browser/?tab=comments#comment-113005 also, this._tTime - prevIteration * cycleDuration - this._dur <= 0 just checks to make sure it wasn't previously in the "repeatDelay" portion 36015 36016 if (yoyo && iteration & 1) { 36017 time = dur - time; 36018 isYoyo = 1; 36019 } 36020 /* 36021 make sure children at the end/beginning of the timeline are rendered properly. If, for example, 36022 a 3-second long timeline rendered at 2.9 seconds previously, and now renders at 3.2 seconds (which 36023 would get translated to 2.8 seconds if the timeline yoyos or 0.2 seconds if it just repeats), there 36024 could be a callback or a short tween that's at 2.95 or 3 seconds in which wouldn't render. So 36025 we need to push the timeline to the end (and/or beginning depending on its yoyo value). Also we must 36026 ensure that zero-duration tweens at the very beginning or end of the Timeline work. 36027 */ 36028 36029 36030 if (iteration !== prevIteration && !this._lock) { 36031 var rewinding = yoyo && prevIteration & 1, 36032 doesWrap = rewinding === (yoyo && iteration & 1); 36033 iteration < prevIteration && (rewinding = !rewinding); 36034 prevTime = rewinding ? 0 : tTime % dur ? dur : tTime; // if the playhead is landing exactly at the end of an iteration, use that totalTime rather than only the duration, otherwise it'll skip the 2nd render since it's effectively at the same time. 36035 36036 this._lock = 1; 36037 this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0; 36038 this._tTime = tTime; // if a user gets the iteration() inside the onRepeat, for example, it should be accurate. 36039 36040 !suppressEvents && this.parent && _callback(this, "onRepeat"); 36041 this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1); 36042 36043 if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) { 36044 // if prevTime is 0 and we render at the very end, _time will be the end, thus won't match. So in this edge case, prevTime won't match _time but that's okay. If it gets killed in the onRepeat, eject as well. 36045 return this; 36046 } 36047 36048 dur = this._dur; // in case the duration changed in the onRepeat 36049 36050 tDur = this._tDur; 36051 36052 if (doesWrap) { 36053 this._lock = 2; 36054 prevTime = rewinding ? dur : -0.0001; 36055 this.render(prevTime, true); 36056 this.vars.repeatRefresh && !isYoyo && this.invalidate(); 36057 } 36058 36059 this._lock = 0; 36060 36061 if (!this._ts && !prevPaused) { 36062 return this; 36063 } //in order for yoyoEase to work properly when there's a stagger, we must swap out the ease in each sub-tween. 36064 36065 36066 _propagateYoyoEase(this, isYoyo); 36067 } 36068 } 36069 36070 if (this._hasPause && !this._forcing && this._lock < 2) { 36071 pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time)); 36072 36073 if (pauseTween) { 36074 tTime -= time - (time = pauseTween._start); 36075 } 36076 } 36077 36078 this._tTime = tTime; 36079 this._time = time; 36080 this._act = !timeScale; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick. 36081 36082 if (!this._initted) { 36083 this._onUpdate = this.vars.onUpdate; 36084 this._initted = 1; 36085 this._zTime = totalTime; 36086 prevTime = 0; // upon init, the playhead should always go forward; someone could invalidate() a completed timeline and then if they restart(), that would make child tweens render in reverse order which could lock in the wrong starting values if they build on each other, like tl.to(obj, {x: 100}).to(obj, {x: 0}). 36087 } 36088 36089 if (!prevTime && time && !suppressEvents && !iteration) { 36090 _callback(this, "onStart"); 36091 36092 if (this._tTime !== tTime) { 36093 // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart. 36094 return this; 36095 } 36096 } 36097 36098 if (time >= prevTime && totalTime >= 0) { 36099 child = this._first; 36100 36101 while (child) { 36102 next = child._next; 36103 36104 if ((child._act || time >= child._start) && child._ts && pauseTween !== child) { 36105 if (child.parent !== this) { 36106 // an extreme edge case - the child's render could do something like kill() the "next" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe. 36107 return this.render(totalTime, suppressEvents, force); 36108 } 36109 36110 child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force); 36111 36112 if (time !== this._time || !this._ts && !prevPaused) { 36113 //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete 36114 pauseTween = 0; 36115 next && (tTime += this._zTime = -_tinyNum); // it didn't finish rendering, so flag zTime as negative so that so that the next time render() is called it'll be forced (to render any remaining children) 36116 36117 break; 36118 } 36119 } 36120 36121 child = next; 36122 } 36123 } else { 36124 child = this._last; 36125 var adjustedTime = totalTime < 0 ? totalTime : time; //when the playhead goes backward beyond the start of this timeline, we must pass that information down to the child animations so that zero-duration tweens know whether to render their starting or ending values. 36126 36127 while (child) { 36128 next = child._prev; 36129 36130 if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) { 36131 if (child.parent !== this) { 36132 // an extreme edge case - the child's render could do something like kill() the "next" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe. 36133 return this.render(totalTime, suppressEvents, force); 36134 } 36135 36136 child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && (child._initted || child._startAt)); // if reverting, we should always force renders of initted tweens (but remember that .fromTo() or .from() may have a _startAt but not _initted yet). If, for example, a .fromTo() tween with a stagger (which creates an internal timeline) gets reverted BEFORE some of its child tweens render for the first time, it may not properly trigger them to revert. 36137 36138 if (time !== this._time || !this._ts && !prevPaused) { 36139 //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete 36140 pauseTween = 0; 36141 next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); // it didn't finish rendering, so adjust zTime so that so that the next time render() is called it'll be forced (to render any remaining children) 36142 36143 break; 36144 } 36145 } 36146 36147 child = next; 36148 } 36149 } 36150 36151 if (pauseTween && !suppressEvents) { 36152 this.pause(); 36153 pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1; 36154 36155 if (this._ts) { 36156 //the callback resumed playback! So since we may have held back the playhead due to where the pause is positioned, go ahead and jump to where it's SUPPOSED to be (if no pause happened). 36157 this._start = prevStart; //if the pause was at an earlier time and the user resumed in the callback, it could reposition the timeline (changing its startTime), throwing things off slightly, so we make sure the _start doesn't shift. 36158 36159 _setEnd(this); 36160 36161 return this.render(totalTime, suppressEvents, force); 36162 } 36163 } 36164 36165 this._onUpdate && !suppressEvents && _callback(this, "onUpdate", true); 36166 if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) { 36167 // remember, a child's callback may alter this timeline's playhead or timeScale which is why we need to add some of these checks. 36168 (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative. 36169 36170 if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) { 36171 _callback(this, tTime === tDur && totalTime >= 0 ? "onComplete" : "onReverseComplete", true); 36172 36173 this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom(); 36174 } 36175 } 36176 } 36177 36178 return this; 36179 }; 36180 36181 _proto2.add = function add(child, position) { 36182 var _this2 = this; 36183 36184 _isNumber(position) || (position = _parsePosition(this, position, child)); 36185 36186 if (!(child instanceof Animation)) { 36187 if (_isArray(child)) { 36188 child.forEach(function (obj) { 36189 return _this2.add(obj, position); 36190 }); 36191 return this; 36192 } 36193 36194 if (_isString(child)) { 36195 return this.addLabel(child, position); 36196 } 36197 36198 if (_isFunction(child)) { 36199 child = Tween.delayedCall(0, child); 36200 } else { 36201 return this; 36202 } 36203 } 36204 36205 return this !== child ? _addToTimeline(this, child, position) : this; //don't allow a timeline to be added to itself as a child! 36206 }; 36207 36208 _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) { 36209 if (nested === void 0) { 36210 nested = true; 36211 } 36212 36213 if (tweens === void 0) { 36214 tweens = true; 36215 } 36216 36217 if (timelines === void 0) { 36218 timelines = true; 36219 } 36220 36221 if (ignoreBeforeTime === void 0) { 36222 ignoreBeforeTime = -_bigNum; 36223 } 36224 36225 var a = [], 36226 child = this._first; 36227 36228 while (child) { 36229 if (child._start >= ignoreBeforeTime) { 36230 if (child instanceof Tween) { 36231 tweens && a.push(child); 36232 } else { 36233 timelines && a.push(child); 36234 nested && a.push.apply(a, child.getChildren(true, tweens, timelines)); 36235 } 36236 } 36237 36238 child = child._next; 36239 } 36240 36241 return a; 36242 }; 36243 36244 _proto2.getById = function getById(id) { 36245 var animations = this.getChildren(1, 1, 1), 36246 i = animations.length; 36247 36248 while (i--) { 36249 if (animations[i].vars.id === id) { 36250 return animations[i]; 36251 } 36252 } 36253 }; 36254 36255 _proto2.remove = function remove(child) { 36256 if (_isString(child)) { 36257 return this.removeLabel(child); 36258 } 36259 36260 if (_isFunction(child)) { 36261 return this.killTweensOf(child); 36262 } 36263 36264 _removeLinkedListItem(this, child); 36265 36266 if (child === this._recent) { 36267 this._recent = this._last; 36268 } 36269 36270 return _uncache(this); 36271 }; 36272 36273 _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) { 36274 if (!arguments.length) { 36275 return this._tTime; 36276 } 36277 36278 this._forcing = 1; 36279 36280 if (!this._dp && this._ts) { 36281 //special case for the global timeline (or any other that has no parent or detached parent). 36282 this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts)); 36283 } 36284 36285 _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents); 36286 36287 this._forcing = 0; 36288 return this; 36289 }; 36290 36291 _proto2.addLabel = function addLabel(label, position) { 36292 this.labels[label] = _parsePosition(this, position); 36293 return this; 36294 }; 36295 36296 _proto2.removeLabel = function removeLabel(label) { 36297 delete this.labels[label]; 36298 return this; 36299 }; 36300 36301 _proto2.addPause = function addPause(position, callback, params) { 36302 var t = Tween.delayedCall(0, callback || _emptyFunc, params); 36303 t.data = "isPause"; 36304 this._hasPause = 1; 36305 return _addToTimeline(this, t, _parsePosition(this, position)); 36306 }; 36307 36308 _proto2.removePause = function removePause(position) { 36309 var child = this._first; 36310 position = _parsePosition(this, position); 36311 36312 while (child) { 36313 if (child._start === position && child.data === "isPause") { 36314 _removeFromParent(child); 36315 } 36316 36317 child = child._next; 36318 } 36319 }; 36320 36321 _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) { 36322 var tweens = this.getTweensOf(targets, onlyActive), 36323 i = tweens.length; 36324 36325 while (i--) { 36326 _overwritingTween !== tweens[i] && tweens[i].kill(targets, props); 36327 } 36328 36329 return this; 36330 }; 36331 36332 _proto2.getTweensOf = function getTweensOf(targets, onlyActive) { 36333 var a = [], 36334 parsedTargets = toArray(targets), 36335 child = this._first, 36336 isGlobalTime = _isNumber(onlyActive), 36337 // a number is interpreted as a global time. If the animation spans 36338 children; 36339 36340 while (child) { 36341 if (child instanceof Tween) { 36342 if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) { 36343 // note: if this is for overwriting, it should only be for tweens that aren't paused and are initted. 36344 a.push(child); 36345 } 36346 } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) { 36347 a.push.apply(a, children); 36348 } 36349 36350 child = child._next; 36351 } 36352 36353 return a; 36354 } // potential future feature - targets() on timelines 36355 // targets() { 36356 // let result = []; 36357 // this.getChildren(true, true, false).forEach(t => result.push(...t.targets())); 36358 // return result.filter((v, i) => result.indexOf(v) === i); 36359 // } 36360 ; 36361 36362 _proto2.tweenTo = function tweenTo(position, vars) { 36363 vars = vars || {}; 36364 36365 var tl = this, 36366 endTime = _parsePosition(tl, position), 36367 _vars = vars, 36368 startAt = _vars.startAt, 36369 _onStart = _vars.onStart, 36370 onStartParams = _vars.onStartParams, 36371 immediateRender = _vars.immediateRender, 36372 initted, 36373 tween = Tween.to(tl, _setDefaults({ 36374 ease: vars.ease || "none", 36375 lazy: false, 36376 immediateRender: false, 36377 time: endTime, 36378 overwrite: "auto", 36379 duration: vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum, 36380 onStart: function onStart() { 36381 tl.pause(); 36382 36383 if (!initted) { 36384 var duration = vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()); 36385 tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true); 36386 initted = 1; 36387 } 36388 36389 _onStart && _onStart.apply(tween, onStartParams || []); //in case the user had an onStart in the vars - we don't want to overwrite it. 36390 } 36391 }, vars)); 36392 36393 return immediateRender ? tween.render(0) : tween; 36394 }; 36395 36396 _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) { 36397 return this.tweenTo(toPosition, _setDefaults({ 36398 startAt: { 36399 time: _parsePosition(this, fromPosition) 36400 } 36401 }, vars)); 36402 }; 36403 36404 _proto2.recent = function recent() { 36405 return this._recent; 36406 }; 36407 36408 _proto2.nextLabel = function nextLabel(afterTime) { 36409 if (afterTime === void 0) { 36410 afterTime = this._time; 36411 } 36412 36413 return _getLabelInDirection(this, _parsePosition(this, afterTime)); 36414 }; 36415 36416 _proto2.previousLabel = function previousLabel(beforeTime) { 36417 if (beforeTime === void 0) { 36418 beforeTime = this._time; 36419 } 36420 36421 return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1); 36422 }; 36423 36424 _proto2.currentLabel = function currentLabel(value) { 36425 return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum); 36426 }; 36427 36428 _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) { 36429 if (ignoreBeforeTime === void 0) { 36430 ignoreBeforeTime = 0; 36431 } 36432 36433 var child = this._first, 36434 labels = this.labels, 36435 p; 36436 36437 while (child) { 36438 if (child._start >= ignoreBeforeTime) { 36439 child._start += amount; 36440 child._end += amount; 36441 } 36442 36443 child = child._next; 36444 } 36445 36446 if (adjustLabels) { 36447 for (p in labels) { 36448 if (labels[p] >= ignoreBeforeTime) { 36449 labels[p] += amount; 36450 } 36451 } 36452 } 36453 36454 return _uncache(this); 36455 }; 36456 36457 _proto2.invalidate = function invalidate(soft) { 36458 var child = this._first; 36459 this._lock = 0; 36460 36461 while (child) { 36462 child.invalidate(soft); 36463 child = child._next; 36464 } 36465 36466 return _Animation.prototype.invalidate.call(this, soft); 36467 }; 36468 36469 _proto2.clear = function clear(includeLabels) { 36470 if (includeLabels === void 0) { 36471 includeLabels = true; 36472 } 36473 36474 var child = this._first, 36475 next; 36476 36477 while (child) { 36478 next = child._next; 36479 this.remove(child); 36480 child = next; 36481 } 36482 36483 this._dp && (this._time = this._tTime = this._pTime = 0); 36484 includeLabels && (this.labels = {}); 36485 return _uncache(this); 36486 }; 36487 36488 _proto2.totalDuration = function totalDuration(value) { 36489 var max = 0, 36490 self = this, 36491 child = self._last, 36492 prevStart = _bigNum, 36493 prev, 36494 start, 36495 parent; 36496 36497 if (arguments.length) { 36498 return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value)); 36499 } 36500 36501 if (self._dirty) { 36502 parent = self.parent; 36503 36504 while (child) { 36505 prev = child._prev; //record it here in case the tween changes position in the sequence... 36506 36507 child._dirty && child.totalDuration(); //could change the tween._startTime, so make sure the animation's cache is clean before analyzing it. 36508 36509 start = child._start; 36510 36511 if (start > prevStart && self._sort && child._ts && !self._lock) { 36512 //in case one of the tweens shifted out of order, it needs to be re-inserted into the correct position in the sequence 36513 self._lock = 1; //prevent endless recursive calls - there are methods that get triggered that check duration/totalDuration when we add(). 36514 36515 _addToTimeline(self, child, start - child._delay, 1)._lock = 0; 36516 } else { 36517 prevStart = start; 36518 } 36519 36520 if (start < 0 && child._ts) { 36521 //children aren't allowed to have negative startTimes unless smoothChildTiming is true, so adjust here if one is found. 36522 max -= start; 36523 36524 if (!parent && !self._dp || parent && parent.smoothChildTiming) { 36525 self._start += start / self._ts; 36526 self._time -= start; 36527 self._tTime -= start; 36528 } 36529 36530 self.shiftChildren(-start, false, -1e999); 36531 prevStart = 0; 36532 } 36533 36534 child._end > max && child._ts && (max = child._end); 36535 child = prev; 36536 } 36537 36538 _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1); 36539 36540 self._dirty = 0; 36541 } 36542 36543 return self._tDur; 36544 }; 36545 36546 Timeline.updateRoot = function updateRoot(time) { 36547 if (_globalTimeline._ts) { 36548 _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline)); 36549 36550 _lastRenderedFrame = _ticker.frame; 36551 } 36552 36553 if (_ticker.frame >= _nextGCFrame) { 36554 _nextGCFrame += _config.autoSleep || 120; 36555 var child = _globalTimeline._first; 36556 if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) { 36557 while (child && !child._ts) { 36558 child = child._next; 36559 } 36560 36561 child || _ticker.sleep(); 36562 } 36563 } 36564 }; 36565 36566 return Timeline; 36567}(Animation); 36568 36569_setDefaults(Timeline.prototype, { 36570 _lock: 0, 36571 _hasPause: 0, 36572 _forcing: 0 36573}); 36574 36575var _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) { 36576 //note: we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus "this" would refer to the plugin. 36577 var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter), 36578 index = 0, 36579 matchIndex = 0, 36580 result, 36581 startNums, 36582 color, 36583 endNum, 36584 chunk, 36585 startNum, 36586 hasRandom, 36587 a; 36588 pt.b = start; 36589 pt.e = end; 36590 start += ""; //ensure values are strings 36591 36592 end += ""; 36593 36594 if (hasRandom = ~end.indexOf("random(")) { 36595 end = _replaceRandom(end); 36596 } 36597 36598 if (stringFilter) { 36599 a = [start, end]; 36600 stringFilter(a, target, prop); //pass an array with the starting and ending values and let the filter do whatever it needs to the values. 36601 36602 start = a[0]; 36603 end = a[1]; 36604 } 36605 36606 startNums = start.match(_complexStringNumExp) || []; 36607 36608 while (result = _complexStringNumExp.exec(end)) { 36609 endNum = result[0]; 36610 chunk = end.substring(index, result.index); 36611 36612 if (color) { 36613 color = (color + 1) % 5; 36614 } else if (chunk.substr(-5) === "rgba(") { 36615 color = 1; 36616 } 36617 36618 if (endNum !== startNums[matchIndex++]) { 36619 startNum = parseFloat(startNums[matchIndex - 1]) || 0; //these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method. 36620 36621 pt._pt = { 36622 _next: pt._pt, 36623 p: chunk || matchIndex === 1 ? chunk : ",", 36624 //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case. 36625 s: startNum, 36626 c: endNum.charAt(1) === "=" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum, 36627 m: color && color < 4 ? Math.round : 0 36628 }; 36629 index = _complexStringNumExp.lastIndex; 36630 } 36631 } 36632 36633 pt.c = index < end.length ? end.substring(index, end.length) : ""; //we use the "c" of the PropTween to store the final part of the string (after the last number) 36634 36635 pt.fp = funcParam; 36636 36637 if (_relExp.test(end) || hasRandom) { 36638 pt.e = 0; //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value). 36639 } 36640 36641 this._pt = pt; //start the linked list with this new PropTween. Remember, we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus "this" would refer to the plugin. 36642 36643 return pt; 36644}, 36645 _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) { 36646 _isFunction(end) && (end = end(index || 0, target, targets)); 36647 var currentValue = target[prop], 36648 parsedStart = start !== "get" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf("set") || !_isFunction(target["get" + prop.substr(3)]) ? prop : "get" + prop.substr(3)](funcParam) : target[prop](), 36649 setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc, 36650 pt; 36651 36652 if (_isString(end)) { 36653 if (~end.indexOf("random(")) { 36654 end = _replaceRandom(end); 36655 } 36656 36657 if (end.charAt(1) === "=") { 36658 pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0); 36659 36660 if (pt || pt === 0) { 36661 // to avoid isNaN, like if someone passes in a value like "!= whatever" 36662 end = pt; 36663 } 36664 } 36665 } 36666 36667 if (!optional || parsedStart !== end || _forceAllPropTweens) { 36668 if (!isNaN(parsedStart * end) && end !== "") { 36669 // fun fact: any number multiplied by "" is evaluated as the number 0! 36670 pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === "boolean" ? _renderBoolean : _renderPlain, 0, setter); 36671 funcParam && (pt.fp = funcParam); 36672 modifier && pt.modifier(modifier, this, target); 36673 return this._pt = pt; 36674 } 36675 36676 !currentValue && !(prop in target) && _missingPlugin(prop, end); 36677 return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam); 36678 } 36679}, 36680 //creates a copy of the vars object and processes any function-based values (putting the resulting values directly into the copy) as well as strings with "random()" in them. It does NOT process relative values. 36681_processVars = function _processVars(vars, index, target, targets, tween) { 36682 _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets)); 36683 36684 if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) { 36685 return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars; 36686 } 36687 36688 var copy = {}, 36689 p; 36690 36691 for (p in vars) { 36692 copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets); 36693 } 36694 36695 return copy; 36696}, 36697 _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) { 36698 var plugin, pt, ptLookup, i; 36699 36700 if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) { 36701 tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority); 36702 36703 if (tween !== _quickTween) { 36704 ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; //note: we can't use tween._ptLookup[index] because for staggered tweens, the index from the fullTargets array won't match what it is in each individual tween that spawns from the stagger. 36705 36706 i = plugin._props.length; 36707 36708 while (i--) { 36709 ptLookup[plugin._props[i]] = pt; 36710 } 36711 } 36712 } 36713 36714 return plugin; 36715}, 36716 _overwritingTween, 36717 //store a reference temporarily so we can avoid overwriting itself. 36718_forceAllPropTweens, 36719 _initTween = function _initTween(tween, time, tTime) { 36720 var vars = tween.vars, 36721 ease = vars.ease, 36722 startAt = vars.startAt, 36723 immediateRender = vars.immediateRender, 36724 lazy = vars.lazy, 36725 onUpdate = vars.onUpdate, 36726 runBackwards = vars.runBackwards, 36727 yoyoEase = vars.yoyoEase, 36728 keyframes = vars.keyframes, 36729 autoRevert = vars.autoRevert, 36730 dur = tween._dur, 36731 prevStartAt = tween._startAt, 36732 targets = tween._targets, 36733 parent = tween.parent, 36734 fullTargets = parent && parent.data === "nested" ? parent.vars.targets : targets, 36735 autoOverwrite = tween._overwrite === "auto" && !_suppressOverwrites, 36736 tl = tween.timeline, 36737 cleanVars, 36738 i, 36739 p, 36740 pt, 36741 target, 36742 hasPriority, 36743 gsData, 36744 harness, 36745 plugin, 36746 ptLookup, 36747 index, 36748 harnessVars, 36749 overwritten; 36750 tl && (!keyframes || !ease) && (ease = "none"); 36751 tween._ease = _parseEase(ease, _defaults.ease); 36752 tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0; 36753 36754 if (yoyoEase && tween._yoyo && !tween._repeat) { 36755 //there must have been a parent timeline with yoyo:true that is currently in its yoyo phase, so flip the eases. 36756 yoyoEase = tween._yEase; 36757 tween._yEase = tween._ease; 36758 tween._ease = yoyoEase; 36759 } 36760 36761 tween._from = !tl && !!vars.runBackwards; //nested timelines should never run backwards - the backwards-ness is in the child tweens. 36762 36763 if (!tl || keyframes && !vars.stagger) { 36764 //if there's an internal timeline, skip all the parsing because we passed that task down the chain. 36765 harness = targets[0] ? _getCache(targets[0]).harness : 0; 36766 harnessVars = harness && vars[harness.prop]; //someone may need to specify CSS-specific values AND non-CSS values, like if the element has an "x" property plus it's a standard DOM element. We allow people to distinguish by wrapping plugin-specific stuff in a css:{} object for example. 36767 36768 cleanVars = _copyExcluding(vars, _reservedProps); 36769 36770 if (prevStartAt) { 36771 prevStartAt._zTime < 0 && prevStartAt.progress(1); // in case it's a lazy startAt that hasn't rendered yet. 36772 36773 time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig); // if it's a "startAt" (not "from()" or runBackwards: true), we only need to do a shallow revert (keep transforms cached in CSSPlugin) 36774 // don't just _removeFromParent(prevStartAt.render(-1, true)) because that'll leave inline styles. We're creating a new _startAt for "startAt" tweens that re-capture things to ensure that if the pre-tween values changed since the tween was created, they're recorded. 36775 36776 prevStartAt._lazy = 0; 36777 } 36778 36779 if (startAt) { 36780 _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({ 36781 data: "isStart", 36782 overwrite: false, 36783 parent: parent, 36784 immediateRender: true, 36785 lazy: !prevStartAt && _isNotFalse(lazy), 36786 startAt: null, 36787 delay: 0, 36788 onUpdate: onUpdate && function () { 36789 return _callback(tween, "onUpdate"); 36790 }, 36791 stagger: 0 36792 }, startAt))); //copy the properties/values into a new object to avoid collisions, like var to = {x:0}, from = {x:500}; timeline.fromTo(e, from, to).fromTo(e, to, from); 36793 36794 36795 tween._startAt._dp = 0; // don't allow it to get put back into root timeline! Like when revert() is called and totalTime() gets set. 36796 36797 tween._startAt._sat = tween; // used in globalTime(). _sat stands for _startAtTween 36798 36799 time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill); // rare edge case, like if a render is forced in the negative direction of a non-initted tween. 36800 36801 if (immediateRender) { 36802 if (dur && time <= 0 && tTime <= 0) { 36803 // check tTime here because in the case of a yoyo tween whose playhead gets pushed to the end like tween.progress(1), we should allow it through so that the onComplete gets fired properly. 36804 time && (tween._zTime = time); 36805 return; //we skip initialization here so that overwriting doesn't occur until the tween actually begins. Otherwise, if you create several immediateRender:true tweens of the same target/properties to drop into a Timeline, the last one created would overwrite the first ones because they didn't get placed into the timeline yet before the first render occurs and kicks in overwriting. 36806 } 36807 } 36808 } else if (runBackwards && dur) { 36809 //from() tweens must be handled uniquely: their beginning values must be rendered but we don't want overwriting to occur yet (when time is still 0). Wait until the tween actually begins before doing all the routines like overwriting. At that time, we should render at the END of the tween to ensure that things initialize correctly (remember, from() tweens go backwards) 36810 if (!prevStartAt) { 36811 time && (immediateRender = false); //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0 36812 36813 p = _setDefaults({ 36814 overwrite: false, 36815 data: "isFromStart", 36816 //we tag the tween with as "isFromStart" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a "from()" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:"height", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in. 36817 lazy: immediateRender && !prevStartAt && _isNotFalse(lazy), 36818 immediateRender: immediateRender, 36819 //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after) 36820 stagger: 0, 36821 parent: parent //ensures that nested tweens that had a stagger are handled properly, like gsap.from(".class", {y: gsap.utils.wrap([-100,100]), stagger: 0.5}) 36822 36823 }, cleanVars); 36824 harnessVars && (p[harness.prop] = harnessVars); // in case someone does something like .from(..., {css:{}}) 36825 36826 _removeFromParent(tween._startAt = Tween.set(targets, p)); 36827 36828 tween._startAt._dp = 0; // don't allow it to get put back into root timeline! 36829 36830 tween._startAt._sat = tween; // used in globalTime() 36831 36832 time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true)); 36833 tween._zTime = time; 36834 36835 if (!immediateRender) { 36836 _initTween(tween._startAt, _tinyNum, _tinyNum); //ensures that the initial values are recorded 36837 36838 } else if (!time) { 36839 return; 36840 } 36841 } 36842 } 36843 36844 tween._pt = tween._ptCache = 0; 36845 lazy = dur && _isNotFalse(lazy) || lazy && !dur; 36846 36847 for (i = 0; i < targets.length; i++) { 36848 target = targets[i]; 36849 gsData = target._gsap || _harness(targets)[i]._gsap; 36850 tween._ptLookup[i] = ptLookup = {}; 36851 _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); //if other tweens of the same target have recently initted but haven't rendered yet, we've got to force the render so that the starting values are correct (imagine populating a timeline with a bunch of sequential tweens and then jumping to the end) 36852 36853 index = fullTargets === targets ? i : fullTargets.indexOf(target); 36854 36855 if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) { 36856 tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority); 36857 36858 plugin._props.forEach(function (name) { 36859 ptLookup[name] = pt; 36860 }); 36861 36862 plugin.priority && (hasPriority = 1); 36863 } 36864 36865 if (!harness || harnessVars) { 36866 for (p in cleanVars) { 36867 if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) { 36868 plugin.priority && (hasPriority = 1); 36869 } else { 36870 ptLookup[p] = pt = _addPropTween.call(tween, target, p, "get", cleanVars[p], index, fullTargets, 0, vars.stringFilter); 36871 } 36872 } 36873 } 36874 36875 tween._op && tween._op[i] && tween.kill(target, tween._op[i]); 36876 36877 if (autoOverwrite && tween._pt) { 36878 _overwritingTween = tween; 36879 36880 _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time)); // make sure the overwriting doesn't overwrite THIS tween!!! 36881 36882 36883 overwritten = !tween.parent; 36884 _overwritingTween = 0; 36885 } 36886 36887 tween._pt && lazy && (_lazyLookup[gsData.id] = 1); 36888 } 36889 36890 hasPriority && _sortPropTweensByPriority(tween); 36891 tween._onInit && tween._onInit(tween); //plugins like RoundProps must wait until ALL of the PropTweens are instantiated. In the plugin's init() function, it sets the _onInit on the tween instance. May not be pretty/intuitive, but it's fast and keeps file size down. 36892 } 36893 36894 tween._onUpdate = onUpdate; 36895 tween._initted = (!tween._op || tween._pt) && !overwritten; // if overwrittenProps resulted in the entire tween being killed, do NOT flag it as initted or else it may render for one tick. 36896 36897 keyframes && time <= 0 && tl.render(_bigNum, true, true); // if there's a 0% keyframe, it'll render in the "before" state for any staggered/delayed animations thus when the following tween initializes, it'll use the "before" state instead of the "after" state as the initial values. 36898}, 36899 _updatePropTweens = function _updatePropTweens(tween, property, value, start, startIsRelative, ratio, time, skipRecursion) { 36900 var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property], 36901 pt, 36902 rootPT, 36903 lookup, 36904 i; 36905 36906 if (!ptCache) { 36907 ptCache = tween._ptCache[property] = []; 36908 lookup = tween._ptLookup; 36909 i = tween._targets.length; 36910 36911 while (i--) { 36912 pt = lookup[i][property]; 36913 36914 if (pt && pt.d && pt.d._pt) { 36915 // it's a plugin, so find the nested PropTween 36916 pt = pt.d._pt; 36917 36918 while (pt && pt.p !== property && pt.fp !== property) { 36919 // "fp" is functionParam for things like setting CSS variables which require .setProperty("--var-name", value) 36920 pt = pt._next; 36921 } 36922 } 36923 36924 if (!pt) { 36925 // there is no PropTween associated with that property, so we must FORCE one to be created and ditch out of this 36926 // if the tween has other properties that already rendered at new positions, we'd normally have to rewind to put them back like tween.render(0, true) before forcing an _initTween(), but that can create another edge case like tweening a timeline's progress would trigger onUpdates to fire which could move other things around. It's better to just inform users that .resetTo() should ONLY be used for tweens that already have that property. For example, you can't gsap.to(...{ y: 0 }) and then tween.restTo("x", 200) for example. 36927 _forceAllPropTweens = 1; // otherwise, when we _addPropTween() and it finds no change between the start and end values, it skips creating a PropTween (for efficiency...why tween when there's no difference?) but in this case we NEED that PropTween created so we can edit it. 36928 36929 tween.vars[property] = "+=0"; 36930 36931 _initTween(tween, time); 36932 36933 _forceAllPropTweens = 0; 36934 return skipRecursion ? _warn(property + " not eligible for reset") : 1; // if someone tries to do a quickTo() on a special property like borderRadius which must get split into 4 different properties, that's not eligible for .resetTo(). 36935 } 36936 36937 ptCache.push(pt); 36938 } 36939 } 36940 36941 i = ptCache.length; 36942 36943 while (i--) { 36944 rootPT = ptCache[i]; 36945 pt = rootPT._pt || rootPT; // complex values may have nested PropTweens. We only accommodate the FIRST value. 36946 36947 pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c; 36948 pt.c = value - pt.s; 36949 rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e)); // mainly for CSSPlugin (end value) 36950 36951 rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b)); // (beginning value) 36952 } 36953}, 36954 _addAliasesToVars = function _addAliasesToVars(targets, vars) { 36955 var harness = targets[0] ? _getCache(targets[0]).harness : 0, 36956 propertyAliases = harness && harness.aliases, 36957 copy, 36958 p, 36959 i, 36960 aliases; 36961 36962 if (!propertyAliases) { 36963 return vars; 36964 } 36965 36966 copy = _merge({}, vars); 36967 36968 for (p in propertyAliases) { 36969 if (p in copy) { 36970 aliases = propertyAliases[p].split(","); 36971 i = aliases.length; 36972 36973 while (i--) { 36974 copy[aliases[i]] = copy[p]; 36975 } 36976 } 36977 } 36978 36979 return copy; 36980}, 36981 // parses multiple formats, like {"0%": {x: 100}, {"50%": {x: -20}} and { x: {"0%": 100, "50%": -20} }, and an "ease" can be set on any object. We populate an "allProps" object with an Array for each property, like {x: [{}, {}], y:[{}, {}]} with data for each property tween. The objects have a "t" (time), "v", (value), and "e" (ease) property. This allows us to piece together a timeline later. 36982_parseKeyframe = function _parseKeyframe(prop, obj, allProps, easeEach) { 36983 var ease = obj.ease || easeEach || "power1.inOut", 36984 p, 36985 a; 36986 36987 if (_isArray(obj)) { 36988 a = allProps[prop] || (allProps[prop] = []); // t = time (out of 100), v = value, e = ease 36989 36990 obj.forEach(function (value, i) { 36991 return a.push({ 36992 t: i / (obj.length - 1) * 100, 36993 v: value, 36994 e: ease 36995 }); 36996 }); 36997 } else { 36998 for (p in obj) { 36999 a = allProps[p] || (allProps[p] = []); 37000 p === "ease" || a.push({ 37001 t: parseFloat(prop), 37002 v: obj[p], 37003 e: ease 37004 }); 37005 } 37006 } 37007}, 37008 _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) { 37009 return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf("random(") ? _replaceRandom(value) : value; 37010}, 37011 _staggerTweenProps = _callbackNames + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert", 37012 _staggerPropsToSkip = {}; 37013 37014_forEachName(_staggerTweenProps + ",id,stagger,delay,duration,paused,scrollTrigger", function (name) { 37015 return _staggerPropsToSkip[name] = 1; 37016}); 37017/* 37018 * -------------------------------------------------------------------------------------- 37019 * TWEEN 37020 * -------------------------------------------------------------------------------------- 37021 */ 37022 37023 37024var Tween = /*#__PURE__*/function (_Animation2) { 37025 _inheritsLoose(Tween, _Animation2); 37026 37027 function Tween(targets, vars, position, skipInherit) { 37028 var _this3; 37029 37030 if (typeof vars === "number") { 37031 position.duration = vars; 37032 vars = position; 37033 position = null; 37034 } 37035 37036 _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this; 37037 var _this3$vars = _this3.vars, 37038 duration = _this3$vars.duration, 37039 delay = _this3$vars.delay, 37040 immediateRender = _this3$vars.immediateRender, 37041 stagger = _this3$vars.stagger, 37042 overwrite = _this3$vars.overwrite, 37043 keyframes = _this3$vars.keyframes, 37044 defaults = _this3$vars.defaults, 37045 scrollTrigger = _this3$vars.scrollTrigger, 37046 yoyoEase = _this3$vars.yoyoEase, 37047 parent = vars.parent || _globalTimeline, 37048 parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : "length" in vars) ? [targets] : toArray(targets), 37049 tl, 37050 i, 37051 copy, 37052 l, 37053 p, 37054 curTarget, 37055 staggerFunc, 37056 staggerVarsToMerge; 37057 _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn("GSAP target " + targets + " not found. https://gsap.com", !_config.nullTargetWarn) || []; 37058 _this3._ptLookup = []; //PropTween lookup. An array containing an object for each target, having keys for each tweening property 37059 37060 _this3._overwrite = overwrite; 37061 37062 if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) { 37063 vars = _this3.vars; 37064 tl = _this3.timeline = new Timeline({ 37065 data: "nested", 37066 defaults: defaults || {}, 37067 targets: parent && parent.data === "nested" ? parent.vars.targets : parsedTargets 37068 }); // we need to store the targets because for staggers and keyframes, we end up creating an individual tween for each but function-based values need to know the index and the whole Array of targets. 37069 37070 tl.kill(); 37071 tl.parent = tl._dp = _assertThisInitialized(_this3); 37072 tl._start = 0; 37073 37074 if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) { 37075 l = parsedTargets.length; 37076 staggerFunc = stagger && distribute(stagger); 37077 37078 if (_isObject(stagger)) { 37079 //users can pass in callbacks like onStart/onComplete in the stagger object. These should fire with each individual tween. 37080 for (p in stagger) { 37081 if (~_staggerTweenProps.indexOf(p)) { 37082 staggerVarsToMerge || (staggerVarsToMerge = {}); 37083 staggerVarsToMerge[p] = stagger[p]; 37084 } 37085 } 37086 } 37087 37088 for (i = 0; i < l; i++) { 37089 copy = _copyExcluding(vars, _staggerPropsToSkip); 37090 copy.stagger = 0; 37091 yoyoEase && (copy.yoyoEase = yoyoEase); 37092 staggerVarsToMerge && _merge(copy, staggerVarsToMerge); 37093 curTarget = parsedTargets[i]; //don't just copy duration or delay because if they're a string or function, we'd end up in an infinite loop because _isFuncOrString() would evaluate as true in the child tweens, entering this loop, etc. So we parse the value straight from vars and default to 0. 37094 37095 copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets); 37096 copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay; 37097 37098 if (!stagger && l === 1 && copy.delay) { 37099 // if someone does delay:"random(1, 5)", repeat:-1, for example, the delay shouldn't be inside the repeat. 37100 _this3._delay = delay = copy.delay; 37101 _this3._start += delay; 37102 copy.delay = 0; 37103 } 37104 37105 tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0); 37106 tl._ease = _easeMap.none; 37107 } 37108 37109 tl.duration() ? duration = delay = 0 : _this3.timeline = 0; // if the timeline's duration is 0, we don't need a timeline internally! 37110 } else if (keyframes) { 37111 _inheritDefaults(_setDefaults(tl.vars.defaults, { 37112 ease: "none" 37113 })); 37114 37115 tl._ease = _parseEase(keyframes.ease || vars.ease || "none"); 37116 var time = 0, 37117 a, 37118 kf, 37119 v; 37120 37121 if (_isArray(keyframes)) { 37122 keyframes.forEach(function (frame) { 37123 return tl.to(parsedTargets, frame, ">"); 37124 }); 37125 tl.duration(); // to ensure tl._dur is cached because we tap into it for performance purposes in the render() method. 37126 } else { 37127 copy = {}; 37128 37129 for (p in keyframes) { 37130 p === "ease" || p === "easeEach" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach); 37131 } 37132 37133 for (p in copy) { 37134 a = copy[p].sort(function (a, b) { 37135 return a.t - b.t; 37136 }); 37137 time = 0; 37138 37139 for (i = 0; i < a.length; i++) { 37140 kf = a[i]; 37141 v = { 37142 ease: kf.e, 37143 duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration 37144 }; 37145 v[p] = kf.v; 37146 tl.to(parsedTargets, v, time); 37147 time += v.duration; 37148 } 37149 } 37150 37151 tl.duration() < duration && tl.to({}, { 37152 duration: duration - tl.duration() 37153 }); // in case keyframes didn't go to 100% 37154 } 37155 } 37156 37157 duration || _this3.duration(duration = tl.duration()); 37158 } else { 37159 _this3.timeline = 0; //speed optimization, faster lookups (no going up the prototype chain) 37160 } 37161 37162 if (overwrite === true && !_suppressOverwrites) { 37163 _overwritingTween = _assertThisInitialized(_this3); 37164 37165 _globalTimeline.killTweensOf(parsedTargets); 37166 37167 _overwritingTween = 0; 37168 } 37169 37170 _addToTimeline(parent, _assertThisInitialized(_this3), position); 37171 37172 vars.reversed && _this3.reverse(); 37173 vars.paused && _this3.paused(true); 37174 37175 if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== "nested") { 37176 _this3._tTime = -_tinyNum; //forces a render without having to set the render() "force" parameter to true because we want to allow lazying by default (using the "force" parameter always forces an immediate full render) 37177 37178 _this3.render(Math.max(0, -delay) || 0); //in case delay is negative 37179 37180 } 37181 37182 scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger); 37183 return _this3; 37184 } 37185 37186 var _proto3 = Tween.prototype; 37187 37188 _proto3.render = function render(totalTime, suppressEvents, force) { 37189 var prevTime = this._time, 37190 tDur = this._tDur, 37191 dur = this._dur, 37192 isNegative = totalTime < 0, 37193 tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime, 37194 time, 37195 pt, 37196 iteration, 37197 cycleDuration, 37198 prevIteration, 37199 isYoyo, 37200 ratio, 37201 timeline, 37202 yoyoEase; 37203 37204 if (!dur) { 37205 _renderZeroDurationTween(this, totalTime, suppressEvents, force); 37206 } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative) { 37207 //this senses if we're crossing over the start time, in which case we must record _zTime and force the render, but we do it in this lengthy conditional way for performance reasons (usually we can skip the calculations): this._initted && (this._zTime < 0) !== (totalTime < 0) 37208 time = tTime; 37209 timeline = this.timeline; 37210 37211 if (this._repeat) { 37212 //adjust the time for repeats and yoyos 37213 cycleDuration = dur + this._rDelay; 37214 37215 if (this._repeat < -1 && isNegative) { 37216 return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force); 37217 } 37218 37219 time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!) 37220 37221 if (tTime === tDur) { 37222 // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't) 37223 iteration = this._repeat; 37224 time = dur; 37225 } else { 37226 iteration = ~~(tTime / cycleDuration); 37227 37228 if (iteration && iteration === _roundPrecise(tTime / cycleDuration)) { 37229 time = dur; 37230 iteration--; 37231 } 37232 37233 time > dur && (time = dur); 37234 } 37235 37236 isYoyo = this._yoyo && iteration & 1; 37237 37238 if (isYoyo) { 37239 yoyoEase = this._yEase; 37240 time = dur - time; 37241 } 37242 37243 prevIteration = _animationCycle(this._tTime, cycleDuration); 37244 37245 if (time === prevTime && !force && this._initted && iteration === prevIteration) { 37246 //could be during the repeatDelay part. No need to render and fire callbacks. 37247 this._tTime = tTime; 37248 return this; 37249 } 37250 37251 if (iteration !== prevIteration) { 37252 timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo); //repeatRefresh functionality 37253 37254 if (this.vars.repeatRefresh && !isYoyo && !this._lock && this._time !== cycleDuration && this._initted) { 37255 // this._time will === cycleDuration when we render at EXACTLY the end of an iteration. Without this condition, it'd often do the repeatRefresh render TWICE (again on the very next tick). 37256 this._lock = force = 1; //force, otherwise if lazy is true, the _attemptInitTween() will return and we'll jump out and get caught bouncing on each tick. 37257 37258 this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0; 37259 } 37260 } 37261 } 37262 37263 if (!this._initted) { 37264 if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) { 37265 this._tTime = 0; // in constructor if immediateRender is true, we set _tTime to -_tinyNum to have the playhead cross the starting point but we can't leave _tTime as a negative number. 37266 37267 return this; 37268 } 37269 37270 if (prevTime !== this._time && !(force && this.vars.repeatRefresh && iteration !== prevIteration)) { 37271 // rare edge case - during initialization, an onUpdate in the _startAt (.fromTo()) might force this tween to render at a different spot in which case we should ditch this render() call so that it doesn't revert the values. But we also don't want to dump if we're doing a repeatRefresh render! 37272 return this; 37273 } 37274 37275 if (dur !== this._dur) { 37276 // while initting, a plugin like InertiaPlugin might alter the duration, so rerun from the start to ensure everything renders as it should. 37277 return this.render(totalTime, suppressEvents, force); 37278 } 37279 } 37280 37281 this._tTime = tTime; 37282 this._time = time; 37283 37284 if (!this._act && this._ts) { 37285 this._act = 1; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick. 37286 37287 this._lazy = 0; 37288 } 37289 37290 this.ratio = ratio = (yoyoEase || this._ease)(time / dur); 37291 37292 if (this._from) { 37293 this.ratio = ratio = 1 - ratio; 37294 } 37295 37296 if (time && !prevTime && !suppressEvents && !iteration) { 37297 _callback(this, "onStart"); 37298 37299 if (this._tTime !== tTime) { 37300 // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart. 37301 return this; 37302 } 37303 } 37304 37305 pt = this._pt; 37306 37307 while (pt) { 37308 pt.r(ratio, pt.d); 37309 pt = pt._next; 37310 } 37311 37312 timeline && timeline.render(totalTime < 0 ? totalTime : timeline._dur * timeline._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime); 37313 37314 if (this._onUpdate && !suppressEvents) { 37315 isNegative && _rewindStartAt(this, totalTime, suppressEvents, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete. 37316 37317 _callback(this, "onUpdate"); 37318 } 37319 37320 this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, "onRepeat"); 37321 37322 if ((tTime === this._tDur || !tTime) && this._tTime === tTime) { 37323 isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true); 37324 (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if we're rendering at exactly a time of 0, as there could be autoRevert values that should get set on the next tick (if the playhead goes backward beyond the startTime, negative totalTime). Don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative. 37325 37326 if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) { 37327 // if prevTime and tTime are zero, we shouldn't fire the onReverseComplete. This could happen if you gsap.to(... {paused:true}).play(); 37328 _callback(this, tTime === tDur ? "onComplete" : "onReverseComplete", true); 37329 37330 this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom(); 37331 } 37332 } 37333 } 37334 37335 return this; 37336 }; 37337 37338 _proto3.targets = function targets() { 37339 return this._targets; 37340 }; 37341 37342 _proto3.invalidate = function invalidate(soft) { 37343 // "soft" gives us a way to clear out everything EXCEPT the recorded pre-"from" portion of from() tweens. Otherwise, for example, if you tween.progress(1).render(0, true true).invalidate(), the "from" values would persist and then on the next render, the from() tweens would initialize and the current value would match the "from" values, thus animate from the same value to the same value (no animation). We tap into this in ScrollTrigger's refresh() where we must push a tween to completion and then back again but honor its init state in case the tween is dependent on another tween further up on the page. 37344 (!soft || !this.vars.runBackwards) && (this._startAt = 0); 37345 this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0; 37346 this._ptLookup = []; 37347 this.timeline && this.timeline.invalidate(soft); 37348 return _Animation2.prototype.invalidate.call(this, soft); 37349 }; 37350 37351 _proto3.resetTo = function resetTo(property, value, start, startIsRelative, skipRecursion) { 37352 _tickerActive || _ticker.wake(); 37353 this._ts || this.play(); 37354 var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts), 37355 ratio; 37356 this._initted || _initTween(this, time); 37357 ratio = this._ease(time / this._dur); // don't just get tween.ratio because it may not have rendered yet. 37358 // possible future addition to allow an object with multiple values to update, like tween.resetTo({x: 100, y: 200}); At this point, it doesn't seem worth the added kb given the fact that most users will likely opt for the convenient gsap.quickTo() way of interacting with this method. 37359 // if (_isObject(property)) { // performance optimization 37360 // for (p in property) { 37361 // if (_updatePropTweens(this, p, property[p], value ? value[p] : null, start, ratio, time)) { 37362 // return this.resetTo(property, value, start, startIsRelative); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again. 37363 // } 37364 // } 37365 // } else { 37366 37367 if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time, skipRecursion)) { 37368 return this.resetTo(property, value, start, startIsRelative, 1); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again. 37369 } //} 37370 37371 37372 _alignPlayhead(this, 0); 37373 37374 this.parent || _addLinkedListItem(this._dp, this, "_first", "_last", this._dp._sort ? "_start" : 0); 37375 return this.render(0); 37376 }; 37377 37378 _proto3.kill = function kill(targets, vars) { 37379 if (vars === void 0) { 37380 vars = "all"; 37381 } 37382 37383 if (!targets && (!vars || vars === "all")) { 37384 this._lazy = this._pt = 0; 37385 return this.parent ? _interrupt(this) : this; 37386 } 37387 37388 if (this.timeline) { 37389 var tDur = this.timeline.totalDuration(); 37390 this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); // if nothing is left tweening, interrupt. 37391 37392 this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); // if a nested tween is killed that changes the duration, it should affect this tween's duration. We must use the ratio, though, because sometimes the internal timeline is stretched like for keyframes where they don't all add up to whatever the parent tween's duration was set to. 37393 37394 return this; 37395 } 37396 37397 var parsedTargets = this._targets, 37398 killingTargets = targets ? toArray(targets) : parsedTargets, 37399 propTweenLookup = this._ptLookup, 37400 firstPT = this._pt, 37401 overwrittenProps, 37402 curLookup, 37403 curOverwriteProps, 37404 props, 37405 p, 37406 pt, 37407 i; 37408 37409 if ((!vars || vars === "all") && _arraysMatch(parsedTargets, killingTargets)) { 37410 vars === "all" && (this._pt = 0); 37411 return _interrupt(this); 37412 } 37413 37414 overwrittenProps = this._op = this._op || []; 37415 37416 if (vars !== "all") { 37417 //so people can pass in a comma-delimited list of property names 37418 if (_isString(vars)) { 37419 p = {}; 37420 37421 _forEachName(vars, function (name) { 37422 return p[name] = 1; 37423 }); 37424 37425 vars = p; 37426 } 37427 37428 vars = _addAliasesToVars(parsedTargets, vars); 37429 } 37430 37431 i = parsedTargets.length; 37432 37433 while (i--) { 37434 if (~killingTargets.indexOf(parsedTargets[i])) { 37435 curLookup = propTweenLookup[i]; 37436 37437 if (vars === "all") { 37438 overwrittenProps[i] = vars; 37439 props = curLookup; 37440 curOverwriteProps = {}; 37441 } else { 37442 curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {}; 37443 props = vars; 37444 } 37445 37446 for (p in props) { 37447 pt = curLookup && curLookup[p]; 37448 37449 if (pt) { 37450 if (!("kill" in pt.d) || pt.d.kill(p) === true) { 37451 _removeLinkedListItem(this, pt, "_pt"); 37452 } 37453 37454 delete curLookup[p]; 37455 } 37456 37457 if (curOverwriteProps !== "all") { 37458 curOverwriteProps[p] = 1; 37459 } 37460 } 37461 } 37462 } 37463 37464 this._initted && !this._pt && firstPT && _interrupt(this); //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening. 37465 37466 return this; 37467 }; 37468 37469 Tween.to = function to(targets, vars) { 37470 return new Tween(targets, vars, arguments[2]); 37471 }; 37472 37473 Tween.from = function from(targets, vars) { 37474 return _createTweenType(1, arguments); 37475 }; 37476 37477 Tween.delayedCall = function delayedCall(delay, callback, params, scope) { 37478 return new Tween(callback, 0, { 37479 immediateRender: false, 37480 lazy: false, 37481 overwrite: false, 37482 delay: delay, 37483 onComplete: callback, 37484 onReverseComplete: callback, 37485 onCompleteParams: params, 37486 onReverseCompleteParams: params, 37487 callbackScope: scope 37488 }); // we must use onReverseComplete too for things like timeline.add(() => {...}) which should be triggered in BOTH directions (forward and reverse) 37489 }; 37490 37491 Tween.fromTo = function fromTo(targets, fromVars, toVars) { 37492 return _createTweenType(2, arguments); 37493 }; 37494 37495 Tween.set = function set(targets, vars) { 37496 vars.duration = 0; 37497 vars.repeatDelay || (vars.repeat = 0); 37498 return new Tween(targets, vars); 37499 }; 37500 37501 Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) { 37502 return _globalTimeline.killTweensOf(targets, props, onlyActive); 37503 }; 37504 37505 return Tween; 37506}(Animation); 37507 37508_setDefaults(Tween.prototype, { 37509 _targets: [], 37510 _lazy: 0, 37511 _startAt: 0, 37512 _op: 0, 37513 _onInit: 0 37514}); //add the pertinent timeline methods to Tween instances so that users can chain conveniently and create a timeline automatically. (removed due to concerns that it'd ultimately add to more confusion especially for beginners) 37515// _forEachName("to,from,fromTo,set,call,add,addLabel,addPause", name => { 37516// Tween.prototype[name] = function() { 37517// let tl = new Timeline(); 37518// return _addToTimeline(tl, this)[name].apply(tl, toArray(arguments)); 37519// } 37520// }); 37521//for backward compatibility. Leverage the timeline calls. 37522 37523 37524_forEachName("staggerTo,staggerFrom,staggerFromTo", function (name) { 37525 Tween[name] = function () { 37526 var tl = new Timeline(), 37527 params = _slice.call(arguments, 0); 37528 37529 params.splice(name === "staggerFromTo" ? 5 : 4, 0, 0); 37530 return tl[name].apply(tl, params); 37531 }; 37532}); 37533/* 37534 * -------------------------------------------------------------------------------------- 37535 * PROPTWEEN 37536 * -------------------------------------------------------------------------------------- 37537 */ 37538 37539 37540var _setterPlain = function _setterPlain(target, property, value) { 37541 return target[property] = value; 37542}, 37543 _setterFunc = function _setterFunc(target, property, value) { 37544 return target[property](value); 37545}, 37546 _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) { 37547 return target[property](data.fp, value); 37548}, 37549 _setterAttribute = function _setterAttribute(target, property, value) { 37550 return target.setAttribute(property, value); 37551}, 37552 _getSetter = function _getSetter(target, property) { 37553 return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain; 37554}, 37555 _renderPlain = function _renderPlain(ratio, data) { 37556 return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1000000) / 1000000, data); 37557}, 37558 _renderBoolean = function _renderBoolean(ratio, data) { 37559 return data.set(data.t, data.p, !!(data.s + data.c * ratio), data); 37560}, 37561 _renderComplexString = function _renderComplexString(ratio, data) { 37562 var pt = data._pt, 37563 s = ""; 37564 37565 if (!ratio && data.b) { 37566 //b = beginning string 37567 s = data.b; 37568 } else if (ratio === 1 && data.e) { 37569 //e = ending string 37570 s = data.e; 37571 } else { 37572 while (pt) { 37573 s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s; //we use the "p" property for the text inbetween (like a suffix). And in the context of a complex string, the modifier (m) is typically just Math.round(), like for RGB colors. 37574 37575 pt = pt._next; 37576 } 37577 37578 s += data.c; //we use the "c" of the PropTween to store the final chunk of non-numeric text. 37579 } 37580 37581 data.set(data.t, data.p, s, data); 37582}, 37583 _renderPropTweens = function _renderPropTweens(ratio, data) { 37584 var pt = data._pt; 37585 37586 while (pt) { 37587 pt.r(ratio, pt.d); 37588 pt = pt._next; 37589 } 37590}, 37591 _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) { 37592 var pt = this._pt, 37593 next; 37594 37595 while (pt) { 37596 next = pt._next; 37597 pt.p === property && pt.modifier(modifier, tween, target); 37598 pt = next; 37599 } 37600}, 37601 _killPropTweensOf = function _killPropTweensOf(property) { 37602 var pt = this._pt, 37603 hasNonDependentRemaining, 37604 next; 37605 37606 while (pt) { 37607 next = pt._next; 37608 37609 if (pt.p === property && !pt.op || pt.op === property) { 37610 _removeLinkedListItem(this, pt, "_pt"); 37611 } else if (!pt.dep) { 37612 hasNonDependentRemaining = 1; 37613 } 37614 37615 pt = next; 37616 } 37617 37618 return !hasNonDependentRemaining; 37619}, 37620 _setterWithModifier = function _setterWithModifier(target, property, value, data) { 37621 data.mSet(target, property, data.m.call(data.tween, value, data.mt), data); 37622}, 37623 _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) { 37624 var pt = parent._pt, 37625 next, 37626 pt2, 37627 first, 37628 last; //sorts the PropTween linked list in order of priority because some plugins need to do their work after ALL of the PropTweens were created (like RoundPropsPlugin and ModifiersPlugin) 37629 37630 while (pt) { 37631 next = pt._next; 37632 pt2 = first; 37633 37634 while (pt2 && pt2.pr > pt.pr) { 37635 pt2 = pt2._next; 37636 } 37637 37638 if (pt._prev = pt2 ? pt2._prev : last) { 37639 pt._prev._next = pt; 37640 } else { 37641 first = pt; 37642 } 37643 37644 if (pt._next = pt2) { 37645 pt2._prev = pt; 37646 } else { 37647 last = pt; 37648 } 37649 37650 pt = next; 37651 } 37652 37653 parent._pt = first; 37654}; //PropTween key: t = target, p = prop, r = renderer, d = data, s = start, c = change, op = overwriteProperty (ONLY populated when it's different than p), pr = priority, _next/_prev for the linked list siblings, set = setter, m = modifier, mSet = modifierSetter (the original setter, before a modifier was added) 37655 37656 37657var PropTween = /*#__PURE__*/function () { 37658 function PropTween(next, target, prop, start, change, renderer, data, setter, priority) { 37659 this.t = target; 37660 this.s = start; 37661 this.c = change; 37662 this.p = prop; 37663 this.r = renderer || _renderPlain; 37664 this.d = data || this; 37665 this.set = setter || _setterPlain; 37666 this.pr = priority || 0; 37667 this._next = next; 37668 37669 if (next) { 37670 next._prev = this; 37671 } 37672 } 37673 37674 var _proto4 = PropTween.prototype; 37675 37676 _proto4.modifier = function modifier(func, tween, target) { 37677 this.mSet = this.mSet || this.set; //in case it was already set (a PropTween can only have one modifier) 37678 37679 this.set = _setterWithModifier; 37680 this.m = func; 37681 this.mt = target; //modifier target 37682 37683 this.tween = tween; 37684 }; 37685 37686 return PropTween; 37687}(); //Initialization tasks 37688 37689_forEachName(_callbackNames + "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger", function (name) { 37690 return _reservedProps[name] = 1; 37691}); 37692 37693_globals.TweenMax = _globals.TweenLite = Tween; 37694_globals.TimelineLite = _globals.TimelineMax = Timeline; 37695_globalTimeline = new Timeline({ 37696 sortChildren: false, 37697 defaults: _defaults, 37698 autoRemoveChildren: true, 37699 id: "root", 37700 smoothChildTiming: true 37701}); 37702_config.stringFilter = _colorStringFilter; 37703 37704var _media = [], 37705 _listeners = {}, 37706 _emptyArray = [], 37707 _lastMediaTime = 0, 37708 _contextID = 0, 37709 _dispatch = function _dispatch(type) { 37710 return (_listeners[type] || _emptyArray).map(function (f) { 37711 return f(); 37712 }); 37713}, 37714 _onMediaChange = function _onMediaChange() { 37715 var time = Date.now(), 37716 matches = []; 37717 37718 if (time - _lastMediaTime > 2) { 37719 _dispatch("matchMediaInit"); 37720 37721 _media.forEach(function (c) { 37722 var queries = c.queries, 37723 conditions = c.conditions, 37724 match, 37725 p, 37726 anyMatch, 37727 toggled; 37728 37729 for (p in queries) { 37730 match = _win.matchMedia(queries[p]).matches; // Firefox doesn't update the "matches" property of the MediaQueryList object correctly - it only does so as it calls its change handler - so we must re-create a media query here to ensure it's accurate. 37731 37732 match && (anyMatch = 1); 37733 37734 if (match !== conditions[p]) { 37735 conditions[p] = match; 37736 toggled = 1; 37737 } 37738 } 37739 37740 if (toggled) { 37741 c.revert(); 37742 anyMatch && matches.push(c); 37743 } 37744 }); 37745 37746 _dispatch("matchMediaRevert"); 37747 37748 matches.forEach(function (c) { 37749 return c.onMatch(c, function (func) { 37750 return c.add(null, func); 37751 }); 37752 }); 37753 _lastMediaTime = time; 37754 37755 _dispatch("matchMedia"); 37756 } 37757}; 37758 37759var Context = /*#__PURE__*/function () { 37760 function Context(func, scope) { 37761 this.selector = scope && selector(scope); 37762 this.data = []; 37763 this._r = []; // returned/cleanup functions 37764 37765 this.isReverted = false; 37766 this.id = _contextID++; // to work around issues that frameworks like Vue cause by making things into Proxies which make it impossible to do something like _media.indexOf(this) because "this" would no longer refer to the Context instance itself - it'd refer to a Proxy! We needed a way to identify the context uniquely 37767 37768 func && this.add(func); 37769 } 37770 37771 var _proto5 = Context.prototype; 37772 37773 _proto5.add = function add(name, func, scope) { 37774 // possible future addition if we need the ability to add() an animation to a context and for whatever reason cannot create that animation inside of a context.add(() => {...}) function. 37775 // if (name && _isFunction(name.revert)) { 37776 // this.data.push(name); 37777 // return (name._ctx = this); 37778 // } 37779 if (_isFunction(name)) { 37780 scope = func; 37781 func = name; 37782 name = _isFunction; 37783 } 37784 37785 var self = this, 37786 f = function f() { 37787 var prev = _context, 37788 prevSelector = self.selector, 37789 result; 37790 prev && prev !== self && prev.data.push(self); 37791 scope && (self.selector = selector(scope)); 37792 _context = self; 37793 result = func.apply(self, arguments); 37794 _isFunction(result) && self._r.push(result); 37795 _context = prev; 37796 self.selector = prevSelector; 37797 self.isReverted = false; 37798 return result; 37799 }; 37800 37801 self.last = f; 37802 return name === _isFunction ? f(self, function (func) { 37803 return self.add(null, func); 37804 }) : name ? self[name] = f : f; 37805 }; 37806 37807 _proto5.ignore = function ignore(func) { 37808 var prev = _context; 37809 _context = null; 37810 func(this); 37811 _context = prev; 37812 }; 37813 37814 _proto5.getTweens = function getTweens() { 37815 var a = []; 37816 this.data.forEach(function (e) { 37817 return e instanceof Context ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === "nested") && a.push(e); 37818 }); 37819 return a; 37820 }; 37821 37822 _proto5.clear = function clear() { 37823 this._r.length = this.data.length = 0; 37824 }; 37825 37826 _proto5.kill = function kill(revert, matchMedia) { 37827 var _this4 = this; 37828 37829 if (revert) { 37830 (function () { 37831 var tweens = _this4.getTweens(), 37832 i = _this4.data.length, 37833 t; 37834 37835 while (i--) { 37836 // Flip plugin tweens are very different in that they should actually be pushed to their end. The plugin replaces the timeline's .revert() method to do exactly that. But we also need to remove any of those nested tweens inside the flip timeline so that they don't get individually reverted. 37837 t = _this4.data[i]; 37838 37839 if (t.data === "isFlip") { 37840 t.revert(); 37841 t.getChildren(true, true, false).forEach(function (tween) { 37842 return tweens.splice(tweens.indexOf(tween), 1); 37843 }); 37844 } 37845 } // save as an object so that we can cache the globalTime for each tween to optimize performance during the sort 37846 37847 37848 tweens.map(function (t) { 37849 return { 37850 g: t._dur || t._delay || t._sat && !t._sat.vars.immediateRender ? t.globalTime(0) : -Infinity, 37851 t: t 37852 }; 37853 }).sort(function (a, b) { 37854 return b.g - a.g || -Infinity; 37855 }).forEach(function (o) { 37856 return o.t.revert(revert); 37857 }); // note: all of the _startAt tweens should be reverted in reverse order that they were created, and they'll all have the same globalTime (-1) so the " || -1" in the sort keeps the order properly. 37858 37859 i = _this4.data.length; 37860 37861 while (i--) { 37862 // make sure we loop backwards so that, for example, SplitTexts that were created later on the same element get reverted first 37863 t = _this4.data[i]; 37864 37865 if (t instanceof Timeline) { 37866 if (t.data !== "nested") { 37867 t.scrollTrigger && t.scrollTrigger.revert(); 37868 t.kill(); // don't revert() the timeline because that's duplicating efforts since we already reverted all the tweens 37869 } 37870 } else { 37871 !(t instanceof Tween) && t.revert && t.revert(revert); 37872 } 37873 } 37874 37875 _this4._r.forEach(function (f) { 37876 return f(revert, _this4); 37877 }); 37878 37879 _this4.isReverted = true; 37880 })(); 37881 } else { 37882 this.data.forEach(function (e) { 37883 return e.kill && e.kill(); 37884 }); 37885 } 37886 37887 this.clear(); 37888 37889 if (matchMedia) { 37890 var i = _media.length; 37891 37892 while (i--) { 37893 // previously, we checked _media.indexOf(this), but some frameworks like Vue enforce Proxy objects that make it impossible to get the proper result that way, so we must use a unique ID number instead. 37894 _media[i].id === this.id && _media.splice(i, 1); 37895 } 37896 } 37897 }; 37898 37899 _proto5.revert = function revert(config) { 37900 this.kill(config || {}); 37901 }; 37902 37903 return Context; 37904}(); 37905 37906var MatchMedia = /*#__PURE__*/function () { 37907 function MatchMedia(scope) { 37908 this.contexts = []; 37909 this.scope = scope; 37910 _context && _context.data.push(this); 37911 } 37912 37913 var _proto6 = MatchMedia.prototype; 37914 37915 _proto6.add = function add(conditions, func, scope) { 37916 _isObject(conditions) || (conditions = { 37917 matches: conditions 37918 }); 37919 var context = new Context(0, scope || this.scope), 37920 cond = context.conditions = {}, 37921 mq, 37922 p, 37923 active; 37924 _context && !context.selector && (context.selector = _context.selector); // in case a context is created inside a context. Like a gsap.matchMedia() that's inside a scoped gsap.context() 37925 37926 this.contexts.push(context); 37927 func = context.add("onMatch", func); 37928 context.queries = conditions; 37929 37930 for (p in conditions) { 37931 if (p === "all") { 37932 active = 1; 37933 } else { 37934 mq = _win.matchMedia(conditions[p]); 37935 37936 if (mq) { 37937 _media.indexOf(context) < 0 && _media.push(context); 37938 (cond[p] = mq.matches) && (active = 1); 37939 mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener("change", _onMediaChange); 37940 } 37941 } 37942 } 37943 37944 active && func(context, function (f) { 37945 return context.add(null, f); 37946 }); 37947 return this; 37948 } // refresh() { 37949 // let time = _lastMediaTime, 37950 // media = _media; 37951 // _lastMediaTime = -1; 37952 // _media = this.contexts; 37953 // _onMediaChange(); 37954 // _lastMediaTime = time; 37955 // _media = media; 37956 // } 37957 ; 37958 37959 _proto6.revert = function revert(config) { 37960 this.kill(config || {}); 37961 }; 37962 37963 _proto6.kill = function kill(revert) { 37964 this.contexts.forEach(function (c) { 37965 return c.kill(revert, true); 37966 }); 37967 }; 37968 37969 return MatchMedia; 37970}(); 37971/* 37972 * -------------------------------------------------------------------------------------- 37973 * GSAP 37974 * -------------------------------------------------------------------------------------- 37975 */ 37976 37977 37978var _gsap = { 37979 registerPlugin: function registerPlugin() { 37980 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 37981 args[_key2] = arguments[_key2]; 37982 } 37983 37984 args.forEach(function (config) { 37985 return _createPlugin(config); 37986 }); 37987 }, 37988 timeline: function timeline(vars) { 37989 return new Timeline(vars); 37990 }, 37991 getTweensOf: function getTweensOf(targets, onlyActive) { 37992 return _globalTimeline.getTweensOf(targets, onlyActive); 37993 }, 37994 getProperty: function getProperty(target, property, unit, uncache) { 37995 _isString(target) && (target = toArray(target)[0]); //in case selector text or an array is passed in 37996 37997 var getter = _getCache(target || {}).get, 37998 format = unit ? _passThrough : _numericIfPossible; 37999 38000 unit === "native" && (unit = ""); 38001 return !target ? target : !property ? function (property, unit, uncache) { 38002 return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache)); 38003 } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache)); 38004 }, 38005 quickSetter: function quickSetter(target, property, unit) { 38006 target = toArray(target); 38007 38008 if (target.length > 1) { 38009 var setters = target.map(function (t) { 38010 return gsap.quickSetter(t, property, unit); 38011 }), 38012 l = setters.length; 38013 return function (value) { 38014 var i = l; 38015 38016 while (i--) { 38017 setters[i](value); 38018 } 38019 }; 38020 } 38021 38022 target = target[0] || {}; 38023 38024 var Plugin = _plugins[property], 38025 cache = _getCache(target), 38026 p = cache.harness && (cache.harness.aliases || {})[property] || property, 38027 // in case it's an alias, like "rotate" for "rotation". 38028 setter = Plugin ? function (value) { 38029 var p = new Plugin(); 38030 _quickTween._pt = 0; 38031 p.init(target, unit ? value + unit : value, _quickTween, 0, [target]); 38032 p.render(1, p); 38033 _quickTween._pt && _renderPropTweens(1, _quickTween); 38034 } : cache.set(target, p); 38035 38036 return Plugin ? setter : function (value) { 38037 return setter(target, p, unit ? value + unit : value, cache, 1); 38038 }; 38039 }, 38040 quickTo: function quickTo(target, property, vars) { 38041 var _merge2; 38042 38043 var tween = gsap.to(target, _merge((_merge2 = {}, _merge2[property] = "+=0.1", _merge2.paused = true, _merge2), vars || {})), 38044 func = function func(value, start, startIsRelative) { 38045 return tween.resetTo(property, value, start, startIsRelative); 38046 }; 38047 38048 func.tween = tween; 38049 return func; 38050 }, 38051 isTweening: function isTweening(targets) { 38052 return _globalTimeline.getTweensOf(targets, true).length > 0; 38053 }, 38054 defaults: function defaults(value) { 38055 value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease)); 38056 return _mergeDeep(_defaults, value || {}); 38057 }, 38058 config: function config(value) { 38059 return _mergeDeep(_config, value || {}); 38060 }, 38061 registerEffect: function registerEffect(_ref3) { 38062 var name = _ref3.name, 38063 effect = _ref3.effect, 38064 plugins = _ref3.plugins, 38065 defaults = _ref3.defaults, 38066 extendTimeline = _ref3.extendTimeline; 38067 (plugins || "").split(",").forEach(function (pluginName) { 38068 return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + " effect requires " + pluginName + " plugin."); 38069 }); 38070 38071 _effects[name] = function (targets, vars, tl) { 38072 return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl); 38073 }; 38074 38075 if (extendTimeline) { 38076 Timeline.prototype[name] = function (targets, vars, position) { 38077 return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position); 38078 }; 38079 } 38080 }, 38081 registerEase: function registerEase(name, ease) { 38082 _easeMap[name] = _parseEase(ease); 38083 }, 38084 parseEase: function parseEase(ease, defaultEase) { 38085 return arguments.length ? _parseEase(ease, defaultEase) : _easeMap; 38086 }, 38087 getById: function getById(id) { 38088 return _globalTimeline.getById(id); 38089 }, 38090 exportRoot: function exportRoot(vars, includeDelayedCalls) { 38091 if (vars === void 0) { 38092 vars = {}; 38093 } 38094 38095 var tl = new Timeline(vars), 38096 child, 38097 next; 38098 tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming); 38099 38100 _globalTimeline.remove(tl); 38101 38102 tl._dp = 0; //otherwise it'll get re-activated when adding children and be re-introduced into _globalTimeline's linked list (then added to itself). 38103 38104 tl._time = tl._tTime = _globalTimeline._time; 38105 child = _globalTimeline._first; 38106 38107 while (child) { 38108 next = child._next; 38109 38110 if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) { 38111 _addToTimeline(tl, child, child._start - child._delay); 38112 } 38113 38114 child = next; 38115 } 38116 38117 _addToTimeline(_globalTimeline, tl, 0); 38118 38119 return tl; 38120 }, 38121 context: function context(func, scope) { 38122 return func ? new Context(func, scope) : _context; 38123 }, 38124 matchMedia: function matchMedia(scope) { 38125 return new MatchMedia(scope); 38126 }, 38127 matchMediaRefresh: function matchMediaRefresh() { 38128 return _media.forEach(function (c) { 38129 var cond = c.conditions, 38130 found, 38131 p; 38132 38133 for (p in cond) { 38134 if (cond[p]) { 38135 cond[p] = false; 38136 found = 1; 38137 } 38138 } 38139 38140 found && c.revert(); 38141 }) || _onMediaChange(); 38142 }, 38143 addEventListener: function addEventListener(type, callback) { 38144 var a = _listeners[type] || (_listeners[type] = []); 38145 ~a.indexOf(callback) || a.push(callback); 38146 }, 38147 removeEventListener: function removeEventListener(type, callback) { 38148 var a = _listeners[type], 38149 i = a && a.indexOf(callback); 38150 i >= 0 && a.splice(i, 1); 38151 }, 38152 utils: { 38153 wrap: wrap, 38154 wrapYoyo: wrapYoyo, 38155 distribute: distribute, 38156 random: random, 38157 snap: snap, 38158 normalize: normalize, 38159 getUnit: getUnit, 38160 clamp: clamp, 38161 splitColor: splitColor, 38162 toArray: toArray, 38163 selector: selector, 38164 mapRange: mapRange, 38165 pipe: pipe, 38166 unitize: unitize, 38167 interpolate: interpolate, 38168 shuffle: shuffle 38169 }, 38170 install: _install, 38171 effects: _effects, 38172 ticker: _ticker, 38173 updateRoot: Timeline.updateRoot, 38174 plugins: _plugins, 38175 globalTimeline: _globalTimeline, 38176 core: { 38177 PropTween: PropTween, 38178 globals: _addGlobal, 38179 Tween: Tween, 38180 Timeline: Timeline, 38181 Animation: Animation, 38182 getCache: _getCache, 38183 _removeLinkedListItem: _removeLinkedListItem, 38184 reverting: function reverting() { 38185 return _reverting; 38186 }, 38187 context: function context(toAdd) { 38188 if (toAdd && _context) { 38189 _context.data.push(toAdd); 38190 38191 toAdd._ctx = _context; 38192 } 38193 38194 return _context; 38195 }, 38196 suppressOverwrites: function suppressOverwrites(value) { 38197 return _suppressOverwrites = value; 38198 } 38199 } 38200}; 38201 38202_forEachName("to,from,fromTo,delayedCall,set,killTweensOf", function (name) { 38203 return _gsap[name] = Tween[name]; 38204}); 38205 38206_ticker.add(Timeline.updateRoot); 38207 38208_quickTween = _gsap.to({}, { 38209 duration: 0 38210}); // ---- EXTRA PLUGINS -------------------------------------------------------- 38211 38212var _getPluginPropTween = function _getPluginPropTween(plugin, prop) { 38213 var pt = plugin._pt; 38214 38215 while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) { 38216 pt = pt._next; 38217 } 38218 38219 return pt; 38220}, 38221 _addModifiers = function _addModifiers(tween, modifiers) { 38222 var targets = tween._targets, 38223 p, 38224 i, 38225 pt; 38226 38227 for (p in modifiers) { 38228 i = targets.length; 38229 38230 while (i--) { 38231 pt = tween._ptLookup[i][p]; 38232 38233 if (pt && (pt = pt.d)) { 38234 if (pt._pt) { 38235 // is a plugin 38236 pt = _getPluginPropTween(pt, p); 38237 } 38238 38239 pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p); 38240 } 38241 } 38242 } 38243}, 38244 _buildModifierPlugin = function _buildModifierPlugin(name, modifier) { 38245 return { 38246 name: name, 38247 rawVars: 1, 38248 //don't pre-process function-based values or "random()" strings. 38249 init: function init(target, vars, tween) { 38250 tween._onInit = function (tween) { 38251 var temp, p; 38252 38253 if (_isString(vars)) { 38254 temp = {}; 38255 38256 _forEachName(vars, function (name) { 38257 return temp[name] = 1; 38258 }); //if the user passes in a comma-delimited list of property names to roundProps, like "x,y", we round to whole numbers. 38259 38260 38261 vars = temp; 38262 } 38263 38264 if (modifier) { 38265 temp = {}; 38266 38267 for (p in vars) { 38268 temp[p] = modifier(vars[p]); 38269 } 38270 38271 vars = temp; 38272 } 38273 38274 _addModifiers(tween, vars); 38275 }; 38276 } 38277 }; 38278}; //register core plugins 38279 38280 38281var gsap = _gsap.registerPlugin({ 38282 name: "attr", 38283 init: function init(target, vars, tween, index, targets) { 38284 var p, pt, v; 38285 this.tween = tween; 38286 38287 for (p in vars) { 38288 v = target.getAttribute(p) || ""; 38289 pt = this.add(target, "setAttribute", (v || 0) + "", vars[p], index, targets, 0, 0, p); 38290 pt.op = p; 38291 pt.b = v; // record the beginning value so we can revert() 38292 38293 this._props.push(p); 38294 } 38295 }, 38296 render: function render(ratio, data) { 38297 var pt = data._pt; 38298 38299 while (pt) { 38300 _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d); // if reverting, go back to the original (pt.b) 38301 38302 pt = pt._next; 38303 } 38304 } 38305}, { 38306 name: "endArray", 38307 init: function init(target, value) { 38308 var i = value.length; 38309 38310 while (i--) { 38311 this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1); 38312 } 38313 } 38314}, _buildModifierPlugin("roundProps", _roundModifier), _buildModifierPlugin("modifiers"), _buildModifierPlugin("snap", snap)) || _gsap; //to prevent the core plugins from being dropped via aggressive tree shaking, we must include them in the variable declaration in this way. 38315 38316Tween.version = Timeline.version = gsap.version = "3.12.5"; 38317_coreReady = 1; 38318_windowExists() && _wake(); 38319var Power0 = _easeMap.Power0, 38320 Power1 = _easeMap.Power1, 38321 Power2 = _easeMap.Power2, 38322 Power3 = _easeMap.Power3, 38323 Power4 = _easeMap.Power4, 38324 Linear = _easeMap.Linear, 38325 Quad = _easeMap.Quad, 38326 Cubic = _easeMap.Cubic, 38327 Quart = _easeMap.Quart, 38328 Quint = _easeMap.Quint, 38329 Strong = _easeMap.Strong, 38330 Elastic = _easeMap.Elastic, 38331 Back = _easeMap.Back, 38332 SteppedEase = _easeMap.SteppedEase, 38333 Bounce = _easeMap.Bounce, 38334 Sine = _easeMap.Sine, 38335 Expo = _easeMap.Expo, 38336 Circ = _easeMap.Circ; 38337 38338 //export some internal methods/orojects for use in CSSPlugin so that we can externalize that file and allow custom builds that exclude it. 38339 38340 38341 38342/***/ }), 38343
vendor: 3,663 bytes, lines 38344-38389
38344/***/ "./node_modules/gsap/index.js": 38345/*!************************************!*\ 38346 !*** ./node_modules/gsap/index.js ***! 38347 \************************************/ 38348/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 38349 38350"use strict"; 38351__webpack_require__.r(__webpack_exports__); 38352/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38353/* harmony export */ "Back": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Back), 38354/* harmony export */ "Bounce": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Bounce), 38355/* harmony export */ "CSSPlugin": () => (/* reexport safe */ _CSSPlugin_js__WEBPACK_IMPORTED_MODULE_1__.CSSPlugin), 38356/* harmony export */ "Circ": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Circ), 38357/* harmony export */ "Cubic": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Cubic), 38358/* harmony export */ "Elastic": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Elastic), 38359/* harmony export */ "Expo": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Expo), 38360/* harmony export */ "Linear": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Linear), 38361/* harmony export */ "Power0": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Power0), 38362/* harmony export */ "Power1": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Power1), 38363/* harmony export */ "Power2": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Power2), 38364/* harmony export */ "Power3": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Power3), 38365/* harmony export */ "Power4": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Power4), 38366/* harmony export */ "Quad": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Quad), 38367/* harmony export */ "Quart": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Quart), 38368/* harmony export */ "Quint": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Quint), 38369/* harmony export */ "Sine": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Sine), 38370/* harmony export */ "SteppedEase": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.SteppedEase), 38371/* harmony export */ "Strong": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.Strong), 38372/* harmony export */ "TimelineLite": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.TimelineLite), 38373/* harmony export */ "TimelineMax": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.TimelineMax), 38374/* harmony export */ "TweenLite": () => (/* reexport safe */ _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.TweenLite), 38375/* harmony export */ "TweenMax": () => (/* binding */ TweenMaxWithCSS), 38376/* harmony export */ "default": () => (/* binding */ gsapWithCSS), 38377/* harmony export */ "gsap": () => (/* binding */ gsapWithCSS) 38378/* harmony export */ }); 38379/* harmony import */ var _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gsap-core.js */ "./node_modules/gsap/gsap-core.js"); 38380/* harmony import */ var _CSSPlugin_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CSSPlugin.js */ "./node_modules/gsap/CSSPlugin.js"); 38381 38382 38383var gsapWithCSS = _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap.registerPlugin(_CSSPlugin_js__WEBPACK_IMPORTED_MODULE_1__.CSSPlugin) || _gsap_core_js__WEBPACK_IMPORTED_MODULE_0__.gsap, 38384 // to protect from tree shaking 38385TweenMaxWithCSS = gsapWithCSS.core.Tween; 38386 38387 38388/***/ }), 38389
vendor: 15,673 bytes, lines 38390-38829
38390/***/ "./node_modules/gsap/utils/matrix.js": 38391/*!*******************************************!*\ 38392 !*** ./node_modules/gsap/utils/matrix.js ***! 38393 \*******************************************/ 38394/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 38395 38396"use strict"; 38397__webpack_require__.r(__webpack_exports__); 38398/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38399/* harmony export */ "Matrix2D": () => (/* binding */ Matrix2D), 38400/* harmony export */ "_getCTM": () => (/* binding */ _getCTM), 38401/* harmony export */ "_getDocScrollLeft": () => (/* binding */ _getDocScrollLeft), 38402/* harmony export */ "_getDocScrollTop": () => (/* binding */ _getDocScrollTop), 38403/* harmony export */ "_isFixed": () => (/* binding */ _isFixed), 38404/* harmony export */ "_setDoc": () => (/* binding */ _setDoc), 38405/* harmony export */ "getGlobalMatrix": () => (/* binding */ getGlobalMatrix) 38406/* harmony export */ }); 38407/*! 38408 * matrix 3.12.5 38409 * https://gsap.com 38410 * 38411 * Copyright 2008-2024, GreenSock. All rights reserved. 38412 * Subject to the terms at https://gsap.com/standard-license or for 38413 * Club GSAP members, the agreement issued with that membership. 38414 * @author: Jack Doyle, [email protected] 38415*/ 38416 38417/* eslint-disable */ 38418var _doc, 38419 _win, 38420 _docElement, 38421 _body, 38422 _divContainer, 38423 _svgContainer, 38424 _identityMatrix, 38425 _gEl, 38426 _transformProp = "transform", 38427 _transformOriginProp = _transformProp + "Origin", 38428 _hasOffsetBug, 38429 _setDoc = function _setDoc(element) { 38430 var doc = element.ownerDocument || element; 38431 38432 if (!(_transformProp in element.style) && "msTransform" in element.style) { 38433 //to improve compatibility with old Microsoft browsers 38434 _transformProp = "msTransform"; 38435 _transformOriginProp = _transformProp + "Origin"; 38436 } 38437 38438 while (doc.parentNode && (doc = doc.parentNode)) {} 38439 38440 _win = window; 38441 _identityMatrix = new Matrix2D(); 38442 38443 if (doc) { 38444 _doc = doc; 38445 _docElement = doc.documentElement; 38446 _body = doc.body; 38447 _gEl = _doc.createElementNS("http://www.w3.org/2000/svg", "g"); // prevent any existing CSS from transforming it 38448 38449 _gEl.style.transform = "none"; // now test for the offset reporting bug. Use feature detection instead of browser sniffing to make things more bulletproof and future-proof. Hopefully Safari will fix their bug soon. 38450 38451 var d1 = doc.createElement("div"), 38452 d2 = doc.createElement("div"), 38453 root = doc && (doc.body || doc.firstElementChild); 38454 38455 if (root && root.appendChild) { 38456 root.appendChild(d1); 38457 d1.appendChild(d2); 38458 d1.setAttribute("style", "position:static;transform:translate3d(0,0,1px)"); 38459 _hasOffsetBug = d2.offsetParent !== d1; 38460 root.removeChild(d1); 38461 } 38462 } 38463 38464 return doc; 38465}, 38466 _forceNonZeroScale = function _forceNonZeroScale(e) { 38467 // walks up the element's ancestors and finds any that had their scale set to 0 via GSAP, and changes them to 0.0001 to ensure that measurements work. Firefox has a bug that causes it to incorrectly report getBoundingClientRect() when scale is 0. 38468 var a, cache; 38469 38470 while (e && e !== _body) { 38471 cache = e._gsap; 38472 cache && cache.uncache && cache.get(e, "x"); // force re-parsing of transforms if necessary 38473 38474 if (cache && !cache.scaleX && !cache.scaleY && cache.renderTransform) { 38475 cache.scaleX = cache.scaleY = 1e-4; 38476 cache.renderTransform(1, cache); 38477 a ? a.push(cache) : a = [cache]; 38478 } 38479 38480 e = e.parentNode; 38481 } 38482 38483 return a; 38484}, 38485 // possible future addition: pass an element to _forceDisplay() and it'll walk up all its ancestors and make sure anything with display: none is set to display: block, and if there's no parentNode, it'll add it to the body. It returns an Array that you can then feed to _revertDisplay() to have it revert all the changes it made. 38486// _forceDisplay = e => { 38487// let a = [], 38488// parent; 38489// while (e && e !== _body) { 38490// parent = e.parentNode; 38491// (_win.getComputedStyle(e).display === "none" || !parent) && a.push(e, e.style.display, parent) && (e.style.display = "block"); 38492// parent || _body.appendChild(e); 38493// e = parent; 38494// } 38495// return a; 38496// }, 38497// _revertDisplay = a => { 38498// for (let i = 0; i < a.length; i+=3) { 38499// a[i+1] ? (a[i].style.display = a[i+1]) : a[i].style.removeProperty("display"); 38500// a[i+2] || a[i].parentNode.removeChild(a[i]); 38501// } 38502// }, 38503_svgTemps = [], 38504 //we create 3 elements for SVG, and 3 for other DOM elements and cache them for performance reasons. They get nested in _divContainer and _svgContainer so that just one element is added to the DOM on each successive attempt. Again, performance is key. 38505_divTemps = [], 38506 _getDocScrollTop = function _getDocScrollTop() { 38507 return _win.pageYOffset || _doc.scrollTop || _docElement.scrollTop || _body.scrollTop || 0; 38508}, 38509 _getDocScrollLeft = function _getDocScrollLeft() { 38510 return _win.pageXOffset || _doc.scrollLeft || _docElement.scrollLeft || _body.scrollLeft || 0; 38511}, 38512 _svgOwner = function _svgOwner(element) { 38513 return element.ownerSVGElement || ((element.tagName + "").toLowerCase() === "svg" ? element : null); 38514}, 38515 _isFixed = function _isFixed(element) { 38516 if (_win.getComputedStyle(element).position === "fixed") { 38517 return true; 38518 } 38519 38520 element = element.parentNode; 38521 38522 if (element && element.nodeType === 1) { 38523 // avoid document fragments which will throw an error. 38524 return _isFixed(element); 38525 } 38526}, 38527 _createSibling = function _createSibling(element, i) { 38528 if (element.parentNode && (_doc || _setDoc(element))) { 38529 var svg = _svgOwner(element), 38530 ns = svg ? svg.getAttribute("xmlns") || "http://www.w3.org/2000/svg" : "http://www.w3.org/1999/xhtml", 38531 type = svg ? i ? "rect" : "g" : "div", 38532 x = i !== 2 ? 0 : 100, 38533 y = i === 3 ? 100 : 0, 38534 css = "position:absolute;display:block;pointer-events:none;margin:0;padding:0;", 38535 e = _doc.createElementNS ? _doc.createElementNS(ns.replace(/^https/, "http"), type) : _doc.createElement(type); 38536 38537 if (i) { 38538 if (!svg) { 38539 if (!_divContainer) { 38540 _divContainer = _createSibling(element); 38541 _divContainer.style.cssText = css; 38542 } 38543 38544 e.style.cssText = css + "width:0.1px;height:0.1px;top:" + y + "px;left:" + x + "px"; 38545 38546 _divContainer.appendChild(e); 38547 } else { 38548 _svgContainer || (_svgContainer = _createSibling(element)); 38549 e.setAttribute("width", 0.01); 38550 e.setAttribute("height", 0.01); 38551 e.setAttribute("transform", "translate(" + x + "," + y + ")"); 38552 38553 _svgContainer.appendChild(e); 38554 } 38555 } 38556 38557 return e; 38558 } 38559 38560 throw "Need document and parent."; 38561}, 38562 _consolidate = function _consolidate(m) { 38563 // replaces SVGTransformList.consolidate() because a bug in Firefox causes it to break pointer events. See https://gsap.com/forums/topic/23248-touch-is-not-working-on-draggable-in-firefox-windows-v324/?tab=comments#comment-109800 38564 var c = new Matrix2D(), 38565 i = 0; 38566 38567 for (; i < m.numberOfItems; i++) { 38568 c.multiply(m.getItem(i).matrix); 38569 } 38570 38571 return c; 38572}, 38573 _getCTM = function _getCTM(svg) { 38574 var m = svg.getCTM(), 38575 transform; 38576 38577 if (!m) { 38578 // Firefox returns null for getCTM() on root <svg> elements, so this is a workaround using a <g> that we temporarily append. 38579 transform = svg.style[_transformProp]; 38580 svg.style[_transformProp] = "none"; // a bug in Firefox causes css transforms to contaminate the getCTM() 38581 38582 svg.appendChild(_gEl); 38583 m = _gEl.getCTM(); 38584 svg.removeChild(_gEl); 38585 transform ? svg.style[_transformProp] = transform : svg.style.removeProperty(_transformProp.replace(/([A-Z])/g, "-$1").toLowerCase()); 38586 } 38587 38588 return m || _identityMatrix.clone(); // Firefox will still return null if the <svg> has a width/height of 0 in the browser. 38589}, 38590 _placeSiblings = function _placeSiblings(element, adjustGOffset) { 38591 var svg = _svgOwner(element), 38592 isRootSVG = element === svg, 38593 siblings = svg ? _svgTemps : _divTemps, 38594 parent = element.parentNode, 38595 container, 38596 m, 38597 b, 38598 x, 38599 y, 38600 cs; 38601 38602 if (element === _win) { 38603 return element; 38604 } 38605 38606 siblings.length || siblings.push(_createSibling(element, 1), _createSibling(element, 2), _createSibling(element, 3)); 38607 container = svg ? _svgContainer : _divContainer; 38608 38609 if (svg) { 38610 if (isRootSVG) { 38611 b = _getCTM(element); 38612 x = -b.e / b.a; 38613 y = -b.f / b.d; 38614 m = _identityMatrix; 38615 } else if (element.getBBox) { 38616 b = element.getBBox(); 38617 m = element.transform ? element.transform.baseVal : {}; // IE11 doesn't follow the spec. 38618 38619 m = !m.numberOfItems ? _identityMatrix : m.numberOfItems > 1 ? _consolidate(m) : m.getItem(0).matrix; // don't call m.consolidate().matrix because a bug in Firefox makes pointer events not work when consolidate() is called on the same tick as getBoundingClientRect()! See https://gsap.com/forums/topic/23248-touch-is-not-working-on-draggable-in-firefox-windows-v324/?tab=comments#comment-109800 38620 38621 x = m.a * b.x + m.c * b.y; 38622 y = m.b * b.x + m.d * b.y; 38623 } else { 38624 // may be a <mask> which has no getBBox() so just use defaults instead of throwing errors. 38625 m = new Matrix2D(); 38626 x = y = 0; 38627 } 38628 38629 if (adjustGOffset && element.tagName.toLowerCase() === "g") { 38630 x = y = 0; 38631 } 38632 38633 (isRootSVG ? svg : parent).appendChild(container); 38634 container.setAttribute("transform", "matrix(" + m.a + "," + m.b + "," + m.c + "," + m.d + "," + (m.e + x) + "," + (m.f + y) + ")"); 38635 } else { 38636 x = y = 0; 38637 38638 if (_hasOffsetBug) { 38639 // some browsers (like Safari) have a bug that causes them to misreport offset values. When an ancestor element has a transform applied, it's supposed to treat it as if it's position: relative (new context). Safari botches this, so we need to find the closest ancestor (between the element and its offsetParent) that has a transform applied and if one is found, grab its offsetTop/Left and subtract them to compensate. 38640 m = element.offsetParent; 38641 b = element; 38642 38643 while (b && (b = b.parentNode) && b !== m && b.parentNode) { 38644 if ((_win.getComputedStyle(b)[_transformProp] + "").length > 4) { 38645 x = b.offsetLeft; 38646 y = b.offsetTop; 38647 b = 0; 38648 } 38649 } 38650 } 38651 38652 cs = _win.getComputedStyle(element); 38653 38654 if (cs.position !== "absolute" && cs.position !== "fixed") { 38655 m = element.offsetParent; 38656 38657 while (parent && parent !== m) { 38658 // if there's an ancestor element between the element and its offsetParent that's scrolled, we must factor that in. 38659 x += parent.scrollLeft || 0; 38660 y += parent.scrollTop || 0; 38661 parent = parent.parentNode; 38662 } 38663 } 38664 38665 b = container.style; 38666 b.top = element.offsetTop - y + "px"; 38667 b.left = element.offsetLeft - x + "px"; 38668 b[_transformProp] = cs[_transformProp]; 38669 b[_transformOriginProp] = cs[_transformOriginProp]; // b.border = m.border; 38670 // b.borderLeftStyle = m.borderLeftStyle; 38671 // b.borderTopStyle = m.borderTopStyle; 38672 // b.borderLeftWidth = m.borderLeftWidth; 38673 // b.borderTopWidth = m.borderTopWidth; 38674 38675 b.position = cs.position === "fixed" ? "fixed" : "absolute"; 38676 element.parentNode.appendChild(container); 38677 } 38678 38679 return container; 38680}, 38681 _setMatrix = function _setMatrix(m, a, b, c, d, e, f) { 38682 m.a = a; 38683 m.b = b; 38684 m.c = c; 38685 m.d = d; 38686 m.e = e; 38687 m.f = f; 38688 return m; 38689}; 38690 38691var Matrix2D = /*#__PURE__*/function () { 38692 function Matrix2D(a, b, c, d, e, f) { 38693 if (a === void 0) { 38694 a = 1; 38695 } 38696 38697 if (b === void 0) { 38698 b = 0; 38699 } 38700 38701 if (c === void 0) { 38702 c = 0; 38703 } 38704 38705 if (d === void 0) { 38706 d = 1; 38707 } 38708 38709 if (e === void 0) { 38710 e = 0; 38711 } 38712 38713 if (f === void 0) { 38714 f = 0; 38715 } 38716 38717 _setMatrix(this, a, b, c, d, e, f); 38718 } 38719 38720 var _proto = Matrix2D.prototype; 38721 38722 _proto.inverse = function inverse() { 38723 var a = this.a, 38724 b = this.b, 38725 c = this.c, 38726 d = this.d, 38727 e = this.e, 38728 f = this.f, 38729 determinant = a * d - b * c || 1e-10; 38730 return _setMatrix(this, d / determinant, -b / determinant, -c / determinant, a / determinant, (c * f - d * e) / determinant, -(a * f - b * e) / determinant); 38731 }; 38732 38733 _proto.multiply = function multiply(matrix) { 38734 var a = this.a, 38735 b = this.b, 38736 c = this.c, 38737 d = this.d, 38738 e = this.e, 38739 f = this.f, 38740 a2 = matrix.a, 38741 b2 = matrix.c, 38742 c2 = matrix.b, 38743 d2 = matrix.d, 38744 e2 = matrix.e, 38745 f2 = matrix.f; 38746 return _setMatrix(this, a2 * a + c2 * c, a2 * b + c2 * d, b2 * a + d2 * c, b2 * b + d2 * d, e + e2 * a + f2 * c, f + e2 * b + f2 * d); 38747 }; 38748 38749 _proto.clone = function clone() { 38750 return new Matrix2D(this.a, this.b, this.c, this.d, this.e, this.f); 38751 }; 38752 38753 _proto.equals = function equals(matrix) { 38754 var a = this.a, 38755 b = this.b, 38756 c = this.c, 38757 d = this.d, 38758 e = this.e, 38759 f = this.f; 38760 return a === matrix.a && b === matrix.b && c === matrix.c && d === matrix.d && e === matrix.e && f === matrix.f; 38761 }; 38762 38763 _proto.apply = function apply(point, decoratee) { 38764 if (decoratee === void 0) { 38765 decoratee = {}; 38766 } 38767 38768 var x = point.x, 38769 y = point.y, 38770 a = this.a, 38771 b = this.b, 38772 c = this.c, 38773 d = this.d, 38774 e = this.e, 38775 f = this.f; 38776 decoratee.x = x * a + y * c + e || 0; 38777 decoratee.y = x * b + y * d + f || 0; 38778 return decoratee; 38779 }; 38780 38781 return Matrix2D; 38782}(); // Feed in an element and it'll return a 2D matrix (optionally inverted) so that you can translate between coordinate spaces. 38783// Inverting lets you translate a global point into a local coordinate space. No inverting lets you go the other way. 38784// We needed this to work around various browser bugs, like Firefox doesn't accurately report getScreenCTM() when there 38785// are transforms applied to ancestor elements. 38786// The matrix math to convert any x/y coordinate is as follows, which is wrapped in a convenient apply() method of Matrix2D above: 38787// tx = m.a * x + m.c * y + m.e 38788// ty = m.b * x + m.d * y + m.f 38789 38790function getGlobalMatrix(element, inverse, adjustGOffset, includeScrollInFixed) { 38791 // adjustGOffset is typically used only when grabbing an element's PARENT's global matrix, and it ignores the x/y offset of any SVG <g> elements because they behave in a special way. 38792 if (!element || !element.parentNode || (_doc || _setDoc(element)).documentElement === element) { 38793 return new Matrix2D(); 38794 } 38795 38796 var zeroScales = _forceNonZeroScale(element), 38797 svg = _svgOwner(element), 38798 temps = svg ? _svgTemps : _divTemps, 38799 container = _placeSiblings(element, adjustGOffset), 38800 b1 = temps[0].getBoundingClientRect(), 38801 b2 = temps[1].getBoundingClientRect(), 38802 b3 = temps[2].getBoundingClientRect(), 38803 parent = container.parentNode, 38804 isFixed = !includeScrollInFixed && _isFixed(element), 38805 m = new Matrix2D((b2.left - b1.left) / 100, (b2.top - b1.top) / 100, (b3.left - b1.left) / 100, (b3.top - b1.top) / 100, b1.left + (isFixed ? 0 : _getDocScrollLeft()), b1.top + (isFixed ? 0 : _getDocScrollTop())); 38806 38807 parent.removeChild(container); 38808 38809 if (zeroScales) { 38810 b1 = zeroScales.length; 38811 38812 while (b1--) { 38813 b2 = zeroScales[b1]; 38814 b2.scaleX = b2.scaleY = 0; 38815 b2.renderTransform(1, b2); 38816 } 38817 } 38818 38819 return inverse ? m.inverse() : m; 38820} 38821 // export function getMatrix(element) { 38822// _doc || _setDoc(element); 38823// let m = (_win.getComputedStyle(element)[_transformProp] + "").substr(7).match(/[-.]*\d+[.e\-+]*\d*[e\-\+]*\d*/g), 38824// is2D = m && m.length === 6; 38825// return !m || m.length < 6 ? new Matrix2D() : new Matrix2D(+m[0], +m[1], +m[is2D ? 2 : 4], +m[is2D ? 3 : 5], +m[is2D ? 4 : 12], +m[is2D ? 5 : 13]); 38826// } 38827 38828/***/ }), 38829
vendor: 49,609 bytes, lines 38830-40347
38830/***/ "./node_modules/gsap/utils/paths.js": 38831/*!******************************************!*\ 38832 !*** ./node_modules/gsap/utils/paths.js ***! 38833 \******************************************/ 38834/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 38835 38836"use strict"; 38837__webpack_require__.r(__webpack_exports__); 38838/* harmony export */ __webpack_require__.d(__webpack_exports__, { 38839/* harmony export */ "bezierToPoints": () => (/* binding */ bezierToPoints), 38840/* harmony export */ "cacheRawPathMeasurements": () => (/* binding */ cacheRawPathMeasurements), 38841/* harmony export */ "convertToPath": () => (/* binding */ convertToPath), 38842/* harmony export */ "copyRawPath": () => (/* binding */ copyRawPath), 38843/* harmony export */ "flatPointsToSegment": () => (/* binding */ flatPointsToSegment), 38844/* harmony export */ "getClosestData": () => (/* binding */ getClosestData), 38845/* harmony export */ "getPositionOnPath": () => (/* binding */ getPositionOnPath), 38846/* harmony export */ "getRawPath": () => (/* binding */ getRawPath), 38847/* harmony export */ "getRotationAtProgress": () => (/* binding */ getRotationAtProgress), 38848/* harmony export */ "pointsToSegment": () => (/* binding */ pointsToSegment), 38849/* harmony export */ "rawPathToString": () => (/* binding */ rawPathToString), 38850/* harmony export */ "reverseSegment": () => (/* binding */ reverseSegment), 38851/* harmony export */ "simplifyPoints": () => (/* binding */ simplifyPoints), 38852/* harmony export */ "sliceRawPath": () => (/* binding */ sliceRawPath), 38853/* harmony export */ "stringToRawPath": () => (/* binding */ stringToRawPath), 38854/* harmony export */ "subdivideSegment": () => (/* binding */ subdivideSegment), 38855/* harmony export */ "subdivideSegmentNear": () => (/* binding */ subdivideSegmentNear), 38856/* harmony export */ "transformRawPath": () => (/* binding */ transformRawPath) 38857/* harmony export */ }); 38858/*! 38859 * paths 3.12.5 38860 * https://gsap.com 38861 * 38862 * Copyright 2008-2024, GreenSock. All rights reserved. 38863 * Subject to the terms at https://gsap.com/standard-license or for 38864 * Club GSAP members, the agreement issued with that membership. 38865 * @author: Jack Doyle, [email protected] 38866*/ 38867 38868/* eslint-disable */ 38869var _svgPathExp = /[achlmqstvz]|(-?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/ig, 38870 _numbersExp = /(?:(-)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/ig, 38871 _scientific = /[\+\-]?\d*\.?\d+e[\+\-]?\d+/ig, 38872 _selectorExp = /(^[#\.][a-z]|[a-y][a-z])/i, 38873 _DEG2RAD = Math.PI / 180, 38874 _RAD2DEG = 180 / Math.PI, 38875 _sin = Math.sin, 38876 _cos = Math.cos, 38877 _abs = Math.abs, 38878 _sqrt = Math.sqrt, 38879 _atan2 = Math.atan2, 38880 _largeNum = 1e8, 38881 _isString = function _isString(value) { 38882 return typeof value === "string"; 38883}, 38884 _isNumber = function _isNumber(value) { 38885 return typeof value === "number"; 38886}, 38887 _isUndefined = function _isUndefined(value) { 38888 return typeof value === "undefined"; 38889}, 38890 _temp = {}, 38891 _temp2 = {}, 38892 _roundingNum = 1e5, 38893 _wrapProgress = function _wrapProgress(progress) { 38894 return Math.round((progress + _largeNum) % 1 * _roundingNum) / _roundingNum || (progress < 0 ? 0 : 1); 38895}, 38896 //if progress lands on 1, the % will make it 0 which is why we || 1, but not if it's negative because it makes more sense for motion to end at 0 in that case. 38897_round = function _round(value) { 38898 return Math.round(value * _roundingNum) / _roundingNum || 0; 38899}, 38900 _roundPrecise = function _roundPrecise(value) { 38901 return Math.round(value * 1e10) / 1e10 || 0; 38902}, 38903 _splitSegment = function _splitSegment(rawPath, segIndex, i, t) { 38904 var segment = rawPath[segIndex], 38905 shift = t === 1 ? 6 : subdivideSegment(segment, i, t); 38906 38907 if ((shift || !t) && shift + i + 2 < segment.length) { 38908 rawPath.splice(segIndex, 0, segment.slice(0, i + shift + 2)); 38909 segment.splice(0, i + shift); 38910 return 1; 38911 } 38912}, 38913 _getSampleIndex = function _getSampleIndex(samples, length, progress) { 38914 // slightly slower way than doing this (when there's no lookup): segment.lookup[progress < 1 ? ~~(length / segment.minLength) : segment.lookup.length - 1] || 0; 38915 var l = samples.length, 38916 i = ~~(progress * l); 38917 38918 if (samples[i] > length) { 38919 while (--i && samples[i] > length) {} 38920 38921 i < 0 && (i = 0); 38922 } else { 38923 while (samples[++i] < length && i < l) {} 38924 } 38925 38926 return i < l ? i : l - 1; 38927}, 38928 _reverseRawPath = function _reverseRawPath(rawPath, skipOuter) { 38929 var i = rawPath.length; 38930 skipOuter || rawPath.reverse(); 38931 38932 while (i--) { 38933 rawPath[i].reversed || reverseSegment(rawPath[i]); 38934 } 38935}, 38936 _copyMetaData = function _copyMetaData(source, copy) { 38937 copy.totalLength = source.totalLength; 38938 38939 if (source.samples) { 38940 //segment 38941 copy.samples = source.samples.slice(0); 38942 copy.lookup = source.lookup.slice(0); 38943 copy.minLength = source.minLength; 38944 copy.resolution = source.resolution; 38945 } else if (source.totalPoints) { 38946 //rawPath 38947 copy.totalPoints = source.totalPoints; 38948 } 38949 38950 return copy; 38951}, 38952 //pushes a new segment into a rawPath, but if its starting values match the ending values of the last segment, it'll merge it into that same segment (to reduce the number of segments) 38953_appendOrMerge = function _appendOrMerge(rawPath, segment) { 38954 var index = rawPath.length, 38955 prevSeg = rawPath[index - 1] || [], 38956 l = prevSeg.length; 38957 38958 if (index && segment[0] === prevSeg[l - 2] && segment[1] === prevSeg[l - 1]) { 38959 segment = prevSeg.concat(segment.slice(2)); 38960 index--; 38961 } 38962 38963 rawPath[index] = segment; 38964}, 38965 _bestDistance; 38966/* TERMINOLOGY 38967 - RawPath - an array of arrays, one for each Segment. A single RawPath could have multiple "M" commands, defining Segments (paths aren't always connected). 38968 - Segment - an array containing a sequence of Cubic Bezier coordinates in alternating x, y, x, y format. Starting anchor, then control point 1, control point 2, and ending anchor, then the next control point 1, control point 2, anchor, etc. Uses less memory than an array with a bunch of {x, y} points. 38969 - Bezier - a single cubic Bezier with a starting anchor, two control points, and an ending anchor. 38970 - the variable "t" is typically the position along an individual Bezier path (time) and it's NOT linear, meaning it could accelerate/decelerate based on the control points whereas the "p" or "progress" value is linearly mapped to the whole path, so it shouldn't really accelerate/decelerate based on control points. So a progress of 0.2 would be almost exactly 20% along the path. "t" is ONLY in an individual Bezier piece. 38971 */ 38972//accepts basic selector text, a path instance, a RawPath instance, or a Segment and returns a RawPath (makes it easy to homogenize things). If an element or selector text is passed in, it'll also cache the value so that if it's queried again, it'll just take the path data from there instead of parsing it all over again (as long as the path data itself hasn't changed - it'll check). 38973 38974 38975function getRawPath(value) { 38976 value = _isString(value) && _selectorExp.test(value) ? document.querySelector(value) || value : value; 38977 var e = value.getAttribute ? value : 0, 38978 rawPath; 38979 38980 if (e && (value = value.getAttribute("d"))) { 38981 //implements caching 38982 if (!e._gsPath) { 38983 e._gsPath = {}; 38984 } 38985 38986 rawPath = e._gsPath[value]; 38987 return rawPath && !rawPath._dirty ? rawPath : e._gsPath[value] = stringToRawPath(value); 38988 } 38989 38990 return !value ? console.warn("Expecting a <path> element or an SVG path data string") : _isString(value) ? stringToRawPath(value) : _isNumber(value[0]) ? [value] : value; 38991} //copies a RawPath WITHOUT the length meta data (for speed) 38992 38993function copyRawPath(rawPath) { 38994 var a = [], 38995 i = 0; 38996 38997 for (; i < rawPath.length; i++) { 38998 a[i] = _copyMetaData(rawPath[i], rawPath[i].slice(0)); 38999 } 39000 39001 return _copyMetaData(rawPath, a); 39002} 39003function reverseSegment(segment) { 39004 var i = 0, 39005 y; 39006 segment.reverse(); //this will invert the order y, x, y, x so we must flip it back. 39007 39008 for (; i < segment.length; i += 2) { 39009 y = segment[i]; 39010 segment[i] = segment[i + 1]; 39011 segment[i + 1] = y; 39012 } 39013 39014 segment.reversed = !segment.reversed; 39015} 39016 39017var _createPath = function _createPath(e, ignore) { 39018 var path = document.createElementNS("http://www.w3.org/2000/svg", "path"), 39019 attr = [].slice.call(e.attributes), 39020 i = attr.length, 39021 name; 39022 ignore = "," + ignore + ","; 39023 39024 while (--i > -1) { 39025 name = attr[i].nodeName.toLowerCase(); //in Microsoft Edge, if you don't set the attribute with a lowercase name, it doesn't render correctly! Super weird. 39026 39027 if (ignore.indexOf("," + name + ",") < 0) { 39028 path.setAttributeNS(null, name, attr[i].nodeValue); 39029 } 39030 } 39031 39032 return path; 39033}, 39034 _typeAttrs = { 39035 rect: "rx,ry,x,y,width,height", 39036 circle: "r,cx,cy", 39037 ellipse: "rx,ry,cx,cy", 39038 line: "x1,x2,y1,y2" 39039}, 39040 _attrToObj = function _attrToObj(e, attrs) { 39041 var props = attrs ? attrs.split(",") : [], 39042 obj = {}, 39043 i = props.length; 39044 39045 while (--i > -1) { 39046 obj[props[i]] = +e.getAttribute(props[i]) || 0; 39047 } 39048 39049 return obj; 39050}; //converts an SVG shape like <circle>, <rect>, <polygon>, <polyline>, <ellipse>, etc. to a <path>, swapping it in and copying the attributes to match. 39051 39052 39053function convertToPath(element, swap) { 39054 var type = element.tagName.toLowerCase(), 39055 circ = 0.552284749831, 39056 data, 39057 x, 39058 y, 39059 r, 39060 ry, 39061 path, 39062 rcirc, 39063 rycirc, 39064 points, 39065 w, 39066 h, 39067 x2, 39068 x3, 39069 x4, 39070 x5, 39071 x6, 39072 y2, 39073 y3, 39074 y4, 39075 y5, 39076 y6, 39077 attr; 39078 39079 if (type === "path" || !element.getBBox) { 39080 return element; 39081 } 39082 39083 path = _createPath(element, "x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points"); 39084 attr = _attrToObj(element, _typeAttrs[type]); 39085 39086 if (type === "rect") { 39087 r = attr.rx; 39088 ry = attr.ry || r; 39089 x = attr.x; 39090 y = attr.y; 39091 w = attr.width - r * 2; 39092 h = attr.height - ry * 2; 39093 39094 if (r || ry) { 39095 //if there are rounded corners, render cubic beziers 39096 x2 = x + r * (1 - circ); 39097 x3 = x + r; 39098 x4 = x3 + w; 39099 x5 = x4 + r * circ; 39100 x6 = x4 + r; 39101 y2 = y + ry * (1 - circ); 39102 y3 = y + ry; 39103 y4 = y3 + h; 39104 y5 = y4 + ry * circ; 39105 y6 = y4 + ry; 39106 data = "M" + x6 + "," + y3 + " V" + y4 + " C" + [x6, y5, x5, y6, x4, y6, x4 - (x4 - x3) / 3, y6, x3 + (x4 - x3) / 3, y6, x3, y6, x2, y6, x, y5, x, y4, x, y4 - (y4 - y3) / 3, x, y3 + (y4 - y3) / 3, x, y3, x, y2, x2, y, x3, y, x3 + (x4 - x3) / 3, y, x4 - (x4 - x3) / 3, y, x4, y, x5, y, x6, y2, x6, y3].join(",") + "z"; 39107 } else { 39108 data = "M" + (x + w) + "," + y + " v" + h + " h" + -w + " v" + -h + " h" + w + "z"; 39109 } 39110 } else if (type === "circle" || type === "ellipse") { 39111 if (type === "circle") { 39112 r = ry = attr.r; 39113 rycirc = r * circ; 39114 } else { 39115 r = attr.rx; 39116 ry = attr.ry; 39117 rycirc = ry * circ; 39118 } 39119 39120 x = attr.cx; 39121 y = attr.cy; 39122 rcirc = r * circ; 39123 data = "M" + (x + r) + "," + y + " C" + [x + r, y + rycirc, x + rcirc, y + ry, x, y + ry, x - rcirc, y + ry, x - r, y + rycirc, x - r, y, x - r, y - rycirc, x - rcirc, y - ry, x, y - ry, x + rcirc, y - ry, x + r, y - rycirc, x + r, y].join(",") + "z"; 39124 } else if (type === "line") { 39125 data = "M" + attr.x1 + "," + attr.y1 + " L" + attr.x2 + "," + attr.y2; //previously, we just converted to "Mx,y Lx,y" but Safari has bugs that cause that not to render properly when using a stroke-dasharray that's not fully visible! Using a cubic bezier fixes that issue. 39126 } else if (type === "polyline" || type === "polygon") { 39127 points = (element.getAttribute("points") + "").match(_numbersExp) || []; 39128 x = points.shift(); 39129 y = points.shift(); 39130 data = "M" + x + "," + y + " L" + points.join(","); 39131 39132 if (type === "polygon") { 39133 data += "," + x + "," + y + "z"; 39134 } 39135 } 39136 39137 path.setAttribute("d", rawPathToString(path._gsRawPath = stringToRawPath(data))); 39138 39139 if (swap && element.parentNode) { 39140 element.parentNode.insertBefore(path, element); 39141 element.parentNode.removeChild(element); 39142 } 39143 39144 return path; 39145} //returns the rotation (in degrees) at a particular progress on a rawPath (the slope of the tangent) 39146 39147function getRotationAtProgress(rawPath, progress) { 39148 var d = getProgressData(rawPath, progress >= 1 ? 1 - 1e-9 : progress ? progress : 1e-9); 39149 return getRotationAtBezierT(d.segment, d.i, d.t); 39150} 39151 39152function getRotationAtBezierT(segment, i, t) { 39153 var a = segment[i], 39154 b = segment[i + 2], 39155 c = segment[i + 4], 39156 x; 39157 a += (b - a) * t; 39158 b += (c - b) * t; 39159 a += (b - a) * t; 39160 x = b + (c + (segment[i + 6] - c) * t - b) * t - a; 39161 a = segment[i + 1]; 39162 b = segment[i + 3]; 39163 c = segment[i + 5]; 39164 a += (b - a) * t; 39165 b += (c - b) * t; 39166 a += (b - a) * t; 39167 return _round(_atan2(b + (c + (segment[i + 7] - c) * t - b) * t - a, x) * _RAD2DEG); 39168} 39169 39170function sliceRawPath(rawPath, start, end) { 39171 end = _isUndefined(end) ? 1 : _roundPrecise(end) || 0; // we must round to avoid issues like 4.15 / 8 = 0.8300000000000001 instead of 0.83 or 2.8 / 5 = 0.5599999999999999 instead of 0.56 and if someone is doing a loop like start: 2.8 / 0.5, end: 2.8 / 0.5 + 1. 39172 39173 start = _roundPrecise(start) || 0; 39174 var loops = Math.max(0, ~~(_abs(end - start) - 1e-8)), 39175 path = copyRawPath(rawPath); 39176 39177 if (start > end) { 39178 start = 1 - start; 39179 end = 1 - end; 39180 39181 _reverseRawPath(path); 39182 39183 path.totalLength = 0; 39184 } 39185 39186 if (start < 0 || end < 0) { 39187 var offset = Math.abs(~~Math.min(start, end)) + 1; 39188 start += offset; 39189 end += offset; 39190 } 39191 39192 path.totalLength || cacheRawPathMeasurements(path); 39193 var wrap = end > 1, 39194 s = getProgressData(path, start, _temp, true), 39195 e = getProgressData(path, end, _temp2), 39196 eSeg = e.segment, 39197 sSeg = s.segment, 39198 eSegIndex = e.segIndex, 39199 sSegIndex = s.segIndex, 39200 ei = e.i, 39201 si = s.i, 39202 sameSegment = sSegIndex === eSegIndex, 39203 sameBezier = ei === si && sameSegment, 39204 wrapsBehind, 39205 sShift, 39206 eShift, 39207 i, 39208 copy, 39209 totalSegments, 39210 l, 39211 j; 39212 39213 if (wrap || loops) { 39214 wrapsBehind = eSegIndex < sSegIndex || sameSegment && ei < si || sameBezier && e.t < s.t; 39215 39216 if (_splitSegment(path, sSegIndex, si, s.t)) { 39217 sSegIndex++; 39218 39219 if (!wrapsBehind) { 39220 eSegIndex++; 39221 39222 if (sameBezier) { 39223 e.t = (e.t - s.t) / (1 - s.t); 39224 ei = 0; 39225 } else if (sameSegment) { 39226 ei -= si; 39227 } 39228 } 39229 } 39230 39231 if (Math.abs(1 - (end - start)) < 1e-5) { 39232 eSegIndex = sSegIndex - 1; 39233 } else if (!e.t && eSegIndex) { 39234 eSegIndex--; 39235 } else if (_splitSegment(path, eSegIndex, ei, e.t) && wrapsBehind) { 39236 sSegIndex++; 39237 } 39238 39239 if (s.t === 1) { 39240 sSegIndex = (sSegIndex + 1) % path.length; 39241 } 39242 39243 copy = []; 39244 totalSegments = path.length; 39245 l = 1 + totalSegments * loops; 39246 j = sSegIndex; 39247 l += (totalSegments - sSegIndex + eSegIndex) % totalSegments; 39248 39249 for (i = 0; i < l; i++) { 39250 _appendOrMerge(copy, path[j++ % totalSegments]); 39251 } 39252 39253 path = copy; 39254 } else { 39255 eShift = e.t === 1 ? 6 : subdivideSegment(eSeg, ei, e.t); 39256 39257 if (start !== end) { 39258 sShift = subdivideSegment(sSeg, si, sameBezier ? s.t / e.t : s.t); 39259 sameSegment && (eShift += sShift); 39260 eSeg.splice(ei + eShift + 2); 39261 (sShift || si) && sSeg.splice(0, si + sShift); 39262 i = path.length; 39263 39264 while (i--) { 39265 //chop off any extra segments 39266 (i < sSegIndex || i > eSegIndex) && path.splice(i, 1); 39267 } 39268 } else { 39269 eSeg.angle = getRotationAtBezierT(eSeg, ei + eShift, 0); //record the value before we chop because it'll be impossible to determine the angle after its length is 0! 39270 39271 ei += eShift; 39272 s = eSeg[ei]; 39273 e = eSeg[ei + 1]; 39274 eSeg.length = eSeg.totalLength = 0; 39275 eSeg.totalPoints = path.totalPoints = 8; 39276 eSeg.push(s, e, s, e, s, e, s, e); 39277 } 39278 } 39279 39280 path.totalLength = 0; 39281 return path; 39282} //measures a Segment according to its resolution (so if segment.resolution is 6, for example, it'll take 6 samples equally across each Bezier) and create/populate a "samples" Array that has the length up to each of those sample points (always increasing from the start) as well as a "lookup" array that's broken up according to the smallest distance between 2 samples. This gives us a very fast way of looking up a progress position rather than looping through all the points/Beziers. You can optionally have it only measure a subset, starting at startIndex and going for a specific number of beziers (remember, there are 3 x/y pairs each, for a total of 6 elements for each Bezier). It will also populate a "totalLength" property, but that's not generally super accurate because by default it'll only take 6 samples per Bezier. But for performance reasons, it's perfectly adequate for measuring progress values along the path. If you need a more accurate totalLength, either increase the resolution or use the more advanced bezierToPoints() method which keeps adding points until they don't deviate by more than a certain precision value. 39283 39284function measureSegment(segment, startIndex, bezierQty) { 39285 startIndex = startIndex || 0; 39286 39287 if (!segment.samples) { 39288 segment.samples = []; 39289 segment.lookup = []; 39290 } 39291 39292 var resolution = ~~segment.resolution || 12, 39293 inc = 1 / resolution, 39294 endIndex = bezierQty ? startIndex + bezierQty * 6 + 1 : segment.length, 39295 x1 = segment[startIndex], 39296 y1 = segment[startIndex + 1], 39297 samplesIndex = startIndex ? startIndex / 6 * resolution : 0, 39298 samples = segment.samples, 39299 lookup = segment.lookup, 39300 min = (startIndex ? segment.minLength : _largeNum) || _largeNum, 39301 prevLength = samples[samplesIndex + bezierQty * resolution - 1], 39302 length = startIndex ? samples[samplesIndex - 1] : 0, 39303 i, 39304 j, 39305 x4, 39306 x3, 39307 x2, 39308 xd, 39309 xd1, 39310 y4, 39311 y3, 39312 y2, 39313 yd, 39314 yd1, 39315 inv, 39316 t, 39317 lengthIndex, 39318 l, 39319 segLength; 39320 samples.length = lookup.length = 0; 39321 39322 for (j = startIndex + 2; j < endIndex; j += 6) { 39323 x4 = segment[j + 4] - x1; 39324 x3 = segment[j + 2] - x1; 39325 x2 = segment[j] - x1; 39326 y4 = segment[j + 5] - y1; 39327 y3 = segment[j + 3] - y1; 39328 y2 = segment[j + 1] - y1; 39329 xd = xd1 = yd = yd1 = 0; 39330 39331 if (_abs(x4) < .01 && _abs(y4) < .01 && _abs(x2) + _abs(y2) < .01) { 39332 //dump points that are sufficiently close (basically right on top of each other, making a bezier super tiny or 0 length) 39333 if (segment.length > 8) { 39334 segment.splice(j, 6); 39335 j -= 6; 39336 endIndex -= 6; 39337 } 39338 } else { 39339 for (i = 1; i <= resolution; i++) { 39340 t = inc * i; 39341 inv = 1 - t; 39342 xd = xd1 - (xd1 = (t * t * x4 + 3 * inv * (t * x3 + inv * x2)) * t); 39343 yd = yd1 - (yd1 = (t * t * y4 + 3 * inv * (t * y3 + inv * y2)) * t); 39344 l = _sqrt(yd * yd + xd * xd); 39345 39346 if (l < min) { 39347 min = l; 39348 } 39349 39350 length += l; 39351 samples[samplesIndex++] = length; 39352 } 39353 } 39354 39355 x1 += x4; 39356 y1 += y4; 39357 } 39358 39359 if (prevLength) { 39360 prevLength -= length; 39361 39362 for (; samplesIndex < samples.length; samplesIndex++) { 39363 samples[samplesIndex] += prevLength; 39364 } 39365 } 39366 39367 if (samples.length && min) { 39368 segment.totalLength = segLength = samples[samples.length - 1] || 0; 39369 segment.minLength = min; 39370 39371 if (segLength / min < 9999) { 39372 // if the lookup would require too many values (memory problem), we skip this and instead we use a loop to lookup values directly in the samples Array 39373 l = lengthIndex = 0; 39374 39375 for (i = 0; i < segLength; i += min) { 39376 lookup[l++] = samples[lengthIndex] < i ? ++lengthIndex : lengthIndex; 39377 } 39378 } 39379 } else { 39380 segment.totalLength = samples[0] = 0; 39381 } 39382 39383 return startIndex ? length - samples[startIndex / 2 - 1] : length; 39384} 39385 39386function cacheRawPathMeasurements(rawPath, resolution) { 39387 var pathLength, points, i; 39388 39389 for (i = pathLength = points = 0; i < rawPath.length; i++) { 39390 rawPath[i].resolution = ~~resolution || 12; //steps per Bezier curve (anchor, 2 control points, to anchor) 39391 39392 points += rawPath[i].length; 39393 pathLength += measureSegment(rawPath[i]); 39394 } 39395 39396 rawPath.totalPoints = points; 39397 rawPath.totalLength = pathLength; 39398 return rawPath; 39399} //divide segment[i] at position t (value between 0 and 1, progress along that particular cubic bezier segment that starts at segment[i]). Returns how many elements were spliced into the segment array (either 0 or 6) 39400 39401function subdivideSegment(segment, i, t) { 39402 if (t <= 0 || t >= 1) { 39403 return 0; 39404 } 39405 39406 var ax = segment[i], 39407 ay = segment[i + 1], 39408 cp1x = segment[i + 2], 39409 cp1y = segment[i + 3], 39410 cp2x = segment[i + 4], 39411 cp2y = segment[i + 5], 39412 bx = segment[i + 6], 39413 by = segment[i + 7], 39414 x1a = ax + (cp1x - ax) * t, 39415 x2 = cp1x + (cp2x - cp1x) * t, 39416 y1a = ay + (cp1y - ay) * t, 39417 y2 = cp1y + (cp2y - cp1y) * t, 39418 x1 = x1a + (x2 - x1a) * t, 39419 y1 = y1a + (y2 - y1a) * t, 39420 x2a = cp2x + (bx - cp2x) * t, 39421 y2a = cp2y + (by - cp2y) * t; 39422 x2 += (x2a - x2) * t; 39423 y2 += (y2a - y2) * t; 39424 segment.splice(i + 2, 4, _round(x1a), //first control point 39425 _round(y1a), _round(x1), //second control point 39426 _round(y1), _round(x1 + (x2 - x1) * t), //new fabricated anchor on line 39427 _round(y1 + (y2 - y1) * t), _round(x2), //third control point 39428 _round(y2), _round(x2a), //fourth control point 39429 _round(y2a)); 39430 segment.samples && segment.samples.splice(i / 6 * segment.resolution | 0, 0, 0, 0, 0, 0, 0, 0); 39431 return 6; 39432} // returns an object {path, segment, segIndex, i, t} 39433 39434function getProgressData(rawPath, progress, decoratee, pushToNextIfAtEnd) { 39435 decoratee = decoratee || {}; 39436 rawPath.totalLength || cacheRawPathMeasurements(rawPath); 39437 39438 if (progress < 0 || progress > 1) { 39439 progress = _wrapProgress(progress); 39440 } 39441 39442 var segIndex = 0, 39443 segment = rawPath[0], 39444 samples, 39445 resolution, 39446 length, 39447 min, 39448 max, 39449 i, 39450 t; 39451 39452 if (!progress) { 39453 t = i = segIndex = 0; 39454 segment = rawPath[0]; 39455 } else if (progress === 1) { 39456 t = 1; 39457 segIndex = rawPath.length - 1; 39458 segment = rawPath[segIndex]; 39459 i = segment.length - 8; 39460 } else { 39461 if (rawPath.length > 1) { 39462 //speed optimization: most of the time, there's only one segment so skip the recursion. 39463 length = rawPath.totalLength * progress; 39464 max = i = 0; 39465 39466 while ((max += rawPath[i++].totalLength) < length) { 39467 segIndex = i; 39468 } 39469 39470 segment = rawPath[segIndex]; 39471 min = max - segment.totalLength; 39472 progress = (length - min) / (max - min) || 0; 39473 } 39474 39475 samples = segment.samples; 39476 resolution = segment.resolution; //how many samples per cubic bezier chunk 39477 39478 length = segment.totalLength * progress; 39479 i = segment.lookup.length ? segment.lookup[~~(length / segment.minLength)] || 0 : _getSampleIndex(samples, length, progress); 39480 min = i ? samples[i - 1] : 0; 39481 max = samples[i]; 39482 39483 if (max < length) { 39484 min = max; 39485 max = samples[++i]; 39486 } 39487 39488 t = 1 / resolution * ((length - min) / (max - min) + i % resolution); 39489 i = ~~(i / resolution) * 6; 39490 39491 if (pushToNextIfAtEnd && t === 1) { 39492 if (i + 6 < segment.length) { 39493 i += 6; 39494 t = 0; 39495 } else if (segIndex + 1 < rawPath.length) { 39496 i = t = 0; 39497 segment = rawPath[++segIndex]; 39498 } 39499 } 39500 } 39501 39502 decoratee.t = t; 39503 decoratee.i = i; 39504 decoratee.path = rawPath; 39505 decoratee.segment = segment; 39506 decoratee.segIndex = segIndex; 39507 return decoratee; 39508} 39509 39510function getPositionOnPath(rawPath, progress, includeAngle, point) { 39511 var segment = rawPath[0], 39512 result = point || {}, 39513 samples, 39514 resolution, 39515 length, 39516 min, 39517 max, 39518 i, 39519 t, 39520 a, 39521 inv; 39522 39523 if (progress < 0 || progress > 1) { 39524 progress = _wrapProgress(progress); 39525 } 39526 39527 segment.lookup || cacheRawPathMeasurements(rawPath); 39528 39529 if (rawPath.length > 1) { 39530 //speed optimization: most of the time, there's only one segment so skip the recursion. 39531 length = rawPath.totalLength * progress; 39532 max = i = 0; 39533 39534 while ((max += rawPath[i++].totalLength) < length) { 39535 segment = rawPath[i]; 39536 } 39537 39538 min = max - segment.totalLength; 39539 progress = (length - min) / (max - min) || 0; 39540 } 39541 39542 samples = segment.samples; 39543 resolution = segment.resolution; 39544 length = segment.totalLength * progress; 39545 i = segment.lookup.length ? segment.lookup[progress < 1 ? ~~(length / segment.minLength) : segment.lookup.length - 1] || 0 : _getSampleIndex(samples, length, progress); 39546 min = i ? samples[i - 1] : 0; 39547 max = samples[i]; 39548 39549 if (max < length) { 39550 min = max; 39551 max = samples[++i]; 39552 } 39553 39554 t = 1 / resolution * ((length - min) / (max - min) + i % resolution) || 0; 39555 inv = 1 - t; 39556 i = ~~(i / resolution) * 6; 39557 a = segment[i]; 39558 result.x = _round((t * t * (segment[i + 6] - a) + 3 * inv * (t * (segment[i + 4] - a) + inv * (segment[i + 2] - a))) * t + a); 39559 result.y = _round((t * t * (segment[i + 7] - (a = segment[i + 1])) + 3 * inv * (t * (segment[i + 5] - a) + inv * (segment[i + 3] - a))) * t + a); 39560 39561 if (includeAngle) { 39562 result.angle = segment.totalLength ? getRotationAtBezierT(segment, i, t >= 1 ? 1 - 1e-9 : t ? t : 1e-9) : segment.angle || 0; 39563 } 39564 39565 return result; 39566} //applies a matrix transform to RawPath (or a segment in a RawPath) and returns whatever was passed in (it transforms the values in the array(s), not a copy). 39567 39568function transformRawPath(rawPath, a, b, c, d, tx, ty) { 39569 var j = rawPath.length, 39570 segment, 39571 l, 39572 i, 39573 x, 39574 y; 39575 39576 while (--j > -1) { 39577 segment = rawPath[j]; 39578 l = segment.length; 39579 39580 for (i = 0; i < l; i += 2) { 39581 x = segment[i]; 39582 y = segment[i + 1]; 39583 segment[i] = x * a + y * c + tx; 39584 segment[i + 1] = x * b + y * d + ty; 39585 } 39586 } 39587 39588 rawPath._dirty = 1; 39589 return rawPath; 39590} // translates SVG arc data into a segment (cubic beziers). Angle is in degrees. 39591 39592function arcToSegment(lastX, lastY, rx, ry, angle, largeArcFlag, sweepFlag, x, y) { 39593 if (lastX === x && lastY === y) { 39594 return; 39595 } 39596 39597 rx = _abs(rx); 39598 ry = _abs(ry); 39599 39600 var angleRad = angle % 360 * _DEG2RAD, 39601 cosAngle = _cos(angleRad), 39602 sinAngle = _sin(angleRad), 39603 PI = Math.PI, 39604 TWOPI = PI * 2, 39605 dx2 = (lastX - x) / 2, 39606 dy2 = (lastY - y) / 2, 39607 x1 = cosAngle * dx2 + sinAngle * dy2, 39608 y1 = -sinAngle * dx2 + cosAngle * dy2, 39609 x1_sq = x1 * x1, 39610 y1_sq = y1 * y1, 39611 radiiCheck = x1_sq / (rx * rx) + y1_sq / (ry * ry); 39612 39613 if (radiiCheck > 1) { 39614 rx = _sqrt(radiiCheck) * rx; 39615 ry = _sqrt(radiiCheck) * ry; 39616 } 39617 39618 var rx_sq = rx * rx, 39619 ry_sq = ry * ry, 39620 sq = (rx_sq * ry_sq - rx_sq * y1_sq - ry_sq * x1_sq) / (rx_sq * y1_sq + ry_sq * x1_sq); 39621 39622 if (sq < 0) { 39623 sq = 0; 39624 } 39625 39626 var coef = (largeArcFlag === sweepFlag ? -1 : 1) * _sqrt(sq), 39627 cx1 = coef * (rx * y1 / ry), 39628 cy1 = coef * -(ry * x1 / rx), 39629 sx2 = (lastX + x) / 2, 39630 sy2 = (lastY + y) / 2, 39631 cx = sx2 + (cosAngle * cx1 - sinAngle * cy1), 39632 cy = sy2 + (sinAngle * cx1 + cosAngle * cy1), 39633 ux = (x1 - cx1) / rx, 39634 uy = (y1 - cy1) / ry, 39635 vx = (-x1 - cx1) / rx, 39636 vy = (-y1 - cy1) / ry, 39637 temp = ux * ux + uy * uy, 39638 angleStart = (uy < 0 ? -1 : 1) * Math.acos(ux / _sqrt(temp)), 39639 angleExtent = (ux * vy - uy * vx < 0 ? -1 : 1) * Math.acos((ux * vx + uy * vy) / _sqrt(temp * (vx * vx + vy * vy))); 39640 39641 isNaN(angleExtent) && (angleExtent = PI); //rare edge case. Math.cos(-1) is NaN. 39642 39643 if (!sweepFlag && angleExtent > 0) { 39644 angleExtent -= TWOPI; 39645 } else if (sweepFlag && angleExtent < 0) { 39646 angleExtent += TWOPI; 39647 } 39648 39649 angleStart %= TWOPI; 39650 angleExtent %= TWOPI; 39651 39652 var segments = Math.ceil(_abs(angleExtent) / (TWOPI / 4)), 39653 rawPath = [], 39654 angleIncrement = angleExtent / segments, 39655 controlLength = 4 / 3 * _sin(angleIncrement / 2) / (1 + _cos(angleIncrement / 2)), 39656 ma = cosAngle * rx, 39657 mb = sinAngle * rx, 39658 mc = sinAngle * -ry, 39659 md = cosAngle * ry, 39660 i; 39661 39662 for (i = 0; i < segments; i++) { 39663 angle = angleStart + i * angleIncrement; 39664 x1 = _cos(angle); 39665 y1 = _sin(angle); 39666 ux = _cos(angle += angleIncrement); 39667 uy = _sin(angle); 39668 rawPath.push(x1 - controlLength * y1, y1 + controlLength * x1, ux + controlLength * uy, uy - controlLength * ux, ux, uy); 39669 } //now transform according to the actual size of the ellipse/arc (the beziers were noramlized, between 0 and 1 on a circle). 39670 39671 39672 for (i = 0; i < rawPath.length; i += 2) { 39673 x1 = rawPath[i]; 39674 y1 = rawPath[i + 1]; 39675 rawPath[i] = x1 * ma + y1 * mc + cx; 39676 rawPath[i + 1] = x1 * mb + y1 * md + cy; 39677 } 39678 39679 rawPath[i - 2] = x; //always set the end to exactly where it's supposed to be 39680 39681 rawPath[i - 1] = y; 39682 return rawPath; 39683} //Spits back a RawPath with absolute coordinates. Each segment starts with a "moveTo" command (x coordinate, then y) and then 2 control points (x, y, x, y), then anchor. The goal is to minimize memory and maximize speed. 39684 39685 39686function stringToRawPath(d) { 39687 var a = (d + "").replace(_scientific, function (m) { 39688 var n = +m; 39689 return n < 0.0001 && n > -0.0001 ? 0 : n; 39690 }).match(_svgPathExp) || [], 39691 //some authoring programs spit out very small numbers in scientific notation like "1e-5", so make sure we round that down to 0 first. 39692 path = [], 39693 relativeX = 0, 39694 relativeY = 0, 39695 twoThirds = 2 / 3, 39696 elements = a.length, 39697 points = 0, 39698 errorMessage = "ERROR: malformed path: " + d, 39699 i, 39700 j, 39701 x, 39702 y, 39703 command, 39704 isRelative, 39705 segment, 39706 startX, 39707 startY, 39708 difX, 39709 difY, 39710 beziers, 39711 prevCommand, 39712 flag1, 39713 flag2, 39714 line = function line(sx, sy, ex, ey) { 39715 difX = (ex - sx) / 3; 39716 difY = (ey - sy) / 3; 39717 segment.push(sx + difX, sy + difY, ex - difX, ey - difY, ex, ey); 39718 }; 39719 39720 if (!d || !isNaN(a[0]) || isNaN(a[1])) { 39721 console.log(errorMessage); 39722 return path; 39723 } 39724 39725 for (i = 0; i < elements; i++) { 39726 prevCommand = command; 39727 39728 if (isNaN(a[i])) { 39729 command = a[i].toUpperCase(); 39730 isRelative = command !== a[i]; //lower case means relative 39731 } else { 39732 //commands like "C" can be strung together without any new command characters between. 39733 i--; 39734 } 39735 39736 x = +a[i + 1]; 39737 y = +a[i + 2]; 39738 39739 if (isRelative) { 39740 x += relativeX; 39741 y += relativeY; 39742 } 39743 39744 if (!i) { 39745 startX = x; 39746 startY = y; 39747 } // "M" (move) 39748 39749 39750 if (command === "M") { 39751 if (segment) { 39752 if (segment.length < 8) { 39753 //if the path data was funky and just had a M with no actual drawing anywhere, skip it. 39754 path.length -= 1; 39755 } else { 39756 points += segment.length; 39757 } 39758 } 39759 39760 relativeX = startX = x; 39761 relativeY = startY = y; 39762 segment = [x, y]; 39763 path.push(segment); 39764 i += 2; 39765 command = "L"; //an "M" with more than 2 values gets interpreted as "lineTo" commands ("L"). 39766 // "C" (cubic bezier) 39767 } else if (command === "C") { 39768 if (!segment) { 39769 segment = [0, 0]; 39770 } 39771 39772 if (!isRelative) { 39773 relativeX = relativeY = 0; 39774 } //note: "*1" is just a fast/short way to cast the value as a Number. WAAAY faster in Chrome, slightly slower in Firefox. 39775 39776 39777 segment.push(x, y, relativeX + a[i + 3] * 1, relativeY + a[i + 4] * 1, relativeX += a[i + 5] * 1, relativeY += a[i + 6] * 1); 39778 i += 6; // "S" (continuation of cubic bezier) 39779 } else if (command === "S") { 39780 difX = relativeX; 39781 difY = relativeY; 39782 39783 if (prevCommand === "C" || prevCommand === "S") { 39784 difX += relativeX - segment[segment.length - 4]; 39785 difY += relativeY - segment[segment.length - 3]; 39786 } 39787 39788 if (!isRelative) { 39789 relativeX = relativeY = 0; 39790 } 39791 39792 segment.push(difX, difY, x, y, relativeX += a[i + 3] * 1, relativeY += a[i + 4] * 1); 39793 i += 4; // "Q" (quadratic bezier) 39794 } else if (command === "Q") { 39795 difX = relativeX + (x - relativeX) * twoThirds; 39796 difY = relativeY + (y - relativeY) * twoThirds; 39797 39798 if (!isRelative) { 39799 relativeX = relativeY = 0; 39800 } 39801 39802 relativeX += a[i + 3] * 1; 39803 relativeY += a[i + 4] * 1; 39804 segment.push(difX, difY, relativeX + (x - relativeX) * twoThirds, relativeY + (y - relativeY) * twoThirds, relativeX, relativeY); 39805 i += 4; // "T" (continuation of quadratic bezier) 39806 } else if (command === "T") { 39807 difX = relativeX - segment[segment.length - 4]; 39808 difY = relativeY - segment[segment.length - 3]; 39809 segment.push(relativeX + difX, relativeY + difY, x + (relativeX + difX * 1.5 - x) * twoThirds, y + (relativeY + difY * 1.5 - y) * twoThirds, relativeX = x, relativeY = y); 39810 i += 2; // "H" (horizontal line) 39811 } else if (command === "H") { 39812 line(relativeX, relativeY, relativeX = x, relativeY); 39813 i += 1; // "V" (vertical line) 39814 } else if (command === "V") { 39815 //adjust values because the first (and only one) isn't x in this case, it's y. 39816 line(relativeX, relativeY, relativeX, relativeY = x + (isRelative ? relativeY - relativeX : 0)); 39817 i += 1; // "L" (line) or "Z" (close) 39818 } else if (command === "L" || command === "Z") { 39819 if (command === "Z") { 39820 x = startX; 39821 y = startY; 39822 segment.closed = true; 39823 } 39824 39825 if (command === "L" || _abs(relativeX - x) > 0.5 || _abs(relativeY - y) > 0.5) { 39826 line(relativeX, relativeY, x, y); 39827 39828 if (command === "L") { 39829 i += 2; 39830 } 39831 } 39832 39833 relativeX = x; 39834 relativeY = y; // "A" (arc) 39835 } else if (command === "A") { 39836 flag1 = a[i + 4]; 39837 flag2 = a[i + 5]; 39838 difX = a[i + 6]; 39839 difY = a[i + 7]; 39840 j = 7; 39841 39842 if (flag1.length > 1) { 39843 // for cases when the flags are merged, like "a8 8 0 018 8" (the 0 and 1 flags are WITH the x value of 8, but it could also be "a8 8 0 01-8 8" so it may include x or not) 39844 if (flag1.length < 3) { 39845 difY = difX; 39846 difX = flag2; 39847 j--; 39848 } else { 39849 difY = flag2; 39850 difX = flag1.substr(2); 39851 j -= 2; 39852 } 39853 39854 flag2 = flag1.charAt(1); 39855 flag1 = flag1.charAt(0); 39856 } 39857 39858 beziers = arcToSegment(relativeX, relativeY, +a[i + 1], +a[i + 2], +a[i + 3], +flag1, +flag2, (isRelative ? relativeX : 0) + difX * 1, (isRelative ? relativeY : 0) + difY * 1); 39859 i += j; 39860 39861 if (beziers) { 39862 for (j = 0; j < beziers.length; j++) { 39863 segment.push(beziers[j]); 39864 } 39865 } 39866 39867 relativeX = segment[segment.length - 2]; 39868 relativeY = segment[segment.length - 1]; 39869 } else { 39870 console.log(errorMessage); 39871 } 39872 } 39873 39874 i = segment.length; 39875 39876 if (i < 6) { 39877 //in case there's odd SVG like a M0,0 command at the very end. 39878 path.pop(); 39879 i = 0; 39880 } else if (segment[0] === segment[i - 2] && segment[1] === segment[i - 1]) { 39881 segment.closed = true; 39882 } 39883 39884 path.totalPoints = points + i; 39885 return path; 39886} //populates the points array in alternating x/y values (like [x, y, x, y...] instead of individual point objects [{x, y}, {x, y}...] to conserve memory and stay in line with how we're handling segment arrays 39887 39888function bezierToPoints(x1, y1, x2, y2, x3, y3, x4, y4, threshold, points, index) { 39889 var x12 = (x1 + x2) / 2, 39890 y12 = (y1 + y2) / 2, 39891 x23 = (x2 + x3) / 2, 39892 y23 = (y2 + y3) / 2, 39893 x34 = (x3 + x4) / 2, 39894 y34 = (y3 + y4) / 2, 39895 x123 = (x12 + x23) / 2, 39896 y123 = (y12 + y23) / 2, 39897 x234 = (x23 + x34) / 2, 39898 y234 = (y23 + y34) / 2, 39899 x1234 = (x123 + x234) / 2, 39900 y1234 = (y123 + y234) / 2, 39901 dx = x4 - x1, 39902 dy = y4 - y1, 39903 d2 = _abs((x2 - x4) * dy - (y2 - y4) * dx), 39904 d3 = _abs((x3 - x4) * dy - (y3 - y4) * dx), 39905 length; 39906 39907 if (!points) { 39908 points = [x1, y1, x4, y4]; 39909 index = 2; 39910 } 39911 39912 points.splice(index || points.length - 2, 0, x1234, y1234); 39913 39914 if ((d2 + d3) * (d2 + d3) > threshold * (dx * dx + dy * dy)) { 39915 length = points.length; 39916 bezierToPoints(x1, y1, x12, y12, x123, y123, x1234, y1234, threshold, points, index); 39917 bezierToPoints(x1234, y1234, x234, y234, x34, y34, x4, y4, threshold, points, index + 2 + (points.length - length)); 39918 } 39919 39920 return points; 39921} 39922/* 39923function getAngleBetweenPoints(x0, y0, x1, y1, x2, y2) { //angle between 3 points in radians 39924 var dx1 = x1 - x0, 39925 dy1 = y1 - y0, 39926 dx2 = x2 - x1, 39927 dy2 = y2 - y1, 39928 dx3 = x2 - x0, 39929 dy3 = y2 - y0, 39930 a = dx1 * dx1 + dy1 * dy1, 39931 b = dx2 * dx2 + dy2 * dy2, 39932 c = dx3 * dx3 + dy3 * dy3; 39933 return Math.acos( (a + b - c) / _sqrt(4 * a * b) ); 39934}, 39935*/ 39936//pointsToSegment() doesn't handle flat coordinates (where y is always 0) the way we need (the resulting control points are always right on top of the anchors), so this function basically makes the control points go directly up and down, varying in length based on the curviness (more curvy, further control points) 39937 39938function flatPointsToSegment(points, curviness) { 39939 if (curviness === void 0) { 39940 curviness = 1; 39941 } 39942 39943 var x = points[0], 39944 y = 0, 39945 segment = [x, y], 39946 i = 2; 39947 39948 for (; i < points.length; i += 2) { 39949 segment.push(x, y, points[i], y = (points[i] - x) * curviness / 2, x = points[i], -y); 39950 } 39951 39952 return segment; 39953} //points is an array of x/y points, like [x, y, x, y, x, y] 39954 39955function pointsToSegment(points, curviness) { 39956 //points = simplifyPoints(points, tolerance); 39957 _abs(points[0] - points[2]) < 1e-4 && _abs(points[1] - points[3]) < 1e-4 && (points = points.slice(2)); // if the first two points are super close, dump the first one. 39958 39959 var l = points.length - 2, 39960 x = +points[0], 39961 y = +points[1], 39962 nextX = +points[2], 39963 nextY = +points[3], 39964 segment = [x, y, x, y], 39965 dx2 = nextX - x, 39966 dy2 = nextY - y, 39967 closed = Math.abs(points[l] - x) < 0.001 && Math.abs(points[l + 1] - y) < 0.001, 39968 prevX, 39969 prevY, 39970 i, 39971 dx1, 39972 dy1, 39973 r1, 39974 r2, 39975 r3, 39976 tl, 39977 mx1, 39978 mx2, 39979 mxm, 39980 my1, 39981 my2, 39982 mym; 39983 39984 if (closed) { 39985 // if the start and end points are basically on top of each other, close the segment by adding the 2nd point to the end, and the 2nd-to-last point to the beginning (we'll remove them at the end, but this allows the curvature to look perfect) 39986 points.push(nextX, nextY); 39987 nextX = x; 39988 nextY = y; 39989 x = points[l - 2]; 39990 y = points[l - 1]; 39991 points.unshift(x, y); 39992 l += 4; 39993 } 39994 39995 curviness = curviness || curviness === 0 ? +curviness : 1; 39996 39997 for (i = 2; i < l; i += 2) { 39998 prevX = x; 39999 prevY = y; 40000 x = nextX; 40001 y = nextY; 40002 nextX = +points[i + 2]; 40003 nextY = +points[i + 3]; 40004 40005 if (x === nextX && y === nextY) { 40006 continue; 40007 } 40008 40009 dx1 = dx2; 40010 dy1 = dy2; 40011 dx2 = nextX - x; 40012 dy2 = nextY - y; 40013 r1 = _sqrt(dx1 * dx1 + dy1 * dy1); // r1, r2, and r3 correlate x and y (and z in the future). Basically 2D or 3D hypotenuse 40014 40015 r2 = _sqrt(dx2 * dx2 + dy2 * dy2); 40016 r3 = _sqrt(Math.pow(dx2 / r2 + dx1 / r1, 2) + Math.pow(dy2 / r2 + dy1 / r1, 2)); 40017 tl = (r1 + r2) * curviness * 0.25 / r3; 40018 mx1 = x - (x - prevX) * (r1 ? tl / r1 : 0); 40019 mx2 = x + (nextX - x) * (r2 ? tl / r2 : 0); 40020 mxm = x - (mx1 + ((mx2 - mx1) * (r1 * 3 / (r1 + r2) + 0.5) / 4 || 0)); 40021 my1 = y - (y - prevY) * (r1 ? tl / r1 : 0); 40022 my2 = y + (nextY - y) * (r2 ? tl / r2 : 0); 40023 mym = y - (my1 + ((my2 - my1) * (r1 * 3 / (r1 + r2) + 0.5) / 4 || 0)); 40024 40025 if (x !== prevX || y !== prevY) { 40026 segment.push(_round(mx1 + mxm), // first control point 40027 _round(my1 + mym), _round(x), // anchor 40028 _round(y), _round(mx2 + mxm), // second control point 40029 _round(my2 + mym)); 40030 } 40031 } 40032 40033 x !== nextX || y !== nextY || segment.length < 4 ? segment.push(_round(nextX), _round(nextY), _round(nextX), _round(nextY)) : segment.length -= 2; 40034 40035 if (segment.length === 2) { 40036 // only one point! 40037 segment.push(x, y, x, y, x, y); 40038 } else if (closed) { 40039 segment.splice(0, 6); 40040 segment.length = segment.length - 6; 40041 } 40042 40043 return segment; 40044} //returns the squared distance between an x/y coordinate and a segment between x1/y1 and x2/y2 40045 40046function pointToSegDist(x, y, x1, y1, x2, y2) { 40047 var dx = x2 - x1, 40048 dy = y2 - y1, 40049 t; 40050 40051 if (dx || dy) { 40052 t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy); 40053 40054 if (t > 1) { 40055 x1 = x2; 40056 y1 = y2; 40057 } else if (t > 0) { 40058 x1 += dx * t; 40059 y1 += dy * t; 40060 } 40061 } 40062 40063 return Math.pow(x - x1, 2) + Math.pow(y - y1, 2); 40064} 40065 40066function simplifyStep(points, first, last, tolerance, simplified) { 40067 var maxSqDist = tolerance, 40068 firstX = points[first], 40069 firstY = points[first + 1], 40070 lastX = points[last], 40071 lastY = points[last + 1], 40072 index, 40073 i, 40074 d; 40075 40076 for (i = first + 2; i < last; i += 2) { 40077 d = pointToSegDist(points[i], points[i + 1], firstX, firstY, lastX, lastY); 40078 40079 if (d > maxSqDist) { 40080 index = i; 40081 maxSqDist = d; 40082 } 40083 } 40084 40085 if (maxSqDist > tolerance) { 40086 index - first > 2 && simplifyStep(points, first, index, tolerance, simplified); 40087 simplified.push(points[index], points[index + 1]); 40088 last - index > 2 && simplifyStep(points, index, last, tolerance, simplified); 40089 } 40090} //points is an array of x/y values like [x, y, x, y, x, y] 40091 40092 40093function simplifyPoints(points, tolerance) { 40094 var prevX = parseFloat(points[0]), 40095 prevY = parseFloat(points[1]), 40096 temp = [prevX, prevY], 40097 l = points.length - 2, 40098 i, 40099 x, 40100 y, 40101 dx, 40102 dy, 40103 result, 40104 last; 40105 tolerance = Math.pow(tolerance || 1, 2); 40106 40107 for (i = 2; i < l; i += 2) { 40108 x = parseFloat(points[i]); 40109 y = parseFloat(points[i + 1]); 40110 dx = prevX - x; 40111 dy = prevY - y; 40112 40113 if (dx * dx + dy * dy > tolerance) { 40114 temp.push(x, y); 40115 prevX = x; 40116 prevY = y; 40117 } 40118 } 40119 40120 temp.push(parseFloat(points[l]), parseFloat(points[l + 1])); 40121 last = temp.length - 2; 40122 result = [temp[0], temp[1]]; 40123 simplifyStep(temp, 0, last, tolerance, result); 40124 result.push(temp[last], temp[last + 1]); 40125 return result; 40126} 40127 40128function getClosestProgressOnBezier(iterations, px, py, start, end, slices, x0, y0, x1, y1, x2, y2, x3, y3) { 40129 var inc = (end - start) / slices, 40130 best = 0, 40131 t = start, 40132 x, 40133 y, 40134 d, 40135 dx, 40136 dy, 40137 inv; 40138 _bestDistance = _largeNum; 40139 40140 while (t <= end) { 40141 inv = 1 - t; 40142 x = inv * inv * inv * x0 + 3 * inv * inv * t * x1 + 3 * inv * t * t * x2 + t * t * t * x3; 40143 y = inv * inv * inv * y0 + 3 * inv * inv * t * y1 + 3 * inv * t * t * y2 + t * t * t * y3; 40144 dx = x - px; 40145 dy = y - py; 40146 d = dx * dx + dy * dy; 40147 40148 if (d < _bestDistance) { 40149 _bestDistance = d; 40150 best = t; 40151 } 40152 40153 t += inc; 40154 } 40155 40156 return iterations > 1 ? getClosestProgressOnBezier(iterations - 1, px, py, Math.max(best - inc, 0), Math.min(best + inc, 1), slices, x0, y0, x1, y1, x2, y2, x3, y3) : best; 40157} 40158 40159function getClosestData(rawPath, x, y, slices) { 40160 //returns an object with the closest j, i, and t (j is the segment index, i is the index of the point in that segment, and t is the time/progress along that bezier) 40161 var closest = { 40162 j: 0, 40163 i: 0, 40164 t: 0 40165 }, 40166 bestDistance = _largeNum, 40167 i, 40168 j, 40169 t, 40170 segment; 40171 40172 for (j = 0; j < rawPath.length; j++) { 40173 segment = rawPath[j]; 40174 40175 for (i = 0; i < segment.length; i += 6) { 40176 t = getClosestProgressOnBezier(1, x, y, 0, 1, slices || 20, segment[i], segment[i + 1], segment[i + 2], segment[i + 3], segment[i + 4], segment[i + 5], segment[i + 6], segment[i + 7]); 40177 40178 if (bestDistance > _bestDistance) { 40179 bestDistance = _bestDistance; 40180 closest.j = j; 40181 closest.i = i; 40182 closest.t = t; 40183 } 40184 } 40185 } 40186 40187 return closest; 40188} //subdivide a Segment closest to a specific x,y coordinate 40189 40190function subdivideSegmentNear(x, y, segment, slices, iterations) { 40191 var l = segment.length, 40192 bestDistance = _largeNum, 40193 bestT = 0, 40194 bestSegmentIndex = 0, 40195 t, 40196 i; 40197 slices = slices || 20; 40198 iterations = iterations || 3; 40199 40200 for (i = 0; i < l; i += 6) { 40201 t = getClosestProgressOnBezier(1, x, y, 0, 1, slices, segment[i], segment[i + 1], segment[i + 2], segment[i + 3], segment[i + 4], segment[i + 5], segment[i + 6], segment[i + 7]); 40202 40203 if (bestDistance > _bestDistance) { 40204 bestDistance = _bestDistance; 40205 bestT = t; 40206 bestSegmentIndex = i; 40207 } 40208 } 40209 40210 t = getClosestProgressOnBezier(iterations, x, y, bestT - 0.05, bestT + 0.05, slices, segment[bestSegmentIndex], segment[bestSegmentIndex + 1], segment[bestSegmentIndex + 2], segment[bestSegmentIndex + 3], segment[bestSegmentIndex + 4], segment[bestSegmentIndex + 5], segment[bestSegmentIndex + 6], segment[bestSegmentIndex + 7]); 40211 subdivideSegment(segment, bestSegmentIndex, t); 40212 return bestSegmentIndex + 6; 40213} 40214/* 40215Takes any of the following and converts it to an all Cubic Bezier SVG data string: 40216- A <path> data string like "M0,0 L2,4 v20,15 H100" 40217- A RawPath, like [[x, y, x, y, x, y, x, y][[x, y, x, y, x, y, x, y]] 40218- A Segment, like [x, y, x, y, x, y, x, y] 40219 40220Note: all numbers are rounded down to the closest 0.001 to minimize memory, maximize speed, and avoid odd numbers like 1e-13 40221*/ 40222 40223function rawPathToString(rawPath) { 40224 if (_isNumber(rawPath[0])) { 40225 //in case a segment is passed in instead 40226 rawPath = [rawPath]; 40227 } 40228 40229 var result = "", 40230 l = rawPath.length, 40231 sl, 40232 s, 40233 i, 40234 segment; 40235 40236 for (s = 0; s < l; s++) { 40237 segment = rawPath[s]; 40238 result += "M" + _round(segment[0]) + "," + _round(segment[1]) + " C"; 40239 sl = segment.length; 40240 40241 for (i = 2; i < sl; i++) { 40242 result += _round(segment[i++]) + "," + _round(segment[i++]) + " " + _round(segment[i++]) + "," + _round(segment[i++]) + " " + _round(segment[i++]) + "," + _round(segment[i]) + " "; 40243 } 40244 40245 if (segment.closed) { 40246 result += "z"; 40247 } 40248 } 40249 40250 return result; 40251} 40252/* 40253// takes a segment with coordinates [x, y, x, y, ...] and converts the control points into angles and lengths [x, y, angle, length, angle, length, x, y, angle, length, ...] so that it animates more cleanly and avoids odd breaks/kinks. For example, if you animate from 1 o'clock to 6 o'clock, it'd just go directly/linearly rather than around. So the length would be very short in the middle of the tween. 40254export function cpCoordsToAngles(segment, copy) { 40255 var result = copy ? segment.slice(0) : segment, 40256 x, y, i; 40257 for (i = 0; i < segment.length; i+=6) { 40258 x = segment[i+2] - segment[i]; 40259 y = segment[i+3] - segment[i+1]; 40260 result[i+2] = Math.atan2(y, x); 40261 result[i+3] = Math.sqrt(x * x + y * y); 40262 x = segment[i+6] - segment[i+4]; 40263 y = segment[i+7] - segment[i+5]; 40264 result[i+4] = Math.atan2(y, x); 40265 result[i+5] = Math.sqrt(x * x + y * y); 40266 } 40267 return result; 40268} 40269 40270// takes a segment that was converted with cpCoordsToAngles() to have angles and lengths instead of coordinates for the control points, and converts it BACK into coordinates. 40271export function cpAnglesToCoords(segment, copy) { 40272 var result = copy ? segment.slice(0) : segment, 40273 length = segment.length, 40274 rnd = 1000, 40275 angle, l, i, j; 40276 for (i = 0; i < length; i+=6) { 40277 angle = segment[i+2]; 40278 l = segment[i+3]; //length 40279 result[i+2] = (((segment[i] + Math.cos(angle) * l) * rnd) | 0) / rnd; 40280 result[i+3] = (((segment[i+1] + Math.sin(angle) * l) * rnd) | 0) / rnd; 40281 angle = segment[i+4]; 40282 l = segment[i+5]; //length 40283 result[i+4] = (((segment[i+6] - Math.cos(angle) * l) * rnd) | 0) / rnd; 40284 result[i+5] = (((segment[i+7] - Math.sin(angle) * l) * rnd) | 0) / rnd; 40285 } 40286 return result; 40287} 40288 40289//adds an "isSmooth" array to each segment and populates it with a boolean value indicating whether or not it's smooth (the control points have basically the same slope). For any smooth control points, it converts the coordinates into angle (x, in radians) and length (y) and puts them into the same index value in a smoothData array. 40290export function populateSmoothData(rawPath) { 40291 let j = rawPath.length, 40292 smooth, segment, x, y, x2, y2, i, l, a, a2, isSmooth, smoothData; 40293 while (--j > -1) { 40294 segment = rawPath[j]; 40295 isSmooth = segment.isSmooth = segment.isSmooth || [0, 0, 0, 0]; 40296 smoothData = segment.smoothData = segment.smoothData || [0, 0, 0, 0]; 40297 isSmooth.length = 4; 40298 l = segment.length - 2; 40299 for (i = 6; i < l; i += 6) { 40300 x = segment[i] - segment[i - 2]; 40301 y = segment[i + 1] - segment[i - 1]; 40302 x2 = segment[i + 2] - segment[i]; 40303 y2 = segment[i + 3] - segment[i + 1]; 40304 a = _atan2(y, x); 40305 a2 = _atan2(y2, x2); 40306 smooth = (Math.abs(a - a2) < 0.09); 40307 if (smooth) { 40308 smoothData[i - 2] = a; 40309 smoothData[i + 2] = a2; 40310 smoothData[i - 1] = _sqrt(x * x + y * y); 40311 smoothData[i + 3] = _sqrt(x2 * x2 + y2 * y2); 40312 } 40313 isSmooth.push(smooth, smooth, 0, 0, smooth, smooth); 40314 } 40315 //if the first and last points are identical, check to see if there's a smooth transition. We must handle this a bit differently due to their positions in the array. 40316 if (segment[l] === segment[0] && segment[l+1] === segment[1]) { 40317 x = segment[0] - segment[l-2]; 40318 y = segment[1] - segment[l-1]; 40319 x2 = segment[2] - segment[0]; 40320 y2 = segment[3] - segment[1]; 40321 a = _atan2(y, x); 40322 a2 = _atan2(y2, x2); 40323 if (Math.abs(a - a2) < 0.09) { 40324 smoothData[l-2] = a; 40325 smoothData[2] = a2; 40326 smoothData[l-1] = _sqrt(x * x + y * y); 40327 smoothData[3] = _sqrt(x2 * x2 + y2 * y2); 40328 isSmooth[l-2] = isSmooth[l-1] = true; //don't change indexes 2 and 3 because we'll trigger everything from the END, and this will optimize file size a bit. 40329 } 40330 } 40331 } 40332 return rawPath; 40333} 40334export function pointToScreen(svgElement, point) { 40335 if (arguments.length < 2) { //by default, take the first set of coordinates in the path as the point 40336 let rawPath = getRawPath(svgElement); 40337 point = svgElement.ownerSVGElement.createSVGPoint(); 40338 point.x = rawPath[0][0]; 40339 point.y = rawPath[0][1]; 40340 } 40341 return point.matrixTransform(svgElement.getScreenCTM()); 40342} 40343 40344*/ 40345 40346/***/ }), 40347
vendor: 1,169 bytes, lines 40348-40383
40348/***/ "./node_modules/inputmask/dist/bindings/inputmask.binding.js": 40349/*!*******************************************************************!*\ 40350 !*** ./node_modules/inputmask/dist/bindings/inputmask.binding.js ***! 40351 \*******************************************************************/ 40352/***/ (() => { 40353 40354/* 40355 Input Mask plugin binding 40356 http://github.com/RobinHerbots/jquery.inputmask 40357 Copyright (c) Robin Herbots 40358 Licensed under the MIT license 40359 */ 40360(function (factory) { 40361 factory(jQuery, window.Inputmask, window); 40362} 40363(function ($, Inputmask, window) { 40364 $(window.document).ajaxComplete(function (event, xmlHttpRequest, ajaxOptions) { 40365 if ($.inArray("html", ajaxOptions.dataTypes) !== -1) { 40366 $(".inputmask, [data-inputmask], [data-inputmask-mask], [data-inputmask-alias], [data-inputmask-regex]").each(function (ndx, lmnt) { 40367 if (lmnt.inputmask === undefined) { 40368 Inputmask().mask(lmnt); 40369 } 40370 }); 40371 } 40372 }).ready(function () { 40373 $(".inputmask, [data-inputmask], [data-inputmask-mask], [data-inputmask-alias],[data-inputmask-regex]").each(function (ndx, lmnt) { 40374 if (lmnt.inputmask === undefined) { 40375 Inputmask().mask(lmnt); 40376 } 40377 }); 40378 }); 40379})); 40380 40381 40382/***/ }), 40383
vendor: 209,518 bytes, lines 40384-43641
40384/***/ "./node_modules/inputmask/dist/inputmask.js": 40385/*!**************************************************!*\ 40386 !*** ./node_modules/inputmask/dist/inputmask.js ***! 40387 \**************************************************/ 40388/***/ (function(module) { 40389 40390/*! 40391 * dist/inputmask 40392 * https://github.com/RobinHerbots/Inputmask 40393 * Copyright (c) 2010 - 2023 Robin Herbots 40394 * Licensed under the MIT license 40395 * Version: 5.0.8 40396 */ 40397!function(e, t) { 40398 if (true) module.exports = t(); else { var n, i; } 40399}("undefined" != typeof self ? self : this, (function() { 40400 return function() { 40401 "use strict"; 40402 var e = { 40403 8741: function(e, t) { 40404 Object.defineProperty(t, "__esModule", { 40405 value: !0 40406 }), t.default = void 0; 40407 var i = !("undefined" == typeof window || !window.document || !window.document.createElement); 40408 t.default = i; 40409 }, 40410 3976: function(e, t, i) { 40411 Object.defineProperty(t, "__esModule", { 40412 value: !0 40413 }), t.default = void 0; 40414 var n = i(2839), a = { 40415 _maxTestPos: 500, 40416 placeholder: "_", 40417 optionalmarker: [ "[", "]" ], 40418 quantifiermarker: [ "{", "}" ], 40419 groupmarker: [ "(", ")" ], 40420 alternatormarker: "|", 40421 escapeChar: "\\", 40422 mask: null, 40423 regex: null, 40424 oncomplete: function() {}, 40425 onincomplete: function() {}, 40426 oncleared: function() {}, 40427 repeat: 0, 40428 greedy: !1, 40429 autoUnmask: !1, 40430 removeMaskOnSubmit: !1, 40431 clearMaskOnLostFocus: !0, 40432 insertMode: !0, 40433 insertModeVisual: !0, 40434 clearIncomplete: !1, 40435 alias: null, 40436 onKeyDown: function() {}, 40437 onBeforeMask: null, 40438 onBeforePaste: function(e, t) { 40439 return "function" == typeof t.onBeforeMask ? t.onBeforeMask.call(this, e, t) : e; 40440 }, 40441 onBeforeWrite: null, 40442 onUnMask: null, 40443 showMaskOnFocus: !0, 40444 showMaskOnHover: !0, 40445 onKeyValidation: function() {}, 40446 skipOptionalPartCharacter: " ", 40447 numericInput: !1, 40448 rightAlign: !1, 40449 undoOnEscape: !0, 40450 radixPoint: "", 40451 _radixDance: !1, 40452 groupSeparator: "", 40453 keepStatic: null, 40454 positionCaretOnTab: !0, 40455 tabThrough: !1, 40456 supportsInputType: [ "text", "tel", "url", "password", "search" ], 40457 ignorables: [ n.keys.Backspace, n.keys.Tab, n.keys.Pause, n.keys.Escape, n.keys.PageUp, n.keys.PageDown, n.keys.End, n.keys.Home, n.keys.ArrowLeft, n.keys.ArrowUp, n.keys.ArrowRight, n.keys.ArrowDown, n.keys.Insert, n.keys.Delete, n.keys.ContextMenu, n.keys.F1, n.keys.F2, n.keys.F3, n.keys.F4, n.keys.F5, n.keys.F6, n.keys.F7, n.keys.F8, n.keys.F9, n.keys.F10, n.keys.F11, n.keys.F12, n.keys.Process, n.keys.Unidentified, n.keys.Shift, n.keys.Control, n.keys.Alt, n.keys.Tab, n.keys.AltGraph, n.keys.CapsLock ], 40458 isComplete: null, 40459 preValidation: null, 40460 postValidation: null, 40461 staticDefinitionSymbol: void 0, 40462 jitMasking: !1, 40463 nullable: !0, 40464 inputEventOnly: !1, 40465 noValuePatching: !1, 40466 positionCaretOnClick: "lvp", 40467 casing: null, 40468 inputmode: "text", 40469 importDataAttributes: !0, 40470 shiftPositions: !0, 40471 usePrototypeDefinitions: !0, 40472 validationEventTimeOut: 3e3, 40473 substitutes: {} 40474 }; 40475 t.default = a; 40476 }, 40477 7392: function(e, t) { 40478 Object.defineProperty(t, "__esModule", { 40479 value: !0 40480 }), t.default = void 0; 40481 t.default = { 40482 9: { 40483 validator: "[0-9\uff10-\uff19]", 40484 definitionSymbol: "*" 40485 }, 40486 a: { 40487 validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", 40488 definitionSymbol: "*" 40489 }, 40490 "*": { 40491 validator: "[0-9\uff10-\uff19A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]" 40492 } 40493 }; 40494 }, 40495 253: function(e, t) { 40496 Object.defineProperty(t, "__esModule", { 40497 value: !0 40498 }), t.default = function(e, t, i) { 40499 if (void 0 === i) return e.__data ? e.__data[t] : null; 40500 e.__data = e.__data || {}, e.__data[t] = i; 40501 }; 40502 }, 40503 3776: function(e, t, i) { 40504 Object.defineProperty(t, "__esModule", { 40505 value: !0 40506 }), t.Event = void 0, t.off = function(e, t) { 40507 var i, n; 40508 f(this[0]) && e && (i = this[0].eventRegistry, n = this[0], e.split(" ").forEach((function(e) { 40509 var a = l(e.split("."), 2); 40510 (function(e, n) { 40511 var a, r, o = []; 40512 if (e.length > 0) if (void 0 === t) for (a = 0, r = i[e][n].length; a < r; a++) o.push({ 40513 ev: e, 40514 namespace: n && n.length > 0 ? n : "global", 40515 handler: i[e][n][a] 40516 }); else o.push({ 40517 ev: e, 40518 namespace: n && n.length > 0 ? n : "global", 40519 handler: t 40520 }); else if (n.length > 0) for (var s in i) for (var l in i[s]) if (l === n) if (void 0 === t) for (a = 0, 40521 r = i[s][l].length; a < r; a++) o.push({ 40522 ev: s, 40523 namespace: l, 40524 handler: i[s][l][a] 40525 }); else o.push({ 40526 ev: s, 40527 namespace: l, 40528 handler: t 40529 }); 40530 return o; 40531 })(a[0], a[1]).forEach((function(e) { 40532 var t = e.ev, a = e.handler; 40533 !function(e, t, a) { 40534 if (e in i == 1) if (n.removeEventListener ? n.removeEventListener(e, a, !1) : n.detachEvent && n.detachEvent("on".concat(e), a), 40535 "global" === t) for (var r in i[e]) i[e][r].splice(i[e][r].indexOf(a), 1); else i[e][t].splice(i[e][t].indexOf(a), 1); 40536 }(t, e.namespace, a); 40537 })); 40538 }))); 40539 return this; 40540 }, t.on = function(e, t) { 40541 if (f(this[0])) { 40542 var i = this[0].eventRegistry, n = this[0]; 40543 e.split(" ").forEach((function(e) { 40544 var a = l(e.split("."), 2), r = a[0], o = a[1]; 40545 !function(e, a) { 40546 n.addEventListener ? n.addEventListener(e, t, !1) : n.attachEvent && n.attachEvent("on".concat(e), t), 40547 i[e] = i[e] || {}, i[e][a] = i[e][a] || [], i[e][a].push(t); 40548 }(r, void 0 === o ? "global" : o); 40549 })); 40550 } 40551 return this; 40552 }, t.trigger = function(e) { 40553 var t = arguments; 40554 if (f(this[0])) for (var i = this[0].eventRegistry, n = this[0], r = "string" == typeof e ? e.split(" ") : [ e.type ], s = 0; s < r.length; s++) { 40555 var l = r[s].split("."), c = l[0], u = l[1] || "global"; 40556 if (void 0 !== document && "global" === u) { 40557 var d, p = { 40558 bubbles: !0, 40559 cancelable: !0, 40560 composed: !0, 40561 detail: arguments[1] 40562 }; 40563 if (document.createEvent) { 40564 try { 40565 if ("input" === c) p.inputType = "insertText", d = new InputEvent(c, p); else d = new CustomEvent(c, p); 40566 } catch (e) { 40567 (d = document.createEvent("CustomEvent")).initCustomEvent(c, p.bubbles, p.cancelable, p.detail); 40568 } 40569 e.type && (0, a.default)(d, e), n.dispatchEvent(d); 40570 } else (d = document.createEventObject()).eventType = c, d.detail = arguments[1], 40571 e.type && (0, a.default)(d, e), n.fireEvent("on" + d.eventType, d); 40572 } else if (void 0 !== i[c]) { 40573 arguments[0] = arguments[0].type ? arguments[0] : o.default.Event(arguments[0]), 40574 arguments[0].detail = arguments.slice(1); 40575 var h = i[c]; 40576 ("global" === u ? Object.values(h).flat() : h[u]).forEach((function(e) { 40577 return e.apply(n, t); 40578 })); 40579 } 40580 } 40581 return this; 40582 }; 40583 var n, a = u(i(600)), r = u(i(9380)), o = u(i(4963)), s = u(i(8741)); 40584 function l(e, t) { 40585 return function(e) { 40586 if (Array.isArray(e)) return e; 40587 }(e) || function(e, t) { 40588 var i = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; 40589 if (null != i) { 40590 var n, a, r, o, s = [], l = !0, c = !1; 40591 try { 40592 if (r = (i = i.call(e)).next, 0 === t) { 40593 if (Object(i) !== i) return; 40594 l = !1; 40595 } else for (;!(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0) ; 40596 } catch (e) { 40597 c = !0, a = e; 40598 } finally { 40599 try { 40600 if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return; 40601 } finally { 40602 if (c) throw a; 40603 } 40604 } 40605 return s; 40606 } 40607 }(e, t) || function(e, t) { 40608 if (!e) return; 40609 if ("string" == typeof e) return c(e, t); 40610 var i = Object.prototype.toString.call(e).slice(8, -1); 40611 "Object" === i && e.constructor && (i = e.constructor.name); 40612 if ("Map" === i || "Set" === i) return Array.from(e); 40613 if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return c(e, t); 40614 }(e, t) || function() { 40615 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 40616 }(); 40617 } 40618 function c(e, t) { 40619 (null == t || t > e.length) && (t = e.length); 40620 for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i]; 40621 return n; 40622 } 40623 function u(e) { 40624 return e && e.__esModule ? e : { 40625 default: e 40626 }; 40627 } 40628 function f(e) { 40629 return e instanceof Element; 40630 } 40631 t.Event = n, "function" == typeof r.default.CustomEvent ? t.Event = n = r.default.CustomEvent : s.default && (t.Event = n = function(e, t) { 40632 t = t || { 40633 bubbles: !1, 40634 cancelable: !1, 40635 composed: !0, 40636 detail: void 0 40637 }; 40638 var i = document.createEvent("CustomEvent"); 40639 return i.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), i; 40640 }, n.prototype = r.default.Event.prototype); 40641 }, 40642 600: function(e, t) { 40643 function i(e) { 40644 return i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { 40645 return typeof e; 40646 } : function(e) { 40647 return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; 40648 }, i(e); 40649 } 40650 Object.defineProperty(t, "__esModule", { 40651 value: !0 40652 }), t.default = function e() { 40653 var t, n, a, r, o, s, l = arguments[0] || {}, c = 1, u = arguments.length, f = !1; 40654 "boolean" == typeof l && (f = l, l = arguments[c] || {}, c++); 40655 "object" !== i(l) && "function" != typeof l && (l = {}); 40656 for (;c < u; c++) if (null != (t = arguments[c])) for (n in t) a = l[n], l !== (r = t[n]) && (f && r && ("[object Object]" === Object.prototype.toString.call(r) || (o = Array.isArray(r))) ? (o ? (o = !1, 40657 s = a && Array.isArray(a) ? a : []) : s = a && "[object Object]" === Object.prototype.toString.call(a) ? a : {}, 40658 l[n] = e(f, s, r)) : void 0 !== r && (l[n] = r)); 40659 return l; 40660 }; 40661 }, 40662 4963: function(e, t, i) { 40663 Object.defineProperty(t, "__esModule", { 40664 value: !0 40665 }), t.default = void 0; 40666 var n = s(i(600)), a = s(i(9380)), r = s(i(253)), o = i(3776); 40667 function s(e) { 40668 return e && e.__esModule ? e : { 40669 default: e 40670 }; 40671 } 40672 var l = a.default.document; 40673 function c(e) { 40674 return e instanceof c ? e : this instanceof c ? void (null != e && e !== a.default && (this[0] = e.nodeName ? e : void 0 !== e[0] && e[0].nodeName ? e[0] : l.querySelector(e), 40675 void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {}))) : new c(e); 40676 } 40677 c.prototype = { 40678 on: o.on, 40679 off: o.off, 40680 trigger: o.trigger 40681 }, c.extend = n.default, c.data = r.default, c.Event = o.Event; 40682 var u = c; 40683 t.default = u; 40684 }, 40685 9845: function(e, t, i) { 40686 Object.defineProperty(t, "__esModule", { 40687 value: !0 40688 }), t.mobile = t.iphone = t.ie = void 0; 40689 var n, a = (n = i(9380)) && n.__esModule ? n : { 40690 default: n 40691 }; 40692 var r = a.default.navigator && a.default.navigator.userAgent || "", o = r.indexOf("MSIE ") > 0 || r.indexOf("Trident/") > 0, s = navigator.userAgentData && navigator.userAgentData.mobile || a.default.navigator && a.default.navigator.maxTouchPoints || "ontouchstart" in a.default, l = /iphone/i.test(r); 40693 t.iphone = l, t.mobile = s, t.ie = o; 40694 }, 40695 7184: function(e, t) { 40696 Object.defineProperty(t, "__esModule", { 40697 value: !0 40698 }), t.default = function(e) { 40699 return e.replace(i, "\\$1"); 40700 }; 40701 var i = new RegExp("(\\" + [ "/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^" ].join("|\\") + ")", "gim"); 40702 }, 40703 6030: function(e, t, i) { 40704 Object.defineProperty(t, "__esModule", { 40705 value: !0 40706 }), t.EventHandlers = void 0; 40707 var n = i(8711), a = i(2839), r = i(9845), o = i(7215), s = i(7760), l = i(4713); 40708 function c(e, t) { 40709 var i = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; 40710 if (!i) { 40711 if (Array.isArray(e) || (i = function(e, t) { 40712 if (!e) return; 40713 if ("string" == typeof e) return u(e, t); 40714 var i = Object.prototype.toString.call(e).slice(8, -1); 40715 "Object" === i && e.constructor && (i = e.constructor.name); 40716 if ("Map" === i || "Set" === i) return Array.from(e); 40717 if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return u(e, t); 40718 }(e)) || t && e && "number" == typeof e.length) { 40719 i && (e = i); 40720 var n = 0, a = function() {}; 40721 return { 40722 s: a, 40723 n: function() { 40724 return n >= e.length ? { 40725 done: !0 40726 } : { 40727 done: !1, 40728 value: e[n++] 40729 }; 40730 }, 40731 e: function(e) { 40732 throw e; 40733 }, 40734 f: a 40735 }; 40736 } 40737 throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 40738 } 40739 var r, o = !0, s = !1; 40740 return { 40741 s: function() { 40742 i = i.call(e); 40743 }, 40744 n: function() { 40745 var e = i.next(); 40746 return o = e.done, e; 40747 }, 40748 e: function(e) { 40749 s = !0, r = e; 40750 }, 40751 f: function() { 40752 try { 40753 o || null == i.return || i.return(); 40754 } finally { 40755 if (s) throw r; 40756 } 40757 } 40758 }; 40759 } 40760 function u(e, t) { 40761 (null == t || t > e.length) && (t = e.length); 40762 for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i]; 40763 return n; 40764 } 40765 var f = { 40766 keyEvent: function(e, t, i, c, u) { 40767 var d = this.inputmask, p = d.opts, h = d.dependencyLib, v = d.maskset, m = this, g = h(m), y = e.key, k = n.caret.call(d, m), b = p.onKeyDown.call(this, e, n.getBuffer.call(d), k, p); 40768 if (void 0 !== b) return b; 40769 if (y === a.keys.Backspace || y === a.keys.Delete || r.iphone && y === a.keys.BACKSPACE_SAFARI || e.ctrlKey && y === a.keys.x && !("oncut" in m)) e.preventDefault(), 40770 o.handleRemove.call(d, m, y, k), (0, s.writeBuffer)(m, n.getBuffer.call(d, !0), v.p, e, m.inputmask._valueGet() !== n.getBuffer.call(d).join("")); else if (y === a.keys.End || y === a.keys.PageDown) { 40771 e.preventDefault(); 40772 var x = n.seekNext.call(d, n.getLastValidPosition.call(d)); 40773 n.caret.call(d, m, e.shiftKey ? k.begin : x, x, !0); 40774 } else y === a.keys.Home && !e.shiftKey || y === a.keys.PageUp ? (e.preventDefault(), 40775 n.caret.call(d, m, 0, e.shiftKey ? k.begin : 0, !0)) : p.undoOnEscape && y === a.keys.Escape && !0 !== e.altKey ? ((0, 40776 s.checkVal)(m, !0, !1, d.undoValue.split("")), g.trigger("click")) : y !== a.keys.Insert || e.shiftKey || e.ctrlKey || void 0 !== d.userOptions.insertMode ? !0 === p.tabThrough && y === a.keys.Tab ? !0 === e.shiftKey ? (k.end = n.seekPrevious.call(d, k.end, !0), 40777 !0 === l.getTest.call(d, k.end - 1).match.static && k.end--, k.begin = n.seekPrevious.call(d, k.end, !0), 40778 k.begin >= 0 && k.end > 0 && (e.preventDefault(), n.caret.call(d, m, k.begin, k.end))) : (k.begin = n.seekNext.call(d, k.begin, !0), 40779 k.end = n.seekNext.call(d, k.begin, !0), k.end < v.maskLength && k.end--, k.begin <= v.maskLength && (e.preventDefault(), 40780 n.caret.call(d, m, k.begin, k.end))) : e.shiftKey || p.insertModeVisual && !1 === p.insertMode && (y === a.keys.ArrowRight ? setTimeout((function() { 40781 var e = n.caret.call(d, m); 40782 n.caret.call(d, m, e.begin); 40783 }), 0) : y === a.keys.ArrowLeft && setTimeout((function() { 40784 var e = n.translatePosition.call(d, m.inputmask.caretPos.begin); 40785 n.translatePosition.call(d, m.inputmask.caretPos.end); 40786 d.isRTL ? n.caret.call(d, m, e + (e === v.maskLength ? 0 : 1)) : n.caret.call(d, m, e - (0 === e ? 0 : 1)); 40787 }), 0)) : o.isSelection.call(d, k) ? p.insertMode = !p.insertMode : (p.insertMode = !p.insertMode, 40788 n.caret.call(d, m, k.begin, k.begin)); 40789 return d.isComposing = y == a.keys.Process || y == a.keys.Unidentified, d.ignorable = p.ignorables.includes(y), 40790 f.keypressEvent.call(this, e, t, i, c, u); 40791 }, 40792 keypressEvent: function(e, t, i, r, l) { 40793 var c = this.inputmask || this, u = c.opts, f = c.dependencyLib, d = c.maskset, p = c.el, h = f(p), v = e.key; 40794 if (!0 === t || e.ctrlKey && e.altKey || !(e.ctrlKey || e.metaKey || c.ignorable)) { 40795 if (v) { 40796 var m, g = t ? { 40797 begin: l, 40798 end: l 40799 } : n.caret.call(c, p); 40800 v = u.substitutes[v] || v, d.writeOutBuffer = !0; 40801 var y = o.isValid.call(c, g, v, r, void 0, void 0, void 0, t); 40802 if (!1 !== y && (n.resetMaskSet.call(c, !0), m = void 0 !== y.caret ? y.caret : n.seekNext.call(c, y.pos.begin ? y.pos.begin : y.pos), 40803 d.p = m), m = u.numericInput && void 0 === y.caret ? n.seekPrevious.call(c, m) : m, 40804 !1 !== i && (setTimeout((function() { 40805 u.onKeyValidation.call(p, v, y); 40806 }), 0), d.writeOutBuffer && !1 !== y)) { 40807 var k = n.getBuffer.call(c); 40808 (0, s.writeBuffer)(p, k, m, e, !0 !== t); 40809 } 40810 if (e.preventDefault(), t) return !1 !== y && (y.forwardPosition = m), y; 40811 } 40812 } else v === a.keys.Enter && c.undoValue !== c._valueGet(!0) && (c.undoValue = c._valueGet(!0), 40813 setTimeout((function() { 40814 h.trigger("change"); 40815 }), 0)); 40816 }, 40817 pasteEvent: function(e) { 40818 var t, i = this.inputmask, a = i.opts, r = i._valueGet(!0), o = n.caret.call(i, this); 40819 i.isRTL && (t = o.end, o.end = n.translatePosition.call(i, o.begin), o.begin = n.translatePosition.call(i, t)); 40820 var l = r.substr(0, o.begin), u = r.substr(o.end, r.length); 40821 if (l == (i.isRTL ? n.getBufferTemplate.call(i).slice().reverse() : n.getBufferTemplate.call(i)).slice(0, o.begin).join("") && (l = ""), 40822 u == (i.isRTL ? n.getBufferTemplate.call(i).slice().reverse() : n.getBufferTemplate.call(i)).slice(o.end).join("") && (u = ""), 40823 window.clipboardData && window.clipboardData.getData) r = l + window.clipboardData.getData("Text") + u; else { 40824 if (!e.clipboardData || !e.clipboardData.getData) return !0; 40825 r = l + e.clipboardData.getData("text/plain") + u; 40826 } 40827 var f = r; 40828 if (i.isRTL) { 40829 f = f.split(""); 40830 var d, p = c(n.getBufferTemplate.call(i)); 40831 try { 40832 for (p.s(); !(d = p.n()).done; ) { 40833 var h = d.value; 40834 f[0] === h && f.shift(); 40835 } 40836 } catch (e) { 40837 p.e(e); 40838 } finally { 40839 p.f(); 40840 } 40841 f = f.join(""); 40842 } 40843 if ("function" == typeof a.onBeforePaste) { 40844 if (!1 === (f = a.onBeforePaste.call(i, f, a))) return !1; 40845 f || (f = r); 40846 } 40847 (0, s.checkVal)(this, !0, !1, f.toString().split(""), e), e.preventDefault(); 40848 }, 40849 inputFallBackEvent: function(e) { 40850 var t = this.inputmask, i = t.opts, o = t.dependencyLib; 40851 var c, u = this, d = u.inputmask._valueGet(!0), p = (t.isRTL ? n.getBuffer.call(t).slice().reverse() : n.getBuffer.call(t)).join(""), h = n.caret.call(t, u, void 0, void 0, !0); 40852 if (p !== d) { 40853 if (c = function(e, a, r) { 40854 for (var o, s, c, u = e.substr(0, r.begin).split(""), f = e.substr(r.begin).split(""), d = a.substr(0, r.begin).split(""), p = a.substr(r.begin).split(""), h = u.length >= d.length ? u.length : d.length, v = f.length >= p.length ? f.length : p.length, m = "", g = [], y = "~"; u.length < h; ) u.push(y); 40855 for (;d.length < h; ) d.push(y); 40856 for (;f.length < v; ) f.unshift(y); 40857 for (;p.length < v; ) p.unshift(y); 40858 var k = u.concat(f), b = d.concat(p); 40859 for (s = 0, o = k.length; s < o; s++) switch (c = l.getPlaceholder.call(t, n.translatePosition.call(t, s)), 40860 m) { 40861 case "insertText": 40862 b[s - 1] === k[s] && r.begin == k.length - 1 && g.push(k[s]), s = o; 40863 break; 40864 40865 case "insertReplacementText": 40866 case "deleteContentBackward": 40867 k[s] === y ? r.end++ : s = o; 40868 break; 40869 40870 default: 40871 k[s] !== b[s] && (k[s + 1] !== y && k[s + 1] !== c && void 0 !== k[s + 1] || (b[s] !== c || b[s + 1] !== y) && b[s] !== y ? b[s + 1] === y && b[s] === k[s + 1] ? (m = "insertText", 40872 g.push(k[s]), r.begin--, r.end--) : k[s] !== c && k[s] !== y && (k[s + 1] === y || b[s] !== k[s] && b[s + 1] === k[s + 1]) ? (m = "insertReplacementText", 40873 g.push(k[s]), r.begin--) : k[s] === y ? (m = "deleteContentBackward", (n.isMask.call(t, n.translatePosition.call(t, s), !0) || b[s] === i.radixPoint) && r.end++) : s = o : (m = "insertText", 40874 g.push(k[s]), r.begin--, r.end--)); 40875 } 40876 return { 40877 action: m, 40878 data: g, 40879 caret: r 40880 }; 40881 }(d, p, h), (u.inputmask.shadowRoot || u.ownerDocument).activeElement !== u && u.focus(), 40882 (0, s.writeBuffer)(u, n.getBuffer.call(t)), n.caret.call(t, u, h.begin, h.end, !0), 40883 !r.mobile && t.skipNextInsert && "insertText" === e.inputType && "insertText" === c.action && t.isComposing) return !1; 40884 switch ("insertCompositionText" === e.inputType && "insertText" === c.action && t.isComposing ? t.skipNextInsert = !0 : t.skipNextInsert = !1, 40885 c.action) { 40886 case "insertText": 40887 case "insertReplacementText": 40888 c.data.forEach((function(e, i) { 40889 var n = new o.Event("keypress"); 40890 n.key = e, t.ignorable = !1, f.keypressEvent.call(u, n); 40891 })), setTimeout((function() { 40892 t.$el.trigger("keyup"); 40893 }), 0); 40894 break; 40895 40896 case "deleteContentBackward": 40897 var v = new o.Event("keydown"); 40898 v.key = a.keys.Backspace, f.keyEvent.call(u, v); 40899 break; 40900 40901 default: 40902 (0, s.applyInputValue)(u, d), n.caret.call(t, u, h.begin, h.end, !0); 40903 } 40904 e.preventDefault(); 40905 } 40906 }, 40907 setValueEvent: function(e) { 40908 var t = this.inputmask, i = this, a = e && e.detail ? e.detail[0] : arguments[1]; 40909 void 0 === a && (a = i.inputmask._valueGet(!0)), (0, s.applyInputValue)(i, a), (e.detail && void 0 !== e.detail[1] || void 0 !== arguments[2]) && n.caret.call(t, i, e.detail ? e.detail[1] : arguments[2]); 40910 }, 40911 focusEvent: function(e) { 40912 var t = this.inputmask, i = t.opts, a = null == t ? void 0 : t._valueGet(); 40913 i.showMaskOnFocus && a !== n.getBuffer.call(t).join("") && (0, s.writeBuffer)(this, n.getBuffer.call(t), n.seekNext.call(t, n.getLastValidPosition.call(t))), 40914 !0 !== i.positionCaretOnTab || !1 !== t.mouseEnter || o.isComplete.call(t, n.getBuffer.call(t)) && -1 !== n.getLastValidPosition.call(t) || f.clickEvent.apply(this, [ e, !0 ]), 40915 t.undoValue = null == t ? void 0 : t._valueGet(!0); 40916 }, 40917 invalidEvent: function(e) { 40918 this.inputmask.validationEvent = !0; 40919 }, 40920 mouseleaveEvent: function() { 40921 var e = this.inputmask, t = e.opts, i = this; 40922 e.mouseEnter = !1, t.clearMaskOnLostFocus && (i.inputmask.shadowRoot || i.ownerDocument).activeElement !== i && (0, 40923 s.HandleNativePlaceholder)(i, e.originalPlaceholder); 40924 }, 40925 clickEvent: function(e, t) { 40926 var i = this.inputmask; 40927 i.clicked++; 40928 var a = this; 40929 if ((a.inputmask.shadowRoot || a.ownerDocument).activeElement === a) { 40930 var r = n.determineNewCaretPosition.call(i, n.caret.call(i, a), t); 40931 void 0 !== r && n.caret.call(i, a, r); 40932 } 40933 }, 40934 cutEvent: function(e) { 40935 var t = this.inputmask, i = t.maskset, r = this, l = n.caret.call(t, r), c = t.isRTL ? n.getBuffer.call(t).slice(l.end, l.begin) : n.getBuffer.call(t).slice(l.begin, l.end), u = t.isRTL ? c.reverse().join("") : c.join(""); 40936 window.navigator.clipboard ? window.navigator.clipboard.writeText(u) : window.clipboardData && window.clipboardData.getData && window.clipboardData.setData("Text", u), 40937 o.handleRemove.call(t, r, a.keys.Delete, l), (0, s.writeBuffer)(r, n.getBuffer.call(t), i.p, e, t.undoValue !== t._valueGet(!0)); 40938 }, 40939 blurEvent: function(e) { 40940 var t = this.inputmask, i = t.opts, a = t.dependencyLib; 40941 t.clicked = 0; 40942 var r = a(this), l = this; 40943 if (l.inputmask) { 40944 (0, s.HandleNativePlaceholder)(l, t.originalPlaceholder); 40945 var c = l.inputmask._valueGet(), u = n.getBuffer.call(t).slice(); 40946 "" !== c && (i.clearMaskOnLostFocus && (-1 === n.getLastValidPosition.call(t) && c === n.getBufferTemplate.call(t).join("") ? u = [] : s.clearOptionalTail.call(t, u)), 40947 !1 === o.isComplete.call(t, u) && (setTimeout((function() { 40948 r.trigger("incomplete"); 40949 }), 0), i.clearIncomplete && (n.resetMaskSet.call(t), u = i.clearMaskOnLostFocus ? [] : n.getBufferTemplate.call(t).slice())), 40950 (0, s.writeBuffer)(l, u, void 0, e)), t.undoValue !== t._valueGet(!0) && (t.undoValue = t._valueGet(!0), 40951 r.trigger("change")); 40952 } 40953 }, 40954 mouseenterEvent: function() { 40955 var e = this.inputmask, t = e.opts.showMaskOnHover, i = this; 40956 if (e.mouseEnter = !0, (i.inputmask.shadowRoot || i.ownerDocument).activeElement !== i) { 40957 var a = (e.isRTL ? n.getBufferTemplate.call(e).slice().reverse() : n.getBufferTemplate.call(e)).join(""); 40958 t && (0, s.HandleNativePlaceholder)(i, a); 40959 } 40960 }, 40961 submitEvent: function() { 40962 var e = this.inputmask, t = e.opts; 40963 e.undoValue !== e._valueGet(!0) && e.$el.trigger("change"), -1 === n.getLastValidPosition.call(e) && e._valueGet && e._valueGet() === n.getBufferTemplate.call(e).join("") && e._valueSet(""), 40964 t.clearIncomplete && !1 === o.isComplete.call(e, n.getBuffer.call(e)) && e._valueSet(""), 40965 t.removeMaskOnSubmit && (e._valueSet(e.unmaskedvalue(), !0), setTimeout((function() { 40966 (0, s.writeBuffer)(e.el, n.getBuffer.call(e)); 40967 }), 0)); 40968 }, 40969 resetEvent: function() { 40970 var e = this.inputmask; 40971 e.refreshValue = !0, setTimeout((function() { 40972 (0, s.applyInputValue)(e.el, e._valueGet(!0)); 40973 }), 0); 40974 } 40975 }; 40976 t.EventHandlers = f; 40977 }, 40978 9716: function(e, t, i) { 40979 Object.defineProperty(t, "__esModule", { 40980 value: !0 40981 }), t.EventRuler = void 0; 40982 var n, a = (n = i(2394)) && n.__esModule ? n : { 40983 default: n 40984 }, r = i(2839), o = i(8711), s = i(7760); 40985 var l = { 40986 on: function(e, t, i) { 40987 var n = e.inputmask.dependencyLib, l = function(t) { 40988 t.originalEvent && (t = t.originalEvent || t, arguments[0] = t); 40989 var l, c = this, u = c.inputmask, f = u ? u.opts : void 0; 40990 if (void 0 === u && "FORM" !== this.nodeName) { 40991 var d = n.data(c, "_inputmask_opts"); 40992 n(c).off(), d && new a.default(d).mask(c); 40993 } else { 40994 if ([ "submit", "reset", "setvalue" ].includes(t.type) || "FORM" === this.nodeName || !(c.disabled || c.readOnly && !("keydown" === t.type && t.ctrlKey && t.key === r.keys.c || !1 === f.tabThrough && t.key === r.keys.Tab))) { 40995 switch (t.type) { 40996 case "input": 40997 if (!0 === u.skipInputEvent) return u.skipInputEvent = !1, t.preventDefault(); 40998 break; 40999 41000 case "click": 41001 case "focus": 41002 return u.validationEvent ? (u.validationEvent = !1, e.blur(), (0, s.HandleNativePlaceholder)(e, (u.isRTL ? o.getBufferTemplate.call(u).slice().reverse() : o.getBufferTemplate.call(u)).join("")), 41003 setTimeout((function() { 41004 e.focus(); 41005 }), f.validationEventTimeOut), !1) : (l = arguments, void setTimeout((function() { 41006 e.inputmask && i.apply(c, l); 41007 }), 0)); 41008 } 41009 var p = i.apply(c, arguments); 41010 return !1 === p && (t.preventDefault(), t.stopPropagation()), p; 41011 } 41012 t.preventDefault(); 41013 } 41014 }; 41015 [ "submit", "reset" ].includes(t) ? (l = l.bind(e), null !== e.form && n(e.form).on(t, l)) : n(e).on(t, l), 41016 e.inputmask.events[t] = e.inputmask.events[t] || [], e.inputmask.events[t].push(l); 41017 }, 41018 off: function(e, t) { 41019 if (e.inputmask && e.inputmask.events) { 41020 var i = e.inputmask.dependencyLib, n = e.inputmask.events; 41021 for (var a in t && ((n = [])[t] = e.inputmask.events[t]), n) { 41022 for (var r = n[a]; r.length > 0; ) { 41023 var o = r.pop(); 41024 [ "submit", "reset" ].includes(a) ? null !== e.form && i(e.form).off(a, o) : i(e).off(a, o); 41025 } 41026 delete e.inputmask.events[a]; 41027 } 41028 } 41029 } 41030 }; 41031 t.EventRuler = l; 41032 }, 41033 219: function(e, t, i) { 41034 var n = d(i(2394)), a = i(2839), r = d(i(7184)), o = i(8711), s = i(4713); 41035 function l(e, t) { 41036 return function(e) { 41037 if (Array.isArray(e)) return e; 41038 }(e) || function(e, t) { 41039 var i = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; 41040 if (null != i) { 41041 var n, a, r, o, s = [], l = !0, c = !1; 41042 try { 41043 if (r = (i = i.call(e)).next, 0 === t) { 41044 if (Object(i) !== i) return; 41045 l = !1; 41046 } else for (;!(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0) ; 41047 } catch (e) { 41048 c = !0, a = e; 41049 } finally { 41050 try { 41051 if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return; 41052 } finally { 41053 if (c) throw a; 41054 } 41055 } 41056 return s; 41057 } 41058 }(e, t) || function(e, t) { 41059 if (!e) return; 41060 if ("string" == typeof e) return c(e, t); 41061 var i = Object.prototype.toString.call(e).slice(8, -1); 41062 "Object" === i && e.constructor && (i = e.constructor.name); 41063 if ("Map" === i || "Set" === i) return Array.from(e); 41064 if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return c(e, t); 41065 }(e, t) || function() { 41066 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 41067 }(); 41068 } 41069 function c(e, t) { 41070 (null == t || t > e.length) && (t = e.length); 41071 for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i]; 41072 return n; 41073 } 41074 function u(e) { 41075 return u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { 41076 return typeof e; 41077 } : function(e) { 41078 return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; 41079 }, u(e); 41080 } 41081 function f(e, t) { 41082 for (var i = 0; i < t.length; i++) { 41083 var n = t[i]; 41084 n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), 41085 Object.defineProperty(e, (a = n.key, r = void 0, r = function(e, t) { 41086 if ("object" !== u(e) || null === e) return e; 41087 var i = e[Symbol.toPrimitive]; 41088 if (void 0 !== i) { 41089 var n = i.call(e, t || "default"); 41090 if ("object" !== u(n)) return n; 41091 throw new TypeError("@@toPrimitive must return a primitive value."); 41092 } 41093 return ("string" === t ? String : Number)(e); 41094 }(a, "string"), "symbol" === u(r) ? r : String(r)), n); 41095 } 41096 var a, r; 41097 } 41098 function d(e) { 41099 return e && e.__esModule ? e : { 41100 default: e 41101 }; 41102 } 41103 var p = n.default.dependencyLib, h = function() { 41104 function e(t, i, n) { 41105 !function(e, t) { 41106 if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); 41107 }(this, e), this.mask = t, this.format = i, this.opts = n, this._date = new Date(1, 0, 1), 41108 this.initDateObject(t, this.opts); 41109 } 41110 var t, i, n; 41111 return t = e, (i = [ { 41112 key: "date", 41113 get: function() { 41114 return void 0 === this._date && (this._date = new Date(1, 0, 1), this.initDateObject(void 0, this.opts)), 41115 this._date; 41116 } 41117 }, { 41118 key: "initDateObject", 41119 value: function(e, t) { 41120 var i; 41121 for (P(t).lastIndex = 0; i = P(t).exec(this.format); ) { 41122 var n = new RegExp("\\d+$").exec(i[0]), a = n ? i[0][0] + "x" : i[0], r = void 0; 41123 if (void 0 !== e) { 41124 if (n) { 41125 var o = P(t).lastIndex, s = E(i.index, t); 41126 P(t).lastIndex = o, r = e.slice(0, e.indexOf(s.nextMatch[0])); 41127 } else r = e.slice(0, g[a] && g[a][4] || a.length); 41128 e = e.slice(r.length); 41129 } 41130 Object.prototype.hasOwnProperty.call(g, a) && this.setValue(this, r, a, g[a][2], g[a][1]); 41131 } 41132 } 41133 }, { 41134 key: "setValue", 41135 value: function(e, t, i, n, a) { 41136 if (void 0 !== t && (e[n] = "ampm" === n ? t : t.replace(/[^0-9]/g, "0"), e["raw" + n] = t.replace(/\s/g, "_")), 41137 void 0 !== a) { 41138 var r = e[n]; 41139 ("day" === n && 29 === parseInt(r) || "month" === n && 2 === parseInt(r)) && (29 !== parseInt(e.day) || 2 !== parseInt(e.month) || "" !== e.year && void 0 !== e.year || e._date.setFullYear(2012, 1, 29)), 41140 "day" === n && (m = !0, 0 === parseInt(r) && (r = 1)), "month" === n && (m = !0), 41141 "year" === n && (m = !0, r.length < 4 && (r = M(r, 4, !0))), "" === r || isNaN(r) || a.call(e._date, r), 41142 "ampm" === n && a.call(e._date, r); 41143 } 41144 } 41145 }, { 41146 key: "reset", 41147 value: function() { 41148 this._date = new Date(1, 0, 1); 41149 } 41150 }, { 41151 key: "reInit", 41152 value: function() { 41153 this._date = void 0, this.date; 41154 } 41155 } ]) && f(t.prototype, i), n && f(t, n), Object.defineProperty(t, "prototype", { 41156 writable: !1 41157 }), e; 41158 }(), v = (new Date).getFullYear(), m = !1, g = { 41159 d: [ "[1-9]|[12][0-9]|3[01]", Date.prototype.setDate, "day", Date.prototype.getDate ], 41160 dd: [ "0[1-9]|[12][0-9]|3[01]", Date.prototype.setDate, "day", function() { 41161 return M(Date.prototype.getDate.call(this), 2); 41162 } ], 41163 ddd: [ "" ], 41164 dddd: [ "" ], 41165 m: [ "[1-9]|1[012]", function(e) { 41166 var t = e ? parseInt(e) : 0; 41167 return t > 0 && t--, Date.prototype.setMonth.call(this, t); 41168 }, "month", function() { 41169 return Date.prototype.getMonth.call(this) + 1; 41170 } ], 41171 mm: [ "0[1-9]|1[012]", function(e) { 41172 var t = e ? parseInt(e) : 0; 41173 return t > 0 && t--, Date.prototype.setMonth.call(this, t); 41174 }, "month", function() { 41175 return M(Date.prototype.getMonth.call(this) + 1, 2); 41176 } ], 41177 mmm: [ "" ], 41178 mmmm: [ "" ], 41179 yy: [ "[0-9]{2}", Date.prototype.setFullYear, "year", function() { 41180 return M(Date.prototype.getFullYear.call(this), 2); 41181 } ], 41182 yyyy: [ "[0-9]{4}", Date.prototype.setFullYear, "year", function() { 41183 return M(Date.prototype.getFullYear.call(this), 4); 41184 } ], 41185 h: [ "[1-9]|1[0-2]", Date.prototype.setHours, "hours", Date.prototype.getHours ], 41186 hh: [ "0[1-9]|1[0-2]", Date.prototype.setHours, "hours", function() { 41187 return M(Date.prototype.getHours.call(this), 2); 41188 } ], 41189 hx: [ function(e) { 41190 return "[0-9]{".concat(e, "}"); 41191 }, Date.prototype.setHours, "hours", function(e) { 41192 return Date.prototype.getHours; 41193 } ], 41194 H: [ "1?[0-9]|2[0-3]", Date.prototype.setHours, "hours", Date.prototype.getHours ], 41195 HH: [ "0[0-9]|1[0-9]|2[0-3]", Date.prototype.setHours, "hours", function() { 41196 return M(Date.prototype.getHours.call(this), 2); 41197 } ], 41198 Hx: [ function(e) { 41199 return "[0-9]{".concat(e, "}"); 41200 }, Date.prototype.setHours, "hours", function(e) { 41201 return function() { 41202 return M(Date.prototype.getHours.call(this), e); 41203 }; 41204 } ], 41205 M: [ "[1-5]?[0-9]", Date.prototype.setMinutes, "minutes", Date.prototype.getMinutes ], 41206 MM: [ "0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]", Date.prototype.setMinutes, "minutes", function() { 41207 return M(Date.prototype.getMinutes.call(this), 2); 41208 } ], 41209 s: [ "[1-5]?[0-9]", Date.prototype.setSeconds, "seconds", Date.prototype.getSeconds ], 41210 ss: [ "0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]", Date.prototype.setSeconds, "seconds", function() { 41211 return M(Date.prototype.getSeconds.call(this), 2); 41212 } ], 41213 l: [ "[0-9]{3}", Date.prototype.setMilliseconds, "milliseconds", function() { 41214 return M(Date.prototype.getMilliseconds.call(this), 3); 41215 }, 3 ], 41216 L: [ "[0-9]{2}", Date.prototype.setMilliseconds, "milliseconds", function() { 41217 return M(Date.prototype.getMilliseconds.call(this), 2); 41218 }, 2 ], 41219 t: [ "[ap]", k, "ampm", b, 1 ], 41220 tt: [ "[ap]m", k, "ampm", b, 2 ], 41221 T: [ "[AP]", k, "ampm", b, 1 ], 41222 TT: [ "[AP]M", k, "ampm", b, 2 ], 41223 Z: [ ".*", void 0, "Z", function() { 41224 var e = this.toString().match(/\((.+)\)/)[1]; 41225 e.includes(" ") && (e = (e = e.replace("-", " ").toUpperCase()).split(" ").map((function(e) { 41226 return l(e, 1)[0]; 41227 })).join("")); 41228 return e; 41229 } ], 41230 o: [ "" ], 41231 S: [ "" ] 41232 }, y = { 41233 isoDate: "yyyy-mm-dd", 41234 isoTime: "HH:MM:ss", 41235 isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", 41236 isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" 41237 }; 41238 function k(e) { 41239 var t = this.getHours(); 41240 e.toLowerCase().includes("p") ? this.setHours(t + 12) : e.toLowerCase().includes("a") && t >= 12 && this.setHours(t - 12); 41241 } 41242 function b() { 41243 var e = this.getHours(); 41244 return (e = e || 12) >= 12 ? "PM" : "AM"; 41245 } 41246 function x(e) { 41247 var t = new RegExp("\\d+$").exec(e[0]); 41248 if (t && void 0 !== t[0]) { 41249 var i = g[e[0][0] + "x"].slice(""); 41250 return i[0] = i[0](t[0]), i[3] = i[3](t[0]), i; 41251 } 41252 if (g[e[0]]) return g[e[0]]; 41253 } 41254 function P(e) { 41255 if (!e.tokenizer) { 41256 var t = [], i = []; 41257 for (var n in g) if (/\.*x$/.test(n)) { 41258 var a = n[0] + "\\d+"; 41259 -1 === i.indexOf(a) && i.push(a); 41260 } else -1 === t.indexOf(n[0]) && t.push(n[0]); 41261 e.tokenizer = "(" + (i.length > 0 ? i.join("|") + "|" : "") + t.join("+|") + ")+?|.", 41262 e.tokenizer = new RegExp(e.tokenizer, "g"); 41263 } 41264 return e.tokenizer; 41265 } 41266 function w(e, t, i) { 41267 if (!m) return !0; 41268 if (void 0 === e.rawday || !isFinite(e.rawday) && new Date(e.date.getFullYear(), isFinite(e.rawmonth) ? e.month : e.date.getMonth() + 1, 0).getDate() >= e.day || "29" == e.day && (!isFinite(e.rawyear) || void 0 === e.rawyear || "" === e.rawyear) || new Date(e.date.getFullYear(), isFinite(e.rawmonth) ? e.month : e.date.getMonth() + 1, 0).getDate() >= e.day) return t; 41269 if ("29" == e.day) { 41270 var n = E(t.pos, i); 41271 if ("yyyy" === n.targetMatch[0] && t.pos - n.targetMatchIndex == 2) return t.remove = t.pos + 1, 41272 t; 41273 } else if ("02" == e.month && "30" == e.day && void 0 !== t.c) return e.day = "03", 41274 e.date.setDate(3), e.date.setMonth(1), t.insert = [ { 41275 pos: t.pos, 41276 c: "0" 41277 }, { 41278 pos: t.pos + 1, 41279 c: t.c 41280 } ], t.caret = o.seekNext.call(this, t.pos + 1), t; 41281 return !1; 41282 } 41283 function S(e, t, i, n) { 41284 var a, o, s = ""; 41285 for (P(i).lastIndex = 0; a = P(i).exec(e); ) { 41286 if (void 0 === t) if (o = x(a)) s += "(" + o[0] + ")"; else switch (a[0]) { 41287 case "[": 41288 s += "("; 41289 break; 41290 41291 case "]": 41292 s += ")?"; 41293 break; 41294 41295 default: 41296 s += (0, r.default)(a[0]); 41297 } else if (o = x(a)) if (!0 !== n && o[3]) s += o[3].call(t.date); else o[2] ? s += t["raw" + o[2]] : s += a[0]; else s += a[0]; 41298 } 41299 return s; 41300 } 41301 function M(e, t, i) { 41302 for (e = String(e), t = t || 2; e.length < t; ) e = i ? e + "0" : "0" + e; 41303 return e; 41304 } 41305 function _(e, t, i) { 41306 return "string" == typeof e ? new h(e, t, i) : e && "object" === u(e) && Object.prototype.hasOwnProperty.call(e, "date") ? e : void 0; 41307 } 41308 function O(e, t) { 41309 return S(t.inputFormat, { 41310 date: e 41311 }, t); 41312 } 41313 function E(e, t) { 41314 var i, n, a = 0, r = 0; 41315 for (P(t).lastIndex = 0; n = P(t).exec(t.inputFormat); ) { 41316 var o = new RegExp("\\d+$").exec(n[0]); 41317 if ((a += r = o ? parseInt(o[0]) : n[0].length) >= e + 1) { 41318 i = n, n = P(t).exec(t.inputFormat); 41319 break; 41320 } 41321 } 41322 return { 41323 targetMatchIndex: a - r, 41324 nextMatch: n, 41325 targetMatch: i 41326 }; 41327 } 41328 n.default.extendAliases({ 41329 datetime: { 41330 mask: function(e) { 41331 return e.numericInput = !1, g.S = e.i18n.ordinalSuffix.join("|"), e.inputFormat = y[e.inputFormat] || e.inputFormat, 41332 e.displayFormat = y[e.displayFormat] || e.displayFormat || e.inputFormat, e.outputFormat = y[e.outputFormat] || e.outputFormat || e.inputFormat, 41333 e.placeholder = "" !== e.placeholder ? e.placeholder : e.inputFormat.replace(/[[\]]/, ""), 41334 e.regex = S(e.inputFormat, void 0, e), e.min = _(e.min, e.inputFormat, e), e.max = _(e.max, e.inputFormat, e), 41335 null; 41336 }, 41337 placeholder: "", 41338 inputFormat: "isoDateTime", 41339 displayFormat: null, 41340 outputFormat: null, 41341 min: null, 41342 max: null, 41343 skipOptionalPartCharacter: "", 41344 i18n: { 41345 dayNames: [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ], 41346 monthNames: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], 41347 ordinalSuffix: [ "st", "nd", "rd", "th" ] 41348 }, 41349 preValidation: function(e, t, i, n, a, r, o, s) { 41350 if (s) return !0; 41351 if (isNaN(i) && e[t] !== i) { 41352 var l = E(t, a); 41353 if (l.nextMatch && l.nextMatch[0] === i && l.targetMatch[0].length > 1) { 41354 var c = g[l.targetMatch[0]][0]; 41355 if (new RegExp(c).test("0" + e[t - 1])) return e[t] = e[t - 1], e[t - 1] = "0", 41356 { 41357 fuzzy: !0, 41358 buffer: e, 41359 refreshFromBuffer: { 41360 start: t - 1, 41361 end: t + 1 41362 }, 41363 pos: t + 1 41364 }; 41365 } 41366 } 41367 return !0; 41368 }, 41369 postValidation: function(e, t, i, n, a, r, o, l) { 41370 var c, u; 41371 if (o) return !0; 41372 if (!1 === n && (((c = E(t + 1, a)).targetMatch && c.targetMatchIndex === t && c.targetMatch[0].length > 1 && void 0 !== g[c.targetMatch[0]] || (c = E(t + 2, a)).targetMatch && c.targetMatchIndex === t + 1 && c.targetMatch[0].length > 1 && void 0 !== g[c.targetMatch[0]]) && (u = g[c.targetMatch[0]][0]), 41373 void 0 !== u && (void 0 !== r.validPositions[t + 1] && new RegExp(u).test(i + "0") ? (e[t] = i, 41374 e[t + 1] = "0", n = { 41375 pos: t + 2, 41376 caret: t 41377 }) : new RegExp(u).test("0" + i) && (e[t] = "0", e[t + 1] = i, n = { 41378 pos: t + 2 41379 })), !1 === n)) return n; 41380 if (n.fuzzy && (e = n.buffer, t = n.pos), (c = E(t, a)).targetMatch && c.targetMatch[0] && void 0 !== g[c.targetMatch[0]]) { 41381 var f = g[c.targetMatch[0]]; 41382 u = f[0]; 41383 var d = e.slice(c.targetMatchIndex, c.targetMatchIndex + c.targetMatch[0].length); 41384 if (!1 === new RegExp(u).test(d.join("")) && 2 === c.targetMatch[0].length && r.validPositions[c.targetMatchIndex] && r.validPositions[c.targetMatchIndex + 1] && (r.validPositions[c.targetMatchIndex + 1].input = "0"), 41385 "year" == f[2]) for (var p = s.getMaskTemplate.call(this, !1, 1, void 0, !0), h = t + 1; h < e.length; h++) e[h] = p[h], 41386 delete r.validPositions[h]; 41387 } 41388 var m = n, y = _(e.join(""), a.inputFormat, a); 41389 return m && !isNaN(y.date.getTime()) && (a.prefillYear && (m = function(e, t, i) { 41390 if (e.year !== e.rawyear) { 41391 var n = v.toString(), a = e.rawyear.replace(/[^0-9]/g, ""), r = n.slice(0, a.length), o = n.slice(a.length); 41392 if (2 === a.length && a === r) { 41393 var s = new Date(v, e.month - 1, e.day); 41394 e.day == s.getDate() && (!i.max || i.max.date.getTime() >= s.getTime()) && (e.date.setFullYear(v), 41395 e.year = n, t.insert = [ { 41396 pos: t.pos + 1, 41397 c: o[0] 41398 }, { 41399 pos: t.pos + 2, 41400 c: o[1] 41401 } ]); 41402 } 41403 } 41404 return t; 41405 }(y, m, a)), m = function(e, t, i, n, a) { 41406 if (!t) return t; 41407 if (t && i.min && !isNaN(i.min.date.getTime())) { 41408 var r; 41409 for (e.reset(), P(i).lastIndex = 0; r = P(i).exec(i.inputFormat); ) { 41410 var o; 41411 if ((o = x(r)) && o[3]) { 41412 for (var s = o[1], l = e[o[2]], c = i.min[o[2]], u = i.max ? i.max[o[2]] : c, f = [], d = !1, p = 0; p < c.length; p++) void 0 !== n.validPositions[p + r.index] || d ? (f[p] = l[p], 41413 d = d || l[p] > c[p]) : (f[p] = c[p], "year" === o[2] && l.length - 1 == p && c != u && (f = (parseInt(f.join("")) + 1).toString().split("")), 41414 "ampm" === o[2] && c != u && i.min.date.getTime() > e.date.getTime() && (f[p] = u[p])); 41415 s.call(e._date, f.join("")); 41416 } 41417 } 41418 t = i.min.date.getTime() <= e.date.getTime(), e.reInit(); 41419 } 41420 return t && i.max && (isNaN(i.max.date.getTime()) || (t = i.max.date.getTime() >= e.date.getTime())), 41421 t; 41422 }(y, m = w.call(this, y, m, a), a, r)), void 0 !== t && m && n.pos !== t ? { 41423 buffer: S(a.inputFormat, y, a).split(""), 41424 refreshFromBuffer: { 41425 start: t, 41426 end: n.pos 41427 }, 41428 pos: n.caret || n.pos 41429 } : m; 41430 }, 41431 onKeyDown: function(e, t, i, n) { 41432 e.ctrlKey && e.key === a.keys.ArrowRight && (this.inputmask._valueSet(O(new Date, n)), 41433 p(this).trigger("setvalue")); 41434 }, 41435 onUnMask: function(e, t, i) { 41436 return t ? S(i.outputFormat, _(e, i.inputFormat, i), i, !0) : t; 41437 }, 41438 casing: function(e, t, i, n) { 41439 return 0 == t.nativeDef.indexOf("[ap]") ? e.toLowerCase() : 0 == t.nativeDef.indexOf("[AP]") ? e.toUpperCase() : e; 41440 }, 41441 onBeforeMask: function(e, t) { 41442 return "[object Date]" === Object.prototype.toString.call(e) && (e = O(e, t)), e; 41443 }, 41444 insertMode: !1, 41445 insertModeVisual: !1, 41446 shiftPositions: !1, 41447 keepStatic: !1, 41448 inputmode: "numeric", 41449 prefillYear: !0 41450 } 41451 }); 41452 }, 41453 3851: function(e, t, i) { 41454 var n, a = (n = i(2394)) && n.__esModule ? n : { 41455 default: n 41456 }, r = i(8711), o = i(4713); 41457 a.default.extendDefinitions({ 41458 A: { 41459 validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", 41460 casing: "upper" 41461 }, 41462 "&": { 41463 validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", 41464 casing: "upper" 41465 }, 41466 "#": { 41467 validator: "[0-9A-Fa-f]", 41468 casing: "upper" 41469 } 41470 }); 41471 var s = new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]"); 41472 function l(e, t, i, n, a) { 41473 return i - 1 > -1 && "." !== t.buffer[i - 1] ? (e = t.buffer[i - 1] + e, e = i - 2 > -1 && "." !== t.buffer[i - 2] ? t.buffer[i - 2] + e : "0" + e) : e = "00" + e, 41474 s.test(e); 41475 } 41476 a.default.extendAliases({ 41477 cssunit: { 41478 regex: "[+-]?[0-9]+\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)" 41479 }, 41480 url: { 41481 regex: "(https?|ftp)://.*", 41482 autoUnmask: !1, 41483 keepStatic: !1, 41484 tabThrough: !0 41485 }, 41486 ip: { 41487 mask: "i{1,3}.j{1,3}.k{1,3}.l{1,3}", 41488 definitions: { 41489 i: { 41490 validator: l 41491 }, 41492 j: { 41493 validator: l 41494 }, 41495 k: { 41496 validator: l 41497 }, 41498 l: { 41499 validator: l 41500 } 41501 }, 41502 onUnMask: function(e, t, i) { 41503 return e; 41504 }, 41505 inputmode: "decimal", 41506 substitutes: { 41507 ",": "." 41508 } 41509 }, 41510 email: { 41511 mask: function(e) { 41512 var t = e.separator, i = e.quantifier, n = "*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]", a = n; 41513 if (t) for (var r = 0; r < i; r++) a += "[".concat(t).concat(n, "]"); 41514 return a; 41515 }, 41516 greedy: !1, 41517 casing: "lower", 41518 separator: null, 41519 quantifier: 5, 41520 skipOptionalPartCharacter: "", 41521 onBeforePaste: function(e, t) { 41522 return (e = e.toLowerCase()).replace("mailto:", ""); 41523 }, 41524 definitions: { 41525 "*": { 41526 validator: "[0-9\uff11-\uff19A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5!#$%&'*+/=?^_`{|}~-]" 41527 }, 41528 "-": { 41529 validator: "[0-9A-Za-z-]" 41530 } 41531 }, 41532 onUnMask: function(e, t, i) { 41533 return e; 41534 }, 41535 inputmode: "email" 41536 }, 41537 mac: { 41538 mask: "##:##:##:##:##:##" 41539 }, 41540 vin: { 41541 mask: "V{13}9{4}", 41542 definitions: { 41543 V: { 41544 validator: "[A-HJ-NPR-Za-hj-npr-z\\d]", 41545 casing: "upper" 41546 } 41547 }, 41548 clearIncomplete: !0, 41549 autoUnmask: !0 41550 }, 41551 ssn: { 41552 mask: "999-99-9999", 41553 postValidation: function(e, t, i, n, a, s, l) { 41554 var c = o.getMaskTemplate.call(this, !0, r.getLastValidPosition.call(this), !0, !0); 41555 return /^(?!219-09-9999|078-05-1120)(?!666|000|9.{2}).{3}-(?!00).{2}-(?!0{4}).{4}$/.test(c.join("")); 41556 } 41557 } 41558 }); 41559 }, 41560 207: function(e, t, i) { 41561 var n = s(i(2394)), a = s(i(7184)), r = i(8711), o = i(2839); 41562 function s(e) { 41563 return e && e.__esModule ? e : { 41564 default: e 41565 }; 41566 } 41567 var l = n.default.dependencyLib; 41568 function c(e, t) { 41569 for (var i = "", a = 0; a < e.length; a++) n.default.prototype.definitions[e.charAt(a)] || t.definitions[e.charAt(a)] || t.optionalmarker[0] === e.charAt(a) || t.optionalmarker[1] === e.charAt(a) || t.quantifiermarker[0] === e.charAt(a) || t.quantifiermarker[1] === e.charAt(a) || t.groupmarker[0] === e.charAt(a) || t.groupmarker[1] === e.charAt(a) || t.alternatormarker === e.charAt(a) ? i += "\\" + e.charAt(a) : i += e.charAt(a); 41570 return i; 41571 } 41572 function u(e, t, i, n) { 41573 if (e.length > 0 && t > 0 && (!i.digitsOptional || n)) { 41574 var a = e.indexOf(i.radixPoint), r = !1; 41575 i.negationSymbol.back === e[e.length - 1] && (r = !0, e.length--), -1 === a && (e.push(i.radixPoint), 41576 a = e.length - 1); 41577 for (var o = 1; o <= t; o++) isFinite(e[a + o]) || (e[a + o] = "0"); 41578 } 41579 return r && e.push(i.negationSymbol.back), e; 41580 } 41581 function f(e, t) { 41582 var i = 0; 41583 for (var n in "+" === e && (i = r.seekNext.call(this, t.validPositions.length - 1)), 41584 t.tests) if ((n = parseInt(n)) >= i) for (var a = 0, o = t.tests[n].length; a < o; a++) if ((void 0 === t.validPositions[n] || "-" === e) && t.tests[n][a].match.def === e) return n + (void 0 !== t.validPositions[n] && "-" !== e ? 1 : 0); 41585 return i; 41586 } 41587 function d(e, t) { 41588 for (var i = -1, n = 0, a = t.validPositions.length; n < a; n++) { 41589 var r = t.validPositions[n]; 41590 if (r && r.match.def === e) { 41591 i = n; 41592 break; 41593 } 41594 } 41595 return i; 41596 } 41597 function p(e, t, i, n, a) { 41598 var r = t.buffer ? t.buffer.indexOf(a.radixPoint) : -1, o = (-1 !== r || n && a.jitMasking) && new RegExp(a.definitions[9].validator).test(e); 41599 return a._radixDance && -1 !== r && o && null == t.validPositions[r] ? { 41600 insert: { 41601 pos: r === i ? r + 1 : r, 41602 c: a.radixPoint 41603 }, 41604 pos: i 41605 } : o; 41606 } 41607 n.default.extendAliases({ 41608 numeric: { 41609 mask: function(e) { 41610 e.repeat = 0, e.groupSeparator === e.radixPoint && e.digits && "0" !== e.digits && ("." === e.radixPoint ? e.groupSeparator = "," : "," === e.radixPoint ? e.groupSeparator = "." : e.groupSeparator = ""), 41611 " " === e.groupSeparator && (e.skipOptionalPartCharacter = void 0), e.placeholder.length > 1 && (e.placeholder = e.placeholder.charAt(0)), 41612 "radixFocus" === e.positionCaretOnClick && "" === e.placeholder && (e.positionCaretOnClick = "lvp"); 41613 var t = "0", i = e.radixPoint; 41614 !0 === e.numericInput && void 0 === e.__financeInput ? (t = "1", e.positionCaretOnClick = "radixFocus" === e.positionCaretOnClick ? "lvp" : e.positionCaretOnClick, 41615 e.digitsOptional = !1, isNaN(e.digits) && (e.digits = 2), e._radixDance = !1, i = "," === e.radixPoint ? "?" : "!", 41616 "" !== e.radixPoint && void 0 === e.definitions[i] && (e.definitions[i] = {}, e.definitions[i].validator = "[" + e.radixPoint + "]", 41617 e.definitions[i].placeholder = e.radixPoint, e.definitions[i].static = !0, e.definitions[i].generated = !0)) : (e.__financeInput = !1, 41618 e.numericInput = !0); 41619 var n, r = "[+]"; 41620 if (r += c(e.prefix, e), "" !== e.groupSeparator ? (void 0 === e.definitions[e.groupSeparator] && (e.definitions[e.groupSeparator] = {}, 41621 e.definitions[e.groupSeparator].validator = "[" + e.groupSeparator + "]", e.definitions[e.groupSeparator].placeholder = e.groupSeparator, 41622 e.definitions[e.groupSeparator].static = !0, e.definitions[e.groupSeparator].generated = !0), 41623 r += e._mask(e)) : r += "9{+}", void 0 !== e.digits && 0 !== e.digits) { 41624 var o = e.digits.toString().split(","); 41625 isFinite(o[0]) && o[1] && isFinite(o[1]) ? r += i + t + "{" + e.digits + "}" : (isNaN(e.digits) || parseInt(e.digits) > 0) && (e.digitsOptional || e.jitMasking ? (n = r + i + t + "{0," + e.digits + "}", 41626 e.keepStatic = !0) : r += i + t + "{" + e.digits + "}"); 41627 } else e.inputmode = "numeric"; 41628 return r += c(e.suffix, e), r += "[-]", n && (r = [ n + c(e.suffix, e) + "[-]", r ]), 41629 e.greedy = !1, function(e) { 41630 void 0 === e.parseMinMaxOptions && (null !== e.min && (e.min = e.min.toString().replace(new RegExp((0, 41631 a.default)(e.groupSeparator), "g"), ""), "," === e.radixPoint && (e.min = e.min.replace(e.radixPoint, ".")), 41632 e.min = isFinite(e.min) ? parseFloat(e.min) : NaN, isNaN(e.min) && (e.min = Number.MIN_VALUE)), 41633 null !== e.max && (e.max = e.max.toString().replace(new RegExp((0, a.default)(e.groupSeparator), "g"), ""), 41634 "," === e.radixPoint && (e.max = e.max.replace(e.radixPoint, ".")), e.max = isFinite(e.max) ? parseFloat(e.max) : NaN, 41635 isNaN(e.max) && (e.max = Number.MAX_VALUE)), e.parseMinMaxOptions = "done"); 41636 }(e), "" !== e.radixPoint && e.substituteRadixPoint && (e.substitutes["." == e.radixPoint ? "," : "."] = e.radixPoint), 41637 r; 41638 }, 41639 _mask: function(e) { 41640 return "(" + e.groupSeparator + "999){+|1}"; 41641 }, 41642 digits: "*", 41643 digitsOptional: !0, 41644 enforceDigitsOnBlur: !1, 41645 radixPoint: ".", 41646 positionCaretOnClick: "radixFocus", 41647 _radixDance: !0, 41648 groupSeparator: "", 41649 allowMinus: !0, 41650 negationSymbol: { 41651 front: "-", 41652 back: "" 41653 }, 41654 prefix: "", 41655 suffix: "", 41656 min: null, 41657 max: null, 41658 SetMaxOnOverflow: !1, 41659 step: 1, 41660 inputType: "text", 41661 unmaskAsNumber: !1, 41662 roundingFN: Math.round, 41663 inputmode: "decimal", 41664 shortcuts: { 41665 k: "1000", 41666 m: "1000000" 41667 }, 41668 placeholder: "0", 41669 greedy: !1, 41670 rightAlign: !0, 41671 insertMode: !0, 41672 autoUnmask: !1, 41673 skipOptionalPartCharacter: "", 41674 usePrototypeDefinitions: !1, 41675 stripLeadingZeroes: !0, 41676 substituteRadixPoint: !0, 41677 definitions: { 41678 0: { 41679 validator: p 41680 }, 41681 1: { 41682 validator: p, 41683 definitionSymbol: "9" 41684 }, 41685 9: { 41686 validator: "[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]", 41687 definitionSymbol: "*" 41688 }, 41689 "+": { 41690 validator: function(e, t, i, n, a) { 41691 return a.allowMinus && ("-" === e || e === a.negationSymbol.front); 41692 } 41693 }, 41694 "-": { 41695 validator: function(e, t, i, n, a) { 41696 return a.allowMinus && e === a.negationSymbol.back; 41697 } 41698 } 41699 }, 41700 preValidation: function(e, t, i, n, a, r, o, s) { 41701 if (!1 !== a.__financeInput && i === a.radixPoint) return !1; 41702 var l = e.indexOf(a.radixPoint), c = t; 41703 if (t = function(e, t, i, n, a) { 41704 return a._radixDance && a.numericInput && t !== a.negationSymbol.back && e <= i && (i > 0 || t == a.radixPoint) && (void 0 === n.validPositions[e - 1] || n.validPositions[e - 1].input !== a.negationSymbol.back) && (e -= 1), 41705 e; 41706 }(t, i, l, r, a), "-" === i || i === a.negationSymbol.front) { 41707 if (!0 !== a.allowMinus) return !1; 41708 var u = !1, p = d("+", r), h = d("-", r); 41709 return -1 !== p && (u = [ p, h ]), !1 !== u ? { 41710 remove: u, 41711 caret: c - a.negationSymbol.back.length 41712 } : { 41713 insert: [ { 41714 pos: f.call(this, "+", r), 41715 c: a.negationSymbol.front, 41716 fromIsValid: !0 41717 }, { 41718 pos: f.call(this, "-", r), 41719 c: a.negationSymbol.back, 41720 fromIsValid: void 0 41721 } ], 41722 caret: c + a.negationSymbol.back.length 41723 }; 41724 } 41725 if (i === a.groupSeparator) return { 41726 caret: c 41727 }; 41728 if (s) return !0; 41729 if (-1 !== l && !0 === a._radixDance && !1 === n && i === a.radixPoint && void 0 !== a.digits && (isNaN(a.digits) || parseInt(a.digits) > 0) && l !== t) return { 41730 caret: a._radixDance && t === l - 1 ? l + 1 : l 41731 }; 41732 if (!1 === a.__financeInput) if (n) { 41733 if (a.digitsOptional) return { 41734 rewritePosition: o.end 41735 }; 41736 if (!a.digitsOptional) { 41737 if (o.begin > l && o.end <= l) return i === a.radixPoint ? { 41738 insert: { 41739 pos: l + 1, 41740 c: "0", 41741 fromIsValid: !0 41742 }, 41743 rewritePosition: l 41744 } : { 41745 rewritePosition: l + 1 41746 }; 41747 if (o.begin < l) return { 41748 rewritePosition: o.begin - 1 41749 }; 41750 } 41751 } else if (!a.showMaskOnHover && !a.showMaskOnFocus && !a.digitsOptional && a.digits > 0 && "" === this.__valueGet.call(this.el)) return { 41752 rewritePosition: l 41753 }; 41754 return { 41755 rewritePosition: t 41756 }; 41757 }, 41758 postValidation: function(e, t, i, n, a, r, o) { 41759 if (!1 === n) return n; 41760 if (o) return !0; 41761 if (null !== a.min || null !== a.max) { 41762 var s = a.onUnMask(e.slice().reverse().join(""), void 0, l.extend({}, a, { 41763 unmaskAsNumber: !0 41764 })); 41765 if (null !== a.min && s < a.min && (s.toString().length > a.min.toString().length || s < 0)) return !1; 41766 if (null !== a.max && s > a.max) return !!a.SetMaxOnOverflow && { 41767 refreshFromBuffer: !0, 41768 buffer: u(a.max.toString().replace(".", a.radixPoint).split(""), a.digits, a).reverse() 41769 }; 41770 } 41771 return n; 41772 }, 41773 onUnMask: function(e, t, i) { 41774 if ("" === t && !0 === i.nullable) return t; 41775 var n = e.replace(i.prefix, ""); 41776 return n = (n = n.replace(i.suffix, "")).replace(new RegExp((0, a.default)(i.groupSeparator), "g"), ""), 41777 "" !== i.placeholder.charAt(0) && (n = n.replace(new RegExp(i.placeholder.charAt(0), "g"), "0")), 41778 i.unmaskAsNumber ? ("" !== i.radixPoint && -1 !== n.indexOf(i.radixPoint) && (n = n.replace(a.default.call(this, i.radixPoint), ".")), 41779 n = (n = n.replace(new RegExp("^" + (0, a.default)(i.negationSymbol.front)), "-")).replace(new RegExp((0, 41780 a.default)(i.negationSymbol.back) + "$"), ""), Number(n)) : n; 41781 }, 41782 isComplete: function(e, t) { 41783 var i = (t.numericInput ? e.slice().reverse() : e).join(""); 41784 return i = (i = (i = (i = (i = i.replace(new RegExp("^" + (0, a.default)(t.negationSymbol.front)), "-")).replace(new RegExp((0, 41785 a.default)(t.negationSymbol.back) + "$"), "")).replace(t.prefix, "")).replace(t.suffix, "")).replace(new RegExp((0, 41786 a.default)(t.groupSeparator) + "([0-9]{3})", "g"), "$1"), "," === t.radixPoint && (i = i.replace((0, 41787 a.default)(t.radixPoint), ".")), isFinite(i); 41788 }, 41789 onBeforeMask: function(e, t) { 41790 var i = t.radixPoint || ","; 41791 isFinite(t.digits) && (t.digits = parseInt(t.digits)), "number" != typeof e && "number" !== t.inputType || "" === i || (e = e.toString().replace(".", i)); 41792 var n = "-" === e.charAt(0) || e.charAt(0) === t.negationSymbol.front, r = e.split(i), o = r[0].replace(/[^\-0-9]/g, ""), s = r.length > 1 ? r[1].replace(/[^0-9]/g, "") : "", l = r.length > 1; 41793 e = o + ("" !== s ? i + s : s); 41794 var c = 0; 41795 if ("" !== i && (c = t.digitsOptional ? t.digits < s.length ? t.digits : s.length : t.digits, 41796 "" !== s || !t.digitsOptional)) { 41797 var f = Math.pow(10, c || 1); 41798 e = e.replace((0, a.default)(i), "."), isNaN(parseFloat(e)) || (e = (t.roundingFN(parseFloat(e) * f) / f).toFixed(c)), 41799 e = e.toString().replace(".", i); 41800 } 41801 if (0 === t.digits && -1 !== e.indexOf(i) && (e = e.substring(0, e.indexOf(i))), 41802 null !== t.min || null !== t.max) { 41803 var d = e.toString().replace(i, "."); 41804 null !== t.min && d < t.min ? e = t.min.toString().replace(".", i) : null !== t.max && d > t.max && (e = t.max.toString().replace(".", i)); 41805 } 41806 return n && "-" !== e.charAt(0) && (e = "-" + e), u(e.toString().split(""), c, t, l).join(""); 41807 }, 41808 onBeforeWrite: function(e, t, i, n) { 41809 function r(e, t) { 41810 if (!1 !== n.__financeInput || t) { 41811 var i = e.indexOf(n.radixPoint); 41812 -1 !== i && e.splice(i, 1); 41813 } 41814 if ("" !== n.groupSeparator) for (;-1 !== (i = e.indexOf(n.groupSeparator)); ) e.splice(i, 1); 41815 return e; 41816 } 41817 var o, s; 41818 if (n.stripLeadingZeroes && (s = function(e, t) { 41819 var i = new RegExp("(^" + ("" !== t.negationSymbol.front ? (0, a.default)(t.negationSymbol.front) + "?" : "") + (0, 41820 a.default)(t.prefix) + ")(.*)(" + (0, a.default)(t.suffix) + ("" != t.negationSymbol.back ? (0, 41821 a.default)(t.negationSymbol.back) + "?" : "") + "$)").exec(e.slice().reverse().join("")), n = i ? i[2] : "", r = !1; 41822 return n && (n = n.split(t.radixPoint.charAt(0))[0], r = new RegExp("^[0" + t.groupSeparator + "]*").exec(n)), 41823 !(!r || !(r[0].length > 1 || r[0].length > 0 && r[0].length < n.length)) && r; 41824 }(t, n))) for (var c = t.join("").lastIndexOf(s[0].split("").reverse().join("")) - (s[0] == s.input ? 0 : 1), f = s[0] == s.input ? 1 : 0, d = s[0].length - f; d > 0; d--) delete this.maskset.validPositions[c + d], 41825 delete t[c + d]; 41826 if (e) switch (e.type) { 41827 case "blur": 41828 case "checkval": 41829 if (null !== n.min) { 41830 var p = n.onUnMask(t.slice().reverse().join(""), void 0, l.extend({}, n, { 41831 unmaskAsNumber: !0 41832 })); 41833 if (null !== n.min && p < n.min) return { 41834 refreshFromBuffer: !0, 41835 buffer: u(n.min.toString().replace(".", n.radixPoint).split(""), n.digits, n).reverse() 41836 }; 41837 } 41838 if (t[t.length - 1] === n.negationSymbol.front) { 41839 var h = new RegExp("(^" + ("" != n.negationSymbol.front ? (0, a.default)(n.negationSymbol.front) + "?" : "") + (0, 41840 a.default)(n.prefix) + ")(.*)(" + (0, a.default)(n.suffix) + ("" != n.negationSymbol.back ? (0, 41841 a.default)(n.negationSymbol.back) + "?" : "") + "$)").exec(r(t.slice(), !0).reverse().join("")); 41842 0 == (h ? h[2] : "") && (o = { 41843 refreshFromBuffer: !0, 41844 buffer: [ 0 ] 41845 }); 41846 } else if ("" !== n.radixPoint) { 41847 t.indexOf(n.radixPoint) === n.suffix.length && (o && o.buffer ? o.buffer.splice(0, 1 + n.suffix.length) : (t.splice(0, 1 + n.suffix.length), 41848 o = { 41849 refreshFromBuffer: !0, 41850 buffer: r(t) 41851 })); 41852 } 41853 if (n.enforceDigitsOnBlur) { 41854 var v = (o = o || {}) && o.buffer || t.slice().reverse(); 41855 o.refreshFromBuffer = !0, o.buffer = u(v, n.digits, n, !0).reverse(); 41856 } 41857 } 41858 return o; 41859 }, 41860 onKeyDown: function(e, t, i, n) { 41861 var a, r = l(this); 41862 if (3 != e.location) { 41863 var s, c = e.key; 41864 if ((s = n.shortcuts && n.shortcuts[c]) && s.length > 1) return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) * parseInt(s)), 41865 r.trigger("setvalue"), !1; 41866 } 41867 if (e.ctrlKey) switch (e.key) { 41868 case o.keys.ArrowUp: 41869 return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) + parseInt(n.step)), 41870 r.trigger("setvalue"), !1; 41871 41872 case o.keys.ArrowDown: 41873 return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) - parseInt(n.step)), 41874 r.trigger("setvalue"), !1; 41875 } 41876 if (!e.shiftKey && (e.key === o.keys.Delete || e.key === o.keys.Backspace || e.key === o.keys.BACKSPACE_SAFARI) && i.begin !== t.length) { 41877 if (t[e.key === o.keys.Delete ? i.begin - 1 : i.end] === n.negationSymbol.front) return a = t.slice().reverse(), 41878 "" !== n.negationSymbol.front && a.shift(), "" !== n.negationSymbol.back && a.pop(), 41879 r.trigger("setvalue", [ a.join(""), i.begin ]), !1; 41880 if (!0 === n._radixDance) { 41881 var f = t.indexOf(n.radixPoint); 41882 if (n.digitsOptional) { 41883 if (0 === f) return (a = t.slice().reverse()).pop(), r.trigger("setvalue", [ a.join(""), i.begin >= a.length ? a.length : i.begin ]), 41884 !1; 41885 } else if (-1 !== f && (i.begin < f || i.end < f || e.key === o.keys.Delete && (i.begin === f || i.begin - 1 === f))) { 41886 var d = void 0; 41887 return i.begin === i.end && (e.key === o.keys.Backspace || e.key === o.keys.BACKSPACE_SAFARI ? i.begin++ : e.key === o.keys.Delete && i.begin - 1 === f && (d = l.extend({}, i), 41888 i.begin--, i.end--)), (a = t.slice().reverse()).splice(a.length - i.begin, i.begin - i.end + 1), 41889 a = u(a, n.digits, n).join(""), d && (i = d), r.trigger("setvalue", [ a, i.begin >= a.length ? f + 1 : i.begin ]), 41890 !1; 41891 } 41892 } 41893 } 41894 } 41895 }, 41896 currency: { 41897 prefix: "", 41898 groupSeparator: ",", 41899 alias: "numeric", 41900 digits: 2, 41901 digitsOptional: !1 41902 }, 41903 decimal: { 41904 alias: "numeric" 41905 }, 41906 integer: { 41907 alias: "numeric", 41908 inputmode: "numeric", 41909 digits: 0 41910 }, 41911 percentage: { 41912 alias: "numeric", 41913 min: 0, 41914 max: 100, 41915 suffix: " %", 41916 digits: 0, 41917 allowMinus: !1 41918 }, 41919 indianns: { 41920 alias: "numeric", 41921 _mask: function(e) { 41922 return "(" + e.groupSeparator + "99){*|1}(" + e.groupSeparator + "999){1|1}"; 41923 }, 41924 groupSeparator: ",", 41925 radixPoint: ".", 41926 placeholder: "0", 41927 digits: 2, 41928 digitsOptional: !1 41929 } 41930 }); 41931 }, 41932 9380: function(e, t, i) { 41933 var n; 41934 Object.defineProperty(t, "__esModule", { 41935 value: !0 41936 }), t.default = void 0; 41937 var a = ((n = i(8741)) && n.__esModule ? n : { 41938 default: n 41939 }).default ? window : {}; 41940 t.default = a; 41941 }, 41942 7760: function(e, t, i) { 41943 Object.defineProperty(t, "__esModule", { 41944 value: !0 41945 }), t.HandleNativePlaceholder = function(e, t) { 41946 var i = e ? e.inputmask : this; 41947 if (s.ie) { 41948 if (e.inputmask._valueGet() !== t && (e.placeholder !== t || "" === e.placeholder)) { 41949 var n = r.getBuffer.call(i).slice(), a = e.inputmask._valueGet(); 41950 if (a !== t) { 41951 var o = r.getLastValidPosition.call(i); 41952 -1 === o && a === r.getBufferTemplate.call(i).join("") ? n = [] : -1 !== o && u.call(i, n), 41953 d(e, n); 41954 } 41955 } 41956 } else e.placeholder !== t && (e.placeholder = t, "" === e.placeholder && e.removeAttribute("placeholder")); 41957 }, t.applyInputValue = c, t.checkVal = f, t.clearOptionalTail = u, t.unmaskedvalue = function(e) { 41958 var t = e ? e.inputmask : this, i = t.opts, n = t.maskset; 41959 if (e) { 41960 if (void 0 === e.inputmask) return e.value; 41961 e.inputmask && e.inputmask.refreshValue && c(e, e.inputmask._valueGet(!0)); 41962 } 41963 for (var a = [], o = n.validPositions, s = 0, l = o.length; s < l; s++) o[s] && o[s].match && (1 != o[s].match.static || Array.isArray(n.metadata) && !0 !== o[s].generatedInput) && a.push(o[s].input); 41964 var u = 0 === a.length ? "" : (t.isRTL ? a.reverse() : a).join(""); 41965 if ("function" == typeof i.onUnMask) { 41966 var f = (t.isRTL ? r.getBuffer.call(t).slice().reverse() : r.getBuffer.call(t)).join(""); 41967 u = i.onUnMask.call(t, f, u, i); 41968 } 41969 return u; 41970 }, t.writeBuffer = d; 41971 var n = i(2839), a = i(4713), r = i(8711), o = i(7215), s = i(9845), l = i(6030); 41972 function c(e, t) { 41973 var i = e ? e.inputmask : this, n = i.opts; 41974 e.inputmask.refreshValue = !1, "function" == typeof n.onBeforeMask && (t = n.onBeforeMask.call(i, t, n) || t), 41975 f(e, !0, !1, t = (t || "").toString().split("")), i.undoValue = i._valueGet(!0), 41976 (n.clearMaskOnLostFocus || n.clearIncomplete) && e.inputmask._valueGet() === r.getBufferTemplate.call(i).join("") && -1 === r.getLastValidPosition.call(i) && e.inputmask._valueSet(""); 41977 } 41978 function u(e) { 41979 e.length = 0; 41980 for (var t, i = a.getMaskTemplate.call(this, !0, 0, !0, void 0, !0); void 0 !== (t = i.shift()); ) e.push(t); 41981 return e; 41982 } 41983 function f(e, t, i, n, s) { 41984 var c = e ? e.inputmask : this, u = c.maskset, f = c.opts, p = c.dependencyLib, h = n.slice(), v = "", m = -1, g = void 0, y = f.skipOptionalPartCharacter; 41985 f.skipOptionalPartCharacter = "", r.resetMaskSet.call(c), u.tests = {}, m = f.radixPoint ? r.determineNewCaretPosition.call(c, { 41986 begin: 0, 41987 end: 0 41988 }, !1, !1 === f.__financeInput ? "radixFocus" : void 0).begin : 0, u.p = m, c.caretPos = { 41989 begin: m 41990 }; 41991 var k = [], b = c.caretPos; 41992 if (h.forEach((function(e, t) { 41993 if (void 0 !== e) { 41994 var n = new p.Event("_checkval"); 41995 n.key = e, v += e; 41996 var o = r.getLastValidPosition.call(c, void 0, !0); 41997 !function(e, t) { 41998 for (var i = a.getMaskTemplate.call(c, !0, 0).slice(e, r.seekNext.call(c, e, !1, !1)).join("").replace(/'/g, ""), n = i.indexOf(t); n > 0 && " " === i[n - 1]; ) n--; 41999 var o = 0 === n && !r.isMask.call(c, e) && (a.getTest.call(c, e).match.nativeDef === t.charAt(0) || !0 === a.getTest.call(c, e).match.static && a.getTest.call(c, e).match.nativeDef === "'" + t.charAt(0) || " " === a.getTest.call(c, e).match.nativeDef && (a.getTest.call(c, e + 1).match.nativeDef === t.charAt(0) || !0 === a.getTest.call(c, e + 1).match.static && a.getTest.call(c, e + 1).match.nativeDef === "'" + t.charAt(0))); 42000 if (!o && n > 0 && !r.isMask.call(c, e, !1, !0)) { 42001 var s = r.seekNext.call(c, e); 42002 c.caretPos.begin < s && (c.caretPos = { 42003 begin: s 42004 }); 42005 } 42006 return o; 42007 }(m, v) ? (g = l.EventHandlers.keypressEvent.call(c, n, !0, !1, i, c.caretPos.begin)) && (m = c.caretPos.begin + 1, 42008 v = "") : g = l.EventHandlers.keypressEvent.call(c, n, !0, !1, i, o + 1), g ? (void 0 !== g.pos && u.validPositions[g.pos] && !0 === u.validPositions[g.pos].match.static && void 0 === u.validPositions[g.pos].alternation && (k.push(g.pos), 42009 c.isRTL || (g.forwardPosition = g.pos + 1)), d.call(c, void 0, r.getBuffer.call(c), g.forwardPosition, n, !1), 42010 c.caretPos = { 42011 begin: g.forwardPosition, 42012 end: g.forwardPosition 42013 }, b = c.caretPos) : void 0 === u.validPositions[t] && h[t] === a.getPlaceholder.call(c, t) && r.isMask.call(c, t, !0) ? c.caretPos.begin++ : c.caretPos = b; 42014 } 42015 })), k.length > 0) { 42016 var x, P, w = r.seekNext.call(c, -1, void 0, !1); 42017 if (!o.isComplete.call(c, r.getBuffer.call(c)) && k.length <= w || o.isComplete.call(c, r.getBuffer.call(c)) && k.length > 0 && k.length !== w && 0 === k[0]) for (var S = w; void 0 !== (x = k.shift()); ) { 42018 var M = new p.Event("_checkval"); 42019 if ((P = u.validPositions[x]).generatedInput = !0, M.key = P.input, (g = l.EventHandlers.keypressEvent.call(c, M, !0, !1, i, S)) && void 0 !== g.pos && g.pos !== x && u.validPositions[g.pos] && !0 === u.validPositions[g.pos].match.static) k.push(g.pos); else if (!g) break; 42020 S++; 42021 } 42022 } 42023 t && d.call(c, e, r.getBuffer.call(c), g ? g.forwardPosition : c.caretPos.begin, s || new p.Event("checkval"), s && ("input" === s.type && c.undoValue !== r.getBuffer.call(c).join("") || "paste" === s.type)), 42024 f.skipOptionalPartCharacter = y; 42025 } 42026 function d(e, t, i, a, s) { 42027 var l = e ? e.inputmask : this, c = l.opts, u = l.dependencyLib; 42028 if (a && "function" == typeof c.onBeforeWrite) { 42029 var f = c.onBeforeWrite.call(l, a, t, i, c); 42030 if (f) { 42031 if (f.refreshFromBuffer) { 42032 var d = f.refreshFromBuffer; 42033 o.refreshFromBuffer.call(l, !0 === d ? d : d.start, d.end, f.buffer || t), t = r.getBuffer.call(l, !0); 42034 } 42035 void 0 !== i && (i = void 0 !== f.caret ? f.caret : i); 42036 } 42037 } 42038 if (void 0 !== e && (e.inputmask._valueSet(t.join("")), void 0 === i || void 0 !== a && "blur" === a.type || r.caret.call(l, e, i, void 0, void 0, void 0 !== a && "keydown" === a.type && (a.key === n.keys.Delete || a.key === n.keys.Backspace)), 42039 !0 === s)) { 42040 var p = u(e), h = e.inputmask._valueGet(); 42041 e.inputmask.skipInputEvent = !0, p.trigger("input"), setTimeout((function() { 42042 h === r.getBufferTemplate.call(l).join("") ? p.trigger("cleared") : !0 === o.isComplete.call(l, t) && p.trigger("complete"); 42043 }), 0); 42044 } 42045 } 42046 }, 42047 2394: function(e, t, i) { 42048 Object.defineProperty(t, "__esModule", { 42049 value: !0 42050 }), t.default = void 0; 42051 var n = i(157), a = m(i(4963)), r = m(i(9380)), o = i(2391), s = i(4713), l = i(8711), c = i(7215), u = i(7760), f = i(9716), d = m(i(7392)), p = m(i(3976)), h = m(i(8741)); 42052 function v(e) { 42053 return v = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { 42054 return typeof e; 42055 } : function(e) { 42056 return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; 42057 }, v(e); 42058 } 42059 function m(e) { 42060 return e && e.__esModule ? e : { 42061 default: e 42062 }; 42063 } 42064 var g = r.default.document, y = "_inputmask_opts"; 42065 function k(e, t, i) { 42066 if (h.default) { 42067 if (!(this instanceof k)) return new k(e, t, i); 42068 this.dependencyLib = a.default, this.el = void 0, this.events = {}, this.maskset = void 0, 42069 !0 !== i && ("[object Object]" === Object.prototype.toString.call(e) ? t = e : (t = t || {}, 42070 e && (t.alias = e)), this.opts = a.default.extend(!0, {}, this.defaults, t), this.noMasksCache = t && void 0 !== t.definitions, 42071 this.userOptions = t || {}, b(this.opts.alias, t, this.opts)), this.refreshValue = !1, 42072 this.undoValue = void 0, this.$el = void 0, this.skipInputEvent = !1, this.validationEvent = !1, 42073 this.ignorable = !1, this.maxLength, this.mouseEnter = !1, this.clicked = 0, this.originalPlaceholder = void 0, 42074 this.isComposing = !1, this.hasAlternator = !1; 42075 } 42076 } 42077 function b(e, t, i) { 42078 var n = k.prototype.aliases[e]; 42079 return n ? (n.alias && b(n.alias, void 0, i), a.default.extend(!0, i, n), a.default.extend(!0, i, t), 42080 !0) : (null === i.mask && (i.mask = e), !1); 42081 } 42082 k.prototype = { 42083 dataAttribute: "data-inputmask", 42084 defaults: p.default, 42085 definitions: d.default, 42086 aliases: {}, 42087 masksCache: {}, 42088 get isRTL() { 42089 return this.opts.isRTL || this.opts.numericInput; 42090 }, 42091 mask: function(e) { 42092 var t = this; 42093 return "string" == typeof e && (e = g.getElementById(e) || g.querySelectorAll(e)), 42094 (e = e.nodeName ? [ e ] : Array.isArray(e) ? e : [].slice.call(e)).forEach((function(e, i) { 42095 var s = a.default.extend(!0, {}, t.opts); 42096 if (function(e, t, i, n) { 42097 function o(t, a) { 42098 var o = "" === n ? t : n + "-" + t; 42099 null !== (a = void 0 !== a ? a : e.getAttribute(o)) && ("string" == typeof a && (0 === t.indexOf("on") ? a = r.default[a] : "false" === a ? a = !1 : "true" === a && (a = !0)), 42100 i[t] = a); 42101 } 42102 if (!0 === t.importDataAttributes) { 42103 var s, l, c, u, f = e.getAttribute(n); 42104 if (f && "" !== f && (f = f.replace(/'/g, '"'), l = JSON.parse("{" + f + "}")), 42105 l) for (u in c = void 0, l) if ("alias" === u.toLowerCase()) { 42106 c = l[u]; 42107 break; 42108 } 42109 for (s in o("alias", c), i.alias && b(i.alias, i, t), t) { 42110 if (l) for (u in c = void 0, l) if (u.toLowerCase() === s.toLowerCase()) { 42111 c = l[u]; 42112 break; 42113 } 42114 o(s, c); 42115 } 42116 } 42117 a.default.extend(!0, t, i), ("rtl" === e.dir || t.rightAlign) && (e.style.textAlign = "right"); 42118 ("rtl" === e.dir || t.numericInput) && (e.dir = "ltr", e.removeAttribute("dir"), 42119 t.isRTL = !0); 42120 return Object.keys(i).length; 42121 }(e, s, a.default.extend(!0, {}, t.userOptions), t.dataAttribute)) { 42122 var l = (0, o.generateMaskSet)(s, t.noMasksCache); 42123 void 0 !== l && (void 0 !== e.inputmask && (e.inputmask.opts.autoUnmask = !0, e.inputmask.remove()), 42124 e.inputmask = new k(void 0, void 0, !0), e.inputmask.opts = s, e.inputmask.noMasksCache = t.noMasksCache, 42125 e.inputmask.userOptions = a.default.extend(!0, {}, t.userOptions), e.inputmask.el = e, 42126 e.inputmask.$el = (0, a.default)(e), e.inputmask.maskset = l, a.default.data(e, y, t.userOptions), 42127 n.mask.call(e.inputmask)); 42128 } 42129 })), e && e[0] && e[0].inputmask || this; 42130 }, 42131 option: function(e, t) { 42132 return "string" == typeof e ? this.opts[e] : "object" === v(e) ? (a.default.extend(this.userOptions, e), 42133 this.el && !0 !== t && this.mask(this.el), this) : void 0; 42134 }, 42135 unmaskedvalue: function(e) { 42136 if (this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), 42137 void 0 === this.el || void 0 !== e) { 42138 var t = ("function" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(""); 42139 u.checkVal.call(this, void 0, !1, !1, t), "function" == typeof this.opts.onBeforeWrite && this.opts.onBeforeWrite.call(this, void 0, l.getBuffer.call(this), 0, this.opts); 42140 } 42141 return u.unmaskedvalue.call(this, this.el); 42142 }, 42143 remove: function() { 42144 if (this.el) { 42145 a.default.data(this.el, y, null); 42146 var e = this.opts.autoUnmask ? (0, u.unmaskedvalue)(this.el) : this._valueGet(this.opts.autoUnmask); 42147 e !== l.getBufferTemplate.call(this).join("") ? this._valueSet(e, this.opts.autoUnmask) : this._valueSet(""), 42148 f.EventRuler.off(this.el), Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this.el), "value") && this.__valueGet && Object.defineProperty(this.el, "value", { 42149 get: this.__valueGet, 42150 set: this.__valueSet, 42151 configurable: !0 42152 }) : g.__lookupGetter__ && this.el.__lookupGetter__("value") && this.__valueGet && (this.el.__defineGetter__("value", this.__valueGet), 42153 this.el.__defineSetter__("value", this.__valueSet)), this.el.inputmask = void 0; 42154 } 42155 return this.el; 42156 }, 42157 getemptymask: function() { 42158 return this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), 42159 (this.isRTL ? l.getBufferTemplate.call(this).reverse() : l.getBufferTemplate.call(this)).join(""); 42160 }, 42161 hasMaskedValue: function() { 42162 return !this.opts.autoUnmask; 42163 }, 42164 isComplete: function() { 42165 return this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), 42166 c.isComplete.call(this, l.getBuffer.call(this)); 42167 }, 42168 getmetadata: function() { 42169 if (this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), 42170 Array.isArray(this.maskset.metadata)) { 42171 var e = s.getMaskTemplate.call(this, !0, 0, !1).join(""); 42172 return this.maskset.metadata.forEach((function(t) { 42173 return t.mask !== e || (e = t, !1); 42174 })), e; 42175 } 42176 return this.maskset.metadata; 42177 }, 42178 isValid: function(e) { 42179 if (this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), 42180 e) { 42181 var t = ("function" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(""); 42182 u.checkVal.call(this, void 0, !0, !1, t); 42183 } else e = this.isRTL ? l.getBuffer.call(this).slice().reverse().join("") : l.getBuffer.call(this).join(""); 42184 for (var i = l.getBuffer.call(this), n = l.determineLastRequiredPosition.call(this), a = i.length - 1; a > n && !l.isMask.call(this, a); a--) ; 42185 return i.splice(n, a + 1 - n), c.isComplete.call(this, i) && e === (this.isRTL ? l.getBuffer.call(this).slice().reverse().join("") : l.getBuffer.call(this).join("")); 42186 }, 42187 format: function(e, t) { 42188 this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache); 42189 var i = ("function" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(""); 42190 u.checkVal.call(this, void 0, !0, !1, i); 42191 var n = this.isRTL ? l.getBuffer.call(this).slice().reverse().join("") : l.getBuffer.call(this).join(""); 42192 return t ? { 42193 value: n, 42194 metadata: this.getmetadata() 42195 } : n; 42196 }, 42197 setValue: function(e) { 42198 this.el && (0, a.default)(this.el).trigger("setvalue", [ e ]); 42199 }, 42200 analyseMask: o.analyseMask 42201 }, k.extendDefaults = function(e) { 42202 a.default.extend(!0, k.prototype.defaults, e); 42203 }, k.extendDefinitions = function(e) { 42204 a.default.extend(!0, k.prototype.definitions, e); 42205 }, k.extendAliases = function(e) { 42206 a.default.extend(!0, k.prototype.aliases, e); 42207 }, k.format = function(e, t, i) { 42208 return k(t).format(e, i); 42209 }, k.unmask = function(e, t) { 42210 return k(t).unmaskedvalue(e); 42211 }, k.isValid = function(e, t) { 42212 return k(t).isValid(e); 42213 }, k.remove = function(e) { 42214 "string" == typeof e && (e = g.getElementById(e) || g.querySelectorAll(e)), (e = e.nodeName ? [ e ] : e).forEach((function(e) { 42215 e.inputmask && e.inputmask.remove(); 42216 })); 42217 }, k.setValue = function(e, t) { 42218 "string" == typeof e && (e = g.getElementById(e) || g.querySelectorAll(e)), (e = e.nodeName ? [ e ] : e).forEach((function(e) { 42219 e.inputmask ? e.inputmask.setValue(t) : (0, a.default)(e).trigger("setvalue", [ t ]); 42220 })); 42221 }, k.dependencyLib = a.default, r.default.Inputmask = k; 42222 var x = k; 42223 t.default = x; 42224 }, 42225 5296: function(e, t, i) { 42226 function n(e) { 42227 return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { 42228 return typeof e; 42229 } : function(e) { 42230 return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; 42231 }, n(e); 42232 } 42233 var a = h(i(9380)), r = h(i(2394)), o = h(i(8741)); 42234 function s(e, t) { 42235 for (var i = 0; i < t.length; i++) { 42236 var a = t[i]; 42237 a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), 42238 Object.defineProperty(e, (r = a.key, o = void 0, o = function(e, t) { 42239 if ("object" !== n(e) || null === e) return e; 42240 var i = e[Symbol.toPrimitive]; 42241 if (void 0 !== i) { 42242 var a = i.call(e, t || "default"); 42243 if ("object" !== n(a)) return a; 42244 throw new TypeError("@@toPrimitive must return a primitive value."); 42245 } 42246 return ("string" === t ? String : Number)(e); 42247 }(r, "string"), "symbol" === n(o) ? o : String(o)), a); 42248 } 42249 var r, o; 42250 } 42251 function l(e) { 42252 var t = f(); 42253 return function() { 42254 var i, a = p(e); 42255 if (t) { 42256 var r = p(this).constructor; 42257 i = Reflect.construct(a, arguments, r); 42258 } else i = a.apply(this, arguments); 42259 return function(e, t) { 42260 if (t && ("object" === n(t) || "function" == typeof t)) return t; 42261 if (void 0 !== t) throw new TypeError("Derived constructors may only return object or undefined"); 42262 return function(e) { 42263 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 42264 return e; 42265 }(e); 42266 }(this, i); 42267 }; 42268 } 42269 function c(e) { 42270 var t = "function" == typeof Map ? new Map : void 0; 42271 return c = function(e) { 42272 if (null === e || (i = e, -1 === Function.toString.call(i).indexOf("[native code]"))) return e; 42273 var i; 42274 if ("function" != typeof e) throw new TypeError("Super expression must either be null or a function"); 42275 if (void 0 !== t) { 42276 if (t.has(e)) return t.get(e); 42277 t.set(e, n); 42278 } 42279 function n() { 42280 return u(e, arguments, p(this).constructor); 42281 } 42282 return n.prototype = Object.create(e.prototype, { 42283 constructor: { 42284 value: n, 42285 enumerable: !1, 42286 writable: !0, 42287 configurable: !0 42288 } 42289 }), d(n, e); 42290 }, c(e); 42291 } 42292 function u(e, t, i) { 42293 return u = f() ? Reflect.construct.bind() : function(e, t, i) { 42294 var n = [ null ]; 42295 n.push.apply(n, t); 42296 var a = new (Function.bind.apply(e, n)); 42297 return i && d(a, i.prototype), a; 42298 }, u.apply(null, arguments); 42299 } 42300 function f() { 42301 if ("undefined" == typeof Reflect || !Reflect.construct) return !1; 42302 if (Reflect.construct.sham) return !1; 42303 if ("function" == typeof Proxy) return !0; 42304 try { 42305 return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), 42306 !0; 42307 } catch (e) { 42308 return !1; 42309 } 42310 } 42311 function d(e, t) { 42312 return d = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e, t) { 42313 return e.__proto__ = t, e; 42314 }, d(e, t); 42315 } 42316 function p(e) { 42317 return p = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(e) { 42318 return e.__proto__ || Object.getPrototypeOf(e); 42319 }, p(e); 42320 } 42321 function h(e) { 42322 return e && e.__esModule ? e : { 42323 default: e 42324 }; 42325 } 42326 var v = a.default.document; 42327 if (o.default && v && v.head && v.head.attachShadow && a.default.customElements && void 0 === a.default.customElements.get("input-mask")) { 42328 var m = function(e) { 42329 !function(e, t) { 42330 if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function"); 42331 e.prototype = Object.create(t && t.prototype, { 42332 constructor: { 42333 value: e, 42334 writable: !0, 42335 configurable: !0 42336 } 42337 }), Object.defineProperty(e, "prototype", { 42338 writable: !1 42339 }), t && d(e, t); 42340 }(o, e); 42341 var t, i, n, a = l(o); 42342 function o() { 42343 var e; 42344 !function(e, t) { 42345 if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); 42346 }(this, o); 42347 var t = (e = a.call(this)).getAttributeNames(), i = e.attachShadow({ 42348 mode: "closed" 42349 }), n = v.createElement("input"); 42350 for (var s in n.type = "text", i.appendChild(n), t) Object.prototype.hasOwnProperty.call(t, s) && n.setAttribute(t[s], e.getAttribute(t[s])); 42351 var l = new r.default; 42352 return l.dataAttribute = "", l.mask(n), n.inputmask.shadowRoot = i, e; 42353 } 42354 return t = o, i && s(t.prototype, i), n && s(t, n), Object.defineProperty(t, "prototype", { 42355 writable: !1 42356 }), t; 42357 }(c(HTMLElement)); 42358 a.default.customElements.define("input-mask", m); 42359 } 42360 }, 42361 2839: function(e, t) { 42362 function i(e, t) { 42363 return function(e) { 42364 if (Array.isArray(e)) return e; 42365 }(e) || function(e, t) { 42366 var i = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; 42367 if (null != i) { 42368 var n, a, r, o, s = [], l = !0, c = !1; 42369 try { 42370 if (r = (i = i.call(e)).next, 0 === t) { 42371 if (Object(i) !== i) return; 42372 l = !1; 42373 } else for (;!(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0) ; 42374 } catch (e) { 42375 c = !0, a = e; 42376 } finally { 42377 try { 42378 if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return; 42379 } finally { 42380 if (c) throw a; 42381 } 42382 } 42383 return s; 42384 } 42385 }(e, t) || function(e, t) { 42386 if (!e) return; 42387 if ("string" == typeof e) return n(e, t); 42388 var i = Object.prototype.toString.call(e).slice(8, -1); 42389 "Object" === i && e.constructor && (i = e.constructor.name); 42390 if ("Map" === i || "Set" === i) return Array.from(e); 42391 if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return n(e, t); 42392 }(e, t) || function() { 42393 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 42394 }(); 42395 } 42396 function n(e, t) { 42397 (null == t || t > e.length) && (t = e.length); 42398 for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i]; 42399 return n; 42400 } 42401 Object.defineProperty(t, "__esModule", { 42402 value: !0 42403 }), t.keys = t.keyCode = void 0, t.toKey = function(e, t) { 42404 return r[e] || (t ? String.fromCharCode(e) : String.fromCharCode(e).toLowerCase()); 42405 }, t.toKeyCode = function(e) { 42406 return a[e]; 42407 }; 42408 var a = { 42409 AltGraph: 18, 42410 ArrowDown: 40, 42411 ArrowLeft: 37, 42412 ArrowRight: 39, 42413 ArrowUp: 38, 42414 Backspace: 8, 42415 BACKSPACE_SAFARI: 127, 42416 CapsLock: 20, 42417 Delete: 46, 42418 End: 35, 42419 Enter: 13, 42420 Escape: 27, 42421 Home: 36, 42422 Insert: 45, 42423 PageDown: 34, 42424 PageUp: 33, 42425 Space: 32, 42426 Tab: 9, 42427 c: 67, 42428 x: 88, 42429 z: 90, 42430 Shift: 16, 42431 Control: 17, 42432 Alt: 18, 42433 Pause: 19, 42434 Meta_LEFT: 91, 42435 Meta_RIGHT: 92, 42436 ContextMenu: 93, 42437 Process: 229, 42438 Unidentified: 229, 42439 F1: 112, 42440 F2: 113, 42441 F3: 114, 42442 F4: 115, 42443 F5: 116, 42444 F6: 117, 42445 F7: 118, 42446 F8: 119, 42447 F9: 120, 42448 F10: 121, 42449 F11: 122, 42450 F12: 123 42451 }; 42452 t.keyCode = a; 42453 var r = Object.entries(a).reduce((function(e, t) { 42454 var n = i(t, 2), a = n[0], r = n[1]; 42455 return e[r] = void 0 === e[r] ? a : e[r], e; 42456 }), {}), o = Object.entries(a).reduce((function(e, t) { 42457 var n = i(t, 2), a = n[0]; 42458 n[1]; 42459 return e[a] = "Space" === a ? " " : a, e; 42460 }), {}); 42461 t.keys = o; 42462 }, 42463 2391: function(e, t, i) { 42464 Object.defineProperty(t, "__esModule", { 42465 value: !0 42466 }), t.analyseMask = function(e, t, i) { 42467 var n, o, s, l, c, u, f = /(?:[?*+]|\{[0-9+*]+(?:,[0-9+*]*)?(?:\|[0-9+*]*)?\})|[^.?*+^${[]()|\\]+|./g, d = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, p = !1, h = new a.default, v = [], m = [], g = !1; 42468 function y(e, n, a) { 42469 a = void 0 !== a ? a : e.matches.length; 42470 var o = e.matches[a - 1]; 42471 if (t) { 42472 if (0 === n.indexOf("[") || p && /\\d|\\s|\\w|\\p/i.test(n) || "." === n) { 42473 var s = i.casing ? "i" : ""; 42474 /^\\p\{.*}$/i.test(n) && (s += "u"), e.matches.splice(a++, 0, { 42475 fn: new RegExp(n, s), 42476 static: !1, 42477 optionality: !1, 42478 newBlockMarker: void 0 === o ? "master" : o.def !== n, 42479 casing: null, 42480 def: n, 42481 placeholder: void 0, 42482 nativeDef: n 42483 }); 42484 } else p && (n = n[n.length - 1]), n.split("").forEach((function(t, n) { 42485 o = e.matches[a - 1], e.matches.splice(a++, 0, { 42486 fn: /[a-z]/i.test(i.staticDefinitionSymbol || t) ? new RegExp("[" + (i.staticDefinitionSymbol || t) + "]", i.casing ? "i" : "") : null, 42487 static: !0, 42488 optionality: !1, 42489 newBlockMarker: void 0 === o ? "master" : o.def !== t && !0 !== o.static, 42490 casing: null, 42491 def: i.staticDefinitionSymbol || t, 42492 placeholder: void 0 !== i.staticDefinitionSymbol ? t : void 0, 42493 nativeDef: (p ? "'" : "") + t 42494 }); 42495 })); 42496 p = !1; 42497 } else { 42498 var l = i.definitions && i.definitions[n] || i.usePrototypeDefinitions && r.default.prototype.definitions[n]; 42499 l && !p ? e.matches.splice(a++, 0, { 42500 fn: l.validator ? "string" == typeof l.validator ? new RegExp(l.validator, i.casing ? "i" : "") : new function() { 42501 this.test = l.validator; 42502 } : new RegExp("."), 42503 static: l.static || !1, 42504 optionality: l.optional || !1, 42505 defOptionality: l.optional || !1, 42506 newBlockMarker: void 0 === o || l.optional ? "master" : o.def !== (l.definitionSymbol || n), 42507 casing: l.casing, 42508 def: l.definitionSymbol || n, 42509 placeholder: l.placeholder, 42510 nativeDef: n, 42511 generated: l.generated 42512 }) : (e.matches.splice(a++, 0, { 42513 fn: /[a-z]/i.test(i.staticDefinitionSymbol || n) ? new RegExp("[" + (i.staticDefinitionSymbol || n) + "]", i.casing ? "i" : "") : null, 42514 static: !0, 42515 optionality: !1, 42516 newBlockMarker: void 0 === o ? "master" : o.def !== n && !0 !== o.static, 42517 casing: null, 42518 def: i.staticDefinitionSymbol || n, 42519 placeholder: void 0 !== i.staticDefinitionSymbol ? n : void 0, 42520 nativeDef: (p ? "'" : "") + n 42521 }), p = !1); 42522 } 42523 } 42524 function k() { 42525 if (v.length > 0) { 42526 if (y(l = v[v.length - 1], o), l.isAlternator) { 42527 c = v.pop(); 42528 for (var e = 0; e < c.matches.length; e++) c.matches[e].isGroup && (c.matches[e].isGroup = !1); 42529 v.length > 0 ? (l = v[v.length - 1]).matches.push(c) : h.matches.push(c); 42530 } 42531 } else y(h, o); 42532 } 42533 function b(e) { 42534 var t = new a.default(!0); 42535 return t.openGroup = !1, t.matches = e, t; 42536 } 42537 function x() { 42538 if ((s = v.pop()).openGroup = !1, void 0 !== s) if (v.length > 0) { 42539 if ((l = v[v.length - 1]).matches.push(s), l.isAlternator) { 42540 for (var e = (c = v.pop()).matches[0].matches ? c.matches[0].matches.length : 1, t = 0; t < c.matches.length; t++) c.matches[t].isGroup = !1, 42541 c.matches[t].alternatorGroup = !1, null === i.keepStatic && e < (c.matches[t].matches ? c.matches[t].matches.length : 1) && (i.keepStatic = !0), 42542 e = c.matches[t].matches ? c.matches[t].matches.length : 1; 42543 v.length > 0 ? (l = v[v.length - 1]).matches.push(c) : h.matches.push(c); 42544 } 42545 } else h.matches.push(s); else k(); 42546 } 42547 function P(e) { 42548 var t = e.pop(); 42549 return t.isQuantifier && (t = b([ e.pop(), t ])), t; 42550 } 42551 t && (i.optionalmarker[0] = void 0, i.optionalmarker[1] = void 0); 42552 for (;n = t ? d.exec(e) : f.exec(e); ) { 42553 if (o = n[0], t) { 42554 switch (o.charAt(0)) { 42555 case "?": 42556 o = "{0,1}"; 42557 break; 42558 42559 case "+": 42560 case "*": 42561 o = "{" + o + "}"; 42562 break; 42563 42564 case "|": 42565 if (0 === v.length) { 42566 var w = b(h.matches); 42567 w.openGroup = !0, v.push(w), h.matches = [], g = !0; 42568 } 42569 } 42570 switch (o) { 42571 case "\\d": 42572 o = "[0-9]"; 42573 break; 42574 42575 case "\\p": 42576 o += d.exec(e)[0], o += d.exec(e)[0]; 42577 } 42578 } 42579 if (p) k(); else switch (o.charAt(0)) { 42580 case "$": 42581 case "^": 42582 t || k(); 42583 break; 42584 42585 case i.escapeChar: 42586 p = !0, t && k(); 42587 break; 42588 42589 case i.optionalmarker[1]: 42590 case i.groupmarker[1]: 42591 x(); 42592 break; 42593 42594 case i.optionalmarker[0]: 42595 v.push(new a.default(!1, !0)); 42596 break; 42597 42598 case i.groupmarker[0]: 42599 v.push(new a.default(!0)); 42600 break; 42601 42602 case i.quantifiermarker[0]: 42603 var S = new a.default(!1, !1, !0), M = (o = o.replace(/[{}?]/g, "")).split("|"), _ = M[0].split(","), O = isNaN(_[0]) ? _[0] : parseInt(_[0]), E = 1 === _.length ? O : isNaN(_[1]) ? _[1] : parseInt(_[1]), T = isNaN(M[1]) ? M[1] : parseInt(M[1]); 42604 "*" !== O && "+" !== O || (O = "*" === E ? 0 : 1), S.quantifier = { 42605 min: O, 42606 max: E, 42607 jit: T 42608 }; 42609 var j = v.length > 0 ? v[v.length - 1].matches : h.matches; 42610 (n = j.pop()).isGroup || (n = b([ n ])), j.push(n), j.push(S); 42611 break; 42612 42613 case i.alternatormarker: 42614 if (v.length > 0) { 42615 var A = (l = v[v.length - 1]).matches[l.matches.length - 1]; 42616 u = l.openGroup && (void 0 === A.matches || !1 === A.isGroup && !1 === A.isAlternator) ? v.pop() : P(l.matches); 42617 } else u = P(h.matches); 42618 if (u.isAlternator) v.push(u); else if (u.alternatorGroup ? (c = v.pop(), u.alternatorGroup = !1) : c = new a.default(!1, !1, !1, !0), 42619 c.matches.push(u), v.push(c), u.openGroup) { 42620 u.openGroup = !1; 42621 var D = new a.default(!0); 42622 D.alternatorGroup = !0, v.push(D); 42623 } 42624 break; 42625 42626 default: 42627 k(); 42628 } 42629 } 42630 g && x(); 42631 for (;v.length > 0; ) s = v.pop(), h.matches.push(s); 42632 h.matches.length > 0 && (!function e(n) { 42633 n && n.matches && n.matches.forEach((function(a, r) { 42634 var o = n.matches[r + 1]; 42635 (void 0 === o || void 0 === o.matches || !1 === o.isQuantifier) && a && a.isGroup && (a.isGroup = !1, 42636 t || (y(a, i.groupmarker[0], 0), !0 !== a.openGroup && y(a, i.groupmarker[1]))), 42637 e(a); 42638 })); 42639 }(h), m.push(h)); 42640 (i.numericInput || i.isRTL) && function e(t) { 42641 for (var n in t.matches = t.matches.reverse(), t.matches) if (Object.prototype.hasOwnProperty.call(t.matches, n)) { 42642 var a = parseInt(n); 42643 if (t.matches[n].isQuantifier && t.matches[a + 1] && t.matches[a + 1].isGroup) { 42644 var r = t.matches[n]; 42645 t.matches.splice(n, 1), t.matches.splice(a + 1, 0, r); 42646 } 42647 void 0 !== t.matches[n].matches ? t.matches[n] = e(t.matches[n]) : t.matches[n] = ((o = t.matches[n]) === i.optionalmarker[0] ? o = i.optionalmarker[1] : o === i.optionalmarker[1] ? o = i.optionalmarker[0] : o === i.groupmarker[0] ? o = i.groupmarker[1] : o === i.groupmarker[1] && (o = i.groupmarker[0]), 42648 o); 42649 } 42650 var o; 42651 return t; 42652 }(m[0]); 42653 return m; 42654 }, t.generateMaskSet = function(e, t) { 42655 var i; 42656 function a(e, t) { 42657 var i = t.repeat, n = t.groupmarker, a = t.quantifiermarker, r = t.keepStatic; 42658 if (i > 0 || "*" === i || "+" === i) { 42659 var l = "*" === i ? 0 : "+" === i ? 1 : i; 42660 e = n[0] + e + n[1] + a[0] + l + "," + i + a[1]; 42661 } 42662 if (!0 === r) { 42663 var c = e.match(new RegExp("(.)\\[([^\\]]*)\\]", "g")); 42664 c && c.forEach((function(t, i) { 42665 var n = function(e, t) { 42666 return function(e) { 42667 if (Array.isArray(e)) return e; 42668 }(e) || function(e, t) { 42669 var i = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; 42670 if (null != i) { 42671 var n, a, r, o, s = [], l = !0, c = !1; 42672 try { 42673 if (r = (i = i.call(e)).next, 0 === t) { 42674 if (Object(i) !== i) return; 42675 l = !1; 42676 } else for (;!(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0) ; 42677 } catch (e) { 42678 c = !0, a = e; 42679 } finally { 42680 try { 42681 if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return; 42682 } finally { 42683 if (c) throw a; 42684 } 42685 } 42686 return s; 42687 } 42688 }(e, t) || function(e, t) { 42689 if (!e) return; 42690 if ("string" == typeof e) return s(e, t); 42691 var i = Object.prototype.toString.call(e).slice(8, -1); 42692 "Object" === i && e.constructor && (i = e.constructor.name); 42693 if ("Map" === i || "Set" === i) return Array.from(e); 42694 if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return s(e, t); 42695 }(e, t) || function() { 42696 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 42697 }(); 42698 }(t.split("["), 2), a = n[0], r = n[1]; 42699 r = r.replace("]", ""), e = e.replace(new RegExp("".concat((0, o.default)(a), "\\[").concat((0, 42700 o.default)(r), "\\]")), a.charAt(0) === r.charAt(0) ? "(".concat(a, "|").concat(a).concat(r, ")") : "".concat(a, "[").concat(r, "]")); 42701 })); 42702 } 42703 return e; 42704 } 42705 function l(e, i, o) { 42706 var s, l, c = !1; 42707 return null !== e && "" !== e || ((c = null !== o.regex) ? e = (e = o.regex).replace(/^(\^)(.*)(\$)$/, "$2") : (c = !0, 42708 e = ".*")), 1 === e.length && !1 === o.greedy && 0 !== o.repeat && (o.placeholder = ""), 42709 e = a(e, o), l = c ? "regex_" + o.regex : o.numericInput ? e.split("").reverse().join("") : e, 42710 null !== o.keepStatic && (l = "ks_" + o.keepStatic + l), void 0 === r.default.prototype.masksCache[l] || !0 === t ? (s = { 42711 mask: e, 42712 maskToken: r.default.prototype.analyseMask(e, c, o), 42713 validPositions: [], 42714 _buffer: void 0, 42715 buffer: void 0, 42716 tests: {}, 42717 excludes: {}, 42718 metadata: i, 42719 maskLength: void 0, 42720 jitOffset: {} 42721 }, !0 !== t && (r.default.prototype.masksCache[l] = s, s = n.default.extend(!0, {}, r.default.prototype.masksCache[l]))) : s = n.default.extend(!0, {}, r.default.prototype.masksCache[l]), 42722 s; 42723 } 42724 "function" == typeof e.mask && (e.mask = e.mask(e)); 42725 if (Array.isArray(e.mask)) { 42726 if (e.mask.length > 1) { 42727 null === e.keepStatic && (e.keepStatic = !0); 42728 var c = e.groupmarker[0]; 42729 return (e.isRTL ? e.mask.reverse() : e.mask).forEach((function(t) { 42730 c.length > 1 && (c += e.alternatormarker), void 0 !== t.mask && "function" != typeof t.mask ? c += t.mask : c += t; 42731 })), l(c += e.groupmarker[1], e.mask, e); 42732 } 42733 e.mask = e.mask.pop(); 42734 } 42735 i = e.mask && void 0 !== e.mask.mask && "function" != typeof e.mask.mask ? l(e.mask.mask, e.mask, e) : l(e.mask, e.mask, e); 42736 null === e.keepStatic && (e.keepStatic = !1); 42737 return i; 42738 }; 42739 var n = l(i(4963)), a = l(i(9695)), r = l(i(2394)), o = l(i(7184)); 42740 function s(e, t) { 42741 (null == t || t > e.length) && (t = e.length); 42742 for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i]; 42743 return n; 42744 } 42745 function l(e) { 42746 return e && e.__esModule ? e : { 42747 default: e 42748 }; 42749 } 42750 }, 42751 157: function(e, t, i) { 42752 Object.defineProperty(t, "__esModule", { 42753 value: !0 42754 }), t.mask = function() { 42755 var e = this, t = this.opts, i = this.el, u = this.dependencyLib; 42756 o.EventRuler.off(i); 42757 var f = function(t, i) { 42758 "textarea" !== t.tagName.toLowerCase() && i.ignorables.push(n.keys.Enter); 42759 var s = t.getAttribute("type"), l = "input" === t.tagName.toLowerCase() && i.supportsInputType.includes(s) || t.isContentEditable || "textarea" === t.tagName.toLowerCase(); 42760 if (!l) if ("input" === t.tagName.toLowerCase()) { 42761 var c = document.createElement("input"); 42762 c.setAttribute("type", s), l = "text" === c.type, c = null; 42763 } else l = "partial"; 42764 return !1 !== l ? function(t) { 42765 var n, s; 42766 function l() { 42767 return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== a.getLastValidPosition.call(e) || !0 !== i.nullable ? (this.inputmask.shadowRoot || this.ownerDocument).activeElement === this && i.clearMaskOnLostFocus ? (e.isRTL ? r.clearOptionalTail.call(e, a.getBuffer.call(e).slice()).reverse() : r.clearOptionalTail.call(e, a.getBuffer.call(e).slice())).join("") : n.call(this) : "" : n.call(this); 42768 } 42769 function c(e) { 42770 s.call(this, e), this.inputmask && (0, r.applyInputValue)(this, e); 42771 } 42772 if (!t.inputmask.__valueGet) { 42773 if (!0 !== i.noValuePatching) { 42774 if (Object.getOwnPropertyDescriptor) { 42775 var f = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t), "value") : void 0; 42776 f && f.get && f.set ? (n = f.get, s = f.set, Object.defineProperty(t, "value", { 42777 get: l, 42778 set: c, 42779 configurable: !0 42780 })) : "input" !== t.tagName.toLowerCase() && (n = function() { 42781 return this.textContent; 42782 }, s = function(e) { 42783 this.textContent = e; 42784 }, Object.defineProperty(t, "value", { 42785 get: l, 42786 set: c, 42787 configurable: !0 42788 })); 42789 } else document.__lookupGetter__ && t.__lookupGetter__("value") && (n = t.__lookupGetter__("value"), 42790 s = t.__lookupSetter__("value"), t.__defineGetter__("value", l), t.__defineSetter__("value", c)); 42791 t.inputmask.__valueGet = n, t.inputmask.__valueSet = s; 42792 } 42793 t.inputmask._valueGet = function(t) { 42794 return e.isRTL && !0 !== t ? n.call(this.el).split("").reverse().join("") : n.call(this.el); 42795 }, t.inputmask._valueSet = function(t, i) { 42796 s.call(this.el, null == t ? "" : !0 !== i && e.isRTL ? t.split("").reverse().join("") : t); 42797 }, void 0 === n && (n = function() { 42798 return this.value; 42799 }, s = function(e) { 42800 this.value = e; 42801 }, function(t) { 42802 if (u.valHooks && (void 0 === u.valHooks[t] || !0 !== u.valHooks[t].inputmaskpatch)) { 42803 var n = u.valHooks[t] && u.valHooks[t].get ? u.valHooks[t].get : function(e) { 42804 return e.value; 42805 }, o = u.valHooks[t] && u.valHooks[t].set ? u.valHooks[t].set : function(e, t) { 42806 return e.value = t, e; 42807 }; 42808 u.valHooks[t] = { 42809 get: function(t) { 42810 if (t.inputmask) { 42811 if (t.inputmask.opts.autoUnmask) return t.inputmask.unmaskedvalue(); 42812 var r = n(t); 42813 return -1 !== a.getLastValidPosition.call(e, void 0, void 0, t.inputmask.maskset.validPositions) || !0 !== i.nullable ? r : ""; 42814 } 42815 return n(t); 42816 }, 42817 set: function(e, t) { 42818 var i = o(e, t); 42819 return e.inputmask && (0, r.applyInputValue)(e, t), i; 42820 }, 42821 inputmaskpatch: !0 42822 }; 42823 } 42824 }(t.type), function(e) { 42825 o.EventRuler.on(e, "mouseenter", (function() { 42826 var e = this, t = e.inputmask._valueGet(!0); 42827 t != (e.inputmask.isRTL ? a.getBuffer.call(e.inputmask).slice().reverse() : a.getBuffer.call(e.inputmask)).join("") && (0, 42828 r.applyInputValue)(e, t); 42829 })); 42830 }(t)); 42831 } 42832 }(t) : t.inputmask = void 0, l; 42833 }(i, t); 42834 if (!1 !== f) { 42835 e.originalPlaceholder = i.placeholder, e.maxLength = void 0 !== i ? i.maxLength : void 0, 42836 -1 === e.maxLength && (e.maxLength = void 0), "inputMode" in i && null === i.getAttribute("inputmode") && (i.inputMode = t.inputmode, 42837 i.setAttribute("inputmode", t.inputmode)), !0 === f && (t.showMaskOnFocus = t.showMaskOnFocus && -1 === [ "cc-number", "cc-exp" ].indexOf(i.autocomplete), 42838 s.iphone && (t.insertModeVisual = !1, i.setAttribute("autocorrect", "off")), o.EventRuler.on(i, "submit", c.EventHandlers.submitEvent), 42839 o.EventRuler.on(i, "reset", c.EventHandlers.resetEvent), o.EventRuler.on(i, "blur", c.EventHandlers.blurEvent), 42840 o.EventRuler.on(i, "focus", c.EventHandlers.focusEvent), o.EventRuler.on(i, "invalid", c.EventHandlers.invalidEvent), 42841 o.EventRuler.on(i, "click", c.EventHandlers.clickEvent), o.EventRuler.on(i, "mouseleave", c.EventHandlers.mouseleaveEvent), 42842 o.EventRuler.on(i, "mouseenter", c.EventHandlers.mouseenterEvent), o.EventRuler.on(i, "paste", c.EventHandlers.pasteEvent), 42843 o.EventRuler.on(i, "cut", c.EventHandlers.cutEvent), o.EventRuler.on(i, "complete", t.oncomplete), 42844 o.EventRuler.on(i, "incomplete", t.onincomplete), o.EventRuler.on(i, "cleared", t.oncleared), 42845 !0 !== t.inputEventOnly && o.EventRuler.on(i, "keydown", c.EventHandlers.keyEvent), 42846 (s.mobile || t.inputEventOnly) && i.removeAttribute("maxLength"), o.EventRuler.on(i, "input", c.EventHandlers.inputFallBackEvent)), 42847 o.EventRuler.on(i, "setvalue", c.EventHandlers.setValueEvent), a.getBufferTemplate.call(e).join(""), 42848 e.undoValue = e._valueGet(!0); 42849 var d = (i.inputmask.shadowRoot || i.ownerDocument).activeElement; 42850 if ("" !== i.inputmask._valueGet(!0) || !1 === t.clearMaskOnLostFocus || d === i) { 42851 (0, r.applyInputValue)(i, i.inputmask._valueGet(!0), t); 42852 var p = a.getBuffer.call(e).slice(); 42853 !1 === l.isComplete.call(e, p) && t.clearIncomplete && a.resetMaskSet.call(e), t.clearMaskOnLostFocus && d !== i && (-1 === a.getLastValidPosition.call(e) ? p = [] : r.clearOptionalTail.call(e, p)), 42854 (!1 === t.clearMaskOnLostFocus || t.showMaskOnFocus && d === i || "" !== i.inputmask._valueGet(!0)) && (0, 42855 r.writeBuffer)(i, p), d === i && a.caret.call(e, i, a.seekNext.call(e, a.getLastValidPosition.call(e))); 42856 } 42857 } 42858 }; 42859 var n = i(2839), a = i(8711), r = i(7760), o = i(9716), s = i(9845), l = i(7215), c = i(6030); 42860 }, 42861 9695: function(e, t) { 42862 Object.defineProperty(t, "__esModule", { 42863 value: !0 42864 }), t.default = function(e, t, i, n) { 42865 this.matches = [], this.openGroup = e || !1, this.alternatorGroup = !1, this.isGroup = e || !1, 42866 this.isOptional = t || !1, this.isQuantifier = i || !1, this.isAlternator = n || !1, 42867 this.quantifier = { 42868 min: 1, 42869 max: 1 42870 }; 42871 }; 42872 }, 42873 3194: function() { 42874 Array.prototype.includes || Object.defineProperty(Array.prototype, "includes", { 42875 value: function(e, t) { 42876 if (null == this) throw new TypeError('"this" is null or not defined'); 42877 var i = Object(this), n = i.length >>> 0; 42878 if (0 === n) return !1; 42879 for (var a = 0 | t, r = Math.max(a >= 0 ? a : n - Math.abs(a), 0); r < n; ) { 42880 if (i[r] === e) return !0; 42881 r++; 42882 } 42883 return !1; 42884 } 42885 }); 42886 }, 42887 9302: function() { 42888 var e = Function.bind.call(Function.call, Array.prototype.reduce), t = Function.bind.call(Function.call, Object.prototype.propertyIsEnumerable), i = Function.bind.call(Function.call, Array.prototype.concat), n = Object.keys; 42889 Object.entries || (Object.entries = function(a) { 42890 return e(n(a), (function(e, n) { 42891 return i(e, "string" == typeof n && t(a, n) ? [ [ n, a[n] ] ] : []); 42892 }), []); 42893 }); 42894 }, 42895 7149: function() { 42896 function e(t) { 42897 return e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { 42898 return typeof e; 42899 } : function(e) { 42900 return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; 42901 }, e(t); 42902 } 42903 "function" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" === e("test".__proto__) ? function(e) { 42904 return e.__proto__; 42905 } : function(e) { 42906 return e.constructor.prototype; 42907 }); 42908 }, 42909 4013: function() { 42910 String.prototype.includes || (String.prototype.includes = function(e, t) { 42911 return "number" != typeof t && (t = 0), !(t + e.length > this.length) && -1 !== this.indexOf(e, t); 42912 }); 42913 }, 42914 8711: function(e, t, i) { 42915 Object.defineProperty(t, "__esModule", { 42916 value: !0 42917 }), t.caret = function(e, t, i, n, a) { 42918 var r, o = this, s = this.opts; 42919 if (void 0 === t) return "selectionStart" in e && "selectionEnd" in e ? (t = e.selectionStart, 42920 i = e.selectionEnd) : window.getSelection ? (r = window.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode !== e && r.commonAncestorContainer !== e || (t = r.startOffset, 42921 i = r.endOffset) : document.selection && document.selection.createRange && (i = (t = 0 - (r = document.selection.createRange()).duplicate().moveStart("character", -e.inputmask._valueGet().length)) + r.text.length), 42922 { 42923 begin: n ? t : c.call(o, t), 42924 end: n ? i : c.call(o, i) 42925 }; 42926 if (Array.isArray(t) && (i = o.isRTL ? t[0] : t[1], t = o.isRTL ? t[1] : t[0]), 42927 void 0 !== t.begin && (i = o.isRTL ? t.begin : t.end, t = o.isRTL ? t.end : t.begin), 42928 "number" == typeof t) { 42929 t = n ? t : c.call(o, t), i = "number" == typeof (i = n ? i : c.call(o, i)) ? i : t; 42930 var l = parseInt(((e.ownerDocument.defaultView || window).getComputedStyle ? (e.ownerDocument.defaultView || window).getComputedStyle(e, null) : e.currentStyle).fontSize) * i; 42931 if (e.scrollLeft = l > e.scrollWidth ? l : 0, e.inputmask.caretPos = { 42932 begin: t, 42933 end: i 42934 }, s.insertModeVisual && !1 === s.insertMode && t === i && (a || i++), e === (e.inputmask.shadowRoot || e.ownerDocument).activeElement) if ("setSelectionRange" in e) e.setSelectionRange(t, i); else if (window.getSelection) { 42935 if (r = document.createRange(), void 0 === e.firstChild || null === e.firstChild) { 42936 var u = document.createTextNode(""); 42937 e.appendChild(u); 42938 } 42939 r.setStart(e.firstChild, t < e.inputmask._valueGet().length ? t : e.inputmask._valueGet().length), 42940 r.setEnd(e.firstChild, i < e.inputmask._valueGet().length ? i : e.inputmask._valueGet().length), 42941 r.collapse(!0); 42942 var f = window.getSelection(); 42943 f.removeAllRanges(), f.addRange(r); 42944 } else e.createTextRange && ((r = e.createTextRange()).collapse(!0), r.moveEnd("character", i), 42945 r.moveStart("character", t), r.select()); 42946 } 42947 }, t.determineLastRequiredPosition = function(e) { 42948 var t, i, r = this, s = r.maskset, l = r.dependencyLib, c = n.getMaskTemplate.call(r, !0, o.call(r), !0, !0), u = c.length, f = o.call(r), d = {}, p = s.validPositions[f], h = void 0 !== p ? p.locator.slice() : void 0; 42949 for (t = f + 1; t < c.length; t++) h = (i = n.getTestTemplate.call(r, t, h, t - 1)).locator.slice(), 42950 d[t] = l.extend(!0, {}, i); 42951 var v = p && void 0 !== p.alternation ? p.locator[p.alternation] : void 0; 42952 for (t = u - 1; t > f && (((i = d[t]).match.optionality || i.match.optionalQuantifier && i.match.newBlockMarker || v && (v !== d[t].locator[p.alternation] && 1 != i.match.static || !0 === i.match.static && i.locator[p.alternation] && a.checkAlternationMatch.call(r, i.locator[p.alternation].toString().split(","), v.toString().split(",")) && "" !== n.getTests.call(r, t)[0].def)) && c[t] === n.getPlaceholder.call(r, t, i.match)); t--) u--; 42953 return e ? { 42954 l: u, 42955 def: d[u] ? d[u].match : void 0 42956 } : u; 42957 }, t.determineNewCaretPosition = function(e, t, i) { 42958 var a = this, c = a.maskset, u = a.opts; 42959 t && (a.isRTL ? e.end = e.begin : e.begin = e.end); 42960 if (e.begin === e.end) { 42961 switch (i = i || u.positionCaretOnClick) { 42962 case "none": 42963 break; 42964 42965 case "select": 42966 e = { 42967 begin: 0, 42968 end: r.call(a).length 42969 }; 42970 break; 42971 42972 case "ignore": 42973 e.end = e.begin = l.call(a, o.call(a)); 42974 break; 42975 42976 case "radixFocus": 42977 if (a.clicked > 1 && 0 == c.validPositions.length) break; 42978 if (function(e) { 42979 if ("" !== u.radixPoint && 0 !== u.digits) { 42980 var t = c.validPositions; 42981 if (void 0 === t[e] || t[e].input === n.getPlaceholder.call(a, e)) { 42982 if (e < l.call(a, -1)) return !0; 42983 var i = r.call(a).indexOf(u.radixPoint); 42984 if (-1 !== i) { 42985 for (var o = 0, s = t.length; o < s; o++) if (t[o] && i < o && t[o].input !== n.getPlaceholder.call(a, o)) return !1; 42986 return !0; 42987 } 42988 } 42989 } 42990 return !1; 42991 }(e.begin)) { 42992 var f = r.call(a).join("").indexOf(u.radixPoint); 42993 e.end = e.begin = u.numericInput ? l.call(a, f) : f; 42994 break; 42995 } 42996 42997 default: 42998 var d = e.begin, p = o.call(a, d, !0), h = l.call(a, -1 !== p || s.call(a, 0) ? p : -1); 42999 if (d <= h) e.end = e.begin = s.call(a, d, !1, !0) ? d : l.call(a, d); else { 43000 var v = c.validPositions[p], m = n.getTestTemplate.call(a, h, v ? v.match.locator : void 0, v), g = n.getPlaceholder.call(a, h, m.match); 43001 if ("" !== g && r.call(a)[h] !== g && !0 !== m.match.optionalQuantifier && !0 !== m.match.newBlockMarker || !s.call(a, h, u.keepStatic, !0) && m.match.def === g) { 43002 var y = l.call(a, h); 43003 (d >= y || d === h) && (h = y); 43004 } 43005 e.end = e.begin = h; 43006 } 43007 } 43008 return e; 43009 } 43010 }, t.getBuffer = r, t.getBufferTemplate = function() { 43011 var e = this.maskset; 43012 void 0 === e._buffer && (e._buffer = n.getMaskTemplate.call(this, !1, 1), void 0 === e.buffer && (e.buffer = e._buffer.slice())); 43013 return e._buffer; 43014 }, t.getLastValidPosition = o, t.isMask = s, t.resetMaskSet = function(e) { 43015 var t = this.maskset; 43016 t.buffer = void 0, !0 !== e && (t.validPositions = [], t.p = 0); 43017 }, t.seekNext = l, t.seekPrevious = function(e, t) { 43018 var i = this, a = e - 1; 43019 if (e <= 0) return 0; 43020 for (;a > 0 && (!0 === t && (!0 !== n.getTest.call(i, a).match.newBlockMarker || !s.call(i, a, void 0, !0)) || !0 !== t && !s.call(i, a, void 0, !0)); ) a--; 43021 return a; 43022 }, t.translatePosition = c; 43023 var n = i(4713), a = i(7215); 43024 function r(e) { 43025 var t = this, i = t.maskset; 43026 return void 0 !== i.buffer && !0 !== e || (i.buffer = n.getMaskTemplate.call(t, !0, o.call(t), !0), 43027 void 0 === i._buffer && (i._buffer = i.buffer.slice())), i.buffer; 43028 } 43029 function o(e, t, i) { 43030 var n = this.maskset, a = -1, r = -1, o = i || n.validPositions; 43031 void 0 === e && (e = -1); 43032 for (var s = 0, l = o.length; s < l; s++) o[s] && (t || !0 !== o[s].generatedInput) && (s <= e && (a = s), 43033 s >= e && (r = s)); 43034 return -1 === a || a == e ? r : -1 == r || e - a < r - e ? a : r; 43035 } 43036 function s(e, t, i) { 43037 var a = this, r = this.maskset, o = n.getTestTemplate.call(a, e).match; 43038 if ("" === o.def && (o = n.getTest.call(a, e).match), !0 !== o.static) return o.fn; 43039 if (!0 === i && void 0 !== r.validPositions[e] && !0 !== r.validPositions[e].generatedInput) return !0; 43040 if (!0 !== t && e > -1) { 43041 if (i) { 43042 var s = n.getTests.call(a, e); 43043 return s.length > 1 + ("" === s[s.length - 1].match.def ? 1 : 0); 43044 } 43045 var l = n.determineTestTemplate.call(a, e, n.getTests.call(a, e)), c = n.getPlaceholder.call(a, e, l.match); 43046 return l.match.def !== c; 43047 } 43048 return !1; 43049 } 43050 function l(e, t, i) { 43051 var a = this; 43052 void 0 === i && (i = !0); 43053 for (var r = e + 1; "" !== n.getTest.call(a, r).match.def && (!0 === t && (!0 !== n.getTest.call(a, r).match.newBlockMarker || !s.call(a, r, void 0, !0)) || !0 !== t && !s.call(a, r, void 0, i)); ) r++; 43054 return r; 43055 } 43056 function c(e) { 43057 var t = this.opts, i = this.el; 43058 return !this.isRTL || "number" != typeof e || t.greedy && "" === t.placeholder || !i || (e = this._valueGet().length - e) < 0 && (e = 0), 43059 e; 43060 } 43061 }, 43062 4713: function(e, t, i) { 43063 Object.defineProperty(t, "__esModule", { 43064 value: !0 43065 }), t.determineTestTemplate = c, t.getDecisionTaker = o, t.getMaskTemplate = function(e, t, i, n, a) { 43066 var r = this, o = this.opts, u = this.maskset, f = o.greedy; 43067 a && o.greedy && (o.greedy = !1, r.maskset.tests = {}); 43068 t = t || 0; 43069 var p, h, v, m, g = [], y = 0; 43070 do { 43071 if (!0 === e && u.validPositions[y]) h = (v = a && u.validPositions[y].match.optionality && void 0 === u.validPositions[y + 1] && (!0 === u.validPositions[y].generatedInput || u.validPositions[y].input == o.skipOptionalPartCharacter && y > 0) ? c.call(r, y, d.call(r, y, p, y - 1)) : u.validPositions[y]).match, 43072 p = v.locator.slice(), g.push(!0 === i ? v.input : !1 === i ? h.nativeDef : s.call(r, y, h)); else { 43073 h = (v = l.call(r, y, p, y - 1)).match, p = v.locator.slice(); 43074 var k = !0 !== n && (!1 !== o.jitMasking ? o.jitMasking : h.jit); 43075 (m = (m && h.static && h.def !== o.groupSeparator && null === h.fn || u.validPositions[y - 1] && h.static && h.def !== o.groupSeparator && null === h.fn) && u.tests[y]) || !1 === k || void 0 === k || "number" == typeof k && isFinite(k) && k > y ? g.push(!1 === i ? h.nativeDef : s.call(r, g.length, h)) : m = !1; 43076 } 43077 y++; 43078 } while (!0 !== h.static || "" !== h.def || t > y); 43079 "" === g[g.length - 1] && g.pop(); 43080 !1 === i && void 0 !== u.maskLength || (u.maskLength = y - 1); 43081 return o.greedy = f, g; 43082 }, t.getPlaceholder = s, t.getTest = u, t.getTestTemplate = l, t.getTests = d, t.isSubsetOf = f; 43083 var n, a = (n = i(2394)) && n.__esModule ? n : { 43084 default: n 43085 }; 43086 function r(e, t) { 43087 var i = (null != e.alternation ? e.mloc[o(e)] : e.locator).join(""); 43088 if ("" !== i) for (;i.length < t; ) i += "0"; 43089 return i; 43090 } 43091 function o(e) { 43092 var t = e.locator[e.alternation]; 43093 return "string" == typeof t && t.length > 0 && (t = t.split(",")[0]), void 0 !== t ? t.toString() : ""; 43094 } 43095 function s(e, t, i) { 43096 var n = this.opts, a = this.maskset; 43097 if (void 0 !== (t = t || u.call(this, e).match).placeholder || !0 === i) return "function" == typeof t.placeholder ? t.placeholder(n) : t.placeholder; 43098 if (!0 === t.static) { 43099 if (e > -1 && void 0 === a.validPositions[e]) { 43100 var r, o = d.call(this, e), s = []; 43101 if (o.length > 1 + ("" === o[o.length - 1].match.def ? 1 : 0)) for (var l = 0; l < o.length; l++) if ("" !== o[l].match.def && !0 !== o[l].match.optionality && !0 !== o[l].match.optionalQuantifier && (!0 === o[l].match.static || void 0 === r || !1 !== o[l].match.fn.test(r.match.def, a, e, !0, n)) && (s.push(o[l]), 43102 !0 === o[l].match.static && (r = o[l]), s.length > 1 && /[0-9a-bA-Z]/.test(s[0].match.def))) return n.placeholder.charAt(e % n.placeholder.length); 43103 } 43104 return t.def; 43105 } 43106 return n.placeholder.charAt(e % n.placeholder.length); 43107 } 43108 function l(e, t, i) { 43109 return this.maskset.validPositions[e] || c.call(this, e, d.call(this, e, t ? t.slice() : t, i)); 43110 } 43111 function c(e, t) { 43112 var i = this.opts, n = 0, a = function(e, t) { 43113 var i = 0, n = !1; 43114 t.forEach((function(e) { 43115 e.match.optionality && (0 !== i && i !== e.match.optionality && (n = !0), (0 === i || i > e.match.optionality) && (i = e.match.optionality)); 43116 })), i && (0 == e || 1 == t.length ? i = 0 : n || (i = 0)); 43117 return i; 43118 }(e, t); 43119 e = e > 0 ? e - 1 : 0; 43120 var o, s, l, c = r(u.call(this, e)); 43121 i.greedy && t.length > 1 && "" === t[t.length - 1].match.def && (n = 1); 43122 for (var f = 0; f < t.length - n; f++) { 43123 var d = t[f]; 43124 o = r(d, c.length); 43125 var p = Math.abs(o - c); 43126 (void 0 === s || "" !== o && p < s || l && !i.greedy && l.match.optionality && l.match.optionality - a > 0 && "master" === l.match.newBlockMarker && (!d.match.optionality || d.match.optionality - a < 1 || !d.match.newBlockMarker) || l && !i.greedy && l.match.optionalQuantifier && !d.match.optionalQuantifier) && (s = p, 43127 l = d); 43128 } 43129 return l; 43130 } 43131 function u(e, t) { 43132 var i = this.maskset; 43133 return i.validPositions[e] ? i.validPositions[e] : (t || d.call(this, e))[0]; 43134 } 43135 function f(e, t, i) { 43136 function n(e) { 43137 for (var t, i = [], n = -1, a = 0, r = e.length; a < r; a++) if ("-" === e.charAt(a)) for (t = e.charCodeAt(a + 1); ++n < t; ) i.push(String.fromCharCode(n)); else n = e.charCodeAt(a), 43138 i.push(e.charAt(a)); 43139 return i.join(""); 43140 } 43141 return e.match.def === t.match.nativeDef || !(!(i.regex || e.match.fn instanceof RegExp && t.match.fn instanceof RegExp) || !0 === e.match.static || !0 === t.match.static) && -1 !== n(t.match.fn.toString().replace(/[[\]/]/g, "")).indexOf(n(e.match.fn.toString().replace(/[[\]/]/g, ""))); 43142 } 43143 function d(e, t, i) { 43144 var n, r, o = this, s = this.dependencyLib, l = this.maskset, u = this.opts, d = this.el, p = l.maskToken, h = t ? i : 0, v = t ? t.slice() : [ 0 ], m = [], g = !1, y = t ? t.join("") : ""; 43145 function k(t, i, r, s) { 43146 function c(r, s, p) { 43147 function v(e, t) { 43148 var i = 0 === t.matches.indexOf(e); 43149 return i || t.matches.every((function(n, a) { 43150 return !0 === n.isQuantifier ? i = v(e, t.matches[a - 1]) : Object.prototype.hasOwnProperty.call(n, "matches") && (i = v(e, n)), 43151 !i; 43152 })), i; 43153 } 43154 function x(e, t, i) { 43155 var n, a; 43156 if ((l.tests[e] || l.validPositions[e]) && (l.tests[e] || [ l.validPositions[e] ]).every((function(e, r) { 43157 if (e.mloc[t]) return n = e, !1; 43158 var o = void 0 !== i ? i : e.alternation, s = void 0 !== e.locator[o] ? e.locator[o].toString().indexOf(t) : -1; 43159 return (void 0 === a || s < a) && -1 !== s && (n = e, a = s), !0; 43160 })), n) { 43161 var r = n.locator[n.alternation]; 43162 return (n.mloc[t] || n.mloc[r] || n.locator).slice((void 0 !== i ? i : n.alternation) + 1); 43163 } 43164 return void 0 !== i ? x(e, t) : void 0; 43165 } 43166 function P(e, t) { 43167 var i = e.alternation, n = void 0 === t || i === t.alternation && -1 === e.locator[i].toString().indexOf(t.locator[i]); 43168 if (!n && i > t.alternation) for (var a = t.alternation; a < i; a++) if (e.locator[a] !== t.locator[a]) { 43169 i = a, n = !0; 43170 break; 43171 } 43172 if (n) { 43173 e.mloc = e.mloc || {}; 43174 var r = e.locator[i]; 43175 if (void 0 !== r) { 43176 if ("string" == typeof r && (r = r.split(",")[0]), void 0 === e.mloc[r] && (e.mloc[r] = e.locator.slice()), 43177 void 0 !== t) { 43178 for (var o in t.mloc) "string" == typeof o && (o = o.split(",")[0]), void 0 === e.mloc[o] && (e.mloc[o] = t.mloc[o]); 43179 e.locator[i] = Object.keys(e.mloc).join(","); 43180 } 43181 return !0; 43182 } 43183 e.alternation = void 0; 43184 } 43185 return !1; 43186 } 43187 function w(e, t) { 43188 if (e.locator.length !== t.locator.length) return !1; 43189 for (var i = e.alternation + 1; i < e.locator.length; i++) if (e.locator[i] !== t.locator[i]) return !1; 43190 return !0; 43191 } 43192 if (h > e + u._maxTestPos) throw "Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. " + l.mask; 43193 if (h === e && void 0 === r.matches) { 43194 if (m.push({ 43195 match: r, 43196 locator: s.reverse(), 43197 cd: y, 43198 mloc: {} 43199 }), !r.optionality || void 0 !== p || !(u.definitions && u.definitions[r.nativeDef] && u.definitions[r.nativeDef].optional || a.default.prototype.definitions[r.nativeDef] && a.default.prototype.definitions[r.nativeDef].optional)) return !0; 43200 g = !0, h = e; 43201 } else if (void 0 !== r.matches) { 43202 if (r.isGroup && p !== r) return function() { 43203 if (r = c(t.matches[t.matches.indexOf(r) + 1], s, p)) return !0; 43204 }(); 43205 if (r.isOptional) return function() { 43206 var t = r, a = m.length; 43207 if (r = k(r, i, s, p), m.length > 0) { 43208 if (m.forEach((function(e, t) { 43209 t >= a && (e.match.optionality = e.match.optionality ? e.match.optionality + 1 : 1); 43210 })), n = m[m.length - 1].match, void 0 !== p || !v(n, t)) return r; 43211 g = !0, h = e; 43212 } 43213 }(); 43214 if (r.isAlternator) return function() { 43215 o.hasAlternator = !0; 43216 var n, a, v, y = r, k = [], b = m.slice(), S = s.length, M = !1, _ = i.length > 0 ? i.shift() : -1; 43217 if (-1 === _ || "string" == typeof _) { 43218 var O, E = h, T = i.slice(), j = []; 43219 if ("string" == typeof _) j = _.split(","); else for (O = 0; O < y.matches.length; O++) j.push(O.toString()); 43220 if (void 0 !== l.excludes[e]) { 43221 for (var A = j.slice(), D = 0, B = l.excludes[e].length; D < B; D++) { 43222 var C = l.excludes[e][D].toString().split(":"); 43223 s.length == C[1] && j.splice(j.indexOf(C[0]), 1); 43224 } 43225 0 === j.length && (delete l.excludes[e], j = A); 43226 } 43227 (!0 === u.keepStatic || isFinite(parseInt(u.keepStatic)) && E >= u.keepStatic) && (j = j.slice(0, 1)); 43228 for (var R = 0; R < j.length; R++) { 43229 O = parseInt(j[R]), m = [], i = "string" == typeof _ && x(h, O, S) || T.slice(); 43230 var L = y.matches[O]; 43231 if (L && c(L, [ O ].concat(s), p)) r = !0; else if (0 === R && (M = !0), L && L.matches && L.matches.length > y.matches[0].matches.length) break; 43232 n = m.slice(), h = E, m = []; 43233 for (var F = 0; F < n.length; F++) { 43234 var I = n[F], N = !1; 43235 I.match.jit = I.match.jit || M, I.alternation = I.alternation || S, P(I); 43236 for (var V = 0; V < k.length; V++) { 43237 var G = k[V]; 43238 if ("string" != typeof _ || void 0 !== I.alternation && j.includes(I.locator[I.alternation].toString())) { 43239 if (I.match.nativeDef === G.match.nativeDef) { 43240 N = !0, P(G, I); 43241 break; 43242 } 43243 if (f(I, G, u)) { 43244 P(I, G) && (N = !0, k.splice(k.indexOf(G), 0, I)); 43245 break; 43246 } 43247 if (f(G, I, u)) { 43248 P(G, I); 43249 break; 43250 } 43251 if (v = G, !0 === (a = I).match.static && !0 !== v.match.static && v.match.fn.test(a.match.def, l, e, !1, u, !1)) { 43252 w(I, G) || void 0 !== d.inputmask.userOptions.keepStatic ? P(I, G) && (N = !0, k.splice(k.indexOf(G), 0, I)) : u.keepStatic = !0; 43253 break; 43254 } 43255 } 43256 } 43257 N || k.push(I); 43258 } 43259 } 43260 m = b.concat(k), h = e, g = m.length > 0, r = k.length > 0, i = T.slice(); 43261 } else r = c(y.matches[_] || t.matches[_], [ _ ].concat(s), p); 43262 if (r) return !0; 43263 }(); 43264 if (r.isQuantifier && p !== t.matches[t.matches.indexOf(r) - 1]) return function() { 43265 for (var a = r, o = !1, f = i.length > 0 ? i.shift() : 0; f < (isNaN(a.quantifier.max) ? f + 1 : a.quantifier.max) && h <= e; f++) { 43266 var d = t.matches[t.matches.indexOf(a) - 1]; 43267 if (r = c(d, [ f ].concat(s), d)) { 43268 if (m.forEach((function(t, i) { 43269 (n = b(d, t.match) ? t.match : m[m.length - 1].match).optionalQuantifier = f >= a.quantifier.min, 43270 n.jit = (f + 1) * (d.matches.indexOf(n) + 1) > a.quantifier.jit, n.optionalQuantifier && v(n, d) && (g = !0, 43271 h = e, u.greedy && null == l.validPositions[e - 1] && f > a.quantifier.min && -1 != [ "*", "+" ].indexOf(a.quantifier.max) && (m.pop(), 43272 y = void 0), o = !0, r = !1), !o && n.jit && (l.jitOffset[e] = d.matches.length - d.matches.indexOf(n)); 43273 })), o) break; 43274 return !0; 43275 } 43276 } 43277 }(); 43278 if (r = k(r, i, s, p)) return !0; 43279 } else h++; 43280 } 43281 for (var p = i.length > 0 ? i.shift() : 0; p < t.matches.length; p++) if (!0 !== t.matches[p].isQuantifier) { 43282 var v = c(t.matches[p], [ p ].concat(r), s); 43283 if (v && h === e) return v; 43284 if (h > e) break; 43285 } 43286 } 43287 function b(e, t) { 43288 var i = -1 != e.matches.indexOf(t); 43289 return i || e.matches.forEach((function(e, n) { 43290 void 0 === e.matches || i || (i = b(e, t)); 43291 })), i; 43292 } 43293 if (e > -1) { 43294 if (void 0 === t) { 43295 for (var x, P = e - 1; void 0 === (x = l.validPositions[P] || l.tests[P]) && P > -1; ) P--; 43296 void 0 !== x && P > -1 && (v = function(e, t) { 43297 var i, n = []; 43298 return Array.isArray(t) || (t = [ t ]), t.length > 0 && (void 0 === t[0].alternation || !0 === u.keepStatic ? 0 === (n = c.call(o, e, t.slice()).locator.slice()).length && (n = t[0].locator.slice()) : t.forEach((function(e) { 43299 "" !== e.def && (0 === n.length ? (i = e.alternation, n = e.locator.slice()) : e.locator[i] && -1 === n[i].toString().indexOf(e.locator[i]) && (n[i] += "," + e.locator[i])); 43300 }))), n; 43301 }(P, x), y = v.join(""), h = P); 43302 } 43303 if (l.tests[e] && l.tests[e][0].cd === y) return l.tests[e]; 43304 for (var w = v.shift(); w < p.length; w++) { 43305 if (k(p[w], v, [ w ]) && h === e || h > e) break; 43306 } 43307 } 43308 return (0 === m.length || g) && m.push({ 43309 match: { 43310 fn: null, 43311 static: !0, 43312 optionality: !1, 43313 casing: null, 43314 def: "", 43315 placeholder: "" 43316 }, 43317 locator: [], 43318 mloc: {}, 43319 cd: y 43320 }), void 0 !== t && l.tests[e] ? r = s.extend(!0, [], m) : (l.tests[e] = s.extend(!0, [], m), 43321 r = l.tests[e]), m.forEach((function(e) { 43322 e.match.optionality = e.match.defOptionality || !1; 43323 })), r; 43324 } 43325 }, 43326 7215: function(e, t, i) { 43327 Object.defineProperty(t, "__esModule", { 43328 value: !0 43329 }), t.alternate = s, t.checkAlternationMatch = function(e, t, i) { 43330 for (var n, a = this.opts.greedy ? t : t.slice(0, 1), r = !1, o = void 0 !== i ? i.split(",") : [], s = 0; s < o.length; s++) -1 !== (n = e.indexOf(o[s])) && e.splice(n, 1); 43331 for (var l = 0; l < e.length; l++) if (a.includes(e[l])) { 43332 r = !0; 43333 break; 43334 } 43335 return r; 43336 }, t.handleRemove = function(e, t, i, o, l) { 43337 var c = this, u = this.maskset, f = this.opts; 43338 if ((f.numericInput || c.isRTL) && (t === a.keys.Backspace ? t = a.keys.Delete : t === a.keys.Delete && (t = a.keys.Backspace), 43339 c.isRTL)) { 43340 var d = i.end; 43341 i.end = i.begin, i.begin = d; 43342 } 43343 var p, h = r.getLastValidPosition.call(c, void 0, !0); 43344 i.end >= r.getBuffer.call(c).length && h >= i.end && (i.end = h + 1); 43345 t === a.keys.Backspace ? i.end - i.begin < 1 && (i.begin = r.seekPrevious.call(c, i.begin)) : t === a.keys.Delete && i.begin === i.end && (i.end = r.isMask.call(c, i.end, !0, !0) ? i.end + 1 : r.seekNext.call(c, i.end) + 1); 43346 if (!1 !== (p = v.call(c, i))) { 43347 if (!0 !== o && !1 !== f.keepStatic || null !== f.regex && -1 !== n.getTest.call(c, i.begin).match.def.indexOf("|")) { 43348 var m = s.call(c, !0); 43349 if (m) { 43350 var g = void 0 !== m.caret ? m.caret : m.pos ? r.seekNext.call(c, m.pos.begin ? m.pos.begin : m.pos) : r.getLastValidPosition.call(c, -1, !0); 43351 (t !== a.keys.Delete || i.begin > g) && i.begin; 43352 } 43353 } 43354 !0 !== o && (u.p = t === a.keys.Delete ? i.begin + p : i.begin, u.p = r.determineNewCaretPosition.call(c, { 43355 begin: u.p, 43356 end: u.p 43357 }, !1, !1 === f.insertMode && t === a.keys.Backspace ? "none" : void 0).begin); 43358 } 43359 }, t.isComplete = c, t.isSelection = u, t.isValid = f, t.refreshFromBuffer = p, 43360 t.revalidateMask = v; 43361 var n = i(4713), a = i(2839), r = i(8711), o = i(6030); 43362 function s(e, t, i, a, o, l) { 43363 var c, u, d, p, h, v, m, g, y, k, b, x = this, P = this.dependencyLib, w = this.opts, S = x.maskset, M = P.extend(!0, [], S.validPositions), _ = P.extend(!0, {}, S.tests), O = !1, E = !1, T = void 0 !== o ? o : r.getLastValidPosition.call(x); 43364 if (l && (k = l.begin, b = l.end, l.begin > l.end && (k = l.end, b = l.begin)), 43365 -1 === T && void 0 === o) c = 0, u = (p = n.getTest.call(x, c)).alternation; else for (;T >= 0; T--) if ((d = S.validPositions[T]) && void 0 !== d.alternation) { 43366 if (T <= (e || 0) && p && p.locator[d.alternation] !== d.locator[d.alternation]) break; 43367 c = T, u = S.validPositions[c].alternation, p = d; 43368 } 43369 if (void 0 !== u) { 43370 m = parseInt(c), S.excludes[m] = S.excludes[m] || [], !0 !== e && S.excludes[m].push((0, 43371 n.getDecisionTaker)(p) + ":" + p.alternation); 43372 var j = [], A = -1; 43373 for (h = m; h < r.getLastValidPosition.call(x, void 0, !0) + 1; h++) -1 === A && e <= h && void 0 !== t && (j.push(t), 43374 A = j.length - 1), (v = S.validPositions[h]) && !0 !== v.generatedInput && (void 0 === l || h < k || h >= b) && j.push(v.input), 43375 delete S.validPositions[h]; 43376 for (-1 === A && void 0 !== t && (j.push(t), A = j.length - 1); void 0 !== S.excludes[m] && S.excludes[m].length < 10; ) { 43377 for (S.tests = {}, r.resetMaskSet.call(x, !0), O = !0, h = 0; h < j.length && (g = O.caret || r.getLastValidPosition.call(x, void 0, !0) + 1, 43378 y = j[h], O = f.call(x, g, y, !1, a, !0)); h++) h === A && (E = O), 1 == e && O && (E = { 43379 caretPos: h 43380 }); 43381 if (O) break; 43382 if (r.resetMaskSet.call(x), p = n.getTest.call(x, m), S.validPositions = P.extend(!0, [], M), 43383 S.tests = P.extend(!0, {}, _), !S.excludes[m]) { 43384 E = s.call(x, e, t, i, a, m - 1, l); 43385 break; 43386 } 43387 var D = (0, n.getDecisionTaker)(p); 43388 if (-1 !== S.excludes[m].indexOf(D + ":" + p.alternation)) { 43389 E = s.call(x, e, t, i, a, m - 1, l); 43390 break; 43391 } 43392 for (S.excludes[m].push(D + ":" + p.alternation), h = m; h < r.getLastValidPosition.call(x, void 0, !0) + 1; h++) delete S.validPositions[h]; 43393 } 43394 } 43395 return E && !1 === w.keepStatic || delete S.excludes[m], E; 43396 } 43397 function l(e, t, i) { 43398 var n = this.opts, r = this.maskset; 43399 switch (n.casing || t.casing) { 43400 case "upper": 43401 e = e.toUpperCase(); 43402 break; 43403 43404 case "lower": 43405 e = e.toLowerCase(); 43406 break; 43407 43408 case "title": 43409 var o = r.validPositions[i - 1]; 43410 e = 0 === i || o && o.input === String.fromCharCode(a.keyCode.Space) ? e.toUpperCase() : e.toLowerCase(); 43411 break; 43412 43413 default: 43414 if ("function" == typeof n.casing) { 43415 var s = Array.prototype.slice.call(arguments); 43416 s.push(r.validPositions), e = n.casing.apply(this, s); 43417 } 43418 } 43419 return e; 43420 } 43421 function c(e) { 43422 var t = this, i = this.opts, a = this.maskset; 43423 if ("function" == typeof i.isComplete) return i.isComplete(e, i); 43424 if ("*" !== i.repeat) { 43425 var o = !1, s = r.determineLastRequiredPosition.call(t, !0), l = r.seekPrevious.call(t, s.l); 43426 if (void 0 === s.def || s.def.newBlockMarker || s.def.optionality || s.def.optionalQuantifier) { 43427 o = !0; 43428 for (var c = 0; c <= l; c++) { 43429 var u = n.getTestTemplate.call(t, c).match; 43430 if (!0 !== u.static && void 0 === a.validPositions[c] && !0 !== u.optionality && !0 !== u.optionalQuantifier || !0 === u.static && e[c] !== n.getPlaceholder.call(t, c, u)) { 43431 o = !1; 43432 break; 43433 } 43434 } 43435 } 43436 return o; 43437 } 43438 } 43439 function u(e) { 43440 var t = this.opts.insertMode ? 0 : 1; 43441 return this.isRTL ? e.begin - e.end > t : e.end - e.begin > t; 43442 } 43443 function f(e, t, i, a, o, d, m) { 43444 var g = this, y = this.dependencyLib, k = this.opts, b = g.maskset; 43445 i = !0 === i; 43446 var x = e; 43447 function P(e) { 43448 if (void 0 !== e) { 43449 if (void 0 !== e.remove && (Array.isArray(e.remove) || (e.remove = [ e.remove ]), 43450 e.remove.sort((function(e, t) { 43451 return g.isRTL ? e.pos - t.pos : t.pos - e.pos; 43452 })).forEach((function(e) { 43453 v.call(g, { 43454 begin: e, 43455 end: e + 1 43456 }); 43457 })), e.remove = void 0), void 0 !== e.insert && (Array.isArray(e.insert) || (e.insert = [ e.insert ]), 43458 e.insert.sort((function(e, t) { 43459 return g.isRTL ? t.pos - e.pos : e.pos - t.pos; 43460 })).forEach((function(e) { 43461 "" !== e.c && f.call(g, e.pos, e.c, void 0 === e.strict || e.strict, void 0 !== e.fromIsValid ? e.fromIsValid : a); 43462 })), e.insert = void 0), e.refreshFromBuffer && e.buffer) { 43463 var t = e.refreshFromBuffer; 43464 p.call(g, !0 === t ? t : t.start, t.end, e.buffer), e.refreshFromBuffer = void 0; 43465 } 43466 void 0 !== e.rewritePosition && (x = e.rewritePosition, e = !0); 43467 } 43468 return e; 43469 } 43470 function w(t, i, o) { 43471 var s = !1; 43472 return n.getTests.call(g, t).every((function(c, f) { 43473 var d = c.match; 43474 if (r.getBuffer.call(g, !0), !1 !== (s = (!d.jit || void 0 !== b.validPositions[r.seekPrevious.call(g, t)]) && (null != d.fn ? d.fn.test(i, b, t, o, k, u.call(g, e)) : (i === d.def || i === k.skipOptionalPartCharacter) && "" !== d.def && { 43475 c: n.getPlaceholder.call(g, t, d, !0) || d.def, 43476 pos: t 43477 }))) { 43478 var p = void 0 !== s.c ? s.c : i, h = t; 43479 return p = p === k.skipOptionalPartCharacter && !0 === d.static ? n.getPlaceholder.call(g, t, d, !0) || d.def : p, 43480 !0 !== (s = P(s)) && void 0 !== s.pos && s.pos !== t && (h = s.pos), !0 !== s && void 0 === s.pos && void 0 === s.c ? !1 : (!1 === v.call(g, e, y.extend({}, c, { 43481 input: l.call(g, p, d, h) 43482 }), a, h) && (s = !1), !1); 43483 } 43484 return !0; 43485 })), s; 43486 } 43487 void 0 !== e.begin && (x = g.isRTL ? e.end : e.begin); 43488 var S = !0, M = y.extend(!0, {}, b.validPositions); 43489 if (!1 === k.keepStatic && void 0 !== b.excludes[x] && !0 !== o && !0 !== a) for (var _ = x; _ < (g.isRTL ? e.begin : e.end); _++) void 0 !== b.excludes[_] && (b.excludes[_] = void 0, 43490 delete b.tests[_]); 43491 if ("function" == typeof k.preValidation && !0 !== a && !0 !== d && (S = P(S = k.preValidation.call(g, r.getBuffer.call(g), x, t, u.call(g, e), k, b, e, i || o))), 43492 !0 === S) { 43493 if (S = w(x, t, i), (!i || !0 === a) && !1 === S && !0 !== d) { 43494 var O = b.validPositions[x]; 43495 if (!O || !0 !== O.match.static || O.match.def !== t && t !== k.skipOptionalPartCharacter) { 43496 if (k.insertMode || void 0 === b.validPositions[r.seekNext.call(g, x)] || e.end > x) { 43497 var E = !1; 43498 if (b.jitOffset[x] && void 0 === b.validPositions[r.seekNext.call(g, x)] && !1 !== (S = f.call(g, x + b.jitOffset[x], t, !0, !0)) && (!0 !== o && (S.caret = x), 43499 E = !0), e.end > x && (b.validPositions[x] = void 0), !E && !r.isMask.call(g, x, k.keepStatic && 0 === x)) for (var T = x + 1, j = r.seekNext.call(g, x, !1, 0 !== x); T <= j; T++) if (!1 !== (S = w(T, t, i))) { 43500 S = h.call(g, x, void 0 !== S.pos ? S.pos : T) || S, x = T; 43501 break; 43502 } 43503 } 43504 } else S = { 43505 caret: r.seekNext.call(g, x) 43506 }; 43507 } 43508 g.hasAlternator && !0 !== o && !i && (!1 === S && k.keepStatic && (c.call(g, r.getBuffer.call(g)) || 0 === x) ? S = s.call(g, x, t, i, a, void 0, e) : (u.call(g, e) && b.tests[x] && b.tests[x].length > 1 && k.keepStatic || 1 == S && !0 !== k.numericInput && b.tests[x] && b.tests[x].length > 1 && r.getLastValidPosition.call(g, void 0, !0) > x) && (S = s.call(g, !0))), 43509 !0 === S && (S = { 43510 pos: x 43511 }); 43512 } 43513 if ("function" == typeof k.postValidation && !0 !== a && !0 !== d) { 43514 var A = k.postValidation.call(g, r.getBuffer.call(g, !0), void 0 !== e.begin ? g.isRTL ? e.end : e.begin : e, t, S, k, b, i, m); 43515 void 0 !== A && (S = !0 === A ? S : A); 43516 } 43517 S && void 0 === S.pos && (S.pos = x), !1 === S || !0 === d ? (r.resetMaskSet.call(g, !0), 43518 b.validPositions = y.extend(!0, [], M)) : h.call(g, void 0, x, !0); 43519 var D = P(S); 43520 void 0 !== g.maxLength && (r.getBuffer.call(g).length > g.maxLength && !a && (r.resetMaskSet.call(g, !0), 43521 b.validPositions = y.extend(!0, [], M), D = !1)); 43522 return D; 43523 } 43524 function d(e, t, i) { 43525 for (var a = this.maskset, r = !1, o = n.getTests.call(this, e), s = 0; s < o.length; s++) { 43526 if (o[s].match && (o[s].match.nativeDef === t.match[i.shiftPositions ? "def" : "nativeDef"] && (!i.shiftPositions || !t.match.static) || o[s].match.nativeDef === t.match.nativeDef || i.regex && !o[s].match.static && o[s].match.fn.test(t.input, a, e, !1, i))) { 43527 r = !0; 43528 break; 43529 } 43530 if (o[s].match && o[s].match.def === t.match.nativeDef) { 43531 r = void 0; 43532 break; 43533 } 43534 } 43535 return !1 === r && void 0 !== a.jitOffset[e] && (r = d.call(this, e + a.jitOffset[e], t, i)), 43536 r; 43537 } 43538 function p(e, t, i) { 43539 var n, a, s = this, l = this.maskset, c = this.opts, u = this.dependencyLib, f = c.skipOptionalPartCharacter, d = s.isRTL ? i.slice().reverse() : i; 43540 if (c.skipOptionalPartCharacter = "", !0 === e) r.resetMaskSet.call(s), l.tests = {}, 43541 e = 0, t = i.length, a = r.determineNewCaretPosition.call(s, { 43542 begin: 0, 43543 end: 0 43544 }, !1).begin; else { 43545 for (n = e; n < t; n++) delete l.validPositions[n]; 43546 a = e; 43547 } 43548 var p = new u.Event("keypress"); 43549 for (n = e; n < t; n++) { 43550 p.key = d[n].toString(), s.ignorable = !1; 43551 var h = o.EventHandlers.keypressEvent.call(s, p, !0, !1, !1, a); 43552 !1 !== h && void 0 !== h && (a = h.forwardPosition); 43553 } 43554 c.skipOptionalPartCharacter = f; 43555 } 43556 function h(e, t, i) { 43557 var a = this, o = this.maskset, s = this.dependencyLib; 43558 if (void 0 === e) for (e = t - 1; e > 0 && !o.validPositions[e]; e--) ; 43559 for (var l = e; l < t; l++) { 43560 if (void 0 === o.validPositions[l] && !r.isMask.call(a, l, !1)) if (0 == l ? n.getTest.call(a, l) : o.validPositions[l - 1]) { 43561 var c = n.getTests.call(a, l).slice(); 43562 "" === c[c.length - 1].match.def && c.pop(); 43563 var u, d = n.determineTestTemplate.call(a, l, c); 43564 if (d && (!0 !== d.match.jit || "master" === d.match.newBlockMarker && (u = o.validPositions[l + 1]) && !0 === u.match.optionalQuantifier) && ((d = s.extend({}, d, { 43565 input: n.getPlaceholder.call(a, l, d.match, !0) || d.match.def 43566 })).generatedInput = !0, v.call(a, l, d, !0), !0 !== i)) { 43567 var p = o.validPositions[t].input; 43568 return o.validPositions[t] = void 0, f.call(a, t, p, !0, !0); 43569 } 43570 } 43571 } 43572 } 43573 function v(e, t, i, a) { 43574 var o = this, s = this.maskset, l = this.opts, c = this.dependencyLib; 43575 function u(e, t, i) { 43576 var n = t[e]; 43577 if (void 0 !== n && !0 === n.match.static && !0 !== n.match.optionality && (void 0 === t[0] || void 0 === t[0].alternation)) { 43578 var a = i.begin <= e - 1 ? t[e - 1] && !0 === t[e - 1].match.static && t[e - 1] : t[e - 1], r = i.end > e + 1 ? t[e + 1] && !0 === t[e + 1].match.static && t[e + 1] : t[e + 1]; 43579 return a && r; 43580 } 43581 return !1; 43582 } 43583 var p = 0, h = void 0 !== e.begin ? e.begin : e, v = void 0 !== e.end ? e.end : e, m = !0; 43584 if (e.begin > e.end && (h = e.end, v = e.begin), a = void 0 !== a ? a : h, void 0 === i && (h !== v || l.insertMode && void 0 !== s.validPositions[a] || void 0 === t || t.match.optionalQuantifier || t.match.optionality)) { 43585 var g, y = c.extend(!0, {}, s.validPositions), k = r.getLastValidPosition.call(o, void 0, !0); 43586 for (s.p = h, g = k; g >= h; g--) delete s.validPositions[g], void 0 === t && delete s.tests[g + 1]; 43587 var b, x, P = a, w = P; 43588 for (t && (s.validPositions[a] = c.extend(!0, {}, t), w++, P++), g = t ? v : v - 1; g <= k; g++) { 43589 if (void 0 !== (b = y[g]) && !0 !== b.generatedInput && (g >= v || g >= h && u(g, y, { 43590 begin: h, 43591 end: v 43592 }))) { 43593 for (;"" !== n.getTest.call(o, w).match.def; ) { 43594 if (!1 !== (x = d.call(o, w, b, l)) || "+" === b.match.def) { 43595 "+" === b.match.def && r.getBuffer.call(o, !0); 43596 var S = f.call(o, w, b.input, "+" !== b.match.def, !0); 43597 if (m = !1 !== S, P = (S.pos || w) + 1, !m && x) break; 43598 } else m = !1; 43599 if (m) { 43600 void 0 === t && b.match.static && g === e.begin && p++; 43601 break; 43602 } 43603 if (!m && r.getBuffer.call(o), w > s.maskLength) break; 43604 w++; 43605 } 43606 "" == n.getTest.call(o, w).match.def && (m = !1), w = P; 43607 } 43608 if (!m) break; 43609 } 43610 if (!m) return s.validPositions = c.extend(!0, [], y), r.resetMaskSet.call(o, !0), 43611 !1; 43612 } else t && n.getTest.call(o, a).match.cd === t.match.cd && (s.validPositions[a] = c.extend(!0, {}, t)); 43613 return r.resetMaskSet.call(o, !0), p; 43614 } 43615 } 43616 }, t = {}; 43617 function i(n) { 43618 var a = t[n]; 43619 if (void 0 !== a) return a.exports; 43620 var r = t[n] = { 43621 exports: {} 43622 }; 43623 return e[n](r, r.exports, i), r.exports; 43624 } 43625 var n = {}; 43626 return function() { 43627 var e, t = n; 43628 Object.defineProperty(t, "__esModule", { 43629 value: !0 43630 }), t.default = void 0, i(7149), i(3194), i(9302), i(4013), i(3851), i(219), i(207), 43631 i(5296); 43632 var a = ((e = i(2394)) && e.__esModule ? e : { 43633 default: e 43634 }).default; 43635 t.default = a; 43636 }(), n; 43637 }(); 43638})); 43639 43640/***/ }), 43641
vendor: 285,755 bytes, lines 43642-54368
43642/***/ "./node_modules/jquery/dist/jquery.js": 43643/*!********************************************!*\ 43644 !*** ./node_modules/jquery/dist/jquery.js ***! 43645 \********************************************/ 43646/***/ (function(module, exports) { 43647 43648var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 43649 * jQuery JavaScript Library v3.7.1 43650 * https://jquery.com/ 43651 * 43652 * Copyright OpenJS Foundation and other contributors 43653 * Released under the MIT license 43654 * https://jquery.org/license 43655 * 43656 * Date: 2023-08-28T13:37Z 43657 */ 43658( function( global, factory ) { 43659 43660 "use strict"; 43661 43662 if ( true && typeof module.exports === "object" ) { 43663 43664 // For CommonJS and CommonJS-like environments where a proper `window` 43665 // is present, execute the factory and get jQuery. 43666 // For environments that do not have a `window` with a `document` 43667 // (such as Node.js), expose a factory as module.exports. 43668 // This accentuates the need for the creation of a real `window`. 43669 // e.g. var jQuery = require("jquery")(window); 43670 // See ticket trac-14549 for more info. 43671 module.exports = global.document ? 43672 factory( global, true ) : 43673 function( w ) { 43674 if ( !w.document ) { 43675 throw new Error( "jQuery requires a window with a document" ); 43676 } 43677 return factory( w ); 43678 }; 43679 } else { 43680 factory( global ); 43681 } 43682 43683// Pass this if window is not defined yet 43684} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { 43685 43686// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 43687// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode 43688// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common 43689// enough that all such attempts are guarded in a try block. 43690"use strict"; 43691 43692var arr = []; 43693 43694var getProto = Object.getPrototypeOf; 43695 43696var slice = arr.slice; 43697 43698var flat = arr.flat ? function( array ) { 43699 return arr.flat.call( array ); 43700} : function( array ) { 43701 return arr.concat.apply( [], array ); 43702}; 43703 43704 43705var push = arr.push; 43706 43707var indexOf = arr.indexOf; 43708 43709var class2type = {}; 43710 43711var toString = class2type.toString; 43712 43713var hasOwn = class2type.hasOwnProperty; 43714 43715var fnToString = hasOwn.toString; 43716 43717var ObjectFunctionString = fnToString.call( Object ); 43718 43719var support = {}; 43720 43721var isFunction = function isFunction( obj ) { 43722 43723 // Support: Chrome <=57, Firefox <=52 43724 // In some browsers, typeof returns "function" for HTML <object> elements 43725 // (i.e., `typeof document.createElement( "object" ) === "function"`). 43726 // We don't want to classify *any* DOM node as a function. 43727 // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 43728 // Plus for old WebKit, typeof returns "function" for HTML collections 43729 // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) 43730 return typeof obj === "function" && typeof obj.nodeType !== "number" && 43731 typeof obj.item !== "function"; 43732 }; 43733 43734 43735var isWindow = function isWindow( obj ) { 43736 return obj != null && obj === obj.window; 43737 }; 43738 43739 43740var document = window.document; 43741 43742 43743 43744 var preservedScriptAttributes = { 43745 type: true, 43746 src: true, 43747 nonce: true, 43748 noModule: true 43749 }; 43750 43751 function DOMEval( code, node, doc ) { 43752 doc = doc || document; 43753 43754 var i, val, 43755 script = doc.createElement( "script" ); 43756 43757 script.text = code; 43758 if ( node ) { 43759 for ( i in preservedScriptAttributes ) { 43760 43761 // Support: Firefox 64+, Edge 18+ 43762 // Some browsers don't support the "nonce" property on scripts. 43763 // On the other hand, just using `getAttribute` is not enough as 43764 // the `nonce` attribute is reset to an empty string whenever it 43765 // becomes browsing-context connected. 43766 // See https://github.com/whatwg/html/issues/2369 43767 // See https://html.spec.whatwg.org/#nonce-attributes 43768 // The `node.getAttribute` check was added for the sake of 43769 // `jQuery.globalEval` so that it can fake a nonce-containing node 43770 // via an object. 43771 val = node[ i ] || node.getAttribute && node.getAttribute( i ); 43772 if ( val ) { 43773 script.setAttribute( i, val ); 43774 } 43775 } 43776 } 43777 doc.head.appendChild( script ).parentNode.removeChild( script ); 43778 } 43779 43780 43781function toType( obj ) { 43782 if ( obj == null ) { 43783 return obj + ""; 43784 } 43785 43786 // Support: Android <=2.3 only (functionish RegExp) 43787 return typeof obj === "object" || typeof obj === "function" ? 43788 class2type[ toString.call( obj ) ] || "object" : 43789 typeof obj; 43790} 43791/* global Symbol */ 43792// Defining this global in .eslintrc.json would create a danger of using the global 43793// unguarded in another place, it seems safer to define global only for this module 43794 43795 43796 43797var version = "3.7.1", 43798 43799 rhtmlSuffix = /HTML$/i, 43800 43801 // Define a local copy of jQuery 43802 jQuery = function( selector, context ) { 43803 43804 // The jQuery object is actually just the init constructor 'enhanced' 43805 // Need init if jQuery is called (just allow error to be thrown if not included) 43806 return new jQuery.fn.init( selector, context ); 43807 }; 43808 43809jQuery.fn = jQuery.prototype = { 43810 43811 // The current version of jQuery being used 43812 jquery: version, 43813 43814 constructor: jQuery, 43815 43816 // The default length of a jQuery object is 0 43817 length: 0, 43818 43819 toArray: function() { 43820 return slice.call( this ); 43821 }, 43822 43823 // Get the Nth element in the matched element set OR 43824 // Get the whole matched element set as a clean array 43825 get: function( num ) { 43826 43827 // Return all the elements in a clean array 43828 if ( num == null ) { 43829 return slice.call( this ); 43830 } 43831 43832 // Return just the one element from the set 43833 return num < 0 ? this[ num + this.length ] : this[ num ]; 43834 }, 43835 43836 // Take an array of elements and push it onto the stack 43837 // (returning the new matched element set) 43838 pushStack: function( elems ) { 43839 43840 // Build a new jQuery matched element set 43841 var ret = jQuery.merge( this.constructor(), elems ); 43842 43843 // Add the old object onto the stack (as a reference) 43844 ret.prevObject = this; 43845 43846 // Return the newly-formed element set 43847 return ret; 43848 }, 43849 43850 // Execute a callback for every element in the matched set. 43851 each: function( callback ) { 43852 return jQuery.each( this, callback ); 43853 }, 43854 43855 map: function( callback ) { 43856 return this.pushStack( jQuery.map( this, function( elem, i ) { 43857 return callback.call( elem, i, elem ); 43858 } ) ); 43859 }, 43860 43861 slice: function() { 43862 return this.pushStack( slice.apply( this, arguments ) ); 43863 }, 43864 43865 first: function() { 43866 return this.eq( 0 ); 43867 }, 43868 43869 last: function() { 43870 return this.eq( -1 ); 43871 }, 43872 43873 even: function() { 43874 return this.pushStack( jQuery.grep( this, function( _elem, i ) { 43875 return ( i + 1 ) % 2; 43876 } ) ); 43877 }, 43878 43879 odd: function() { 43880 return this.pushStack( jQuery.grep( this, function( _elem, i ) { 43881 return i % 2; 43882 } ) ); 43883 }, 43884 43885 eq: function( i ) { 43886 var len = this.length, 43887 j = +i + ( i < 0 ? len : 0 ); 43888 return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); 43889 }, 43890 43891 end: function() { 43892 return this.prevObject || this.constructor(); 43893 }, 43894 43895 // For internal use only. 43896 // Behaves like an Array's method, not like a jQuery method. 43897 push: push, 43898 sort: arr.sort, 43899 splice: arr.splice 43900}; 43901 43902jQuery.extend = jQuery.fn.extend = function() { 43903 var options, name, src, copy, copyIsArray, clone, 43904 target = arguments[ 0 ] || {}, 43905 i = 1, 43906 length = arguments.length, 43907 deep = false; 43908 43909 // Handle a deep copy situation 43910 if ( typeof target === "boolean" ) { 43911 deep = target; 43912 43913 // Skip the boolean and the target 43914 target = arguments[ i ] || {}; 43915 i++; 43916 } 43917 43918 // Handle case when target is a string or something (possible in deep copy) 43919 if ( typeof target !== "object" && !isFunction( target ) ) { 43920 target = {}; 43921 } 43922 43923 // Extend jQuery itself if only one argument is passed 43924 if ( i === length ) { 43925 target = this; 43926 i--; 43927 } 43928 43929 for ( ; i < length; i++ ) { 43930 43931 // Only deal with non-null/undefined values 43932 if ( ( options = arguments[ i ] ) != null ) { 43933 43934 // Extend the base object 43935 for ( name in options ) { 43936 copy = options[ name ]; 43937 43938 // Prevent Object.prototype pollution 43939 // Prevent never-ending loop 43940 if ( name === "__proto__" || target === copy ) { 43941 continue; 43942 } 43943 43944 // Recurse if we're merging plain objects or arrays 43945 if ( deep && copy && ( jQuery.isPlainObject( copy ) || 43946 ( copyIsArray = Array.isArray( copy ) ) ) ) { 43947 src = target[ name ]; 43948 43949 // Ensure proper type for the source value 43950 if ( copyIsArray && !Array.isArray( src ) ) { 43951 clone = []; 43952 } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { 43953 clone = {}; 43954 } else { 43955 clone = src; 43956 } 43957 copyIsArray = false; 43958 43959 // Never move original objects, clone them 43960 target[ name ] = jQuery.extend( deep, clone, copy ); 43961 43962 // Don't bring in undefined values 43963 } else if ( copy !== undefined ) { 43964 target[ name ] = copy; 43965 } 43966 } 43967 } 43968 } 43969 43970 // Return the modified object 43971 return target; 43972}; 43973 43974jQuery.extend( { 43975 43976 // Unique for each copy of jQuery on the page 43977 expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), 43978 43979 // Assume jQuery is ready without the ready module 43980 isReady: true, 43981 43982 error: function( msg ) { 43983 throw new Error( msg ); 43984 }, 43985 43986 noop: function() {}, 43987 43988 isPlainObject: function( obj ) { 43989 var proto, Ctor; 43990 43991 // Detect obvious negatives 43992 // Use toString instead of jQuery.type to catch host objects 43993 if ( !obj || toString.call( obj ) !== "[object Object]" ) { 43994 return false; 43995 } 43996 43997 proto = getProto( obj ); 43998 43999 // Objects with no prototype (e.g., `Object.create( null )`) are plain 44000 if ( !proto ) { 44001 return true; 44002 } 44003 44004 // Objects with prototype are plain iff they were constructed by a global Object function 44005 Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; 44006 return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; 44007 }, 44008 44009 isEmptyObject: function( obj ) { 44010 var name; 44011 44012 for ( name in obj ) { 44013 return false; 44014 } 44015 return true; 44016 }, 44017 44018 // Evaluates a script in a provided context; falls back to the global one 44019 // if not specified. 44020 globalEval: function( code, options, doc ) { 44021 DOMEval( code, { nonce: options && options.nonce }, doc ); 44022 }, 44023 44024 each: function( obj, callback ) { 44025 var length, i = 0; 44026 44027 if ( isArrayLike( obj ) ) { 44028 length = obj.length; 44029 for ( ; i < length; i++ ) { 44030 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { 44031 break; 44032 } 44033 } 44034 } else { 44035 for ( i in obj ) { 44036 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { 44037 break; 44038 } 44039 } 44040 } 44041 44042 return obj; 44043 }, 44044 44045 44046 // Retrieve the text value of an array of DOM nodes 44047 text: function( elem ) { 44048 var node, 44049 ret = "", 44050 i = 0, 44051 nodeType = elem.nodeType; 44052 44053 if ( !nodeType ) { 44054 44055 // If no nodeType, this is expected to be an array 44056 while ( ( node = elem[ i++ ] ) ) { 44057 44058 // Do not traverse comment nodes 44059 ret += jQuery.text( node ); 44060 } 44061 } 44062 if ( nodeType === 1 || nodeType === 11 ) { 44063 return elem.textContent; 44064 } 44065 if ( nodeType === 9 ) { 44066 return elem.documentElement.textContent; 44067 } 44068 if ( nodeType === 3 || nodeType === 4 ) { 44069 return elem.nodeValue; 44070 } 44071 44072 // Do not include comment or processing instruction nodes 44073 44074 return ret; 44075 }, 44076 44077 // results is for internal usage only 44078 makeArray: function( arr, results ) { 44079 var ret = results || []; 44080 44081 if ( arr != null ) { 44082 if ( isArrayLike( Object( arr ) ) ) { 44083 jQuery.merge( ret, 44084 typeof arr === "string" ? 44085 [ arr ] : arr 44086 ); 44087 } else { 44088 push.call( ret, arr ); 44089 } 44090 } 44091 44092 return ret; 44093 }, 44094 44095 inArray: function( elem, arr, i ) { 44096 return arr == null ? -1 : indexOf.call( arr, elem, i ); 44097 }, 44098 44099 isXMLDoc: function( elem ) { 44100 var namespace = elem && elem.namespaceURI, 44101 docElem = elem && ( elem.ownerDocument || elem ).documentElement; 44102 44103 // Assume HTML when documentElement doesn't yet exist, such as inside 44104 // document fragments. 44105 return !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || "HTML" ); 44106 }, 44107 44108 // Support: Android <=4.0 only, PhantomJS 1 only 44109 // push.apply(_, arraylike) throws on ancient WebKit 44110 merge: function( first, second ) { 44111 var len = +second.length, 44112 j = 0, 44113 i = first.length; 44114 44115 for ( ; j < len; j++ ) { 44116 first[ i++ ] = second[ j ]; 44117 } 44118 44119 first.length = i; 44120 44121 return first; 44122 }, 44123 44124 grep: function( elems, callback, invert ) { 44125 var callbackInverse, 44126 matches = [], 44127 i = 0, 44128 length = elems.length, 44129 callbackExpect = !invert; 44130 44131 // Go through the array, only saving the items 44132 // that pass the validator function 44133 for ( ; i < length; i++ ) { 44134 callbackInverse = !callback( elems[ i ], i ); 44135 if ( callbackInverse !== callbackExpect ) { 44136 matches.push( elems[ i ] ); 44137 } 44138 } 44139 44140 return matches; 44141 }, 44142 44143 // arg is for internal usage only 44144 map: function( elems, callback, arg ) { 44145 var length, value, 44146 i = 0, 44147 ret = []; 44148 44149 // Go through the array, translating each of the items to their new values 44150 if ( isArrayLike( elems ) ) { 44151 length = elems.length; 44152 for ( ; i < length; i++ ) { 44153 value = callback( elems[ i ], i, arg ); 44154 44155 if ( value != null ) { 44156 ret.push( value ); 44157 } 44158 } 44159 44160 // Go through every key on the object, 44161 } else { 44162 for ( i in elems ) { 44163 value = callback( elems[ i ], i, arg ); 44164 44165 if ( value != null ) { 44166 ret.push( value ); 44167 } 44168 } 44169 } 44170 44171 // Flatten any nested arrays 44172 return flat( ret ); 44173 }, 44174 44175 // A global GUID counter for objects 44176 guid: 1, 44177 44178 // jQuery.support is not used in Core but other projects attach their 44179 // properties to it so it needs to exist. 44180 support: support 44181} ); 44182 44183if ( typeof Symbol === "function" ) { 44184 jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; 44185} 44186 44187// Populate the class2type map 44188jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), 44189 function( _i, name ) { 44190 class2type[ "[object " + name + "]" ] = name.toLowerCase(); 44191 } ); 44192 44193function isArrayLike( obj ) { 44194 44195 // Support: real iOS 8.2 only (not reproducible in simulator) 44196 // `in` check used to prevent JIT error (gh-2145) 44197 // hasOwn isn't used here due to false negatives 44198 // regarding Nodelist length in IE 44199 var length = !!obj && "length" in obj && obj.length, 44200 type = toType( obj ); 44201 44202 if ( isFunction( obj ) || isWindow( obj ) ) { 44203 return false; 44204 } 44205 44206 return type === "array" || length === 0 || 44207 typeof length === "number" && length > 0 && ( length - 1 ) in obj; 44208} 44209 44210 44211function nodeName( elem, name ) { 44212 44213 return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); 44214 44215} 44216var pop = arr.pop; 44217 44218 44219var sort = arr.sort; 44220 44221 44222var splice = arr.splice; 44223 44224 44225var whitespace = "[\\x20\\t\\r\\n\\f]"; 44226 44227 44228var rtrimCSS = new RegExp( 44229 "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", 44230 "g" 44231); 44232 44233 44234 44235 44236// Note: an element does not contain itself 44237jQuery.contains = function( a, b ) { 44238 var bup = b && b.parentNode; 44239 44240 return a === bup || !!( bup && bup.nodeType === 1 && ( 44241 44242 // Support: IE 9 - 11+ 44243 // IE doesn't have `contains` on SVG. 44244 a.contains ? 44245 a.contains( bup ) : 44246 a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 44247 ) ); 44248}; 44249 44250 44251 44252 44253// CSS string/identifier serialization 44254// https://drafts.csswg.org/cssom/#common-serializing-idioms 44255var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; 44256 44257function fcssescape( ch, asCodePoint ) { 44258 if ( asCodePoint ) { 44259 44260 // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER 44261 if ( ch === "\0" ) { 44262 return "\uFFFD"; 44263 } 44264 44265 // Control characters and (dependent upon position) numbers get escaped as code points 44266 return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; 44267 } 44268 44269 // Other potentially-special ASCII characters get backslash-escaped 44270 return "\\" + ch; 44271} 44272 44273jQuery.escapeSelector = function( sel ) { 44274 return ( sel + "" ).replace( rcssescape, fcssescape ); 44275}; 44276 44277 44278 44279 44280var preferredDoc = document, 44281 pushNative = push; 44282 44283( function() { 44284 44285var i, 44286 Expr, 44287 outermostContext, 44288 sortInput, 44289 hasDuplicate, 44290 push = pushNative, 44291 44292 // Local document vars 44293 document, 44294 documentElement, 44295 documentIsHTML, 44296 rbuggyQSA, 44297 matches, 44298 44299 // Instance-specific data 44300 expando = jQuery.expando, 44301 dirruns = 0, 44302 done = 0, 44303 classCache = createCache(), 44304 tokenCache = createCache(), 44305 compilerCache = createCache(), 44306 nonnativeSelectorCache = createCache(), 44307 sortOrder = function( a, b ) { 44308 if ( a === b ) { 44309 hasDuplicate = true; 44310 } 44311 return 0; 44312 }, 44313 44314 booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|" + 44315 "loop|multiple|open|readonly|required|scoped", 44316 44317 // Regular expressions 44318 44319 // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram 44320 identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + 44321 "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", 44322 44323 // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors 44324 attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + 44325 44326 // Operator (capture 2) 44327 "*([*^$|!~]?=)" + whitespace + 44328 44329 // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" 44330 "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + 44331 whitespace + "*\\]", 44332 44333 pseudos = ":(" + identifier + ")(?:\\((" + 44334 44335 // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: 44336 // 1. quoted (capture 3; capture 4 or capture 5) 44337 "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + 44338 44339 // 2. simple (capture 6) 44340 "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + 44341 44342 // 3. anything else (capture 2) 44343 ".*" + 44344 ")\\)|)", 44345 44346 // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter 44347 rwhitespace = new RegExp( whitespace + "+", "g" ), 44348 44349 rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), 44350 rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + 44351 whitespace + "*" ), 44352 rdescend = new RegExp( whitespace + "|>" ), 44353 44354 rpseudo = new RegExp( pseudos ), 44355 ridentifier = new RegExp( "^" + identifier + "$" ), 44356 44357 matchExpr = { 44358 ID: new RegExp( "^#(" + identifier + ")" ), 44359 CLASS: new RegExp( "^\\.(" + identifier + ")" ), 44360 TAG: new RegExp( "^(" + identifier + "|[*])" ), 44361 ATTR: new RegExp( "^" + attributes ), 44362 PSEUDO: new RegExp( "^" + pseudos ), 44363 CHILD: new RegExp( 44364 "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + 44365 whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + 44366 whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), 44367 bool: new RegExp( "^(?:" + booleans + ")$", "i" ), 44368 44369 // For use in libraries implementing .is() 44370 // We use this for POS matching in `select` 44371 needsContext: new RegExp( "^" + whitespace + 44372 "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + 44373 "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) 44374 }, 44375 44376 rinputs = /^(?:input|select|textarea|button)$/i, 44377 rheader = /^h\d$/i, 44378 44379 // Easily-parseable/retrievable ID or TAG or CLASS selectors 44380 rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 44381 44382 rsibling = /[+~]/, 44383 44384 // CSS escapes 44385 // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters 44386 runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + 44387 "?|\\\\([^\\r\\n\\f])", "g" ), 44388 funescape = function( escape, nonHex ) { 44389 var high = "0x" + escape.slice( 1 ) - 0x10000; 44390 44391 if ( nonHex ) { 44392 44393 // Strip the backslash prefix from a non-hex escape sequence 44394 return nonHex; 44395 } 44396 44397 // Replace a hexadecimal escape sequence with the encoded Unicode code point 44398 // Support: IE <=11+ 44399 // For values outside the Basic Multilingual Plane (BMP), manually construct a 44400 // surrogate pair 44401 return high < 0 ? 44402 String.fromCharCode( high + 0x10000 ) : 44403 String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); 44404 }, 44405 44406 // Used for iframes; see `setDocument`. 44407 // Support: IE 9 - 11+, Edge 12 - 18+ 44408 // Removing the function wrapper causes a "Permission Denied" 44409 // error in IE/Edge. 44410 unloadHandler = function() { 44411 setDocument(); 44412 }, 44413 44414 inDisabledFieldset = addCombinator( 44415 function( elem ) { 44416 return elem.disabled === true && nodeName( elem, "fieldset" ); 44417 }, 44418 { dir: "parentNode", next: "legend" } 44419 ); 44420 44421// Support: IE <=9 only 44422// Accessing document.activeElement can throw unexpectedly 44423// https://bugs.jquery.com/ticket/13393 44424function safeActiveElement() { 44425 try { 44426 return document.activeElement; 44427 } catch ( err ) { } 44428} 44429 44430// Optimize for push.apply( _, NodeList ) 44431try { 44432 push.apply( 44433 ( arr = slice.call( preferredDoc.childNodes ) ), 44434 preferredDoc.childNodes 44435 ); 44436 44437 // Support: Android <=4.0 44438 // Detect silently failing push.apply 44439 // eslint-disable-next-line no-unused-expressions 44440 arr[ preferredDoc.childNodes.length ].nodeType; 44441} catch ( e ) { 44442 push = { 44443 apply: function( target, els ) { 44444 pushNative.apply( target, slice.call( els ) ); 44445 }, 44446 call: function( target ) { 44447 pushNative.apply( target, slice.call( arguments, 1 ) ); 44448 } 44449 }; 44450} 44451 44452function find( selector, context, results, seed ) { 44453 var m, i, elem, nid, match, groups, newSelector, 44454 newContext = context && context.ownerDocument, 44455 44456 // nodeType defaults to 9, since context defaults to document 44457 nodeType = context ? context.nodeType : 9; 44458 44459 results = results || []; 44460 44461 // Return early from calls with invalid selector or context 44462 if ( typeof selector !== "string" || !selector || 44463 nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { 44464 44465 return results; 44466 } 44467 44468 // Try to shortcut find operations (as opposed to filters) in HTML documents 44469 if ( !seed ) { 44470 setDocument( context ); 44471 context = context || document; 44472 44473 if ( documentIsHTML ) { 44474 44475 // If the selector is sufficiently simple, try using a "get*By*" DOM method 44476 // (excepting DocumentFragment context, where the methods don't exist) 44477 if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { 44478 44479 // ID selector 44480 if ( ( m = match[ 1 ] ) ) { 44481 44482 // Document context 44483 if ( nodeType === 9 ) { 44484 if ( ( elem = context.getElementById( m ) ) ) { 44485 44486 // Support: IE 9 only 44487 // getElementById can match elements by name instead of ID 44488 if ( elem.id === m ) { 44489 push.call( results, elem ); 44490 return results; 44491 } 44492 } else { 44493 return results; 44494 } 44495 44496 // Element context 44497 } else { 44498 44499 // Support: IE 9 only 44500 // getElementById can match elements by name instead of ID 44501 if ( newContext && ( elem = newContext.getElementById( m ) ) && 44502 find.contains( context, elem ) && 44503 elem.id === m ) { 44504 44505 push.call( results, elem ); 44506 return results; 44507 } 44508 } 44509 44510 // Type selector 44511 } else if ( match[ 2 ] ) { 44512 push.apply( results, context.getElementsByTagName( selector ) ); 44513 return results; 44514 44515 // Class selector 44516 } else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) { 44517 push.apply( results, context.getElementsByClassName( m ) ); 44518 return results; 44519 } 44520 } 44521 44522 // Take advantage of querySelectorAll 44523 if ( !nonnativeSelectorCache[ selector + " " ] && 44524 ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) { 44525 44526 newSelector = selector; 44527 newContext = context; 44528 44529 // qSA considers elements outside a scoping root when evaluating child or 44530 // descendant combinators, which is not what we want. 44531 // In such cases, we work around the behavior by prefixing every selector in the 44532 // list with an ID selector referencing the scope context. 44533 // The technique has to be used as well when a leading combinator is used 44534 // as such selectors are not recognized by querySelectorAll. 44535 // Thanks to Andrew Dupont for this technique. 44536 if ( nodeType === 1 && 44537 ( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) { 44538 44539 // Expand context for sibling selectors 44540 newContext = rsibling.test( selector ) && testContext( context.parentNode ) || 44541 context; 44542 44543 // We can use :scope instead of the ID hack if the browser 44544 // supports it & if we're not changing the context. 44545 // Support: IE 11+, Edge 17 - 18+ 44546 // IE/Edge sometimes throw a "Permission denied" error when 44547 // strict-comparing two documents; shallow comparisons work. 44548 // eslint-disable-next-line eqeqeq 44549 if ( newContext != context || !support.scope ) { 44550 44551 // Capture the context ID, setting it first if necessary 44552 if ( ( nid = context.getAttribute( "id" ) ) ) { 44553 nid = jQuery.escapeSelector( nid ); 44554 } else { 44555 context.setAttribute( "id", ( nid = expando ) ); 44556 } 44557 } 44558 44559 // Prefix every selector in the list 44560 groups = tokenize( selector ); 44561 i = groups.length; 44562 while ( i-- ) { 44563 groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + 44564 toSelector( groups[ i ] ); 44565 } 44566 newSelector = groups.join( "," ); 44567 } 44568 44569 try { 44570 push.apply( results, 44571 newContext.querySelectorAll( newSelector ) 44572 ); 44573 return results; 44574 } catch ( qsaError ) { 44575 nonnativeSelectorCache( selector, true ); 44576 } finally { 44577 if ( nid === expando ) { 44578 context.removeAttribute( "id" ); 44579 } 44580 } 44581 } 44582 } 44583 } 44584 44585 // All others 44586 return select( selector.replace( rtrimCSS, "$1" ), context, results, seed ); 44587} 44588 44589/** 44590 * Create key-value caches of limited size 44591 * @returns {function(string, object)} Returns the Object data after storing it on itself with 44592 * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) 44593 * deleting the oldest entry 44594 */ 44595function createCache() { 44596 var keys = []; 44597 44598 function cache( key, value ) { 44599 44600 // Use (key + " ") to avoid collision with native prototype properties 44601 // (see https://github.com/jquery/sizzle/issues/157) 44602 if ( keys.push( key + " " ) > Expr.cacheLength ) { 44603 44604 // Only keep the most recent entries 44605 delete cache[ keys.shift() ]; 44606 } 44607 return ( cache[ key + " " ] = value ); 44608 } 44609 return cache; 44610} 44611 44612/** 44613 * Mark a function for special use by jQuery selector module 44614 * @param {Function} fn The function to mark 44615 */ 44616function markFunction( fn ) { 44617 fn[ expando ] = true; 44618 return fn; 44619} 44620 44621/** 44622 * Support testing using an element 44623 * @param {Function} fn Passed the created element and returns a boolean result 44624 */ 44625function assert( fn ) { 44626 var el = document.createElement( "fieldset" ); 44627 44628 try { 44629 return !!fn( el ); 44630 } catch ( e ) { 44631 return false; 44632 } finally { 44633 44634 // Remove from its parent by default 44635 if ( el.parentNode ) { 44636 el.parentNode.removeChild( el ); 44637 } 44638 44639 // release memory in IE 44640 el = null; 44641 } 44642} 44643 44644/** 44645 * Returns a function to use in pseudos for input types 44646 * @param {String} type 44647 */ 44648function createInputPseudo( type ) { 44649 return function( elem ) { 44650 return nodeName( elem, "input" ) && elem.type === type; 44651 }; 44652} 44653 44654/** 44655 * Returns a function to use in pseudos for buttons 44656 * @param {String} type 44657 */ 44658function createButtonPseudo( type ) { 44659 return function( elem ) { 44660 return ( nodeName( elem, "input" ) || nodeName( elem, "button" ) ) && 44661 elem.type === type; 44662 }; 44663} 44664 44665/** 44666 * Returns a function to use in pseudos for :enabled/:disabled 44667 * @param {Boolean} disabled true for :disabled; false for :enabled 44668 */ 44669function createDisabledPseudo( disabled ) { 44670 44671 // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable 44672 return function( elem ) { 44673 44674 // Only certain elements can match :enabled or :disabled 44675 // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled 44676 // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled 44677 if ( "form" in elem ) { 44678 44679 // Check for inherited disabledness on relevant non-disabled elements: 44680 // * listed form-associated elements in a disabled fieldset 44681 // https://html.spec.whatwg.org/multipage/forms.html#category-listed 44682 // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled 44683 // * option elements in a disabled optgroup 44684 // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled 44685 // All such elements have a "form" property. 44686 if ( elem.parentNode && elem.disabled === false ) { 44687 44688 // Option elements defer to a parent optgroup if present 44689 if ( "label" in elem ) { 44690 if ( "label" in elem.parentNode ) { 44691 return elem.parentNode.disabled === disabled; 44692 } else { 44693 return elem.disabled === disabled; 44694 } 44695 } 44696 44697 // Support: IE 6 - 11+ 44698 // Use the isDisabled shortcut property to check for disabled fieldset ancestors 44699 return elem.isDisabled === disabled || 44700 44701 // Where there is no isDisabled, check manually 44702 elem.isDisabled !== !disabled && 44703 inDisabledFieldset( elem ) === disabled; 44704 } 44705 44706 return elem.disabled === disabled; 44707 44708 // Try to winnow out elements that can't be disabled before trusting the disabled property. 44709 // Some victims get caught in our net (label, legend, menu, track), but it shouldn't 44710 // even exist on them, let alone have a boolean value. 44711 } else if ( "label" in elem ) { 44712 return elem.disabled === disabled; 44713 } 44714 44715 // Remaining elements are neither :enabled nor :disabled 44716 return false; 44717 }; 44718} 44719 44720/** 44721 * Returns a function to use in pseudos for positionals 44722 * @param {Function} fn 44723 */ 44724function createPositionalPseudo( fn ) { 44725 return markFunction( function( argument ) { 44726 argument = +argument; 44727 return markFunction( function( seed, matches ) { 44728 var j, 44729 matchIndexes = fn( [], seed.length, argument ), 44730 i = matchIndexes.length; 44731 44732 // Match elements found at the specified indexes 44733 while ( i-- ) { 44734 if ( seed[ ( j = matchIndexes[ i ] ) ] ) { 44735 seed[ j ] = !( matches[ j ] = seed[ j ] ); 44736 } 44737 } 44738 } ); 44739 } ); 44740} 44741 44742/** 44743 * Checks a node for validity as a jQuery selector context 44744 * @param {Element|Object=} context 44745 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value 44746 */ 44747function testContext( context ) { 44748 return context && typeof context.getElementsByTagName !== "undefined" && context; 44749} 44750 44751/** 44752 * Sets document-related variables once based on the current document 44753 * @param {Element|Object} [node] An element or document object to use to set the document 44754 * @returns {Object} Returns the current document 44755 */ 44756function setDocument( node ) { 44757 var subWindow, 44758 doc = node ? node.ownerDocument || node : preferredDoc; 44759 44760 // Return early if doc is invalid or already selected 44761 // Support: IE 11+, Edge 17 - 18+ 44762 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 44763 // two documents; shallow comparisons work. 44764 // eslint-disable-next-line eqeqeq 44765 if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { 44766 return document; 44767 } 44768 44769 // Update global variables 44770 document = doc; 44771 documentElement = document.documentElement; 44772 documentIsHTML = !jQuery.isXMLDoc( document ); 44773 44774 // Support: iOS 7 only, IE 9 - 11+ 44775 // Older browsers didn't support unprefixed `matches`. 44776 matches = documentElement.matches || 44777 documentElement.webkitMatchesSelector || 44778 documentElement.msMatchesSelector; 44779 44780 // Support: IE 9 - 11+, Edge 12 - 18+ 44781 // Accessing iframe documents after unload throws "permission denied" errors 44782 // (see trac-13936). 44783 // Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`, 44784 // all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well. 44785 if ( documentElement.msMatchesSelector && 44786 44787 // Support: IE 11+, Edge 17 - 18+ 44788 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 44789 // two documents; shallow comparisons work. 44790 // eslint-disable-next-line eqeqeq 44791 preferredDoc != document && 44792 ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { 44793 44794 // Support: IE 9 - 11+, Edge 12 - 18+ 44795 subWindow.addEventListener( "unload", unloadHandler ); 44796 } 44797 44798 // Support: IE <10 44799 // Check if getElementById returns elements by name 44800 // The broken getElementById methods don't pick up programmatically-set names, 44801 // so use a roundabout getElementsByName test 44802 support.getById = assert( function( el ) { 44803 documentElement.appendChild( el ).id = jQuery.expando; 44804 return !document.getElementsByName || 44805 !document.getElementsByName( jQuery.expando ).length; 44806 } ); 44807 44808 // Support: IE 9 only 44809 // Check to see if it's possible to do matchesSelector 44810 // on a disconnected node. 44811 support.disconnectedMatch = assert( function( el ) { 44812 return matches.call( el, "*" ); 44813 } ); 44814 44815 // Support: IE 9 - 11+, Edge 12 - 18+ 44816 // IE/Edge don't support the :scope pseudo-class. 44817 support.scope = assert( function() { 44818 return document.querySelectorAll( ":scope" ); 44819 } ); 44820 44821 // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only 44822 // Make sure the `:has()` argument is parsed unforgivingly. 44823 // We include `*` in the test to detect buggy implementations that are 44824 // _selectively_ forgiving (specifically when the list includes at least 44825 // one valid selector). 44826 // Note that we treat complete lack of support for `:has()` as if it were 44827 // spec-compliant support, which is fine because use of `:has()` in such 44828 // environments will fail in the qSA path and fall back to jQuery traversal 44829 // anyway. 44830 support.cssHas = assert( function() { 44831 try { 44832 document.querySelector( ":has(*,:jqfake)" ); 44833 return false; 44834 } catch ( e ) { 44835 return true; 44836 } 44837 } ); 44838 44839 // ID filter and find 44840 if ( support.getById ) { 44841 Expr.filter.ID = function( id ) { 44842 var attrId = id.replace( runescape, funescape ); 44843 return function( elem ) { 44844 return elem.getAttribute( "id" ) === attrId; 44845 }; 44846 }; 44847 Expr.find.ID = function( id, context ) { 44848 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { 44849 var elem = context.getElementById( id ); 44850 return elem ? [ elem ] : []; 44851 } 44852 }; 44853 } else { 44854 Expr.filter.ID = function( id ) { 44855 var attrId = id.replace( runescape, funescape ); 44856 return function( elem ) { 44857 var node = typeof elem.getAttributeNode !== "undefined" && 44858 elem.getAttributeNode( "id" ); 44859 return node && node.value === attrId; 44860 }; 44861 }; 44862 44863 // Support: IE 6 - 7 only 44864 // getElementById is not reliable as a find shortcut 44865 Expr.find.ID = function( id, context ) { 44866 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { 44867 var node, i, elems, 44868 elem = context.getElementById( id ); 44869 44870 if ( elem ) { 44871 44872 // Verify the id attribute 44873 node = elem.getAttributeNode( "id" ); 44874 if ( node && node.value === id ) { 44875 return [ elem ]; 44876 } 44877 44878 // Fall back on getElementsByName 44879 elems = context.getElementsByName( id ); 44880 i = 0; 44881 while ( ( elem = elems[ i++ ] ) ) { 44882 node = elem.getAttributeNode( "id" ); 44883 if ( node && node.value === id ) { 44884 return [ elem ]; 44885 } 44886 } 44887 } 44888 44889 return []; 44890 } 44891 }; 44892 } 44893 44894 // Tag 44895 Expr.find.TAG = function( tag, context ) { 44896 if ( typeof context.getElementsByTagName !== "undefined" ) { 44897 return context.getElementsByTagName( tag ); 44898 44899 // DocumentFragment nodes don't have gEBTN 44900 } else { 44901 return context.querySelectorAll( tag ); 44902 } 44903 }; 44904 44905 // Class 44906 Expr.find.CLASS = function( className, context ) { 44907 if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { 44908 return context.getElementsByClassName( className ); 44909 } 44910 }; 44911 44912 /* QSA/matchesSelector 44913 ---------------------------------------------------------------------- */ 44914 44915 // QSA and matchesSelector support 44916 44917 rbuggyQSA = []; 44918 44919 // Build QSA regex 44920 // Regex strategy adopted from Diego Perini 44921 assert( function( el ) { 44922 44923 var input; 44924 44925 documentElement.appendChild( el ).innerHTML = 44926 "<a id='" + expando + "' href='' disabled='disabled'></a>" + 44927 "<select id='" + expando + "-\r\\' disabled='disabled'>" + 44928 "<option selected=''></option></select>"; 44929 44930 // Support: iOS <=7 - 8 only 44931 // Boolean attributes and "value" are not treated correctly in some XML documents 44932 if ( !el.querySelectorAll( "[selected]" ).length ) { 44933 rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); 44934 } 44935 44936 // Support: iOS <=7 - 8 only 44937 if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { 44938 rbuggyQSA.push( "~=" ); 44939 } 44940 44941 // Support: iOS 8 only 44942 // https://bugs.webkit.org/show_bug.cgi?id=136851 44943 // In-page `selector#id sibling-combinator selector` fails 44944 if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { 44945 rbuggyQSA.push( ".#.+[+~]" ); 44946 } 44947 44948 // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ 44949 // In some of the document kinds, these selectors wouldn't work natively. 44950 // This is probably OK but for backwards compatibility we want to maintain 44951 // handling them through jQuery traversal in jQuery 3.x. 44952 if ( !el.querySelectorAll( ":checked" ).length ) { 44953 rbuggyQSA.push( ":checked" ); 44954 } 44955 44956 // Support: Windows 8 Native Apps 44957 // The type and name attributes are restricted during .innerHTML assignment 44958 input = document.createElement( "input" ); 44959 input.setAttribute( "type", "hidden" ); 44960 el.appendChild( input ).setAttribute( "name", "D" ); 44961 44962 // Support: IE 9 - 11+ 44963 // IE's :disabled selector does not pick up the children of disabled fieldsets 44964 // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ 44965 // In some of the document kinds, these selectors wouldn't work natively. 44966 // This is probably OK but for backwards compatibility we want to maintain 44967 // handling them through jQuery traversal in jQuery 3.x. 44968 documentElement.appendChild( el ).disabled = true; 44969 if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { 44970 rbuggyQSA.push( ":enabled", ":disabled" ); 44971 } 44972 44973 // Support: IE 11+, Edge 15 - 18+ 44974 // IE 11/Edge don't find elements on a `[name='']` query in some cases. 44975 // Adding a temporary attribute to the document before the selection works 44976 // around the issue. 44977 // Interestingly, IE 10 & older don't seem to have the issue. 44978 input = document.createElement( "input" ); 44979 input.setAttribute( "name", "" ); 44980 el.appendChild( input ); 44981 if ( !el.querySelectorAll( "[name='']" ).length ) { 44982 rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + 44983 whitespace + "*(?:''|\"\")" ); 44984 } 44985 } ); 44986 44987 if ( !support.cssHas ) { 44988 44989 // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+ 44990 // Our regular `try-catch` mechanism fails to detect natively-unsupported 44991 // pseudo-classes inside `:has()` (such as `:has(:contains("Foo"))`) 44992 // in browsers that parse the `:has()` argument as a forgiving selector list. 44993 // https://drafts.csswg.org/selectors/#relational now requires the argument 44994 // to be parsed unforgivingly, but browsers have not yet fully adjusted. 44995 rbuggyQSA.push( ":has" ); 44996 } 44997 44998 rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); 44999 45000 /* Sorting 45001 ---------------------------------------------------------------------- */ 45002 45003 // Document order sorting 45004 sortOrder = function( a, b ) { 45005 45006 // Flag for duplicate removal 45007 if ( a === b ) { 45008 hasDuplicate = true; 45009 return 0; 45010 } 45011 45012 // Sort on method existence if only one input has compareDocumentPosition 45013 var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; 45014 if ( compare ) { 45015 return compare; 45016 } 45017 45018 // Calculate position if both inputs belong to the same document 45019 // Support: IE 11+, Edge 17 - 18+ 45020 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 45021 // two documents; shallow comparisons work. 45022 // eslint-disable-next-line eqeqeq 45023 compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? 45024 a.compareDocumentPosition( b ) : 45025 45026 // Otherwise we know they are disconnected 45027 1; 45028 45029 // Disconnected nodes 45030 if ( compare & 1 || 45031 ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { 45032 45033 // Choose the first element that is related to our preferred document 45034 // Support: IE 11+, Edge 17 - 18+ 45035 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 45036 // two documents; shallow comparisons work. 45037 // eslint-disable-next-line eqeqeq 45038 if ( a === document || a.ownerDocument == preferredDoc && 45039 find.contains( preferredDoc, a ) ) { 45040 return -1; 45041 } 45042 45043 // Support: IE 11+, Edge 17 - 18+ 45044 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 45045 // two documents; shallow comparisons work. 45046 // eslint-disable-next-line eqeqeq 45047 if ( b === document || b.ownerDocument == preferredDoc && 45048 find.contains( preferredDoc, b ) ) { 45049 return 1; 45050 } 45051 45052 // Maintain original order 45053 return sortInput ? 45054 ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : 45055 0; 45056 } 45057 45058 return compare & 4 ? -1 : 1; 45059 }; 45060 45061 return document; 45062} 45063 45064find.matches = function( expr, elements ) { 45065 return find( expr, null, null, elements ); 45066}; 45067 45068find.matchesSelector = function( elem, expr ) { 45069 setDocument( elem ); 45070 45071 if ( documentIsHTML && 45072 !nonnativeSelectorCache[ expr + " " ] && 45073 ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { 45074 45075 try { 45076 var ret = matches.call( elem, expr ); 45077 45078 // IE 9's matchesSelector returns false on disconnected nodes 45079 if ( ret || support.disconnectedMatch || 45080 45081 // As well, disconnected nodes are said to be in a document 45082 // fragment in IE 9 45083 elem.document && elem.document.nodeType !== 11 ) { 45084 return ret; 45085 } 45086 } catch ( e ) { 45087 nonnativeSelectorCache( expr, true ); 45088 } 45089 } 45090 45091 return find( expr, document, null, [ elem ] ).length > 0; 45092}; 45093 45094find.contains = function( context, elem ) { 45095 45096 // Set document vars if needed 45097 // Support: IE 11+, Edge 17 - 18+ 45098 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 45099 // two documents; shallow comparisons work. 45100 // eslint-disable-next-line eqeqeq 45101 if ( ( context.ownerDocument || context ) != document ) { 45102 setDocument( context ); 45103 } 45104 return jQuery.contains( context, elem ); 45105}; 45106 45107 45108find.attr = function( elem, name ) { 45109 45110 // Set document vars if needed 45111 // Support: IE 11+, Edge 17 - 18+ 45112 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 45113 // two documents; shallow comparisons work. 45114 // eslint-disable-next-line eqeqeq 45115 if ( ( elem.ownerDocument || elem ) != document ) { 45116 setDocument( elem ); 45117 } 45118 45119 var fn = Expr.attrHandle[ name.toLowerCase() ], 45120 45121 // Don't get fooled by Object.prototype properties (see trac-13807) 45122 val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? 45123 fn( elem, name, !documentIsHTML ) : 45124 undefined; 45125 45126 if ( val !== undefined ) { 45127 return val; 45128 } 45129 45130 return elem.getAttribute( name ); 45131}; 45132 45133find.error = function( msg ) { 45134 throw new Error( "Syntax error, unrecognized expression: " + msg ); 45135}; 45136 45137/** 45138 * Document sorting and removing duplicates 45139 * @param {ArrayLike} results 45140 */ 45141jQuery.uniqueSort = function( results ) { 45142 var elem, 45143 duplicates = [], 45144 j = 0, 45145 i = 0; 45146 45147 // Unless we *know* we can detect duplicates, assume their presence 45148 // 45149 // Support: Android <=4.0+ 45150 // Testing for detecting duplicates is unpredictable so instead assume we can't 45151 // depend on duplicate detection in all browsers without a stable sort. 45152 hasDuplicate = !support.sortStable; 45153 sortInput = !support.sortStable && slice.call( results, 0 ); 45154 sort.call( results, sortOrder ); 45155 45156 if ( hasDuplicate ) { 45157 while ( ( elem = results[ i++ ] ) ) { 45158 if ( elem === results[ i ] ) { 45159 j = duplicates.push( i ); 45160 } 45161 } 45162 while ( j-- ) { 45163 splice.call( results, duplicates[ j ], 1 ); 45164 } 45165 } 45166 45167 // Clear input after sorting to release objects 45168 // See https://github.com/jquery/sizzle/pull/225 45169 sortInput = null; 45170 45171 return results; 45172}; 45173 45174jQuery.fn.uniqueSort = function() { 45175 return this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) ); 45176}; 45177 45178Expr = jQuery.expr = { 45179 45180 // Can be adjusted by the user 45181 cacheLength: 50, 45182 45183 createPseudo: markFunction, 45184 45185 match: matchExpr, 45186 45187 attrHandle: {}, 45188 45189 find: {}, 45190 45191 relative: { 45192 ">": { dir: "parentNode", first: true }, 45193 " ": { dir: "parentNode" }, 45194 "+": { dir: "previousSibling", first: true }, 45195 "~": { dir: "previousSibling" } 45196 }, 45197 45198 preFilter: { 45199 ATTR: function( match ) { 45200 match[ 1 ] = match[ 1 ].replace( runescape, funescape ); 45201 45202 // Move the given value to match[3] whether quoted or unquoted 45203 match[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || "" ) 45204 .replace( runescape, funescape ); 45205 45206 if ( match[ 2 ] === "~=" ) { 45207 match[ 3 ] = " " + match[ 3 ] + " "; 45208 } 45209 45210 return match.slice( 0, 4 ); 45211 }, 45212 45213 CHILD: function( match ) { 45214 45215 /* matches from matchExpr["CHILD"] 45216 1 type (only|nth|...) 45217 2 what (child|of-type) 45218 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) 45219 4 xn-component of xn+y argument ([+-]?\d*n|) 45220 5 sign of xn-component 45221 6 x of xn-component 45222 7 sign of y-component 45223 8 y of y-component 45224 */ 45225 match[ 1 ] = match[ 1 ].toLowerCase(); 45226 45227 if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { 45228 45229 // nth-* requires argument 45230 if ( !match[ 3 ] ) { 45231 find.error( match[ 0 ] ); 45232 } 45233 45234 // numeric x and y parameters for Expr.filter.CHILD 45235 // remember that false/true cast respectively to 0/1 45236 match[ 4 ] = +( match[ 4 ] ? 45237 match[ 5 ] + ( match[ 6 ] || 1 ) : 45238 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) 45239 ); 45240 match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); 45241 45242 // other types prohibit arguments 45243 } else if ( match[ 3 ] ) { 45244 find.error( match[ 0 ] ); 45245 } 45246 45247 return match; 45248 }, 45249 45250 PSEUDO: function( match ) { 45251 var excess, 45252 unquoted = !match[ 6 ] && match[ 2 ]; 45253 45254 if ( matchExpr.CHILD.test( match[ 0 ] ) ) { 45255 return null; 45256 } 45257 45258 // Accept quoted arguments as-is 45259 if ( match[ 3 ] ) { 45260 match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; 45261 45262 // Strip excess characters from unquoted arguments 45263 } else if ( unquoted && rpseudo.test( unquoted ) && 45264 45265 // Get excess from tokenize (recursively) 45266 ( excess = tokenize( unquoted, true ) ) && 45267 45268 // advance to the next closing parenthesis 45269 ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { 45270 45271 // excess is a negative index 45272 match[ 0 ] = match[ 0 ].slice( 0, excess ); 45273 match[ 2 ] = unquoted.slice( 0, excess ); 45274 } 45275 45276 // Return only captures needed by the pseudo filter method (type and argument) 45277 return match.slice( 0, 3 ); 45278 } 45279 }, 45280 45281 filter: { 45282 45283 TAG: function( nodeNameSelector ) { 45284 var expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); 45285 return nodeNameSelector === "*" ? 45286 function() { 45287 return true; 45288 } : 45289 function( elem ) { 45290 return nodeName( elem, expectedNodeName ); 45291 }; 45292 }, 45293 45294 CLASS: function( className ) { 45295 var pattern = classCache[ className + " " ]; 45296 45297 return pattern || 45298 ( pattern = new RegExp( "(^|" + whitespace + ")" + className + 45299 "(" + whitespace + "|$)" ) ) && 45300 classCache( className, function( elem ) { 45301 return pattern.test( 45302 typeof elem.className === "string" && elem.className || 45303 typeof elem.getAttribute !== "undefined" && 45304 elem.getAttribute( "class" ) || 45305 "" 45306 ); 45307 } ); 45308 }, 45309 45310 ATTR: function( name, operator, check ) { 45311 return function( elem ) { 45312 var result = find.attr( elem, name ); 45313 45314 if ( result == null ) { 45315 return operator === "!="; 45316 } 45317 if ( !operator ) { 45318 return true; 45319 } 45320 45321 result += ""; 45322 45323 if ( operator === "=" ) { 45324 return result === check; 45325 } 45326 if ( operator === "!=" ) { 45327 return result !== check; 45328 } 45329 if ( operator === "^=" ) { 45330 return check && result.indexOf( check ) === 0; 45331 } 45332 if ( operator === "*=" ) { 45333 return check && result.indexOf( check ) > -1; 45334 } 45335 if ( operator === "$=" ) { 45336 return check && result.slice( -check.length ) === check; 45337 } 45338 if ( operator === "~=" ) { 45339 return ( " " + result.replace( rwhitespace, " " ) + " " ) 45340 .indexOf( check ) > -1; 45341 } 45342 if ( operator === "|=" ) { 45343 return result === check || result.slice( 0, check.length + 1 ) === check + "-"; 45344 } 45345 45346 return false; 45347 }; 45348 }, 45349 45350 CHILD: function( type, what, _argument, first, last ) { 45351 var simple = type.slice( 0, 3 ) !== "nth", 45352 forward = type.slice( -4 ) !== "last", 45353 ofType = what === "of-type"; 45354 45355 return first === 1 && last === 0 ? 45356 45357 // Shortcut for :nth-*(n) 45358 function( elem ) { 45359 return !!elem.parentNode; 45360 } : 45361 45362 function( elem, _context, xml ) { 45363 var cache, outerCache, node, nodeIndex, start, 45364 dir = simple !== forward ? "nextSibling" : "previousSibling", 45365 parent = elem.parentNode, 45366 name = ofType && elem.nodeName.toLowerCase(), 45367 useCache = !xml && !ofType, 45368 diff = false; 45369 45370 if ( parent ) { 45371 45372 // :(first|last|only)-(child|of-type) 45373 if ( simple ) { 45374 while ( dir ) { 45375 node = elem; 45376 while ( ( node = node[ dir ] ) ) { 45377 if ( ofType ? 45378 nodeName( node, name ) : 45379 node.nodeType === 1 ) { 45380 45381 return false; 45382 } 45383 } 45384 45385 // Reverse direction for :only-* (if we haven't yet done so) 45386 start = dir = type === "only" && !start && "nextSibling"; 45387 } 45388 return true; 45389 } 45390 45391 start = [ forward ? parent.firstChild : parent.lastChild ]; 45392 45393 // non-xml :nth-child(...) stores cache data on `parent` 45394 if ( forward && useCache ) { 45395 45396 // Seek `elem` from a previously-cached index 45397 outerCache = parent[ expando ] || ( parent[ expando ] = {} ); 45398 cache = outerCache[ type ] || []; 45399 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; 45400 diff = nodeIndex && cache[ 2 ]; 45401 node = nodeIndex && parent.childNodes[ nodeIndex ]; 45402 45403 while ( ( node = ++nodeIndex && node && node[ dir ] || 45404 45405 // Fallback to seeking `elem` from the start 45406 ( diff = nodeIndex = 0 ) || start.pop() ) ) { 45407 45408 // When found, cache indexes on `parent` and break 45409 if ( node.nodeType === 1 && ++diff && node === elem ) { 45410 outerCache[ type ] = [ dirruns, nodeIndex, diff ]; 45411 break; 45412 } 45413 } 45414 45415 } else { 45416 45417 // Use previously-cached element index if available 45418 if ( useCache ) { 45419 outerCache = elem[ expando ] || ( elem[ expando ] = {} ); 45420 cache = outerCache[ type ] || []; 45421 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; 45422 diff = nodeIndex; 45423 } 45424 45425 // xml :nth-child(...) 45426 // or :nth-last-child(...) or :nth(-last)?-of-type(...) 45427 if ( diff === false ) { 45428 45429 // Use the same loop as above to seek `elem` from the start 45430 while ( ( node = ++nodeIndex && node && node[ dir ] || 45431 ( diff = nodeIndex = 0 ) || start.pop() ) ) { 45432 45433 if ( ( ofType ? 45434 nodeName( node, name ) : 45435 node.nodeType === 1 ) && 45436 ++diff ) { 45437 45438 // Cache the index of each encountered element 45439 if ( useCache ) { 45440 outerCache = node[ expando ] || 45441 ( node[ expando ] = {} ); 45442 outerCache[ type ] = [ dirruns, diff ]; 45443 } 45444 45445 if ( node === elem ) { 45446 break; 45447 } 45448 } 45449 } 45450 } 45451 } 45452 45453 // Incorporate the offset, then check against cycle size 45454 diff -= last; 45455 return diff === first || ( diff % first === 0 && diff / first >= 0 ); 45456 } 45457 }; 45458 }, 45459 45460 PSEUDO: function( pseudo, argument ) { 45461 45462 // pseudo-class names are case-insensitive 45463 // https://www.w3.org/TR/selectors/#pseudo-classes 45464 // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters 45465 // Remember that setFilters inherits from pseudos 45466 var args, 45467 fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || 45468 find.error( "unsupported pseudo: " + pseudo ); 45469 45470 // The user may use createPseudo to indicate that 45471 // arguments are needed to create the filter function 45472 // just as jQuery does 45473 if ( fn[ expando ] ) { 45474 return fn( argument ); 45475 } 45476 45477 // But maintain support for old signatures 45478 if ( fn.length > 1 ) { 45479 args = [ pseudo, pseudo, "", argument ]; 45480 return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? 45481 markFunction( function( seed, matches ) { 45482 var idx, 45483 matched = fn( seed, argument ), 45484 i = matched.length; 45485 while ( i-- ) { 45486 idx = indexOf.call( seed, matched[ i ] ); 45487 seed[ idx ] = !( matches[ idx ] = matched[ i ] ); 45488 } 45489 } ) : 45490 function( elem ) { 45491 return fn( elem, 0, args ); 45492 }; 45493 } 45494 45495 return fn; 45496 } 45497 }, 45498 45499 pseudos: { 45500 45501 // Potentially complex pseudos 45502 not: markFunction( function( selector ) { 45503 45504 // Trim the selector passed to compile 45505 // to avoid treating leading and trailing 45506 // spaces as combinators 45507 var input = [], 45508 results = [], 45509 matcher = compile( selector.replace( rtrimCSS, "$1" ) ); 45510 45511 return matcher[ expando ] ? 45512 markFunction( function( seed, matches, _context, xml ) { 45513 var elem, 45514 unmatched = matcher( seed, null, xml, [] ), 45515 i = seed.length; 45516 45517 // Match elements unmatched by `matcher` 45518 while ( i-- ) { 45519 if ( ( elem = unmatched[ i ] ) ) { 45520 seed[ i ] = !( matches[ i ] = elem ); 45521 } 45522 } 45523 } ) : 45524 function( elem, _context, xml ) { 45525 input[ 0 ] = elem; 45526 matcher( input, null, xml, results ); 45527 45528 // Don't keep the element 45529 // (see https://github.com/jquery/sizzle/issues/299) 45530 input[ 0 ] = null; 45531 return !results.pop(); 45532 }; 45533 } ), 45534 45535 has: markFunction( function( selector ) { 45536 return function( elem ) { 45537 return find( selector, elem ).length > 0; 45538 }; 45539 } ), 45540 45541 contains: markFunction( function( text ) { 45542 text = text.replace( runescape, funescape ); 45543 return function( elem ) { 45544 return ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1; 45545 }; 45546 } ), 45547 45548 // "Whether an element is represented by a :lang() selector 45549 // is based solely on the element's language value 45550 // being equal to the identifier C, 45551 // or beginning with the identifier C immediately followed by "-". 45552 // The matching of C against the element's language value is performed case-insensitively. 45553 // The identifier C does not have to be a valid language name." 45554 // https://www.w3.org/TR/selectors/#lang-pseudo 45555 lang: markFunction( function( lang ) { 45556 45557 // lang value must be a valid identifier 45558 if ( !ridentifier.test( lang || "" ) ) { 45559 find.error( "unsupported lang: " + lang ); 45560 } 45561 lang = lang.replace( runescape, funescape ).toLowerCase(); 45562 return function( elem ) { 45563 var elemLang; 45564 do { 45565 if ( ( elemLang = documentIsHTML ? 45566 elem.lang : 45567 elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { 45568 45569 elemLang = elemLang.toLowerCase(); 45570 return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; 45571 } 45572 } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); 45573 return false; 45574 }; 45575 } ), 45576 45577 // Miscellaneous 45578 target: function( elem ) { 45579 var hash = window.location && window.location.hash; 45580 return hash && hash.slice( 1 ) === elem.id; 45581 }, 45582 45583 root: function( elem ) { 45584 return elem === documentElement; 45585 }, 45586 45587 focus: function( elem ) { 45588 return elem === safeActiveElement() && 45589 document.hasFocus() && 45590 !!( elem.type || elem.href || ~elem.tabIndex ); 45591 }, 45592 45593 // Boolean properties 45594 enabled: createDisabledPseudo( false ), 45595 disabled: createDisabledPseudo( true ), 45596 45597 checked: function( elem ) { 45598 45599 // In CSS3, :checked should return both checked and selected elements 45600 // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 45601 return ( nodeName( elem, "input" ) && !!elem.checked ) || 45602 ( nodeName( elem, "option" ) && !!elem.selected ); 45603 }, 45604 45605 selected: function( elem ) { 45606 45607 // Support: IE <=11+ 45608 // Accessing the selectedIndex property 45609 // forces the browser to treat the default option as 45610 // selected when in an optgroup. 45611 if ( elem.parentNode ) { 45612 // eslint-disable-next-line no-unused-expressions 45613 elem.parentNode.selectedIndex; 45614 } 45615 45616 return elem.selected === true; 45617 }, 45618 45619 // Contents 45620 empty: function( elem ) { 45621 45622 // https://www.w3.org/TR/selectors/#empty-pseudo 45623 // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), 45624 // but not by others (comment: 8; processing instruction: 7; etc.) 45625 // nodeType < 6 works because attributes (2) do not appear as children 45626 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { 45627 if ( elem.nodeType < 6 ) { 45628 return false; 45629 } 45630 } 45631 return true; 45632 }, 45633 45634 parent: function( elem ) { 45635 return !Expr.pseudos.empty( elem ); 45636 }, 45637 45638 // Element/input types 45639 header: function( elem ) { 45640 return rheader.test( elem.nodeName ); 45641 }, 45642 45643 input: function( elem ) { 45644 return rinputs.test( elem.nodeName ); 45645 }, 45646 45647 button: function( elem ) { 45648 return nodeName( elem, "input" ) && elem.type === "button" || 45649 nodeName( elem, "button" ); 45650 }, 45651 45652 text: function( elem ) { 45653 var attr; 45654 return nodeName( elem, "input" ) && elem.type === "text" && 45655 45656 // Support: IE <10 only 45657 // New HTML5 attribute values (e.g., "search") appear 45658 // with elem.type === "text" 45659 ( ( attr = elem.getAttribute( "type" ) ) == null || 45660 attr.toLowerCase() === "text" ); 45661 }, 45662 45663 // Position-in-collection 45664 first: createPositionalPseudo( function() { 45665 return [ 0 ]; 45666 } ), 45667 45668 last: createPositionalPseudo( function( _matchIndexes, length ) { 45669 return [ length - 1 ]; 45670 } ), 45671 45672 eq: createPositionalPseudo( function( _matchIndexes, length, argument ) { 45673 return [ argument < 0 ? argument + length : argument ]; 45674 } ), 45675 45676 even: createPositionalPseudo( function( matchIndexes, length ) { 45677 var i = 0; 45678 for ( ; i < length; i += 2 ) { 45679 matchIndexes.push( i ); 45680 } 45681 return matchIndexes; 45682 } ), 45683 45684 odd: createPositionalPseudo( function( matchIndexes, length ) { 45685 var i = 1; 45686 for ( ; i < length; i += 2 ) { 45687 matchIndexes.push( i ); 45688 } 45689 return matchIndexes; 45690 } ), 45691 45692 lt: createPositionalPseudo( function( matchIndexes, length, argument ) { 45693 var i; 45694 45695 if ( argument < 0 ) { 45696 i = argument + length; 45697 } else if ( argument > length ) { 45698 i = length; 45699 } else { 45700 i = argument; 45701 } 45702 45703 for ( ; --i >= 0; ) { 45704 matchIndexes.push( i ); 45705 } 45706 return matchIndexes; 45707 } ), 45708 45709 gt: createPositionalPseudo( function( matchIndexes, length, argument ) { 45710 var i = argument < 0 ? argument + length : argument; 45711 for ( ; ++i < length; ) { 45712 matchIndexes.push( i ); 45713 } 45714 return matchIndexes; 45715 } ) 45716 } 45717}; 45718 45719Expr.pseudos.nth = Expr.pseudos.eq; 45720 45721// Add button/input type pseudos 45722for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { 45723 Expr.pseudos[ i ] = createInputPseudo( i ); 45724} 45725for ( i in { submit: true, reset: true } ) { 45726 Expr.pseudos[ i ] = createButtonPseudo( i ); 45727} 45728 45729// Easy API for creating new setFilters 45730function setFilters() {} 45731setFilters.prototype = Expr.filters = Expr.pseudos; 45732Expr.setFilters = new setFilters(); 45733 45734function tokenize( selector, parseOnly ) { 45735 var matched, match, tokens, type, 45736 soFar, groups, preFilters, 45737 cached = tokenCache[ selector + " " ]; 45738 45739 if ( cached ) { 45740 return parseOnly ? 0 : cached.slice( 0 ); 45741 } 45742 45743 soFar = selector; 45744 groups = []; 45745 preFilters = Expr.preFilter; 45746 45747 while ( soFar ) { 45748 45749 // Comma and first run 45750 if ( !matched || ( match = rcomma.exec( soFar ) ) ) { 45751 if ( match ) { 45752 45753 // Don't consume trailing commas as valid 45754 soFar = soFar.slice( match[ 0 ].length ) || soFar; 45755 } 45756 groups.push( ( tokens = [] ) ); 45757 } 45758 45759 matched = false; 45760 45761 // Combinators 45762 if ( ( match = rleadingCombinator.exec( soFar ) ) ) { 45763 matched = match.shift(); 45764 tokens.push( { 45765 value: matched, 45766 45767 // Cast descendant combinators to space 45768 type: match[ 0 ].replace( rtrimCSS, " " ) 45769 } ); 45770 soFar = soFar.slice( matched.length ); 45771 } 45772 45773 // Filters 45774 for ( type in Expr.filter ) { 45775 if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || 45776 ( match = preFilters[ type ]( match ) ) ) ) { 45777 matched = match.shift(); 45778 tokens.push( { 45779 value: matched, 45780 type: type, 45781 matches: match 45782 } ); 45783 soFar = soFar.slice( matched.length ); 45784 } 45785 } 45786 45787 if ( !matched ) { 45788 break; 45789 } 45790 } 45791 45792 // Return the length of the invalid excess 45793 // if we're just parsing 45794 // Otherwise, throw an error or return tokens 45795 if ( parseOnly ) { 45796 return soFar.length; 45797 } 45798 45799 return soFar ? 45800 find.error( selector ) : 45801 45802 // Cache the tokens 45803 tokenCache( selector, groups ).slice( 0 ); 45804} 45805 45806function toSelector( tokens ) { 45807 var i = 0, 45808 len = tokens.length, 45809 selector = ""; 45810 for ( ; i < len; i++ ) { 45811 selector += tokens[ i ].value; 45812 } 45813 return selector; 45814} 45815 45816function addCombinator( matcher, combinator, base ) { 45817 var dir = combinator.dir, 45818 skip = combinator.next, 45819 key = skip || dir, 45820 checkNonElements = base && key === "parentNode", 45821 doneName = done++; 45822 45823 return combinator.first ? 45824 45825 // Check against closest ancestor/preceding element 45826 function( elem, context, xml ) { 45827 while ( ( elem = elem[ dir ] ) ) { 45828 if ( elem.nodeType === 1 || checkNonElements ) { 45829 return matcher( elem, context, xml ); 45830 } 45831 } 45832 return false; 45833 } : 45834 45835 // Check against all ancestor/preceding elements 45836 function( elem, context, xml ) { 45837 var oldCache, outerCache, 45838 newCache = [ dirruns, doneName ]; 45839 45840 // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching 45841 if ( xml ) { 45842 while ( ( elem = elem[ dir ] ) ) { 45843 if ( elem.nodeType === 1 || checkNonElements ) { 45844 if ( matcher( elem, context, xml ) ) { 45845 return true; 45846 } 45847 } 45848 } 45849 } else { 45850 while ( ( elem = elem[ dir ] ) ) { 45851 if ( elem.nodeType === 1 || checkNonElements ) { 45852 outerCache = elem[ expando ] || ( elem[ expando ] = {} ); 45853 45854 if ( skip && nodeName( elem, skip ) ) { 45855 elem = elem[ dir ] || elem; 45856 } else if ( ( oldCache = outerCache[ key ] ) && 45857 oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { 45858 45859 // Assign to newCache so results back-propagate to previous elements 45860 return ( newCache[ 2 ] = oldCache[ 2 ] ); 45861 } else { 45862 45863 // Reuse newcache so results back-propagate to previous elements 45864 outerCache[ key ] = newCache; 45865 45866 // A match means we're done; a fail means we have to keep checking 45867 if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { 45868 return true; 45869 } 45870 } 45871 } 45872 } 45873 } 45874 return false; 45875 }; 45876} 45877 45878function elementMatcher( matchers ) { 45879 return matchers.length > 1 ? 45880 function( elem, context, xml ) { 45881 var i = matchers.length; 45882 while ( i-- ) { 45883 if ( !matchers[ i ]( elem, context, xml ) ) { 45884 return false; 45885 } 45886 } 45887 return true; 45888 } : 45889 matchers[ 0 ]; 45890} 45891 45892function multipleContexts( selector, contexts, results ) { 45893 var i = 0, 45894 len = contexts.length; 45895 for ( ; i < len; i++ ) { 45896 find( selector, contexts[ i ], results ); 45897 } 45898 return results; 45899} 45900 45901function condense( unmatched, map, filter, context, xml ) { 45902 var elem, 45903 newUnmatched = [], 45904 i = 0, 45905 len = unmatched.length, 45906 mapped = map != null; 45907 45908 for ( ; i < len; i++ ) { 45909 if ( ( elem = unmatched[ i ] ) ) { 45910 if ( !filter || filter( elem, context, xml ) ) { 45911 newUnmatched.push( elem ); 45912 if ( mapped ) { 45913 map.push( i ); 45914 } 45915 } 45916 } 45917 } 45918 45919 return newUnmatched; 45920} 45921 45922function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { 45923 if ( postFilter && !postFilter[ expando ] ) { 45924 postFilter = setMatcher( postFilter ); 45925 } 45926 if ( postFinder && !postFinder[ expando ] ) { 45927 postFinder = setMatcher( postFinder, postSelector ); 45928 } 45929 return markFunction( function( seed, results, context, xml ) { 45930 var temp, i, elem, matcherOut, 45931 preMap = [], 45932 postMap = [], 45933 preexisting = results.length, 45934 45935 // Get initial elements from seed or context 45936 elems = seed || 45937 multipleContexts( selector || "*", 45938 context.nodeType ? [ context ] : context, [] ), 45939 45940 // Prefilter to get matcher input, preserving a map for seed-results synchronization 45941 matcherIn = preFilter && ( seed || !selector ) ? 45942 condense( elems, preMap, preFilter, context, xml ) : 45943 elems; 45944 45945 if ( matcher ) { 45946 45947 // If we have a postFinder, or filtered seed, or non-seed postFilter 45948 // or preexisting results, 45949 matcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ? 45950 45951 // ...intermediate processing is necessary 45952 [] : 45953 45954 // ...otherwise use results directly 45955 results; 45956 45957 // Find primary matches 45958 matcher( matcherIn, matcherOut, context, xml ); 45959 } else { 45960 matcherOut = matcherIn; 45961 } 45962 45963 // Apply postFilter 45964 if ( postFilter ) { 45965 temp = condense( matcherOut, postMap ); 45966 postFilter( temp, [], context, xml ); 45967 45968 // Un-match failing elements by moving them back to matcherIn 45969 i = temp.length; 45970 while ( i-- ) { 45971 if ( ( elem = temp[ i ] ) ) { 45972 matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); 45973 } 45974 } 45975 } 45976 45977 if ( seed ) { 45978 if ( postFinder || preFilter ) { 45979 if ( postFinder ) { 45980 45981 // Get the final matcherOut by condensing this intermediate into postFinder contexts 45982 temp = []; 45983 i = matcherOut.length; 45984 while ( i-- ) { 45985 if ( ( elem = matcherOut[ i ] ) ) { 45986 45987 // Restore matcherIn since elem is not yet a final match 45988 temp.push( ( matcherIn[ i ] = elem ) ); 45989 } 45990 } 45991 postFinder( null, ( matcherOut = [] ), temp, xml ); 45992 } 45993 45994 // Move matched elements from seed to results to keep them synchronized 45995 i = matcherOut.length; 45996 while ( i-- ) { 45997 if ( ( elem = matcherOut[ i ] ) && 45998 ( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) { 45999 46000 seed[ temp ] = !( results[ temp ] = elem ); 46001 } 46002 } 46003 } 46004 46005 // Add elements to results, through postFinder if defined 46006 } else { 46007 matcherOut = condense( 46008 matcherOut === results ? 46009 matcherOut.splice( preexisting, matcherOut.length ) : 46010 matcherOut 46011 ); 46012 if ( postFinder ) { 46013 postFinder( null, results, matcherOut, xml ); 46014 } else { 46015 push.apply( results, matcherOut ); 46016 } 46017 } 46018 } ); 46019} 46020 46021function matcherFromTokens( tokens ) { 46022 var checkContext, matcher, j, 46023 len = tokens.length, 46024 leadingRelative = Expr.relative[ tokens[ 0 ].type ], 46025 implicitRelative = leadingRelative || Expr.relative[ " " ], 46026 i = leadingRelative ? 1 : 0, 46027 46028 // The foundational matcher ensures that elements are reachable from top-level context(s) 46029 matchContext = addCombinator( function( elem ) { 46030 return elem === checkContext; 46031 }, implicitRelative, true ), 46032 matchAnyContext = addCombinator( function( elem ) { 46033 return indexOf.call( checkContext, elem ) > -1; 46034 }, implicitRelative, true ), 46035 matchers = [ function( elem, context, xml ) { 46036 46037 // Support: IE 11+, Edge 17 - 18+ 46038 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 46039 // two documents; shallow comparisons work. 46040 // eslint-disable-next-line eqeqeq 46041 var ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || ( 46042 ( checkContext = context ).nodeType ? 46043 matchContext( elem, context, xml ) : 46044 matchAnyContext( elem, context, xml ) ); 46045 46046 // Avoid hanging onto element 46047 // (see https://github.com/jquery/sizzle/issues/299) 46048 checkContext = null; 46049 return ret; 46050 } ]; 46051 46052 for ( ; i < len; i++ ) { 46053 if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { 46054 matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; 46055 } else { 46056 matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); 46057 46058 // Return special upon seeing a positional matcher 46059 if ( matcher[ expando ] ) { 46060 46061 // Find the next relative operator (if any) for proper handling 46062 j = ++i; 46063 for ( ; j < len; j++ ) { 46064 if ( Expr.relative[ tokens[ j ].type ] ) { 46065 break; 46066 } 46067 } 46068 return setMatcher( 46069 i > 1 && elementMatcher( matchers ), 46070 i > 1 && toSelector( 46071 46072 // If the preceding token was a descendant combinator, insert an implicit any-element `*` 46073 tokens.slice( 0, i - 1 ) 46074 .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) 46075 ).replace( rtrimCSS, "$1" ), 46076 matcher, 46077 i < j && matcherFromTokens( tokens.slice( i, j ) ), 46078 j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), 46079 j < len && toSelector( tokens ) 46080 ); 46081 } 46082 matchers.push( matcher ); 46083 } 46084 } 46085 46086 return elementMatcher( matchers ); 46087} 46088 46089function matcherFromGroupMatchers( elementMatchers, setMatchers ) { 46090 var bySet = setMatchers.length > 0, 46091 byElement = elementMatchers.length > 0, 46092 superMatcher = function( seed, context, xml, results, outermost ) { 46093 var elem, j, matcher, 46094 matchedCount = 0, 46095 i = "0", 46096 unmatched = seed && [], 46097 setMatched = [], 46098 contextBackup = outermostContext, 46099 46100 // We must always have either seed elements or outermost context 46101 elems = seed || byElement && Expr.find.TAG( "*", outermost ), 46102 46103 // Use integer dirruns iff this is the outermost matcher 46104 dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), 46105 len = elems.length; 46106 46107 if ( outermost ) { 46108 46109 // Support: IE 11+, Edge 17 - 18+ 46110 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 46111 // two documents; shallow comparisons work. 46112 // eslint-disable-next-line eqeqeq 46113 outermostContext = context == document || context || outermost; 46114 } 46115 46116 // Add elements passing elementMatchers directly to results 46117 // Support: iOS <=7 - 9 only 46118 // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching 46119 // elements by id. (see trac-14142) 46120 for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { 46121 if ( byElement && elem ) { 46122 j = 0; 46123 46124 // Support: IE 11+, Edge 17 - 18+ 46125 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 46126 // two documents; shallow comparisons work. 46127 // eslint-disable-next-line eqeqeq 46128 if ( !context && elem.ownerDocument != document ) { 46129 setDocument( elem ); 46130 xml = !documentIsHTML; 46131 } 46132 while ( ( matcher = elementMatchers[ j++ ] ) ) { 46133 if ( matcher( elem, context || document, xml ) ) { 46134 push.call( results, elem ); 46135 break; 46136 } 46137 } 46138 if ( outermost ) { 46139 dirruns = dirrunsUnique; 46140 } 46141 } 46142 46143 // Track unmatched elements for set filters 46144 if ( bySet ) { 46145 46146 // They will have gone through all possible matchers 46147 if ( ( elem = !matcher && elem ) ) { 46148 matchedCount--; 46149 } 46150 46151 // Lengthen the array for every element, matched or not 46152 if ( seed ) { 46153 unmatched.push( elem ); 46154 } 46155 } 46156 } 46157 46158 // `i` is now the count of elements visited above, and adding it to `matchedCount` 46159 // makes the latter nonnegative. 46160 matchedCount += i; 46161 46162 // Apply set filters to unmatched elements 46163 // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` 46164 // equals `i`), unless we didn't visit _any_ elements in the above loop because we have 46165 // no element matchers and no seed. 46166 // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that 46167 // case, which will result in a "00" `matchedCount` that differs from `i` but is also 46168 // numerically zero. 46169 if ( bySet && i !== matchedCount ) { 46170 j = 0; 46171 while ( ( matcher = setMatchers[ j++ ] ) ) { 46172 matcher( unmatched, setMatched, context, xml ); 46173 } 46174 46175 if ( seed ) { 46176 46177 // Reintegrate element matches to eliminate the need for sorting 46178 if ( matchedCount > 0 ) { 46179 while ( i-- ) { 46180 if ( !( unmatched[ i ] || setMatched[ i ] ) ) { 46181 setMatched[ i ] = pop.call( results ); 46182 } 46183 } 46184 } 46185 46186 // Discard index placeholder values to get only actual matches 46187 setMatched = condense( setMatched ); 46188 } 46189 46190 // Add matches to results 46191 push.apply( results, setMatched ); 46192 46193 // Seedless set matches succeeding multiple successful matchers stipulate sorting 46194 if ( outermost && !seed && setMatched.length > 0 && 46195 ( matchedCount + setMatchers.length ) > 1 ) { 46196 46197 jQuery.uniqueSort( results ); 46198 } 46199 } 46200 46201 // Override manipulation of globals by nested matchers 46202 if ( outermost ) { 46203 dirruns = dirrunsUnique; 46204 outermostContext = contextBackup; 46205 } 46206 46207 return unmatched; 46208 }; 46209 46210 return bySet ? 46211 markFunction( superMatcher ) : 46212 superMatcher; 46213} 46214 46215function compile( selector, match /* Internal Use Only */ ) { 46216 var i, 46217 setMatchers = [], 46218 elementMatchers = [], 46219 cached = compilerCache[ selector + " " ]; 46220 46221 if ( !cached ) { 46222 46223 // Generate a function of recursive functions that can be used to check each element 46224 if ( !match ) { 46225 match = tokenize( selector ); 46226 } 46227 i = match.length; 46228 while ( i-- ) { 46229 cached = matcherFromTokens( match[ i ] ); 46230 if ( cached[ expando ] ) { 46231 setMatchers.push( cached ); 46232 } else { 46233 elementMatchers.push( cached ); 46234 } 46235 } 46236 46237 // Cache the compiled function 46238 cached = compilerCache( selector, 46239 matcherFromGroupMatchers( elementMatchers, setMatchers ) ); 46240 46241 // Save selector and tokenization 46242 cached.selector = selector; 46243 } 46244 return cached; 46245} 46246 46247/** 46248 * A low-level selection function that works with jQuery's compiled 46249 * selector functions 46250 * @param {String|Function} selector A selector or a pre-compiled 46251 * selector function built with jQuery selector compile 46252 * @param {Element} context 46253 * @param {Array} [results] 46254 * @param {Array} [seed] A set of elements to match against 46255 */ 46256function select( selector, context, results, seed ) { 46257 var i, tokens, token, type, find, 46258 compiled = typeof selector === "function" && selector, 46259 match = !seed && tokenize( ( selector = compiled.selector || selector ) ); 46260 46261 results = results || []; 46262 46263 // Try to minimize operations if there is only one selector in the list and no seed 46264 // (the latter of which guarantees us context) 46265 if ( match.length === 1 ) { 46266 46267 // Reduce context if the leading compound selector is an ID 46268 tokens = match[ 0 ] = match[ 0 ].slice( 0 ); 46269 if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && 46270 context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { 46271 46272 context = ( Expr.find.ID( 46273 token.matches[ 0 ].replace( runescape, funescape ), 46274 context 46275 ) || [] )[ 0 ]; 46276 if ( !context ) { 46277 return results; 46278 46279 // Precompiled matchers will still verify ancestry, so step up a level 46280 } else if ( compiled ) { 46281 context = context.parentNode; 46282 } 46283 46284 selector = selector.slice( tokens.shift().value.length ); 46285 } 46286 46287 // Fetch a seed set for right-to-left matching 46288 i = matchExpr.needsContext.test( selector ) ? 0 : tokens.length; 46289 while ( i-- ) { 46290 token = tokens[ i ]; 46291 46292 // Abort if we hit a combinator 46293 if ( Expr.relative[ ( type = token.type ) ] ) { 46294 break; 46295 } 46296 if ( ( find = Expr.find[ type ] ) ) { 46297 46298 // Search, expanding context for leading sibling combinators 46299 if ( ( seed = find( 46300 token.matches[ 0 ].replace( runescape, funescape ), 46301 rsibling.test( tokens[ 0 ].type ) && 46302 testContext( context.parentNode ) || context 46303 ) ) ) { 46304 46305 // If seed is empty or no tokens remain, we can return early 46306 tokens.splice( i, 1 ); 46307 selector = seed.length && toSelector( tokens ); 46308 if ( !selector ) { 46309 push.apply( results, seed ); 46310 return results; 46311 } 46312 46313 break; 46314 } 46315 } 46316 } 46317 } 46318 46319 // Compile and execute a filtering function if one is not provided 46320 // Provide `match` to avoid retokenization if we modified the selector above 46321 ( compiled || compile( selector, match ) )( 46322 seed, 46323 context, 46324 !documentIsHTML, 46325 results, 46326 !context || rsibling.test( selector ) && testContext( context.parentNode ) || context 46327 ); 46328 return results; 46329} 46330 46331// One-time assignments 46332 46333// Support: Android <=4.0 - 4.1+ 46334// Sort stability 46335support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; 46336 46337// Initialize against the default document 46338setDocument(); 46339 46340// Support: Android <=4.0 - 4.1+ 46341// Detached nodes confoundingly follow *each other* 46342support.sortDetached = assert( function( el ) { 46343 46344 // Should return 1, but returns 4 (following) 46345 return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; 46346} ); 46347 46348jQuery.find = find; 46349 46350// Deprecated 46351jQuery.expr[ ":" ] = jQuery.expr.pseudos; 46352jQuery.unique = jQuery.uniqueSort; 46353 46354// These have always been private, but they used to be documented as part of 46355// Sizzle so let's maintain them for now for backwards compatibility purposes. 46356find.compile = compile; 46357find.select = select; 46358find.setDocument = setDocument; 46359find.tokenize = tokenize; 46360 46361find.escape = jQuery.escapeSelector; 46362find.getText = jQuery.text; 46363find.isXML = jQuery.isXMLDoc; 46364find.selectors = jQuery.expr; 46365find.support = jQuery.support; 46366find.uniqueSort = jQuery.uniqueSort; 46367 46368 /* eslint-enable */ 46369 46370} )(); 46371 46372 46373var dir = function( elem, dir, until ) { 46374 var matched = [], 46375 truncate = until !== undefined; 46376 46377 while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { 46378 if ( elem.nodeType === 1 ) { 46379 if ( truncate && jQuery( elem ).is( until ) ) { 46380 break; 46381 } 46382 matched.push( elem ); 46383 } 46384 } 46385 return matched; 46386}; 46387 46388 46389var siblings = function( n, elem ) { 46390 var matched = []; 46391 46392 for ( ; n; n = n.nextSibling ) { 46393 if ( n.nodeType === 1 && n !== elem ) { 46394 matched.push( n ); 46395 } 46396 } 46397 46398 return matched; 46399}; 46400 46401 46402var rneedsContext = jQuery.expr.match.needsContext; 46403 46404var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); 46405 46406 46407 46408// Implement the identical functionality for filter and not 46409function winnow( elements, qualifier, not ) { 46410 if ( isFunction( qualifier ) ) { 46411 return jQuery.grep( elements, function( elem, i ) { 46412 return !!qualifier.call( elem, i, elem ) !== not; 46413 } ); 46414 } 46415 46416 // Single element 46417 if ( qualifier.nodeType ) { 46418 return jQuery.grep( elements, function( elem ) { 46419 return ( elem === qualifier ) !== not; 46420 } ); 46421 } 46422 46423 // Arraylike of elements (jQuery, arguments, Array) 46424 if ( typeof qualifier !== "string" ) { 46425 return jQuery.grep( elements, function( elem ) { 46426 return ( indexOf.call( qualifier, elem ) > -1 ) !== not; 46427 } ); 46428 } 46429 46430 // Filtered directly for both simple and complex selectors 46431 return jQuery.filter( qualifier, elements, not ); 46432} 46433 46434jQuery.filter = function( expr, elems, not ) { 46435 var elem = elems[ 0 ]; 46436 46437 if ( not ) { 46438 expr = ":not(" + expr + ")"; 46439 } 46440 46441 if ( elems.length === 1 && elem.nodeType === 1 ) { 46442 return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; 46443 } 46444 46445 return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { 46446 return elem.nodeType === 1; 46447 } ) ); 46448}; 46449 46450jQuery.fn.extend( { 46451 find: function( selector ) { 46452 var i, ret, 46453 len = this.length, 46454 self = this; 46455 46456 if ( typeof selector !== "string" ) { 46457 return this.pushStack( jQuery( selector ).filter( function() { 46458 for ( i = 0; i < len; i++ ) { 46459 if ( jQuery.contains( self[ i ], this ) ) { 46460 return true; 46461 } 46462 } 46463 } ) ); 46464 } 46465 46466 ret = this.pushStack( [] ); 46467 46468 for ( i = 0; i < len; i++ ) { 46469 jQuery.find( selector, self[ i ], ret ); 46470 } 46471 46472 return len > 1 ? jQuery.uniqueSort( ret ) : ret; 46473 }, 46474 filter: function( selector ) { 46475 return this.pushStack( winnow( this, selector || [], false ) ); 46476 }, 46477 not: function( selector ) { 46478 return this.pushStack( winnow( this, selector || [], true ) ); 46479 }, 46480 is: function( selector ) { 46481 return !!winnow( 46482 this, 46483 46484 // If this is a positional/relative selector, check membership in the returned set 46485 // so $("p:first").is("p:last") won't return true for a doc with two "p". 46486 typeof selector === "string" && rneedsContext.test( selector ) ? 46487 jQuery( selector ) : 46488 selector || [], 46489 false 46490 ).length; 46491 } 46492} ); 46493 46494 46495// Initialize a jQuery object 46496 46497 46498// A central reference to the root jQuery(document) 46499var rootjQuery, 46500 46501 // A simple way to check for HTML strings 46502 // Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521) 46503 // Strict HTML recognition (trac-11290: must start with <) 46504 // Shortcut simple #id case for speed 46505 rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, 46506 46507 init = jQuery.fn.init = function( selector, context, root ) { 46508 var match, elem; 46509 46510 // HANDLE: $(""), $(null), $(undefined), $(false) 46511 if ( !selector ) { 46512 return this; 46513 } 46514 46515 // Method init() accepts an alternate rootjQuery 46516 // so migrate can support jQuery.sub (gh-2101) 46517 root = root || rootjQuery; 46518 46519 // Handle HTML strings 46520 if ( typeof selector === "string" ) { 46521 if ( selector[ 0 ] === "<" && 46522 selector[ selector.length - 1 ] === ">" && 46523 selector.length >= 3 ) { 46524 46525 // Assume that strings that start and end with <> are HTML and skip the regex check 46526 match = [ null, selector, null ]; 46527 46528 } else { 46529 match = rquickExpr.exec( selector ); 46530 } 46531 46532 // Match html or make sure no context is specified for #id 46533 if ( match && ( match[ 1 ] || !context ) ) { 46534 46535 // HANDLE: $(html) -> $(array) 46536 if ( match[ 1 ] ) { 46537 context = context instanceof jQuery ? context[ 0 ] : context; 46538 46539 // Option to run scripts is true for back-compat 46540 // Intentionally let the error be thrown if parseHTML is not present 46541 jQuery.merge( this, jQuery.parseHTML( 46542 match[ 1 ], 46543 context && context.nodeType ? context.ownerDocument || context : document, 46544 true 46545 ) ); 46546 46547 // HANDLE: $(html, props) 46548 if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { 46549 for ( match in context ) { 46550 46551 // Properties of context are called as methods if possible 46552 if ( isFunction( this[ match ] ) ) { 46553 this[ match ]( context[ match ] ); 46554 46555 // ...and otherwise set as attributes 46556 } else { 46557 this.attr( match, context[ match ] ); 46558 } 46559 } 46560 } 46561 46562 return this; 46563 46564 // HANDLE: $(#id) 46565 } else { 46566 elem = document.getElementById( match[ 2 ] ); 46567 46568 if ( elem ) { 46569 46570 // Inject the element directly into the jQuery object 46571 this[ 0 ] = elem; 46572 this.length = 1; 46573 } 46574 return this; 46575 } 46576 46577 // HANDLE: $(expr, $(...)) 46578 } else if ( !context || context.jquery ) { 46579 return ( context || root ).find( selector ); 46580 46581 // HANDLE: $(expr, context) 46582 // (which is just equivalent to: $(context).find(expr) 46583 } else { 46584 return this.constructor( context ).find( selector ); 46585 } 46586 46587 // HANDLE: $(DOMElement) 46588 } else if ( selector.nodeType ) { 46589 this[ 0 ] = selector; 46590 this.length = 1; 46591 return this; 46592 46593 // HANDLE: $(function) 46594 // Shortcut for document ready 46595 } else if ( isFunction( selector ) ) { 46596 return root.ready !== undefined ? 46597 root.ready( selector ) : 46598 46599 // Execute immediately if ready is not present 46600 selector( jQuery ); 46601 } 46602 46603 return jQuery.makeArray( selector, this ); 46604 }; 46605 46606// Give the init function the jQuery prototype for later instantiation 46607init.prototype = jQuery.fn; 46608 46609// Initialize central reference 46610rootjQuery = jQuery( document ); 46611 46612 46613var rparentsprev = /^(?:parents|prev(?:Until|All))/, 46614 46615 // Methods guaranteed to produce a unique set when starting from a unique set 46616 guaranteedUnique = { 46617 children: true, 46618 contents: true, 46619 next: true, 46620 prev: true 46621 }; 46622 46623jQuery.fn.extend( { 46624 has: function( target ) { 46625 var targets = jQuery( target, this ), 46626 l = targets.length; 46627 46628 return this.filter( function() { 46629 var i = 0; 46630 for ( ; i < l; i++ ) { 46631 if ( jQuery.contains( this, targets[ i ] ) ) { 46632 return true; 46633 } 46634 } 46635 } ); 46636 }, 46637 46638 closest: function( selectors, context ) { 46639 var cur, 46640 i = 0, 46641 l = this.length, 46642 matched = [], 46643 targets = typeof selectors !== "string" && jQuery( selectors ); 46644 46645 // Positional selectors never match, since there's no _selection_ context 46646 if ( !rneedsContext.test( selectors ) ) { 46647 for ( ; i < l; i++ ) { 46648 for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { 46649 46650 // Always skip document fragments 46651 if ( cur.nodeType < 11 && ( targets ? 46652 targets.index( cur ) > -1 : 46653 46654 // Don't pass non-elements to jQuery#find 46655 cur.nodeType === 1 && 46656 jQuery.find.matchesSelector( cur, selectors ) ) ) { 46657 46658 matched.push( cur ); 46659 break; 46660 } 46661 } 46662 } 46663 } 46664 46665 return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); 46666 }, 46667 46668 // Determine the position of an element within the set 46669 index: function( elem ) { 46670 46671 // No argument, return index in parent 46672 if ( !elem ) { 46673 return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; 46674 } 46675 46676 // Index in selector 46677 if ( typeof elem === "string" ) { 46678 return indexOf.call( jQuery( elem ), this[ 0 ] ); 46679 } 46680 46681 // Locate the position of the desired element 46682 return indexOf.call( this, 46683 46684 // If it receives a jQuery object, the first element is used 46685 elem.jquery ? elem[ 0 ] : elem 46686 ); 46687 }, 46688 46689 add: function( selector, context ) { 46690 return this.pushStack( 46691 jQuery.uniqueSort( 46692 jQuery.merge( this.get(), jQuery( selector, context ) ) 46693 ) 46694 ); 46695 }, 46696 46697 addBack: function( selector ) { 46698 return this.add( selector == null ? 46699 this.prevObject : this.prevObject.filter( selector ) 46700 ); 46701 } 46702} ); 46703 46704function sibling( cur, dir ) { 46705 while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} 46706 return cur; 46707} 46708 46709jQuery.each( { 46710 parent: function( elem ) { 46711 var parent = elem.parentNode; 46712 return parent && parent.nodeType !== 11 ? parent : null; 46713 }, 46714 parents: function( elem ) { 46715 return dir( elem, "parentNode" ); 46716 }, 46717 parentsUntil: function( elem, _i, until ) { 46718 return dir( elem, "parentNode", until ); 46719 }, 46720 next: function( elem ) { 46721 return sibling( elem, "nextSibling" ); 46722 }, 46723 prev: function( elem ) { 46724 return sibling( elem, "previousSibling" ); 46725 }, 46726 nextAll: function( elem ) { 46727 return dir( elem, "nextSibling" ); 46728 }, 46729 prevAll: function( elem ) { 46730 return dir( elem, "previousSibling" ); 46731 }, 46732 nextUntil: function( elem, _i, until ) { 46733 return dir( elem, "nextSibling", until ); 46734 }, 46735 prevUntil: function( elem, _i, until ) { 46736 return dir( elem, "previousSibling", until ); 46737 }, 46738 siblings: function( elem ) { 46739 return siblings( ( elem.parentNode || {} ).firstChild, elem ); 46740 }, 46741 children: function( elem ) { 46742 return siblings( elem.firstChild ); 46743 }, 46744 contents: function( elem ) { 46745 if ( elem.contentDocument != null && 46746 46747 // Support: IE 11+ 46748 // <object> elements with no `data` attribute has an object 46749 // `contentDocument` with a `null` prototype. 46750 getProto( elem.contentDocument ) ) { 46751 46752 return elem.contentDocument; 46753 } 46754 46755 // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only 46756 // Treat the template element as a regular one in browsers that 46757 // don't support it. 46758 if ( nodeName( elem, "template" ) ) { 46759 elem = elem.content || elem; 46760 } 46761 46762 return jQuery.merge( [], elem.childNodes ); 46763 } 46764}, function( name, fn ) { 46765 jQuery.fn[ name ] = function( until, selector ) { 46766 var matched = jQuery.map( this, fn, until ); 46767 46768 if ( name.slice( -5 ) !== "Until" ) { 46769 selector = until; 46770 } 46771 46772 if ( selector && typeof selector === "string" ) { 46773 matched = jQuery.filter( selector, matched ); 46774 } 46775 46776 if ( this.length > 1 ) { 46777 46778 // Remove duplicates 46779 if ( !guaranteedUnique[ name ] ) { 46780 jQuery.uniqueSort( matched ); 46781 } 46782 46783 // Reverse order for parents* and prev-derivatives 46784 if ( rparentsprev.test( name ) ) { 46785 matched.reverse(); 46786 } 46787 } 46788 46789 return this.pushStack( matched ); 46790 }; 46791} ); 46792var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); 46793 46794 46795 46796// Convert String-formatted options into Object-formatted ones 46797function createOptions( options ) { 46798 var object = {}; 46799 jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { 46800 object[ flag ] = true; 46801 } ); 46802 return object; 46803} 46804 46805/* 46806 * Create a callback list using the following parameters: 46807 * 46808 * options: an optional list of space-separated options that will change how 46809 * the callback list behaves or a more traditional option object 46810 * 46811 * By default a callback list will act like an event callback list and can be 46812 * "fired" multiple times. 46813 * 46814 * Possible options: 46815 * 46816 * once: will ensure the callback list can only be fired once (like a Deferred) 46817 * 46818 * memory: will keep track of previous values and will call any callback added 46819 * after the list has been fired right away with the latest "memorized" 46820 * values (like a Deferred) 46821 * 46822 * unique: will ensure a callback can only be added once (no duplicate in the list) 46823 * 46824 * stopOnFalse: interrupt callings when a callback returns false 46825 * 46826 */ 46827jQuery.Callbacks = function( options ) { 46828 46829 // Convert options from String-formatted to Object-formatted if needed 46830 // (we check in cache first) 46831 options = typeof options === "string" ? 46832 createOptions( options ) : 46833 jQuery.extend( {}, options ); 46834 46835 var // Flag to know if list is currently firing 46836 firing, 46837 46838 // Last fire value for non-forgettable lists 46839 memory, 46840 46841 // Flag to know if list was already fired 46842 fired, 46843 46844 // Flag to prevent firing 46845 locked, 46846 46847 // Actual callback list 46848 list = [], 46849 46850 // Queue of execution data for repeatable lists 46851 queue = [], 46852 46853 // Index of currently firing callback (modified by add/remove as needed) 46854 firingIndex = -1, 46855 46856 // Fire callbacks 46857 fire = function() { 46858 46859 // Enforce single-firing 46860 locked = locked || options.once; 46861 46862 // Execute callbacks for all pending executions, 46863 // respecting firingIndex overrides and runtime changes 46864 fired = firing = true; 46865 for ( ; queue.length; firingIndex = -1 ) { 46866 memory = queue.shift(); 46867 while ( ++firingIndex < list.length ) { 46868 46869 // Run callback and check for early termination 46870 if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && 46871 options.stopOnFalse ) { 46872 46873 // Jump to end and forget the data so .add doesn't re-fire 46874 firingIndex = list.length; 46875 memory = false; 46876 } 46877 } 46878 } 46879 46880 // Forget the data if we're done with it 46881 if ( !options.memory ) { 46882 memory = false; 46883 } 46884 46885 firing = false; 46886 46887 // Clean up if we're done firing for good 46888 if ( locked ) { 46889 46890 // Keep an empty list if we have data for future add calls 46891 if ( memory ) { 46892 list = []; 46893 46894 // Otherwise, this object is spent 46895 } else { 46896 list = ""; 46897 } 46898 } 46899 }, 46900 46901 // Actual Callbacks object 46902 self = { 46903 46904 // Add a callback or a collection of callbacks to the list 46905 add: function() { 46906 if ( list ) { 46907 46908 // If we have memory from a past run, we should fire after adding 46909 if ( memory && !firing ) { 46910 firingIndex = list.length - 1; 46911 queue.push( memory ); 46912 } 46913 46914 ( function add( args ) { 46915 jQuery.each( args, function( _, arg ) { 46916 if ( isFunction( arg ) ) { 46917 if ( !options.unique || !self.has( arg ) ) { 46918 list.push( arg ); 46919 } 46920 } else if ( arg && arg.length && toType( arg ) !== "string" ) { 46921 46922 // Inspect recursively 46923 add( arg ); 46924 } 46925 } ); 46926 } )( arguments ); 46927 46928 if ( memory && !firing ) { 46929 fire(); 46930 } 46931 } 46932 return this; 46933 }, 46934 46935 // Remove a callback from the list 46936 remove: function() { 46937 jQuery.each( arguments, function( _, arg ) { 46938 var index; 46939 while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { 46940 list.splice( index, 1 ); 46941 46942 // Handle firing indexes 46943 if ( index <= firingIndex ) { 46944 firingIndex--; 46945 } 46946 } 46947 } ); 46948 return this; 46949 }, 46950 46951 // Check if a given callback is in the list. 46952 // If no argument is given, return whether or not list has callbacks attached. 46953 has: function( fn ) { 46954 return fn ? 46955 jQuery.inArray( fn, list ) > -1 : 46956 list.length > 0; 46957 }, 46958 46959 // Remove all callbacks from the list 46960 empty: function() { 46961 if ( list ) { 46962 list = []; 46963 } 46964 return this; 46965 }, 46966 46967 // Disable .fire and .add 46968 // Abort any current/pending executions 46969 // Clear all callbacks and values 46970 disable: function() { 46971 locked = queue = []; 46972 list = memory = ""; 46973 return this; 46974 }, 46975 disabled: function() { 46976 return !list; 46977 }, 46978 46979 // Disable .fire 46980 // Also disable .add unless we have memory (since it would have no effect) 46981 // Abort any pending executions 46982 lock: function() { 46983 locked = queue = []; 46984 if ( !memory && !firing ) { 46985 list = memory = ""; 46986 } 46987 return this; 46988 }, 46989 locked: function() { 46990 return !!locked; 46991 }, 46992 46993 // Call all callbacks with the given context and arguments 46994 fireWith: function( context, args ) { 46995 if ( !locked ) { 46996 args = args || []; 46997 args = [ context, args.slice ? args.slice() : args ]; 46998 queue.push( args ); 46999 if ( !firing ) { 47000 fire(); 47001 } 47002 } 47003 return this; 47004 }, 47005 47006 // Call all the callbacks with the given arguments 47007 fire: function() { 47008 self.fireWith( this, arguments ); 47009 return this; 47010 }, 47011 47012 // To know if the callbacks have already been called at least once 47013 fired: function() { 47014 return !!fired; 47015 } 47016 }; 47017 47018 return self; 47019}; 47020 47021 47022function Identity( v ) { 47023 return v; 47024} 47025function Thrower( ex ) { 47026 throw ex; 47027} 47028 47029function adoptValue( value, resolve, reject, noValue ) { 47030 var method; 47031 47032 try { 47033 47034 // Check for promise aspect first to privilege synchronous behavior 47035 if ( value && isFunction( ( method = value.promise ) ) ) { 47036 method.call( value ).done( resolve ).fail( reject ); 47037 47038 // Other thenables 47039 } else if ( value && isFunction( ( method = value.then ) ) ) { 47040 method.call( value, resolve, reject ); 47041 47042 // Other non-thenables 47043 } else { 47044 47045 // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: 47046 // * false: [ value ].slice( 0 ) => resolve( value ) 47047 // * true: [ value ].slice( 1 ) => resolve() 47048 resolve.apply( undefined, [ value ].slice( noValue ) ); 47049 } 47050 47051 // For Promises/A+, convert exceptions into rejections 47052 // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in 47053 // Deferred#then to conditionally suppress rejection. 47054 } catch ( value ) { 47055 47056 // Support: Android 4.0 only 47057 // Strict mode functions invoked without .call/.apply get global-object context 47058 reject.apply( undefined, [ value ] ); 47059 } 47060} 47061 47062jQuery.extend( { 47063 47064 Deferred: function( func ) { 47065 var tuples = [ 47066 47067 // action, add listener, callbacks, 47068 // ... .then handlers, argument index, [final state] 47069 [ "notify", "progress", jQuery.Callbacks( "memory" ), 47070 jQuery.Callbacks( "memory" ), 2 ], 47071 [ "resolve", "done", jQuery.Callbacks( "once memory" ), 47072 jQuery.Callbacks( "once memory" ), 0, "resolved" ], 47073 [ "reject", "fail", jQuery.Callbacks( "once memory" ), 47074 jQuery.Callbacks( "once memory" ), 1, "rejected" ] 47075 ], 47076 state = "pending", 47077 promise = { 47078 state: function() { 47079 return state; 47080 }, 47081 always: function() { 47082 deferred.done( arguments ).fail( arguments ); 47083 return this; 47084 }, 47085 "catch": function( fn ) { 47086 return promise.then( null, fn ); 47087 }, 47088 47089 // Keep pipe for back-compat 47090 pipe: function( /* fnDone, fnFail, fnProgress */ ) { 47091 var fns = arguments; 47092 47093 return jQuery.Deferred( function( newDefer ) { 47094 jQuery.each( tuples, function( _i, tuple ) { 47095 47096 // Map tuples (progress, done, fail) to arguments (done, fail, progress) 47097 var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; 47098 47099 // deferred.progress(function() { bind to newDefer or newDefer.notify }) 47100 // deferred.done(function() { bind to newDefer or newDefer.resolve }) 47101 // deferred.fail(function() { bind to newDefer or newDefer.reject }) 47102 deferred[ tuple[ 1 ] ]( function() { 47103 var returned = fn && fn.apply( this, arguments ); 47104 if ( returned && isFunction( returned.promise ) ) { 47105 returned.promise() 47106 .progress( newDefer.notify ) 47107 .done( newDefer.resolve ) 47108 .fail( newDefer.reject ); 47109 } else { 47110 newDefer[ tuple[ 0 ] + "With" ]( 47111 this, 47112 fn ? [ returned ] : arguments 47113 ); 47114 } 47115 } ); 47116 } ); 47117 fns = null; 47118 } ).promise(); 47119 }, 47120 then: function( onFulfilled, onRejected, onProgress ) { 47121 var maxDepth = 0; 47122 function resolve( depth, deferred, handler, special ) { 47123 return function() { 47124 var that = this, 47125 args = arguments, 47126 mightThrow = function() { 47127 var returned, then; 47128 47129 // Support: Promises/A+ section 2.3.3.3.3 47130 // https://promisesaplus.com/#point-59 47131 // Ignore double-resolution attempts 47132 if ( depth < maxDepth ) { 47133 return; 47134 } 47135 47136 returned = handler.apply( that, args ); 47137 47138 // Support: Promises/A+ section 2.3.1 47139 // https://promisesaplus.com/#point-48 47140 if ( returned === deferred.promise() ) { 47141 throw new TypeError( "Thenable self-resolution" ); 47142 } 47143 47144 // Support: Promises/A+ sections 2.3.3.1, 3.5 47145 // https://promisesaplus.com/#point-54 47146 // https://promisesaplus.com/#point-75 47147 // Retrieve `then` only once 47148 then = returned && 47149 47150 // Support: Promises/A+ section 2.3.4 47151 // https://promisesaplus.com/#point-64 47152 // Only check objects and functions for thenability 47153 ( typeof returned === "object" || 47154 typeof returned === "function" ) && 47155 returned.then; 47156 47157 // Handle a returned thenable 47158 if ( isFunction( then ) ) { 47159 47160 // Special processors (notify) just wait for resolution 47161 if ( special ) { 47162 then.call( 47163 returned, 47164 resolve( maxDepth, deferred, Identity, special ), 47165 resolve( maxDepth, deferred, Thrower, special ) 47166 ); 47167 47168 // Normal processors (resolve) also hook into progress 47169 } else { 47170 47171 // ...and disregard older resolution values 47172 maxDepth++; 47173 47174 then.call( 47175 returned, 47176 resolve( maxDepth, deferred, Identity, special ), 47177 resolve( maxDepth, deferred, Thrower, special ), 47178 resolve( maxDepth, deferred, Identity, 47179 deferred.notifyWith ) 47180 ); 47181 } 47182 47183 // Handle all other returned values 47184 } else { 47185 47186 // Only substitute handlers pass on context 47187 // and multiple values (non-spec behavior) 47188 if ( handler !== Identity ) { 47189 that = undefined; 47190 args = [ returned ]; 47191 } 47192 47193 // Process the value(s) 47194 // Default process is resolve 47195 ( special || deferred.resolveWith )( that, args ); 47196 } 47197 }, 47198 47199 // Only normal processors (resolve) catch and reject exceptions 47200 process = special ? 47201 mightThrow : 47202 function() { 47203 try { 47204 mightThrow(); 47205 } catch ( e ) { 47206 47207 if ( jQuery.Deferred.exceptionHook ) { 47208 jQuery.Deferred.exceptionHook( e, 47209 process.error ); 47210 } 47211 47212 // Support: Promises/A+ section 2.3.3.3.4.1 47213 // https://promisesaplus.com/#point-61 47214 // Ignore post-resolution exceptions 47215 if ( depth + 1 >= maxDepth ) { 47216 47217 // Only substitute handlers pass on context 47218 // and multiple values (non-spec behavior) 47219 if ( handler !== Thrower ) { 47220 that = undefined; 47221 args = [ e ]; 47222 } 47223 47224 deferred.rejectWith( that, args ); 47225 } 47226 } 47227 }; 47228 47229 // Support: Promises/A+ section 2.3.3.3.1 47230 // https://promisesaplus.com/#point-57 47231 // Re-resolve promises immediately to dodge false rejection from 47232 // subsequent errors 47233 if ( depth ) { 47234 process(); 47235 } else { 47236 47237 // Call an optional hook to record the error, in case of exception 47238 // since it's otherwise lost when execution goes async 47239 if ( jQuery.Deferred.getErrorHook ) { 47240 process.error = jQuery.Deferred.getErrorHook(); 47241 47242 // The deprecated alias of the above. While the name suggests 47243 // returning the stack, not an error instance, jQuery just passes 47244 // it directly to `console.warn` so both will work; an instance 47245 // just better cooperates with source maps. 47246 } else if ( jQuery.Deferred.getStackHook ) { 47247 process.error = jQuery.Deferred.getStackHook(); 47248 } 47249 window.setTimeout( process ); 47250 } 47251 }; 47252 } 47253 47254 return jQuery.Deferred( function( newDefer ) { 47255 47256 // progress_handlers.add( ... ) 47257 tuples[ 0 ][ 3 ].add( 47258 resolve( 47259 0, 47260 newDefer, 47261 isFunction( onProgress ) ? 47262 onProgress : 47263 Identity, 47264 newDefer.notifyWith 47265 ) 47266 ); 47267 47268 // fulfilled_handlers.add( ... ) 47269 tuples[ 1 ][ 3 ].add( 47270 resolve( 47271 0, 47272 newDefer, 47273 isFunction( onFulfilled ) ? 47274 onFulfilled : 47275 Identity 47276 ) 47277 ); 47278 47279 // rejected_handlers.add( ... ) 47280 tuples[ 2 ][ 3 ].add( 47281 resolve( 47282 0, 47283 newDefer, 47284 isFunction( onRejected ) ? 47285 onRejected : 47286 Thrower 47287 ) 47288 ); 47289 } ).promise(); 47290 }, 47291 47292 // Get a promise for this deferred 47293 // If obj is provided, the promise aspect is added to the object 47294 promise: function( obj ) { 47295 return obj != null ? jQuery.extend( obj, promise ) : promise; 47296 } 47297 }, 47298 deferred = {}; 47299 47300 // Add list-specific methods 47301 jQuery.each( tuples, function( i, tuple ) { 47302 var list = tuple[ 2 ], 47303 stateString = tuple[ 5 ]; 47304 47305 // promise.progress = list.add 47306 // promise.done = list.add 47307 // promise.fail = list.add 47308 promise[ tuple[ 1 ] ] = list.add; 47309 47310 // Handle state 47311 if ( stateString ) { 47312 list.add( 47313 function() { 47314 47315 // state = "resolved" (i.e., fulfilled) 47316 // state = "rejected" 47317 state = stateString; 47318 }, 47319 47320 // rejected_callbacks.disable 47321 // fulfilled_callbacks.disable 47322 tuples[ 3 - i ][ 2 ].disable, 47323 47324 // rejected_handlers.disable 47325 // fulfilled_handlers.disable 47326 tuples[ 3 - i ][ 3 ].disable, 47327 47328 // progress_callbacks.lock 47329 tuples[ 0 ][ 2 ].lock, 47330 47331 // progress_handlers.lock 47332 tuples[ 0 ][ 3 ].lock 47333 ); 47334 } 47335 47336 // progress_handlers.fire 47337 // fulfilled_handlers.fire 47338 // rejected_handlers.fire 47339 list.add( tuple[ 3 ].fire ); 47340 47341 // deferred.notify = function() { deferred.notifyWith(...) } 47342 // deferred.resolve = function() { deferred.resolveWith(...) } 47343 // deferred.reject = function() { deferred.rejectWith(...) } 47344 deferred[ tuple[ 0 ] ] = function() { 47345 deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); 47346 return this; 47347 }; 47348 47349 // deferred.notifyWith = list.fireWith 47350 // deferred.resolveWith = list.fireWith 47351 // deferred.rejectWith = list.fireWith 47352 deferred[ tuple[ 0 ] + "With" ] = list.fireWith; 47353 } ); 47354 47355 // Make the deferred a promise 47356 promise.promise( deferred ); 47357 47358 // Call given func if any 47359 if ( func ) { 47360 func.call( deferred, deferred ); 47361 } 47362 47363 // All done! 47364 return deferred; 47365 }, 47366 47367 // Deferred helper 47368 when: function( singleValue ) { 47369 var 47370 47371 // count of uncompleted subordinates 47372 remaining = arguments.length, 47373 47374 // count of unprocessed arguments 47375 i = remaining, 47376 47377 // subordinate fulfillment data 47378 resolveContexts = Array( i ), 47379 resolveValues = slice.call( arguments ), 47380 47381 // the primary Deferred 47382 primary = jQuery.Deferred(), 47383 47384 // subordinate callback factory 47385 updateFunc = function( i ) { 47386 return function( value ) { 47387 resolveContexts[ i ] = this; 47388 resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; 47389 if ( !( --remaining ) ) { 47390 primary.resolveWith( resolveContexts, resolveValues ); 47391 } 47392 }; 47393 }; 47394 47395 // Single- and empty arguments are adopted like Promise.resolve 47396 if ( remaining <= 1 ) { 47397 adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, 47398 !remaining ); 47399 47400 // Use .then() to unwrap secondary thenables (cf. gh-3000) 47401 if ( primary.state() === "pending" || 47402 isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { 47403 47404 return primary.then(); 47405 } 47406 } 47407 47408 // Multiple arguments are aggregated like Promise.all array elements 47409 while ( i-- ) { 47410 adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); 47411 } 47412 47413 return primary.promise(); 47414 } 47415} ); 47416 47417 47418// These usually indicate a programmer mistake during development, 47419// warn about them ASAP rather than swallowing them by default. 47420var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 47421 47422// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error 47423// captured before the async barrier to get the original error cause 47424// which may otherwise be hidden. 47425jQuery.Deferred.exceptionHook = function( error, asyncError ) { 47426 47427 // Support: IE 8 - 9 only 47428 // Console exists when dev tools are open, which can happen at any time 47429 if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { 47430 window.console.warn( "jQuery.Deferred exception: " + error.message, 47431 error.stack, asyncError ); 47432 } 47433}; 47434 47435 47436 47437 47438jQuery.readyException = function( error ) { 47439 window.setTimeout( function() { 47440 throw error; 47441 } ); 47442}; 47443 47444 47445 47446 47447// The deferred used on DOM ready 47448var readyList = jQuery.Deferred(); 47449 47450jQuery.fn.ready = function( fn ) { 47451 47452 readyList 47453 .then( fn ) 47454 47455 // Wrap jQuery.readyException in a function so that the lookup 47456 // happens at the time of error handling instead of callback 47457 // registration. 47458 .catch( function( error ) { 47459 jQuery.readyException( error ); 47460 } ); 47461 47462 return this; 47463}; 47464 47465jQuery.extend( { 47466 47467 // Is the DOM ready to be used? Set to true once it occurs. 47468 isReady: false, 47469 47470 // A counter to track how many items to wait for before 47471 // the ready event fires. See trac-6781 47472 readyWait: 1, 47473 47474 // Handle when the DOM is ready 47475 ready: function( wait ) { 47476 47477 // Abort if there are pending holds or we're already ready 47478 if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { 47479 return; 47480 } 47481 47482 // Remember that the DOM is ready 47483 jQuery.isReady = true; 47484 47485 // If a normal DOM Ready event fired, decrement, and wait if need be 47486 if ( wait !== true && --jQuery.readyWait > 0 ) { 47487 return; 47488 } 47489 47490 // If there are functions bound, to execute 47491 readyList.resolveWith( document, [ jQuery ] ); 47492 } 47493} ); 47494 47495jQuery.ready.then = readyList.then; 47496 47497// The ready event handler and self cleanup method 47498function completed() { 47499 document.removeEventListener( "DOMContentLoaded", completed ); 47500 window.removeEventListener( "load", completed ); 47501 jQuery.ready(); 47502} 47503 47504// Catch cases where $(document).ready() is called 47505// after the browser event has already occurred. 47506// Support: IE <=9 - 10 only 47507// Older IE sometimes signals "interactive" too soon 47508if ( document.readyState === "complete" || 47509 ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { 47510 47511 // Handle it asynchronously to allow scripts the opportunity to delay ready 47512 window.setTimeout( jQuery.ready ); 47513 47514} else { 47515 47516 // Use the handy event callback 47517 document.addEventListener( "DOMContentLoaded", completed ); 47518 47519 // A fallback to window.onload, that will always work 47520 window.addEventListener( "load", completed ); 47521} 47522 47523 47524 47525 47526// Multifunctional method to get and set values of a collection 47527// The value/s can optionally be executed if it's a function 47528var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { 47529 var i = 0, 47530 len = elems.length, 47531 bulk = key == null; 47532 47533 // Sets many values 47534 if ( toType( key ) === "object" ) { 47535 chainable = true; 47536 for ( i in key ) { 47537 access( elems, fn, i, key[ i ], true, emptyGet, raw ); 47538 } 47539 47540 // Sets one value 47541 } else if ( value !== undefined ) { 47542 chainable = true; 47543 47544 if ( !isFunction( value ) ) { 47545 raw = true; 47546 } 47547 47548 if ( bulk ) { 47549 47550 // Bulk operations run against the entire set 47551 if ( raw ) { 47552 fn.call( elems, value ); 47553 fn = null; 47554 47555 // ...except when executing function values 47556 } else { 47557 bulk = fn; 47558 fn = function( elem, _key, value ) { 47559 return bulk.call( jQuery( elem ), value ); 47560 }; 47561 } 47562 } 47563 47564 if ( fn ) { 47565 for ( ; i < len; i++ ) { 47566 fn( 47567 elems[ i ], key, raw ? 47568 value : 47569 value.call( elems[ i ], i, fn( elems[ i ], key ) ) 47570 ); 47571 } 47572 } 47573 } 47574 47575 if ( chainable ) { 47576 return elems; 47577 } 47578 47579 // Gets 47580 if ( bulk ) { 47581 return fn.call( elems ); 47582 } 47583 47584 return len ? fn( elems[ 0 ], key ) : emptyGet; 47585}; 47586 47587 47588// Matches dashed string for camelizing 47589var rmsPrefix = /^-ms-/, 47590 rdashAlpha = /-([a-z])/g; 47591 47592// Used by camelCase as callback to replace() 47593function fcamelCase( _all, letter ) { 47594 return letter.toUpperCase(); 47595} 47596 47597// Convert dashed to camelCase; used by the css and data modules 47598// Support: IE <=9 - 11, Edge 12 - 15 47599// Microsoft forgot to hump their vendor prefix (trac-9572) 47600function camelCase( string ) { 47601 return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); 47602} 47603var acceptData = function( owner ) { 47604 47605 // Accepts only: 47606 // - Node 47607 // - Node.ELEMENT_NODE 47608 // - Node.DOCUMENT_NODE 47609 // - Object 47610 // - Any 47611 return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 47612}; 47613 47614 47615 47616 47617function Data() { 47618 this.expando = jQuery.expando + Data.uid++; 47619} 47620 47621Data.uid = 1; 47622 47623Data.prototype = { 47624 47625 cache: function( owner ) { 47626 47627 // Check if the owner object already has a cache 47628 var value = owner[ this.expando ]; 47629 47630 // If not, create one 47631 if ( !value ) { 47632 value = {}; 47633 47634 // We can accept data for non-element nodes in modern browsers, 47635 // but we should not, see trac-8335. 47636 // Always return an empty object. 47637 if ( acceptData( owner ) ) { 47638 47639 // If it is a node unlikely to be stringify-ed or looped over 47640 // use plain assignment 47641 if ( owner.nodeType ) { 47642 owner[ this.expando ] = value; 47643 47644 // Otherwise secure it in a non-enumerable property 47645 // configurable must be true to allow the property to be 47646 // deleted when data is removed 47647 } else { 47648 Object.defineProperty( owner, this.expando, { 47649 value: value, 47650 configurable: true 47651 } ); 47652 } 47653 } 47654 } 47655 47656 return value; 47657 }, 47658 set: function( owner, data, value ) { 47659 var prop, 47660 cache = this.cache( owner ); 47661 47662 // Handle: [ owner, key, value ] args 47663 // Always use camelCase key (gh-2257) 47664 if ( typeof data === "string" ) { 47665 cache[ camelCase( data ) ] = value; 47666 47667 // Handle: [ owner, { properties } ] args 47668 } else { 47669 47670 // Copy the properties one-by-one to the cache object 47671 for ( prop in data ) { 47672 cache[ camelCase( prop ) ] = data[ prop ]; 47673 } 47674 } 47675 return cache; 47676 }, 47677 get: function( owner, key ) { 47678 return key === undefined ? 47679 this.cache( owner ) : 47680 47681 // Always use camelCase key (gh-2257) 47682 owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; 47683 }, 47684 access: function( owner, key, value ) { 47685 47686 // In cases where either: 47687 // 47688 // 1. No key was specified 47689 // 2. A string key was specified, but no value provided 47690 // 47691 // Take the "read" path and allow the get method to determine 47692 // which value to return, respectively either: 47693 // 47694 // 1. The entire cache object 47695 // 2. The data stored at the key 47696 // 47697 if ( key === undefined || 47698 ( ( key && typeof key === "string" ) && value === undefined ) ) { 47699 47700 return this.get( owner, key ); 47701 } 47702 47703 // When the key is not a string, or both a key and value 47704 // are specified, set or extend (existing objects) with either: 47705 // 47706 // 1. An object of properties 47707 // 2. A key and value 47708 // 47709 this.set( owner, key, value ); 47710 47711 // Since the "set" path can have two possible entry points 47712 // return the expected data based on which path was taken[*] 47713 return value !== undefined ? value : key; 47714 }, 47715 remove: function( owner, key ) { 47716 var i, 47717 cache = owner[ this.expando ]; 47718 47719 if ( cache === undefined ) { 47720 return; 47721 } 47722 47723 if ( key !== undefined ) { 47724 47725 // Support array or space separated string of keys 47726 if ( Array.isArray( key ) ) { 47727 47728 // If key is an array of keys... 47729 // We always set camelCase keys, so remove that. 47730 key = key.map( camelCase ); 47731 } else { 47732 key = camelCase( key ); 47733 47734 // If a key with the spaces exists, use it. 47735 // Otherwise, create an array by matching non-whitespace 47736 key = key in cache ? 47737 [ key ] : 47738 ( key.match( rnothtmlwhite ) || [] ); 47739 } 47740 47741 i = key.length; 47742 47743 while ( i-- ) { 47744 delete cache[ key[ i ] ]; 47745 } 47746 } 47747 47748 // Remove the expando if there's no more data 47749 if ( key === undefined || jQuery.isEmptyObject( cache ) ) { 47750 47751 // Support: Chrome <=35 - 45 47752 // Webkit & Blink performance suffers when deleting properties 47753 // from DOM nodes, so set to undefined instead 47754 // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) 47755 if ( owner.nodeType ) { 47756 owner[ this.expando ] = undefined; 47757 } else { 47758 delete owner[ this.expando ]; 47759 } 47760 } 47761 }, 47762 hasData: function( owner ) { 47763 var cache = owner[ this.expando ]; 47764 return cache !== undefined && !jQuery.isEmptyObject( cache ); 47765 } 47766}; 47767var dataPriv = new Data(); 47768 47769var dataUser = new Data(); 47770 47771 47772 47773// Implementation Summary 47774// 47775// 1. Enforce API surface and semantic compatibility with 1.9.x branch 47776// 2. Improve the module's maintainability by reducing the storage 47777// paths to a single mechanism. 47778// 3. Use the same single mechanism to support "private" and "user" data. 47779// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) 47780// 5. Avoid exposing implementation details on user objects (eg. expando properties) 47781// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 47782 47783var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 47784 rmultiDash = /[A-Z]/g; 47785 47786function getData( data ) { 47787 if ( data === "true" ) { 47788 return true; 47789 } 47790 47791 if ( data === "false" ) { 47792 return false; 47793 } 47794 47795 if ( data === "null" ) { 47796 return null; 47797 } 47798 47799 // Only convert to a number if it doesn't change the string 47800 if ( data === +data + "" ) { 47801 return +data; 47802 } 47803 47804 if ( rbrace.test( data ) ) { 47805 return JSON.parse( data ); 47806 } 47807 47808 return data; 47809} 47810 47811function dataAttr( elem, key, data ) { 47812 var name; 47813 47814 // If nothing was found internally, try to fetch any 47815 // data from the HTML5 data-* attribute 47816 if ( data === undefined && elem.nodeType === 1 ) { 47817 name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); 47818 data = elem.getAttribute( name ); 47819 47820 if ( typeof data === "string" ) { 47821 try { 47822 data = getData( data ); 47823 } catch ( e ) {} 47824 47825 // Make sure we set the data so it isn't changed later 47826 dataUser.set( elem, key, data ); 47827 } else { 47828 data = undefined; 47829 } 47830 } 47831 return data; 47832} 47833 47834jQuery.extend( { 47835 hasData: function( elem ) { 47836 return dataUser.hasData( elem ) || dataPriv.hasData( elem ); 47837 }, 47838 47839 data: function( elem, name, data ) { 47840 return dataUser.access( elem, name, data ); 47841 }, 47842 47843 removeData: function( elem, name ) { 47844 dataUser.remove( elem, name ); 47845 }, 47846 47847 // TODO: Now that all calls to _data and _removeData have been replaced 47848 // with direct calls to dataPriv methods, these can be deprecated. 47849 _data: function( elem, name, data ) { 47850 return dataPriv.access( elem, name, data ); 47851 }, 47852 47853 _removeData: function( elem, name ) { 47854 dataPriv.remove( elem, name ); 47855 } 47856} ); 47857 47858jQuery.fn.extend( { 47859 data: function( key, value ) { 47860 var i, name, data, 47861 elem = this[ 0 ], 47862 attrs = elem && elem.attributes; 47863 47864 // Gets all values 47865 if ( key === undefined ) { 47866 if ( this.length ) { 47867 data = dataUser.get( elem ); 47868 47869 if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { 47870 i = attrs.length; 47871 while ( i-- ) { 47872 47873 // Support: IE 11 only 47874 // The attrs elements can be null (trac-14894) 47875 if ( attrs[ i ] ) { 47876 name = attrs[ i ].name; 47877 if ( name.indexOf( "data-" ) === 0 ) { 47878 name = camelCase( name.slice( 5 ) ); 47879 dataAttr( elem, name, data[ name ] ); 47880 } 47881 } 47882 } 47883 dataPriv.set( elem, "hasDataAttrs", true ); 47884 } 47885 } 47886 47887 return data; 47888 } 47889 47890 // Sets multiple values 47891 if ( typeof key === "object" ) { 47892 return this.each( function() { 47893 dataUser.set( this, key ); 47894 } ); 47895 } 47896 47897 return access( this, function( value ) { 47898 var data; 47899 47900 // The calling jQuery object (element matches) is not empty 47901 // (and therefore has an element appears at this[ 0 ]) and the 47902 // `value` parameter was not undefined. An empty jQuery object 47903 // will result in `undefined` for elem = this[ 0 ] which will 47904 // throw an exception if an attempt to read a data cache is made. 47905 if ( elem && value === undefined ) { 47906 47907 // Attempt to get data from the cache 47908 // The key will always be camelCased in Data 47909 data = dataUser.get( elem, key ); 47910 if ( data !== undefined ) { 47911 return data; 47912 } 47913 47914 // Attempt to "discover" the data in 47915 // HTML5 custom data-* attrs 47916 data = dataAttr( elem, key ); 47917 if ( data !== undefined ) { 47918 return data; 47919 } 47920 47921 // We tried really hard, but the data doesn't exist. 47922 return; 47923 } 47924 47925 // Set the data... 47926 this.each( function() { 47927 47928 // We always store the camelCased key 47929 dataUser.set( this, key, value ); 47930 } ); 47931 }, null, value, arguments.length > 1, null, true ); 47932 }, 47933 47934 removeData: function( key ) { 47935 return this.each( function() { 47936 dataUser.remove( this, key ); 47937 } ); 47938 } 47939} ); 47940 47941 47942jQuery.extend( { 47943 queue: function( elem, type, data ) { 47944 var queue; 47945 47946 if ( elem ) { 47947 type = ( type || "fx" ) + "queue"; 47948 queue = dataPriv.get( elem, type ); 47949 47950 // Speed up dequeue by getting out quickly if this is just a lookup 47951 if ( data ) { 47952 if ( !queue || Array.isArray( data ) ) { 47953 queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); 47954 } else { 47955 queue.push( data ); 47956 } 47957 } 47958 return queue || []; 47959 } 47960 }, 47961 47962 dequeue: function( elem, type ) { 47963 type = type || "fx"; 47964 47965 var queue = jQuery.queue( elem, type ), 47966 startLength = queue.length, 47967 fn = queue.shift(), 47968 hooks = jQuery._queueHooks( elem, type ), 47969 next = function() { 47970 jQuery.dequeue( elem, type ); 47971 }; 47972 47973 // If the fx queue is dequeued, always remove the progress sentinel 47974 if ( fn === "inprogress" ) { 47975 fn = queue.shift(); 47976 startLength--; 47977 } 47978 47979 if ( fn ) { 47980 47981 // Add a progress sentinel to prevent the fx queue from being 47982 // automatically dequeued 47983 if ( type === "fx" ) { 47984 queue.unshift( "inprogress" ); 47985 } 47986 47987 // Clear up the last queue stop function 47988 delete hooks.stop; 47989 fn.call( elem, next, hooks ); 47990 } 47991 47992 if ( !startLength && hooks ) { 47993 hooks.empty.fire(); 47994 } 47995 }, 47996 47997 // Not public - generate a queueHooks object, or return the current one 47998 _queueHooks: function( elem, type ) { 47999 var key = type + "queueHooks"; 48000 return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { 48001 empty: jQuery.Callbacks( "once memory" ).add( function() { 48002 dataPriv.remove( elem, [ type + "queue", key ] ); 48003 } ) 48004 } ); 48005 } 48006} ); 48007 48008jQuery.fn.extend( { 48009 queue: function( type, data ) { 48010 var setter = 2; 48011 48012 if ( typeof type !== "string" ) { 48013 data = type; 48014 type = "fx"; 48015 setter--; 48016 } 48017 48018 if ( arguments.length < setter ) { 48019 return jQuery.queue( this[ 0 ], type ); 48020 } 48021 48022 return data === undefined ? 48023 this : 48024 this.each( function() { 48025 var queue = jQuery.queue( this, type, data ); 48026 48027 // Ensure a hooks for this queue 48028 jQuery._queueHooks( this, type ); 48029 48030 if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { 48031 jQuery.dequeue( this, type ); 48032 } 48033 } ); 48034 }, 48035 dequeue: function( type ) { 48036 return this.each( function() { 48037 jQuery.dequeue( this, type ); 48038 } ); 48039 }, 48040 clearQueue: function( type ) { 48041 return this.queue( type || "fx", [] ); 48042 }, 48043 48044 // Get a promise resolved when queues of a certain type 48045 // are emptied (fx is the type by default) 48046 promise: function( type, obj ) { 48047 var tmp, 48048 count = 1, 48049 defer = jQuery.Deferred(), 48050 elements = this, 48051 i = this.length, 48052 resolve = function() { 48053 if ( !( --count ) ) { 48054 defer.resolveWith( elements, [ elements ] ); 48055 } 48056 }; 48057 48058 if ( typeof type !== "string" ) { 48059 obj = type; 48060 type = undefined; 48061 } 48062 type = type || "fx"; 48063 48064 while ( i-- ) { 48065 tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); 48066 if ( tmp && tmp.empty ) { 48067 count++; 48068 tmp.empty.add( resolve ); 48069 } 48070 } 48071 resolve(); 48072 return defer.promise( obj ); 48073 } 48074} ); 48075var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; 48076 48077var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); 48078 48079 48080var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; 48081 48082var documentElement = document.documentElement; 48083 48084 48085 48086 var isAttached = function( elem ) { 48087 return jQuery.contains( elem.ownerDocument, elem ); 48088 }, 48089 composed = { composed: true }; 48090 48091 // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only 48092 // Check attachment across shadow DOM boundaries when possible (gh-3504) 48093 // Support: iOS 10.0-10.2 only 48094 // Early iOS 10 versions support `attachShadow` but not `getRootNode`, 48095 // leading to errors. We need to check for `getRootNode`. 48096 if ( documentElement.getRootNode ) { 48097 isAttached = function( elem ) { 48098 return jQuery.contains( elem.ownerDocument, elem ) || 48099 elem.getRootNode( composed ) === elem.ownerDocument; 48100 }; 48101 } 48102var isHiddenWithinTree = function( elem, el ) { 48103 48104 // isHiddenWithinTree might be called from jQuery#filter function; 48105 // in that case, element will be second argument 48106 elem = el || elem; 48107 48108 // Inline style trumps all 48109 return elem.style.display === "none" || 48110 elem.style.display === "" && 48111 48112 // Otherwise, check computed style 48113 // Support: Firefox <=43 - 45 48114 // Disconnected elements can have computed display: none, so first confirm that elem is 48115 // in the document. 48116 isAttached( elem ) && 48117 48118 jQuery.css( elem, "display" ) === "none"; 48119 }; 48120 48121 48122 48123function adjustCSS( elem, prop, valueParts, tween ) { 48124 var adjusted, scale, 48125 maxIterations = 20, 48126 currentValue = tween ? 48127 function() { 48128 return tween.cur(); 48129 } : 48130 function() { 48131 return jQuery.css( elem, prop, "" ); 48132 }, 48133 initial = currentValue(), 48134 unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), 48135 48136 // Starting value computation is required for potential unit mismatches 48137 initialInUnit = elem.nodeType && 48138 ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && 48139 rcssNum.exec( jQuery.css( elem, prop ) ); 48140 48141 if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { 48142 48143 // Support: Firefox <=54 48144 // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) 48145 initial = initial / 2; 48146 48147 // Trust units reported by jQuery.css 48148 unit = unit || initialInUnit[ 3 ]; 48149 48150 // Iteratively approximate from a nonzero starting point 48151 initialInUnit = +initial || 1; 48152 48153 while ( maxIterations-- ) { 48154 48155 // Evaluate and update our best guess (doubling guesses that zero out). 48156 // Finish if the scale equals or crosses 1 (making the old*new product non-positive). 48157 jQuery.style( elem, prop, initialInUnit + unit ); 48158 if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { 48159 maxIterations = 0; 48160 } 48161 initialInUnit = initialInUnit / scale; 48162 48163 } 48164 48165 initialInUnit = initialInUnit * 2; 48166 jQuery.style( elem, prop, initialInUnit + unit ); 48167 48168 // Make sure we update the tween properties later on 48169 valueParts = valueParts || []; 48170 } 48171 48172 if ( valueParts ) { 48173 initialInUnit = +initialInUnit || +initial || 0; 48174 48175 // Apply relative offset (+=/-=) if specified 48176 adjusted = valueParts[ 1 ] ? 48177 initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : 48178 +valueParts[ 2 ]; 48179 if ( tween ) { 48180 tween.unit = unit; 48181 tween.start = initialInUnit; 48182 tween.end = adjusted; 48183 } 48184 } 48185 return adjusted; 48186} 48187 48188 48189var defaultDisplayMap = {}; 48190 48191function getDefaultDisplay( elem ) { 48192 var temp, 48193 doc = elem.ownerDocument, 48194 nodeName = elem.nodeName, 48195 display = defaultDisplayMap[ nodeName ]; 48196 48197 if ( display ) { 48198 return display; 48199 } 48200 48201 temp = doc.body.appendChild( doc.createElement( nodeName ) ); 48202 display = jQuery.css( temp, "display" ); 48203 48204 temp.parentNode.removeChild( temp ); 48205 48206 if ( display === "none" ) { 48207 display = "block"; 48208 } 48209 defaultDisplayMap[ nodeName ] = display; 48210 48211 return display; 48212} 48213 48214function showHide( elements, show ) { 48215 var display, elem, 48216 values = [], 48217 index = 0, 48218 length = elements.length; 48219 48220 // Determine new display value for elements that need to change 48221 for ( ; index < length; index++ ) { 48222 elem = elements[ index ]; 48223 if ( !elem.style ) { 48224 continue; 48225 } 48226 48227 display = elem.style.display; 48228 if ( show ) { 48229 48230 // Since we force visibility upon cascade-hidden elements, an immediate (and slow) 48231 // check is required in this first loop unless we have a nonempty display value (either 48232 // inline or about-to-be-restored) 48233 if ( display === "none" ) { 48234 values[ index ] = dataPriv.get( elem, "display" ) || null; 48235 if ( !values[ index ] ) { 48236 elem.style.display = ""; 48237 } 48238 } 48239 if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { 48240 values[ index ] = getDefaultDisplay( elem ); 48241 } 48242 } else { 48243 if ( display !== "none" ) { 48244 values[ index ] = "none"; 48245 48246 // Remember what we're overwriting 48247 dataPriv.set( elem, "display", display ); 48248 } 48249 } 48250 } 48251 48252 // Set the display of the elements in a second loop to avoid constant reflow 48253 for ( index = 0; index < length; index++ ) { 48254 if ( values[ index ] != null ) { 48255 elements[ index ].style.display = values[ index ]; 48256 } 48257 } 48258 48259 return elements; 48260} 48261 48262jQuery.fn.extend( { 48263 show: function() { 48264 return showHide( this, true ); 48265 }, 48266 hide: function() { 48267 return showHide( this ); 48268 }, 48269 toggle: function( state ) { 48270 if ( typeof state === "boolean" ) { 48271 return state ? this.show() : this.hide(); 48272 } 48273 48274 return this.each( function() { 48275 if ( isHiddenWithinTree( this ) ) { 48276 jQuery( this ).show(); 48277 } else { 48278 jQuery( this ).hide(); 48279 } 48280 } ); 48281 } 48282} ); 48283var rcheckableType = ( /^(?:checkbox|radio)$/i ); 48284 48285var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); 48286 48287var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); 48288 48289 48290 48291( function() { 48292 var fragment = document.createDocumentFragment(), 48293 div = fragment.appendChild( document.createElement( "div" ) ), 48294 input = document.createElement( "input" ); 48295 48296 // Support: Android 4.0 - 4.3 only 48297 // Check state lost if the name is set (trac-11217) 48298 // Support: Windows Web Apps (WWA) 48299 // `name` and `type` must use .setAttribute for WWA (trac-14901) 48300 input.setAttribute( "type", "radio" ); 48301 input.setAttribute( "checked", "checked" ); 48302 input.setAttribute( "name", "t" ); 48303 48304 div.appendChild( input ); 48305 48306 // Support: Android <=4.1 only 48307 // Older WebKit doesn't clone checked state correctly in fragments 48308 support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; 48309 48310 // Support: IE <=11 only 48311 // Make sure textarea (and checkbox) defaultValue is properly cloned 48312 div.innerHTML = "<textarea>x</textarea>"; 48313 support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; 48314 48315 // Support: IE <=9 only 48316 // IE <=9 replaces <option> tags with their contents when inserted outside of 48317 // the select element. 48318 div.innerHTML = "<option></option>"; 48319 support.option = !!div.lastChild; 48320} )(); 48321 48322 48323// We have to close these tags to support XHTML (trac-13200) 48324var wrapMap = { 48325 48326 // XHTML parsers do not magically insert elements in the 48327 // same way that tag soup parsers do. So we cannot shorten 48328 // this by omitting <tbody> or other required elements. 48329 thead: [ 1, "<table>", "</table>" ], 48330 col: [ 2, "<table><colgroup>", "</colgroup></table>" ], 48331 tr: [ 2, "<table><tbody>", "</tbody></table>" ], 48332 td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], 48333 48334 _default: [ 0, "", "" ] 48335}; 48336 48337wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 48338wrapMap.th = wrapMap.td; 48339 48340// Support: IE <=9 only 48341if ( !support.option ) { 48342 wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ]; 48343} 48344 48345 48346function getAll( context, tag ) { 48347 48348 // Support: IE <=9 - 11 only 48349 // Use typeof to avoid zero-argument method invocation on host objects (trac-15151) 48350 var ret; 48351 48352 if ( typeof context.getElementsByTagName !== "undefined" ) { 48353 ret = context.getElementsByTagName( tag || "*" ); 48354 48355 } else if ( typeof context.querySelectorAll !== "undefined" ) { 48356 ret = context.querySelectorAll( tag || "*" ); 48357 48358 } else { 48359 ret = []; 48360 } 48361 48362 if ( tag === undefined || tag && nodeName( context, tag ) ) { 48363 return jQuery.merge( [ context ], ret ); 48364 } 48365 48366 return ret; 48367} 48368 48369 48370// Mark scripts as having already been evaluated 48371function setGlobalEval( elems, refElements ) { 48372 var i = 0, 48373 l = elems.length; 48374 48375 for ( ; i < l; i++ ) { 48376 dataPriv.set( 48377 elems[ i ], 48378 "globalEval", 48379 !refElements || dataPriv.get( refElements[ i ], "globalEval" ) 48380 ); 48381 } 48382} 48383 48384 48385var rhtml = /<|&#?\w+;/; 48386 48387function buildFragment( elems, context, scripts, selection, ignored ) { 48388 var elem, tmp, tag, wrap, attached, j, 48389 fragment = context.createDocumentFragment(), 48390 nodes = [], 48391 i = 0, 48392 l = elems.length; 48393 48394 for ( ; i < l; i++ ) { 48395 elem = elems[ i ]; 48396 48397 if ( elem || elem === 0 ) { 48398 48399 // Add nodes directly 48400 if ( toType( elem ) === "object" ) { 48401 48402 // Support: Android <=4.0 only, PhantomJS 1 only 48403 // push.apply(_, arraylike) throws on ancient WebKit 48404 jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); 48405 48406 // Convert non-html into a text node 48407 } else if ( !rhtml.test( elem ) ) { 48408 nodes.push( context.createTextNode( elem ) ); 48409 48410 // Convert html into DOM nodes 48411 } else { 48412 tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); 48413 48414 // Deserialize a standard representation 48415 tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); 48416 wrap = wrapMap[ tag ] || wrapMap._default; 48417 tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; 48418 48419 // Descend through wrappers to the right content 48420 j = wrap[ 0 ]; 48421 while ( j-- ) { 48422 tmp = tmp.lastChild; 48423 } 48424 48425 // Support: Android <=4.0 only, PhantomJS 1 only 48426 // push.apply(_, arraylike) throws on ancient WebKit 48427 jQuery.merge( nodes, tmp.childNodes ); 48428 48429 // Remember the top-level container 48430 tmp = fragment.firstChild; 48431 48432 // Ensure the created nodes are orphaned (trac-12392) 48433 tmp.textContent = ""; 48434 } 48435 } 48436 } 48437 48438 // Remove wrapper from fragment 48439 fragment.textContent = ""; 48440 48441 i = 0; 48442 while ( ( elem = nodes[ i++ ] ) ) { 48443 48444 // Skip elements already in the context collection (trac-4087) 48445 if ( selection && jQuery.inArray( elem, selection ) > -1 ) { 48446 if ( ignored ) { 48447 ignored.push( elem ); 48448 } 48449 continue; 48450 } 48451 48452 attached = isAttached( elem ); 48453 48454 // Append to fragment 48455 tmp = getAll( fragment.appendChild( elem ), "script" ); 48456 48457 // Preserve script evaluation history 48458 if ( attached ) { 48459 setGlobalEval( tmp ); 48460 } 48461 48462 // Capture executables 48463 if ( scripts ) { 48464 j = 0; 48465 while ( ( elem = tmp[ j++ ] ) ) { 48466 if ( rscriptType.test( elem.type || "" ) ) { 48467 scripts.push( elem ); 48468 } 48469 } 48470 } 48471 } 48472 48473 return fragment; 48474} 48475 48476 48477var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; 48478 48479function returnTrue() { 48480 return true; 48481} 48482 48483function returnFalse() { 48484 return false; 48485} 48486 48487function on( elem, types, selector, data, fn, one ) { 48488 var origFn, type; 48489 48490 // Types can be a map of types/handlers 48491 if ( typeof types === "object" ) { 48492 48493 // ( types-Object, selector, data ) 48494 if ( typeof selector !== "string" ) { 48495 48496 // ( types-Object, data ) 48497 data = data || selector; 48498 selector = undefined; 48499 } 48500 for ( type in types ) { 48501 on( elem, type, selector, data, types[ type ], one ); 48502 } 48503 return elem; 48504 } 48505 48506 if ( data == null && fn == null ) { 48507 48508 // ( types, fn ) 48509 fn = selector; 48510 data = selector = undefined; 48511 } else if ( fn == null ) { 48512 if ( typeof selector === "string" ) { 48513 48514 // ( types, selector, fn ) 48515 fn = data; 48516 data = undefined; 48517 } else { 48518 48519 // ( types, data, fn ) 48520 fn = data; 48521 data = selector; 48522 selector = undefined; 48523 } 48524 } 48525 if ( fn === false ) { 48526 fn = returnFalse; 48527 } else if ( !fn ) { 48528 return elem; 48529 } 48530 48531 if ( one === 1 ) { 48532 origFn = fn; 48533 fn = function( event ) { 48534 48535 // Can use an empty set, since event contains the info 48536 jQuery().off( event ); 48537 return origFn.apply( this, arguments ); 48538 }; 48539 48540 // Use same guid so caller can remove using origFn 48541 fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); 48542 } 48543 return elem.each( function() { 48544 jQuery.event.add( this, types, fn, data, selector ); 48545 } ); 48546} 48547 48548/* 48549 * Helper functions for managing events -- not part of the public interface. 48550 * Props to Dean Edwards' addEvent library for many of the ideas. 48551 */ 48552jQuery.event = { 48553 48554 global: {}, 48555 48556 add: function( elem, types, handler, data, selector ) { 48557 48558 var handleObjIn, eventHandle, tmp, 48559 events, t, handleObj, 48560 special, handlers, type, namespaces, origType, 48561 elemData = dataPriv.get( elem ); 48562 48563 // Only attach events to objects that accept data 48564 if ( !acceptData( elem ) ) { 48565 return; 48566 } 48567 48568 // Caller can pass in an object of custom data in lieu of the handler 48569 if ( handler.handler ) { 48570 handleObjIn = handler; 48571 handler = handleObjIn.handler; 48572 selector = handleObjIn.selector; 48573 } 48574 48575 // Ensure that invalid selectors throw exceptions at attach time 48576 // Evaluate against documentElement in case elem is a non-element node (e.g., document) 48577 if ( selector ) { 48578 jQuery.find.matchesSelector( documentElement, selector ); 48579 } 48580 48581 // Make sure that the handler has a unique ID, used to find/remove it later 48582 if ( !handler.guid ) { 48583 handler.guid = jQuery.guid++; 48584 } 48585 48586 // Init the element's event structure and main handler, if this is the first 48587 if ( !( events = elemData.events ) ) { 48588 events = elemData.events = Object.create( null ); 48589 } 48590 if ( !( eventHandle = elemData.handle ) ) { 48591 eventHandle = elemData.handle = function( e ) { 48592 48593 // Discard the second event of a jQuery.event.trigger() and 48594 // when an event is called after a page has unloaded 48595 return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? 48596 jQuery.event.dispatch.apply( elem, arguments ) : undefined; 48597 }; 48598 } 48599 48600 // Handle multiple events separated by a space 48601 types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; 48602 t = types.length; 48603 while ( t-- ) { 48604 tmp = rtypenamespace.exec( types[ t ] ) || []; 48605 type = origType = tmp[ 1 ]; 48606 namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); 48607 48608 // There *must* be a type, no attaching namespace-only handlers 48609 if ( !type ) { 48610 continue; 48611 } 48612 48613 // If event changes its type, use the special event handlers for the changed type 48614 special = jQuery.event.special[ type ] || {}; 48615 48616 // If selector defined, determine special event api type, otherwise given type 48617 type = ( selector ? special.delegateType : special.bindType ) || type; 48618 48619 // Update special based on newly reset type 48620 special = jQuery.event.special[ type ] || {}; 48621 48622 // handleObj is passed to all event handlers 48623 handleObj = jQuery.extend( { 48624 type: type, 48625 origType: origType, 48626 data: data, 48627 handler: handler, 48628 guid: handler.guid, 48629 selector: selector, 48630 needsContext: selector && jQuery.expr.match.needsContext.test( selector ), 48631 namespace: namespaces.join( "." ) 48632 }, handleObjIn ); 48633 48634 // Init the event handler queue if we're the first 48635 if ( !( handlers = events[ type ] ) ) { 48636 handlers = events[ type ] = []; 48637 handlers.delegateCount = 0; 48638 48639 // Only use addEventListener if the special events handler returns false 48640 if ( !special.setup || 48641 special.setup.call( elem, data, namespaces, eventHandle ) === false ) { 48642 48643 if ( elem.addEventListener ) { 48644 elem.addEventListener( type, eventHandle ); 48645 } 48646 } 48647 } 48648 48649 if ( special.add ) { 48650 special.add.call( elem, handleObj ); 48651 48652 if ( !handleObj.handler.guid ) { 48653 handleObj.handler.guid = handler.guid; 48654 } 48655 } 48656 48657 // Add to the element's handler list, delegates in front 48658 if ( selector ) { 48659 handlers.splice( handlers.delegateCount++, 0, handleObj ); 48660 } else { 48661 handlers.push( handleObj ); 48662 } 48663 48664 // Keep track of which events have ever been used, for event optimization 48665 jQuery.event.global[ type ] = true; 48666 } 48667 48668 }, 48669 48670 // Detach an event or set of events from an element 48671 remove: function( elem, types, handler, selector, mappedTypes ) { 48672 48673 var j, origCount, tmp, 48674 events, t, handleObj, 48675 special, handlers, type, namespaces, origType, 48676 elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); 48677 48678 if ( !elemData || !( events = elemData.events ) ) { 48679 return; 48680 } 48681 48682 // Once for each type.namespace in types; type may be omitted 48683 types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; 48684 t = types.length; 48685 while ( t-- ) { 48686 tmp = rtypenamespace.exec( types[ t ] ) || []; 48687 type = origType = tmp[ 1 ]; 48688 namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); 48689 48690 // Unbind all events (on this namespace, if provided) for the element 48691 if ( !type ) { 48692 for ( type in events ) { 48693 jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); 48694 } 48695 continue; 48696 } 48697 48698 special = jQuery.event.special[ type ] || {}; 48699 type = ( selector ? special.delegateType : special.bindType ) || type; 48700 handlers = events[ type ] || []; 48701 tmp = tmp[ 2 ] && 48702 new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); 48703 48704 // Remove matching events 48705 origCount = j = handlers.length; 48706 while ( j-- ) { 48707 handleObj = handlers[ j ]; 48708 48709 if ( ( mappedTypes || origType === handleObj.origType ) && 48710 ( !handler || handler.guid === handleObj.guid ) && 48711 ( !tmp || tmp.test( handleObj.namespace ) ) && 48712 ( !selector || selector === handleObj.selector || 48713 selector === "**" && handleObj.selector ) ) { 48714 handlers.splice( j, 1 ); 48715 48716 if ( handleObj.selector ) { 48717 handlers.delegateCount--; 48718 } 48719 if ( special.remove ) { 48720 special.remove.call( elem, handleObj ); 48721 } 48722 } 48723 } 48724 48725 // Remove generic event handler if we removed something and no more handlers exist 48726 // (avoids potential for endless recursion during removal of special event handlers) 48727 if ( origCount && !handlers.length ) { 48728 if ( !special.teardown || 48729 special.teardown.call( elem, namespaces, elemData.handle ) === false ) { 48730 48731 jQuery.removeEvent( elem, type, elemData.handle ); 48732 } 48733 48734 delete events[ type ]; 48735 } 48736 } 48737 48738 // Remove data and the expando if it's no longer used 48739 if ( jQuery.isEmptyObject( events ) ) { 48740 dataPriv.remove( elem, "handle events" ); 48741 } 48742 }, 48743 48744 dispatch: function( nativeEvent ) { 48745 48746 var i, j, ret, matched, handleObj, handlerQueue, 48747 args = new Array( arguments.length ), 48748 48749 // Make a writable jQuery.Event from the native event object 48750 event = jQuery.event.fix( nativeEvent ), 48751 48752 handlers = ( 48753 dataPriv.get( this, "events" ) || Object.create( null ) 48754 )[ event.type ] || [], 48755 special = jQuery.event.special[ event.type ] || {}; 48756 48757 // Use the fix-ed jQuery.Event rather than the (read-only) native event 48758 args[ 0 ] = event; 48759 48760 for ( i = 1; i < arguments.length; i++ ) { 48761 args[ i ] = arguments[ i ]; 48762 } 48763 48764 event.delegateTarget = this; 48765 48766 // Call the preDispatch hook for the mapped type, and let it bail if desired 48767 if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { 48768 return; 48769 } 48770 48771 // Determine handlers 48772 handlerQueue = jQuery.event.handlers.call( this, event, handlers ); 48773 48774 // Run delegates first; they may want to stop propagation beneath us 48775 i = 0; 48776 while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { 48777 event.currentTarget = matched.elem; 48778 48779 j = 0; 48780 while ( ( handleObj = matched.handlers[ j++ ] ) && 48781 !event.isImmediatePropagationStopped() ) { 48782 48783 // If the event is namespaced, then each handler is only invoked if it is 48784 // specially universal or its namespaces are a superset of the event's. 48785 if ( !event.rnamespace || handleObj.namespace === false || 48786 event.rnamespace.test( handleObj.namespace ) ) { 48787 48788 event.handleObj = handleObj; 48789 event.data = handleObj.data; 48790 48791 ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || 48792 handleObj.handler ).apply( matched.elem, args ); 48793 48794 if ( ret !== undefined ) { 48795 if ( ( event.result = ret ) === false ) { 48796 event.preventDefault(); 48797 event.stopPropagation(); 48798 } 48799 } 48800 } 48801 } 48802 } 48803 48804 // Call the postDispatch hook for the mapped type 48805 if ( special.postDispatch ) { 48806 special.postDispatch.call( this, event ); 48807 } 48808 48809 return event.result; 48810 }, 48811 48812 handlers: function( event, handlers ) { 48813 var i, handleObj, sel, matchedHandlers, matchedSelectors, 48814 handlerQueue = [], 48815 delegateCount = handlers.delegateCount, 48816 cur = event.target; 48817 48818 // Find delegate handlers 48819 if ( delegateCount && 48820 48821 // Support: IE <=9 48822 // Black-hole SVG <use> instance trees (trac-13180) 48823 cur.nodeType && 48824 48825 // Support: Firefox <=42 48826 // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) 48827 // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click 48828 // Support: IE 11 only 48829 // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) 48830 !( event.type === "click" && event.button >= 1 ) ) { 48831 48832 for ( ; cur !== this; cur = cur.parentNode || this ) { 48833 48834 // Don't check non-elements (trac-13208) 48835 // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764) 48836 if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { 48837 matchedHandlers = []; 48838 matchedSelectors = {}; 48839 for ( i = 0; i < delegateCount; i++ ) { 48840 handleObj = handlers[ i ]; 48841 48842 // Don't conflict with Object.prototype properties (trac-13203) 48843 sel = handleObj.selector + " "; 48844 48845 if ( matchedSelectors[ sel ] === undefined ) { 48846 matchedSelectors[ sel ] = handleObj.needsContext ? 48847 jQuery( sel, this ).index( cur ) > -1 : 48848 jQuery.find( sel, this, null, [ cur ] ).length; 48849 } 48850 if ( matchedSelectors[ sel ] ) { 48851 matchedHandlers.push( handleObj ); 48852 } 48853 } 48854 if ( matchedHandlers.length ) { 48855 handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); 48856 } 48857 } 48858 } 48859 } 48860 48861 // Add the remaining (directly-bound) handlers 48862 cur = this; 48863 if ( delegateCount < handlers.length ) { 48864 handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); 48865 } 48866 48867 return handlerQueue; 48868 }, 48869 48870 addProp: function( name, hook ) { 48871 Object.defineProperty( jQuery.Event.prototype, name, { 48872 enumerable: true, 48873 configurable: true, 48874 48875 get: isFunction( hook ) ? 48876 function() { 48877 if ( this.originalEvent ) { 48878 return hook( this.originalEvent ); 48879 } 48880 } : 48881 function() { 48882 if ( this.originalEvent ) { 48883 return this.originalEvent[ name ]; 48884 } 48885 }, 48886 48887 set: function( value ) { 48888 Object.defineProperty( this, name, { 48889 enumerable: true, 48890 configurable: true, 48891 writable: true, 48892 value: value 48893 } ); 48894 } 48895 } ); 48896 }, 48897 48898 fix: function( originalEvent ) { 48899 return originalEvent[ jQuery.expando ] ? 48900 originalEvent : 48901 new jQuery.Event( originalEvent ); 48902 }, 48903 48904 special: { 48905 load: { 48906 48907 // Prevent triggered image.load events from bubbling to window.load 48908 noBubble: true 48909 }, 48910 click: { 48911 48912 // Utilize native event to ensure correct state for checkable inputs 48913 setup: function( data ) { 48914 48915 // For mutual compressibility with _default, replace `this` access with a local var. 48916 // `|| data` is dead code meant only to preserve the variable through minification. 48917 var el = this || data; 48918 48919 // Claim the first handler 48920 if ( rcheckableType.test( el.type ) && 48921 el.click && nodeName( el, "input" ) ) { 48922 48923 // dataPriv.set( el, "click", ... ) 48924 leverageNative( el, "click", true ); 48925 } 48926 48927 // Return false to allow normal processing in the caller 48928 return false; 48929 }, 48930 trigger: function( data ) { 48931 48932 // For mutual compressibility with _default, replace `this` access with a local var. 48933 // `|| data` is dead code meant only to preserve the variable through minification. 48934 var el = this || data; 48935 48936 // Force setup before triggering a click 48937 if ( rcheckableType.test( el.type ) && 48938 el.click && nodeName( el, "input" ) ) { 48939 48940 leverageNative( el, "click" ); 48941 } 48942 48943 // Return non-false to allow normal event-path propagation 48944 return true; 48945 }, 48946 48947 // For cross-browser consistency, suppress native .click() on links 48948 // Also prevent it if we're currently inside a leveraged native-event stack 48949 _default: function( event ) { 48950 var target = event.target; 48951 return rcheckableType.test( target.type ) && 48952 target.click && nodeName( target, "input" ) && 48953 dataPriv.get( target, "click" ) || 48954 nodeName( target, "a" ); 48955 } 48956 }, 48957 48958 beforeunload: { 48959 postDispatch: function( event ) { 48960 48961 // Support: Firefox 20+ 48962 // Firefox doesn't alert if the returnValue field is not set. 48963 if ( event.result !== undefined && event.originalEvent ) { 48964 event.originalEvent.returnValue = event.result; 48965 } 48966 } 48967 } 48968 } 48969}; 48970 48971// Ensure the presence of an event listener that handles manually-triggered 48972// synthetic events by interrupting progress until reinvoked in response to 48973// *native* events that it fires directly, ensuring that state changes have 48974// already occurred before other listeners are invoked. 48975function leverageNative( el, type, isSetup ) { 48976 48977 // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add 48978 if ( !isSetup ) { 48979 if ( dataPriv.get( el, type ) === undefined ) { 48980 jQuery.event.add( el, type, returnTrue ); 48981 } 48982 return; 48983 } 48984 48985 // Register the controller as a special universal handler for all event namespaces 48986 dataPriv.set( el, type, false ); 48987 jQuery.event.add( el, type, { 48988 namespace: false, 48989 handler: function( event ) { 48990 var result, 48991 saved = dataPriv.get( this, type ); 48992 48993 if ( ( event.isTrigger & 1 ) && this[ type ] ) { 48994 48995 // Interrupt processing of the outer synthetic .trigger()ed event 48996 if ( !saved ) { 48997 48998 // Store arguments for use when handling the inner native event 48999 // There will always be at least one argument (an event object), so this array 49000 // will not be confused with a leftover capture object. 49001 saved = slice.call( arguments ); 49002 dataPriv.set( this, type, saved ); 49003 49004 // Trigger the native event and capture its result 49005 this[ type ](); 49006 result = dataPriv.get( this, type ); 49007 dataPriv.set( this, type, false ); 49008 49009 if ( saved !== result ) { 49010 49011 // Cancel the outer synthetic event 49012 event.stopImmediatePropagation(); 49013 event.preventDefault(); 49014 49015 return result; 49016 } 49017 49018 // If this is an inner synthetic event for an event with a bubbling surrogate 49019 // (focus or blur), assume that the surrogate already propagated from triggering 49020 // the native event and prevent that from happening again here. 49021 // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the 49022 // bubbling surrogate propagates *after* the non-bubbling base), but that seems 49023 // less bad than duplication. 49024 } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { 49025 event.stopPropagation(); 49026 } 49027 49028 // If this is a native event triggered above, everything is now in order 49029 // Fire an inner synthetic event with the original arguments 49030 } else if ( saved ) { 49031 49032 // ...and capture the result 49033 dataPriv.set( this, type, jQuery.event.trigger( 49034 saved[ 0 ], 49035 saved.slice( 1 ), 49036 this 49037 ) ); 49038 49039 // Abort handling of the native event by all jQuery handlers while allowing 49040 // native handlers on the same element to run. On target, this is achieved 49041 // by stopping immediate propagation just on the jQuery event. However, 49042 // the native event is re-wrapped by a jQuery one on each level of the 49043 // propagation so the only way to stop it for jQuery is to stop it for 49044 // everyone via native `stopPropagation()`. This is not a problem for 49045 // focus/blur which don't bubble, but it does also stop click on checkboxes 49046 // and radios. We accept this limitation. 49047 event.stopPropagation(); 49048 event.isImmediatePropagationStopped = returnTrue; 49049 } 49050 } 49051 } ); 49052} 49053 49054jQuery.removeEvent = function( elem, type, handle ) { 49055 49056 // This "if" is needed for plain objects 49057 if ( elem.removeEventListener ) { 49058 elem.removeEventListener( type, handle ); 49059 } 49060}; 49061 49062jQuery.Event = function( src, props ) { 49063 49064 // Allow instantiation without the 'new' keyword 49065 if ( !( this instanceof jQuery.Event ) ) { 49066 return new jQuery.Event( src, props ); 49067 } 49068 49069 // Event object 49070 if ( src && src.type ) { 49071 this.originalEvent = src; 49072 this.type = src.type; 49073 49074 // Events bubbling up the document may have been marked as prevented 49075 // by a handler lower down the tree; reflect the correct value. 49076 this.isDefaultPrevented = src.defaultPrevented || 49077 src.defaultPrevented === undefined && 49078 49079 // Support: Android <=2.3 only 49080 src.returnValue === false ? 49081 returnTrue : 49082 returnFalse; 49083 49084 // Create target properties 49085 // Support: Safari <=6 - 7 only 49086 // Target should not be a text node (trac-504, trac-13143) 49087 this.target = ( src.target && src.target.nodeType === 3 ) ? 49088 src.target.parentNode : 49089 src.target; 49090 49091 this.currentTarget = src.currentTarget; 49092 this.relatedTarget = src.relatedTarget; 49093 49094 // Event type 49095 } else { 49096 this.type = src; 49097 } 49098 49099 // Put explicitly provided properties onto the event object 49100 if ( props ) { 49101 jQuery.extend( this, props ); 49102 } 49103 49104 // Create a timestamp if incoming event doesn't have one 49105 this.timeStamp = src && src.timeStamp || Date.now(); 49106 49107 // Mark it as fixed 49108 this[ jQuery.expando ] = true; 49109}; 49110 49111// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding 49112// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html 49113jQuery.Event.prototype = { 49114 constructor: jQuery.Event, 49115 isDefaultPrevented: returnFalse, 49116 isPropagationStopped: returnFalse, 49117 isImmediatePropagationStopped: returnFalse, 49118 isSimulated: false, 49119 49120 preventDefault: function() { 49121 var e = this.originalEvent; 49122 49123 this.isDefaultPrevented = returnTrue; 49124 49125 if ( e && !this.isSimulated ) { 49126 e.preventDefault(); 49127 } 49128 }, 49129 stopPropagation: function() { 49130 var e = this.originalEvent; 49131 49132 this.isPropagationStopped = returnTrue; 49133 49134 if ( e && !this.isSimulated ) { 49135 e.stopPropagation(); 49136 } 49137 }, 49138 stopImmediatePropagation: function() { 49139 var e = this.originalEvent; 49140 49141 this.isImmediatePropagationStopped = returnTrue; 49142 49143 if ( e && !this.isSimulated ) { 49144 e.stopImmediatePropagation(); 49145 } 49146 49147 this.stopPropagation(); 49148 } 49149}; 49150 49151// Includes all common event props including KeyEvent and MouseEvent specific props 49152jQuery.each( { 49153 altKey: true, 49154 bubbles: true, 49155 cancelable: true, 49156 changedTouches: true, 49157 ctrlKey: true, 49158 detail: true, 49159 eventPhase: true, 49160 metaKey: true, 49161 pageX: true, 49162 pageY: true, 49163 shiftKey: true, 49164 view: true, 49165 "char": true, 49166 code: true, 49167 charCode: true, 49168 key: true, 49169 keyCode: true, 49170 button: true, 49171 buttons: true, 49172 clientX: true, 49173 clientY: true, 49174 offsetX: true, 49175 offsetY: true, 49176 pointerId: true, 49177 pointerType: true, 49178 screenX: true, 49179 screenY: true, 49180 targetTouches: true, 49181 toElement: true, 49182 touches: true, 49183 which: true 49184}, jQuery.event.addProp ); 49185 49186jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { 49187 49188 function focusMappedHandler( nativeEvent ) { 49189 if ( document.documentMode ) { 49190 49191 // Support: IE 11+ 49192 // Attach a single focusin/focusout handler on the document while someone wants 49193 // focus/blur. This is because the former are synchronous in IE while the latter 49194 // are async. In other browsers, all those handlers are invoked synchronously. 49195 49196 // `handle` from private data would already wrap the event, but we need 49197 // to change the `type` here. 49198 var handle = dataPriv.get( this, "handle" ), 49199 event = jQuery.event.fix( nativeEvent ); 49200 event.type = nativeEvent.type === "focusin" ? "focus" : "blur"; 49201 event.isSimulated = true; 49202 49203 // First, handle focusin/focusout 49204 handle( nativeEvent ); 49205 49206 // ...then, handle focus/blur 49207 // 49208 // focus/blur don't bubble while focusin/focusout do; simulate the former by only 49209 // invoking the handler at the lower level. 49210 if ( event.target === event.currentTarget ) { 49211 49212 // The setup part calls `leverageNative`, which, in turn, calls 49213 // `jQuery.event.add`, so event handle will already have been set 49214 // by this point. 49215 handle( event ); 49216 } 49217 } else { 49218 49219 // For non-IE browsers, attach a single capturing handler on the document 49220 // while someone wants focusin/focusout. 49221 jQuery.event.simulate( delegateType, nativeEvent.target, 49222 jQuery.event.fix( nativeEvent ) ); 49223 } 49224 } 49225 49226 jQuery.event.special[ type ] = { 49227 49228 // Utilize native event if possible so blur/focus sequence is correct 49229 setup: function() { 49230 49231 var attaches; 49232 49233 // Claim the first handler 49234 // dataPriv.set( this, "focus", ... ) 49235 // dataPriv.set( this, "blur", ... ) 49236 leverageNative( this, type, true ); 49237 49238 if ( document.documentMode ) { 49239 49240 // Support: IE 9 - 11+ 49241 // We use the same native handler for focusin & focus (and focusout & blur) 49242 // so we need to coordinate setup & teardown parts between those events. 49243 // Use `delegateType` as the key as `type` is already used by `leverageNative`. 49244 attaches = dataPriv.get( this, delegateType ); 49245 if ( !attaches ) { 49246 this.addEventListener( delegateType, focusMappedHandler ); 49247 } 49248 dataPriv.set( this, delegateType, ( attaches || 0 ) + 1 ); 49249 } else { 49250 49251 // Return false to allow normal processing in the caller 49252 return false; 49253 } 49254 }, 49255 trigger: function() { 49256 49257 // Force setup before trigger 49258 leverageNative( this, type ); 49259 49260 // Return non-false to allow normal event-path propagation 49261 return true; 49262 }, 49263 49264 teardown: function() { 49265 var attaches; 49266 49267 if ( document.documentMode ) { 49268 attaches = dataPriv.get( this, delegateType ) - 1; 49269 if ( !attaches ) { 49270 this.removeEventListener( delegateType, focusMappedHandler ); 49271 dataPriv.remove( this, delegateType ); 49272 } else { 49273 dataPriv.set( this, delegateType, attaches ); 49274 } 49275 } else { 49276 49277 // Return false to indicate standard teardown should be applied 49278 return false; 49279 } 49280 }, 49281 49282 // Suppress native focus or blur if we're currently inside 49283 // a leveraged native-event stack 49284 _default: function( event ) { 49285 return dataPriv.get( event.target, type ); 49286 }, 49287 49288 delegateType: delegateType 49289 }; 49290 49291 // Support: Firefox <=44 49292 // Firefox doesn't have focus(in | out) events 49293 // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 49294 // 49295 // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 49296 // focus(in | out) events fire after focus & blur events, 49297 // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order 49298 // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 49299 // 49300 // Support: IE 9 - 11+ 49301 // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch, 49302 // attach a single handler for both events in IE. 49303 jQuery.event.special[ delegateType ] = { 49304 setup: function() { 49305 49306 // Handle: regular nodes (via `this.ownerDocument`), window 49307 // (via `this.document`) & document (via `this`). 49308 var doc = this.ownerDocument || this.document || this, 49309 dataHolder = document.documentMode ? this : doc, 49310 attaches = dataPriv.get( dataHolder, delegateType ); 49311 49312 // Support: IE 9 - 11+ 49313 // We use the same native handler for focusin & focus (and focusout & blur) 49314 // so we need to coordinate setup & teardown parts between those events. 49315 // Use `delegateType` as the key as `type` is already used by `leverageNative`. 49316 if ( !attaches ) { 49317 if ( document.documentMode ) { 49318 this.addEventListener( delegateType, focusMappedHandler ); 49319 } else { 49320 doc.addEventListener( type, focusMappedHandler, true ); 49321 } 49322 } 49323 dataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 ); 49324 }, 49325 teardown: function() { 49326 var doc = this.ownerDocument || this.document || this, 49327 dataHolder = document.documentMode ? this : doc, 49328 attaches = dataPriv.get( dataHolder, delegateType ) - 1; 49329 49330 if ( !attaches ) { 49331 if ( document.documentMode ) { 49332 this.removeEventListener( delegateType, focusMappedHandler ); 49333 } else { 49334 doc.removeEventListener( type, focusMappedHandler, true ); 49335 } 49336 dataPriv.remove( dataHolder, delegateType ); 49337 } else { 49338 dataPriv.set( dataHolder, delegateType, attaches ); 49339 } 49340 } 49341 }; 49342} ); 49343 49344// Create mouseenter/leave events using mouseover/out and event-time checks 49345// so that event delegation works in jQuery. 49346// Do the same for pointerenter/pointerleave and pointerover/pointerout 49347// 49348// Support: Safari 7 only 49349// Safari sends mouseenter too often; see: 49350// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 49351// for the description of the bug (it existed in older Chrome versions as well). 49352jQuery.each( { 49353 mouseenter: "mouseover", 49354 mouseleave: "mouseout", 49355 pointerenter: "pointerover", 49356 pointerleave: "pointerout" 49357}, function( orig, fix ) { 49358 jQuery.event.special[ orig ] = { 49359 delegateType: fix, 49360 bindType: fix, 49361 49362 handle: function( event ) { 49363 var ret, 49364 target = this, 49365 related = event.relatedTarget, 49366 handleObj = event.handleObj; 49367 49368 // For mouseenter/leave call the handler if related is outside the target. 49369 // NB: No relatedTarget if the mouse left/entered the browser window 49370 if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { 49371 event.type = handleObj.origType; 49372 ret = handleObj.handler.apply( this, arguments ); 49373 event.type = fix; 49374 } 49375 return ret; 49376 } 49377 }; 49378} ); 49379 49380jQuery.fn.extend( { 49381 49382 on: function( types, selector, data, fn ) { 49383 return on( this, types, selector, data, fn ); 49384 }, 49385 one: function( types, selector, data, fn ) { 49386 return on( this, types, selector, data, fn, 1 ); 49387 }, 49388 off: function( types, selector, fn ) { 49389 var handleObj, type; 49390 if ( types && types.preventDefault && types.handleObj ) { 49391 49392 // ( event ) dispatched jQuery.Event 49393 handleObj = types.handleObj; 49394 jQuery( types.delegateTarget ).off( 49395 handleObj.namespace ? 49396 handleObj.origType + "." + handleObj.namespace : 49397 handleObj.origType, 49398 handleObj.selector, 49399 handleObj.handler 49400 ); 49401 return this; 49402 } 49403 if ( typeof types === "object" ) { 49404 49405 // ( types-object [, selector] ) 49406 for ( type in types ) { 49407 this.off( type, selector, types[ type ] ); 49408 } 49409 return this; 49410 } 49411 if ( selector === false || typeof selector === "function" ) { 49412 49413 // ( types [, fn] ) 49414 fn = selector; 49415 selector = undefined; 49416 } 49417 if ( fn === false ) { 49418 fn = returnFalse; 49419 } 49420 return this.each( function() { 49421 jQuery.event.remove( this, types, fn, selector ); 49422 } ); 49423 } 49424} ); 49425 49426 49427var 49428 49429 // Support: IE <=10 - 11, Edge 12 - 13 only 49430 // In IE/Edge using regex groups here causes severe slowdowns. 49431 // See https://connect.microsoft.com/IE/feedback/details/1736512/ 49432 rnoInnerhtml = /<script|<style|<link/i, 49433 49434 // checked="checked" or checked 49435 rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, 49436 49437 rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g; 49438 49439// Prefer a tbody over its parent table for containing new rows 49440function manipulationTarget( elem, content ) { 49441 if ( nodeName( elem, "table" ) && 49442 nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { 49443 49444 return jQuery( elem ).children( "tbody" )[ 0 ] || elem; 49445 } 49446 49447 return elem; 49448} 49449 49450// Replace/restore the type attribute of script elements for safe DOM manipulation 49451function disableScript( elem ) { 49452 elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; 49453 return elem; 49454} 49455function restoreScript( elem ) { 49456 if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { 49457 elem.type = elem.type.slice( 5 ); 49458 } else { 49459 elem.removeAttribute( "type" ); 49460 } 49461 49462 return elem; 49463} 49464 49465function cloneCopyEvent( src, dest ) { 49466 var i, l, type, pdataOld, udataOld, udataCur, events; 49467 49468 if ( dest.nodeType !== 1 ) { 49469 return; 49470 } 49471 49472 // 1. Copy private data: events, handlers, etc. 49473 if ( dataPriv.hasData( src ) ) { 49474 pdataOld = dataPriv.get( src ); 49475 events = pdataOld.events; 49476 49477 if ( events ) { 49478 dataPriv.remove( dest, "handle events" ); 49479 49480 for ( type in events ) { 49481 for ( i = 0, l = events[ type ].length; i < l; i++ ) { 49482 jQuery.event.add( dest, type, events[ type ][ i ] ); 49483 } 49484 } 49485 } 49486 } 49487 49488 // 2. Copy user data 49489 if ( dataUser.hasData( src ) ) { 49490 udataOld = dataUser.access( src ); 49491 udataCur = jQuery.extend( {}, udataOld ); 49492 49493 dataUser.set( dest, udataCur ); 49494 } 49495} 49496 49497// Fix IE bugs, see support tests 49498function fixInput( src, dest ) { 49499 var nodeName = dest.nodeName.toLowerCase(); 49500 49501 // Fails to persist the checked state of a cloned checkbox or radio button. 49502 if ( nodeName === "input" && rcheckableType.test( src.type ) ) { 49503 dest.checked = src.checked; 49504 49505 // Fails to return the selected option to the default selected state when cloning options 49506 } else if ( nodeName === "input" || nodeName === "textarea" ) { 49507 dest.defaultValue = src.defaultValue; 49508 } 49509} 49510 49511function domManip( collection, args, callback, ignored ) { 49512 49513 // Flatten any nested arrays 49514 args = flat( args ); 49515 49516 var fragment, first, scripts, hasScripts, node, doc, 49517 i = 0, 49518 l = collection.length, 49519 iNoClone = l - 1, 49520 value = args[ 0 ], 49521 valueIsFunction = isFunction( value ); 49522 49523 // We can't cloneNode fragments that contain checked, in WebKit 49524 if ( valueIsFunction || 49525 ( l > 1 && typeof value === "string" && 49526 !support.checkClone && rchecked.test( value ) ) ) { 49527 return collection.each( function( index ) { 49528 var self = collection.eq( index ); 49529 if ( valueIsFunction ) { 49530 args[ 0 ] = value.call( this, index, self.html() ); 49531 } 49532 domManip( self, args, callback, ignored ); 49533 } ); 49534 } 49535 49536 if ( l ) { 49537 fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); 49538 first = fragment.firstChild; 49539 49540 if ( fragment.childNodes.length === 1 ) { 49541 fragment = first; 49542 } 49543 49544 // Require either new content or an interest in ignored elements to invoke the callback 49545 if ( first || ignored ) { 49546 scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); 49547 hasScripts = scripts.length; 49548 49549 // Use the original fragment for the last item 49550 // instead of the first because it can end up 49551 // being emptied incorrectly in certain situations (trac-8070). 49552 for ( ; i < l; i++ ) { 49553 node = fragment; 49554 49555 if ( i !== iNoClone ) { 49556 node = jQuery.clone( node, true, true ); 49557 49558 // Keep references to cloned scripts for later restoration 49559 if ( hasScripts ) { 49560 49561 // Support: Android <=4.0 only, PhantomJS 1 only 49562 // push.apply(_, arraylike) throws on ancient WebKit 49563 jQuery.merge( scripts, getAll( node, "script" ) ); 49564 } 49565 } 49566 49567 callback.call( collection[ i ], node, i ); 49568 } 49569 49570 if ( hasScripts ) { 49571 doc = scripts[ scripts.length - 1 ].ownerDocument; 49572 49573 // Re-enable scripts 49574 jQuery.map( scripts, restoreScript ); 49575 49576 // Evaluate executable scripts on first document insertion 49577 for ( i = 0; i < hasScripts; i++ ) { 49578 node = scripts[ i ]; 49579 if ( rscriptType.test( node.type || "" ) && 49580 !dataPriv.access( node, "globalEval" ) && 49581 jQuery.contains( doc, node ) ) { 49582 49583 if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { 49584 49585 // Optional AJAX dependency, but won't run scripts if not present 49586 if ( jQuery._evalUrl && !node.noModule ) { 49587 jQuery._evalUrl( node.src, { 49588 nonce: node.nonce || node.getAttribute( "nonce" ) 49589 }, doc ); 49590 } 49591 } else { 49592 49593 // Unwrap a CDATA section containing script contents. This shouldn't be 49594 // needed as in XML documents they're already not visible when 49595 // inspecting element contents and in HTML documents they have no 49596 // meaning but we're preserving that logic for backwards compatibility. 49597 // This will be removed completely in 4.0. See gh-4904. 49598 DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); 49599 } 49600 } 49601 } 49602 } 49603 } 49604 } 49605 49606 return collection; 49607} 49608 49609function remove( elem, selector, keepData ) { 49610 var node, 49611 nodes = selector ? jQuery.filter( selector, elem ) : elem, 49612 i = 0; 49613 49614 for ( ; ( node = nodes[ i ] ) != null; i++ ) { 49615 if ( !keepData && node.nodeType === 1 ) { 49616 jQuery.cleanData( getAll( node ) ); 49617 } 49618 49619 if ( node.parentNode ) { 49620 if ( keepData && isAttached( node ) ) { 49621 setGlobalEval( getAll( node, "script" ) ); 49622 } 49623 node.parentNode.removeChild( node ); 49624 } 49625 } 49626 49627 return elem; 49628} 49629 49630jQuery.extend( { 49631 htmlPrefilter: function( html ) { 49632 return html; 49633 }, 49634 49635 clone: function( elem, dataAndEvents, deepDataAndEvents ) { 49636 var i, l, srcElements, destElements, 49637 clone = elem.cloneNode( true ), 49638 inPage = isAttached( elem ); 49639 49640 // Fix IE cloning issues 49641 if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && 49642 !jQuery.isXMLDoc( elem ) ) { 49643 49644 // We eschew jQuery#find here for performance reasons: 49645 // https://jsperf.com/getall-vs-sizzle/2 49646 destElements = getAll( clone ); 49647 srcElements = getAll( elem ); 49648 49649 for ( i = 0, l = srcElements.length; i < l; i++ ) { 49650 fixInput( srcElements[ i ], destElements[ i ] ); 49651 } 49652 } 49653 49654 // Copy the events from the original to the clone 49655 if ( dataAndEvents ) { 49656 if ( deepDataAndEvents ) { 49657 srcElements = srcElements || getAll( elem ); 49658 destElements = destElements || getAll( clone ); 49659 49660 for ( i = 0, l = srcElements.length; i < l; i++ ) { 49661 cloneCopyEvent( srcElements[ i ], destElements[ i ] ); 49662 } 49663 } else { 49664 cloneCopyEvent( elem, clone ); 49665 } 49666 } 49667 49668 // Preserve script evaluation history 49669 destElements = getAll( clone, "script" ); 49670 if ( destElements.length > 0 ) { 49671 setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); 49672 } 49673 49674 // Return the cloned set 49675 return clone; 49676 }, 49677 49678 cleanData: function( elems ) { 49679 var data, elem, type, 49680 special = jQuery.event.special, 49681 i = 0; 49682 49683 for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { 49684 if ( acceptData( elem ) ) { 49685 if ( ( data = elem[ dataPriv.expando ] ) ) { 49686 if ( data.events ) { 49687 for ( type in data.events ) { 49688 if ( special[ type ] ) { 49689 jQuery.event.remove( elem, type ); 49690 49691 // This is a shortcut to avoid jQuery.event.remove's overhead 49692 } else { 49693 jQuery.removeEvent( elem, type, data.handle ); 49694 } 49695 } 49696 } 49697 49698 // Support: Chrome <=35 - 45+ 49699 // Assign undefined instead of using delete, see Data#remove 49700 elem[ dataPriv.expando ] = undefined; 49701 } 49702 if ( elem[ dataUser.expando ] ) { 49703 49704 // Support: Chrome <=35 - 45+ 49705 // Assign undefined instead of using delete, see Data#remove 49706 elem[ dataUser.expando ] = undefined; 49707 } 49708 } 49709 } 49710 } 49711} ); 49712 49713jQuery.fn.extend( { 49714 detach: function( selector ) { 49715 return remove( this, selector, true ); 49716 }, 49717 49718 remove: function( selector ) { 49719 return remove( this, selector ); 49720 }, 49721 49722 text: function( value ) { 49723 return access( this, function( value ) { 49724 return value === undefined ? 49725 jQuery.text( this ) : 49726 this.empty().each( function() { 49727 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 49728 this.textContent = value; 49729 } 49730 } ); 49731 }, null, value, arguments.length ); 49732 }, 49733 49734 append: function() { 49735 return domManip( this, arguments, function( elem ) { 49736 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 49737 var target = manipulationTarget( this, elem ); 49738 target.appendChild( elem ); 49739 } 49740 } ); 49741 }, 49742 49743 prepend: function() { 49744 return domManip( this, arguments, function( elem ) { 49745 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 49746 var target = manipulationTarget( this, elem ); 49747 target.insertBefore( elem, target.firstChild ); 49748 } 49749 } ); 49750 }, 49751 49752 before: function() { 49753 return domManip( this, arguments, function( elem ) { 49754 if ( this.parentNode ) { 49755 this.parentNode.insertBefore( elem, this ); 49756 } 49757 } ); 49758 }, 49759 49760 after: function() { 49761 return domManip( this, arguments, function( elem ) { 49762 if ( this.parentNode ) { 49763 this.parentNode.insertBefore( elem, this.nextSibling ); 49764 } 49765 } ); 49766 }, 49767 49768 empty: function() { 49769 var elem, 49770 i = 0; 49771 49772 for ( ; ( elem = this[ i ] ) != null; i++ ) { 49773 if ( elem.nodeType === 1 ) { 49774 49775 // Prevent memory leaks 49776 jQuery.cleanData( getAll( elem, false ) ); 49777 49778 // Remove any remaining nodes 49779 elem.textContent = ""; 49780 } 49781 } 49782 49783 return this; 49784 }, 49785 49786 clone: function( dataAndEvents, deepDataAndEvents ) { 49787 dataAndEvents = dataAndEvents == null ? false : dataAndEvents; 49788 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 49789 49790 return this.map( function() { 49791 return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); 49792 } ); 49793 }, 49794 49795 html: function( value ) { 49796 return access( this, function( value ) { 49797 var elem = this[ 0 ] || {}, 49798 i = 0, 49799 l = this.length; 49800 49801 if ( value === undefined && elem.nodeType === 1 ) { 49802 return elem.innerHTML; 49803 } 49804 49805 // See if we can take a shortcut and just use innerHTML 49806 if ( typeof value === "string" && !rnoInnerhtml.test( value ) && 49807 !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { 49808 49809 value = jQuery.htmlPrefilter( value ); 49810 49811 try { 49812 for ( ; i < l; i++ ) { 49813 elem = this[ i ] || {}; 49814 49815 // Remove element nodes and prevent memory leaks 49816 if ( elem.nodeType === 1 ) { 49817 jQuery.cleanData( getAll( elem, false ) ); 49818 elem.innerHTML = value; 49819 } 49820 } 49821 49822 elem = 0; 49823 49824 // If using innerHTML throws an exception, use the fallback method 49825 } catch ( e ) {} 49826 } 49827 49828 if ( elem ) { 49829 this.empty().append( value ); 49830 } 49831 }, null, value, arguments.length ); 49832 }, 49833 49834 replaceWith: function() { 49835 var ignored = []; 49836 49837 // Make the changes, replacing each non-ignored context element with the new content 49838 return domManip( this, arguments, function( elem ) { 49839 var parent = this.parentNode; 49840 49841 if ( jQuery.inArray( this, ignored ) < 0 ) { 49842 jQuery.cleanData( getAll( this ) ); 49843 if ( parent ) { 49844 parent.replaceChild( elem, this ); 49845 } 49846 } 49847 49848 // Force callback invocation 49849 }, ignored ); 49850 } 49851} ); 49852 49853jQuery.each( { 49854 appendTo: "append", 49855 prependTo: "prepend", 49856 insertBefore: "before", 49857 insertAfter: "after", 49858 replaceAll: "replaceWith" 49859}, function( name, original ) { 49860 jQuery.fn[ name ] = function( selector ) { 49861 var elems, 49862 ret = [], 49863 insert = jQuery( selector ), 49864 last = insert.length - 1, 49865 i = 0; 49866 49867 for ( ; i <= last; i++ ) { 49868 elems = i === last ? this : this.clone( true ); 49869 jQuery( insert[ i ] )[ original ]( elems ); 49870 49871 // Support: Android <=4.0 only, PhantomJS 1 only 49872 // .get() because push.apply(_, arraylike) throws on ancient WebKit 49873 push.apply( ret, elems.get() ); 49874 } 49875 49876 return this.pushStack( ret ); 49877 }; 49878} ); 49879var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 49880 49881var rcustomProp = /^--/; 49882 49883 49884var getStyles = function( elem ) { 49885 49886 // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150) 49887 // IE throws on elements created in popups 49888 // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 49889 var view = elem.ownerDocument.defaultView; 49890 49891 if ( !view || !view.opener ) { 49892 view = window; 49893 } 49894 49895 return view.getComputedStyle( elem ); 49896 }; 49897 49898var swap = function( elem, options, callback ) { 49899 var ret, name, 49900 old = {}; 49901 49902 // Remember the old values, and insert the new ones 49903 for ( name in options ) { 49904 old[ name ] = elem.style[ name ]; 49905 elem.style[ name ] = options[ name ]; 49906 } 49907 49908 ret = callback.call( elem ); 49909 49910 // Revert the old values 49911 for ( name in options ) { 49912 elem.style[ name ] = old[ name ]; 49913 } 49914 49915 return ret; 49916}; 49917 49918 49919var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); 49920 49921 49922 49923( function() { 49924 49925 // Executing both pixelPosition & boxSizingReliable tests require only one layout 49926 // so they're executed at the same time to save the second computation. 49927 function computeStyleTests() { 49928 49929 // This is a singleton, we need to execute it only once 49930 if ( !div ) { 49931 return; 49932 } 49933 49934 container.style.cssText = "position:absolute;left:-11111px;width:60px;" + 49935 "margin-top:1px;padding:0;border:0"; 49936 div.style.cssText = 49937 "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + 49938 "margin:auto;border:1px;padding:1px;" + 49939 "width:60%;top:1%"; 49940 documentElement.appendChild( container ).appendChild( div ); 49941 49942 var divStyle = window.getComputedStyle( div ); 49943 pixelPositionVal = divStyle.top !== "1%"; 49944 49945 // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 49946 reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; 49947 49948 // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 49949 // Some styles come back with percentage values, even though they shouldn't 49950 div.style.right = "60%"; 49951 pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; 49952 49953 // Support: IE 9 - 11 only 49954 // Detect misreporting of content dimensions for box-sizing:border-box elements 49955 boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; 49956 49957 // Support: IE 9 only 49958 // Detect overflow:scroll screwiness (gh-3699) 49959 // Support: Chrome <=64 49960 // Don't get tricked when zoom affects offsetWidth (gh-4029) 49961 div.style.position = "absolute"; 49962 scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; 49963 49964 documentElement.removeChild( container ); 49965 49966 // Nullify the div so it wouldn't be stored in the memory and 49967 // it will also be a sign that checks already performed 49968 div = null; 49969 } 49970 49971 function roundPixelMeasures( measure ) { 49972 return Math.round( parseFloat( measure ) ); 49973 } 49974 49975 var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, 49976 reliableTrDimensionsVal, reliableMarginLeftVal, 49977 container = document.createElement( "div" ), 49978 div = document.createElement( "div" ); 49979 49980 // Finish early in limited (non-browser) environments 49981 if ( !div.style ) { 49982 return; 49983 } 49984 49985 // Support: IE <=9 - 11 only 49986 // Style of cloned element affects source element cloned (trac-8908) 49987 div.style.backgroundClip = "content-box"; 49988 div.cloneNode( true ).style.backgroundClip = ""; 49989 support.clearCloneStyle = div.style.backgroundClip === "content-box"; 49990 49991 jQuery.extend( support, { 49992 boxSizingReliable: function() { 49993 computeStyleTests(); 49994 return boxSizingReliableVal; 49995 }, 49996 pixelBoxStyles: function() { 49997 computeStyleTests(); 49998 return pixelBoxStylesVal; 49999 }, 50000 pixelPosition: function() { 50001 computeStyleTests(); 50002 return pixelPositionVal; 50003 }, 50004 reliableMarginLeft: function() { 50005 computeStyleTests(); 50006 return reliableMarginLeftVal; 50007 }, 50008 scrollboxSize: function() { 50009 computeStyleTests(); 50010 return scrollboxSizeVal; 50011 }, 50012 50013 // Support: IE 9 - 11+, Edge 15 - 18+ 50014 // IE/Edge misreport `getComputedStyle` of table rows with width/height 50015 // set in CSS while `offset*` properties report correct values. 50016 // Behavior in IE 9 is more subtle than in newer versions & it passes 50017 // some versions of this test; make sure not to make it pass there! 50018 // 50019 // Support: Firefox 70+ 50020 // Only Firefox includes border widths 50021 // in computed dimensions. (gh-4529) 50022 reliableTrDimensions: function() { 50023 var table, tr, trChild, trStyle; 50024 if ( reliableTrDimensionsVal == null ) { 50025 table = document.createElement( "table" ); 50026 tr = document.createElement( "tr" ); 50027 trChild = document.createElement( "div" ); 50028 50029 table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; 50030 tr.style.cssText = "box-sizing:content-box;border:1px solid"; 50031 50032 // Support: Chrome 86+ 50033 // Height set through cssText does not get applied. 50034 // Computed height then comes back as 0. 50035 tr.style.height = "1px"; 50036 trChild.style.height = "9px"; 50037 50038 // Support: Android 8 Chrome 86+ 50039 // In our bodyBackground.html iframe, 50040 // display for all div elements is set to "inline", 50041 // which causes a problem only in Android 8 Chrome 86. 50042 // Ensuring the div is `display: block` 50043 // gets around this issue. 50044 trChild.style.display = "block"; 50045 50046 documentElement 50047 .appendChild( table ) 50048 .appendChild( tr ) 50049 .appendChild( trChild ); 50050 50051 trStyle = window.getComputedStyle( tr ); 50052 reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + 50053 parseInt( trStyle.borderTopWidth, 10 ) + 50054 parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; 50055 50056 documentElement.removeChild( table ); 50057 } 50058 return reliableTrDimensionsVal; 50059 } 50060 } ); 50061} )(); 50062 50063 50064function curCSS( elem, name, computed ) { 50065 var width, minWidth, maxWidth, ret, 50066 isCustomProp = rcustomProp.test( name ), 50067 50068 // Support: Firefox 51+ 50069 // Retrieving style before computed somehow 50070 // fixes an issue with getting wrong values 50071 // on detached elements 50072 style = elem.style; 50073 50074 computed = computed || getStyles( elem ); 50075 50076 // getPropertyValue is needed for: 50077 // .css('filter') (IE 9 only, trac-12537) 50078 // .css('--customProperty) (gh-3144) 50079 if ( computed ) { 50080 50081 // Support: IE <=9 - 11+ 50082 // IE only supports `"float"` in `getPropertyValue`; in computed styles 50083 // it's only available as `"cssFloat"`. We no longer modify properties 50084 // sent to `.css()` apart from camelCasing, so we need to check both. 50085 // Normally, this would create difference in behavior: if 50086 // `getPropertyValue` returns an empty string, the value returned 50087 // by `.css()` would be `undefined`. This is usually the case for 50088 // disconnected elements. However, in IE even disconnected elements 50089 // with no styles return `"none"` for `getPropertyValue( "float" )` 50090 ret = computed.getPropertyValue( name ) || computed[ name ]; 50091 50092 if ( isCustomProp && ret ) { 50093 50094 // Support: Firefox 105+, Chrome <=105+ 50095 // Spec requires trimming whitespace for custom properties (gh-4926). 50096 // Firefox only trims leading whitespace. Chrome just collapses 50097 // both leading & trailing whitespace to a single space. 50098 // 50099 // Fall back to `undefined` if empty string returned. 50100 // This collapses a missing definition with property defined 50101 // and set to an empty string but there's no standard API 50102 // allowing us to differentiate them without a performance penalty 50103 // and returning `undefined` aligns with older jQuery. 50104 // 50105 // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED 50106 // as whitespace while CSS does not, but this is not a problem 50107 // because CSS preprocessing replaces them with U+000A LINE FEED 50108 // (which *is* CSS whitespace) 50109 // https://www.w3.org/TR/css-syntax-3/#input-preprocessing 50110 ret = ret.replace( rtrimCSS, "$1" ) || undefined; 50111 } 50112 50113 if ( ret === "" && !isAttached( elem ) ) { 50114 ret = jQuery.style( elem, name ); 50115 } 50116 50117 // A tribute to the "awesome hack by Dean Edwards" 50118 // Android Browser returns percentage for some values, 50119 // but width seems to be reliably pixels. 50120 // This is against the CSSOM draft spec: 50121 // https://drafts.csswg.org/cssom/#resolved-values 50122 if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { 50123 50124 // Remember the original values 50125 width = style.width; 50126 minWidth = style.minWidth; 50127 maxWidth = style.maxWidth; 50128 50129 // Put in the new values to get a computed value out 50130 style.minWidth = style.maxWidth = style.width = ret; 50131 ret = computed.width; 50132 50133 // Revert the changed values 50134 style.width = width; 50135 style.minWidth = minWidth; 50136 style.maxWidth = maxWidth; 50137 } 50138 } 50139 50140 return ret !== undefined ? 50141 50142 // Support: IE <=9 - 11 only 50143 // IE returns zIndex value as an integer. 50144 ret + "" : 50145 ret; 50146} 50147 50148 50149function addGetHookIf( conditionFn, hookFn ) { 50150 50151 // Define the hook, we'll check on the first run if it's really needed. 50152 return { 50153 get: function() { 50154 if ( conditionFn() ) { 50155 50156 // Hook not needed (or it's not possible to use it due 50157 // to missing dependency), remove it. 50158 delete this.get; 50159 return; 50160 } 50161 50162 // Hook needed; redefine it so that the support test is not executed again. 50163 return ( this.get = hookFn ).apply( this, arguments ); 50164 } 50165 }; 50166} 50167 50168 50169var cssPrefixes = [ "Webkit", "Moz", "ms" ], 50170 emptyStyle = document.createElement( "div" ).style, 50171 vendorProps = {}; 50172 50173// Return a vendor-prefixed property or undefined 50174function vendorPropName( name ) { 50175 50176 // Check for vendor prefixed names 50177 var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), 50178 i = cssPrefixes.length; 50179 50180 while ( i-- ) { 50181 name = cssPrefixes[ i ] + capName; 50182 if ( name in emptyStyle ) { 50183 return name; 50184 } 50185 } 50186} 50187 50188// Return a potentially-mapped jQuery.cssProps or vendor prefixed property 50189function finalPropName( name ) { 50190 var final = jQuery.cssProps[ name ] || vendorProps[ name ]; 50191 50192 if ( final ) { 50193 return final; 50194 } 50195 if ( name in emptyStyle ) { 50196 return name; 50197 } 50198 return vendorProps[ name ] = vendorPropName( name ) || name; 50199} 50200 50201 50202var 50203 50204 // Swappable if display is none or starts with table 50205 // except "table", "table-cell", or "table-caption" 50206 // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display 50207 rdisplayswap = /^(none|table(?!-c[ea]).+)/, 50208 cssShow = { position: "absolute", visibility: "hidden", display: "block" }, 50209 cssNormalTransform = { 50210 letterSpacing: "0", 50211 fontWeight: "400" 50212 }; 50213 50214function setPositiveNumber( _elem, value, subtract ) { 50215 50216 // Any relative (+/-) values have already been 50217 // normalized at this point 50218 var matches = rcssNum.exec( value ); 50219 return matches ? 50220 50221 // Guard against undefined "subtract", e.g., when used as in cssHooks 50222 Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : 50223 value; 50224} 50225 50226function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { 50227 var i = dimension === "width" ? 1 : 0, 50228 extra = 0, 50229 delta = 0, 50230 marginDelta = 0; 50231 50232 // Adjustment may not be necessary 50233 if ( box === ( isBorderBox ? "border" : "content" ) ) { 50234 return 0; 50235 } 50236 50237 for ( ; i < 4; i += 2 ) { 50238 50239 // Both box models exclude margin 50240 // Count margin delta separately to only add it after scroll gutter adjustment. 50241 // This is needed to make negative margins work with `outerHeight( true )` (gh-3982). 50242 if ( box === "margin" ) { 50243 marginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); 50244 } 50245 50246 // If we get here with a content-box, we're seeking "padding" or "border" or "margin" 50247 if ( !isBorderBox ) { 50248 50249 // Add padding 50250 delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); 50251 50252 // For "border" or "margin", add border 50253 if ( box !== "padding" ) { 50254 delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 50255 50256 // But still keep track of it otherwise 50257 } else { 50258 extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 50259 } 50260 50261 // If we get here with a border-box (content + padding + border), we're seeking "content" or 50262 // "padding" or "margin" 50263 } else { 50264 50265 // For "content", subtract padding 50266 if ( box === "content" ) { 50267 delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); 50268 } 50269 50270 // For "content" or "padding", subtract border 50271 if ( box !== "margin" ) { 50272 delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 50273 } 50274 } 50275 } 50276 50277 // Account for positive content-box scroll gutter when requested by providing computedVal 50278 if ( !isBorderBox && computedVal >= 0 ) { 50279 50280 // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border 50281 // Assuming integer scroll gutter, subtract the rest and round down 50282 delta += Math.max( 0, Math.ceil( 50283 elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - 50284 computedVal - 50285 delta - 50286 extra - 50287 0.5 50288 50289 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter 50290 // Use an explicit zero to avoid NaN (gh-3964) 50291 ) ) || 0; 50292 } 50293 50294 return delta + marginDelta; 50295} 50296 50297function getWidthOrHeight( elem, dimension, extra ) { 50298 50299 // Start with computed style 50300 var styles = getStyles( elem ), 50301 50302 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). 50303 // Fake content-box until we know it's needed to know the true value. 50304 boxSizingNeeded = !support.boxSizingReliable() || extra, 50305 isBorderBox = boxSizingNeeded && 50306 jQuery.css( elem, "boxSizing", false, styles ) === "border-box", 50307 valueIsBorderBox = isBorderBox, 50308 50309 val = curCSS( elem, dimension, styles ), 50310 offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); 50311 50312 // Support: Firefox <=54 50313 // Return a confounding non-pixel value or feign ignorance, as appropriate. 50314 if ( rnumnonpx.test( val ) ) { 50315 if ( !extra ) { 50316 return val; 50317 } 50318 val = "auto"; 50319 } 50320 50321 50322 // Support: IE 9 - 11 only 50323 // Use offsetWidth/offsetHeight for when box sizing is unreliable. 50324 // In those cases, the computed value can be trusted to be border-box. 50325 if ( ( !support.boxSizingReliable() && isBorderBox || 50326 50327 // Support: IE 10 - 11+, Edge 15 - 18+ 50328 // IE/Edge misreport `getComputedStyle` of table rows with width/height 50329 // set in CSS while `offset*` properties report correct values. 50330 // Interestingly, in some cases IE 9 doesn't suffer from this issue. 50331 !support.reliableTrDimensions() && nodeName( elem, "tr" ) || 50332 50333 // Fall back to offsetWidth/offsetHeight when value is "auto" 50334 // This happens for inline elements with no explicit setting (gh-3571) 50335 val === "auto" || 50336 50337 // Support: Android <=4.1 - 4.3 only 50338 // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) 50339 !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && 50340 50341 // Make sure the element is visible & connected 50342 elem.getClientRects().length ) { 50343 50344 isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; 50345 50346 // Where available, offsetWidth/offsetHeight approximate border box dimensions. 50347 // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the 50348 // retrieved value as a content box dimension. 50349 valueIsBorderBox = offsetProp in elem; 50350 if ( valueIsBorderBox ) { 50351 val = elem[ offsetProp ]; 50352 } 50353 } 50354 50355 // Normalize "" and auto 50356 val = parseFloat( val ) || 0; 50357 50358 // Adjust for the element's box model 50359 return ( val + 50360 boxModelAdjustment( 50361 elem, 50362 dimension, 50363 extra || ( isBorderBox ? "border" : "content" ), 50364 valueIsBorderBox, 50365 styles, 50366 50367 // Provide the current computed size to request scroll gutter calculation (gh-3589) 50368 val 50369 ) 50370 ) + "px"; 50371} 50372 50373jQuery.extend( { 50374 50375 // Add in style property hooks for overriding the default 50376 // behavior of getting and setting a style property 50377 cssHooks: { 50378 opacity: { 50379 get: function( elem, computed ) { 50380 if ( computed ) { 50381 50382 // We should always get a number back from opacity 50383 var ret = curCSS( elem, "opacity" ); 50384 return ret === "" ? "1" : ret; 50385 } 50386 } 50387 } 50388 }, 50389 50390 // Don't automatically add "px" to these possibly-unitless properties 50391 cssNumber: { 50392 animationIterationCount: true, 50393 aspectRatio: true, 50394 borderImageSlice: true, 50395 columnCount: true, 50396 flexGrow: true, 50397 flexShrink: true, 50398 fontWeight: true, 50399 gridArea: true, 50400 gridColumn: true, 50401 gridColumnEnd: true, 50402 gridColumnStart: true, 50403 gridRow: true, 50404 gridRowEnd: true, 50405 gridRowStart: true, 50406 lineHeight: true, 50407 opacity: true, 50408 order: true, 50409 orphans: true, 50410 scale: true, 50411 widows: true, 50412 zIndex: true, 50413 zoom: true, 50414 50415 // SVG-related 50416 fillOpacity: true, 50417 floodOpacity: true, 50418 stopOpacity: true, 50419 strokeMiterlimit: true, 50420 strokeOpacity: true 50421 }, 50422 50423 // Add in properties whose names you wish to fix before 50424 // setting or getting the value 50425 cssProps: {}, 50426 50427 // Get and set the style property on a DOM Node 50428 style: function( elem, name, value, extra ) { 50429 50430 // Don't set styles on text and comment nodes 50431 if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { 50432 return; 50433 } 50434 50435 // Make sure that we're working with the right name 50436 var ret, type, hooks, 50437 origName = camelCase( name ), 50438 isCustomProp = rcustomProp.test( name ), 50439 style = elem.style; 50440 50441 // Make sure that we're working with the right name. We don't 50442 // want to query the value if it is a CSS custom property 50443 // since they are user-defined. 50444 if ( !isCustomProp ) { 50445 name = finalPropName( origName ); 50446 } 50447 50448 // Gets hook for the prefixed version, then unprefixed version 50449 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; 50450 50451 // Check if we're setting a value 50452 if ( value !== undefined ) { 50453 type = typeof value; 50454 50455 // Convert "+=" or "-=" to relative numbers (trac-7345) 50456 if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { 50457 value = adjustCSS( elem, name, ret ); 50458 50459 // Fixes bug trac-9237 50460 type = "number"; 50461 } 50462 50463 // Make sure that null and NaN values aren't set (trac-7116) 50464 if ( value == null || value !== value ) { 50465 return; 50466 } 50467 50468 // If a number was passed in, add the unit (except for certain CSS properties) 50469 // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append 50470 // "px" to a few hardcoded values. 50471 if ( type === "number" && !isCustomProp ) { 50472 value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); 50473 } 50474 50475 // background-* props affect original clone's values 50476 if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { 50477 style[ name ] = "inherit"; 50478 } 50479 50480 // If a hook was provided, use that value, otherwise just set the specified value 50481 if ( !hooks || !( "set" in hooks ) || 50482 ( value = hooks.set( elem, value, extra ) ) !== undefined ) { 50483 50484 if ( isCustomProp ) { 50485 style.setProperty( name, value ); 50486 } else { 50487 style[ name ] = value; 50488 } 50489 } 50490 50491 } else { 50492 50493 // If a hook was provided get the non-computed value from there 50494 if ( hooks && "get" in hooks && 50495 ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { 50496 50497 return ret; 50498 } 50499 50500 // Otherwise just get the value from the style object 50501 return style[ name ]; 50502 } 50503 }, 50504 50505 css: function( elem, name, extra, styles ) { 50506 var val, num, hooks, 50507 origName = camelCase( name ), 50508 isCustomProp = rcustomProp.test( name ); 50509 50510 // Make sure that we're working with the right name. We don't 50511 // want to modify the value if it is a CSS custom property 50512 // since they are user-defined. 50513 if ( !isCustomProp ) { 50514 name = finalPropName( origName ); 50515 } 50516 50517 // Try prefixed name followed by the unprefixed name 50518 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; 50519 50520 // If a hook was provided get the computed value from there 50521 if ( hooks && "get" in hooks ) { 50522 val = hooks.get( elem, true, extra ); 50523 } 50524 50525 // Otherwise, if a way to get the computed value exists, use that 50526 if ( val === undefined ) { 50527 val = curCSS( elem, name, styles ); 50528 } 50529 50530 // Convert "normal" to computed value 50531 if ( val === "normal" && name in cssNormalTransform ) { 50532 val = cssNormalTransform[ name ]; 50533 } 50534 50535 // Make numeric if forced or a qualifier was provided and val looks numeric 50536 if ( extra === "" || extra ) { 50537 num = parseFloat( val ); 50538 return extra === true || isFinite( num ) ? num || 0 : val; 50539 } 50540 50541 return val; 50542 } 50543} ); 50544 50545jQuery.each( [ "height", "width" ], function( _i, dimension ) { 50546 jQuery.cssHooks[ dimension ] = { 50547 get: function( elem, computed, extra ) { 50548 if ( computed ) { 50549 50550 // Certain elements can have dimension info if we invisibly show them 50551 // but it must have a current display style that would benefit 50552 return rdisplayswap.test( jQuery.css( elem, "display" ) ) && 50553 50554 // Support: Safari 8+ 50555 // Table columns in Safari have non-zero offsetWidth & zero 50556 // getBoundingClientRect().width unless display is changed. 50557 // Support: IE <=11 only 50558 // Running getBoundingClientRect on a disconnected node 50559 // in IE throws an error. 50560 ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? 50561 swap( elem, cssShow, function() { 50562 return getWidthOrHeight( elem, dimension, extra ); 50563 } ) : 50564 getWidthOrHeight( elem, dimension, extra ); 50565 } 50566 }, 50567 50568 set: function( elem, value, extra ) { 50569 var matches, 50570 styles = getStyles( elem ), 50571 50572 // Only read styles.position if the test has a chance to fail 50573 // to avoid forcing a reflow. 50574 scrollboxSizeBuggy = !support.scrollboxSize() && 50575 styles.position === "absolute", 50576 50577 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) 50578 boxSizingNeeded = scrollboxSizeBuggy || extra, 50579 isBorderBox = boxSizingNeeded && 50580 jQuery.css( elem, "boxSizing", false, styles ) === "border-box", 50581 subtract = extra ? 50582 boxModelAdjustment( 50583 elem, 50584 dimension, 50585 extra, 50586 isBorderBox, 50587 styles 50588 ) : 50589 0; 50590 50591 // Account for unreliable border-box dimensions by comparing offset* to computed and 50592 // faking a content-box to get border and padding (gh-3699) 50593 if ( isBorderBox && scrollboxSizeBuggy ) { 50594 subtract -= Math.ceil( 50595 elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - 50596 parseFloat( styles[ dimension ] ) - 50597 boxModelAdjustment( elem, dimension, "border", false, styles ) - 50598 0.5 50599 ); 50600 } 50601 50602 // Convert to pixels if value adjustment is needed 50603 if ( subtract && ( matches = rcssNum.exec( value ) ) && 50604 ( matches[ 3 ] || "px" ) !== "px" ) { 50605 50606 elem.style[ dimension ] = value; 50607 value = jQuery.css( elem, dimension ); 50608 } 50609 50610 return setPositiveNumber( elem, value, subtract ); 50611 } 50612 }; 50613} ); 50614 50615jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, 50616 function( elem, computed ) { 50617 if ( computed ) { 50618 return ( parseFloat( curCSS( elem, "marginLeft" ) ) || 50619 elem.getBoundingClientRect().left - 50620 swap( elem, { marginLeft: 0 }, function() { 50621 return elem.getBoundingClientRect().left; 50622 } ) 50623 ) + "px"; 50624 } 50625 } 50626); 50627 50628// These hooks are used by animate to expand properties 50629jQuery.each( { 50630 margin: "", 50631 padding: "", 50632 border: "Width" 50633}, function( prefix, suffix ) { 50634 jQuery.cssHooks[ prefix + suffix ] = { 50635 expand: function( value ) { 50636 var i = 0, 50637 expanded = {}, 50638 50639 // Assumes a single number if not a string 50640 parts = typeof value === "string" ? value.split( " " ) : [ value ]; 50641 50642 for ( ; i < 4; i++ ) { 50643 expanded[ prefix + cssExpand[ i ] + suffix ] = 50644 parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; 50645 } 50646 50647 return expanded; 50648 } 50649 }; 50650 50651 if ( prefix !== "margin" ) { 50652 jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; 50653 } 50654} ); 50655 50656jQuery.fn.extend( { 50657 css: function( name, value ) { 50658 return access( this, function( elem, name, value ) { 50659 var styles, len, 50660 map = {}, 50661 i = 0; 50662 50663 if ( Array.isArray( name ) ) { 50664 styles = getStyles( elem ); 50665 len = name.length; 50666 50667 for ( ; i < len; i++ ) { 50668 map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); 50669 } 50670 50671 return map; 50672 } 50673 50674 return value !== undefined ? 50675 jQuery.style( elem, name, value ) : 50676 jQuery.css( elem, name ); 50677 }, name, value, arguments.length > 1 ); 50678 } 50679} ); 50680 50681 50682function Tween( elem, options, prop, end, easing ) { 50683 return new Tween.prototype.init( elem, options, prop, end, easing ); 50684} 50685jQuery.Tween = Tween; 50686 50687Tween.prototype = { 50688 constructor: Tween, 50689 init: function( elem, options, prop, end, easing, unit ) { 50690 this.elem = elem; 50691 this.prop = prop; 50692 this.easing = easing || jQuery.easing._default; 50693 this.options = options; 50694 this.start = this.now = this.cur(); 50695 this.end = end; 50696 this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); 50697 }, 50698 cur: function() { 50699 var hooks = Tween.propHooks[ this.prop ]; 50700 50701 return hooks && hooks.get ? 50702 hooks.get( this ) : 50703 Tween.propHooks._default.get( this ); 50704 }, 50705 run: function( percent ) { 50706 var eased, 50707 hooks = Tween.propHooks[ this.prop ]; 50708 50709 if ( this.options.duration ) { 50710 this.pos = eased = jQuery.easing[ this.easing ]( 50711 percent, this.options.duration * percent, 0, 1, this.options.duration 50712 ); 50713 } else { 50714 this.pos = eased = percent; 50715 } 50716 this.now = ( this.end - this.start ) * eased + this.start; 50717 50718 if ( this.options.step ) { 50719 this.options.step.call( this.elem, this.now, this ); 50720 } 50721 50722 if ( hooks && hooks.set ) { 50723 hooks.set( this ); 50724 } else { 50725 Tween.propHooks._default.set( this ); 50726 } 50727 return this; 50728 } 50729}; 50730 50731Tween.prototype.init.prototype = Tween.prototype; 50732 50733Tween.propHooks = { 50734 _default: { 50735 get: function( tween ) { 50736 var result; 50737 50738 // Use a property on the element directly when it is not a DOM element, 50739 // or when there is no matching style property that exists. 50740 if ( tween.elem.nodeType !== 1 || 50741 tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { 50742 return tween.elem[ tween.prop ]; 50743 } 50744 50745 // Passing an empty string as a 3rd parameter to .css will automatically 50746 // attempt a parseFloat and fallback to a string if the parse fails. 50747 // Simple values such as "10px" are parsed to Float; 50748 // complex values such as "rotate(1rad)" are returned as-is. 50749 result = jQuery.css( tween.elem, tween.prop, "" ); 50750 50751 // Empty strings, null, undefined and "auto" are converted to 0. 50752 return !result || result === "auto" ? 0 : result; 50753 }, 50754 set: function( tween ) { 50755 50756 // Use step hook for back compat. 50757 // Use cssHook if its there. 50758 // Use .style if available and use plain properties where available. 50759 if ( jQuery.fx.step[ tween.prop ] ) { 50760 jQuery.fx.step[ tween.prop ]( tween ); 50761 } else if ( tween.elem.nodeType === 1 && ( 50762 jQuery.cssHooks[ tween.prop ] || 50763 tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { 50764 jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); 50765 } else { 50766 tween.elem[ tween.prop ] = tween.now; 50767 } 50768 } 50769 } 50770}; 50771 50772// Support: IE <=9 only 50773// Panic based approach to setting things on disconnected nodes 50774Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { 50775 set: function( tween ) { 50776 if ( tween.elem.nodeType && tween.elem.parentNode ) { 50777 tween.elem[ tween.prop ] = tween.now; 50778 } 50779 } 50780}; 50781 50782jQuery.easing = { 50783 linear: function( p ) { 50784 return p; 50785 }, 50786 swing: function( p ) { 50787 return 0.5 - Math.cos( p * Math.PI ) / 2; 50788 }, 50789 _default: "swing" 50790}; 50791 50792jQuery.fx = Tween.prototype.init; 50793 50794// Back compat <1.8 extension point 50795jQuery.fx.step = {}; 50796 50797 50798 50799 50800var 50801 fxNow, inProgress, 50802 rfxtypes = /^(?:toggle|show|hide)$/, 50803 rrun = /queueHooks$/; 50804 50805function schedule() { 50806 if ( inProgress ) { 50807 if ( document.hidden === false && window.requestAnimationFrame ) { 50808 window.requestAnimationFrame( schedule ); 50809 } else { 50810 window.setTimeout( schedule, jQuery.fx.interval ); 50811 } 50812 50813 jQuery.fx.tick(); 50814 } 50815} 50816 50817// Animations created synchronously will run synchronously 50818function createFxNow() { 50819 window.setTimeout( function() { 50820 fxNow = undefined; 50821 } ); 50822 return ( fxNow = Date.now() ); 50823} 50824 50825// Generate parameters to create a standard animation 50826function genFx( type, includeWidth ) { 50827 var which, 50828 i = 0, 50829 attrs = { height: type }; 50830 50831 // If we include width, step value is 1 to do all cssExpand values, 50832 // otherwise step value is 2 to skip over Left and Right 50833 includeWidth = includeWidth ? 1 : 0; 50834 for ( ; i < 4; i += 2 - includeWidth ) { 50835 which = cssExpand[ i ]; 50836 attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; 50837 } 50838 50839 if ( includeWidth ) { 50840 attrs.opacity = attrs.width = type; 50841 } 50842 50843 return attrs; 50844} 50845 50846function createTween( value, prop, animation ) { 50847 var tween, 50848 collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), 50849 index = 0, 50850 length = collection.length; 50851 for ( ; index < length; index++ ) { 50852 if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { 50853 50854 // We're done with this property 50855 return tween; 50856 } 50857 } 50858} 50859 50860function defaultPrefilter( elem, props, opts ) { 50861 var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, 50862 isBox = "width" in props || "height" in props, 50863 anim = this, 50864 orig = {}, 50865 style = elem.style, 50866 hidden = elem.nodeType && isHiddenWithinTree( elem ), 50867 dataShow = dataPriv.get( elem, "fxshow" ); 50868 50869 // Queue-skipping animations hijack the fx hooks 50870 if ( !opts.queue ) { 50871 hooks = jQuery._queueHooks( elem, "fx" ); 50872 if ( hooks.unqueued == null ) { 50873 hooks.unqueued = 0; 50874 oldfire = hooks.empty.fire; 50875 hooks.empty.fire = function() { 50876 if ( !hooks.unqueued ) { 50877 oldfire(); 50878 } 50879 }; 50880 } 50881 hooks.unqueued++; 50882 50883 anim.always( function() { 50884 50885 // Ensure the complete handler is called before this completes 50886 anim.always( function() { 50887 hooks.unqueued--; 50888 if ( !jQuery.queue( elem, "fx" ).length ) { 50889 hooks.empty.fire(); 50890 } 50891 } ); 50892 } ); 50893 } 50894 50895 // Detect show/hide animations 50896 for ( prop in props ) { 50897 value = props[ prop ]; 50898 if ( rfxtypes.test( value ) ) { 50899 delete props[ prop ]; 50900 toggle = toggle || value === "toggle"; 50901 if ( value === ( hidden ? "hide" : "show" ) ) { 50902 50903 // Pretend to be hidden if this is a "show" and 50904 // there is still data from a stopped show/hide 50905 if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { 50906 hidden = true; 50907 50908 // Ignore all other no-op show/hide data 50909 } else { 50910 continue; 50911 } 50912 } 50913 orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); 50914 } 50915 } 50916 50917 // Bail out if this is a no-op like .hide().hide() 50918 propTween = !jQuery.isEmptyObject( props ); 50919 if ( !propTween && jQuery.isEmptyObject( orig ) ) { 50920 return; 50921 } 50922 50923 // Restrict "overflow" and "display" styles during box animations 50924 if ( isBox && elem.nodeType === 1 ) { 50925 50926 // Support: IE <=9 - 11, Edge 12 - 15 50927 // Record all 3 overflow attributes because IE does not infer the shorthand 50928 // from identically-valued overflowX and overflowY and Edge just mirrors 50929 // the overflowX value there. 50930 opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; 50931 50932 // Identify a display type, preferring old show/hide data over the CSS cascade 50933 restoreDisplay = dataShow && dataShow.display; 50934 if ( restoreDisplay == null ) { 50935 restoreDisplay = dataPriv.get( elem, "display" ); 50936 } 50937 display = jQuery.css( elem, "display" ); 50938 if ( display === "none" ) { 50939 if ( restoreDisplay ) { 50940 display = restoreDisplay; 50941 } else { 50942 50943 // Get nonempty value(s) by temporarily forcing visibility 50944 showHide( [ elem ], true ); 50945 restoreDisplay = elem.style.display || restoreDisplay; 50946 display = jQuery.css( elem, "display" ); 50947 showHide( [ elem ] ); 50948 } 50949 } 50950 50951 // Animate inline elements as inline-block 50952 if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { 50953 if ( jQuery.css( elem, "float" ) === "none" ) { 50954 50955 // Restore the original display value at the end of pure show/hide animations 50956 if ( !propTween ) { 50957 anim.done( function() { 50958 style.display = restoreDisplay; 50959 } ); 50960 if ( restoreDisplay == null ) { 50961 display = style.display; 50962 restoreDisplay = display === "none" ? "" : display; 50963 } 50964 } 50965 style.display = "inline-block"; 50966 } 50967 } 50968 } 50969 50970 if ( opts.overflow ) { 50971 style.overflow = "hidden"; 50972 anim.always( function() { 50973 style.overflow = opts.overflow[ 0 ]; 50974 style.overflowX = opts.overflow[ 1 ]; 50975 style.overflowY = opts.overflow[ 2 ]; 50976 } ); 50977 } 50978 50979 // Implement show/hide animations 50980 propTween = false; 50981 for ( prop in orig ) { 50982 50983 // General show/hide setup for this element animation 50984 if ( !propTween ) { 50985 if ( dataShow ) { 50986 if ( "hidden" in dataShow ) { 50987 hidden = dataShow.hidden; 50988 } 50989 } else { 50990 dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); 50991 } 50992 50993 // Store hidden/visible for toggle so `.stop().toggle()` "reverses" 50994 if ( toggle ) { 50995 dataShow.hidden = !hidden; 50996 } 50997 50998 // Show elements before animating them 50999 if ( hidden ) { 51000 showHide( [ elem ], true ); 51001 } 51002 51003 /* eslint-disable no-loop-func */ 51004 51005 anim.done( function() { 51006 51007 /* eslint-enable no-loop-func */ 51008 51009 // The final step of a "hide" animation is actually hiding the element 51010 if ( !hidden ) { 51011 showHide( [ elem ] ); 51012 } 51013 dataPriv.remove( elem, "fxshow" ); 51014 for ( prop in orig ) { 51015 jQuery.style( elem, prop, orig[ prop ] ); 51016 } 51017 } ); 51018 } 51019 51020 // Per-property setup 51021 propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); 51022 if ( !( prop in dataShow ) ) { 51023 dataShow[ prop ] = propTween.start; 51024 if ( hidden ) { 51025 propTween.end = propTween.start; 51026 propTween.start = 0; 51027 } 51028 } 51029 } 51030} 51031 51032function propFilter( props, specialEasing ) { 51033 var index, name, easing, value, hooks; 51034 51035 // camelCase, specialEasing and expand cssHook pass 51036 for ( index in props ) { 51037 name = camelCase( index ); 51038 easing = specialEasing[ name ]; 51039 value = props[ index ]; 51040 if ( Array.isArray( value ) ) { 51041 easing = value[ 1 ]; 51042 value = props[ index ] = value[ 0 ]; 51043 } 51044 51045 if ( index !== name ) { 51046 props[ name ] = value; 51047 delete props[ index ]; 51048 } 51049 51050 hooks = jQuery.cssHooks[ name ]; 51051 if ( hooks && "expand" in hooks ) { 51052 value = hooks.expand( value ); 51053 delete props[ name ]; 51054 51055 // Not quite $.extend, this won't overwrite existing keys. 51056 // Reusing 'index' because we have the correct "name" 51057 for ( index in value ) { 51058 if ( !( index in props ) ) { 51059 props[ index ] = value[ index ]; 51060 specialEasing[ index ] = easing; 51061 } 51062 } 51063 } else { 51064 specialEasing[ name ] = easing; 51065 } 51066 } 51067} 51068 51069function Animation( elem, properties, options ) { 51070 var result, 51071 stopped, 51072 index = 0, 51073 length = Animation.prefilters.length, 51074 deferred = jQuery.Deferred().always( function() { 51075 51076 // Don't match elem in the :animated selector 51077 delete tick.elem; 51078 } ), 51079 tick = function() { 51080 if ( stopped ) { 51081 return false; 51082 } 51083 var currentTime = fxNow || createFxNow(), 51084 remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), 51085 51086 // Support: Android 2.3 only 51087 // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497) 51088 temp = remaining / animation.duration || 0, 51089 percent = 1 - temp, 51090 index = 0, 51091 length = animation.tweens.length; 51092 51093 for ( ; index < length; index++ ) { 51094 animation.tweens[ index ].run( percent ); 51095 } 51096 51097 deferred.notifyWith( elem, [ animation, percent, remaining ] ); 51098 51099 // If there's more to do, yield 51100 if ( percent < 1 && length ) { 51101 return remaining; 51102 } 51103 51104 // If this was an empty animation, synthesize a final progress notification 51105 if ( !length ) { 51106 deferred.notifyWith( elem, [ animation, 1, 0 ] ); 51107 } 51108 51109 // Resolve the animation and report its conclusion 51110 deferred.resolveWith( elem, [ animation ] ); 51111 return false; 51112 }, 51113 animation = deferred.promise( { 51114 elem: elem, 51115 props: jQuery.extend( {}, properties ), 51116 opts: jQuery.extend( true, { 51117 specialEasing: {}, 51118 easing: jQuery.easing._default 51119 }, options ), 51120 originalProperties: properties, 51121 originalOptions: options, 51122 startTime: fxNow || createFxNow(), 51123 duration: options.duration, 51124 tweens: [], 51125 createTween: function( prop, end ) { 51126 var tween = jQuery.Tween( elem, animation.opts, prop, end, 51127 animation.opts.specialEasing[ prop ] || animation.opts.easing ); 51128 animation.tweens.push( tween ); 51129 return tween; 51130 }, 51131 stop: function( gotoEnd ) { 51132 var index = 0, 51133 51134 // If we are going to the end, we want to run all the tweens 51135 // otherwise we skip this part 51136 length = gotoEnd ? animation.tweens.length : 0; 51137 if ( stopped ) { 51138 return this; 51139 } 51140 stopped = true; 51141 for ( ; index < length; index++ ) { 51142 animation.tweens[ index ].run( 1 ); 51143 } 51144 51145 // Resolve when we played the last frame; otherwise, reject 51146 if ( gotoEnd ) { 51147 deferred.notifyWith( elem, [ animation, 1, 0 ] ); 51148 deferred.resolveWith( elem, [ animation, gotoEnd ] ); 51149 } else { 51150 deferred.rejectWith( elem, [ animation, gotoEnd ] ); 51151 } 51152 return this; 51153 } 51154 } ), 51155 props = animation.props; 51156 51157 propFilter( props, animation.opts.specialEasing ); 51158 51159 for ( ; index < length; index++ ) { 51160 result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); 51161 if ( result ) { 51162 if ( isFunction( result.stop ) ) { 51163 jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = 51164 result.stop.bind( result ); 51165 } 51166 return result; 51167 } 51168 } 51169 51170 jQuery.map( props, createTween, animation ); 51171 51172 if ( isFunction( animation.opts.start ) ) { 51173 animation.opts.start.call( elem, animation ); 51174 } 51175 51176 // Attach callbacks from options 51177 animation 51178 .progress( animation.opts.progress ) 51179 .done( animation.opts.done, animation.opts.complete ) 51180 .fail( animation.opts.fail ) 51181 .always( animation.opts.always ); 51182 51183 jQuery.fx.timer( 51184 jQuery.extend( tick, { 51185 elem: elem, 51186 anim: animation, 51187 queue: animation.opts.queue 51188 } ) 51189 ); 51190 51191 return animation; 51192} 51193 51194jQuery.Animation = jQuery.extend( Animation, { 51195 51196 tweeners: { 51197 "*": [ function( prop, value ) { 51198 var tween = this.createTween( prop, value ); 51199 adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); 51200 return tween; 51201 } ] 51202 }, 51203 51204 tweener: function( props, callback ) { 51205 if ( isFunction( props ) ) { 51206 callback = props; 51207 props = [ "*" ]; 51208 } else { 51209 props = props.match( rnothtmlwhite ); 51210 } 51211 51212 var prop, 51213 index = 0, 51214 length = props.length; 51215 51216 for ( ; index < length; index++ ) { 51217 prop = props[ index ]; 51218 Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; 51219 Animation.tweeners[ prop ].unshift( callback ); 51220 } 51221 }, 51222 51223 prefilters: [ defaultPrefilter ], 51224 51225 prefilter: function( callback, prepend ) { 51226 if ( prepend ) { 51227 Animation.prefilters.unshift( callback ); 51228 } else { 51229 Animation.prefilters.push( callback ); 51230 } 51231 } 51232} ); 51233 51234jQuery.speed = function( speed, easing, fn ) { 51235 var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { 51236 complete: fn || !fn && easing || 51237 isFunction( speed ) && speed, 51238 duration: speed, 51239 easing: fn && easing || easing && !isFunction( easing ) && easing 51240 }; 51241 51242 // Go to the end state if fx are off 51243 if ( jQuery.fx.off ) { 51244 opt.duration = 0; 51245 51246 } else { 51247 if ( typeof opt.duration !== "number" ) { 51248 if ( opt.duration in jQuery.fx.speeds ) { 51249 opt.duration = jQuery.fx.speeds[ opt.duration ]; 51250 51251 } else { 51252 opt.duration = jQuery.fx.speeds._default; 51253 } 51254 } 51255 } 51256 51257 // Normalize opt.queue - true/undefined/null -> "fx" 51258 if ( opt.queue == null || opt.queue === true ) { 51259 opt.queue = "fx"; 51260 } 51261 51262 // Queueing 51263 opt.old = opt.complete; 51264 51265 opt.complete = function() { 51266 if ( isFunction( opt.old ) ) { 51267 opt.old.call( this ); 51268 } 51269 51270 if ( opt.queue ) { 51271 jQuery.dequeue( this, opt.queue ); 51272 } 51273 }; 51274 51275 return opt; 51276}; 51277 51278jQuery.fn.extend( { 51279 fadeTo: function( speed, to, easing, callback ) { 51280 51281 // Show any hidden elements after setting opacity to 0 51282 return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() 51283 51284 // Animate to the value specified 51285 .end().animate( { opacity: to }, speed, easing, callback ); 51286 }, 51287 animate: function( prop, speed, easing, callback ) { 51288 var empty = jQuery.isEmptyObject( prop ), 51289 optall = jQuery.speed( speed, easing, callback ), 51290 doAnimation = function() { 51291 51292 // Operate on a copy of prop so per-property easing won't be lost 51293 var anim = Animation( this, jQuery.extend( {}, prop ), optall ); 51294 51295 // Empty animations, or finishing resolves immediately 51296 if ( empty || dataPriv.get( this, "finish" ) ) { 51297 anim.stop( true ); 51298 } 51299 }; 51300 51301 doAnimation.finish = doAnimation; 51302 51303 return empty || optall.queue === false ? 51304 this.each( doAnimation ) : 51305 this.queue( optall.queue, doAnimation ); 51306 }, 51307 stop: function( type, clearQueue, gotoEnd ) { 51308 var stopQueue = function( hooks ) { 51309 var stop = hooks.stop; 51310 delete hooks.stop; 51311 stop( gotoEnd ); 51312 }; 51313 51314 if ( typeof type !== "string" ) { 51315 gotoEnd = clearQueue; 51316 clearQueue = type; 51317 type = undefined; 51318 } 51319 if ( clearQueue ) { 51320 this.queue( type || "fx", [] ); 51321 } 51322 51323 return this.each( function() { 51324 var dequeue = true, 51325 index = type != null && type + "queueHooks", 51326 timers = jQuery.timers, 51327 data = dataPriv.get( this ); 51328 51329 if ( index ) { 51330 if ( data[ index ] && data[ index ].stop ) { 51331 stopQueue( data[ index ] ); 51332 } 51333 } else { 51334 for ( index in data ) { 51335 if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { 51336 stopQueue( data[ index ] ); 51337 } 51338 } 51339 } 51340 51341 for ( index = timers.length; index--; ) { 51342 if ( timers[ index ].elem === this && 51343 ( type == null || timers[ index ].queue === type ) ) { 51344 51345 timers[ index ].anim.stop( gotoEnd ); 51346 dequeue = false; 51347 timers.splice( index, 1 ); 51348 } 51349 } 51350 51351 // Start the next in the queue if the last step wasn't forced. 51352 // Timers currently will call their complete callbacks, which 51353 // will dequeue but only if they were gotoEnd. 51354 if ( dequeue || !gotoEnd ) { 51355 jQuery.dequeue( this, type ); 51356 } 51357 } ); 51358 }, 51359 finish: function( type ) { 51360 if ( type !== false ) { 51361 type = type || "fx"; 51362 } 51363 return this.each( function() { 51364 var index, 51365 data = dataPriv.get( this ), 51366 queue = data[ type + "queue" ], 51367 hooks = data[ type + "queueHooks" ], 51368 timers = jQuery.timers, 51369 length = queue ? queue.length : 0; 51370 51371 // Enable finishing flag on private data 51372 data.finish = true; 51373 51374 // Empty the queue first 51375 jQuery.queue( this, type, [] ); 51376 51377 if ( hooks && hooks.stop ) { 51378 hooks.stop.call( this, true ); 51379 } 51380 51381 // Look for any active animations, and finish them 51382 for ( index = timers.length; index--; ) { 51383 if ( timers[ index ].elem === this && timers[ index ].queue === type ) { 51384 timers[ index ].anim.stop( true ); 51385 timers.splice( index, 1 ); 51386 } 51387 } 51388 51389 // Look for any animations in the old queue and finish them 51390 for ( index = 0; index < length; index++ ) { 51391 if ( queue[ index ] && queue[ index ].finish ) { 51392 queue[ index ].finish.call( this ); 51393 } 51394 } 51395 51396 // Turn off finishing flag 51397 delete data.finish; 51398 } ); 51399 } 51400} ); 51401 51402jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { 51403 var cssFn = jQuery.fn[ name ]; 51404 jQuery.fn[ name ] = function( speed, easing, callback ) { 51405 return speed == null || typeof speed === "boolean" ? 51406 cssFn.apply( this, arguments ) : 51407 this.animate( genFx( name, true ), speed, easing, callback ); 51408 }; 51409} ); 51410 51411// Generate shortcuts for custom animations 51412jQuery.each( { 51413 slideDown: genFx( "show" ), 51414 slideUp: genFx( "hide" ), 51415 slideToggle: genFx( "toggle" ), 51416 fadeIn: { opacity: "show" }, 51417 fadeOut: { opacity: "hide" }, 51418 fadeToggle: { opacity: "toggle" } 51419}, function( name, props ) { 51420 jQuery.fn[ name ] = function( speed, easing, callback ) { 51421 return this.animate( props, speed, easing, callback ); 51422 }; 51423} ); 51424 51425jQuery.timers = []; 51426jQuery.fx.tick = function() { 51427 var timer, 51428 i = 0, 51429 timers = jQuery.timers; 51430 51431 fxNow = Date.now(); 51432 51433 for ( ; i < timers.length; i++ ) { 51434 timer = timers[ i ]; 51435 51436 // Run the timer and safely remove it when done (allowing for external removal) 51437 if ( !timer() && timers[ i ] === timer ) { 51438 timers.splice( i--, 1 ); 51439 } 51440 } 51441 51442 if ( !timers.length ) { 51443 jQuery.fx.stop(); 51444 } 51445 fxNow = undefined; 51446}; 51447 51448jQuery.fx.timer = function( timer ) { 51449 jQuery.timers.push( timer ); 51450 jQuery.fx.start(); 51451}; 51452 51453jQuery.fx.interval = 13; 51454jQuery.fx.start = function() { 51455 if ( inProgress ) { 51456 return; 51457 } 51458 51459 inProgress = true; 51460 schedule(); 51461}; 51462 51463jQuery.fx.stop = function() { 51464 inProgress = null; 51465}; 51466 51467jQuery.fx.speeds = { 51468 slow: 600, 51469 fast: 200, 51470 51471 // Default speed 51472 _default: 400 51473}; 51474 51475 51476// Based off of the plugin by Clint Helfers, with permission. 51477jQuery.fn.delay = function( time, type ) { 51478 time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 51479 type = type || "fx"; 51480 51481 return this.queue( type, function( next, hooks ) { 51482 var timeout = window.setTimeout( next, time ); 51483 hooks.stop = function() { 51484 window.clearTimeout( timeout ); 51485 }; 51486 } ); 51487}; 51488 51489 51490( function() { 51491 var input = document.createElement( "input" ), 51492 select = document.createElement( "select" ), 51493 opt = select.appendChild( document.createElement( "option" ) ); 51494 51495 input.type = "checkbox"; 51496 51497 // Support: Android <=4.3 only 51498 // Default value for a checkbox should be "on" 51499 support.checkOn = input.value !== ""; 51500 51501 // Support: IE <=11 only 51502 // Must access selectedIndex to make default options select 51503 support.optSelected = opt.selected; 51504 51505 // Support: IE <=11 only 51506 // An input loses its value after becoming a radio 51507 input = document.createElement( "input" ); 51508 input.value = "t"; 51509 input.type = "radio"; 51510 support.radioValue = input.value === "t"; 51511} )(); 51512 51513 51514var boolHook, 51515 attrHandle = jQuery.expr.attrHandle; 51516 51517jQuery.fn.extend( { 51518 attr: function( name, value ) { 51519 return access( this, jQuery.attr, name, value, arguments.length > 1 ); 51520 }, 51521 51522 removeAttr: function( name ) { 51523 return this.each( function() { 51524 jQuery.removeAttr( this, name ); 51525 } ); 51526 } 51527} ); 51528 51529jQuery.extend( { 51530 attr: function( elem, name, value ) { 51531 var ret, hooks, 51532 nType = elem.nodeType; 51533 51534 // Don't get/set attributes on text, comment and attribute nodes 51535 if ( nType === 3 || nType === 8 || nType === 2 ) { 51536 return; 51537 } 51538 51539 // Fallback to prop when attributes are not supported 51540 if ( typeof elem.getAttribute === "undefined" ) { 51541 return jQuery.prop( elem, name, value ); 51542 } 51543 51544 // Attribute hooks are determined by the lowercase version 51545 // Grab necessary hook if one is defined 51546 if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { 51547 hooks = jQuery.attrHooks[ name.toLowerCase() ] || 51548 ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); 51549 } 51550 51551 if ( value !== undefined ) { 51552 if ( value === null ) { 51553 jQuery.removeAttr( elem, name ); 51554 return; 51555 } 51556 51557 if ( hooks && "set" in hooks && 51558 ( ret = hooks.set( elem, value, name ) ) !== undefined ) { 51559 return ret; 51560 } 51561 51562 elem.setAttribute( name, value + "" ); 51563 return value; 51564 } 51565 51566 if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { 51567 return ret; 51568 } 51569 51570 ret = jQuery.find.attr( elem, name ); 51571 51572 // Non-existent attributes return null, we normalize to undefined 51573 return ret == null ? undefined : ret; 51574 }, 51575 51576 attrHooks: { 51577 type: { 51578 set: function( elem, value ) { 51579 if ( !support.radioValue && value === "radio" && 51580 nodeName( elem, "input" ) ) { 51581 var val = elem.value; 51582 elem.setAttribute( "type", value ); 51583 if ( val ) { 51584 elem.value = val; 51585 } 51586 return value; 51587 } 51588 } 51589 } 51590 }, 51591 51592 removeAttr: function( elem, value ) { 51593 var name, 51594 i = 0, 51595 51596 // Attribute names can contain non-HTML whitespace characters 51597 // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 51598 attrNames = value && value.match( rnothtmlwhite ); 51599 51600 if ( attrNames && elem.nodeType === 1 ) { 51601 while ( ( name = attrNames[ i++ ] ) ) { 51602 elem.removeAttribute( name ); 51603 } 51604 } 51605 } 51606} ); 51607 51608// Hooks for boolean attributes 51609boolHook = { 51610 set: function( elem, value, name ) { 51611 if ( value === false ) { 51612 51613 // Remove boolean attributes when set to false 51614 jQuery.removeAttr( elem, name ); 51615 } else { 51616 elem.setAttribute( name, name ); 51617 } 51618 return name; 51619 } 51620}; 51621 51622jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { 51623 var getter = attrHandle[ name ] || jQuery.find.attr; 51624 51625 attrHandle[ name ] = function( elem, name, isXML ) { 51626 var ret, handle, 51627 lowercaseName = name.toLowerCase(); 51628 51629 if ( !isXML ) { 51630 51631 // Avoid an infinite loop by temporarily removing this function from the getter 51632 handle = attrHandle[ lowercaseName ]; 51633 attrHandle[ lowercaseName ] = ret; 51634 ret = getter( elem, name, isXML ) != null ? 51635 lowercaseName : 51636 null; 51637 attrHandle[ lowercaseName ] = handle; 51638 } 51639 return ret; 51640 }; 51641} ); 51642 51643 51644 51645 51646var rfocusable = /^(?:input|select|textarea|button)$/i, 51647 rclickable = /^(?:a|area)$/i; 51648 51649jQuery.fn.extend( { 51650 prop: function( name, value ) { 51651 return access( this, jQuery.prop, name, value, arguments.length > 1 ); 51652 }, 51653 51654 removeProp: function( name ) { 51655 return this.each( function() { 51656 delete this[ jQuery.propFix[ name ] || name ]; 51657 } ); 51658 } 51659} ); 51660 51661jQuery.extend( { 51662 prop: function( elem, name, value ) { 51663 var ret, hooks, 51664 nType = elem.nodeType; 51665 51666 // Don't get/set properties on text, comment and attribute nodes 51667 if ( nType === 3 || nType === 8 || nType === 2 ) { 51668 return; 51669 } 51670 51671 if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { 51672 51673 // Fix name and attach hooks 51674 name = jQuery.propFix[ name ] || name; 51675 hooks = jQuery.propHooks[ name ]; 51676 } 51677 51678 if ( value !== undefined ) { 51679 if ( hooks && "set" in hooks && 51680 ( ret = hooks.set( elem, value, name ) ) !== undefined ) { 51681 return ret; 51682 } 51683 51684 return ( elem[ name ] = value ); 51685 } 51686 51687 if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { 51688 return ret; 51689 } 51690 51691 return elem[ name ]; 51692 }, 51693 51694 propHooks: { 51695 tabIndex: { 51696 get: function( elem ) { 51697 51698 // Support: IE <=9 - 11 only 51699 // elem.tabIndex doesn't always return the 51700 // correct value when it hasn't been explicitly set 51701 // Use proper attribute retrieval (trac-12072) 51702 var tabindex = jQuery.find.attr( elem, "tabindex" ); 51703 51704 if ( tabindex ) { 51705 return parseInt( tabindex, 10 ); 51706 } 51707 51708 if ( 51709 rfocusable.test( elem.nodeName ) || 51710 rclickable.test( elem.nodeName ) && 51711 elem.href 51712 ) { 51713 return 0; 51714 } 51715 51716 return -1; 51717 } 51718 } 51719 }, 51720 51721 propFix: { 51722 "for": "htmlFor", 51723 "class": "className" 51724 } 51725} ); 51726 51727// Support: IE <=11 only 51728// Accessing the selectedIndex property 51729// forces the browser to respect setting selected 51730// on the option 51731// The getter ensures a default option is selected 51732// when in an optgroup 51733// eslint rule "no-unused-expressions" is disabled for this code 51734// since it considers such accessions noop 51735if ( !support.optSelected ) { 51736 jQuery.propHooks.selected = { 51737 get: function( elem ) { 51738 51739 /* eslint no-unused-expressions: "off" */ 51740 51741 var parent = elem.parentNode; 51742 if ( parent && parent.parentNode ) { 51743 parent.parentNode.selectedIndex; 51744 } 51745 return null; 51746 }, 51747 set: function( elem ) { 51748 51749 /* eslint no-unused-expressions: "off" */ 51750 51751 var parent = elem.parentNode; 51752 if ( parent ) { 51753 parent.selectedIndex; 51754 51755 if ( parent.parentNode ) { 51756 parent.parentNode.selectedIndex; 51757 } 51758 } 51759 } 51760 }; 51761} 51762 51763jQuery.each( [ 51764 "tabIndex", 51765 "readOnly", 51766 "maxLength", 51767 "cellSpacing", 51768 "cellPadding", 51769 "rowSpan", 51770 "colSpan", 51771 "useMap", 51772 "frameBorder", 51773 "contentEditable" 51774], function() { 51775 jQuery.propFix[ this.toLowerCase() ] = this; 51776} ); 51777 51778 51779 51780 51781 // Strip and collapse whitespace according to HTML spec 51782 // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace 51783 function stripAndCollapse( value ) { 51784 var tokens = value.match( rnothtmlwhite ) || []; 51785 return tokens.join( " " ); 51786 } 51787 51788 51789function getClass( elem ) { 51790 return elem.getAttribute && elem.getAttribute( "class" ) || ""; 51791} 51792 51793function classesToArray( value ) { 51794 if ( Array.isArray( value ) ) { 51795 return value; 51796 } 51797 if ( typeof value === "string" ) { 51798 return value.match( rnothtmlwhite ) || []; 51799 } 51800 return []; 51801} 51802 51803jQuery.fn.extend( { 51804 addClass: function( value ) { 51805 var classNames, cur, curValue, className, i, finalValue; 51806 51807 if ( isFunction( value ) ) { 51808 return this.each( function( j ) { 51809 jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); 51810 } ); 51811 } 51812 51813 classNames = classesToArray( value ); 51814 51815 if ( classNames.length ) { 51816 return this.each( function() { 51817 curValue = getClass( this ); 51818 cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); 51819 51820 if ( cur ) { 51821 for ( i = 0; i < classNames.length; i++ ) { 51822 className = classNames[ i ]; 51823 if ( cur.indexOf( " " + className + " " ) < 0 ) { 51824 cur += className + " "; 51825 } 51826 } 51827 51828 // Only assign if different to avoid unneeded rendering. 51829 finalValue = stripAndCollapse( cur ); 51830 if ( curValue !== finalValue ) { 51831 this.setAttribute( "class", finalValue ); 51832 } 51833 } 51834 } ); 51835 } 51836 51837 return this; 51838 }, 51839 51840 removeClass: function( value ) { 51841 var classNames, cur, curValue, className, i, finalValue; 51842 51843 if ( isFunction( value ) ) { 51844 return this.each( function( j ) { 51845 jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); 51846 } ); 51847 } 51848 51849 if ( !arguments.length ) { 51850 return this.attr( "class", "" ); 51851 } 51852 51853 classNames = classesToArray( value ); 51854 51855 if ( classNames.length ) { 51856 return this.each( function() { 51857 curValue = getClass( this ); 51858 51859 // This expression is here for better compressibility (see addClass) 51860 cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); 51861 51862 if ( cur ) { 51863 for ( i = 0; i < classNames.length; i++ ) { 51864 className = classNames[ i ]; 51865 51866 // Remove *all* instances 51867 while ( cur.indexOf( " " + className + " " ) > -1 ) { 51868 cur = cur.replace( " " + className + " ", " " ); 51869 } 51870 } 51871 51872 // Only assign if different to avoid unneeded rendering. 51873 finalValue = stripAndCollapse( cur ); 51874 if ( curValue !== finalValue ) { 51875 this.setAttribute( "class", finalValue ); 51876 } 51877 } 51878 } ); 51879 } 51880 51881 return this; 51882 }, 51883 51884 toggleClass: function( value, stateVal ) { 51885 var classNames, className, i, self, 51886 type = typeof value, 51887 isValidValue = type === "string" || Array.isArray( value ); 51888 51889 if ( isFunction( value ) ) { 51890 return this.each( function( i ) { 51891 jQuery( this ).toggleClass( 51892 value.call( this, i, getClass( this ), stateVal ), 51893 stateVal 51894 ); 51895 } ); 51896 } 51897 51898 if ( typeof stateVal === "boolean" && isValidValue ) { 51899 return stateVal ? this.addClass( value ) : this.removeClass( value ); 51900 } 51901 51902 classNames = classesToArray( value ); 51903 51904 return this.each( function() { 51905 if ( isValidValue ) { 51906 51907 // Toggle individual class names 51908 self = jQuery( this ); 51909 51910 for ( i = 0; i < classNames.length; i++ ) { 51911 className = classNames[ i ]; 51912 51913 // Check each className given, space separated list 51914 if ( self.hasClass( className ) ) { 51915 self.removeClass( className ); 51916 } else { 51917 self.addClass( className ); 51918 } 51919 } 51920 51921 // Toggle whole class name 51922 } else if ( value === undefined || type === "boolean" ) { 51923 className = getClass( this ); 51924 if ( className ) { 51925 51926 // Store className if set 51927 dataPriv.set( this, "__className__", className ); 51928 } 51929 51930 // If the element has a class name or if we're passed `false`, 51931 // then remove the whole classname (if there was one, the above saved it). 51932 // Otherwise bring back whatever was previously saved (if anything), 51933 // falling back to the empty string if nothing was stored. 51934 if ( this.setAttribute ) { 51935 this.setAttribute( "class", 51936 className || value === false ? 51937 "" : 51938 dataPriv.get( this, "__className__" ) || "" 51939 ); 51940 } 51941 } 51942 } ); 51943 }, 51944 51945 hasClass: function( selector ) { 51946 var className, elem, 51947 i = 0; 51948 51949 className = " " + selector + " "; 51950 while ( ( elem = this[ i++ ] ) ) { 51951 if ( elem.nodeType === 1 && 51952 ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { 51953 return true; 51954 } 51955 } 51956 51957 return false; 51958 } 51959} ); 51960 51961 51962 51963 51964var rreturn = /\r/g; 51965 51966jQuery.fn.extend( { 51967 val: function( value ) { 51968 var hooks, ret, valueIsFunction, 51969 elem = this[ 0 ]; 51970 51971 if ( !arguments.length ) { 51972 if ( elem ) { 51973 hooks = jQuery.valHooks[ elem.type ] || 51974 jQuery.valHooks[ elem.nodeName.toLowerCase() ]; 51975 51976 if ( hooks && 51977 "get" in hooks && 51978 ( ret = hooks.get( elem, "value" ) ) !== undefined 51979 ) { 51980 return ret; 51981 } 51982 51983 ret = elem.value; 51984 51985 // Handle most common string cases 51986 if ( typeof ret === "string" ) { 51987 return ret.replace( rreturn, "" ); 51988 } 51989 51990 // Handle cases where value is null/undef or number 51991 return ret == null ? "" : ret; 51992 } 51993 51994 return; 51995 } 51996 51997 valueIsFunction = isFunction( value ); 51998 51999 return this.each( function( i ) { 52000 var val; 52001 52002 if ( this.nodeType !== 1 ) { 52003 return; 52004 } 52005 52006 if ( valueIsFunction ) { 52007 val = value.call( this, i, jQuery( this ).val() ); 52008 } else { 52009 val = value; 52010 } 52011 52012 // Treat null/undefined as ""; convert numbers to string 52013 if ( val == null ) { 52014 val = ""; 52015 52016 } else if ( typeof val === "number" ) { 52017 val += ""; 52018 52019 } else if ( Array.isArray( val ) ) { 52020 val = jQuery.map( val, function( value ) { 52021 return value == null ? "" : value + ""; 52022 } ); 52023 } 52024 52025 hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; 52026 52027 // If set returns undefined, fall back to normal setting 52028 if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { 52029 this.value = val; 52030 } 52031 } ); 52032 } 52033} ); 52034 52035jQuery.extend( { 52036 valHooks: { 52037 option: { 52038 get: function( elem ) { 52039 52040 var val = jQuery.find.attr( elem, "value" ); 52041 return val != null ? 52042 val : 52043 52044 // Support: IE <=10 - 11 only 52045 // option.text throws exceptions (trac-14686, trac-14858) 52046 // Strip and collapse whitespace 52047 // https://html.spec.whatwg.org/#strip-and-collapse-whitespace 52048 stripAndCollapse( jQuery.text( elem ) ); 52049 } 52050 }, 52051 select: { 52052 get: function( elem ) { 52053 var value, option, i, 52054 options = elem.options, 52055 index = elem.selectedIndex, 52056 one = elem.type === "select-one", 52057 values = one ? null : [], 52058 max = one ? index + 1 : options.length; 52059 52060 if ( index < 0 ) { 52061 i = max; 52062 52063 } else { 52064 i = one ? index : 0; 52065 } 52066 52067 // Loop through all the selected options 52068 for ( ; i < max; i++ ) { 52069 option = options[ i ]; 52070 52071 // Support: IE <=9 only 52072 // IE8-9 doesn't update selected after form reset (trac-2551) 52073 if ( ( option.selected || i === index ) && 52074 52075 // Don't return options that are disabled or in a disabled optgroup 52076 !option.disabled && 52077 ( !option.parentNode.disabled || 52078 !nodeName( option.parentNode, "optgroup" ) ) ) { 52079 52080 // Get the specific value for the option 52081 value = jQuery( option ).val(); 52082 52083 // We don't need an array for one selects 52084 if ( one ) { 52085 return value; 52086 } 52087 52088 // Multi-Selects return an array 52089 values.push( value ); 52090 } 52091 } 52092 52093 return values; 52094 }, 52095 52096 set: function( elem, value ) { 52097 var optionSet, option, 52098 options = elem.options, 52099 values = jQuery.makeArray( value ), 52100 i = options.length; 52101 52102 while ( i-- ) { 52103 option = options[ i ]; 52104 52105 /* eslint-disable no-cond-assign */ 52106 52107 if ( option.selected = 52108 jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 52109 ) { 52110 optionSet = true; 52111 } 52112 52113 /* eslint-enable no-cond-assign */ 52114 } 52115 52116 // Force browsers to behave consistently when non-matching value is set 52117 if ( !optionSet ) { 52118 elem.selectedIndex = -1; 52119 } 52120 return values; 52121 } 52122 } 52123 } 52124} ); 52125 52126// Radios and checkboxes getter/setter 52127jQuery.each( [ "radio", "checkbox" ], function() { 52128 jQuery.valHooks[ this ] = { 52129 set: function( elem, value ) { 52130 if ( Array.isArray( value ) ) { 52131 return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); 52132 } 52133 } 52134 }; 52135 if ( !support.checkOn ) { 52136 jQuery.valHooks[ this ].get = function( elem ) { 52137 return elem.getAttribute( "value" ) === null ? "on" : elem.value; 52138 }; 52139 } 52140} ); 52141 52142 52143 52144 52145// Return jQuery for attributes-only inclusion 52146var location = window.location; 52147 52148var nonce = { guid: Date.now() }; 52149 52150var rquery = ( /\?/ ); 52151 52152 52153 52154// Cross-browser xml parsing 52155jQuery.parseXML = function( data ) { 52156 var xml, parserErrorElem; 52157 if ( !data || typeof data !== "string" ) { 52158 return null; 52159 } 52160 52161 // Support: IE 9 - 11 only 52162 // IE throws on parseFromString with invalid input. 52163 try { 52164 xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); 52165 } catch ( e ) {} 52166 52167 parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; 52168 if ( !xml || parserErrorElem ) { 52169 jQuery.error( "Invalid XML: " + ( 52170 parserErrorElem ? 52171 jQuery.map( parserErrorElem.childNodes, function( el ) { 52172 return el.textContent; 52173 } ).join( "\n" ) : 52174 data 52175 ) ); 52176 } 52177 return xml; 52178}; 52179 52180 52181var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, 52182 stopPropagationCallback = function( e ) { 52183 e.stopPropagation(); 52184 }; 52185 52186jQuery.extend( jQuery.event, { 52187 52188 trigger: function( event, data, elem, onlyHandlers ) { 52189 52190 var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, 52191 eventPath = [ elem || document ], 52192 type = hasOwn.call( event, "type" ) ? event.type : event, 52193 namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; 52194 52195 cur = lastElement = tmp = elem = elem || document; 52196 52197 // Don't do events on text and comment nodes 52198 if ( elem.nodeType === 3 || elem.nodeType === 8 ) { 52199 return; 52200 } 52201 52202 // focus/blur morphs to focusin/out; ensure we're not firing them right now 52203 if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { 52204 return; 52205 } 52206 52207 if ( type.indexOf( "." ) > -1 ) { 52208 52209 // Namespaced trigger; create a regexp to match event type in handle() 52210 namespaces = type.split( "." ); 52211 type = namespaces.shift(); 52212 namespaces.sort(); 52213 } 52214 ontype = type.indexOf( ":" ) < 0 && "on" + type; 52215 52216 // Caller can pass in a jQuery.Event object, Object, or just an event type string 52217 event = event[ jQuery.expando ] ? 52218 event : 52219 new jQuery.Event( type, typeof event === "object" && event ); 52220 52221 // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) 52222 event.isTrigger = onlyHandlers ? 2 : 3; 52223 event.namespace = namespaces.join( "." ); 52224 event.rnamespace = event.namespace ? 52225 new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : 52226 null; 52227 52228 // Clean up the event in case it is being reused 52229 event.result = undefined; 52230 if ( !event.target ) { 52231 event.target = elem; 52232 } 52233 52234 // Clone any incoming data and prepend the event, creating the handler arg list 52235 data = data == null ? 52236 [ event ] : 52237 jQuery.makeArray( data, [ event ] ); 52238 52239 // Allow special events to draw outside the lines 52240 special = jQuery.event.special[ type ] || {}; 52241 if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { 52242 return; 52243 } 52244 52245 // Determine event propagation path in advance, per W3C events spec (trac-9951) 52246 // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724) 52247 if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { 52248 52249 bubbleType = special.delegateType || type; 52250 if ( !rfocusMorph.test( bubbleType + type ) ) { 52251 cur = cur.parentNode; 52252 } 52253 for ( ; cur; cur = cur.parentNode ) { 52254 eventPath.push( cur ); 52255 tmp = cur; 52256 } 52257 52258 // Only add window if we got to document (e.g., not plain obj or detached DOM) 52259 if ( tmp === ( elem.ownerDocument || document ) ) { 52260 eventPath.push( tmp.defaultView || tmp.parentWindow || window ); 52261 } 52262 } 52263 52264 // Fire handlers on the event path 52265 i = 0; 52266 while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { 52267 lastElement = cur; 52268 event.type = i > 1 ? 52269 bubbleType : 52270 special.bindType || type; 52271 52272 // jQuery handler 52273 handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && 52274 dataPriv.get( cur, "handle" ); 52275 if ( handle ) { 52276 handle.apply( cur, data ); 52277 } 52278 52279 // Native handler 52280 handle = ontype && cur[ ontype ]; 52281 if ( handle && handle.apply && acceptData( cur ) ) { 52282 event.result = handle.apply( cur, data ); 52283 if ( event.result === false ) { 52284 event.preventDefault(); 52285 } 52286 } 52287 } 52288 event.type = type; 52289 52290 // If nobody prevented the default action, do it now 52291 if ( !onlyHandlers && !event.isDefaultPrevented() ) { 52292 52293 if ( ( !special._default || 52294 special._default.apply( eventPath.pop(), data ) === false ) && 52295 acceptData( elem ) ) { 52296 52297 // Call a native DOM method on the target with the same name as the event. 52298 // Don't do default actions on window, that's where global variables be (trac-6170) 52299 if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { 52300 52301 // Don't re-trigger an onFOO event when we call its FOO() method 52302 tmp = elem[ ontype ]; 52303 52304 if ( tmp ) { 52305 elem[ ontype ] = null; 52306 } 52307 52308 // Prevent re-triggering of the same event, since we already bubbled it above 52309 jQuery.event.triggered = type; 52310 52311 if ( event.isPropagationStopped() ) { 52312 lastElement.addEventListener( type, stopPropagationCallback ); 52313 } 52314 52315 elem[ type ](); 52316 52317 if ( event.isPropagationStopped() ) { 52318 lastElement.removeEventListener( type, stopPropagationCallback ); 52319 } 52320 52321 jQuery.event.triggered = undefined; 52322 52323 if ( tmp ) { 52324 elem[ ontype ] = tmp; 52325 } 52326 } 52327 } 52328 } 52329 52330 return event.result; 52331 }, 52332 52333 // Piggyback on a donor event to simulate a different one 52334 // Used only for `focus(in | out)` events 52335 simulate: function( type, elem, event ) { 52336 var e = jQuery.extend( 52337 new jQuery.Event(), 52338 event, 52339 { 52340 type: type, 52341 isSimulated: true 52342 } 52343 ); 52344 52345 jQuery.event.trigger( e, null, elem ); 52346 } 52347 52348} ); 52349 52350jQuery.fn.extend( { 52351 52352 trigger: function( type, data ) { 52353 return this.each( function() { 52354 jQuery.event.trigger( type, data, this ); 52355 } ); 52356 }, 52357 triggerHandler: function( type, data ) { 52358 var elem = this[ 0 ]; 52359 if ( elem ) { 52360 return jQuery.event.trigger( type, data, elem, true ); 52361 } 52362 } 52363} ); 52364 52365 52366var 52367 rbracket = /\[\]$/, 52368 rCRLF = /\r?\n/g, 52369 rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, 52370 rsubmittable = /^(?:input|select|textarea|keygen)/i; 52371 52372function buildParams( prefix, obj, traditional, add ) { 52373 var name; 52374 52375 if ( Array.isArray( obj ) ) { 52376 52377 // Serialize array item. 52378 jQuery.each( obj, function( i, v ) { 52379 if ( traditional || rbracket.test( prefix ) ) { 52380 52381 // Treat each array item as a scalar. 52382 add( prefix, v ); 52383 52384 } else { 52385 52386 // Item is non-scalar (array or object), encode its numeric index. 52387 buildParams( 52388 prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", 52389 v, 52390 traditional, 52391 add 52392 ); 52393 } 52394 } ); 52395 52396 } else if ( !traditional && toType( obj ) === "object" ) { 52397 52398 // Serialize object item. 52399 for ( name in obj ) { 52400 buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); 52401 } 52402 52403 } else { 52404 52405 // Serialize scalar item. 52406 add( prefix, obj ); 52407 } 52408} 52409 52410// Serialize an array of form elements or a set of 52411// key/values into a query string 52412jQuery.param = function( a, traditional ) { 52413 var prefix, 52414 s = [], 52415 add = function( key, valueOrFunction ) { 52416 52417 // If value is a function, invoke it and use its return value 52418 var value = isFunction( valueOrFunction ) ? 52419 valueOrFunction() : 52420 valueOrFunction; 52421 52422 s[ s.length ] = encodeURIComponent( key ) + "=" + 52423 encodeURIComponent( value == null ? "" : value ); 52424 }; 52425 52426 if ( a == null ) { 52427 return ""; 52428 } 52429 52430 // If an array was passed in, assume that it is an array of form elements. 52431 if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { 52432 52433 // Serialize the form elements 52434 jQuery.each( a, function() { 52435 add( this.name, this.value ); 52436 } ); 52437 52438 } else { 52439 52440 // If traditional, encode the "old" way (the way 1.3.2 or older 52441 // did it), otherwise encode params recursively. 52442 for ( prefix in a ) { 52443 buildParams( prefix, a[ prefix ], traditional, add ); 52444 } 52445 } 52446 52447 // Return the resulting serialization 52448 return s.join( "&" ); 52449}; 52450 52451jQuery.fn.extend( { 52452 serialize: function() { 52453 return jQuery.param( this.serializeArray() ); 52454 }, 52455 serializeArray: function() { 52456 return this.map( function() { 52457 52458 // Can add propHook for "elements" to filter or add form elements 52459 var elements = jQuery.prop( this, "elements" ); 52460 return elements ? jQuery.makeArray( elements ) : this; 52461 } ).filter( function() { 52462 var type = this.type; 52463 52464 // Use .is( ":disabled" ) so that fieldset[disabled] works 52465 return this.name && !jQuery( this ).is( ":disabled" ) && 52466 rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && 52467 ( this.checked || !rcheckableType.test( type ) ); 52468 } ).map( function( _i, elem ) { 52469 var val = jQuery( this ).val(); 52470 52471 if ( val == null ) { 52472 return null; 52473 } 52474 52475 if ( Array.isArray( val ) ) { 52476 return jQuery.map( val, function( val ) { 52477 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 52478 } ); 52479 } 52480 52481 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 52482 } ).get(); 52483 } 52484} ); 52485 52486 52487var 52488 r20 = /%20/g, 52489 rhash = /#.*$/, 52490 rantiCache = /([?&])_=[^&]*/, 52491 rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, 52492 52493 // trac-7653, trac-8125, trac-8152: local protocol detection 52494 rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, 52495 rnoContent = /^(?:GET|HEAD)$/, 52496 rprotocol = /^\/\//, 52497 52498 /* Prefilters 52499 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) 52500 * 2) These are called: 52501 * - BEFORE asking for a transport 52502 * - AFTER param serialization (s.data is a string if s.processData is true) 52503 * 3) key is the dataType 52504 * 4) the catchall symbol "*" can be used 52505 * 5) execution will start with transport dataType and THEN continue down to "*" if needed 52506 */ 52507 prefilters = {}, 52508 52509 /* Transports bindings 52510 * 1) key is the dataType 52511 * 2) the catchall symbol "*" can be used 52512 * 3) selection will start with transport dataType and THEN go to "*" if needed 52513 */ 52514 transports = {}, 52515 52516 // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression 52517 allTypes = "*/".concat( "*" ), 52518 52519 // Anchor tag for parsing the document origin 52520 originAnchor = document.createElement( "a" ); 52521 52522originAnchor.href = location.href; 52523 52524// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport 52525function addToPrefiltersOrTransports( structure ) { 52526 52527 // dataTypeExpression is optional and defaults to "*" 52528 return function( dataTypeExpression, func ) { 52529 52530 if ( typeof dataTypeExpression !== "string" ) { 52531 func = dataTypeExpression; 52532 dataTypeExpression = "*"; 52533 } 52534 52535 var dataType, 52536 i = 0, 52537 dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; 52538 52539 if ( isFunction( func ) ) { 52540 52541 // For each dataType in the dataTypeExpression 52542 while ( ( dataType = dataTypes[ i++ ] ) ) { 52543 52544 // Prepend if requested 52545 if ( dataType[ 0 ] === "+" ) { 52546 dataType = dataType.slice( 1 ) || "*"; 52547 ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); 52548 52549 // Otherwise append 52550 } else { 52551 ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); 52552 } 52553 } 52554 } 52555 }; 52556} 52557 52558// Base inspection function for prefilters and transports 52559function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { 52560 52561 var inspected = {}, 52562 seekingTransport = ( structure === transports ); 52563 52564 function inspect( dataType ) { 52565 var selected; 52566 inspected[ dataType ] = true; 52567 jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { 52568 var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); 52569 if ( typeof dataTypeOrTransport === "string" && 52570 !seekingTransport && !inspected[ dataTypeOrTransport ] ) { 52571 52572 options.dataTypes.unshift( dataTypeOrTransport ); 52573 inspect( dataTypeOrTransport ); 52574 return false; 52575 } else if ( seekingTransport ) { 52576 return !( selected = dataTypeOrTransport ); 52577 } 52578 } ); 52579 return selected; 52580 } 52581 52582 return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); 52583} 52584 52585// A special extend for ajax options 52586// that takes "flat" options (not to be deep extended) 52587// Fixes trac-9887 52588function ajaxExtend( target, src ) { 52589 var key, deep, 52590 flatOptions = jQuery.ajaxSettings.flatOptions || {}; 52591 52592 for ( key in src ) { 52593 if ( src[ key ] !== undefined ) { 52594 ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; 52595 } 52596 } 52597 if ( deep ) { 52598 jQuery.extend( true, target, deep ); 52599 } 52600 52601 return target; 52602} 52603 52604/* Handles responses to an ajax request: 52605 * - finds the right dataType (mediates between content-type and expected dataType) 52606 * - returns the corresponding response 52607 */ 52608function ajaxHandleResponses( s, jqXHR, responses ) { 52609 52610 var ct, type, finalDataType, firstDataType, 52611 contents = s.contents, 52612 dataTypes = s.dataTypes; 52613 52614 // Remove auto dataType and get content-type in the process 52615 while ( dataTypes[ 0 ] === "*" ) { 52616 dataTypes.shift(); 52617 if ( ct === undefined ) { 52618 ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); 52619 } 52620 } 52621 52622 // Check if we're dealing with a known content-type 52623 if ( ct ) { 52624 for ( type in contents ) { 52625 if ( contents[ type ] && contents[ type ].test( ct ) ) { 52626 dataTypes.unshift( type ); 52627 break; 52628 } 52629 } 52630 } 52631 52632 // Check to see if we have a response for the expected dataType 52633 if ( dataTypes[ 0 ] in responses ) { 52634 finalDataType = dataTypes[ 0 ]; 52635 } else { 52636 52637 // Try convertible dataTypes 52638 for ( type in responses ) { 52639 if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { 52640 finalDataType = type; 52641 break; 52642 } 52643 if ( !firstDataType ) { 52644 firstDataType = type; 52645 } 52646 } 52647 52648 // Or just use first one 52649 finalDataType = finalDataType || firstDataType; 52650 } 52651 52652 // If we found a dataType 52653 // We add the dataType to the list if needed 52654 // and return the corresponding response 52655 if ( finalDataType ) { 52656 if ( finalDataType !== dataTypes[ 0 ] ) { 52657 dataTypes.unshift( finalDataType ); 52658 } 52659 return responses[ finalDataType ]; 52660 } 52661} 52662 52663/* Chain conversions given the request and the original response 52664 * Also sets the responseXXX fields on the jqXHR instance 52665 */ 52666function ajaxConvert( s, response, jqXHR, isSuccess ) { 52667 var conv2, current, conv, tmp, prev, 52668 converters = {}, 52669 52670 // Work with a copy of dataTypes in case we need to modify it for conversion 52671 dataTypes = s.dataTypes.slice(); 52672 52673 // Create converters map with lowercased keys 52674 if ( dataTypes[ 1 ] ) { 52675 for ( conv in s.converters ) { 52676 converters[ conv.toLowerCase() ] = s.converters[ conv ]; 52677 } 52678 } 52679 52680 current = dataTypes.shift(); 52681 52682 // Convert to each sequential dataType 52683 while ( current ) { 52684 52685 if ( s.responseFields[ current ] ) { 52686 jqXHR[ s.responseFields[ current ] ] = response; 52687 } 52688 52689 // Apply the dataFilter if provided 52690 if ( !prev && isSuccess && s.dataFilter ) { 52691 response = s.dataFilter( response, s.dataType ); 52692 } 52693 52694 prev = current; 52695 current = dataTypes.shift(); 52696 52697 if ( current ) { 52698 52699 // There's only work to do if current dataType is non-auto 52700 if ( current === "*" ) { 52701 52702 current = prev; 52703 52704 // Convert response if prev dataType is non-auto and differs from current 52705 } else if ( prev !== "*" && prev !== current ) { 52706 52707 // Seek a direct converter 52708 conv = converters[ prev + " " + current ] || converters[ "* " + current ]; 52709 52710 // If none found, seek a pair 52711 if ( !conv ) { 52712 for ( conv2 in converters ) { 52713 52714 // If conv2 outputs current 52715 tmp = conv2.split( " " ); 52716 if ( tmp[ 1 ] === current ) { 52717 52718 // If prev can be converted to accepted input 52719 conv = converters[ prev + " " + tmp[ 0 ] ] || 52720 converters[ "* " + tmp[ 0 ] ]; 52721 if ( conv ) { 52722 52723 // Condense equivalence converters 52724 if ( conv === true ) { 52725 conv = converters[ conv2 ]; 52726 52727 // Otherwise, insert the intermediate dataType 52728 } else if ( converters[ conv2 ] !== true ) { 52729 current = tmp[ 0 ]; 52730 dataTypes.unshift( tmp[ 1 ] ); 52731 } 52732 break; 52733 } 52734 } 52735 } 52736 } 52737 52738 // Apply converter (if not an equivalence) 52739 if ( conv !== true ) { 52740 52741 // Unless errors are allowed to bubble, catch and return them 52742 if ( conv && s.throws ) { 52743 response = conv( response ); 52744 } else { 52745 try { 52746 response = conv( response ); 52747 } catch ( e ) { 52748 return { 52749 state: "parsererror", 52750 error: conv ? e : "No conversion from " + prev + " to " + current 52751 }; 52752 } 52753 } 52754 } 52755 } 52756 } 52757 } 52758 52759 return { state: "success", data: response }; 52760} 52761 52762jQuery.extend( { 52763 52764 // Counter for holding the number of active queries 52765 active: 0, 52766 52767 // Last-Modified header cache for next request 52768 lastModified: {}, 52769 etag: {}, 52770 52771 ajaxSettings: { 52772 url: location.href, 52773 type: "GET", 52774 isLocal: rlocalProtocol.test( location.protocol ), 52775 global: true, 52776 processData: true, 52777 async: true, 52778 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 52779 52780 /* 52781 timeout: 0, 52782 data: null, 52783 dataType: null, 52784 username: null, 52785 password: null, 52786 cache: null, 52787 throws: false, 52788 traditional: false, 52789 headers: {}, 52790 */ 52791 52792 accepts: { 52793 "*": allTypes, 52794 text: "text/plain", 52795 html: "text/html", 52796 xml: "application/xml, text/xml", 52797 json: "application/json, text/javascript" 52798 }, 52799 52800 contents: { 52801 xml: /\bxml\b/, 52802 html: /\bhtml/, 52803 json: /\bjson\b/ 52804 }, 52805 52806 responseFields: { 52807 xml: "responseXML", 52808 text: "responseText", 52809 json: "responseJSON" 52810 }, 52811 52812 // Data converters 52813 // Keys separate source (or catchall "*") and destination types with a single space 52814 converters: { 52815 52816 // Convert anything to text 52817 "* text": String, 52818 52819 // Text to html (true = no transformation) 52820 "text html": true, 52821 52822 // Evaluate text as a json expression 52823 "text json": JSON.parse, 52824 52825 // Parse text as xml 52826 "text xml": jQuery.parseXML 52827 }, 52828 52829 // For options that shouldn't be deep extended: 52830 // you can add your own custom options here if 52831 // and when you create one that shouldn't be 52832 // deep extended (see ajaxExtend) 52833 flatOptions: { 52834 url: true, 52835 context: true 52836 } 52837 }, 52838 52839 // Creates a full fledged settings object into target 52840 // with both ajaxSettings and settings fields. 52841 // If target is omitted, writes into ajaxSettings. 52842 ajaxSetup: function( target, settings ) { 52843 return settings ? 52844 52845 // Building a settings object 52846 ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : 52847 52848 // Extending ajaxSettings 52849 ajaxExtend( jQuery.ajaxSettings, target ); 52850 }, 52851 52852 ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), 52853 ajaxTransport: addToPrefiltersOrTransports( transports ), 52854 52855 // Main method 52856 ajax: function( url, options ) { 52857 52858 // If url is an object, simulate pre-1.5 signature 52859 if ( typeof url === "object" ) { 52860 options = url; 52861 url = undefined; 52862 } 52863 52864 // Force options to be an object 52865 options = options || {}; 52866 52867 var transport, 52868 52869 // URL without anti-cache param 52870 cacheURL, 52871 52872 // Response headers 52873 responseHeadersString, 52874 responseHeaders, 52875 52876 // timeout handle 52877 timeoutTimer, 52878 52879 // Url cleanup var 52880 urlAnchor, 52881 52882 // Request state (becomes false upon send and true upon completion) 52883 completed, 52884 52885 // To know if global events are to be dispatched 52886 fireGlobals, 52887 52888 // Loop variable 52889 i, 52890 52891 // uncached part of the url 52892 uncached, 52893 52894 // Create the final options object 52895 s = jQuery.ajaxSetup( {}, options ), 52896 52897 // Callbacks context 52898 callbackContext = s.context || s, 52899 52900 // Context for global events is callbackContext if it is a DOM node or jQuery collection 52901 globalEventContext = s.context && 52902 ( callbackContext.nodeType || callbackContext.jquery ) ? 52903 jQuery( callbackContext ) : 52904 jQuery.event, 52905 52906 // Deferreds 52907 deferred = jQuery.Deferred(), 52908 completeDeferred = jQuery.Callbacks( "once memory" ), 52909 52910 // Status-dependent callbacks 52911 statusCode = s.statusCode || {}, 52912 52913 // Headers (they are sent all at once) 52914 requestHeaders = {}, 52915 requestHeadersNames = {}, 52916 52917 // Default abort message 52918 strAbort = "canceled", 52919 52920 // Fake xhr 52921 jqXHR = { 52922 readyState: 0, 52923 52924 // Builds headers hashtable if needed 52925 getResponseHeader: function( key ) { 52926 var match; 52927 if ( completed ) { 52928 if ( !responseHeaders ) { 52929 responseHeaders = {}; 52930 while ( ( match = rheaders.exec( responseHeadersString ) ) ) { 52931 responseHeaders[ match[ 1 ].toLowerCase() + " " ] = 52932 ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) 52933 .concat( match[ 2 ] ); 52934 } 52935 } 52936 match = responseHeaders[ key.toLowerCase() + " " ]; 52937 } 52938 return match == null ? null : match.join( ", " ); 52939 }, 52940 52941 // Raw string 52942 getAllResponseHeaders: function() { 52943 return completed ? responseHeadersString : null; 52944 }, 52945 52946 // Caches the header 52947 setRequestHeader: function( name, value ) { 52948 if ( completed == null ) { 52949 name = requestHeadersNames[ name.toLowerCase() ] = 52950 requestHeadersNames[ name.toLowerCase() ] || name; 52951 requestHeaders[ name ] = value; 52952 } 52953 return this; 52954 }, 52955 52956 // Overrides response content-type header 52957 overrideMimeType: function( type ) { 52958 if ( completed == null ) { 52959 s.mimeType = type; 52960 } 52961 return this; 52962 }, 52963 52964 // Status-dependent callbacks 52965 statusCode: function( map ) { 52966 var code; 52967 if ( map ) { 52968 if ( completed ) { 52969 52970 // Execute the appropriate callbacks 52971 jqXHR.always( map[ jqXHR.status ] ); 52972 } else { 52973 52974 // Lazy-add the new callbacks in a way that preserves old ones 52975 for ( code in map ) { 52976 statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; 52977 } 52978 } 52979 } 52980 return this; 52981 }, 52982 52983 // Cancel the request 52984 abort: function( statusText ) { 52985 var finalText = statusText || strAbort; 52986 if ( transport ) { 52987 transport.abort( finalText ); 52988 } 52989 done( 0, finalText ); 52990 return this; 52991 } 52992 }; 52993 52994 // Attach deferreds 52995 deferred.promise( jqXHR ); 52996 52997 // Add protocol if not provided (prefilters might expect it) 52998 // Handle falsy url in the settings object (trac-10093: consistency with old signature) 52999 // We also use the url parameter if available 53000 s.url = ( ( url || s.url || location.href ) + "" ) 53001 .replace( rprotocol, location.protocol + "//" ); 53002 53003 // Alias method option to type as per ticket trac-12004 53004 s.type = options.method || options.type || s.method || s.type; 53005 53006 // Extract dataTypes list 53007 s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; 53008 53009 // A cross-domain request is in order when the origin doesn't match the current origin. 53010 if ( s.crossDomain == null ) { 53011 urlAnchor = document.createElement( "a" ); 53012 53013 // Support: IE <=8 - 11, Edge 12 - 15 53014 // IE throws exception on accessing the href property if url is malformed, 53015 // e.g. http://example.com:80x/ 53016 try { 53017 urlAnchor.href = s.url; 53018 53019 // Support: IE <=8 - 11 only 53020 // Anchor's host property isn't correctly set when s.url is relative 53021 urlAnchor.href = urlAnchor.href; 53022 s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== 53023 urlAnchor.protocol + "//" + urlAnchor.host; 53024 } catch ( e ) { 53025 53026 // If there is an error parsing the URL, assume it is crossDomain, 53027 // it can be rejected by the transport if it is invalid 53028 s.crossDomain = true; 53029 } 53030 } 53031 53032 // Convert data if not already a string 53033 if ( s.data && s.processData && typeof s.data !== "string" ) { 53034 s.data = jQuery.param( s.data, s.traditional ); 53035 } 53036 53037 // Apply prefilters 53038 inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); 53039 53040 // If request was aborted inside a prefilter, stop there 53041 if ( completed ) { 53042 return jqXHR; 53043 } 53044 53045 // We can fire global events as of now if asked to 53046 // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118) 53047 fireGlobals = jQuery.event && s.global; 53048 53049 // Watch for a new set of requests 53050 if ( fireGlobals && jQuery.active++ === 0 ) { 53051 jQuery.event.trigger( "ajaxStart" ); 53052 } 53053 53054 // Uppercase the type 53055 s.type = s.type.toUpperCase(); 53056 53057 // Determine if request has content 53058 s.hasContent = !rnoContent.test( s.type ); 53059 53060 // Save the URL in case we're toying with the If-Modified-Since 53061 // and/or If-None-Match header later on 53062 // Remove hash to simplify url manipulation 53063 cacheURL = s.url.replace( rhash, "" ); 53064 53065 // More options handling for requests with no content 53066 if ( !s.hasContent ) { 53067 53068 // Remember the hash so we can put it back 53069 uncached = s.url.slice( cacheURL.length ); 53070 53071 // If data is available and should be processed, append data to url 53072 if ( s.data && ( s.processData || typeof s.data === "string" ) ) { 53073 cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; 53074 53075 // trac-9682: remove data so that it's not used in an eventual retry 53076 delete s.data; 53077 } 53078 53079 // Add or update anti-cache param if needed 53080 if ( s.cache === false ) { 53081 cacheURL = cacheURL.replace( rantiCache, "$1" ); 53082 uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + 53083 uncached; 53084 } 53085 53086 // Put hash and anti-cache on the URL that will be requested (gh-1732) 53087 s.url = cacheURL + uncached; 53088 53089 // Change '%20' to '+' if this is encoded form body content (gh-2658) 53090 } else if ( s.data && s.processData && 53091 ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { 53092 s.data = s.data.replace( r20, "+" ); 53093 } 53094 53095 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 53096 if ( s.ifModified ) { 53097 if ( jQuery.lastModified[ cacheURL ] ) { 53098 jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); 53099 } 53100 if ( jQuery.etag[ cacheURL ] ) { 53101 jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); 53102 } 53103 } 53104 53105 // Set the correct header, if data is being sent 53106 if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { 53107 jqXHR.setRequestHeader( "Content-Type", s.contentType ); 53108 } 53109 53110 // Set the Accepts header for the server, depending on the dataType 53111 jqXHR.setRequestHeader( 53112 "Accept", 53113 s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? 53114 s.accepts[ s.dataTypes[ 0 ] ] + 53115 ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : 53116 s.accepts[ "*" ] 53117 ); 53118 53119 // Check for headers option 53120 for ( i in s.headers ) { 53121 jqXHR.setRequestHeader( i, s.headers[ i ] ); 53122 } 53123 53124 // Allow custom headers/mimetypes and early abort 53125 if ( s.beforeSend && 53126 ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { 53127 53128 // Abort if not done already and return 53129 return jqXHR.abort(); 53130 } 53131 53132 // Aborting is no longer a cancellation 53133 strAbort = "abort"; 53134 53135 // Install callbacks on deferreds 53136 completeDeferred.add( s.complete ); 53137 jqXHR.done( s.success ); 53138 jqXHR.fail( s.error ); 53139 53140 // Get transport 53141 transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); 53142 53143 // If no transport, we auto-abort 53144 if ( !transport ) { 53145 done( -1, "No Transport" ); 53146 } else { 53147 jqXHR.readyState = 1; 53148 53149 // Send global event 53150 if ( fireGlobals ) { 53151 globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); 53152 } 53153 53154 // If request was aborted inside ajaxSend, stop there 53155 if ( completed ) { 53156 return jqXHR; 53157 } 53158 53159 // Timeout 53160 if ( s.async && s.timeout > 0 ) { 53161 timeoutTimer = window.setTimeout( function() { 53162 jqXHR.abort( "timeout" ); 53163 }, s.timeout ); 53164 } 53165 53166 try { 53167 completed = false; 53168 transport.send( requestHeaders, done ); 53169 } catch ( e ) { 53170 53171 // Rethrow post-completion exceptions 53172 if ( completed ) { 53173 throw e; 53174 } 53175 53176 // Propagate others as results 53177 done( -1, e ); 53178 } 53179 } 53180 53181 // Callback for when everything is done 53182 function done( status, nativeStatusText, responses, headers ) { 53183 var isSuccess, success, error, response, modified, 53184 statusText = nativeStatusText; 53185 53186 // Ignore repeat invocations 53187 if ( completed ) { 53188 return; 53189 } 53190 53191 completed = true; 53192 53193 // Clear timeout if it exists 53194 if ( timeoutTimer ) { 53195 window.clearTimeout( timeoutTimer ); 53196 } 53197 53198 // Dereference transport for early garbage collection 53199 // (no matter how long the jqXHR object will be used) 53200 transport = undefined; 53201 53202 // Cache response headers 53203 responseHeadersString = headers || ""; 53204 53205 // Set readyState 53206 jqXHR.readyState = status > 0 ? 4 : 0; 53207 53208 // Determine if successful 53209 isSuccess = status >= 200 && status < 300 || status === 304; 53210 53211 // Get response data 53212 if ( responses ) { 53213 response = ajaxHandleResponses( s, jqXHR, responses ); 53214 } 53215 53216 // Use a noop converter for missing script but not if jsonp 53217 if ( !isSuccess && 53218 jQuery.inArray( "script", s.dataTypes ) > -1 && 53219 jQuery.inArray( "json", s.dataTypes ) < 0 ) { 53220 s.converters[ "text script" ] = function() {}; 53221 } 53222 53223 // Convert no matter what (that way responseXXX fields are always set) 53224 response = ajaxConvert( s, response, jqXHR, isSuccess ); 53225 53226 // If successful, handle type chaining 53227 if ( isSuccess ) { 53228 53229 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 53230 if ( s.ifModified ) { 53231 modified = jqXHR.getResponseHeader( "Last-Modified" ); 53232 if ( modified ) { 53233 jQuery.lastModified[ cacheURL ] = modified; 53234 } 53235 modified = jqXHR.getResponseHeader( "etag" ); 53236 if ( modified ) { 53237 jQuery.etag[ cacheURL ] = modified; 53238 } 53239 } 53240 53241 // if no content 53242 if ( status === 204 || s.type === "HEAD" ) { 53243 statusText = "nocontent"; 53244 53245 // if not modified 53246 } else if ( status === 304 ) { 53247 statusText = "notmodified"; 53248 53249 // If we have data, let's convert it 53250 } else { 53251 statusText = response.state; 53252 success = response.data; 53253 error = response.error; 53254 isSuccess = !error; 53255 } 53256 } else { 53257 53258 // Extract error from statusText and normalize for non-aborts 53259 error = statusText; 53260 if ( status || !statusText ) { 53261 statusText = "error"; 53262 if ( status < 0 ) { 53263 status = 0; 53264 } 53265 } 53266 } 53267 53268 // Set data for the fake xhr object 53269 jqXHR.status = status; 53270 jqXHR.statusText = ( nativeStatusText || statusText ) + ""; 53271 53272 // Success/Error 53273 if ( isSuccess ) { 53274 deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); 53275 } else { 53276 deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); 53277 } 53278 53279 // Status-dependent callbacks 53280 jqXHR.statusCode( statusCode ); 53281 statusCode = undefined; 53282 53283 if ( fireGlobals ) { 53284 globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", 53285 [ jqXHR, s, isSuccess ? success : error ] ); 53286 } 53287 53288 // Complete 53289 completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); 53290 53291 if ( fireGlobals ) { 53292 globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); 53293 53294 // Handle the global AJAX counter 53295 if ( !( --jQuery.active ) ) { 53296 jQuery.event.trigger( "ajaxStop" ); 53297 } 53298 } 53299 } 53300 53301 return jqXHR; 53302 }, 53303 53304 getJSON: function( url, data, callback ) { 53305 return jQuery.get( url, data, callback, "json" ); 53306 }, 53307 53308 getScript: function( url, callback ) { 53309 return jQuery.get( url, undefined, callback, "script" ); 53310 } 53311} ); 53312 53313jQuery.each( [ "get", "post" ], function( _i, method ) { 53314 jQuery[ method ] = function( url, data, callback, type ) { 53315 53316 // Shift arguments if data argument was omitted 53317 if ( isFunction( data ) ) { 53318 type = type || callback; 53319 callback = data; 53320 data = undefined; 53321 } 53322 53323 // The url can be an options object (which then must have .url) 53324 return jQuery.ajax( jQuery.extend( { 53325 url: url, 53326 type: method, 53327 dataType: type, 53328 data: data, 53329 success: callback 53330 }, jQuery.isPlainObject( url ) && url ) ); 53331 }; 53332} ); 53333 53334jQuery.ajaxPrefilter( function( s ) { 53335 var i; 53336 for ( i in s.headers ) { 53337 if ( i.toLowerCase() === "content-type" ) { 53338 s.contentType = s.headers[ i ] || ""; 53339 } 53340 } 53341} ); 53342 53343 53344jQuery._evalUrl = function( url, options, doc ) { 53345 return jQuery.ajax( { 53346 url: url, 53347 53348 // Make this explicit, since user can override this through ajaxSetup (trac-11264) 53349 type: "GET", 53350 dataType: "script", 53351 cache: true, 53352 async: false, 53353 global: false, 53354 53355 // Only evaluate the response if it is successful (gh-4126) 53356 // dataFilter is not invoked for failure responses, so using it instead 53357 // of the default converter is kludgy but it works. 53358 converters: { 53359 "text script": function() {} 53360 }, 53361 dataFilter: function( response ) { 53362 jQuery.globalEval( response, options, doc ); 53363 } 53364 } ); 53365}; 53366 53367 53368jQuery.fn.extend( { 53369 wrapAll: function( html ) { 53370 var wrap; 53371 53372 if ( this[ 0 ] ) { 53373 if ( isFunction( html ) ) { 53374 html = html.call( this[ 0 ] ); 53375 } 53376 53377 // The elements to wrap the target around 53378 wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); 53379 53380 if ( this[ 0 ].parentNode ) { 53381 wrap.insertBefore( this[ 0 ] ); 53382 } 53383 53384 wrap.map( function() { 53385 var elem = this; 53386 53387 while ( elem.firstElementChild ) { 53388 elem = elem.firstElementChild; 53389 } 53390 53391 return elem; 53392 } ).append( this ); 53393 } 53394 53395 return this; 53396 }, 53397 53398 wrapInner: function( html ) { 53399 if ( isFunction( html ) ) { 53400 return this.each( function( i ) { 53401 jQuery( this ).wrapInner( html.call( this, i ) ); 53402 } ); 53403 } 53404 53405 return this.each( function() { 53406 var self = jQuery( this ), 53407 contents = self.contents(); 53408 53409 if ( contents.length ) { 53410 contents.wrapAll( html ); 53411 53412 } else { 53413 self.append( html ); 53414 } 53415 } ); 53416 }, 53417 53418 wrap: function( html ) { 53419 var htmlIsFunction = isFunction( html ); 53420 53421 return this.each( function( i ) { 53422 jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); 53423 } ); 53424 }, 53425 53426 unwrap: function( selector ) { 53427 this.parent( selector ).not( "body" ).each( function() { 53428 jQuery( this ).replaceWith( this.childNodes ); 53429 } ); 53430 return this; 53431 } 53432} ); 53433 53434 53435jQuery.expr.pseudos.hidden = function( elem ) { 53436 return !jQuery.expr.pseudos.visible( elem ); 53437}; 53438jQuery.expr.pseudos.visible = function( elem ) { 53439 return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); 53440}; 53441 53442 53443 53444 53445jQuery.ajaxSettings.xhr = function() { 53446 try { 53447 return new window.XMLHttpRequest(); 53448 } catch ( e ) {} 53449}; 53450 53451var xhrSuccessStatus = { 53452 53453 // File protocol always yields status code 0, assume 200 53454 0: 200, 53455 53456 // Support: IE <=9 only 53457 // trac-1450: sometimes IE returns 1223 when it should be 204 53458 1223: 204 53459 }, 53460 xhrSupported = jQuery.ajaxSettings.xhr(); 53461 53462support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); 53463support.ajax = xhrSupported = !!xhrSupported; 53464 53465jQuery.ajaxTransport( function( options ) { 53466 var callback, errorCallback; 53467 53468 // Cross domain only allowed if supported through XMLHttpRequest 53469 if ( support.cors || xhrSupported && !options.crossDomain ) { 53470 return { 53471 send: function( headers, complete ) { 53472 var i, 53473 xhr = options.xhr(); 53474 53475 xhr.open( 53476 options.type, 53477 options.url, 53478 options.async, 53479 options.username, 53480 options.password 53481 ); 53482 53483 // Apply custom fields if provided 53484 if ( options.xhrFields ) { 53485 for ( i in options.xhrFields ) { 53486 xhr[ i ] = options.xhrFields[ i ]; 53487 } 53488 } 53489 53490 // Override mime type if needed 53491 if ( options.mimeType && xhr.overrideMimeType ) { 53492 xhr.overrideMimeType( options.mimeType ); 53493 } 53494 53495 // X-Requested-With header 53496 // For cross-domain requests, seeing as conditions for a preflight are 53497 // akin to a jigsaw puzzle, we simply never set it to be sure. 53498 // (it can always be set on a per-request basis or even using ajaxSetup) 53499 // For same-domain requests, won't change header if already provided. 53500 if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { 53501 headers[ "X-Requested-With" ] = "XMLHttpRequest"; 53502 } 53503 53504 // Set headers 53505 for ( i in headers ) { 53506 xhr.setRequestHeader( i, headers[ i ] ); 53507 } 53508 53509 // Callback 53510 callback = function( type ) { 53511 return function() { 53512 if ( callback ) { 53513 callback = errorCallback = xhr.onload = 53514 xhr.onerror = xhr.onabort = xhr.ontimeout = 53515 xhr.onreadystatechange = null; 53516 53517 if ( type === "abort" ) { 53518 xhr.abort(); 53519 } else if ( type === "error" ) { 53520 53521 // Support: IE <=9 only 53522 // On a manual native abort, IE9 throws 53523 // errors on any property access that is not readyState 53524 if ( typeof xhr.status !== "number" ) { 53525 complete( 0, "error" ); 53526 } else { 53527 complete( 53528 53529 // File: protocol always yields status 0; see trac-8605, trac-14207 53530 xhr.status, 53531 xhr.statusText 53532 ); 53533 } 53534 } else { 53535 complete( 53536 xhrSuccessStatus[ xhr.status ] || xhr.status, 53537 xhr.statusText, 53538 53539 // Support: IE <=9 only 53540 // IE9 has no XHR2 but throws on binary (trac-11426) 53541 // For XHR2 non-text, let the caller handle it (gh-2498) 53542 ( xhr.responseType || "text" ) !== "text" || 53543 typeof xhr.responseText !== "string" ? 53544 { binary: xhr.response } : 53545 { text: xhr.responseText }, 53546 xhr.getAllResponseHeaders() 53547 ); 53548 } 53549 } 53550 }; 53551 }; 53552 53553 // Listen to events 53554 xhr.onload = callback(); 53555 errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); 53556 53557 // Support: IE 9 only 53558 // Use onreadystatechange to replace onabort 53559 // to handle uncaught aborts 53560 if ( xhr.onabort !== undefined ) { 53561 xhr.onabort = errorCallback; 53562 } else { 53563 xhr.onreadystatechange = function() { 53564 53565 // Check readyState before timeout as it changes 53566 if ( xhr.readyState === 4 ) { 53567 53568 // Allow onerror to be called first, 53569 // but that will not handle a native abort 53570 // Also, save errorCallback to a variable 53571 // as xhr.onerror cannot be accessed 53572 window.setTimeout( function() { 53573 if ( callback ) { 53574 errorCallback(); 53575 } 53576 } ); 53577 } 53578 }; 53579 } 53580 53581 // Create the abort callback 53582 callback = callback( "abort" ); 53583 53584 try { 53585 53586 // Do send the request (this may raise an exception) 53587 xhr.send( options.hasContent && options.data || null ); 53588 } catch ( e ) { 53589 53590 // trac-14683: Only rethrow if this hasn't been notified as an error yet 53591 if ( callback ) { 53592 throw e; 53593 } 53594 } 53595 }, 53596 53597 abort: function() { 53598 if ( callback ) { 53599 callback(); 53600 } 53601 } 53602 }; 53603 } 53604} ); 53605 53606 53607 53608 53609// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) 53610jQuery.ajaxPrefilter( function( s ) { 53611 if ( s.crossDomain ) { 53612 s.contents.script = false; 53613 } 53614} ); 53615 53616// Install script dataType 53617jQuery.ajaxSetup( { 53618 accepts: { 53619 script: "text/javascript, application/javascript, " + 53620 "application/ecmascript, application/x-ecmascript" 53621 }, 53622 contents: { 53623 script: /\b(?:java|ecma)script\b/ 53624 }, 53625 converters: { 53626 "text script": function( text ) { 53627 jQuery.globalEval( text ); 53628 return text; 53629 } 53630 } 53631} ); 53632 53633// Handle cache's special case and crossDomain 53634jQuery.ajaxPrefilter( "script", function( s ) { 53635 if ( s.cache === undefined ) { 53636 s.cache = false; 53637 } 53638 if ( s.crossDomain ) { 53639 s.type = "GET"; 53640 } 53641} ); 53642 53643// Bind script tag hack transport 53644jQuery.ajaxTransport( "script", function( s ) { 53645 53646 // This transport only deals with cross domain or forced-by-attrs requests 53647 if ( s.crossDomain || s.scriptAttrs ) { 53648 var script, callback; 53649 return { 53650 send: function( _, complete ) { 53651 script = jQuery( "<script>" ) 53652 .attr( s.scriptAttrs || {} ) 53653 .prop( { charset: s.scriptCharset, src: s.url } ) 53654 .on( "load error", callback = function( evt ) { 53655 script.remove(); 53656 callback = null; 53657 if ( evt ) { 53658 complete( evt.type === "error" ? 404 : 200, evt.type ); 53659 } 53660 } ); 53661 53662 // Use native DOM manipulation to avoid our domManip AJAX trickery 53663 document.head.appendChild( script[ 0 ] ); 53664 }, 53665 abort: function() { 53666 if ( callback ) { 53667 callback(); 53668 } 53669 } 53670 }; 53671 } 53672} ); 53673 53674 53675 53676 53677var oldCallbacks = [], 53678 rjsonp = /(=)\?(?=&|$)|\?\?/; 53679 53680// Default jsonp settings 53681jQuery.ajaxSetup( { 53682 jsonp: "callback", 53683 jsonpCallback: function() { 53684 var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) ); 53685 this[ callback ] = true; 53686 return callback; 53687 } 53688} ); 53689 53690// Detect, normalize options and install callbacks for jsonp requests 53691jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { 53692 53693 var callbackName, overwritten, responseContainer, 53694 jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? 53695 "url" : 53696 typeof s.data === "string" && 53697 ( s.contentType || "" ) 53698 .indexOf( "application/x-www-form-urlencoded" ) === 0 && 53699 rjsonp.test( s.data ) && "data" 53700 ); 53701 53702 // Handle iff the expected data type is "jsonp" or we have a parameter to set 53703 if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { 53704 53705 // Get callback name, remembering preexisting value associated with it 53706 callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ? 53707 s.jsonpCallback() : 53708 s.jsonpCallback; 53709 53710 // Insert callback into url or form data 53711 if ( jsonProp ) { 53712 s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); 53713 } else if ( s.jsonp !== false ) { 53714 s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; 53715 } 53716 53717 // Use data converter to retrieve json after script execution 53718 s.converters[ "script json" ] = function() { 53719 if ( !responseContainer ) { 53720 jQuery.error( callbackName + " was not called" ); 53721 } 53722 return responseContainer[ 0 ]; 53723 }; 53724 53725 // Force json dataType 53726 s.dataTypes[ 0 ] = "json"; 53727 53728 // Install callback 53729 overwritten = window[ callbackName ]; 53730 window[ callbackName ] = function() { 53731 responseContainer = arguments; 53732 }; 53733 53734 // Clean-up function (fires after converters) 53735 jqXHR.always( function() { 53736 53737 // If previous value didn't exist - remove it 53738 if ( overwritten === undefined ) { 53739 jQuery( window ).removeProp( callbackName ); 53740 53741 // Otherwise restore preexisting value 53742 } else { 53743 window[ callbackName ] = overwritten; 53744 } 53745 53746 // Save back as free 53747 if ( s[ callbackName ] ) { 53748 53749 // Make sure that re-using the options doesn't screw things around 53750 s.jsonpCallback = originalSettings.jsonpCallback; 53751 53752 // Save the callback name for future use 53753 oldCallbacks.push( callbackName ); 53754 } 53755 53756 // Call if it was a function and we have a response 53757 if ( responseContainer && isFunction( overwritten ) ) { 53758 overwritten( responseContainer[ 0 ] ); 53759 } 53760 53761 responseContainer = overwritten = undefined; 53762 } ); 53763 53764 // Delegate to script 53765 return "script"; 53766 } 53767} ); 53768 53769 53770 53771 53772// Support: Safari 8 only 53773// In Safari 8 documents created via document.implementation.createHTMLDocument 53774// collapse sibling forms: the second one becomes a child of the first one. 53775// Because of that, this security measure has to be disabled in Safari 8. 53776// https://bugs.webkit.org/show_bug.cgi?id=137337 53777support.createHTMLDocument = ( function() { 53778 var body = document.implementation.createHTMLDocument( "" ).body; 53779 body.innerHTML = "<form></form><form></form>"; 53780 return body.childNodes.length === 2; 53781} )(); 53782 53783 53784// Argument "data" should be string of html 53785// context (optional): If specified, the fragment will be created in this context, 53786// defaults to document 53787// keepScripts (optional): If true, will include scripts passed in the html string 53788jQuery.parseHTML = function( data, context, keepScripts ) { 53789 if ( typeof data !== "string" ) { 53790 return []; 53791 } 53792 if ( typeof context === "boolean" ) { 53793 keepScripts = context; 53794 context = false; 53795 } 53796 53797 var base, parsed, scripts; 53798 53799 if ( !context ) { 53800 53801 // Stop scripts or inline event handlers from being executed immediately 53802 // by using document.implementation 53803 if ( support.createHTMLDocument ) { 53804 context = document.implementation.createHTMLDocument( "" ); 53805 53806 // Set the base href for the created document 53807 // so any parsed elements with URLs 53808 // are based on the document's URL (gh-2965) 53809 base = context.createElement( "base" ); 53810 base.href = document.location.href; 53811 context.head.appendChild( base ); 53812 } else { 53813 context = document; 53814 } 53815 } 53816 53817 parsed = rsingleTag.exec( data ); 53818 scripts = !keepScripts && []; 53819 53820 // Single tag 53821 if ( parsed ) { 53822 return [ context.createElement( parsed[ 1 ] ) ]; 53823 } 53824 53825 parsed = buildFragment( [ data ], context, scripts ); 53826 53827 if ( scripts && scripts.length ) { 53828 jQuery( scripts ).remove(); 53829 } 53830 53831 return jQuery.merge( [], parsed.childNodes ); 53832}; 53833 53834 53835/** 53836 * Load a url into a page 53837 */ 53838jQuery.fn.load = function( url, params, callback ) { 53839 var selector, type, response, 53840 self = this, 53841 off = url.indexOf( " " ); 53842 53843 if ( off > -1 ) { 53844 selector = stripAndCollapse( url.slice( off ) ); 53845 url = url.slice( 0, off ); 53846 } 53847 53848 // If it's a function 53849 if ( isFunction( params ) ) { 53850 53851 // We assume that it's the callback 53852 callback = params; 53853 params = undefined; 53854 53855 // Otherwise, build a param string 53856 } else if ( params && typeof params === "object" ) { 53857 type = "POST"; 53858 } 53859 53860 // If we have elements to modify, make the request 53861 if ( self.length > 0 ) { 53862 jQuery.ajax( { 53863 url: url, 53864 53865 // If "type" variable is undefined, then "GET" method will be used. 53866 // Make value of this field explicit since 53867 // user can override it through ajaxSetup method 53868 type: type || "GET", 53869 dataType: "html", 53870 data: params 53871 } ).done( function( responseText ) { 53872 53873 // Save response for use in complete callback 53874 response = arguments; 53875 53876 self.html( selector ? 53877 53878 // If a selector was specified, locate the right elements in a dummy div 53879 // Exclude scripts to avoid IE 'Permission Denied' errors 53880 jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : 53881 53882 // Otherwise use the full result 53883 responseText ); 53884 53885 // If the request succeeds, this function gets "data", "status", "jqXHR" 53886 // but they are ignored because response was set above. 53887 // If it fails, this function gets "jqXHR", "status", "error" 53888 } ).always( callback && function( jqXHR, status ) { 53889 self.each( function() { 53890 callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); 53891 } ); 53892 } ); 53893 } 53894 53895 return this; 53896}; 53897 53898 53899 53900 53901jQuery.expr.pseudos.animated = function( elem ) { 53902 return jQuery.grep( jQuery.timers, function( fn ) { 53903 return elem === fn.elem; 53904 } ).length; 53905}; 53906 53907 53908 53909 53910jQuery.offset = { 53911 setOffset: function( elem, options, i ) { 53912 var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, 53913 position = jQuery.css( elem, "position" ), 53914 curElem = jQuery( elem ), 53915 props = {}; 53916 53917 // Set position first, in-case top/left are set even on static elem 53918 if ( position === "static" ) { 53919 elem.style.position = "relative"; 53920 } 53921 53922 curOffset = curElem.offset(); 53923 curCSSTop = jQuery.css( elem, "top" ); 53924 curCSSLeft = jQuery.css( elem, "left" ); 53925 calculatePosition = ( position === "absolute" || position === "fixed" ) && 53926 ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1; 53927 53928 // Need to be able to calculate position if either 53929 // top or left is auto and position is either absolute or fixed 53930 if ( calculatePosition ) { 53931 curPosition = curElem.position(); 53932 curTop = curPosition.top; 53933 curLeft = curPosition.left; 53934 53935 } else { 53936 curTop = parseFloat( curCSSTop ) || 0; 53937 curLeft = parseFloat( curCSSLeft ) || 0; 53938 } 53939 53940 if ( isFunction( options ) ) { 53941 53942 // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) 53943 options = options.call( elem, i, jQuery.extend( {}, curOffset ) ); 53944 } 53945 53946 if ( options.top != null ) { 53947 props.top = ( options.top - curOffset.top ) + curTop; 53948 } 53949 if ( options.left != null ) { 53950 props.left = ( options.left - curOffset.left ) + curLeft; 53951 } 53952 53953 if ( "using" in options ) { 53954 options.using.call( elem, props ); 53955 53956 } else { 53957 curElem.css( props ); 53958 } 53959 } 53960}; 53961 53962jQuery.fn.extend( { 53963 53964 // offset() relates an element's border box to the document origin 53965 offset: function( options ) { 53966 53967 // Preserve chaining for setter 53968 if ( arguments.length ) { 53969 return options === undefined ? 53970 this : 53971 this.each( function( i ) { 53972 jQuery.offset.setOffset( this, options, i ); 53973 } ); 53974 } 53975 53976 var rect, win, 53977 elem = this[ 0 ]; 53978 53979 if ( !elem ) { 53980 return; 53981 } 53982 53983 // Return zeros for disconnected and hidden (display: none) elements (gh-2310) 53984 // Support: IE <=11 only 53985 // Running getBoundingClientRect on a 53986 // disconnected node in IE throws an error 53987 if ( !elem.getClientRects().length ) { 53988 return { top: 0, left: 0 }; 53989 } 53990 53991 // Get document-relative position by adding viewport scroll to viewport-relative gBCR 53992 rect = elem.getBoundingClientRect(); 53993 win = elem.ownerDocument.defaultView; 53994 return { 53995 top: rect.top + win.pageYOffset, 53996 left: rect.left + win.pageXOffset 53997 }; 53998 }, 53999 54000 // position() relates an element's margin box to its offset parent's padding box 54001 // This corresponds to the behavior of CSS absolute positioning 54002 position: function() { 54003 if ( !this[ 0 ] ) { 54004 return; 54005 } 54006 54007 var offsetParent, offset, doc, 54008 elem = this[ 0 ], 54009 parentOffset = { top: 0, left: 0 }; 54010 54011 // position:fixed elements are offset from the viewport, which itself always has zero offset 54012 if ( jQuery.css( elem, "position" ) === "fixed" ) { 54013 54014 // Assume position:fixed implies availability of getBoundingClientRect 54015 offset = elem.getBoundingClientRect(); 54016 54017 } else { 54018 offset = this.offset(); 54019 54020 // Account for the *real* offset parent, which can be the document or its root element 54021 // when a statically positioned element is identified 54022 doc = elem.ownerDocument; 54023 offsetParent = elem.offsetParent || doc.documentElement; 54024 while ( offsetParent && 54025 ( offsetParent === doc.body || offsetParent === doc.documentElement ) && 54026 jQuery.css( offsetParent, "position" ) === "static" ) { 54027 54028 offsetParent = offsetParent.parentNode; 54029 } 54030 if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) { 54031 54032 // Incorporate borders into its offset, since they are outside its content origin 54033 parentOffset = jQuery( offsetParent ).offset(); 54034 parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true ); 54035 parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true ); 54036 } 54037 } 54038 54039 // Subtract parent offsets and element margins 54040 return { 54041 top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), 54042 left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) 54043 }; 54044 }, 54045 54046 // This method will return documentElement in the following cases: 54047 // 1) For the element inside the iframe without offsetParent, this method will return 54048 // documentElement of the parent window 54049 // 2) For the hidden or detached element 54050 // 3) For body or html element, i.e. in case of the html node - it will return itself 54051 // 54052 // but those exceptions were never presented as a real life use-cases 54053 // and might be considered as more preferable results. 54054 // 54055 // This logic, however, is not guaranteed and can change at any point in the future 54056 offsetParent: function() { 54057 return this.map( function() { 54058 var offsetParent = this.offsetParent; 54059 54060 while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) { 54061 offsetParent = offsetParent.offsetParent; 54062 } 54063 54064 return offsetParent || documentElement; 54065 } ); 54066 } 54067} ); 54068 54069// Create scrollLeft and scrollTop methods 54070jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { 54071 var top = "pageYOffset" === prop; 54072 54073 jQuery.fn[ method ] = function( val ) { 54074 return access( this, function( elem, method, val ) { 54075 54076 // Coalesce documents and windows 54077 var win; 54078 if ( isWindow( elem ) ) { 54079 win = elem; 54080 } else if ( elem.nodeType === 9 ) { 54081 win = elem.defaultView; 54082 } 54083 54084 if ( val === undefined ) { 54085 return win ? win[ prop ] : elem[ method ]; 54086 } 54087 54088 if ( win ) { 54089 win.scrollTo( 54090 !top ? val : win.pageXOffset, 54091 top ? val : win.pageYOffset 54092 ); 54093 54094 } else { 54095 elem[ method ] = val; 54096 } 54097 }, method, val, arguments.length ); 54098 }; 54099} ); 54100 54101// Support: Safari <=7 - 9.1, Chrome <=37 - 49 54102// Add the top/left cssHooks using jQuery.fn.position 54103// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 54104// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 54105// getComputedStyle returns percent when specified for top/left/bottom/right; 54106// rather than make the css module depend on the offset module, just check for it here 54107jQuery.each( [ "top", "left" ], function( _i, prop ) { 54108 jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, 54109 function( elem, computed ) { 54110 if ( computed ) { 54111 computed = curCSS( elem, prop ); 54112 54113 // If curCSS returns percentage, fallback to offset 54114 return rnumnonpx.test( computed ) ? 54115 jQuery( elem ).position()[ prop ] + "px" : 54116 computed; 54117 } 54118 } 54119 ); 54120} ); 54121 54122 54123// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods 54124jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { 54125 jQuery.each( { 54126 padding: "inner" + name, 54127 content: type, 54128 "": "outer" + name 54129 }, function( defaultExtra, funcName ) { 54130 54131 // Margin is only for outerHeight, outerWidth 54132 jQuery.fn[ funcName ] = function( margin, value ) { 54133 var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), 54134 extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); 54135 54136 return access( this, function( elem, type, value ) { 54137 var doc; 54138 54139 if ( isWindow( elem ) ) { 54140 54141 // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729) 54142 return funcName.indexOf( "outer" ) === 0 ? 54143 elem[ "inner" + name ] : 54144 elem.document.documentElement[ "client" + name ]; 54145 } 54146 54147 // Get document width or height 54148 if ( elem.nodeType === 9 ) { 54149 doc = elem.documentElement; 54150 54151 // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], 54152 // whichever is greatest 54153 return Math.max( 54154 elem.body[ "scroll" + name ], doc[ "scroll" + name ], 54155 elem.body[ "offset" + name ], doc[ "offset" + name ], 54156 doc[ "client" + name ] 54157 ); 54158 } 54159 54160 return value === undefined ? 54161 54162 // Get width or height on the element, requesting but not forcing parseFloat 54163 jQuery.css( elem, type, extra ) : 54164 54165 // Set width or height on the element 54166 jQuery.style( elem, type, value, extra ); 54167 }, type, chainable ? margin : undefined, chainable ); 54168 }; 54169 } ); 54170} ); 54171 54172 54173jQuery.each( [ 54174 "ajaxStart", 54175 "ajaxStop", 54176 "ajaxComplete", 54177 "ajaxError", 54178 "ajaxSuccess", 54179 "ajaxSend" 54180], function( _i, type ) { 54181 jQuery.fn[ type ] = function( fn ) { 54182 return this.on( type, fn ); 54183 }; 54184} ); 54185 54186 54187 54188 54189jQuery.fn.extend( { 54190 54191 bind: function( types, data, fn ) { 54192 return this.on( types, null, data, fn ); 54193 }, 54194 unbind: function( types, fn ) { 54195 return this.off( types, null, fn ); 54196 }, 54197 54198 delegate: function( selector, types, data, fn ) { 54199 return this.on( types, selector, data, fn ); 54200 }, 54201 undelegate: function( selector, types, fn ) { 54202 54203 // ( namespace ) or ( selector, types [, fn] ) 54204 return arguments.length === 1 ? 54205 this.off( selector, "**" ) : 54206 this.off( types, selector || "**", fn ); 54207 }, 54208 54209 hover: function( fnOver, fnOut ) { 54210 return this 54211 .on( "mouseenter", fnOver ) 54212 .on( "mouseleave", fnOut || fnOver ); 54213 } 54214} ); 54215 54216jQuery.each( 54217 ( "blur focus focusin focusout resize scroll click dblclick " + 54218 "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 54219 "change select submit keydown keypress keyup contextmenu" ).split( " " ), 54220 function( _i, name ) { 54221 54222 // Handle event binding 54223 jQuery.fn[ name ] = function( data, fn ) { 54224 return arguments.length > 0 ? 54225 this.on( name, null, data, fn ) : 54226 this.trigger( name ); 54227 }; 54228 } 54229); 54230 54231 54232 54233 54234// Support: Android <=4.0 only 54235// Make sure we trim BOM and NBSP 54236// Require that the "whitespace run" starts from a non-whitespace 54237// to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position. 54238var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; 54239 54240// Bind a function to a context, optionally partially applying any 54241// arguments. 54242// jQuery.proxy is deprecated to promote standards (specifically Function#bind) 54243// However, it is not slated for removal any time soon 54244jQuery.proxy = function( fn, context ) { 54245 var tmp, args, proxy; 54246 54247 if ( typeof context === "string" ) { 54248 tmp = fn[ context ]; 54249 context = fn; 54250 fn = tmp; 54251 } 54252 54253 // Quick check to determine if target is callable, in the spec 54254 // this throws a TypeError, but we will just return undefined. 54255 if ( !isFunction( fn ) ) { 54256 return undefined; 54257 } 54258 54259 // Simulated bind 54260 args = slice.call( arguments, 2 ); 54261 proxy = function() { 54262 return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); 54263 }; 54264 54265 // Set the guid of unique handler to the same of original handler, so it can be removed 54266 proxy.guid = fn.guid = fn.guid || jQuery.guid++; 54267 54268 return proxy; 54269}; 54270 54271jQuery.holdReady = function( hold ) { 54272 if ( hold ) { 54273 jQuery.readyWait++; 54274 } else { 54275 jQuery.ready( true ); 54276 } 54277}; 54278jQuery.isArray = Array.isArray; 54279jQuery.parseJSON = JSON.parse; 54280jQuery.nodeName = nodeName; 54281jQuery.isFunction = isFunction; 54282jQuery.isWindow = isWindow; 54283jQuery.camelCase = camelCase; 54284jQuery.type = toType; 54285 54286jQuery.now = Date.now; 54287 54288jQuery.isNumeric = function( obj ) { 54289 54290 // As of jQuery 3.0, isNumeric is limited to 54291 // strings and numbers (primitives or objects) 54292 // that can be coerced to finite numbers (gh-2662) 54293 var type = jQuery.type( obj ); 54294 return ( type === "number" || type === "string" ) && 54295 54296 // parseFloat NaNs numeric-cast false positives ("") 54297 // ...but misinterprets leading-number strings, particularly hex literals ("0x...") 54298 // subtraction forces infinities to NaN 54299 !isNaN( obj - parseFloat( obj ) ); 54300}; 54301 54302jQuery.trim = function( text ) { 54303 return text == null ? 54304 "" : 54305 ( text + "" ).replace( rtrim, "$1" ); 54306}; 54307 54308 54309 54310// Register as a named AMD module, since jQuery can be concatenated with other 54311// files that may use define, but not via a proper concatenation script that 54312// understands anonymous AMD modules. A named AMD is safest and most robust 54313// way to register. Lowercase jquery is used because AMD module names are 54314// derived from file names, and jQuery is normally delivered in a lowercase 54315// file name. Do this after creating the global so that if an AMD module wants 54316// to call noConflict to hide this version of jQuery, it will work. 54317 54318// Note that for maximum portability, libraries that are not jQuery should 54319// declare themselves as anonymous modules, and avoid setting a global if an 54320// AMD loader is present. jQuery is a special case. For more information, see 54321// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 54322 54323if ( true ) { 54324 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() { 54325 return jQuery; 54326 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 54327 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 54328} 54329 54330 54331 54332 54333var 54334 54335 // Map over jQuery in case of overwrite 54336 _jQuery = window.jQuery, 54337 54338 // Map over the $ in case of overwrite 54339 _$ = window.$; 54340 54341jQuery.noConflict = function( deep ) { 54342 if ( window.$ === jQuery ) { 54343 window.$ = _$; 54344 } 54345 54346 if ( deep && window.jQuery === jQuery ) { 54347 window.jQuery = _jQuery; 54348 } 54349 54350 return jQuery; 54351}; 54352 54353// Expose jQuery and $ identifiers, even in AMD 54354// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557) 54355// and CommonJS for browser emulators (trac-13566) 54356if ( typeof noGlobal === "undefined" ) { 54357 window.jQuery = window.$ = jQuery; 54358} 54359 54360 54361 54362 54363return jQuery; 54364} ); 54365 54366 54367/***/ }), 54368
vendor: 100,517 bytes, lines 54369-57608
54369/***/ "./node_modules/locomotive-scroll/dist/locomotive-scroll.esm.js": 54370/*!**********************************************************************!*\ 54371 !*** ./node_modules/locomotive-scroll/dist/locomotive-scroll.esm.js ***! 54372 \**********************************************************************/ 54373/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 54374 54375"use strict"; 54376__webpack_require__.r(__webpack_exports__); 54377/* harmony export */ __webpack_require__.d(__webpack_exports__, { 54378/* harmony export */ "Native": () => (/* binding */ Native), 54379/* harmony export */ "Smooth": () => (/* binding */ Smooth), 54380/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) 54381/* harmony export */ }); 54382/* locomotive-scroll v4.1.3 | MIT License | https://github.com/locomotivemtl/locomotive-scroll */ 54383function _classCallCheck(instance, Constructor) { 54384 if (!(instance instanceof Constructor)) { 54385 throw new TypeError("Cannot call a class as a function"); 54386 } 54387} 54388 54389function _defineProperties(target, props) { 54390 for (var i = 0; i < props.length; i++) { 54391 var descriptor = props[i]; 54392 descriptor.enumerable = descriptor.enumerable || false; 54393 descriptor.configurable = true; 54394 if ("value" in descriptor) descriptor.writable = true; 54395 Object.defineProperty(target, descriptor.key, descriptor); 54396 } 54397} 54398 54399function _createClass(Constructor, protoProps, staticProps) { 54400 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 54401 if (staticProps) _defineProperties(Constructor, staticProps); 54402 return Constructor; 54403} 54404 54405function _defineProperty(obj, key, value) { 54406 if (key in obj) { 54407 Object.defineProperty(obj, key, { 54408 value: value, 54409 enumerable: true, 54410 configurable: true, 54411 writable: true 54412 }); 54413 } else { 54414 obj[key] = value; 54415 } 54416 54417 return obj; 54418} 54419 54420function ownKeys(object, enumerableOnly) { 54421 var keys = Object.keys(object); 54422 54423 if (Object.getOwnPropertySymbols) { 54424 var symbols = Object.getOwnPropertySymbols(object); 54425 if (enumerableOnly) symbols = symbols.filter(function (sym) { 54426 return Object.getOwnPropertyDescriptor(object, sym).enumerable; 54427 }); 54428 keys.push.apply(keys, symbols); 54429 } 54430 54431 return keys; 54432} 54433 54434function _objectSpread2(target) { 54435 for (var i = 1; i < arguments.length; i++) { 54436 var source = arguments[i] != null ? arguments[i] : {}; 54437 54438 if (i % 2) { 54439 ownKeys(Object(source), true).forEach(function (key) { 54440 _defineProperty(target, key, source[key]); 54441 }); 54442 } else if (Object.getOwnPropertyDescriptors) { 54443 Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); 54444 } else { 54445 ownKeys(Object(source)).forEach(function (key) { 54446 Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); 54447 }); 54448 } 54449 } 54450 54451 return target; 54452} 54453 54454function _inherits(subClass, superClass) { 54455 if (typeof superClass !== "function" && superClass !== null) { 54456 throw new TypeError("Super expression must either be null or a function"); 54457 } 54458 54459 subClass.prototype = Object.create(superClass && superClass.prototype, { 54460 constructor: { 54461 value: subClass, 54462 writable: true, 54463 configurable: true 54464 } 54465 }); 54466 if (superClass) _setPrototypeOf(subClass, superClass); 54467} 54468 54469function _getPrototypeOf(o) { 54470 _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { 54471 return o.__proto__ || Object.getPrototypeOf(o); 54472 }; 54473 return _getPrototypeOf(o); 54474} 54475 54476function _setPrototypeOf(o, p) { 54477 _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { 54478 o.__proto__ = p; 54479 return o; 54480 }; 54481 54482 return _setPrototypeOf(o, p); 54483} 54484 54485function _isNativeReflectConstruct() { 54486 if (typeof Reflect === "undefined" || !Reflect.construct) return false; 54487 if (Reflect.construct.sham) return false; 54488 if (typeof Proxy === "function") return true; 54489 54490 try { 54491 Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); 54492 return true; 54493 } catch (e) { 54494 return false; 54495 } 54496} 54497 54498function _assertThisInitialized(self) { 54499 if (self === void 0) { 54500 throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 54501 } 54502 54503 return self; 54504} 54505 54506function _possibleConstructorReturn(self, call) { 54507 if (call && (typeof call === "object" || typeof call === "function")) { 54508 return call; 54509 } 54510 54511 return _assertThisInitialized(self); 54512} 54513 54514function _createSuper(Derived) { 54515 var hasNativeReflectConstruct = _isNativeReflectConstruct(); 54516 54517 return function _createSuperInternal() { 54518 var Super = _getPrototypeOf(Derived), 54519 result; 54520 54521 if (hasNativeReflectConstruct) { 54522 var NewTarget = _getPrototypeOf(this).constructor; 54523 54524 result = Reflect.construct(Super, arguments, NewTarget); 54525 } else { 54526 result = Super.apply(this, arguments); 54527 } 54528 54529 return _possibleConstructorReturn(this, result); 54530 }; 54531} 54532 54533function _superPropBase(object, property) { 54534 while (!Object.prototype.hasOwnProperty.call(object, property)) { 54535 object = _getPrototypeOf(object); 54536 if (object === null) break; 54537 } 54538 54539 return object; 54540} 54541 54542function _get(target, property, receiver) { 54543 if (typeof Reflect !== "undefined" && Reflect.get) { 54544 _get = Reflect.get; 54545 } else { 54546 _get = function _get(target, property, receiver) { 54547 var base = _superPropBase(target, property); 54548 54549 if (!base) return; 54550 var desc = Object.getOwnPropertyDescriptor(base, property); 54551 54552 if (desc.get) { 54553 return desc.get.call(receiver); 54554 } 54555 54556 return desc.value; 54557 }; 54558 } 54559 54560 return _get(target, property, receiver || target); 54561} 54562 54563function _slicedToArray(arr, i) { 54564 return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); 54565} 54566 54567function _toConsumableArray(arr) { 54568 return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); 54569} 54570 54571function _arrayWithoutHoles(arr) { 54572 if (Array.isArray(arr)) return _arrayLikeToArray(arr); 54573} 54574 54575function _arrayWithHoles(arr) { 54576 if (Array.isArray(arr)) return arr; 54577} 54578 54579function _iterableToArray(iter) { 54580 if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); 54581} 54582 54583function _iterableToArrayLimit(arr, i) { 54584 if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; 54585 var _arr = []; 54586 var _n = true; 54587 var _d = false; 54588 var _e = undefined; 54589 54590 try { 54591 for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { 54592 _arr.push(_s.value); 54593 54594 if (i && _arr.length === i) break; 54595 } 54596 } catch (err) { 54597 _d = true; 54598 _e = err; 54599 } finally { 54600 try { 54601 if (!_n && _i["return"] != null) _i["return"](); 54602 } finally { 54603 if (_d) throw _e; 54604 } 54605 } 54606 54607 return _arr; 54608} 54609 54610function _unsupportedIterableToArray(o, minLen) { 54611 if (!o) return; 54612 if (typeof o === "string") return _arrayLikeToArray(o, minLen); 54613 var n = Object.prototype.toString.call(o).slice(8, -1); 54614 if (n === "Object" && o.constructor) n = o.constructor.name; 54615 if (n === "Map" || n === "Set") return Array.from(o); 54616 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); 54617} 54618 54619function _arrayLikeToArray(arr, len) { 54620 if (len == null || len > arr.length) len = arr.length; 54621 54622 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; 54623 54624 return arr2; 54625} 54626 54627function _nonIterableSpread() { 54628 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 54629} 54630 54631function _nonIterableRest() { 54632 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 54633} 54634 54635var defaults = { 54636 el: document, 54637 name: 'scroll', 54638 offset: [0, 0], 54639 repeat: false, 54640 smooth: false, 54641 initPosition: { 54642 x: 0, 54643 y: 0 54644 }, 54645 direction: 'vertical', 54646 gestureDirection: 'vertical', 54647 reloadOnContextChange: false, 54648 lerp: 0.1, 54649 "class": 'is-inview', 54650 scrollbarContainer: false, 54651 scrollbarClass: 'c-scrollbar', 54652 scrollingClass: 'has-scroll-scrolling', 54653 draggingClass: 'has-scroll-dragging', 54654 smoothClass: 'has-scroll-smooth', 54655 initClass: 'has-scroll-init', 54656 getSpeed: false, 54657 getDirection: false, 54658 scrollFromAnywhere: false, 54659 multiplier: 1, 54660 firefoxMultiplier: 50, 54661 touchMultiplier: 2, 54662 resetNativeScroll: true, 54663 tablet: { 54664 smooth: false, 54665 direction: 'vertical', 54666 gestureDirection: 'vertical', 54667 breakpoint: 1024 54668 }, 54669 smartphone: { 54670 smooth: false, 54671 direction: 'vertical', 54672 gestureDirection: 'vertical' 54673 } 54674}; 54675 54676var _default = /*#__PURE__*/function () { 54677 function _default() { 54678 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 54679 54680 _classCallCheck(this, _default); 54681 54682 Object.assign(this, defaults, options); 54683 this.smartphone = defaults.smartphone; 54684 if (options.smartphone) Object.assign(this.smartphone, options.smartphone); 54685 this.tablet = defaults.tablet; 54686 if (options.tablet) Object.assign(this.tablet, options.tablet); 54687 this.namespace = 'locomotive'; 54688 this.html = document.documentElement; 54689 this.windowHeight = window.innerHeight; 54690 this.windowWidth = window.innerWidth; 54691 this.windowMiddle = { 54692 x: this.windowWidth / 2, 54693 y: this.windowHeight / 2 54694 }; 54695 this.els = {}; 54696 this.currentElements = {}; 54697 this.listeners = {}; 54698 this.hasScrollTicking = false; 54699 this.hasCallEventSet = false; 54700 this.checkScroll = this.checkScroll.bind(this); 54701 this.checkResize = this.checkResize.bind(this); 54702 this.checkEvent = this.checkEvent.bind(this); 54703 this.instance = { 54704 scroll: { 54705 x: 0, 54706 y: 0 54707 }, 54708 limit: { 54709 x: this.html.offsetWidth, 54710 y: this.html.offsetHeight 54711 }, 54712 currentElements: this.currentElements 54713 }; 54714 54715 if (this.isMobile) { 54716 if (this.isTablet) { 54717 this.context = 'tablet'; 54718 } else { 54719 this.context = 'smartphone'; 54720 } 54721 } else { 54722 this.context = 'desktop'; 54723 } 54724 54725 if (this.isMobile) this.direction = this[this.context].direction; 54726 54727 if (this.direction === 'horizontal') { 54728 this.directionAxis = 'x'; 54729 } else { 54730 this.directionAxis = 'y'; 54731 } 54732 54733 if (this.getDirection) { 54734 this.instance.direction = null; 54735 } 54736 54737 if (this.getDirection) { 54738 this.instance.speed = 0; 54739 } 54740 54741 this.html.classList.add(this.initClass); 54742 window.addEventListener('resize', this.checkResize, false); 54743 } 54744 54745 _createClass(_default, [{ 54746 key: "init", 54747 value: function init() { 54748 this.initEvents(); 54749 } 54750 }, { 54751 key: "checkScroll", 54752 value: function checkScroll() { 54753 this.dispatchScroll(); 54754 } 54755 }, { 54756 key: "checkResize", 54757 value: function checkResize() { 54758 var _this = this; 54759 54760 if (!this.resizeTick) { 54761 this.resizeTick = true; 54762 requestAnimationFrame(function () { 54763 _this.resize(); 54764 54765 _this.resizeTick = false; 54766 }); 54767 } 54768 } 54769 }, { 54770 key: "resize", 54771 value: function resize() {} 54772 }, { 54773 key: "checkContext", 54774 value: function checkContext() { 54775 if (!this.reloadOnContextChange) return; 54776 this.isMobile = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 || this.windowWidth < this.tablet.breakpoint; 54777 this.isTablet = this.isMobile && this.windowWidth >= this.tablet.breakpoint; 54778 var oldContext = this.context; 54779 54780 if (this.isMobile) { 54781 if (this.isTablet) { 54782 this.context = 'tablet'; 54783 } else { 54784 this.context = 'smartphone'; 54785 } 54786 } else { 54787 this.context = 'desktop'; 54788 } 54789 54790 if (oldContext != this.context) { 54791 var oldSmooth = oldContext == 'desktop' ? this.smooth : this[oldContext].smooth; 54792 var newSmooth = this.context == 'desktop' ? this.smooth : this[this.context].smooth; 54793 if (oldSmooth != newSmooth) window.location.reload(); 54794 } 54795 } 54796 }, { 54797 key: "initEvents", 54798 value: function initEvents() { 54799 var _this2 = this; 54800 54801 this.scrollToEls = this.el.querySelectorAll("[data-".concat(this.name, "-to]")); 54802 this.setScrollTo = this.setScrollTo.bind(this); 54803 this.scrollToEls.forEach(function (el) { 54804 el.addEventListener('click', _this2.setScrollTo, false); 54805 }); 54806 } 54807 }, { 54808 key: "setScrollTo", 54809 value: function setScrollTo(event) { 54810 event.preventDefault(); 54811 this.scrollTo(event.currentTarget.getAttribute("data-".concat(this.name, "-href")) || event.currentTarget.getAttribute('href'), { 54812 offset: event.currentTarget.getAttribute("data-".concat(this.name, "-offset")) 54813 }); 54814 } 54815 }, { 54816 key: "addElements", 54817 value: function addElements() {} 54818 }, { 54819 key: "detectElements", 54820 value: function detectElements(hasCallEventSet) { 54821 var _this3 = this; 54822 54823 var scrollTop = this.instance.scroll.y; 54824 var scrollBottom = scrollTop + this.windowHeight; 54825 var scrollLeft = this.instance.scroll.x; 54826 var scrollRight = scrollLeft + this.windowWidth; 54827 Object.entries(this.els).forEach(function (_ref) { 54828 var _ref2 = _slicedToArray(_ref, 2), 54829 i = _ref2[0], 54830 el = _ref2[1]; 54831 54832 if (el && (!el.inView || hasCallEventSet)) { 54833 if (_this3.direction === 'horizontal') { 54834 if (scrollRight >= el.left && scrollLeft < el.right) { 54835 _this3.setInView(el, i); 54836 } 54837 } else { 54838 if (scrollBottom >= el.top && scrollTop < el.bottom) { 54839 _this3.setInView(el, i); 54840 } 54841 } 54842 } 54843 54844 if (el && el.inView) { 54845 if (_this3.direction === 'horizontal') { 54846 var width = el.right - el.left; 54847 el.progress = (_this3.instance.scroll.x - (el.left - _this3.windowWidth)) / (width + _this3.windowWidth); 54848 54849 if (scrollRight < el.left || scrollLeft > el.right) { 54850 _this3.setOutOfView(el, i); 54851 } 54852 } else { 54853 var height = el.bottom - el.top; 54854 el.progress = (_this3.instance.scroll.y - (el.top - _this3.windowHeight)) / (height + _this3.windowHeight); 54855 54856 if (scrollBottom < el.top || scrollTop > el.bottom) { 54857 _this3.setOutOfView(el, i); 54858 } 54859 } 54860 } 54861 }); // this.els = this.els.filter((current, i) => { 54862 // return current !== null; 54863 // }); 54864 54865 this.hasScrollTicking = false; 54866 } 54867 }, { 54868 key: "setInView", 54869 value: function setInView(current, i) { 54870 this.els[i].inView = true; 54871 current.el.classList.add(current["class"]); 54872 this.currentElements[i] = current; 54873 54874 if (current.call && this.hasCallEventSet) { 54875 this.dispatchCall(current, 'enter'); 54876 54877 if (!current.repeat) { 54878 this.els[i].call = false; 54879 } 54880 } // if (!current.repeat && !current.speed && !current.sticky) { 54881 // if (!current.call || current.call && this.hasCallEventSet) { 54882 // this.els[i] = null 54883 // } 54884 // } 54885 54886 } 54887 }, { 54888 key: "setOutOfView", 54889 value: function setOutOfView(current, i) { 54890 var _this4 = this; 54891 54892 // if (current.repeat || current.speed !== undefined) { 54893 this.els[i].inView = false; // } 54894 54895 Object.keys(this.currentElements).forEach(function (el) { 54896 el === i && delete _this4.currentElements[el]; 54897 }); 54898 54899 if (current.call && this.hasCallEventSet) { 54900 this.dispatchCall(current, 'exit'); 54901 } 54902 54903 if (current.repeat) { 54904 current.el.classList.remove(current["class"]); 54905 } 54906 } 54907 }, { 54908 key: "dispatchCall", 54909 value: function dispatchCall(current, way) { 54910 this.callWay = way; 54911 this.callValue = current.call.split(',').map(function (item) { 54912 return item.trim(); 54913 }); 54914 this.callObj = current; 54915 if (this.callValue.length == 1) this.callValue = this.callValue[0]; 54916 var callEvent = new Event(this.namespace + 'call'); 54917 this.el.dispatchEvent(callEvent); 54918 } 54919 }, { 54920 key: "dispatchScroll", 54921 value: function dispatchScroll() { 54922 var scrollEvent = new Event(this.namespace + 'scroll'); 54923 this.el.dispatchEvent(scrollEvent); 54924 } 54925 }, { 54926 key: "setEvents", 54927 value: function setEvents(event, func) { 54928 if (!this.listeners[event]) { 54929 this.listeners[event] = []; 54930 } 54931 54932 var list = this.listeners[event]; 54933 list.push(func); 54934 54935 if (list.length === 1) { 54936 this.el.addEventListener(this.namespace + event, this.checkEvent, false); 54937 } 54938 54939 if (event === 'call') { 54940 this.hasCallEventSet = true; 54941 this.detectElements(true); 54942 } 54943 } 54944 }, { 54945 key: "unsetEvents", 54946 value: function unsetEvents(event, func) { 54947 if (!this.listeners[event]) return; 54948 var list = this.listeners[event]; 54949 var index = list.indexOf(func); 54950 if (index < 0) return; 54951 list.splice(index, 1); 54952 54953 if (list.index === 0) { 54954 this.el.removeEventListener(this.namespace + event, this.checkEvent, false); 54955 } 54956 } 54957 }, { 54958 key: "checkEvent", 54959 value: function checkEvent(event) { 54960 var _this5 = this; 54961 54962 var name = event.type.replace(this.namespace, ''); 54963 var list = this.listeners[name]; 54964 if (!list || list.length === 0) return; 54965 list.forEach(function (func) { 54966 switch (name) { 54967 case 'scroll': 54968 return func(_this5.instance); 54969 54970 case 'call': 54971 return func(_this5.callValue, _this5.callWay, _this5.callObj); 54972 54973 default: 54974 return func(); 54975 } 54976 }); 54977 } 54978 }, { 54979 key: "startScroll", 54980 value: function startScroll() {} 54981 }, { 54982 key: "stopScroll", 54983 value: function stopScroll() {} 54984 }, { 54985 key: "setScroll", 54986 value: function setScroll(x, y) { 54987 this.instance.scroll = { 54988 x: 0, 54989 y: 0 54990 }; 54991 } 54992 }, { 54993 key: "destroy", 54994 value: function destroy() { 54995 var _this6 = this; 54996 54997 window.removeEventListener('resize', this.checkResize, false); 54998 Object.keys(this.listeners).forEach(function (event) { 54999 _this6.el.removeEventListener(_this6.namespace + event, _this6.checkEvent, false); 55000 }); 55001 this.listeners = {}; 55002 this.scrollToEls.forEach(function (el) { 55003 el.removeEventListener('click', _this6.setScrollTo, false); 55004 }); 55005 this.html.classList.remove(this.initClass); 55006 } 55007 }]); 55008 55009 return _default; 55010}(); 55011 55012var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {}; 55013 55014function createCommonjsModule(fn, module) { 55015 return module = { exports: {} }, fn(module, module.exports), module.exports; 55016} 55017 55018var smoothscroll = createCommonjsModule(function (module, exports) { 55019/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */ 55020(function () { 55021 55022 // polyfill 55023 function polyfill() { 55024 // aliases 55025 var w = window; 55026 var d = document; 55027 55028 // return if scroll behavior is supported and polyfill is not forced 55029 if ( 55030 'scrollBehavior' in d.documentElement.style && 55031 w.__forceSmoothScrollPolyfill__ !== true 55032 ) { 55033 return; 55034 } 55035 55036 // globals 55037 var Element = w.HTMLElement || w.Element; 55038 var SCROLL_TIME = 468; 55039 55040 // object gathering original scroll methods 55041 var original = { 55042 scroll: w.scroll || w.scrollTo, 55043 scrollBy: w.scrollBy, 55044 elementScroll: Element.prototype.scroll || scrollElement, 55045 scrollIntoView: Element.prototype.scrollIntoView 55046 }; 55047 55048 // define timing method 55049 var now = 55050 w.performance && w.performance.now 55051 ? w.performance.now.bind(w.performance) 55052 : Date.now; 55053 55054 /** 55055 * indicates if a the current browser is made by Microsoft 55056 * @method isMicrosoftBrowser 55057 * @param {String} userAgent 55058 * @returns {Boolean} 55059 */ 55060 function isMicrosoftBrowser(userAgent) { 55061 var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/']; 55062 55063 return new RegExp(userAgentPatterns.join('|')).test(userAgent); 55064 } 55065 55066 /* 55067 * IE has rounding bug rounding down clientHeight and clientWidth and 55068 * rounding up scrollHeight and scrollWidth causing false positives 55069 * on hasScrollableSpace 55070 */ 55071 var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0; 55072 55073 /** 55074 * changes scroll position inside an element 55075 * @method scrollElement 55076 * @param {Number} x 55077 * @param {Number} y 55078 * @returns {undefined} 55079 */ 55080 function scrollElement(x, y) { 55081 this.scrollLeft = x; 55082 this.scrollTop = y; 55083 } 55084 55085 /** 55086 * returns result of applying ease math function to a number 55087 * @method ease 55088 * @param {Number} k 55089 * @returns {Number} 55090 */ 55091 function ease(k) { 55092 return 0.5 * (1 - Math.cos(Math.PI * k)); 55093 } 55094 55095 /** 55096 * indicates if a smooth behavior should be applied 55097 * @method shouldBailOut 55098 * @param {Number|Object} firstArg 55099 * @returns {Boolean} 55100 */ 55101 function shouldBailOut(firstArg) { 55102 if ( 55103 firstArg === null || 55104 typeof firstArg !== 'object' || 55105 firstArg.behavior === undefined || 55106 firstArg.behavior === 'auto' || 55107 firstArg.behavior === 'instant' 55108 ) { 55109 // first argument is not an object/null 55110 // or behavior is auto, instant or undefined 55111 return true; 55112 } 55113 55114 if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') { 55115 // first argument is an object and behavior is smooth 55116 return false; 55117 } 55118 55119 // throw error when behavior is not supported 55120 throw new TypeError( 55121 'behavior member of ScrollOptions ' + 55122 firstArg.behavior + 55123 ' is not a valid value for enumeration ScrollBehavior.' 55124 ); 55125 } 55126 55127 /** 55128 * indicates if an element has scrollable space in the provided axis 55129 * @method hasScrollableSpace 55130 * @param {Node} el 55131 * @param {String} axis 55132 * @returns {Boolean} 55133 */ 55134 function hasScrollableSpace(el, axis) { 55135 if (axis === 'Y') { 55136 return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight; 55137 } 55138 55139 if (axis === 'X') { 55140 return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth; 55141 } 55142 } 55143 55144 /** 55145 * indicates if an element has a scrollable overflow property in the axis 55146 * @method canOverflow 55147 * @param {Node} el 55148 * @param {String} axis 55149 * @returns {Boolean} 55150 */ 55151 function canOverflow(el, axis) { 55152 var overflowValue = w.getComputedStyle(el, null)['overflow' + axis]; 55153 55154 return overflowValue === 'auto' || overflowValue === 'scroll'; 55155 } 55156 55157 /** 55158 * indicates if an element can be scrolled in either axis 55159 * @method isScrollable 55160 * @param {Node} el 55161 * @param {String} axis 55162 * @returns {Boolean} 55163 */ 55164 function isScrollable(el) { 55165 var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y'); 55166 var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X'); 55167 55168 return isScrollableY || isScrollableX; 55169 } 55170 55171 /** 55172 * finds scrollable parent of an element 55173 * @method findScrollableParent 55174 * @param {Node} el 55175 * @returns {Node} el 55176 */ 55177 function findScrollableParent(el) { 55178 while (el !== d.body && isScrollable(el) === false) { 55179 el = el.parentNode || el.host; 55180 } 55181 55182 return el; 55183 } 55184 55185 /** 55186 * self invoked function that, given a context, steps through scrolling 55187 * @method step 55188 * @param {Object} context 55189 * @returns {undefined} 55190 */ 55191 function step(context) { 55192 var time = now(); 55193 var value; 55194 var currentX; 55195 var currentY; 55196 var elapsed = (time - context.startTime) / SCROLL_TIME; 55197 55198 // avoid elapsed times higher than one 55199 elapsed = elapsed > 1 ? 1 : elapsed; 55200 55201 // apply easing to elapsed time 55202 value = ease(elapsed); 55203 55204 currentX = context.startX + (context.x - context.startX) * value; 55205 currentY = context.startY + (context.y - context.startY) * value; 55206 55207 context.method.call(context.scrollable, currentX, currentY); 55208 55209 // scroll more if we have not reached our destination 55210 if (currentX !== context.x || currentY !== context.y) { 55211 w.requestAnimationFrame(step.bind(w, context)); 55212 } 55213 } 55214 55215 /** 55216 * scrolls window or element with a smooth behavior 55217 * @method smoothScroll 55218 * @param {Object|Node} el 55219 * @param {Number} x 55220 * @param {Number} y 55221 * @returns {undefined} 55222 */ 55223 function smoothScroll(el, x, y) { 55224 var scrollable; 55225 var startX; 55226 var startY; 55227 var method; 55228 var startTime = now(); 55229 55230 // define scroll context 55231 if (el === d.body) { 55232 scrollable = w; 55233 startX = w.scrollX || w.pageXOffset; 55234 startY = w.scrollY || w.pageYOffset; 55235 method = original.scroll; 55236 } else { 55237 scrollable = el; 55238 startX = el.scrollLeft; 55239 startY = el.scrollTop; 55240 method = scrollElement; 55241 } 55242 55243 // scroll looping over a frame 55244 step({ 55245 scrollable: scrollable, 55246 method: method, 55247 startTime: startTime, 55248 startX: startX, 55249 startY: startY, 55250 x: x, 55251 y: y 55252 }); 55253 } 55254 55255 // ORIGINAL METHODS OVERRIDES 55256 // w.scroll and w.scrollTo 55257 w.scroll = w.scrollTo = function() { 55258 // avoid action when no arguments are passed 55259 if (arguments[0] === undefined) { 55260 return; 55261 } 55262 55263 // avoid smooth behavior if not required 55264 if (shouldBailOut(arguments[0]) === true) { 55265 original.scroll.call( 55266 w, 55267 arguments[0].left !== undefined 55268 ? arguments[0].left 55269 : typeof arguments[0] !== 'object' 55270 ? arguments[0] 55271 : w.scrollX || w.pageXOffset, 55272 // use top prop, second argument if present or fallback to scrollY 55273 arguments[0].top !== undefined 55274 ? arguments[0].top 55275 : arguments[1] !== undefined 55276 ? arguments[1] 55277 : w.scrollY || w.pageYOffset 55278 ); 55279 55280 return; 55281 } 55282 55283 // LET THE SMOOTHNESS BEGIN! 55284 smoothScroll.call( 55285 w, 55286 d.body, 55287 arguments[0].left !== undefined 55288 ? ~~arguments[0].left 55289 : w.scrollX || w.pageXOffset, 55290 arguments[0].top !== undefined 55291 ? ~~arguments[0].top 55292 : w.scrollY || w.pageYOffset 55293 ); 55294 }; 55295 55296 // w.scrollBy 55297 w.scrollBy = function() { 55298 // avoid action when no arguments are passed 55299 if (arguments[0] === undefined) { 55300 return; 55301 } 55302 55303 // avoid smooth behavior if not required 55304 if (shouldBailOut(arguments[0])) { 55305 original.scrollBy.call( 55306 w, 55307 arguments[0].left !== undefined 55308 ? arguments[0].left 55309 : typeof arguments[0] !== 'object' ? arguments[0] : 0, 55310 arguments[0].top !== undefined 55311 ? arguments[0].top 55312 : arguments[1] !== undefined ? arguments[1] : 0 55313 ); 55314 55315 return; 55316 } 55317 55318 // LET THE SMOOTHNESS BEGIN! 55319 smoothScroll.call( 55320 w, 55321 d.body, 55322 ~~arguments[0].left + (w.scrollX || w.pageXOffset), 55323 ~~arguments[0].top + (w.scrollY || w.pageYOffset) 55324 ); 55325 }; 55326 55327 // Element.prototype.scroll and Element.prototype.scrollTo 55328 Element.prototype.scroll = Element.prototype.scrollTo = function() { 55329 // avoid action when no arguments are passed 55330 if (arguments[0] === undefined) { 55331 return; 55332 } 55333 55334 // avoid smooth behavior if not required 55335 if (shouldBailOut(arguments[0]) === true) { 55336 // if one number is passed, throw error to match Firefox implementation 55337 if (typeof arguments[0] === 'number' && arguments[1] === undefined) { 55338 throw new SyntaxError('Value could not be converted'); 55339 } 55340 55341 original.elementScroll.call( 55342 this, 55343 // use left prop, first number argument or fallback to scrollLeft 55344 arguments[0].left !== undefined 55345 ? ~~arguments[0].left 55346 : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft, 55347 // use top prop, second argument or fallback to scrollTop 55348 arguments[0].top !== undefined 55349 ? ~~arguments[0].top 55350 : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop 55351 ); 55352 55353 return; 55354 } 55355 55356 var left = arguments[0].left; 55357 var top = arguments[0].top; 55358 55359 // LET THE SMOOTHNESS BEGIN! 55360 smoothScroll.call( 55361 this, 55362 this, 55363 typeof left === 'undefined' ? this.scrollLeft : ~~left, 55364 typeof top === 'undefined' ? this.scrollTop : ~~top 55365 ); 55366 }; 55367 55368 // Element.prototype.scrollBy 55369 Element.prototype.scrollBy = function() { 55370 // avoid action when no arguments are passed 55371 if (arguments[0] === undefined) { 55372 return; 55373 } 55374 55375 // avoid smooth behavior if not required 55376 if (shouldBailOut(arguments[0]) === true) { 55377 original.elementScroll.call( 55378 this, 55379 arguments[0].left !== undefined 55380 ? ~~arguments[0].left + this.scrollLeft 55381 : ~~arguments[0] + this.scrollLeft, 55382 arguments[0].top !== undefined 55383 ? ~~arguments[0].top + this.scrollTop 55384 : ~~arguments[1] + this.scrollTop 55385 ); 55386 55387 return; 55388 } 55389 55390 this.scroll({ 55391 left: ~~arguments[0].left + this.scrollLeft, 55392 top: ~~arguments[0].top + this.scrollTop, 55393 behavior: arguments[0].behavior 55394 }); 55395 }; 55396 55397 // Element.prototype.scrollIntoView 55398 Element.prototype.scrollIntoView = function() { 55399 // avoid smooth behavior if not required 55400 if (shouldBailOut(arguments[0]) === true) { 55401 original.scrollIntoView.call( 55402 this, 55403 arguments[0] === undefined ? true : arguments[0] 55404 ); 55405 55406 return; 55407 } 55408 55409 // LET THE SMOOTHNESS BEGIN! 55410 var scrollableParent = findScrollableParent(this); 55411 var parentRects = scrollableParent.getBoundingClientRect(); 55412 var clientRects = this.getBoundingClientRect(); 55413 55414 if (scrollableParent !== d.body) { 55415 // reveal element inside parent 55416 smoothScroll.call( 55417 this, 55418 scrollableParent, 55419 scrollableParent.scrollLeft + clientRects.left - parentRects.left, 55420 scrollableParent.scrollTop + clientRects.top - parentRects.top 55421 ); 55422 55423 // reveal parent in viewport unless is fixed 55424 if (w.getComputedStyle(scrollableParent).position !== 'fixed') { 55425 w.scrollBy({ 55426 left: parentRects.left, 55427 top: parentRects.top, 55428 behavior: 'smooth' 55429 }); 55430 } 55431 } else { 55432 // reveal element in viewport 55433 w.scrollBy({ 55434 left: clientRects.left, 55435 top: clientRects.top, 55436 behavior: 'smooth' 55437 }); 55438 } 55439 }; 55440 } 55441 55442 { 55443 // commonjs 55444 module.exports = { polyfill: polyfill }; 55445 } 55446 55447}()); 55448}); 55449var smoothscroll_1 = smoothscroll.polyfill; 55450 55451var _default$1 = /*#__PURE__*/function (_Core) { 55452 _inherits(_default, _Core); 55453 55454 var _super = _createSuper(_default); 55455 55456 function _default() { 55457 var _this; 55458 55459 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 55460 55461 _classCallCheck(this, _default); 55462 55463 _this = _super.call(this, options); 55464 55465 if (_this.resetNativeScroll) { 55466 if (history.scrollRestoration) { 55467 history.scrollRestoration = 'manual'; 55468 } 55469 55470 window.scrollTo(0, 0); 55471 } 55472 55473 window.addEventListener('scroll', _this.checkScroll, false); 55474 55475 if (window.smoothscrollPolyfill === undefined) { 55476 window.smoothscrollPolyfill = smoothscroll; 55477 window.smoothscrollPolyfill.polyfill(); 55478 } 55479 55480 return _this; 55481 } 55482 55483 _createClass(_default, [{ 55484 key: "init", 55485 value: function init() { 55486 this.instance.scroll.y = window.pageYOffset; 55487 this.addElements(); 55488 this.detectElements(); 55489 55490 _get(_getPrototypeOf(_default.prototype), "init", this).call(this); 55491 } 55492 }, { 55493 key: "checkScroll", 55494 value: function checkScroll() { 55495 var _this2 = this; 55496 55497 _get(_getPrototypeOf(_default.prototype), "checkScroll", this).call(this); 55498 55499 if (this.getDirection) { 55500 this.addDirection(); 55501 } 55502 55503 if (this.getSpeed) { 55504 this.addSpeed(); 55505 this.speedTs = Date.now(); 55506 } 55507 55508 this.instance.scroll.y = window.pageYOffset; 55509 55510 if (Object.entries(this.els).length) { 55511 if (!this.hasScrollTicking) { 55512 requestAnimationFrame(function () { 55513 _this2.detectElements(); 55514 }); 55515 this.hasScrollTicking = true; 55516 } 55517 } 55518 } 55519 }, { 55520 key: "addDirection", 55521 value: function addDirection() { 55522 if (window.pageYOffset > this.instance.scroll.y) { 55523 if (this.instance.direction !== 'down') { 55524 this.instance.direction = 'down'; 55525 } 55526 } else if (window.pageYOffset < this.instance.scroll.y) { 55527 if (this.instance.direction !== 'up') { 55528 this.instance.direction = 'up'; 55529 } 55530 } 55531 } 55532 }, { 55533 key: "addSpeed", 55534 value: function addSpeed() { 55535 if (window.pageYOffset != this.instance.scroll.y) { 55536 this.instance.speed = (window.pageYOffset - this.instance.scroll.y) / Math.max(1, Date.now() - this.speedTs); 55537 } else { 55538 this.instance.speed = 0; 55539 } 55540 } 55541 }, { 55542 key: "resize", 55543 value: function resize() { 55544 if (Object.entries(this.els).length) { 55545 this.windowHeight = window.innerHeight; 55546 this.updateElements(); 55547 } 55548 } 55549 }, { 55550 key: "addElements", 55551 value: function addElements() { 55552 var _this3 = this; 55553 55554 this.els = {}; 55555 var els = this.el.querySelectorAll('[data-' + this.name + ']'); 55556 els.forEach(function (el, index) { 55557 var BCR = el.getBoundingClientRect(); 55558 var cl = el.dataset[_this3.name + 'Class'] || _this3["class"]; 55559 var id = typeof el.dataset[_this3.name + 'Id'] === 'string' ? el.dataset[_this3.name + 'Id'] : index; 55560 var top; 55561 var left; 55562 var offset = typeof el.dataset[_this3.name + 'Offset'] === 'string' ? el.dataset[_this3.name + 'Offset'].split(',') : _this3.offset; 55563 var repeat = el.dataset[_this3.name + 'Repeat']; 55564 var call = el.dataset[_this3.name + 'Call']; 55565 var target = el.dataset[_this3.name + 'Target']; 55566 var targetEl; 55567 55568 if (target !== undefined) { 55569 targetEl = document.querySelector("".concat(target)); 55570 } else { 55571 targetEl = el; 55572 } 55573 55574 var targetElBCR = targetEl.getBoundingClientRect(); 55575 top = targetElBCR.top + _this3.instance.scroll.y; 55576 left = targetElBCR.left + _this3.instance.scroll.x; 55577 var bottom = top + targetEl.offsetHeight; 55578 var right = left + targetEl.offsetWidth; 55579 55580 if (repeat == 'false') { 55581 repeat = false; 55582 } else if (repeat != undefined) { 55583 repeat = true; 55584 } else { 55585 repeat = _this3.repeat; 55586 } 55587 55588 var relativeOffset = _this3.getRelativeOffset(offset); 55589 55590 top = top + relativeOffset[0]; 55591 bottom = bottom - relativeOffset[1]; 55592 var mappedEl = { 55593 el: el, 55594 targetEl: targetEl, 55595 id: id, 55596 "class": cl, 55597 top: top, 55598 bottom: bottom, 55599 left: left, 55600 right: right, 55601 offset: offset, 55602 progress: 0, 55603 repeat: repeat, 55604 inView: false, 55605 call: call 55606 }; 55607 _this3.els[id] = mappedEl; 55608 55609 if (el.classList.contains(cl)) { 55610 _this3.setInView(_this3.els[id], id); 55611 } 55612 }); 55613 } 55614 }, { 55615 key: "updateElements", 55616 value: function updateElements() { 55617 var _this4 = this; 55618 55619 Object.entries(this.els).forEach(function (_ref) { 55620 var _ref2 = _slicedToArray(_ref, 2), 55621 i = _ref2[0], 55622 el = _ref2[1]; 55623 55624 var top = el.targetEl.getBoundingClientRect().top + _this4.instance.scroll.y; 55625 55626 var bottom = top + el.targetEl.offsetHeight; 55627 55628 var relativeOffset = _this4.getRelativeOffset(el.offset); 55629 55630 _this4.els[i].top = top + relativeOffset[0]; 55631 _this4.els[i].bottom = bottom - relativeOffset[1]; 55632 }); 55633 this.hasScrollTicking = false; 55634 } 55635 }, { 55636 key: "getRelativeOffset", 55637 value: function getRelativeOffset(offset) { 55638 var relativeOffset = [0, 0]; 55639 55640 if (offset) { 55641 for (var i = 0; i < offset.length; i++) { 55642 if (typeof offset[i] == 'string') { 55643 if (offset[i].includes('%')) { 55644 relativeOffset[i] = parseInt(offset[i].replace('%', '') * this.windowHeight / 100); 55645 } else { 55646 relativeOffset[i] = parseInt(offset[i]); 55647 } 55648 } else { 55649 relativeOffset[i] = offset[i]; 55650 } 55651 } 55652 } 55653 55654 return relativeOffset; 55655 } 55656 /** 55657 * Scroll to a desired target. 55658 * 55659 * @param Available options : 55660 * target {node, string, "top", "bottom", int} - The DOM element we want to scroll to 55661 * options {object} - Options object for additionnal settings. 55662 * @return {void} 55663 */ 55664 55665 }, { 55666 key: "scrollTo", 55667 value: function scrollTo(target) { 55668 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 55669 // Parse options 55670 var offset = parseInt(options.offset) || 0; // An offset to apply on top of given `target` or `sourceElem`'s target 55671 55672 var callback = options.callback ? options.callback : false; // function called when scrollTo completes (note that it won't wait for lerp to stabilize) 55673 55674 if (typeof target === 'string') { 55675 // Selector or boundaries 55676 if (target === 'top') { 55677 target = this.html; 55678 } else if (target === 'bottom') { 55679 target = this.html.offsetHeight - window.innerHeight; 55680 } else { 55681 target = document.querySelector(target); // If the query fails, abort 55682 55683 if (!target) { 55684 return; 55685 } 55686 } 55687 } else if (typeof target === 'number') { 55688 // Absolute coordinate 55689 target = parseInt(target); 55690 } else if (target && target.tagName) ; else { 55691 console.warn('`target` parameter is not valid'); 55692 return; 55693 } // We have a target that is not a coordinate yet, get it 55694 55695 55696 if (typeof target !== 'number') { 55697 offset = target.getBoundingClientRect().top + offset + this.instance.scroll.y; 55698 } else { 55699 offset = target + offset; 55700 } 55701 55702 var isTargetReached = function isTargetReached() { 55703 return parseInt(window.pageYOffset) === parseInt(offset); 55704 }; 55705 55706 if (callback) { 55707 if (isTargetReached()) { 55708 callback(); 55709 return; 55710 } else { 55711 var onScroll = function onScroll() { 55712 if (isTargetReached()) { 55713 window.removeEventListener('scroll', onScroll); 55714 callback(); 55715 } 55716 }; 55717 55718 window.addEventListener('scroll', onScroll); 55719 } 55720 } 55721 55722 window.scrollTo({ 55723 top: offset, 55724 behavior: options.duration === 0 ? 'auto' : 'smooth' 55725 }); 55726 } 55727 }, { 55728 key: "update", 55729 value: function update() { 55730 this.addElements(); 55731 this.detectElements(); 55732 } 55733 }, { 55734 key: "destroy", 55735 value: function destroy() { 55736 _get(_getPrototypeOf(_default.prototype), "destroy", this).call(this); 55737 55738 window.removeEventListener('scroll', this.checkScroll, false); 55739 } 55740 }]); 55741 55742 return _default; 55743}(_default); 55744 55745/* 55746object-assign 55747(c) Sindre Sorhus 55748@license MIT 55749*/ 55750/* eslint-disable no-unused-vars */ 55751var getOwnPropertySymbols = Object.getOwnPropertySymbols; 55752var hasOwnProperty = Object.prototype.hasOwnProperty; 55753var propIsEnumerable = Object.prototype.propertyIsEnumerable; 55754 55755function toObject(val) { 55756 if (val === null || val === undefined) { 55757 throw new TypeError('Object.assign cannot be called with null or undefined'); 55758 } 55759 55760 return Object(val); 55761} 55762 55763function shouldUseNative() { 55764 try { 55765 if (!Object.assign) { 55766 return false; 55767 } 55768 55769 // Detect buggy property enumeration order in older V8 versions. 55770 55771 // https://bugs.chromium.org/p/v8/issues/detail?id=4118 55772 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers 55773 test1[5] = 'de'; 55774 if (Object.getOwnPropertyNames(test1)[0] === '5') { 55775 return false; 55776 } 55777 55778 // https://bugs.chromium.org/p/v8/issues/detail?id=3056 55779 var test2 = {}; 55780 for (var i = 0; i < 10; i++) { 55781 test2['_' + String.fromCharCode(i)] = i; 55782 } 55783 var order2 = Object.getOwnPropertyNames(test2).map(function (n) { 55784 return test2[n]; 55785 }); 55786 if (order2.join('') !== '0123456789') { 55787 return false; 55788 } 55789 55790 // https://bugs.chromium.org/p/v8/issues/detail?id=3056 55791 var test3 = {}; 55792 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { 55793 test3[letter] = letter; 55794 }); 55795 if (Object.keys(Object.assign({}, test3)).join('') !== 55796 'abcdefghijklmnopqrst') { 55797 return false; 55798 } 55799 55800 return true; 55801 } catch (err) { 55802 // We don't expect any of the above to throw, but better to be safe. 55803 return false; 55804 } 55805} 55806 55807var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { 55808 var from; 55809 var to = toObject(target); 55810 var symbols; 55811 55812 for (var s = 1; s < arguments.length; s++) { 55813 from = Object(arguments[s]); 55814 55815 for (var key in from) { 55816 if (hasOwnProperty.call(from, key)) { 55817 to[key] = from[key]; 55818 } 55819 } 55820 55821 if (getOwnPropertySymbols) { 55822 symbols = getOwnPropertySymbols(from); 55823 for (var i = 0; i < symbols.length; i++) { 55824 if (propIsEnumerable.call(from, symbols[i])) { 55825 to[symbols[i]] = from[symbols[i]]; 55826 } 55827 } 55828 } 55829 } 55830 55831 return to; 55832}; 55833 55834function E () { 55835 // Keep this empty so it's easier to inherit from 55836 // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3) 55837} 55838 55839E.prototype = { 55840 on: function (name, callback, ctx) { 55841 var e = this.e || (this.e = {}); 55842 55843 (e[name] || (e[name] = [])).push({ 55844 fn: callback, 55845 ctx: ctx 55846 }); 55847 55848 return this; 55849 }, 55850 55851 once: function (name, callback, ctx) { 55852 var self = this; 55853 function listener () { 55854 self.off(name, listener); 55855 callback.apply(ctx, arguments); 55856 } 55857 listener._ = callback; 55858 return this.on(name, listener, ctx); 55859 }, 55860 55861 emit: function (name) { 55862 var data = [].slice.call(arguments, 1); 55863 var evtArr = ((this.e || (this.e = {}))[name] || []).slice(); 55864 var i = 0; 55865 var len = evtArr.length; 55866 55867 for (i; i < len; i++) { 55868 evtArr[i].fn.apply(evtArr[i].ctx, data); 55869 } 55870 55871 return this; 55872 }, 55873 55874 off: function (name, callback) { 55875 var e = this.e || (this.e = {}); 55876 var evts = e[name]; 55877 var liveEvents = []; 55878 55879 if (evts && callback) { 55880 for (var i = 0, len = evts.length; i < len; i++) { 55881 if (evts[i].fn !== callback && evts[i].fn._ !== callback) 55882 liveEvents.push(evts[i]); 55883 } 55884 } 55885 55886 // Remove event from queue to prevent memory leak 55887 // Suggested by https://github.com/lazd 55888 // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910 55889 55890 (liveEvents.length) 55891 ? e[name] = liveEvents 55892 : delete e[name]; 55893 55894 return this; 55895 } 55896}; 55897 55898var tinyEmitter = E; 55899 55900var lethargy = createCommonjsModule(function (module, exports) { 55901// Generated by CoffeeScript 1.9.2 55902(function() { 55903 var root; 55904 55905 root = exports !== null ? exports : this; 55906 55907 root.Lethargy = (function() { 55908 function Lethargy(stability, sensitivity, tolerance, delay) { 55909 this.stability = stability != null ? Math.abs(stability) : 8; 55910 this.sensitivity = sensitivity != null ? 1 + Math.abs(sensitivity) : 100; 55911 this.tolerance = tolerance != null ? 1 + Math.abs(tolerance) : 1.1; 55912 this.delay = delay != null ? delay : 150; 55913 this.lastUpDeltas = (function() { 55914 var i, ref, results; 55915 results = []; 55916 for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) { 55917 results.push(null); 55918 } 55919 return results; 55920 }).call(this); 55921 this.lastDownDeltas = (function() { 55922 var i, ref, results; 55923 results = []; 55924 for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) { 55925 results.push(null); 55926 } 55927 return results; 55928 }).call(this); 55929 this.deltasTimestamp = (function() { 55930 var i, ref, results; 55931 results = []; 55932 for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) { 55933 results.push(null); 55934 } 55935 return results; 55936 }).call(this); 55937 } 55938 55939 Lethargy.prototype.check = function(e) { 55940 var lastDelta; 55941 e = e.originalEvent || e; 55942 if (e.wheelDelta != null) { 55943 lastDelta = e.wheelDelta; 55944 } else if (e.deltaY != null) { 55945 lastDelta = e.deltaY * -40; 55946 } else if ((e.detail != null) || e.detail === 0) { 55947 lastDelta = e.detail * -40; 55948 } 55949 this.deltasTimestamp.push(Date.now()); 55950 this.deltasTimestamp.shift(); 55951 if (lastDelta > 0) { 55952 this.lastUpDeltas.push(lastDelta); 55953 this.lastUpDeltas.shift(); 55954 return this.isInertia(1); 55955 } else { 55956 this.lastDownDeltas.push(lastDelta); 55957 this.lastDownDeltas.shift(); 55958 return this.isInertia(-1); 55959 } 55960 }; 55961 55962 Lethargy.prototype.isInertia = function(direction) { 55963 var lastDeltas, lastDeltasNew, lastDeltasOld, newAverage, newSum, oldAverage, oldSum; 55964 lastDeltas = direction === -1 ? this.lastDownDeltas : this.lastUpDeltas; 55965 if (lastDeltas[0] === null) { 55966 return direction; 55967 } 55968 if (this.deltasTimestamp[(this.stability * 2) - 2] + this.delay > Date.now() && lastDeltas[0] === lastDeltas[(this.stability * 2) - 1]) { 55969 return false; 55970 } 55971 lastDeltasOld = lastDeltas.slice(0, this.stability); 55972 lastDeltasNew = lastDeltas.slice(this.stability, this.stability * 2); 55973 oldSum = lastDeltasOld.reduce(function(t, s) { 55974 return t + s; 55975 }); 55976 newSum = lastDeltasNew.reduce(function(t, s) { 55977 return t + s; 55978 }); 55979 oldAverage = oldSum / lastDeltasOld.length; 55980 newAverage = newSum / lastDeltasNew.length; 55981 if (Math.abs(oldAverage) < Math.abs(newAverage * this.tolerance) && (this.sensitivity < Math.abs(newAverage))) { 55982 return direction; 55983 } else { 55984 return false; 55985 } 55986 }; 55987 55988 Lethargy.prototype.showLastUpDeltas = function() { 55989 return this.lastUpDeltas; 55990 }; 55991 55992 Lethargy.prototype.showLastDownDeltas = function() { 55993 return this.lastDownDeltas; 55994 }; 55995 55996 return Lethargy; 55997 55998 })(); 55999 56000}).call(commonjsGlobal); 56001}); 56002 56003var support = (function getSupport() { 56004 return { 56005 hasWheelEvent: 'onwheel' in document, 56006 hasMouseWheelEvent: 'onmousewheel' in document, 56007 hasTouch: ('ontouchstart' in window) || window.TouchEvent || window.DocumentTouch && document instanceof DocumentTouch, 56008 hasTouchWin: navigator.msMaxTouchPoints && navigator.msMaxTouchPoints > 1, 56009 hasPointer: !!window.navigator.msPointerEnabled, 56010 hasKeyDown: 'onkeydown' in document, 56011 isFirefox: navigator.userAgent.indexOf('Firefox') > -1 56012 }; 56013})(); 56014 56015var toString = Object.prototype.toString, 56016 hasOwnProperty$1 = Object.prototype.hasOwnProperty; 56017 56018var bindallStandalone = function(object) { 56019 if(!object) return console.warn('bindAll requires at least one argument.'); 56020 56021 var functions = Array.prototype.slice.call(arguments, 1); 56022 56023 if (functions.length === 0) { 56024 56025 for (var method in object) { 56026 if(hasOwnProperty$1.call(object, method)) { 56027 if(typeof object[method] == 'function' && toString.call(object[method]) == "[object Function]") { 56028 functions.push(method); 56029 } 56030 } 56031 } 56032 } 56033 56034 for(var i = 0; i < functions.length; i++) { 56035 var f = functions[i]; 56036 object[f] = bind(object[f], object); 56037 } 56038}; 56039 56040/* 56041 Faster bind without specific-case checking. (see https://coderwall.com/p/oi3j3w). 56042 bindAll is only needed for events binding so no need to make slow fixes for constructor 56043 or partial application. 56044*/ 56045function bind(func, context) { 56046 return function() { 56047 return func.apply(context, arguments); 56048 }; 56049} 56050 56051var Lethargy = lethargy.Lethargy; 56052 56053 56054 56055var EVT_ID = 'virtualscroll'; 56056 56057var src = VirtualScroll; 56058 56059var keyCodes = { 56060 LEFT: 37, 56061 UP: 38, 56062 RIGHT: 39, 56063 DOWN: 40, 56064 SPACE: 32 56065}; 56066 56067function VirtualScroll(options) { 56068 bindallStandalone(this, '_onWheel', '_onMouseWheel', '_onTouchStart', '_onTouchMove', '_onKeyDown'); 56069 56070 this.el = window; 56071 if (options && options.el) { 56072 this.el = options.el; 56073 delete options.el; 56074 } 56075 this.options = objectAssign({ 56076 mouseMultiplier: 1, 56077 touchMultiplier: 2, 56078 firefoxMultiplier: 15, 56079 keyStep: 120, 56080 preventTouch: false, 56081 unpreventTouchClass: 'vs-touchmove-allowed', 56082 limitInertia: false, 56083 useKeyboard: true, 56084 useTouch: true 56085 }, options); 56086 56087 if (this.options.limitInertia) this._lethargy = new Lethargy(); 56088 56089 this._emitter = new tinyEmitter(); 56090 this._event = { 56091 y: 0, 56092 x: 0, 56093 deltaX: 0, 56094 deltaY: 0 56095 }; 56096 this.touchStartX = null; 56097 this.touchStartY = null; 56098 this.bodyTouchAction = null; 56099 56100 if (this.options.passive !== undefined) { 56101 this.listenerOptions = {passive: this.options.passive}; 56102 } 56103} 56104 56105VirtualScroll.prototype._notify = function(e) { 56106 var evt = this._event; 56107 evt.x += evt.deltaX; 56108 evt.y += evt.deltaY; 56109 56110 this._emitter.emit(EVT_ID, { 56111 x: evt.x, 56112 y: evt.y, 56113 deltaX: evt.deltaX, 56114 deltaY: evt.deltaY, 56115 originalEvent: e 56116 }); 56117}; 56118 56119VirtualScroll.prototype._onWheel = function(e) { 56120 var options = this.options; 56121 if (this._lethargy && this._lethargy.check(e) === false) return; 56122 var evt = this._event; 56123 56124 // In Chrome and in Firefox (at least the new one) 56125 evt.deltaX = e.wheelDeltaX || e.deltaX * -1; 56126 evt.deltaY = e.wheelDeltaY || e.deltaY * -1; 56127 56128 // for our purpose deltamode = 1 means user is on a wheel mouse, not touch pad 56129 // real meaning: https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent#Delta_modes 56130 if(support.isFirefox && e.deltaMode == 1) { 56131 evt.deltaX *= options.firefoxMultiplier; 56132 evt.deltaY *= options.firefoxMultiplier; 56133 } 56134 56135 evt.deltaX *= options.mouseMultiplier; 56136 evt.deltaY *= options.mouseMultiplier; 56137 56138 this._notify(e); 56139}; 56140 56141VirtualScroll.prototype._onMouseWheel = function(e) { 56142 if (this.options.limitInertia && this._lethargy.check(e) === false) return; 56143 56144 var evt = this._event; 56145 56146 // In Safari, IE and in Chrome if 'wheel' isn't defined 56147 evt.deltaX = (e.wheelDeltaX) ? e.wheelDeltaX : 0; 56148 evt.deltaY = (e.wheelDeltaY) ? e.wheelDeltaY : e.wheelDelta; 56149 56150 this._notify(e); 56151}; 56152 56153VirtualScroll.prototype._onTouchStart = function(e) { 56154 var t = (e.targetTouches) ? e.targetTouches[0] : e; 56155 this.touchStartX = t.pageX; 56156 this.touchStartY = t.pageY; 56157}; 56158 56159VirtualScroll.prototype._onTouchMove = function(e) { 56160 var options = this.options; 56161 if(options.preventTouch 56162 && !e.target.classList.contains(options.unpreventTouchClass)) { 56163 e.preventDefault(); 56164 } 56165 56166 var evt = this._event; 56167 56168 var t = (e.targetTouches) ? e.targetTouches[0] : e; 56169 56170 evt.deltaX = (t.pageX - this.touchStartX) * options.touchMultiplier; 56171 evt.deltaY = (t.pageY - this.touchStartY) * options.touchMultiplier; 56172 56173 this.touchStartX = t.pageX; 56174 this.touchStartY = t.pageY; 56175 56176 this._notify(e); 56177}; 56178 56179VirtualScroll.prototype._onKeyDown = function(e) { 56180 var evt = this._event; 56181 evt.deltaX = evt.deltaY = 0; 56182 var windowHeight = window.innerHeight - 40; 56183 56184 switch(e.keyCode) { 56185 case keyCodes.LEFT: 56186 case keyCodes.UP: 56187 evt.deltaY = this.options.keyStep; 56188 break; 56189 56190 case keyCodes.RIGHT: 56191 case keyCodes.DOWN: 56192 evt.deltaY = - this.options.keyStep; 56193 break; 56194 case e.shiftKey: 56195 evt.deltaY = windowHeight; 56196 break; 56197 case keyCodes.SPACE: 56198 evt.deltaY = - windowHeight; 56199 break; 56200 default: 56201 return; 56202 } 56203 56204 this._notify(e); 56205}; 56206 56207VirtualScroll.prototype._bind = function() { 56208 if(support.hasWheelEvent) this.el.addEventListener('wheel', this._onWheel, this.listenerOptions); 56209 if(support.hasMouseWheelEvent) this.el.addEventListener('mousewheel', this._onMouseWheel, this.listenerOptions); 56210 56211 if(support.hasTouch && this.options.useTouch) { 56212 this.el.addEventListener('touchstart', this._onTouchStart, this.listenerOptions); 56213 this.el.addEventListener('touchmove', this._onTouchMove, this.listenerOptions); 56214 } 56215 56216 if(support.hasPointer && support.hasTouchWin) { 56217 this.bodyTouchAction = document.body.style.msTouchAction; 56218 document.body.style.msTouchAction = 'none'; 56219 this.el.addEventListener('MSPointerDown', this._onTouchStart, true); 56220 this.el.addEventListener('MSPointerMove', this._onTouchMove, true); 56221 } 56222 56223 if(support.hasKeyDown && this.options.useKeyboard) document.addEventListener('keydown', this._onKeyDown); 56224}; 56225 56226VirtualScroll.prototype._unbind = function() { 56227 if(support.hasWheelEvent) this.el.removeEventListener('wheel', this._onWheel); 56228 if(support.hasMouseWheelEvent) this.el.removeEventListener('mousewheel', this._onMouseWheel); 56229 56230 if(support.hasTouch) { 56231 this.el.removeEventListener('touchstart', this._onTouchStart); 56232 this.el.removeEventListener('touchmove', this._onTouchMove); 56233 } 56234 56235 if(support.hasPointer && support.hasTouchWin) { 56236 document.body.style.msTouchAction = this.bodyTouchAction; 56237 this.el.removeEventListener('MSPointerDown', this._onTouchStart, true); 56238 this.el.removeEventListener('MSPointerMove', this._onTouchMove, true); 56239 } 56240 56241 if(support.hasKeyDown && this.options.useKeyboard) document.removeEventListener('keydown', this._onKeyDown); 56242}; 56243 56244VirtualScroll.prototype.on = function(cb, ctx) { 56245 this._emitter.on(EVT_ID, cb, ctx); 56246 56247 var events = this._emitter.e; 56248 if (events && events[EVT_ID] && events[EVT_ID].length === 1) this._bind(); 56249}; 56250 56251VirtualScroll.prototype.off = function(cb, ctx) { 56252 this._emitter.off(EVT_ID, cb, ctx); 56253 56254 var events = this._emitter.e; 56255 if (!events[EVT_ID] || events[EVT_ID].length <= 0) this._unbind(); 56256}; 56257 56258VirtualScroll.prototype.reset = function() { 56259 var evt = this._event; 56260 evt.x = 0; 56261 evt.y = 0; 56262}; 56263 56264VirtualScroll.prototype.destroy = function() { 56265 this._emitter.off(); 56266 this._unbind(); 56267}; 56268 56269function lerp(start, end, amt) { 56270 return (1 - amt) * start + amt * end; 56271} 56272 56273function getTranslate(el) { 56274 var translate = {}; 56275 if (!window.getComputedStyle) return; 56276 var style = getComputedStyle(el); 56277 var transform = style.transform || style.webkitTransform || style.mozTransform; 56278 var mat = transform.match(/^matrix3d\((.+)\)$/); 56279 56280 if (mat) { 56281 translate.x = mat ? parseFloat(mat[1].split(', ')[12]) : 0; 56282 translate.y = mat ? parseFloat(mat[1].split(', ')[13]) : 0; 56283 } else { 56284 mat = transform.match(/^matrix\((.+)\)$/); 56285 translate.x = mat ? parseFloat(mat[1].split(', ')[4]) : 0; 56286 translate.y = mat ? parseFloat(mat[1].split(', ')[5]) : 0; 56287 } 56288 56289 return translate; 56290} 56291 56292/** 56293 * Returns an array containing all the parent nodes of the given node 56294 * @param {object} node 56295 * @return {array} parent nodes 56296 */ 56297function getParents(elem) { 56298 // Set up a parent array 56299 var parents = []; // Push each parent element to the array 56300 56301 for (; elem && elem !== document; elem = elem.parentNode) { 56302 parents.push(elem); 56303 } // Return our parent array 56304 56305 56306 return parents; 56307} // https://gomakethings.com/how-to-get-the-closest-parent-element-with-a-matching-selector-using-vanilla-javascript/ 56308 56309/** 56310 * https://github.com/gre/bezier-easing 56311 * BezierEasing - use bezier curve for transition easing function 56312 * by Gaëtan Renaudeau 2014 - 2015 â MIT License 56313 */ 56314 56315// These values are established by empiricism with tests (tradeoff: performance VS precision) 56316var NEWTON_ITERATIONS = 4; 56317var NEWTON_MIN_SLOPE = 0.001; 56318var SUBDIVISION_PRECISION = 0.0000001; 56319var SUBDIVISION_MAX_ITERATIONS = 10; 56320 56321var kSplineTableSize = 11; 56322var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); 56323 56324var float32ArraySupported = typeof Float32Array === 'function'; 56325 56326function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } 56327function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } 56328function C (aA1) { return 3.0 * aA1; } 56329 56330// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. 56331function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } 56332 56333// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. 56334function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } 56335 56336function binarySubdivide (aX, aA, aB, mX1, mX2) { 56337 var currentX, currentT, i = 0; 56338 do { 56339 currentT = aA + (aB - aA) / 2.0; 56340 currentX = calcBezier(currentT, mX1, mX2) - aX; 56341 if (currentX > 0.0) { 56342 aB = currentT; 56343 } else { 56344 aA = currentT; 56345 } 56346 } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); 56347 return currentT; 56348} 56349 56350function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { 56351 for (var i = 0; i < NEWTON_ITERATIONS; ++i) { 56352 var currentSlope = getSlope(aGuessT, mX1, mX2); 56353 if (currentSlope === 0.0) { 56354 return aGuessT; 56355 } 56356 var currentX = calcBezier(aGuessT, mX1, mX2) - aX; 56357 aGuessT -= currentX / currentSlope; 56358 } 56359 return aGuessT; 56360} 56361 56362function LinearEasing (x) { 56363 return x; 56364} 56365 56366var src$1 = function bezier (mX1, mY1, mX2, mY2) { 56367 if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { 56368 throw new Error('bezier x values must be in [0, 1] range'); 56369 } 56370 56371 if (mX1 === mY1 && mX2 === mY2) { 56372 return LinearEasing; 56373 } 56374 56375 // Precompute samples table 56376 var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); 56377 for (var i = 0; i < kSplineTableSize; ++i) { 56378 sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); 56379 } 56380 56381 function getTForX (aX) { 56382 var intervalStart = 0.0; 56383 var currentSample = 1; 56384 var lastSample = kSplineTableSize - 1; 56385 56386 for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { 56387 intervalStart += kSampleStepSize; 56388 } 56389 --currentSample; 56390 56391 // Interpolate to provide an initial guess for t 56392 var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); 56393 var guessForT = intervalStart + dist * kSampleStepSize; 56394 56395 var initialSlope = getSlope(guessForT, mX1, mX2); 56396 if (initialSlope >= NEWTON_MIN_SLOPE) { 56397 return newtonRaphsonIterate(aX, guessForT, mX1, mX2); 56398 } else if (initialSlope === 0.0) { 56399 return guessForT; 56400 } else { 56401 return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); 56402 } 56403 } 56404 56405 return function BezierEasing (x) { 56406 // Because JavaScript number are imprecise, we should guarantee the extremes are right. 56407 if (x === 0) { 56408 return 0; 56409 } 56410 if (x === 1) { 56411 return 1; 56412 } 56413 return calcBezier(getTForX(x), mY1, mY2); 56414 }; 56415}; 56416 56417var keyCodes$1 = { 56418 LEFT: 37, 56419 UP: 38, 56420 RIGHT: 39, 56421 DOWN: 40, 56422 SPACE: 32, 56423 TAB: 9, 56424 PAGEUP: 33, 56425 PAGEDOWN: 34, 56426 HOME: 36, 56427 END: 35 56428}; 56429 56430var _default$2 = /*#__PURE__*/function (_Core) { 56431 _inherits(_default, _Core); 56432 56433 var _super = _createSuper(_default); 56434 56435 function _default() { 56436 var _this; 56437 56438 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 56439 56440 _classCallCheck(this, _default); 56441 56442 if (history.scrollRestoration) { 56443 history.scrollRestoration = 'manual'; 56444 } 56445 56446 window.scrollTo(0, 0); 56447 _this = _super.call(this, options); 56448 if (_this.inertia) _this.lerp = _this.inertia * 0.1; 56449 _this.isScrolling = false; 56450 _this.isDraggingScrollbar = false; 56451 _this.isTicking = false; 56452 _this.hasScrollTicking = false; 56453 _this.parallaxElements = {}; 56454 _this.stop = false; 56455 _this.scrollbarContainer = options.scrollbarContainer; 56456 _this.checkKey = _this.checkKey.bind(_assertThisInitialized(_this)); 56457 window.addEventListener('keydown', _this.checkKey, false); 56458 return _this; 56459 } 56460 56461 _createClass(_default, [{ 56462 key: "init", 56463 value: function init() { 56464 var _this2 = this; 56465 56466 this.html.classList.add(this.smoothClass); 56467 this.html.setAttribute("data-".concat(this.name, "-direction"), this.direction); 56468 this.instance = _objectSpread2({ 56469 delta: { 56470 x: this.initPosition.x, 56471 y: this.initPosition.y 56472 }, 56473 scroll: { 56474 x: this.initPosition.x, 56475 y: this.initPosition.y 56476 } 56477 }, this.instance); 56478 this.vs = new src({ 56479 el: this.scrollFromAnywhere ? document : this.el, 56480 mouseMultiplier: navigator.platform.indexOf('Win') > -1 ? 1 : 0.4, 56481 firefoxMultiplier: this.firefoxMultiplier, 56482 touchMultiplier: this.touchMultiplier, 56483 useKeyboard: false, 56484 passive: true 56485 }); 56486 this.vs.on(function (e) { 56487 if (_this2.stop) { 56488 return; 56489 } 56490 56491 if (!_this2.isDraggingScrollbar) { 56492 requestAnimationFrame(function () { 56493 _this2.updateDelta(e); 56494 56495 if (!_this2.isScrolling) _this2.startScrolling(); 56496 }); 56497 } 56498 }); 56499 this.setScrollLimit(); 56500 this.initScrollBar(); 56501 this.addSections(); 56502 this.addElements(); 56503 this.checkScroll(true); 56504 this.transformElements(true, true); 56505 56506 _get(_getPrototypeOf(_default.prototype), "init", this).call(this); 56507 } 56508 }, { 56509 key: "setScrollLimit", 56510 value: function setScrollLimit() { 56511 this.instance.limit.y = this.el.offsetHeight - this.windowHeight; 56512 56513 if (this.direction === 'horizontal') { 56514 var totalWidth = 0; 56515 var nodes = this.el.children; 56516 56517 for (var i = 0; i < nodes.length; i++) { 56518 totalWidth += nodes[i].offsetWidth; 56519 } 56520 56521 this.instance.limit.x = totalWidth - this.windowWidth; 56522 } 56523 } 56524 }, { 56525 key: "startScrolling", 56526 value: function startScrolling() { 56527 this.startScrollTs = Date.now(); // Record timestamp 56528 56529 this.isScrolling = true; 56530 this.checkScroll(); 56531 this.html.classList.add(this.scrollingClass); 56532 } 56533 }, { 56534 key: "stopScrolling", 56535 value: function stopScrolling() { 56536 cancelAnimationFrame(this.checkScrollRaf); // Prevent checkScroll to continue looping 56537 //Pevent scrollbar glitch/locking 56538 56539 this.startScrollTs = undefined; 56540 56541 if (this.scrollToRaf) { 56542 cancelAnimationFrame(this.scrollToRaf); 56543 this.scrollToRaf = null; 56544 } 56545 56546 this.isScrolling = false; 56547 this.instance.scroll.y = Math.round(this.instance.scroll.y); 56548 this.html.classList.remove(this.scrollingClass); 56549 } 56550 }, { 56551 key: "checkKey", 56552 value: function checkKey(e) { 56553 var _this3 = this; 56554 56555 if (this.stop) { 56556 // If we are stopped, we don't want any scroll to occur because of a keypress 56557 // Prevent tab to scroll to activeElement 56558 if (e.keyCode == keyCodes$1.TAB) { 56559 requestAnimationFrame(function () { 56560 // Make sure native scroll is always at top of page 56561 _this3.html.scrollTop = 0; 56562 document.body.scrollTop = 0; 56563 _this3.html.scrollLeft = 0; 56564 document.body.scrollLeft = 0; 56565 }); 56566 } 56567 56568 return; 56569 } 56570 56571 switch (e.keyCode) { 56572 case keyCodes$1.TAB: 56573 // Do not remove the RAF 56574 // It allows to override the browser's native scrollTo, which is essential 56575 requestAnimationFrame(function () { 56576 // Make sure native scroll is always at top of page 56577 _this3.html.scrollTop = 0; 56578 document.body.scrollTop = 0; 56579 _this3.html.scrollLeft = 0; 56580 document.body.scrollLeft = 0; // Request scrollTo on the focusedElement, putting it at the center of the screen 56581 56582 _this3.scrollTo(document.activeElement, { 56583 offset: -window.innerHeight / 2 56584 }); 56585 }); 56586 break; 56587 56588 case keyCodes$1.UP: 56589 if (this.isActiveElementScrollSensitive()) { 56590 this.instance.delta[this.directionAxis] -= 240; 56591 } 56592 56593 break; 56594 56595 case keyCodes$1.DOWN: 56596 if (this.isActiveElementScrollSensitive()) { 56597 this.instance.delta[this.directionAxis] += 240; 56598 } 56599 56600 break; 56601 56602 case keyCodes$1.PAGEUP: 56603 this.instance.delta[this.directionAxis] -= window.innerHeight; 56604 break; 56605 56606 case keyCodes$1.PAGEDOWN: 56607 this.instance.delta[this.directionAxis] += window.innerHeight; 56608 break; 56609 56610 case keyCodes$1.HOME: 56611 this.instance.delta[this.directionAxis] -= this.instance.limit[this.directionAxis]; 56612 break; 56613 56614 case keyCodes$1.END: 56615 this.instance.delta[this.directionAxis] += this.instance.limit[this.directionAxis]; 56616 break; 56617 56618 case keyCodes$1.SPACE: 56619 if (this.isActiveElementScrollSensitive()) { 56620 if (e.shiftKey) { 56621 this.instance.delta[this.directionAxis] -= window.innerHeight; 56622 } else { 56623 this.instance.delta[this.directionAxis] += window.innerHeight; 56624 } 56625 } 56626 56627 break; 56628 56629 default: 56630 return; 56631 } 56632 56633 if (this.instance.delta[this.directionAxis] < 0) this.instance.delta[this.directionAxis] = 0; 56634 if (this.instance.delta[this.directionAxis] > this.instance.limit[this.directionAxis]) this.instance.delta[this.directionAxis] = this.instance.limit[this.directionAxis]; 56635 this.stopScrolling(); // Stop any movement, allows to kill any other `scrollTo` still happening 56636 56637 this.isScrolling = true; 56638 this.checkScroll(); 56639 this.html.classList.add(this.scrollingClass); 56640 } 56641 }, { 56642 key: "isActiveElementScrollSensitive", 56643 value: function isActiveElementScrollSensitive() { 56644 return !(document.activeElement instanceof HTMLInputElement) && !(document.activeElement instanceof HTMLTextAreaElement) && !(document.activeElement instanceof HTMLButtonElement) && !(document.activeElement instanceof HTMLSelectElement); 56645 } 56646 }, { 56647 key: "checkScroll", 56648 value: function checkScroll() { 56649 var _this4 = this; 56650 56651 var forced = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 56652 56653 if (forced || this.isScrolling || this.isDraggingScrollbar) { 56654 if (!this.hasScrollTicking) { 56655 this.checkScrollRaf = requestAnimationFrame(function () { 56656 return _this4.checkScroll(); 56657 }); 56658 this.hasScrollTicking = true; 56659 } 56660 56661 this.updateScroll(); 56662 var distance = Math.abs(this.instance.delta[this.directionAxis] - this.instance.scroll[this.directionAxis]); 56663 var timeSinceStart = Date.now() - this.startScrollTs; // Get the time since the scroll was started: the scroll can be stopped again only past 100ms 56664 56665 if (!this.animatingScroll && timeSinceStart > 100 && (distance < 0.5 && this.instance.delta[this.directionAxis] != 0 || distance < 0.5 && this.instance.delta[this.directionAxis] == 0)) { 56666 this.stopScrolling(); 56667 } 56668 56669 Object.entries(this.sections).forEach(function (_ref) { 56670 var _ref2 = _slicedToArray(_ref, 2), 56671 i = _ref2[0], 56672 section = _ref2[1]; 56673 56674 if (section.persistent || _this4.instance.scroll[_this4.directionAxis] > section.offset[_this4.directionAxis] && _this4.instance.scroll[_this4.directionAxis] < section.limit[_this4.directionAxis]) { 56675 if (_this4.direction === 'horizontal') { 56676 _this4.transform(section.el, -_this4.instance.scroll[_this4.directionAxis], 0); 56677 } else { 56678 _this4.transform(section.el, 0, -_this4.instance.scroll[_this4.directionAxis]); 56679 } 56680 56681 if (!section.inView) { 56682 section.inView = true; 56683 section.el.style.opacity = 1; 56684 section.el.style.pointerEvents = 'all'; 56685 section.el.setAttribute("data-".concat(_this4.name, "-section-inview"), ''); 56686 } 56687 } else { 56688 if (section.inView || forced) { 56689 section.inView = false; 56690 section.el.style.opacity = 0; 56691 section.el.style.pointerEvents = 'none'; 56692 section.el.removeAttribute("data-".concat(_this4.name, "-section-inview")); 56693 } 56694 56695 _this4.transform(section.el, 0, 0); 56696 } 56697 }); 56698 56699 if (this.getDirection) { 56700 this.addDirection(); 56701 } 56702 56703 if (this.getSpeed) { 56704 this.addSpeed(); 56705 this.speedTs = Date.now(); 56706 } 56707 56708 this.detectElements(); 56709 this.transformElements(); 56710 56711 if (this.hasScrollbar) { 56712 var scrollBarTranslation = this.instance.scroll[this.directionAxis] / this.instance.limit[this.directionAxis] * this.scrollBarLimit[this.directionAxis]; 56713 56714 if (this.direction === 'horizontal') { 56715 this.transform(this.scrollbarThumb, scrollBarTranslation, 0); 56716 } else { 56717 this.transform(this.scrollbarThumb, 0, scrollBarTranslation); 56718 } 56719 } 56720 56721 _get(_getPrototypeOf(_default.prototype), "checkScroll", this).call(this); 56722 56723 this.hasScrollTicking = false; 56724 } 56725 } 56726 }, { 56727 key: "resize", 56728 value: function resize() { 56729 this.windowHeight = window.innerHeight; 56730 this.windowWidth = window.innerWidth; 56731 this.checkContext(); 56732 this.windowMiddle = { 56733 x: this.windowWidth / 2, 56734 y: this.windowHeight / 2 56735 }; 56736 this.update(); 56737 } 56738 }, { 56739 key: "updateDelta", 56740 value: function updateDelta(e) { 56741 var delta; 56742 var gestureDirection = this[this.context] && this[this.context].gestureDirection ? this[this.context].gestureDirection : this.gestureDirection; 56743 56744 if (gestureDirection === 'both') { 56745 delta = e.deltaX + e.deltaY; 56746 } else if (gestureDirection === 'vertical') { 56747 delta = e.deltaY; 56748 } else if (gestureDirection === 'horizontal') { 56749 delta = e.deltaX; 56750 } else { 56751 delta = e.deltaY; 56752 } 56753 56754 this.instance.delta[this.directionAxis] -= delta * this.multiplier; 56755 if (this.instance.delta[this.directionAxis] < 0) this.instance.delta[this.directionAxis] = 0; 56756 if (this.instance.delta[this.directionAxis] > this.instance.limit[this.directionAxis]) this.instance.delta[this.directionAxis] = this.instance.limit[this.directionAxis]; 56757 } 56758 }, { 56759 key: "updateScroll", 56760 value: function updateScroll(e) { 56761 if (this.isScrolling || this.isDraggingScrollbar) { 56762 this.instance.scroll[this.directionAxis] = lerp(this.instance.scroll[this.directionAxis], this.instance.delta[this.directionAxis], this.lerp); 56763 } else { 56764 if (this.instance.scroll[this.directionAxis] > this.instance.limit[this.directionAxis]) { 56765 this.setScroll(this.instance.scroll[this.directionAxis], this.instance.limit[this.directionAxis]); 56766 } else if (this.instance.scroll.y < 0) { 56767 this.setScroll(this.instance.scroll[this.directionAxis], 0); 56768 } else { 56769 this.setScroll(this.instance.scroll[this.directionAxis], this.instance.delta[this.directionAxis]); 56770 } 56771 } 56772 } 56773 }, { 56774 key: "addDirection", 56775 value: function addDirection() { 56776 if (this.instance.delta.y > this.instance.scroll.y) { 56777 if (this.instance.direction !== 'down') { 56778 this.instance.direction = 'down'; 56779 } 56780 } else if (this.instance.delta.y < this.instance.scroll.y) { 56781 if (this.instance.direction !== 'up') { 56782 this.instance.direction = 'up'; 56783 } 56784 } 56785 56786 if (this.instance.delta.x > this.instance.scroll.x) { 56787 if (this.instance.direction !== 'right') { 56788 this.instance.direction = 'right'; 56789 } 56790 } else if (this.instance.delta.x < this.instance.scroll.x) { 56791 if (this.instance.direction !== 'left') { 56792 this.instance.direction = 'left'; 56793 } 56794 } 56795 } 56796 }, { 56797 key: "addSpeed", 56798 value: function addSpeed() { 56799 if (this.instance.delta[this.directionAxis] != this.instance.scroll[this.directionAxis]) { 56800 this.instance.speed = (this.instance.delta[this.directionAxis] - this.instance.scroll[this.directionAxis]) / Math.max(1, Date.now() - this.speedTs); 56801 } else { 56802 this.instance.speed = 0; 56803 } 56804 } 56805 }, { 56806 key: "initScrollBar", 56807 value: function initScrollBar() { 56808 this.scrollbar = document.createElement('span'); 56809 this.scrollbarThumb = document.createElement('span'); 56810 this.scrollbar.classList.add("".concat(this.scrollbarClass)); 56811 this.scrollbarThumb.classList.add("".concat(this.scrollbarClass, "_thumb")); 56812 this.scrollbar.append(this.scrollbarThumb); 56813 56814 if (this.scrollbarContainer) { 56815 this.scrollbarContainer.append(this.scrollbar); 56816 } else { 56817 document.body.append(this.scrollbar); 56818 } // Scrollbar Events 56819 56820 56821 this.getScrollBar = this.getScrollBar.bind(this); 56822 this.releaseScrollBar = this.releaseScrollBar.bind(this); 56823 this.moveScrollBar = this.moveScrollBar.bind(this); 56824 this.scrollbarThumb.addEventListener('mousedown', this.getScrollBar); 56825 window.addEventListener('mouseup', this.releaseScrollBar); 56826 window.addEventListener('mousemove', this.moveScrollBar); // Set scrollbar values 56827 56828 this.hasScrollbar = false; 56829 56830 if (this.direction == 'horizontal') { 56831 if (this.instance.limit.x + this.windowWidth <= this.windowWidth) { 56832 return; 56833 } 56834 } else { 56835 if (this.instance.limit.y + this.windowHeight <= this.windowHeight) { 56836 return; 56837 } 56838 } 56839 56840 this.hasScrollbar = true; 56841 this.scrollbarBCR = this.scrollbar.getBoundingClientRect(); 56842 this.scrollbarHeight = this.scrollbarBCR.height; 56843 this.scrollbarWidth = this.scrollbarBCR.width; 56844 56845 if (this.direction === 'horizontal') { 56846 this.scrollbarThumb.style.width = "".concat(this.scrollbarWidth * this.scrollbarWidth / (this.instance.limit.x + this.scrollbarWidth), "px"); 56847 } else { 56848 this.scrollbarThumb.style.height = "".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit.y + this.scrollbarHeight), "px"); 56849 } 56850 56851 this.scrollbarThumbBCR = this.scrollbarThumb.getBoundingClientRect(); 56852 this.scrollBarLimit = { 56853 x: this.scrollbarWidth - this.scrollbarThumbBCR.width, 56854 y: this.scrollbarHeight - this.scrollbarThumbBCR.height 56855 }; 56856 } 56857 }, { 56858 key: "reinitScrollBar", 56859 value: function reinitScrollBar() { 56860 this.hasScrollbar = false; 56861 56862 if (this.direction == 'horizontal') { 56863 if (this.instance.limit.x + this.windowWidth <= this.windowWidth) { 56864 return; 56865 } 56866 } else { 56867 if (this.instance.limit.y + this.windowHeight <= this.windowHeight) { 56868 return; 56869 } 56870 } 56871 56872 this.hasScrollbar = true; 56873 this.scrollbarBCR = this.scrollbar.getBoundingClientRect(); 56874 this.scrollbarHeight = this.scrollbarBCR.height; 56875 this.scrollbarWidth = this.scrollbarBCR.width; 56876 56877 if (this.direction === 'horizontal') { 56878 this.scrollbarThumb.style.width = "".concat(this.scrollbarWidth * this.scrollbarWidth / (this.instance.limit.x + this.scrollbarWidth), "px"); 56879 } else { 56880 this.scrollbarThumb.style.height = "".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit.y + this.scrollbarHeight), "px"); 56881 } 56882 56883 this.scrollbarThumbBCR = this.scrollbarThumb.getBoundingClientRect(); 56884 this.scrollBarLimit = { 56885 x: this.scrollbarWidth - this.scrollbarThumbBCR.width, 56886 y: this.scrollbarHeight - this.scrollbarThumbBCR.height 56887 }; 56888 } 56889 }, { 56890 key: "destroyScrollBar", 56891 value: function destroyScrollBar() { 56892 this.scrollbarThumb.removeEventListener('mousedown', this.getScrollBar); 56893 window.removeEventListener('mouseup', this.releaseScrollBar); 56894 window.removeEventListener('mousemove', this.moveScrollBar); 56895 this.scrollbar.remove(); 56896 } 56897 }, { 56898 key: "getScrollBar", 56899 value: function getScrollBar(e) { 56900 this.isDraggingScrollbar = true; 56901 this.checkScroll(); 56902 this.html.classList.remove(this.scrollingClass); 56903 this.html.classList.add(this.draggingClass); 56904 } 56905 }, { 56906 key: "releaseScrollBar", 56907 value: function releaseScrollBar(e) { 56908 this.isDraggingScrollbar = false; 56909 56910 if (this.isScrolling) { 56911 this.html.classList.add(this.scrollingClass); 56912 } 56913 56914 this.html.classList.remove(this.draggingClass); 56915 } 56916 }, { 56917 key: "moveScrollBar", 56918 value: function moveScrollBar(e) { 56919 var _this5 = this; 56920 56921 if (this.isDraggingScrollbar) { 56922 requestAnimationFrame(function () { 56923 var x = (e.clientX - _this5.scrollbarBCR.left) * 100 / _this5.scrollbarWidth * _this5.instance.limit.x / 100; 56924 var y = (e.clientY - _this5.scrollbarBCR.top) * 100 / _this5.scrollbarHeight * _this5.instance.limit.y / 100; 56925 56926 if (y > 0 && y < _this5.instance.limit.y) { 56927 _this5.instance.delta.y = y; 56928 } 56929 56930 if (x > 0 && x < _this5.instance.limit.x) { 56931 _this5.instance.delta.x = x; 56932 } 56933 }); 56934 } 56935 } 56936 }, { 56937 key: "addElements", 56938 value: function addElements() { 56939 var _this6 = this; 56940 56941 this.els = {}; 56942 this.parallaxElements = {}; // this.sections.forEach((section, y) => { 56943 56944 var els = this.el.querySelectorAll("[data-".concat(this.name, "]")); 56945 els.forEach(function (el, index) { 56946 // Try and find the target's parent section 56947 var targetParents = getParents(el); 56948 var section = Object.entries(_this6.sections).map(function (_ref3) { 56949 var _ref4 = _slicedToArray(_ref3, 2), 56950 key = _ref4[0], 56951 section = _ref4[1]; 56952 56953 return section; 56954 }).find(function (section) { 56955 return targetParents.includes(section.el); 56956 }); 56957 var cl = el.dataset[_this6.name + 'Class'] || _this6["class"]; 56958 var id = typeof el.dataset[_this6.name + 'Id'] === 'string' ? el.dataset[_this6.name + 'Id'] : 'el' + index; 56959 var top; 56960 var left; 56961 var repeat = el.dataset[_this6.name + 'Repeat']; 56962 var call = el.dataset[_this6.name + 'Call']; 56963 var position = el.dataset[_this6.name + 'Position']; 56964 var delay = el.dataset[_this6.name + 'Delay']; 56965 var direction = el.dataset[_this6.name + 'Direction']; 56966 var sticky = typeof el.dataset[_this6.name + 'Sticky'] === 'string'; 56967 var speed = el.dataset[_this6.name + 'Speed'] ? parseFloat(el.dataset[_this6.name + 'Speed']) / 10 : false; 56968 var offset = typeof el.dataset[_this6.name + 'Offset'] === 'string' ? el.dataset[_this6.name + 'Offset'].split(',') : _this6.offset; 56969 var target = el.dataset[_this6.name + 'Target']; 56970 var targetEl; 56971 56972 if (target !== undefined) { 56973 targetEl = document.querySelector("".concat(target)); 56974 } else { 56975 targetEl = el; 56976 } 56977 56978 var targetElBCR = targetEl.getBoundingClientRect(); 56979 56980 if (section === null) { 56981 top = targetElBCR.top + _this6.instance.scroll.y - getTranslate(targetEl).y; 56982 left = targetElBCR.left + _this6.instance.scroll.x - getTranslate(targetEl).x; 56983 } else { 56984 if (!section.inView) { 56985 top = targetElBCR.top - getTranslate(section.el).y - getTranslate(targetEl).y; 56986 left = targetElBCR.left - getTranslate(section.el).x - getTranslate(targetEl).x; 56987 } else { 56988 top = targetElBCR.top + _this6.instance.scroll.y - getTranslate(targetEl).y; 56989 left = targetElBCR.left + _this6.instance.scroll.x - getTranslate(targetEl).x; 56990 } 56991 } 56992 56993 var bottom = top + targetEl.offsetHeight; 56994 var right = left + targetEl.offsetWidth; 56995 var middle = { 56996 x: (right - left) / 2 + left, 56997 y: (bottom - top) / 2 + top 56998 }; 56999 57000 if (sticky) { 57001 var elBCR = el.getBoundingClientRect(); 57002 var elTop = elBCR.top; 57003 var elLeft = elBCR.left; 57004 var elDistance = { 57005 x: elLeft - left, 57006 y: elTop - top 57007 }; 57008 top += window.innerHeight; 57009 left += window.innerWidth; 57010 bottom = elTop + targetEl.offsetHeight - el.offsetHeight - elDistance[_this6.directionAxis]; 57011 right = elLeft + targetEl.offsetWidth - el.offsetWidth - elDistance[_this6.directionAxis]; 57012 middle = { 57013 x: (right - left) / 2 + left, 57014 y: (bottom - top) / 2 + top 57015 }; 57016 } 57017 57018 if (repeat == 'false') { 57019 repeat = false; 57020 } else if (repeat != undefined) { 57021 repeat = true; 57022 } else { 57023 repeat = _this6.repeat; 57024 } 57025 57026 var relativeOffset = [0, 0]; 57027 57028 if (offset) { 57029 if (_this6.direction === 'horizontal') { 57030 for (var i = 0; i < offset.length; i++) { 57031 if (typeof offset[i] == 'string') { 57032 if (offset[i].includes('%')) { 57033 relativeOffset[i] = parseInt(offset[i].replace('%', '') * _this6.windowWidth / 100); 57034 } else { 57035 relativeOffset[i] = parseInt(offset[i]); 57036 } 57037 } else { 57038 relativeOffset[i] = offset[i]; 57039 } 57040 } 57041 57042 left = left + relativeOffset[0]; 57043 right = right - relativeOffset[1]; 57044 } else { 57045 for (var i = 0; i < offset.length; i++) { 57046 if (typeof offset[i] == 'string') { 57047 if (offset[i].includes('%')) { 57048 relativeOffset[i] = parseInt(offset[i].replace('%', '') * _this6.windowHeight / 100); 57049 } else { 57050 relativeOffset[i] = parseInt(offset[i]); 57051 } 57052 } else { 57053 relativeOffset[i] = offset[i]; 57054 } 57055 } 57056 57057 top = top + relativeOffset[0]; 57058 bottom = bottom - relativeOffset[1]; 57059 } 57060 } 57061 57062 var mappedEl = { 57063 el: el, 57064 id: id, 57065 "class": cl, 57066 section: section, 57067 top: top, 57068 middle: middle, 57069 bottom: bottom, 57070 left: left, 57071 right: right, 57072 offset: offset, 57073 progress: 0, 57074 repeat: repeat, 57075 inView: false, 57076 call: call, 57077 speed: speed, 57078 delay: delay, 57079 position: position, 57080 target: targetEl, 57081 direction: direction, 57082 sticky: sticky 57083 }; 57084 _this6.els[id] = mappedEl; 57085 57086 if (el.classList.contains(cl)) { 57087 _this6.setInView(_this6.els[id], id); 57088 } 57089 57090 if (speed !== false || sticky) { 57091 _this6.parallaxElements[id] = mappedEl; 57092 } 57093 }); // }); 57094 } 57095 }, { 57096 key: "addSections", 57097 value: function addSections() { 57098 var _this7 = this; 57099 57100 this.sections = {}; 57101 var sections = this.el.querySelectorAll("[data-".concat(this.name, "-section]")); 57102 57103 if (sections.length === 0) { 57104 sections = [this.el]; 57105 } 57106 57107 sections.forEach(function (section, index) { 57108 var id = typeof section.dataset[_this7.name + 'Id'] === 'string' ? section.dataset[_this7.name + 'Id'] : 'section' + index; 57109 var sectionBCR = section.getBoundingClientRect(); 57110 var offset = { 57111 x: sectionBCR.left - window.innerWidth * 1.5 - getTranslate(section).x, 57112 y: sectionBCR.top - window.innerHeight * 1.5 - getTranslate(section).y 57113 }; 57114 var limit = { 57115 x: offset.x + sectionBCR.width + window.innerWidth * 2, 57116 y: offset.y + sectionBCR.height + window.innerHeight * 2 57117 }; 57118 var persistent = typeof section.dataset[_this7.name + 'Persistent'] === 'string'; 57119 section.setAttribute('data-scroll-section-id', id); 57120 var mappedSection = { 57121 el: section, 57122 offset: offset, 57123 limit: limit, 57124 inView: false, 57125 persistent: persistent, 57126 id: id 57127 }; 57128 _this7.sections[id] = mappedSection; 57129 }); 57130 } 57131 }, { 57132 key: "transform", 57133 value: function transform(element, x, y, delay) { 57134 var transform; 57135 57136 if (!delay) { 57137 transform = "matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,".concat(x, ",").concat(y, ",0,1)"); 57138 } else { 57139 var start = getTranslate(element); 57140 var lerpX = lerp(start.x, x, delay); 57141 var lerpY = lerp(start.y, y, delay); 57142 transform = "matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,".concat(lerpX, ",").concat(lerpY, ",0,1)"); 57143 } 57144 57145 element.style.webkitTransform = transform; 57146 element.style.msTransform = transform; 57147 element.style.transform = transform; 57148 } 57149 }, { 57150 key: "transformElements", 57151 value: function transformElements(isForced) { 57152 var _this8 = this; 57153 57154 var setAllElements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 57155 var scrollRight = this.instance.scroll.x + this.windowWidth; 57156 var scrollBottom = this.instance.scroll.y + this.windowHeight; 57157 var scrollMiddle = { 57158 x: this.instance.scroll.x + this.windowMiddle.x, 57159 y: this.instance.scroll.y + this.windowMiddle.y 57160 }; 57161 Object.entries(this.parallaxElements).forEach(function (_ref5) { 57162 var _ref6 = _slicedToArray(_ref5, 2), 57163 i = _ref6[0], 57164 current = _ref6[1]; 57165 57166 var transformDistance = false; 57167 57168 if (isForced) { 57169 transformDistance = 0; 57170 } 57171 57172 if (current.inView || setAllElements) { 57173 switch (current.position) { 57174 case 'top': 57175 transformDistance = _this8.instance.scroll[_this8.directionAxis] * -current.speed; 57176 break; 57177 57178 case 'elementTop': 57179 transformDistance = (scrollBottom - current.top) * -current.speed; 57180 break; 57181 57182 case 'bottom': 57183 transformDistance = (_this8.instance.limit[_this8.directionAxis] - scrollBottom + _this8.windowHeight) * current.speed; 57184 break; 57185 57186 case 'left': 57187 transformDistance = _this8.instance.scroll[_this8.directionAxis] * -current.speed; 57188 break; 57189 57190 case 'elementLeft': 57191 transformDistance = (scrollRight - current.left) * -current.speed; 57192 break; 57193 57194 case 'right': 57195 transformDistance = (_this8.instance.limit[_this8.directionAxis] - scrollRight + _this8.windowHeight) * current.speed; 57196 break; 57197 57198 default: 57199 transformDistance = (scrollMiddle[_this8.directionAxis] - current.middle[_this8.directionAxis]) * -current.speed; 57200 break; 57201 } 57202 } 57203 57204 if (current.sticky) { 57205 if (current.inView) { 57206 if (_this8.direction === 'horizontal') { 57207 transformDistance = _this8.instance.scroll.x - current.left + window.innerWidth; 57208 } else { 57209 transformDistance = _this8.instance.scroll.y - current.top + window.innerHeight; 57210 } 57211 } else { 57212 if (_this8.direction === 'horizontal') { 57213 if (_this8.instance.scroll.x < current.left - window.innerWidth && _this8.instance.scroll.x < current.left - window.innerWidth / 2) { 57214 transformDistance = 0; 57215 } else if (_this8.instance.scroll.x > current.right && _this8.instance.scroll.x > current.right + 100) { 57216 transformDistance = current.right - current.left + window.innerWidth; 57217 } else { 57218 transformDistance = false; 57219 } 57220 } else { 57221 if (_this8.instance.scroll.y < current.top - window.innerHeight && _this8.instance.scroll.y < current.top - window.innerHeight / 2) { 57222 transformDistance = 0; 57223 } else if (_this8.instance.scroll.y > current.bottom && _this8.instance.scroll.y > current.bottom + 100) { 57224 transformDistance = current.bottom - current.top + window.innerHeight; 57225 } else { 57226 transformDistance = false; 57227 } 57228 } 57229 } 57230 } 57231 57232 if (transformDistance !== false) { 57233 if (current.direction === 'horizontal' || _this8.direction === 'horizontal' && current.direction !== 'vertical') { 57234 _this8.transform(current.el, transformDistance, 0, isForced ? false : current.delay); 57235 } else { 57236 _this8.transform(current.el, 0, transformDistance, isForced ? false : current.delay); 57237 } 57238 } 57239 }); 57240 } 57241 /** 57242 * Scroll to a desired target. 57243 * 57244 * @param Available options : 57245 * target {node, string, "top", "bottom", int} - The DOM element we want to scroll to 57246 * options {object} - Options object for additionnal settings. 57247 * @return {void} 57248 */ 57249 57250 }, { 57251 key: "scrollTo", 57252 value: function scrollTo(target) { 57253 var _this9 = this; 57254 57255 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 57256 // Parse options 57257 var offset = parseInt(options.offset) || 0; // An offset to apply on top of given `target` or `sourceElem`'s target 57258 57259 var duration = !isNaN(parseInt(options.duration)) ? parseInt(options.duration) : 1000; // Duration of the scroll animation in milliseconds 57260 57261 var easing = options.easing || [0.25, 0.0, 0.35, 1.0]; // An array of 4 floats between 0 and 1 defining the bezier curve for the animation's easing. See http://greweb.me/bezier-easing-editor/example/ 57262 57263 var disableLerp = options.disableLerp ? true : false; // Lerp effect won't be applied if set to true 57264 57265 var callback = options.callback ? options.callback : false; // function called when scrollTo completes (note that it won't wait for lerp to stabilize) 57266 57267 easing = src$1.apply(void 0, _toConsumableArray(easing)); 57268 57269 if (typeof target === 'string') { 57270 // Selector or boundaries 57271 if (target === 'top') { 57272 target = 0; 57273 } else if (target === 'bottom') { 57274 target = this.instance.limit.y; 57275 } else if (target === 'left') { 57276 target = 0; 57277 } else if (target === 'right') { 57278 target = this.instance.limit.x; 57279 } else { 57280 target = document.querySelector(target); // If the query fails, abort 57281 57282 if (!target) { 57283 return; 57284 } 57285 } 57286 } else if (typeof target === 'number') { 57287 // Absolute coordinate 57288 target = parseInt(target); 57289 } else if (target && target.tagName) ; else { 57290 console.warn('`target` parameter is not valid'); 57291 return; 57292 } // We have a target that is not a coordinate yet, get it 57293 57294 57295 if (typeof target !== 'number') { 57296 // Verify the given target belongs to this scroll scope 57297 var targetInScope = getParents(target).includes(this.el); 57298 57299 if (!targetInScope) { 57300 // If the target isn't inside our main element, abort any action 57301 return; 57302 } // Get target offset from top 57303 57304 57305 var targetBCR = target.getBoundingClientRect(); 57306 var offsetTop = targetBCR.top; 57307 var offsetLeft = targetBCR.left; // Try and find the target's parent section 57308 57309 var targetParents = getParents(target); 57310 var parentSection = targetParents.find(function (candidate) { 57311 return Object.entries(_this9.sections) // Get sections associative array as a regular array 57312 .map(function (_ref7) { 57313 var _ref8 = _slicedToArray(_ref7, 2), 57314 key = _ref8[0], 57315 section = _ref8[1]; 57316 57317 return section; 57318 }) // map to section only (we dont need the key here) 57319 .find(function (section) { 57320 return section.el == candidate; 57321 }); // finally find the section that matches the candidate 57322 }); 57323 var parentSectionOffset = 0; 57324 57325 if (parentSection) { 57326 parentSectionOffset = getTranslate(parentSection)[this.directionAxis]; // We got a parent section, store it's current offset to remove it later 57327 } else { 57328 // if no parent section is found we need to use instance scroll directly 57329 parentSectionOffset = -this.instance.scroll[this.directionAxis]; 57330 } // Final value of scroll destination : offsetTop + (optional offset given in options) - (parent's section translate) 57331 57332 57333 if (this.direction === 'horizontal') { 57334 offset = offsetLeft + offset - parentSectionOffset; 57335 } else { 57336 offset = offsetTop + offset - parentSectionOffset; 57337 } 57338 } else { 57339 offset = target + offset; 57340 } // Actual scrollto 57341 // ========================================================================== 57342 // Setup 57343 57344 57345 var scrollStart = parseFloat(this.instance.delta[this.directionAxis]); 57346 var scrollTarget = Math.max(0, Math.min(offset, this.instance.limit[this.directionAxis])); // Make sure our target is in the scroll boundaries 57347 57348 var scrollDiff = scrollTarget - scrollStart; 57349 57350 var render = function render(p) { 57351 if (disableLerp) { 57352 if (_this9.direction === 'horizontal') { 57353 _this9.setScroll(scrollStart + scrollDiff * p, _this9.instance.delta.y); 57354 } else { 57355 _this9.setScroll(_this9.instance.delta.x, scrollStart + scrollDiff * p); 57356 } 57357 } else { 57358 _this9.instance.delta[_this9.directionAxis] = scrollStart + scrollDiff * p; 57359 } 57360 }; // Prepare the scroll 57361 57362 57363 this.animatingScroll = true; // This boolean allows to prevent `checkScroll()` from calling `stopScrolling` when the animation is slow (i.e. at the beginning of an EaseIn) 57364 57365 this.stopScrolling(); // Stop any movement, allows to kill any other `scrollTo` still happening 57366 57367 this.startScrolling(); // Restart the scroll 57368 // Start the animation loop 57369 57370 var start = Date.now(); 57371 57372 var loop = function loop() { 57373 var p = (Date.now() - start) / duration; // Animation progress 57374 57375 if (p > 1) { 57376 // Animation ends 57377 render(1); 57378 _this9.animatingScroll = false; 57379 if (duration == 0) _this9.update(); 57380 if (callback) callback(); 57381 } else { 57382 _this9.scrollToRaf = requestAnimationFrame(loop); 57383 render(easing(p)); 57384 } 57385 }; 57386 57387 loop(); 57388 } 57389 }, { 57390 key: "update", 57391 value: function update() { 57392 this.setScrollLimit(); 57393 this.addSections(); 57394 this.addElements(); 57395 this.detectElements(); 57396 this.updateScroll(); 57397 this.transformElements(true); 57398 this.reinitScrollBar(); 57399 this.checkScroll(true); 57400 } 57401 }, { 57402 key: "startScroll", 57403 value: function startScroll() { 57404 this.stop = false; 57405 } 57406 }, { 57407 key: "stopScroll", 57408 value: function stopScroll() { 57409 this.stop = true; 57410 } 57411 }, { 57412 key: "setScroll", 57413 value: function setScroll(x, y) { 57414 this.instance = _objectSpread2(_objectSpread2({}, this.instance), {}, { 57415 scroll: { 57416 x: x, 57417 y: y 57418 }, 57419 delta: { 57420 x: x, 57421 y: y 57422 }, 57423 speed: 0 57424 }); 57425 } 57426 }, { 57427 key: "destroy", 57428 value: function destroy() { 57429 _get(_getPrototypeOf(_default.prototype), "destroy", this).call(this); 57430 57431 this.stopScrolling(); 57432 this.html.classList.remove(this.smoothClass); 57433 this.vs.destroy(); 57434 this.destroyScrollBar(); 57435 window.removeEventListener('keydown', this.checkKey, false); 57436 } 57437 }]); 57438 57439 return _default; 57440}(_default); 57441 57442var Smooth = /*#__PURE__*/function () { 57443 function Smooth() { 57444 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 57445 57446 _classCallCheck(this, Smooth); 57447 57448 this.options = options; // Override default options with given ones 57449 57450 Object.assign(this, defaults, options); 57451 this.smartphone = defaults.smartphone; 57452 if (options.smartphone) Object.assign(this.smartphone, options.smartphone); 57453 this.tablet = defaults.tablet; 57454 if (options.tablet) Object.assign(this.tablet, options.tablet); 57455 if (!this.smooth && this.direction == 'horizontal') console.warn('ð¨ `smooth:false` & `horizontal` direction are not yet compatible'); 57456 if (!this.tablet.smooth && this.tablet.direction == 'horizontal') console.warn('ð¨ `smooth:false` & `horizontal` direction are not yet compatible (tablet)'); 57457 if (!this.smartphone.smooth && this.smartphone.direction == 'horizontal') console.warn('ð¨ `smooth:false` & `horizontal` direction are not yet compatible (smartphone)'); 57458 this.init(); 57459 } 57460 57461 _createClass(Smooth, [{ 57462 key: "init", 57463 value: function init() { 57464 this.options.isMobile = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 || window.innerWidth < this.tablet.breakpoint; 57465 this.options.isTablet = this.options.isMobile && window.innerWidth >= this.tablet.breakpoint; 57466 57467 if (this.smooth && !this.options.isMobile || this.tablet.smooth && this.options.isTablet || this.smartphone.smooth && this.options.isMobile && !this.options.isTablet) { 57468 this.scroll = new _default$2(this.options); 57469 } else { 57470 this.scroll = new _default$1(this.options); 57471 } 57472 57473 this.scroll.init(); 57474 57475 if (window.location.hash) { 57476 // Get the hash without the '#' and find the matching element 57477 var id = window.location.hash.slice(1, window.location.hash.length); 57478 var target = document.getElementById(id); // If found, scroll to the element 57479 57480 if (target) this.scroll.scrollTo(target); 57481 } 57482 } 57483 }, { 57484 key: "update", 57485 value: function update() { 57486 this.scroll.update(); 57487 } 57488 }, { 57489 key: "start", 57490 value: function start() { 57491 this.scroll.startScroll(); 57492 } 57493 }, { 57494 key: "stop", 57495 value: function stop() { 57496 this.scroll.stopScroll(); 57497 } 57498 }, { 57499 key: "scrollTo", 57500 value: function scrollTo(target, options) { 57501 this.scroll.scrollTo(target, options); 57502 } 57503 }, { 57504 key: "setScroll", 57505 value: function setScroll(x, y) { 57506 this.scroll.setScroll(x, y); 57507 } 57508 }, { 57509 key: "on", 57510 value: function on(event, func) { 57511 this.scroll.setEvents(event, func); 57512 } 57513 }, { 57514 key: "off", 57515 value: function off(event, func) { 57516 this.scroll.unsetEvents(event, func); 57517 } 57518 }, { 57519 key: "destroy", 57520 value: function destroy() { 57521 this.scroll.destroy(); 57522 } 57523 }]); 57524 57525 return Smooth; 57526}(); 57527 57528var Native = /*#__PURE__*/function () { 57529 function Native() { 57530 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 57531 57532 _classCallCheck(this, Native); 57533 57534 this.options = options; // Override default options with given ones 57535 57536 Object.assign(this, defaults, options); 57537 this.smartphone = defaults.smartphone; 57538 if (options.smartphone) Object.assign(this.smartphone, options.smartphone); 57539 this.tablet = defaults.tablet; 57540 if (options.tablet) Object.assign(this.tablet, options.tablet); 57541 this.init(); 57542 } 57543 57544 _createClass(Native, [{ 57545 key: "init", 57546 value: function init() { 57547 this.scroll = new _default$1(this.options); 57548 this.scroll.init(); 57549 57550 if (window.location.hash) { 57551 // Get the hash without the '#' and find the matching element 57552 var id = window.location.hash.slice(1, window.location.hash.length); 57553 var target = document.getElementById(id); // If found, scroll to the element 57554 57555 if (target) this.scroll.scrollTo(target); 57556 } 57557 } 57558 }, { 57559 key: "update", 57560 value: function update() { 57561 this.scroll.update(); 57562 } 57563 }, { 57564 key: "start", 57565 value: function start() { 57566 this.scroll.startScroll(); 57567 } 57568 }, { 57569 key: "stop", 57570 value: function stop() { 57571 this.scroll.stopScroll(); 57572 } 57573 }, { 57574 key: "scrollTo", 57575 value: function scrollTo(target, options) { 57576 this.scroll.scrollTo(target, options); 57577 } 57578 }, { 57579 key: "setScroll", 57580 value: function setScroll(x, y) { 57581 this.scroll.setScroll(x, y); 57582 } 57583 }, { 57584 key: "on", 57585 value: function on(event, func) { 57586 this.scroll.setEvents(event, func); 57587 } 57588 }, { 57589 key: "off", 57590 value: function off(event, func) { 57591 this.scroll.unsetEvents(event, func); 57592 } 57593 }, { 57594 key: "destroy", 57595 value: function destroy() { 57596 this.scroll.destroy(); 57597 } 57598 }]); 57599 57600 return Native; 57601}(); 57602 57603/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Smooth); 57604 57605 57606 57607/***/ }), 57608
vendor: 2,898 bytes, lines 57609-57698
57609/***/ "./node_modules/moment/locale/af.js": 57610/*!******************************************!*\ 57611 !*** ./node_modules/moment/locale/af.js ***! 57612 \******************************************/ 57613/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 57614 57615//! moment.js locale configuration 57616//! locale : Afrikaans [af] 57617//! author : Werner Mollentze : https://github.com/wernerm 57618 57619;(function (global, factory) { 57620 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 57621 0 57622}(this, (function (moment) { 'use strict'; 57623 57624 //! moment.js locale configuration 57625 57626 var af = moment.defineLocale('af', { 57627 months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( 57628 '_' 57629 ), 57630 monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), 57631 weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( 57632 '_' 57633 ), 57634 weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), 57635 weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), 57636 meridiemParse: /vm|nm/i, 57637 isPM: function (input) { 57638 return /^nm$/i.test(input); 57639 }, 57640 meridiem: function (hours, minutes, isLower) { 57641 if (hours < 12) { 57642 return isLower ? 'vm' : 'VM'; 57643 } else { 57644 return isLower ? 'nm' : 'NM'; 57645 } 57646 }, 57647 longDateFormat: { 57648 LT: 'HH:mm', 57649 LTS: 'HH:mm:ss', 57650 L: 'DD/MM/YYYY', 57651 LL: 'D MMMM YYYY', 57652 LLL: 'D MMMM YYYY HH:mm', 57653 LLLL: 'dddd, D MMMM YYYY HH:mm', 57654 }, 57655 calendar: { 57656 sameDay: '[Vandag om] LT', 57657 nextDay: '[Môre om] LT', 57658 nextWeek: 'dddd [om] LT', 57659 lastDay: '[Gister om] LT', 57660 lastWeek: '[Laas] dddd [om] LT', 57661 sameElse: 'L', 57662 }, 57663 relativeTime: { 57664 future: 'oor %s', 57665 past: '%s gelede', 57666 s: "'n paar sekondes", 57667 ss: '%d sekondes', 57668 m: "'n minuut", 57669 mm: '%d minute', 57670 h: "'n uur", 57671 hh: '%d ure', 57672 d: "'n dag", 57673 dd: '%d dae', 57674 M: "'n maand", 57675 MM: '%d maande', 57676 y: "'n jaar", 57677 yy: '%d jaar', 57678 }, 57679 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 57680 ordinal: function (number) { 57681 return ( 57682 number + 57683 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 57684 ); // Thanks to Joris Röling : https://github.com/jjupiter 57685 }, 57686 week: { 57687 dow: 1, // Maandag is die eerste dag van die week. 57688 doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. 57689 }, 57690 }); 57691 57692 return af; 57693 57694}))); 57695 57696 57697/***/ }), 57698
vendor: 5,574 bytes, lines 57699-57873
57699/***/ "./node_modules/moment/locale/ar-dz.js": 57700/*!*********************************************!*\ 57701 !*** ./node_modules/moment/locale/ar-dz.js ***! 57702 \*********************************************/ 57703/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 57704 57705//! moment.js locale configuration 57706//! locale : Arabic (Algeria) [ar-dz] 57707//! author : Amine Roukh: https://github.com/Amine27 57708//! author : Abdel Said: https://github.com/abdelsaid 57709//! author : Ahmed Elkhatib 57710//! author : forabi https://github.com/forabi 57711//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem 57712 57713;(function (global, factory) { 57714 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 57715 0 57716}(this, (function (moment) { 'use strict'; 57717 57718 //! moment.js locale configuration 57719 57720 var pluralForm = function (n) { 57721 return n === 0 57722 ? 0 57723 : n === 1 57724 ? 1 57725 : n === 2 57726 ? 2 57727 : n % 100 >= 3 && n % 100 <= 10 57728 ? 3 57729 : n % 100 >= 11 57730 ? 4 57731 : 5; 57732 }, 57733 plurals = { 57734 s: [ 57735 'Ø£Ù٠٠٠ثاÙÙØ©', 57736 'ثاÙÙØ© ÙØ§ØØ¯Ø©', 57737 ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], 57738 '%d Ø«ÙØ§Ù', 57739 '%d ثاÙÙØ©', 57740 '%d ثاÙÙØ©', 57741 ], 57742 m: [ 57743 'Ø£Ù٠٠٠دÙÙÙØ©', 57744 'دÙÙÙØ© ÙØ§ØØ¯Ø©', 57745 ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], 57746 '%d Ø¯ÙØ§Ø¦Ù', 57747 '%d دÙÙÙØ©', 57748 '%d دÙÙÙØ©', 57749 ], 57750 h: [ 57751 'Ø£Ù٠٠٠ساعة', 57752 'ساعة ÙØ§ØØ¯Ø©', 57753 ['ساعتاÙ', 'ساعتÙÙ'], 57754 '%d ساعات', 57755 '%d ساعة', 57756 '%d ساعة', 57757 ], 57758 d: [ 57759 'Ø£ÙÙ Ù Ù ÙÙÙ ', 57760 'ÙÙÙ ÙØ§ØØ¯', 57761 ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], 57762 '%d Ø£ÙØ§Ù ', 57763 '%d ÙÙÙ ÙØ§', 57764 '%d ÙÙÙ ', 57765 ], 57766 M: [ 57767 'Ø£ÙÙ Ù Ù Ø´ÙØ±', 57768 'Ø´ÙØ± ÙØ§ØØ¯', 57769 ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], 57770 '%d Ø£Ø´ÙØ±', 57771 '%d Ø´ÙØ±Ø§', 57772 '%d Ø´ÙØ±', 57773 ], 57774 y: [ 57775 'Ø£Ù٠٠٠عا٠', 57776 'Ø¹Ø§Ù ÙØ§ØØ¯', 57777 ['عا٠اÙ', 'عا٠ÙÙ'], 57778 '%d Ø£Ø¹ÙØ§Ù ', 57779 '%d Ø¹Ø§Ù ÙØ§', 57780 '%d عا٠', 57781 ], 57782 }, 57783 pluralize = function (u) { 57784 return function (number, withoutSuffix, string, isFuture) { 57785 var f = pluralForm(number), 57786 str = plurals[u][pluralForm(number)]; 57787 if (f === 2) { 57788 str = str[withoutSuffix ? 0 : 1]; 57789 } 57790 return str.replace(/%d/i, number); 57791 }; 57792 }, 57793 months = [ 57794 'جاÙÙÙ', 57795 'ÙÙÙØ±Ù', 57796 '٠ارس', 57797 'Ø£ÙØ±ÙÙ', 57798 '٠اÙ', 57799 'Ø¬ÙØ§Ù', 57800 'جÙÙÙÙØ©', 57801 'Ø£ÙØª', 57802 'سبت٠بر', 57803 'Ø£ÙØªÙبر', 57804 'ÙÙÙ٠بر', 57805 'Ø¯ÙØ³Ù بر', 57806 ]; 57807 57808 var arDz = moment.defineLocale('ar-dz', { 57809 months: months, 57810 monthsShort: months, 57811 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 57812 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 57813 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 57814 weekdaysParseExact: true, 57815 longDateFormat: { 57816 LT: 'HH:mm', 57817 LTS: 'HH:mm:ss', 57818 L: 'D/\u200FM/\u200FYYYY', 57819 LL: 'D MMMM YYYY', 57820 LLL: 'D MMMM YYYY HH:mm', 57821 LLLL: 'dddd D MMMM YYYY HH:mm', 57822 }, 57823 meridiemParse: /ص|Ù /, 57824 isPM: function (input) { 57825 return 'Ù ' === input; 57826 }, 57827 meridiem: function (hour, minute, isLower) { 57828 if (hour < 12) { 57829 return 'ص'; 57830 } else { 57831 return 'Ù '; 57832 } 57833 }, 57834 calendar: { 57835 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 57836 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 57837 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 57838 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 57839 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 57840 sameElse: 'L', 57841 }, 57842 relativeTime: { 57843 future: 'بعد %s', 57844 past: 'Ù ÙØ° %s', 57845 s: pluralize('s'), 57846 ss: pluralize('s'), 57847 m: pluralize('m'), 57848 mm: pluralize('m'), 57849 h: pluralize('h'), 57850 hh: pluralize('h'), 57851 d: pluralize('d'), 57852 dd: pluralize('d'), 57853 M: pluralize('M'), 57854 MM: pluralize('M'), 57855 y: pluralize('y'), 57856 yy: pluralize('y'), 57857 }, 57858 postformat: function (string) { 57859 return string.replace(/,/g, 'Ø'); 57860 }, 57861 week: { 57862 dow: 0, // Sunday is the first day of the week. 57863 doy: 4, // The week that contains Jan 4th is the first week of the year. 57864 }, 57865 }); 57866 57867 return arDz; 57868 57869}))); 57870 57871 57872/***/ }), 57873
vendor: 2,635 bytes, lines 57874-57947
57874/***/ "./node_modules/moment/locale/ar-kw.js": 57875/*!*********************************************!*\ 57876 !*** ./node_modules/moment/locale/ar-kw.js ***! 57877 \*********************************************/ 57878/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 57879 57880//! moment.js locale configuration 57881//! locale : Arabic (Kuwait) [ar-kw] 57882//! author : Nusret Parlak: https://github.com/nusretparlak 57883 57884;(function (global, factory) { 57885 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 57886 0 57887}(this, (function (moment) { 'use strict'; 57888 57889 //! moment.js locale configuration 57890 57891 var arKw = moment.defineLocale('ar-kw', { 57892 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 57893 '_' 57894 ), 57895 monthsShort: 57896 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 57897 '_' 57898 ), 57899 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥ØªÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 57900 weekdaysShort: 'Ø§ØØ¯_اتÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_اربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 57901 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 57902 weekdaysParseExact: true, 57903 longDateFormat: { 57904 LT: 'HH:mm', 57905 LTS: 'HH:mm:ss', 57906 L: 'DD/MM/YYYY', 57907 LL: 'D MMMM YYYY', 57908 LLL: 'D MMMM YYYY HH:mm', 57909 LLLL: 'dddd D MMMM YYYY HH:mm', 57910 }, 57911 calendar: { 57912 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 57913 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 57914 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 57915 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 57916 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 57917 sameElse: 'L', 57918 }, 57919 relativeTime: { 57920 future: 'ÙÙ %s', 57921 past: 'Ù ÙØ° %s', 57922 s: 'Ø«ÙØ§Ù', 57923 ss: '%d ثاÙÙØ©', 57924 m: 'دÙÙÙØ©', 57925 mm: '%d Ø¯ÙØ§Ø¦Ù', 57926 h: 'ساعة', 57927 hh: '%d ساعات', 57928 d: 'ÙÙÙ ', 57929 dd: '%d Ø£ÙØ§Ù ', 57930 M: 'Ø´ÙØ±', 57931 MM: '%d Ø£Ø´ÙØ±', 57932 y: 'Ø³ÙØ©', 57933 yy: '%d سÙÙØ§Øª', 57934 }, 57935 week: { 57936 dow: 0, // Sunday is the first day of the week. 57937 doy: 12, // The week that contains Jan 12th is the first week of the year. 57938 }, 57939 }); 57940 57941 return arKw; 57942 57943}))); 57944 57945 57946/***/ }), 57947
vendor: 5,849 bytes, lines 57948-58137
57948/***/ "./node_modules/moment/locale/ar-ly.js": 57949/*!*********************************************!*\ 57950 !*** ./node_modules/moment/locale/ar-ly.js ***! 57951 \*********************************************/ 57952/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 57953 57954//! moment.js locale configuration 57955//! locale : Arabic (Libya) [ar-ly] 57956//! author : Ali Hmer: https://github.com/kikoanis 57957 57958;(function (global, factory) { 57959 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 57960 0 57961}(this, (function (moment) { 'use strict'; 57962 57963 //! moment.js locale configuration 57964 57965 var symbolMap = { 57966 1: '1', 57967 2: '2', 57968 3: '3', 57969 4: '4', 57970 5: '5', 57971 6: '6', 57972 7: '7', 57973 8: '8', 57974 9: '9', 57975 0: '0', 57976 }, 57977 pluralForm = function (n) { 57978 return n === 0 57979 ? 0 57980 : n === 1 57981 ? 1 57982 : n === 2 57983 ? 2 57984 : n % 100 >= 3 && n % 100 <= 10 57985 ? 3 57986 : n % 100 >= 11 57987 ? 4 57988 : 5; 57989 }, 57990 plurals = { 57991 s: [ 57992 'Ø£Ù٠٠٠ثاÙÙØ©', 57993 'ثاÙÙØ© ÙØ§ØØ¯Ø©', 57994 ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], 57995 '%d Ø«ÙØ§Ù', 57996 '%d ثاÙÙØ©', 57997 '%d ثاÙÙØ©', 57998 ], 57999 m: [ 58000 'Ø£Ù٠٠٠دÙÙÙØ©', 58001 'دÙÙÙØ© ÙØ§ØØ¯Ø©', 58002 ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], 58003 '%d Ø¯ÙØ§Ø¦Ù', 58004 '%d دÙÙÙØ©', 58005 '%d دÙÙÙØ©', 58006 ], 58007 h: [ 58008 'Ø£Ù٠٠٠ساعة', 58009 'ساعة ÙØ§ØØ¯Ø©', 58010 ['ساعتاÙ', 'ساعتÙÙ'], 58011 '%d ساعات', 58012 '%d ساعة', 58013 '%d ساعة', 58014 ], 58015 d: [ 58016 'Ø£ÙÙ Ù Ù ÙÙÙ ', 58017 'ÙÙÙ ÙØ§ØØ¯', 58018 ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], 58019 '%d Ø£ÙØ§Ù ', 58020 '%d ÙÙÙ ÙØ§', 58021 '%d ÙÙÙ ', 58022 ], 58023 M: [ 58024 'Ø£ÙÙ Ù Ù Ø´ÙØ±', 58025 'Ø´ÙØ± ÙØ§ØØ¯', 58026 ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], 58027 '%d Ø£Ø´ÙØ±', 58028 '%d Ø´ÙØ±Ø§', 58029 '%d Ø´ÙØ±', 58030 ], 58031 y: [ 58032 'Ø£Ù٠٠٠عا٠', 58033 'Ø¹Ø§Ù ÙØ§ØØ¯', 58034 ['عا٠اÙ', 'عا٠ÙÙ'], 58035 '%d Ø£Ø¹ÙØ§Ù ', 58036 '%d Ø¹Ø§Ù ÙØ§', 58037 '%d عا٠', 58038 ], 58039 }, 58040 pluralize = function (u) { 58041 return function (number, withoutSuffix, string, isFuture) { 58042 var f = pluralForm(number), 58043 str = plurals[u][pluralForm(number)]; 58044 if (f === 2) { 58045 str = str[withoutSuffix ? 0 : 1]; 58046 } 58047 return str.replace(/%d/i, number); 58048 }; 58049 }, 58050 months = [ 58051 'ÙÙØ§Ùر', 58052 'ÙØ¨Ø±Ø§Ùر', 58053 '٠ارس', 58054 'أبرÙÙ', 58055 '٠اÙÙ', 58056 'ÙÙÙÙÙ', 58057 'ÙÙÙÙÙ', 58058 'أغسطس', 58059 'سبت٠بر', 58060 'Ø£ÙØªÙبر', 58061 'ÙÙÙ٠بر', 58062 'Ø¯ÙØ³Ù بر', 58063 ]; 58064 58065 var arLy = moment.defineLocale('ar-ly', { 58066 months: months, 58067 monthsShort: months, 58068 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 58069 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 58070 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 58071 weekdaysParseExact: true, 58072 longDateFormat: { 58073 LT: 'HH:mm', 58074 LTS: 'HH:mm:ss', 58075 L: 'D/\u200FM/\u200FYYYY', 58076 LL: 'D MMMM YYYY', 58077 LLL: 'D MMMM YYYY HH:mm', 58078 LLLL: 'dddd D MMMM YYYY HH:mm', 58079 }, 58080 meridiemParse: /ص|Ù /, 58081 isPM: function (input) { 58082 return 'Ù ' === input; 58083 }, 58084 meridiem: function (hour, minute, isLower) { 58085 if (hour < 12) { 58086 return 'ص'; 58087 } else { 58088 return 'Ù '; 58089 } 58090 }, 58091 calendar: { 58092 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58093 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58094 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58095 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58096 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58097 sameElse: 'L', 58098 }, 58099 relativeTime: { 58100 future: 'بعد %s', 58101 past: 'Ù ÙØ° %s', 58102 s: pluralize('s'), 58103 ss: pluralize('s'), 58104 m: pluralize('m'), 58105 mm: pluralize('m'), 58106 h: pluralize('h'), 58107 hh: pluralize('h'), 58108 d: pluralize('d'), 58109 dd: pluralize('d'), 58110 M: pluralize('M'), 58111 MM: pluralize('M'), 58112 y: pluralize('y'), 58113 yy: pluralize('y'), 58114 }, 58115 preparse: function (string) { 58116 return string.replace(/Ø/g, ','); 58117 }, 58118 postformat: function (string) { 58119 return string 58120 .replace(/\d/g, function (match) { 58121 return symbolMap[match]; 58122 }) 58123 .replace(/,/g, 'Ø'); 58124 }, 58125 week: { 58126 dow: 6, // Saturday is the first day of the week. 58127 doy: 12, // The week that contains Jan 12th is the first week of the year. 58128 }, 58129 }); 58130 58131 return arLy; 58132 58133}))); 58134 58135 58136/***/ }), 58137
vendor: 2,690 bytes, lines 58138-58212
58138/***/ "./node_modules/moment/locale/ar-ma.js": 58139/*!*********************************************!*\ 58140 !*** ./node_modules/moment/locale/ar-ma.js ***! 58141 \*********************************************/ 58142/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 58143 58144//! moment.js locale configuration 58145//! locale : Arabic (Morocco) [ar-ma] 58146//! author : ElFadili Yassine : https://github.com/ElFadiliY 58147//! author : Abdel Said : https://github.com/abdelsaid 58148 58149;(function (global, factory) { 58150 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 58151 0 58152}(this, (function (moment) { 'use strict'; 58153 58154 //! moment.js locale configuration 58155 58156 var arMa = moment.defineLocale('ar-ma', { 58157 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 58158 '_' 58159 ), 58160 monthsShort: 58161 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 58162 '_' 58163 ), 58164 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 58165 weekdaysShort: 'Ø§ØØ¯_اثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_اربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 58166 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 58167 weekdaysParseExact: true, 58168 longDateFormat: { 58169 LT: 'HH:mm', 58170 LTS: 'HH:mm:ss', 58171 L: 'DD/MM/YYYY', 58172 LL: 'D MMMM YYYY', 58173 LLL: 'D MMMM YYYY HH:mm', 58174 LLLL: 'dddd D MMMM YYYY HH:mm', 58175 }, 58176 calendar: { 58177 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58178 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58179 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58180 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58181 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58182 sameElse: 'L', 58183 }, 58184 relativeTime: { 58185 future: 'ÙÙ %s', 58186 past: 'Ù ÙØ° %s', 58187 s: 'Ø«ÙØ§Ù', 58188 ss: '%d ثاÙÙØ©', 58189 m: 'دÙÙÙØ©', 58190 mm: '%d Ø¯ÙØ§Ø¦Ù', 58191 h: 'ساعة', 58192 hh: '%d ساعات', 58193 d: 'ÙÙÙ ', 58194 dd: '%d Ø£ÙØ§Ù ', 58195 M: 'Ø´ÙØ±', 58196 MM: '%d Ø£Ø´ÙØ±', 58197 y: 'Ø³ÙØ©', 58198 yy: '%d سÙÙØ§Øª', 58199 }, 58200 week: { 58201 dow: 1, // Monday is the first day of the week. 58202 doy: 4, // The week that contains Jan 4th is the first week of the year. 58203 }, 58204 }); 58205 58206 return arMa; 58207 58208}))); 58209 58210 58211/***/ }), 58212
vendor: 4,259 bytes, lines 58213-58343
58213/***/ "./node_modules/moment/locale/ar-ps.js": 58214/*!*********************************************!*\ 58215 !*** ./node_modules/moment/locale/ar-ps.js ***! 58216 \*********************************************/ 58217/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 58218 58219//! moment.js locale configuration 58220//! locale : Arabic (Palestine) [ar-ps] 58221//! author : Majd Al-Shihabi : https://github.com/majdal 58222 58223;(function (global, factory) { 58224 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 58225 0 58226}(this, (function (moment) { 'use strict'; 58227 58228 //! moment.js locale configuration 58229 58230 var symbolMap = { 58231 1: 'Ù¡', 58232 2: 'Ù¢', 58233 3: 'Ù£', 58234 4: 'Ù¤', 58235 5: 'Ù¥', 58236 6: 'Ù¦', 58237 7: 'Ù§', 58238 8: 'Ù¨', 58239 9: 'Ù©', 58240 0: 'Ù ', 58241 }, 58242 numberMap = { 58243 'Ù¡': '1', 58244 'Ù¢': '2', 58245 'Ù£': '3', 58246 'Ù¤': '4', 58247 'Ù¥': '5', 58248 'Ù¦': '6', 58249 'Ù§': '7', 58250 'Ù¨': '8', 58251 'Ù©': '9', 58252 'Ù ': '0', 58253 }; 58254 58255 var arPs = moment.defineLocale('ar-ps', { 58256 months: 'ÙØ§ÙÙÙ Ø§ÙØ«Ø§ÙÙ_شباط_آذار_ÙÙØ³Ø§Ù_Ø£ÙÙØ§Ø±_ØØ²ÙراÙ_ت٠ÙÙØ²_آب_Ø£ÙÙÙÙ_ØªØ´Ø±Ù Ø§ÙØ£ÙÙÙ_تشرÙÙ Ø§ÙØ«Ø§ÙÙ_ÙØ§ÙÙÙ Ø§ÙØ£ÙÙÙ'.split( 58257 '_' 58258 ), 58259 monthsShort: 58260 'ÙÙ¢_شباط_آذار_ÙÙØ³Ø§Ù_Ø£ÙÙØ§Ø±_ØØ²ÙراÙ_ت٠ÙÙØ²_آب_Ø£ÙÙÙÙ_ت١_ت٢_ÙÙ¡'.split('_'), 58261 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 58262 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 58263 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 58264 weekdaysParseExact: true, 58265 longDateFormat: { 58266 LT: 'HH:mm', 58267 LTS: 'HH:mm:ss', 58268 L: 'DD/MM/YYYY', 58269 LL: 'D MMMM YYYY', 58270 LLL: 'D MMMM YYYY HH:mm', 58271 LLLL: 'dddd D MMMM YYYY HH:mm', 58272 }, 58273 meridiemParse: /ص|Ù /, 58274 isPM: function (input) { 58275 return 'Ù ' === input; 58276 }, 58277 meridiem: function (hour, minute, isLower) { 58278 if (hour < 12) { 58279 return 'ص'; 58280 } else { 58281 return 'Ù '; 58282 } 58283 }, 58284 calendar: { 58285 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58286 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58287 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58288 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58289 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58290 sameElse: 'L', 58291 }, 58292 relativeTime: { 58293 future: 'ÙÙ %s', 58294 past: 'Ù ÙØ° %s', 58295 s: 'Ø«ÙØ§Ù', 58296 ss: '%d ثاÙÙØ©', 58297 m: 'دÙÙÙØ©', 58298 mm: '%d Ø¯ÙØ§Ø¦Ù', 58299 h: 'ساعة', 58300 hh: '%d ساعات', 58301 d: 'ÙÙÙ ', 58302 dd: '%d Ø£ÙØ§Ù ', 58303 M: 'Ø´ÙØ±', 58304 MM: '%d Ø£Ø´ÙØ±', 58305 y: 'Ø³ÙØ©', 58306 yy: '%d سÙÙØ§Øª', 58307 }, 58308 preparse: function (string) { 58309 return string 58310 .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) { 58311 return numberMap[match]; 58312 }) 58313 .split('') // reversed since negative lookbehind not supported everywhere 58314 .reverse() 58315 .join('') 58316 .replace(/[١٢](?![\u062a\u0643])/g, function (match) { 58317 return numberMap[match]; 58318 }) 58319 .split('') 58320 .reverse() 58321 .join('') 58322 .replace(/Ø/g, ','); 58323 }, 58324 postformat: function (string) { 58325 return string 58326 .replace(/\d/g, function (match) { 58327 return symbolMap[match]; 58328 }) 58329 .replace(/,/g, 'Ø'); 58330 }, 58331 week: { 58332 dow: 0, // Sunday is the first day of the week. 58333 doy: 6, // The week that contains Jan 6th is the first week of the year. 58334 }, 58335 }); 58336 58337 return arPs; 58338 58339}))); 58340 58341 58342/***/ }), 58343
vendor: 3,939 bytes, lines 58344-58467
58344/***/ "./node_modules/moment/locale/ar-sa.js": 58345/*!*********************************************!*\ 58346 !*** ./node_modules/moment/locale/ar-sa.js ***! 58347 \*********************************************/ 58348/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 58349 58350//! moment.js locale configuration 58351//! locale : Arabic (Saudi Arabia) [ar-sa] 58352//! author : Suhail Alkowaileet : https://github.com/xsoh 58353 58354;(function (global, factory) { 58355 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 58356 0 58357}(this, (function (moment) { 'use strict'; 58358 58359 //! moment.js locale configuration 58360 58361 var symbolMap = { 58362 1: 'Ù¡', 58363 2: 'Ù¢', 58364 3: 'Ù£', 58365 4: 'Ù¤', 58366 5: 'Ù¥', 58367 6: 'Ù¦', 58368 7: 'Ù§', 58369 8: 'Ù¨', 58370 9: 'Ù©', 58371 0: 'Ù ', 58372 }, 58373 numberMap = { 58374 'Ù¡': '1', 58375 'Ù¢': '2', 58376 'Ù£': '3', 58377 'Ù¤': '4', 58378 'Ù¥': '5', 58379 'Ù¦': '6', 58380 'Ù§': '7', 58381 'Ù¨': '8', 58382 'Ù©': '9', 58383 'Ù ': '0', 58384 }; 58385 58386 var arSa = moment.defineLocale('ar-sa', { 58387 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙÙ_ÙÙÙÙÙ_ÙÙÙÙÙ_أغسطس_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 58388 '_' 58389 ), 58390 monthsShort: 58391 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙÙ_ÙÙÙÙÙ_ÙÙÙÙÙ_أغسطس_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 58392 '_' 58393 ), 58394 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 58395 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 58396 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 58397 weekdaysParseExact: true, 58398 longDateFormat: { 58399 LT: 'HH:mm', 58400 LTS: 'HH:mm:ss', 58401 L: 'DD/MM/YYYY', 58402 LL: 'D MMMM YYYY', 58403 LLL: 'D MMMM YYYY HH:mm', 58404 LLLL: 'dddd D MMMM YYYY HH:mm', 58405 }, 58406 meridiemParse: /ص|Ù /, 58407 isPM: function (input) { 58408 return 'Ù ' === input; 58409 }, 58410 meridiem: function (hour, minute, isLower) { 58411 if (hour < 12) { 58412 return 'ص'; 58413 } else { 58414 return 'Ù '; 58415 } 58416 }, 58417 calendar: { 58418 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58419 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58420 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58421 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58422 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58423 sameElse: 'L', 58424 }, 58425 relativeTime: { 58426 future: 'ÙÙ %s', 58427 past: 'Ù ÙØ° %s', 58428 s: 'Ø«ÙØ§Ù', 58429 ss: '%d ثاÙÙØ©', 58430 m: 'دÙÙÙØ©', 58431 mm: '%d Ø¯ÙØ§Ø¦Ù', 58432 h: 'ساعة', 58433 hh: '%d ساعات', 58434 d: 'ÙÙÙ ', 58435 dd: '%d Ø£ÙØ§Ù ', 58436 M: 'Ø´ÙØ±', 58437 MM: '%d Ø£Ø´ÙØ±', 58438 y: 'Ø³ÙØ©', 58439 yy: '%d سÙÙØ§Øª', 58440 }, 58441 preparse: function (string) { 58442 return string 58443 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 58444 return numberMap[match]; 58445 }) 58446 .replace(/Ø/g, ','); 58447 }, 58448 postformat: function (string) { 58449 return string 58450 .replace(/\d/g, function (match) { 58451 return symbolMap[match]; 58452 }) 58453 .replace(/,/g, 'Ø'); 58454 }, 58455 week: { 58456 dow: 0, // Sunday is the first day of the week. 58457 doy: 6, // The week that contains Jan 6th is the first week of the year. 58458 }, 58459 }); 58460 58461 return arSa; 58462 58463}))); 58464 58465 58466/***/ }), 58467
vendor: 2,637 bytes, lines 58468-58541
58468/***/ "./node_modules/moment/locale/ar-tn.js": 58469/*!*********************************************!*\ 58470 !*** ./node_modules/moment/locale/ar-tn.js ***! 58471 \*********************************************/ 58472/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 58473 58474//! moment.js locale configuration 58475//! locale : Arabic (Tunisia) [ar-tn] 58476//! author : Nader Toukabri : https://github.com/naderio 58477 58478;(function (global, factory) { 58479 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 58480 0 58481}(this, (function (moment) { 'use strict'; 58482 58483 //! moment.js locale configuration 58484 58485 var arTn = moment.defineLocale('ar-tn', { 58486 months: 'جاÙÙÙ_ÙÙÙØ±Ù_٠ارس_Ø£ÙØ±ÙÙ_٠اÙ_Ø¬ÙØ§Ù_جÙÙÙÙØ©_Ø£ÙØª_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 58487 '_' 58488 ), 58489 monthsShort: 58490 'جاÙÙÙ_ÙÙÙØ±Ù_٠ارس_Ø£ÙØ±ÙÙ_٠اÙ_Ø¬ÙØ§Ù_جÙÙÙÙØ©_Ø£ÙØª_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 58491 '_' 58492 ), 58493 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 58494 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 58495 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 58496 weekdaysParseExact: true, 58497 longDateFormat: { 58498 LT: 'HH:mm', 58499 LTS: 'HH:mm:ss', 58500 L: 'DD/MM/YYYY', 58501 LL: 'D MMMM YYYY', 58502 LLL: 'D MMMM YYYY HH:mm', 58503 LLLL: 'dddd D MMMM YYYY HH:mm', 58504 }, 58505 calendar: { 58506 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58507 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58508 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58509 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58510 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58511 sameElse: 'L', 58512 }, 58513 relativeTime: { 58514 future: 'ÙÙ %s', 58515 past: 'Ù ÙØ° %s', 58516 s: 'Ø«ÙØ§Ù', 58517 ss: '%d ثاÙÙØ©', 58518 m: 'دÙÙÙØ©', 58519 mm: '%d Ø¯ÙØ§Ø¦Ù', 58520 h: 'ساعة', 58521 hh: '%d ساعات', 58522 d: 'ÙÙÙ ', 58523 dd: '%d Ø£ÙØ§Ù ', 58524 M: 'Ø´ÙØ±', 58525 MM: '%d Ø£Ø´ÙØ±', 58526 y: 'Ø³ÙØ©', 58527 yy: '%d سÙÙØ§Øª', 58528 }, 58529 week: { 58530 dow: 1, // Monday is the first day of the week. 58531 doy: 4, // The week that contains Jan 4th is the first week of the year. 58532 }, 58533 }); 58534 58535 return arTn; 58536 58537}))); 58538 58539 58540/***/ }), 58541
vendor: 6,321 bytes, lines 58542-58749
58542/***/ "./node_modules/moment/locale/ar.js": 58543/*!******************************************!*\ 58544 !*** ./node_modules/moment/locale/ar.js ***! 58545 \******************************************/ 58546/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 58547 58548//! moment.js locale configuration 58549//! locale : Arabic [ar] 58550//! author : Abdel Said: https://github.com/abdelsaid 58551//! author : Ahmed Elkhatib 58552//! author : forabi https://github.com/forabi 58553 58554;(function (global, factory) { 58555 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 58556 0 58557}(this, (function (moment) { 'use strict'; 58558 58559 //! moment.js locale configuration 58560 58561 var symbolMap = { 58562 1: 'Ù¡', 58563 2: 'Ù¢', 58564 3: 'Ù£', 58565 4: 'Ù¤', 58566 5: 'Ù¥', 58567 6: 'Ù¦', 58568 7: 'Ù§', 58569 8: 'Ù¨', 58570 9: 'Ù©', 58571 0: 'Ù ', 58572 }, 58573 numberMap = { 58574 'Ù¡': '1', 58575 'Ù¢': '2', 58576 'Ù£': '3', 58577 'Ù¤': '4', 58578 'Ù¥': '5', 58579 'Ù¦': '6', 58580 'Ù§': '7', 58581 'Ù¨': '8', 58582 'Ù©': '9', 58583 'Ù ': '0', 58584 }, 58585 pluralForm = function (n) { 58586 return n === 0 58587 ? 0 58588 : n === 1 58589 ? 1 58590 : n === 2 58591 ? 2 58592 : n % 100 >= 3 && n % 100 <= 10 58593 ? 3 58594 : n % 100 >= 11 58595 ? 4 58596 : 5; 58597 }, 58598 plurals = { 58599 s: [ 58600 'Ø£Ù٠٠٠ثاÙÙØ©', 58601 'ثاÙÙØ© ÙØ§ØØ¯Ø©', 58602 ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], 58603 '%d Ø«ÙØ§Ù', 58604 '%d ثاÙÙØ©', 58605 '%d ثاÙÙØ©', 58606 ], 58607 m: [ 58608 'Ø£Ù٠٠٠دÙÙÙØ©', 58609 'دÙÙÙØ© ÙØ§ØØ¯Ø©', 58610 ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], 58611 '%d Ø¯ÙØ§Ø¦Ù', 58612 '%d دÙÙÙØ©', 58613 '%d دÙÙÙØ©', 58614 ], 58615 h: [ 58616 'Ø£Ù٠٠٠ساعة', 58617 'ساعة ÙØ§ØØ¯Ø©', 58618 ['ساعتاÙ', 'ساعتÙÙ'], 58619 '%d ساعات', 58620 '%d ساعة', 58621 '%d ساعة', 58622 ], 58623 d: [ 58624 'Ø£ÙÙ Ù Ù ÙÙÙ ', 58625 'ÙÙÙ ÙØ§ØØ¯', 58626 ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], 58627 '%d Ø£ÙØ§Ù ', 58628 '%d ÙÙÙ ÙØ§', 58629 '%d ÙÙÙ ', 58630 ], 58631 M: [ 58632 'Ø£ÙÙ Ù Ù Ø´ÙØ±', 58633 'Ø´ÙØ± ÙØ§ØØ¯', 58634 ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], 58635 '%d Ø£Ø´ÙØ±', 58636 '%d Ø´ÙØ±Ø§', 58637 '%d Ø´ÙØ±', 58638 ], 58639 y: [ 58640 'Ø£Ù٠٠٠عا٠', 58641 'Ø¹Ø§Ù ÙØ§ØØ¯', 58642 ['عا٠اÙ', 'عا٠ÙÙ'], 58643 '%d Ø£Ø¹ÙØ§Ù ', 58644 '%d Ø¹Ø§Ù ÙØ§', 58645 '%d عا٠', 58646 ], 58647 }, 58648 pluralize = function (u) { 58649 return function (number, withoutSuffix, string, isFuture) { 58650 var f = pluralForm(number), 58651 str = plurals[u][pluralForm(number)]; 58652 if (f === 2) { 58653 str = str[withoutSuffix ? 0 : 1]; 58654 } 58655 return str.replace(/%d/i, number); 58656 }; 58657 }, 58658 months = [ 58659 'ÙÙØ§Ùر', 58660 'ÙØ¨Ø±Ø§Ùر', 58661 '٠ارس', 58662 'أبرÙÙ', 58663 '٠اÙÙ', 58664 'ÙÙÙÙÙ', 58665 'ÙÙÙÙÙ', 58666 'أغسطس', 58667 'سبت٠بر', 58668 'Ø£ÙØªÙبر', 58669 'ÙÙÙ٠بر', 58670 'Ø¯ÙØ³Ù بر', 58671 ]; 58672 58673 var ar = moment.defineLocale('ar', { 58674 months: months, 58675 monthsShort: months, 58676 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 58677 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 58678 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 58679 weekdaysParseExact: true, 58680 longDateFormat: { 58681 LT: 'HH:mm', 58682 LTS: 'HH:mm:ss', 58683 L: 'D/\u200FM/\u200FYYYY', 58684 LL: 'D MMMM YYYY', 58685 LLL: 'D MMMM YYYY HH:mm', 58686 LLLL: 'dddd D MMMM YYYY HH:mm', 58687 }, 58688 meridiemParse: /ص|Ù /, 58689 isPM: function (input) { 58690 return 'Ù ' === input; 58691 }, 58692 meridiem: function (hour, minute, isLower) { 58693 if (hour < 12) { 58694 return 'ص'; 58695 } else { 58696 return 'Ù '; 58697 } 58698 }, 58699 calendar: { 58700 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58701 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58702 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58703 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58704 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 58705 sameElse: 'L', 58706 }, 58707 relativeTime: { 58708 future: 'بعد %s', 58709 past: 'Ù ÙØ° %s', 58710 s: pluralize('s'), 58711 ss: pluralize('s'), 58712 m: pluralize('m'), 58713 mm: pluralize('m'), 58714 h: pluralize('h'), 58715 hh: pluralize('h'), 58716 d: pluralize('d'), 58717 dd: pluralize('d'), 58718 M: pluralize('M'), 58719 MM: pluralize('M'), 58720 y: pluralize('y'), 58721 yy: pluralize('y'), 58722 }, 58723 preparse: function (string) { 58724 return string 58725 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 58726 return numberMap[match]; 58727 }) 58728 .replace(/Ø/g, ','); 58729 }, 58730 postformat: function (string) { 58731 return string 58732 .replace(/\d/g, function (match) { 58733 return symbolMap[match]; 58734 }) 58735 .replace(/,/g, 'Ø'); 58736 }, 58737 week: { 58738 dow: 6, // Saturday is the first day of the week. 58739 doy: 12, // The week that contains Jan 12th is the first week of the year. 58740 }, 58741 }); 58742 58743 return ar; 58744 58745}))); 58746 58747 58748/***/ }), 58749
vendor: 3,715 bytes, lines 58750-58870
58750/***/ "./node_modules/moment/locale/az.js": 58751/*!******************************************!*\ 58752 !*** ./node_modules/moment/locale/az.js ***! 58753 \******************************************/ 58754/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 58755 58756//! moment.js locale configuration 58757//! locale : Azerbaijani [az] 58758//! author : topchiyev : https://github.com/topchiyev 58759 58760;(function (global, factory) { 58761 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 58762 0 58763}(this, (function (moment) { 'use strict'; 58764 58765 //! moment.js locale configuration 58766 58767 var suffixes = { 58768 1: '-inci', 58769 5: '-inci', 58770 8: '-inci', 58771 70: '-inci', 58772 80: '-inci', 58773 2: '-nci', 58774 7: '-nci', 58775 20: '-nci', 58776 50: '-nci', 58777 3: '-üncü', 58778 4: '-üncü', 58779 100: '-üncü', 58780 6: '-ncı', 58781 9: '-uncu', 58782 10: '-uncu', 58783 30: '-uncu', 58784 60: '-ıncı', 58785 90: '-ıncı', 58786 }; 58787 58788 var az = moment.defineLocale('az', { 58789 months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( 58790 '_' 58791 ), 58792 monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), 58793 weekdays: 58794 'Bazar_Bazar ertÉsi_ÃÉrÅÉnbÉ axÅamı_ÃÉrÅÉnbÉ_CümÉ axÅamı_CümÉ_ÅÉnbÉ'.split( 58795 '_' 58796 ), 58797 weekdaysShort: 'Baz_BzE_ÃAx_ÃÉr_CAx_Cüm_ÅÉn'.split('_'), 58798 weekdaysMin: 'Bz_BE_ÃA_ÃÉ_CA_Cü_ÅÉ'.split('_'), 58799 weekdaysParseExact: true, 58800 longDateFormat: { 58801 LT: 'HH:mm', 58802 LTS: 'HH:mm:ss', 58803 L: 'DD.MM.YYYY', 58804 LL: 'D MMMM YYYY', 58805 LLL: 'D MMMM YYYY HH:mm', 58806 LLLL: 'dddd, D MMMM YYYY HH:mm', 58807 }, 58808 calendar: { 58809 sameDay: '[bugün saat] LT', 58810 nextDay: '[sabah saat] LT', 58811 nextWeek: '[gÉlÉn hÉftÉ] dddd [saat] LT', 58812 lastDay: '[dünÉn] LT', 58813 lastWeek: '[keçÉn hÉftÉ] dddd [saat] LT', 58814 sameElse: 'L', 58815 }, 58816 relativeTime: { 58817 future: '%s sonra', 58818 past: '%s ÉvvÉl', 58819 s: 'bir neÃ§É saniyÉ', 58820 ss: '%d saniyÉ', 58821 m: 'bir dÉqiqÉ', 58822 mm: '%d dÉqiqÉ', 58823 h: 'bir saat', 58824 hh: '%d saat', 58825 d: 'bir gün', 58826 dd: '%d gün', 58827 M: 'bir ay', 58828 MM: '%d ay', 58829 y: 'bir il', 58830 yy: '%d il', 58831 }, 58832 meridiemParse: /gecÉ|sÉhÉr|gündüz|axÅam/, 58833 isPM: function (input) { 58834 return /^(gündüz|axÅam)$/.test(input); 58835 }, 58836 meridiem: function (hour, minute, isLower) { 58837 if (hour < 4) { 58838 return 'gecÉ'; 58839 } else if (hour < 12) { 58840 return 'sÉhÉr'; 58841 } else if (hour < 17) { 58842 return 'gündüz'; 58843 } else { 58844 return 'axÅam'; 58845 } 58846 }, 58847 dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, 58848 ordinal: function (number) { 58849 if (number === 0) { 58850 // special case for zero 58851 return number + '-ıncı'; 58852 } 58853 var a = number % 10, 58854 b = (number % 100) - a, 58855 c = number >= 100 ? 100 : null; 58856 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 58857 }, 58858 week: { 58859 dow: 1, // Monday is the first day of the week. 58860 doy: 7, // The week that contains Jan 7th is the first week of the year. 58861 }, 58862 }); 58863 58864 return az; 58865 58866}))); 58867 58868 58869/***/ }), 58870
vendor: 6,179 bytes, lines 58871-59031
58871/***/ "./node_modules/moment/locale/be.js": 58872/*!******************************************!*\ 58873 !*** ./node_modules/moment/locale/be.js ***! 58874 \******************************************/ 58875/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 58876 58877//! moment.js locale configuration 58878//! locale : Belarusian [be] 58879//! author : Dmitry Demidov : https://github.com/demidov91 58880//! author: Praleska: http://praleska.pro/ 58881//! Author : Menelion Elensúle : https://github.com/Oire 58882 58883;(function (global, factory) { 58884 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 58885 0 58886}(this, (function (moment) { 'use strict'; 58887 58888 //! moment.js locale configuration 58889 58890 function plural(word, num) { 58891 var forms = word.split('_'); 58892 return num % 10 === 1 && num % 100 !== 11 58893 ? forms[0] 58894 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) 58895 ? forms[1] 58896 : forms[2]; 58897 } 58898 function relativeTimeWithPlural(number, withoutSuffix, key) { 58899 var format = { 58900 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑндÑ_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑндÑ_ÑекÑнд', 58901 mm: withoutSuffix ? 'Ñ Ð²ÑлÑна_Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑн' : 'Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑн', 58902 hh: withoutSuffix ? 'гадзÑна_гадзÑнÑ_гадзÑн' : 'гадзÑнÑ_гадзÑнÑ_гадзÑн', 58903 dd: 'дзенÑ_днÑ_дзÑн', 58904 MM: 'меÑÑÑ_меÑÑÑÑ_меÑÑÑаÑ', 58905 yy: 'год_гадÑ_гадоÑ', 58906 }; 58907 if (key === 'm') { 58908 return withoutSuffix ? 'Ñ Ð²ÑлÑна' : 'Ñ Ð²ÑлÑнÑ'; 58909 } else if (key === 'h') { 58910 return withoutSuffix ? 'гадзÑна' : 'гадзÑнÑ'; 58911 } else { 58912 return number + ' ' + plural(format[key], +number); 58913 } 58914 } 58915 58916 var be = moment.defineLocale('be', { 58917 months: { 58918 format: 'ÑÑÑдзенÑ_лÑÑага_ÑакавÑка_кÑаÑавÑка_ÑÑаÑнÑ_ÑÑÑвенÑ_лÑпенÑ_жнÑÑнÑ_веÑаÑнÑ_каÑÑÑÑÑнÑка_лÑÑÑапада_ÑнежнÑ'.split( 58919 '_' 58920 ), 58921 standalone: 58922 'ÑÑÑдзенÑ_лÑÑÑ_ÑакавÑк_кÑаÑавÑк_ÑÑавенÑ_ÑÑÑвенÑ_лÑпенÑ_жнÑвенÑ_веÑаÑенÑ_каÑÑÑÑÑнÑк_лÑÑÑапад_ÑнежанÑ'.split( 58923 '_' 58924 ), 58925 }, 58926 monthsShort: 58927 'ÑÑÑд_лÑÑ_Ñак_кÑаÑ_ÑÑав_ÑÑÑв_лÑп_жнÑв_веÑ_каÑÑ_лÑÑÑ_Ñнеж'.split('_'), 58928 weekdays: { 58929 format: 'нÑдзелÑ_панÑдзелак_аÑÑоÑак_ÑеÑадÑ_ÑаÑвеÑ_пÑÑнÑÑÑ_ÑÑбоÑÑ'.split( 58930 '_' 58931 ), 58932 standalone: 58933 'нÑдзелÑ_панÑдзелак_аÑÑоÑак_ÑеÑада_ÑаÑвеÑ_пÑÑнÑÑа_ÑÑбоÑа'.split( 58934 '_' 58935 ), 58936 isFormat: /\[ ?[УÑÑ] ?(?:мÑнÑлÑÑ|наÑÑÑпнÑÑ)? ?\] ?dddd/, 58937 }, 58938 weekdaysShort: 'нд_пн_аÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 58939 weekdaysMin: 'нд_пн_аÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 58940 longDateFormat: { 58941 LT: 'HH:mm', 58942 LTS: 'HH:mm:ss', 58943 L: 'DD.MM.YYYY', 58944 LL: 'D MMMM YYYY г.', 58945 LLL: 'D MMMM YYYY г., HH:mm', 58946 LLLL: 'dddd, D MMMM YYYY г., HH:mm', 58947 }, 58948 calendar: { 58949 sameDay: '[СÑÐ½Ð½Ñ Ñ] LT', 58950 nextDay: '[ÐаÑÑÑа Ñ] LT', 58951 lastDay: '[УÑоÑа Ñ] LT', 58952 nextWeek: function () { 58953 return '[У] dddd [Ñ] LT'; 58954 }, 58955 lastWeek: function () { 58956 switch (this.day()) { 58957 case 0: 58958 case 3: 58959 case 5: 58960 case 6: 58961 return '[У мÑнÑлÑÑ] dddd [Ñ] LT'; 58962 case 1: 58963 case 2: 58964 case 4: 58965 return '[У мÑнÑлÑ] dddd [Ñ] LT'; 58966 } 58967 }, 58968 sameElse: 'L', 58969 }, 58970 relativeTime: { 58971 future: 'пÑаз %s', 58972 past: '%s ÑамÑ', 58973 s: 'некалÑÐºÑ ÑекÑнд', 58974 m: relativeTimeWithPlural, 58975 mm: relativeTimeWithPlural, 58976 h: relativeTimeWithPlural, 58977 hh: relativeTimeWithPlural, 58978 d: 'дзенÑ', 58979 dd: relativeTimeWithPlural, 58980 M: 'меÑÑÑ', 58981 MM: relativeTimeWithPlural, 58982 y: 'год', 58983 yy: relativeTimeWithPlural, 58984 }, 58985 meridiemParse: /ноÑÑ|ÑанÑÑÑ|днÑ|веÑаÑа/, 58986 isPM: function (input) { 58987 return /^(днÑ|веÑаÑа)$/.test(input); 58988 }, 58989 meridiem: function (hour, minute, isLower) { 58990 if (hour < 4) { 58991 return 'ноÑÑ'; 58992 } else if (hour < 12) { 58993 return 'ÑанÑÑÑ'; 58994 } else if (hour < 17) { 58995 return 'днÑ'; 58996 } else { 58997 return 'веÑаÑа'; 58998 } 58999 }, 59000 dayOfMonthOrdinalParse: /\d{1,2}-(Ñ|Ñ|га)/, 59001 ordinal: function (number, period) { 59002 switch (period) { 59003 case 'M': 59004 case 'd': 59005 case 'DDD': 59006 case 'w': 59007 case 'W': 59008 return (number % 10 === 2 || number % 10 === 3) && 59009 number % 100 !== 12 && 59010 number % 100 !== 13 59011 ? number + '-Ñ' 59012 : number + '-Ñ'; 59013 case 'D': 59014 return number + '-га'; 59015 default: 59016 return number; 59017 } 59018 }, 59019 week: { 59020 dow: 1, // Monday is the first day of the week. 59021 doy: 7, // The week that contains Jan 7th is the first week of the year. 59022 }, 59023 }); 59024 59025 return be; 59026 59027}))); 59028 59029 59030/***/ }), 59031
vendor: 3,768 bytes, lines 59032-59137
59032/***/ "./node_modules/moment/locale/bg.js": 59033/*!******************************************!*\ 59034 !*** ./node_modules/moment/locale/bg.js ***! 59035 \******************************************/ 59036/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 59037 59038//! moment.js locale configuration 59039//! locale : Bulgarian [bg] 59040//! author : Krasen Borisov : https://github.com/kraz 59041 59042;(function (global, factory) { 59043 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 59044 0 59045}(this, (function (moment) { 'use strict'; 59046 59047 //! moment.js locale configuration 59048 59049 var bg = moment.defineLocale('bg', { 59050 months: 'ÑнÑаÑи_ÑевÑÑаÑи_маÑÑ_апÑил_май_Ñни_Ñли_авгÑÑÑ_ÑепÑемвÑи_окÑомвÑи_ноемвÑи_декемвÑи'.split( 59051 '_' 59052 ), 59053 monthsShort: 'ÑнÑ_Ñев_маÑ_апÑ_май_Ñни_Ñли_авг_Ñеп_окÑ_ное_дек'.split('_'), 59054 weekdays: 'неделÑ_понеделник_вÑоÑник_ÑÑÑда_ÑеÑвÑÑÑÑк_пеÑÑк_ÑÑбоÑа'.split( 59055 '_' 59056 ), 59057 weekdaysShort: 'нед_пон_вÑо_ÑÑÑ_ÑеÑ_пеÑ_ÑÑб'.split('_'), 59058 weekdaysMin: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 59059 longDateFormat: { 59060 LT: 'H:mm', 59061 LTS: 'H:mm:ss', 59062 L: 'D.MM.YYYY', 59063 LL: 'D MMMM YYYY', 59064 LLL: 'D MMMM YYYY H:mm', 59065 LLLL: 'dddd, D MMMM YYYY H:mm', 59066 }, 59067 calendar: { 59068 sameDay: '[ÐÐ½ÐµÑ Ð²] LT', 59069 nextDay: '[УÑÑе в] LT', 59070 nextWeek: 'dddd [в] LT', 59071 lastDay: '[ÐÑеÑа в] LT', 59072 lastWeek: function () { 59073 switch (this.day()) { 59074 case 0: 59075 case 3: 59076 case 6: 59077 return '[ÐиналаÑа] dddd [в] LT'; 59078 case 1: 59079 case 2: 59080 case 4: 59081 case 5: 59082 return '[ÐиналиÑ] dddd [в] LT'; 59083 } 59084 }, 59085 sameElse: 'L', 59086 }, 59087 relativeTime: { 59088 future: 'Ñлед %s', 59089 past: 'пÑеди %s', 59090 s: 'нÑколко ÑекÑнди', 59091 ss: '%d ÑекÑнди', 59092 m: 'минÑÑа', 59093 mm: '%d минÑÑи', 59094 h: 'ÑаÑ', 59095 hh: '%d ÑаÑа', 59096 d: 'ден', 59097 dd: '%d дена', 59098 w: 'ÑедмиÑа', 59099 ww: '%d ÑедмиÑи', 59100 M: 'меÑеÑ', 59101 MM: '%d меÑеÑа', 59102 y: 'година', 59103 yy: '%d години', 59104 }, 59105 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|Ñи|ви|Ñи|ми)/, 59106 ordinal: function (number) { 59107 var lastDigit = number % 10, 59108 last2Digits = number % 100; 59109 if (number === 0) { 59110 return number + '-ев'; 59111 } else if (last2Digits === 0) { 59112 return number + '-ен'; 59113 } else if (last2Digits > 10 && last2Digits < 20) { 59114 return number + '-Ñи'; 59115 } else if (lastDigit === 1) { 59116 return number + '-ви'; 59117 } else if (lastDigit === 2) { 59118 return number + '-Ñи'; 59119 } else if (lastDigit === 7 || lastDigit === 8) { 59120 return number + '-ми'; 59121 } else { 59122 return number + '-Ñи'; 59123 } 59124 }, 59125 week: { 59126 dow: 1, // Monday is the first day of the week. 59127 doy: 7, // The week that contains Jan 7th is the first week of the year. 59128 }, 59129 }); 59130 59131 return bg; 59132 59133}))); 59134 59135 59136/***/ }), 59137
vendor: 2,378 bytes, lines 59138-59207
59138/***/ "./node_modules/moment/locale/bm.js": 59139/*!******************************************!*\ 59140 !*** ./node_modules/moment/locale/bm.js ***! 59141 \******************************************/ 59142/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 59143 59144//! moment.js locale configuration 59145//! locale : Bambara [bm] 59146//! author : Estelle Comment : https://github.com/estellecomment 59147 59148;(function (global, factory) { 59149 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 59150 0 59151}(this, (function (moment) { 'use strict'; 59152 59153 //! moment.js locale configuration 59154 59155 var bm = moment.defineLocale('bm', { 59156 months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_MÉkalo_ZuwÉnkalo_Zuluyekalo_Utikalo_SÉtanburukalo_ÉkutÉburukalo_Nowanburukalo_Desanburukalo'.split( 59157 '_' 59158 ), 59159 monthsShort: 'Zan_Few_Mar_Awi_MÉ_Zuw_Zul_Uti_SÉt_Éku_Now_Des'.split('_'), 59160 weekdays: 'Kari_NtÉnÉn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), 59161 weekdaysShort: 'Kar_NtÉ_Tar_Ara_Ala_Jum_Sib'.split('_'), 59162 weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), 59163 longDateFormat: { 59164 LT: 'HH:mm', 59165 LTS: 'HH:mm:ss', 59166 L: 'DD/MM/YYYY', 59167 LL: 'MMMM [tile] D [san] YYYY', 59168 LLL: 'MMMM [tile] D [san] YYYY [lÉrÉ] HH:mm', 59169 LLLL: 'dddd MMMM [tile] D [san] YYYY [lÉrÉ] HH:mm', 59170 }, 59171 calendar: { 59172 sameDay: '[Bi lÉrÉ] LT', 59173 nextDay: '[Sini lÉrÉ] LT', 59174 nextWeek: 'dddd [don lÉrÉ] LT', 59175 lastDay: '[Kunu lÉrÉ] LT', 59176 lastWeek: 'dddd [tÉmÉnen lÉrÉ] LT', 59177 sameElse: 'L', 59178 }, 59179 relativeTime: { 59180 future: '%s kÉnÉ', 59181 past: 'a bÉ %s bÉ', 59182 s: 'sanga dama dama', 59183 ss: 'sekondi %d', 59184 m: 'miniti kelen', 59185 mm: 'miniti %d', 59186 h: 'lÉrÉ kelen', 59187 hh: 'lÉrÉ %d', 59188 d: 'tile kelen', 59189 dd: 'tile %d', 59190 M: 'kalo kelen', 59191 MM: 'kalo %d', 59192 y: 'san kelen', 59193 yy: 'san %d', 59194 }, 59195 week: { 59196 dow: 1, // Monday is the first day of the week. 59197 doy: 4, // The week that contains Jan 4th is the first week of the year. 59198 }, 59199 }); 59200 59201 return bm; 59202 59203}))); 59204 59205 59206/***/ }), 59207
vendor: 5,334 bytes, lines 59208-59355
59208/***/ "./node_modules/moment/locale/bn-bd.js": 59209/*!*********************************************!*\ 59210 !*** ./node_modules/moment/locale/bn-bd.js ***! 59211 \*********************************************/ 59212/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 59213 59214//! moment.js locale configuration 59215//! locale : Bengali (Bangladesh) [bn-bd] 59216//! author : Asraf Hossain Patoary : https://github.com/ashwoolford 59217 59218;(function (global, factory) { 59219 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 59220 0 59221}(this, (function (moment) { 'use strict'; 59222 59223 //! moment.js locale configuration 59224 59225 var symbolMap = { 59226 1: 'à§§', 59227 2: '২', 59228 3: 'à§©', 59229 4: '৪', 59230 5: 'à§«', 59231 6: '৬', 59232 7: 'à§', 59233 8: 'à§®', 59234 9: '৯', 59235 0: '০', 59236 }, 59237 numberMap = { 59238 'à§§': '1', 59239 '২': '2', 59240 'à§©': '3', 59241 '৪': '4', 59242 'à§«': '5', 59243 '৬': '6', 59244 'à§': '7', 59245 'à§®': '8', 59246 '৯': '9', 59247 '০': '0', 59248 }; 59249 59250 var bnBd = moment.defineLocale('bn-bd', { 59251 months: 'à¦à¦¾à¦¨à§à§à¦¾à¦°à¦¿_ফà§à¦¬à§à¦°à§à§à¦¾à¦°à¦¿_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦à§à¦®à§à¦¬à¦°_ঠà¦à§à¦à§à¦¬à¦°_নà¦à§à¦®à§à¦¬à¦°_ডিসà§à¦®à§à¦¬à¦°'.split( 59252 '_' 59253 ), 59254 monthsShort: 59255 'à¦à¦¾à¦¨à§_ফà§à¦¬à§à¦°à§_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦_ঠà¦à§à¦à§_নà¦à§_ডিসà§'.split( 59256 '_' 59257 ), 59258 weekdays: 'রবিবার_সà§à¦®à¦¬à¦¾à¦°_মà¦à§à¦à¦²à¦¬à¦¾à¦°_বà§à¦§à¦¬à¦¾à¦°_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦à§à¦°à¦¬à¦¾à¦°_শনিবার'.split( 59259 '_' 59260 ), 59261 weekdaysShort: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿_শà§à¦à§à¦°_শনি'.split('_'), 59262 weekdaysMin: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹_শà§à¦à§à¦°_শনি'.split('_'), 59263 longDateFormat: { 59264 LT: 'A h:mm সমà§', 59265 LTS: 'A h:mm:ss সমà§', 59266 L: 'DD/MM/YYYY', 59267 LL: 'D MMMM YYYY', 59268 LLL: 'D MMMM YYYY, A h:mm সমà§', 59269 LLLL: 'dddd, D MMMM YYYY, A h:mm সমà§', 59270 }, 59271 calendar: { 59272 sameDay: '[à¦à¦] LT', 59273 nextDay: '[à¦à¦à¦¾à¦®à§à¦à¦¾à¦²] LT', 59274 nextWeek: 'dddd, LT', 59275 lastDay: '[à¦à¦¤à¦à¦¾à¦²] LT', 59276 lastWeek: '[à¦à¦¤] dddd, LT', 59277 sameElse: 'L', 59278 }, 59279 relativeTime: { 59280 future: '%s পরà§', 59281 past: '%s à¦à¦à§', 59282 s: 'à¦à§à§à¦ সà§à¦à§à¦¨à§à¦¡', 59283 ss: '%d সà§à¦à§à¦¨à§à¦¡', 59284 m: 'à¦à¦ মিনিà¦', 59285 mm: '%d মিনিà¦', 59286 h: 'à¦à¦ à¦à¦¨à§à¦à¦¾', 59287 hh: '%d à¦à¦¨à§à¦à¦¾', 59288 d: 'à¦à¦ দিন', 59289 dd: '%d দিন', 59290 M: 'à¦à¦ মাস', 59291 MM: '%d মাস', 59292 y: 'à¦à¦ বà¦à¦°', 59293 yy: '%d বà¦à¦°', 59294 }, 59295 preparse: function (string) { 59296 return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) { 59297 return numberMap[match]; 59298 }); 59299 }, 59300 postformat: function (string) { 59301 return string.replace(/\d/g, function (match) { 59302 return symbolMap[match]; 59303 }); 59304 }, 59305 59306 meridiemParse: /রাত|à¦à§à¦°|সà¦à¦¾à¦²|দà§à¦ªà§à¦°|বিà¦à¦¾à¦²|সনà§à¦§à§à¦¯à¦¾|রাত/, 59307 meridiemHour: function (hour, meridiem) { 59308 if (hour === 12) { 59309 hour = 0; 59310 } 59311 if (meridiem === 'রাত') { 59312 return hour < 4 ? hour : hour + 12; 59313 } else if (meridiem === 'à¦à§à¦°') { 59314 return hour; 59315 } else if (meridiem === 'সà¦à¦¾à¦²') { 59316 return hour; 59317 } else if (meridiem === 'দà§à¦ªà§à¦°') { 59318 return hour >= 3 ? hour : hour + 12; 59319 } else if (meridiem === 'বিà¦à¦¾à¦²') { 59320 return hour + 12; 59321 } else if (meridiem === 'সনà§à¦§à§à¦¯à¦¾') { 59322 return hour + 12; 59323 } 59324 }, 59325 59326 meridiem: function (hour, minute, isLower) { 59327 if (hour < 4) { 59328 return 'রাত'; 59329 } else if (hour < 6) { 59330 return 'à¦à§à¦°'; 59331 } else if (hour < 12) { 59332 return 'সà¦à¦¾à¦²'; 59333 } else if (hour < 15) { 59334 return 'দà§à¦ªà§à¦°'; 59335 } else if (hour < 18) { 59336 return 'বিà¦à¦¾à¦²'; 59337 } else if (hour < 20) { 59338 return 'সনà§à¦§à§à¦¯à¦¾'; 59339 } else { 59340 return 'রাত'; 59341 } 59342 }, 59343 week: { 59344 dow: 0, // Sunday is the first day of the week. 59345 doy: 6, // The week that contains Jan 6th is the first week of the year. 59346 }, 59347 }); 59348 59349 return bnBd; 59350 59351}))); 59352 59353 59354/***/ }), 59355
vendor: 4,835 bytes, lines 59356-59493
59356/***/ "./node_modules/moment/locale/bn.js": 59357/*!******************************************!*\ 59358 !*** ./node_modules/moment/locale/bn.js ***! 59359 \******************************************/ 59360/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 59361 59362//! moment.js locale configuration 59363//! locale : Bengali [bn] 59364//! author : Kaushik Gandhi : https://github.com/kaushikgandhi 59365 59366;(function (global, factory) { 59367 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 59368 0 59369}(this, (function (moment) { 'use strict'; 59370 59371 //! moment.js locale configuration 59372 59373 var symbolMap = { 59374 1: 'à§§', 59375 2: '২', 59376 3: 'à§©', 59377 4: '৪', 59378 5: 'à§«', 59379 6: '৬', 59380 7: 'à§', 59381 8: 'à§®', 59382 9: '৯', 59383 0: '০', 59384 }, 59385 numberMap = { 59386 'à§§': '1', 59387 '২': '2', 59388 'à§©': '3', 59389 '৪': '4', 59390 'à§«': '5', 59391 '৬': '6', 59392 'à§': '7', 59393 'à§®': '8', 59394 '৯': '9', 59395 '০': '0', 59396 }; 59397 59398 var bn = moment.defineLocale('bn', { 59399 months: 'à¦à¦¾à¦¨à§à§à¦¾à¦°à¦¿_ফà§à¦¬à§à¦°à§à§à¦¾à¦°à¦¿_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦à§à¦®à§à¦¬à¦°_ঠà¦à§à¦à§à¦¬à¦°_নà¦à§à¦®à§à¦¬à¦°_ডিসà§à¦®à§à¦¬à¦°'.split( 59400 '_' 59401 ), 59402 monthsShort: 59403 'à¦à¦¾à¦¨à§_ফà§à¦¬à§à¦°à§_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦_ঠà¦à§à¦à§_নà¦à§_ডিসà§'.split( 59404 '_' 59405 ), 59406 weekdays: 'রবিবার_সà§à¦®à¦¬à¦¾à¦°_মà¦à§à¦à¦²à¦¬à¦¾à¦°_বà§à¦§à¦¬à¦¾à¦°_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦à§à¦°à¦¬à¦¾à¦°_শনিবার'.split( 59407 '_' 59408 ), 59409 weekdaysShort: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿_শà§à¦à§à¦°_শনি'.split('_'), 59410 weekdaysMin: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹_শà§à¦à§à¦°_শনি'.split('_'), 59411 longDateFormat: { 59412 LT: 'A h:mm সমà§', 59413 LTS: 'A h:mm:ss সমà§', 59414 L: 'DD/MM/YYYY', 59415 LL: 'D MMMM YYYY', 59416 LLL: 'D MMMM YYYY, A h:mm সমà§', 59417 LLLL: 'dddd, D MMMM YYYY, A h:mm সমà§', 59418 }, 59419 calendar: { 59420 sameDay: '[à¦à¦] LT', 59421 nextDay: '[à¦à¦à¦¾à¦®à§à¦à¦¾à¦²] LT', 59422 nextWeek: 'dddd, LT', 59423 lastDay: '[à¦à¦¤à¦à¦¾à¦²] LT', 59424 lastWeek: '[à¦à¦¤] dddd, LT', 59425 sameElse: 'L', 59426 }, 59427 relativeTime: { 59428 future: '%s পরà§', 59429 past: '%s à¦à¦à§', 59430 s: 'à¦à§à§à¦ সà§à¦à§à¦¨à§à¦¡', 59431 ss: '%d সà§à¦à§à¦¨à§à¦¡', 59432 m: 'à¦à¦ মিনিà¦', 59433 mm: '%d মিনিà¦', 59434 h: 'à¦à¦ à¦à¦¨à§à¦à¦¾', 59435 hh: '%d à¦à¦¨à§à¦à¦¾', 59436 d: 'à¦à¦ দিন', 59437 dd: '%d দিন', 59438 M: 'à¦à¦ মাস', 59439 MM: '%d মাস', 59440 y: 'à¦à¦ বà¦à¦°', 59441 yy: '%d বà¦à¦°', 59442 }, 59443 preparse: function (string) { 59444 return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) { 59445 return numberMap[match]; 59446 }); 59447 }, 59448 postformat: function (string) { 59449 return string.replace(/\d/g, function (match) { 59450 return symbolMap[match]; 59451 }); 59452 }, 59453 meridiemParse: /রাত|সà¦à¦¾à¦²|দà§à¦ªà§à¦°|বিà¦à¦¾à¦²|রাত/, 59454 meridiemHour: function (hour, meridiem) { 59455 if (hour === 12) { 59456 hour = 0; 59457 } 59458 if ( 59459 (meridiem === 'রাত' && hour >= 4) || 59460 (meridiem === 'দà§à¦ªà§à¦°' && hour < 5) || 59461 meridiem === 'বিà¦à¦¾à¦²' 59462 ) { 59463 return hour + 12; 59464 } else { 59465 return hour; 59466 } 59467 }, 59468 meridiem: function (hour, minute, isLower) { 59469 if (hour < 4) { 59470 return 'রাত'; 59471 } else if (hour < 10) { 59472 return 'সà¦à¦¾à¦²'; 59473 } else if (hour < 17) { 59474 return 'দà§à¦ªà§à¦°'; 59475 } else if (hour < 20) { 59476 return 'বিà¦à¦¾à¦²'; 59477 } else { 59478 return 'রাত'; 59479 } 59480 }, 59481 week: { 59482 dow: 0, // Sunday is the first day of the week. 59483 doy: 6, // The week that contains Jan 6th is the first week of the year. 59484 }, 59485 }); 59486 59487 return bn; 59488 59489}))); 59490 59491 59492/***/ }), 59493
vendor: 5,356 bytes, lines 59494-59636
59494/***/ "./node_modules/moment/locale/bo.js": 59495/*!******************************************!*\ 59496 !*** ./node_modules/moment/locale/bo.js ***! 59497 \******************************************/ 59498/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 59499 59500//! moment.js locale configuration 59501//! locale : Tibetan [bo] 59502//! author : Thupten N. Chakrishar : https://github.com/vajradog 59503 59504;(function (global, factory) { 59505 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 59506 0 59507}(this, (function (moment) { 'use strict'; 59508 59509 //! moment.js locale configuration 59510 59511 var symbolMap = { 59512 1: '༡', 59513 2: '༢', 59514 3: '༣', 59515 4: '༤', 59516 5: '༥', 59517 6: '༦', 59518 7: '༧', 59519 8: '༨', 59520 9: '༩', 59521 0: '༠', 59522 }, 59523 numberMap = { 59524 '༡': '1', 59525 '༢': '2', 59526 '༣': '3', 59527 '༤': '4', 59528 '༥': '5', 59529 '༦': '6', 59530 '༧': '7', 59531 '༨': '8', 59532 '༩': '9', 59533 '༠': '0', 59534 }; 59535 59536 var bo = moment.defineLocale('bo', { 59537 months: 'à½à¾³à¼à½à¼à½à½à¼à½à½¼_à½à¾³à¼à½à¼à½à½à½²à½¦à¼à½_à½à¾³à¼à½à¼à½à½¦à½´à½à¼à½_à½à¾³à¼à½à¼à½à½à½²à¼à½_à½à¾³à¼à½à¼à½£à¾à¼à½_à½à¾³à¼à½à¼à½à¾²à½´à½à¼à½_à½à¾³à¼à½à¼à½à½à½´à½à¼à½_à½à¾³à¼à½à¼à½à½¢à¾à¾±à½à¼à½_à½à¾³à¼à½à¼à½à½à½´à¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½à½ ིà½à¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½à½à½²à½¦à¼à½'.split( 59538 '_' 59539 ), 59540 monthsShort: 59541 'à½à¾³à¼1_à½à¾³à¼2_à½à¾³à¼3_à½à¾³à¼4_à½à¾³à¼5_à½à¾³à¼6_à½à¾³à¼7_à½à¾³à¼8_à½à¾³à¼9_à½à¾³à¼10_à½à¾³à¼11_à½à¾³à¼12'.split( 59542 '_' 59543 ), 59544 monthsShortRegex: /^(à½à¾³à¼\d{1,2})/, 59545 monthsParseExact: true, 59546 weekdays: 59547 'à½à½à½ à¼à½à½²à¼à½à¼_à½à½à½ à¼à½à¾³à¼à½à¼_à½à½à½ à¼à½à½²à½à¼à½à½à½¢à¼_à½à½à½ à¼à½£à¾·à½à¼à½à¼_à½à½à½ à¼à½à½´à½¢à¼à½à½´_à½à½à½ à¼à½à¼à½¦à½à½¦à¼_à½à½à½ à¼à½¦à¾¤à½ºà½à¼à½à¼'.split( 59548 '_' 59549 ), 59550 weekdaysShort: 'à½à½²à¼à½à¼_à½à¾³à¼à½à¼_à½à½²à½à¼à½à½à½¢à¼_ལྷà½à¼à½à¼_à½à½´à½¢à¼à½à½´_à½à¼à½¦à½à½¦à¼_སྤེà½à¼à½à¼'.split( 59551 '_' 59552 ), 59553 weekdaysMin: 'à½à½²_à½à¾³_à½à½²à½_ལྷà½_à½à½´à½¢_སà½à½¦_སྤེà½'.split('_'), 59554 longDateFormat: { 59555 LT: 'A h:mm', 59556 LTS: 'A h:mm:ss', 59557 L: 'DD/MM/YYYY', 59558 LL: 'D MMMM YYYY', 59559 LLL: 'D MMMM YYYY, A h:mm', 59560 LLLL: 'dddd, D MMMM YYYY, A h:mm', 59561 }, 59562 calendar: { 59563 sameDay: '[à½à½²à¼à½¢à½²à½] LT', 59564 nextDay: '[སà½à¼à½à½²à½] LT', 59565 nextWeek: '[à½à½à½´à½à¼à½à¾²à½à¼à½¢à¾à½ºà½¦à¼à½], LT', 59566 lastDay: '[à½à¼à½¦à½] LT', 59567 lastWeek: '[à½à½à½´à½à¼à½à¾²à½à¼à½à½à½ à¼à½] dddd, LT', 59568 sameElse: 'L', 59569 }, 59570 relativeTime: { 59571 future: '%s ལà¼', 59572 past: '%s སà¾à½à¼à½£', 59573 s: 'ལà½à¼à½¦à½', 59574 ss: '%d སà¾à½¢à¼à½à¼', 59575 m: 'སà¾à½¢à¼à½à¼à½à½ ིà½', 59576 mm: '%d སà¾à½¢à¼à½', 59577 h: 'à½à½´à¼à½à½¼à½à¼à½à½ ིà½', 59578 hh: '%d à½à½´à¼à½à½¼à½', 59579 d: 'à½à½²à½à¼à½à½ ིà½', 59580 dd: '%d à½à½²à½à¼', 59581 M: 'à½à¾³à¼à½à¼à½à½ ིà½', 59582 MM: '%d à½à¾³à¼à½', 59583 y: 'ལོà¼à½à½ ིà½', 59584 yy: '%d ལོ', 59585 }, 59586 preparse: function (string) { 59587 return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { 59588 return numberMap[match]; 59589 }); 59590 }, 59591 postformat: function (string) { 59592 return string.replace(/\d/g, function (match) { 59593 return symbolMap[match]; 59594 }); 59595 }, 59596 meridiemParse: /à½à½à½à¼à½à½¼|à½à½¼à½à½¦à¼à½à½¦|à½à½²à½à¼à½à½´à½|à½à½à½¼à½à¼à½à½|à½à½à½à¼à½à½¼/, 59597 meridiemHour: function (hour, meridiem) { 59598 if (hour === 12) { 59599 hour = 0; 59600 } 59601 if ( 59602 (meridiem === 'à½à½à½à¼à½à½¼' && hour >= 4) || 59603 (meridiem === 'à½à½²à½à¼à½à½´à½' && hour < 5) || 59604 meridiem === 'à½à½à½¼à½à¼à½à½' 59605 ) { 59606 return hour + 12; 59607 } else { 59608 return hour; 59609 } 59610 }, 59611 meridiem: function (hour, minute, isLower) { 59612 if (hour < 4) { 59613 return 'à½à½à½à¼à½à½¼'; 59614 } else if (hour < 10) { 59615 return 'à½à½¼à½à½¦à¼à½à½¦'; 59616 } else if (hour < 17) { 59617 return 'à½à½²à½à¼à½à½´à½'; 59618 } else if (hour < 20) { 59619 return 'à½à½à½¼à½à¼à½à½'; 59620 } else { 59621 return 'à½à½à½à¼à½à½¼'; 59622 } 59623 }, 59624 week: { 59625 dow: 0, // Sunday is the first day of the week. 59626 doy: 6, // The week that contains Jan 6th is the first week of the year. 59627 }, 59628 }); 59629 59630 return bo; 59631 59632}))); 59633 59634 59635/***/ }), 59636
vendor: 5,665 bytes, lines 59637-59823
59637/***/ "./node_modules/moment/locale/br.js": 59638/*!******************************************!*\ 59639 !*** ./node_modules/moment/locale/br.js ***! 59640 \******************************************/ 59641/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 59642 59643//! moment.js locale configuration 59644//! locale : Breton [br] 59645//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou 59646 59647;(function (global, factory) { 59648 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 59649 0 59650}(this, (function (moment) { 'use strict'; 59651 59652 //! moment.js locale configuration 59653 59654 function relativeTimeWithMutation(number, withoutSuffix, key) { 59655 var format = { 59656 mm: 'munutenn', 59657 MM: 'miz', 59658 dd: 'devezh', 59659 }; 59660 return number + ' ' + mutation(format[key], number); 59661 } 59662 function specialMutationForYears(number) { 59663 switch (lastNumber(number)) { 59664 case 1: 59665 case 3: 59666 case 4: 59667 case 5: 59668 case 9: 59669 return number + ' bloaz'; 59670 default: 59671 return number + ' vloaz'; 59672 } 59673 } 59674 function lastNumber(number) { 59675 if (number > 9) { 59676 return lastNumber(number % 10); 59677 } 59678 return number; 59679 } 59680 function mutation(text, number) { 59681 if (number === 2) { 59682 return softMutation(text); 59683 } 59684 return text; 59685 } 59686 function softMutation(text) { 59687 var mutationTable = { 59688 m: 'v', 59689 b: 'v', 59690 d: 'z', 59691 }; 59692 if (mutationTable[text.charAt(0)] === undefined) { 59693 return text; 59694 } 59695 return mutationTable[text.charAt(0)] + text.substring(1); 59696 } 59697 59698 var monthsParse = [ 59699 /^gen/i, 59700 /^c[ʼ\']hwe/i, 59701 /^meu/i, 59702 /^ebr/i, 59703 /^mae/i, 59704 /^(mez|eve)/i, 59705 /^gou/i, 59706 /^eos/i, 59707 /^gwe/i, 59708 /^her/i, 59709 /^du/i, 59710 /^ker/i, 59711 ], 59712 monthsRegex = 59713 /^(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, 59714 monthsStrictRegex = 59715 /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, 59716 monthsShortStrictRegex = 59717 /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, 59718 fullWeekdaysParse = [ 59719 /^sul/i, 59720 /^lun/i, 59721 /^meurzh/i, 59722 /^merc[ʼ\']her/i, 59723 /^yaou/i, 59724 /^gwener/i, 59725 /^sadorn/i, 59726 ], 59727 shortWeekdaysParse = [ 59728 /^Sul/i, 59729 /^Lun/i, 59730 /^Meu/i, 59731 /^Mer/i, 59732 /^Yao/i, 59733 /^Gwe/i, 59734 /^Sad/i, 59735 ], 59736 minWeekdaysParse = [ 59737 /^Su/i, 59738 /^Lu/i, 59739 /^Me([^r]|$)/i, 59740 /^Mer/i, 59741 /^Ya/i, 59742 /^Gw/i, 59743 /^Sa/i, 59744 ]; 59745 59746 var br = moment.defineLocale('br', { 59747 months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( 59748 '_' 59749 ), 59750 monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), 59751 weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), 59752 weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), 59753 weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), 59754 weekdaysParse: minWeekdaysParse, 59755 fullWeekdaysParse: fullWeekdaysParse, 59756 shortWeekdaysParse: shortWeekdaysParse, 59757 minWeekdaysParse: minWeekdaysParse, 59758 59759 monthsRegex: monthsRegex, 59760 monthsShortRegex: monthsRegex, 59761 monthsStrictRegex: monthsStrictRegex, 59762 monthsShortStrictRegex: monthsShortStrictRegex, 59763 monthsParse: monthsParse, 59764 longMonthsParse: monthsParse, 59765 shortMonthsParse: monthsParse, 59766 59767 longDateFormat: { 59768 LT: 'HH:mm', 59769 LTS: 'HH:mm:ss', 59770 L: 'DD/MM/YYYY', 59771 LL: 'D [a viz] MMMM YYYY', 59772 LLL: 'D [a viz] MMMM YYYY HH:mm', 59773 LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', 59774 }, 59775 calendar: { 59776 sameDay: '[Hiziv da] LT', 59777 nextDay: '[Warcʼhoazh da] LT', 59778 nextWeek: 'dddd [da] LT', 59779 lastDay: '[Decʼh da] LT', 59780 lastWeek: 'dddd [paset da] LT', 59781 sameElse: 'L', 59782 }, 59783 relativeTime: { 59784 future: 'a-benn %s', 59785 past: '%s ʼzo', 59786 s: 'un nebeud segondennoù', 59787 ss: '%d eilenn', 59788 m: 'ur vunutenn', 59789 mm: relativeTimeWithMutation, 59790 h: 'un eur', 59791 hh: '%d eur', 59792 d: 'un devezh', 59793 dd: relativeTimeWithMutation, 59794 M: 'ur miz', 59795 MM: relativeTimeWithMutation, 59796 y: 'ur bloaz', 59797 yy: specialMutationForYears, 59798 }, 59799 dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, 59800 ordinal: function (number) { 59801 var output = number === 1 ? 'añ' : 'vet'; 59802 return number + output; 59803 }, 59804 week: { 59805 dow: 1, // Monday is the first day of the week. 59806 doy: 4, // The week that contains Jan 4th is the first week of the year. 59807 }, 59808 meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn 59809 isPM: function (token) { 59810 return token === 'g.m.'; 59811 }, 59812 meridiem: function (hour, minute, isLower) { 59813 return hour < 12 ? 'a.m.' : 'g.m.'; 59814 }, 59815 }); 59816 59817 return br; 59818 59819}))); 59820 59821 59822/***/ }), 59823
vendor: 5,820 bytes, lines 59824-60002
59824/***/ "./node_modules/moment/locale/bs.js": 59825/*!******************************************!*\ 59826 !*** ./node_modules/moment/locale/bs.js ***! 59827 \******************************************/ 59828/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 59829 59830//! moment.js locale configuration 59831//! locale : Bosnian [bs] 59832//! author : Nedim Cholich : https://github.com/frontyard 59833//! author : Rasid Redzic : https://github.com/rasidre 59834//! based on (hr) translation by Bojan MarkoviÄ 59835 59836;(function (global, factory) { 59837 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 59838 0 59839}(this, (function (moment) { 'use strict'; 59840 59841 //! moment.js locale configuration 59842 59843 function processRelativeTime(number, withoutSuffix, key, isFuture) { 59844 switch (key) { 59845 case 'm': 59846 return withoutSuffix 59847 ? 'jedna minuta' 59848 : isFuture 59849 ? 'jednu minutu' 59850 : 'jedne minute'; 59851 } 59852 } 59853 59854 function translate(number, withoutSuffix, key) { 59855 var result = number + ' '; 59856 switch (key) { 59857 case 'ss': 59858 if (number === 1) { 59859 result += 'sekunda'; 59860 } else if (number === 2 || number === 3 || number === 4) { 59861 result += 'sekunde'; 59862 } else { 59863 result += 'sekundi'; 59864 } 59865 return result; 59866 case 'mm': 59867 if (number === 1) { 59868 result += 'minuta'; 59869 } else if (number === 2 || number === 3 || number === 4) { 59870 result += 'minute'; 59871 } else { 59872 result += 'minuta'; 59873 } 59874 return result; 59875 case 'h': 59876 return withoutSuffix ? 'jedan sat' : 'jedan sat'; 59877 case 'hh': 59878 if (number === 1) { 59879 result += 'sat'; 59880 } else if (number === 2 || number === 3 || number === 4) { 59881 result += 'sata'; 59882 } else { 59883 result += 'sati'; 59884 } 59885 return result; 59886 case 'dd': 59887 if (number === 1) { 59888 result += 'dan'; 59889 } else { 59890 result += 'dana'; 59891 } 59892 return result; 59893 case 'MM': 59894 if (number === 1) { 59895 result += 'mjesec'; 59896 } else if (number === 2 || number === 3 || number === 4) { 59897 result += 'mjeseca'; 59898 } else { 59899 result += 'mjeseci'; 59900 } 59901 return result; 59902 case 'yy': 59903 if (number === 1) { 59904 result += 'godina'; 59905 } else if (number === 2 || number === 3 || number === 4) { 59906 result += 'godine'; 59907 } else { 59908 result += 'godina'; 59909 } 59910 return result; 59911 } 59912 } 59913 59914 var bs = moment.defineLocale('bs', { 59915 months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( 59916 '_' 59917 ), 59918 monthsShort: 59919 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( 59920 '_' 59921 ), 59922 monthsParseExact: true, 59923 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split( 59924 '_' 59925 ), 59926 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 59927 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 59928 weekdaysParseExact: true, 59929 longDateFormat: { 59930 LT: 'H:mm', 59931 LTS: 'H:mm:ss', 59932 L: 'DD.MM.YYYY', 59933 LL: 'D. MMMM YYYY', 59934 LLL: 'D. MMMM YYYY H:mm', 59935 LLLL: 'dddd, D. MMMM YYYY H:mm', 59936 }, 59937 calendar: { 59938 sameDay: '[danas u] LT', 59939 nextDay: '[sutra u] LT', 59940 nextWeek: function () { 59941 switch (this.day()) { 59942 case 0: 59943 return '[u] [nedjelju] [u] LT'; 59944 case 3: 59945 return '[u] [srijedu] [u] LT'; 59946 case 6: 59947 return '[u] [subotu] [u] LT'; 59948 case 1: 59949 case 2: 59950 case 4: 59951 case 5: 59952 return '[u] dddd [u] LT'; 59953 } 59954 }, 59955 lastDay: '[juÄer u] LT', 59956 lastWeek: function () { 59957 switch (this.day()) { 59958 case 0: 59959 case 3: 59960 return '[proÅ¡lu] dddd [u] LT'; 59961 case 6: 59962 return '[proÅ¡le] [subote] [u] LT'; 59963 case 1: 59964 case 2: 59965 case 4: 59966 case 5: 59967 return '[proÅ¡li] dddd [u] LT'; 59968 } 59969 }, 59970 sameElse: 'L', 59971 }, 59972 relativeTime: { 59973 future: 'za %s', 59974 past: 'prije %s', 59975 s: 'par sekundi', 59976 ss: translate, 59977 m: processRelativeTime, 59978 mm: translate, 59979 h: translate, 59980 hh: translate, 59981 d: 'dan', 59982 dd: translate, 59983 M: 'mjesec', 59984 MM: translate, 59985 y: 'godinu', 59986 yy: translate, 59987 }, 59988 dayOfMonthOrdinalParse: /\d{1,2}\./, 59989 ordinal: '%d.', 59990 week: { 59991 dow: 1, // Monday is the first day of the week. 59992 doy: 7, // The week that contains Jan 7th is the first week of the year. 59993 }, 59994 }); 59995 59996 return bs; 59997 59998}))); 59999 60000 60001/***/ }), 60002
vendor: 3,920 bytes, lines 60003-60121
60003/***/ "./node_modules/moment/locale/ca.js": 60004/*!******************************************!*\ 60005 !*** ./node_modules/moment/locale/ca.js ***! 60006 \******************************************/ 60007/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 60008 60009//! moment.js locale configuration 60010//! locale : Catalan [ca] 60011//! author : Juan G. Hurtado : https://github.com/juanghurtado 60012 60013;(function (global, factory) { 60014 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 60015 0 60016}(this, (function (moment) { 'use strict'; 60017 60018 //! moment.js locale configuration 60019 60020 var ca = moment.defineLocale('ca', { 60021 months: { 60022 standalone: 60023 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( 60024 '_' 60025 ), 60026 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( 60027 '_' 60028 ), 60029 isFormat: /D[oD]?(\s)+MMMM/, 60030 }, 60031 monthsShort: 60032 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( 60033 '_' 60034 ), 60035 monthsParseExact: true, 60036 weekdays: 60037 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( 60038 '_' 60039 ), 60040 weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), 60041 weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), 60042 weekdaysParseExact: true, 60043 longDateFormat: { 60044 LT: 'H:mm', 60045 LTS: 'H:mm:ss', 60046 L: 'DD/MM/YYYY', 60047 LL: 'D MMMM [de] YYYY', 60048 ll: 'D MMM YYYY', 60049 LLL: 'D MMMM [de] YYYY [a les] H:mm', 60050 lll: 'D MMM YYYY, H:mm', 60051 LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', 60052 llll: 'ddd D MMM YYYY, H:mm', 60053 }, 60054 calendar: { 60055 sameDay: function () { 60056 return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 60057 }, 60058 nextDay: function () { 60059 return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 60060 }, 60061 nextWeek: function () { 60062 return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 60063 }, 60064 lastDay: function () { 60065 return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 60066 }, 60067 lastWeek: function () { 60068 return ( 60069 '[el] dddd [passat a ' + 60070 (this.hours() !== 1 ? 'les' : 'la') + 60071 '] LT' 60072 ); 60073 }, 60074 sameElse: 'L', 60075 }, 60076 relativeTime: { 60077 future: "d'aquà %s", 60078 past: 'fa %s', 60079 s: 'uns segons', 60080 ss: '%d segons', 60081 m: 'un minut', 60082 mm: '%d minuts', 60083 h: 'una hora', 60084 hh: '%d hores', 60085 d: 'un dia', 60086 dd: '%d dies', 60087 M: 'un mes', 60088 MM: '%d mesos', 60089 y: 'un any', 60090 yy: '%d anys', 60091 }, 60092 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, 60093 ordinal: function (number, period) { 60094 var output = 60095 number === 1 60096 ? 'r' 60097 : number === 2 60098 ? 'n' 60099 : number === 3 60100 ? 'r' 60101 : number === 4 60102 ? 't' 60103 : 'è'; 60104 if (period === 'w' || period === 'W') { 60105 output = 'a'; 60106 } 60107 return number + output; 60108 }, 60109 week: { 60110 dow: 1, // Monday is the first day of the week. 60111 doy: 4, // The week that contains Jan 4th is the first week of the year. 60112 }, 60113 }); 60114 60115 return ca; 60116 60117}))); 60118 60119 60120/***/ }), 60121
vendor: 7,951 bytes, lines 60122-60321
60122/***/ "./node_modules/moment/locale/cs.js": 60123/*!******************************************!*\ 60124 !*** ./node_modules/moment/locale/cs.js ***! 60125 \******************************************/ 60126/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 60127 60128//! moment.js locale configuration 60129//! locale : Czech [cs] 60130//! author : petrbela : https://github.com/petrbela 60131 60132;(function (global, factory) { 60133 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 60134 0 60135}(this, (function (moment) { 'use strict'; 60136 60137 //! moment.js locale configuration 60138 60139 var months = { 60140 standalone: 60141 'leden_únor_bÅezen_duben_kvÄten_Äerven_Äervenec_srpen_záÅÃ_ÅÃjen_listopad_prosinec'.split( 60142 '_' 60143 ), 60144 format: 'ledna_února_bÅezna_dubna_kvÄtna_Äervna_Äervence_srpna_záÅÃ_ÅÃjna_listopadu_prosince'.split( 60145 '_' 60146 ), 60147 isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/, 60148 }, 60149 monthsShort = 'led_úno_bÅe_dub_kvÄ_Ävn_Ävc_srp_záÅ_ÅÃj_lis_pro'.split('_'), 60150 monthsParse = [ 60151 /^led/i, 60152 /^úno/i, 60153 /^bÅe/i, 60154 /^dub/i, 60155 /^kvÄ/i, 60156 /^(Ävn|Äerven$|Äervna)/i, 60157 /^(Ävc|Äervenec|Äervence)/i, 60158 /^srp/i, 60159 /^záÅ/i, 60160 /^ÅÃj/i, 60161 /^lis/i, 60162 /^pro/i, 60163 ], 60164 // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched. 60165 // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'. 60166 monthsRegex = 60167 /^(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; 60168 60169 function plural(n) { 60170 return n > 1 && n < 5 && ~~(n / 10) !== 1; 60171 } 60172 function translate(number, withoutSuffix, key, isFuture) { 60173 var result = number + ' '; 60174 switch (key) { 60175 case 's': // a few seconds / in a few seconds / a few seconds ago 60176 return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; 60177 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago 60178 if (withoutSuffix || isFuture) { 60179 return result + (plural(number) ? 'sekundy' : 'sekund'); 60180 } else { 60181 return result + 'sekundami'; 60182 } 60183 case 'm': // a minute / in a minute / a minute ago 60184 return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; 60185 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago 60186 if (withoutSuffix || isFuture) { 60187 return result + (plural(number) ? 'minuty' : 'minut'); 60188 } else { 60189 return result + 'minutami'; 60190 } 60191 case 'h': // an hour / in an hour / an hour ago 60192 return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; 60193 case 'hh': // 9 hours / in 9 hours / 9 hours ago 60194 if (withoutSuffix || isFuture) { 60195 return result + (plural(number) ? 'hodiny' : 'hodin'); 60196 } else { 60197 return result + 'hodinami'; 60198 } 60199 case 'd': // a day / in a day / a day ago 60200 return withoutSuffix || isFuture ? 'den' : 'dnem'; 60201 case 'dd': // 9 days / in 9 days / 9 days ago 60202 if (withoutSuffix || isFuture) { 60203 return result + (plural(number) ? 'dny' : 'dnÃ'); 60204 } else { 60205 return result + 'dny'; 60206 } 60207 case 'M': // a month / in a month / a month ago 60208 return withoutSuffix || isFuture ? 'mÄsÃc' : 'mÄsÃcem'; 60209 case 'MM': // 9 months / in 9 months / 9 months ago 60210 if (withoutSuffix || isFuture) { 60211 return result + (plural(number) ? 'mÄsÃce' : 'mÄsÃců'); 60212 } else { 60213 return result + 'mÄsÃci'; 60214 } 60215 case 'y': // a year / in a year / a year ago 60216 return withoutSuffix || isFuture ? 'rok' : 'rokem'; 60217 case 'yy': // 9 years / in 9 years / 9 years ago 60218 if (withoutSuffix || isFuture) { 60219 return result + (plural(number) ? 'roky' : 'let'); 60220 } else { 60221 return result + 'lety'; 60222 } 60223 } 60224 } 60225 60226 var cs = moment.defineLocale('cs', { 60227 months: months, 60228 monthsShort: monthsShort, 60229 monthsRegex: monthsRegex, 60230 monthsShortRegex: monthsRegex, 60231 // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched. 60232 // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'. 60233 monthsStrictRegex: 60234 /^(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, 60235 monthsShortStrictRegex: 60236 /^(led|úno|bÅe|dub|kvÄ|Ävn|Ävc|srp|záÅ|ÅÃj|lis|pro)/i, 60237 monthsParse: monthsParse, 60238 longMonthsParse: monthsParse, 60239 shortMonthsParse: monthsParse, 60240 weekdays: 'nedÄle_pondÄlÃ_úterý_stÅeda_Ätvrtek_pátek_sobota'.split('_'), 60241 weekdaysShort: 'ne_po_út_st_Ät_pá_so'.split('_'), 60242 weekdaysMin: 'ne_po_út_st_Ät_pá_so'.split('_'), 60243 longDateFormat: { 60244 LT: 'H:mm', 60245 LTS: 'H:mm:ss', 60246 L: 'DD.MM.YYYY', 60247 LL: 'D. MMMM YYYY', 60248 LLL: 'D. MMMM YYYY H:mm', 60249 LLLL: 'dddd D. MMMM YYYY H:mm', 60250 l: 'D. M. YYYY', 60251 }, 60252 calendar: { 60253 sameDay: '[dnes v] LT', 60254 nextDay: '[zÃtra v] LT', 60255 nextWeek: function () { 60256 switch (this.day()) { 60257 case 0: 60258 return '[v nedÄli v] LT'; 60259 case 1: 60260 case 2: 60261 return '[v] dddd [v] LT'; 60262 case 3: 60263 return '[ve stÅedu v] LT'; 60264 case 4: 60265 return '[ve Ätvrtek v] LT'; 60266 case 5: 60267 return '[v pátek v] LT'; 60268 case 6: 60269 return '[v sobotu v] LT'; 60270 } 60271 }, 60272 lastDay: '[vÄera v] LT', 60273 lastWeek: function () { 60274 switch (this.day()) { 60275 case 0: 60276 return '[minulou nedÄli v] LT'; 60277 case 1: 60278 case 2: 60279 return '[minulé] dddd [v] LT'; 60280 case 3: 60281 return '[minulou stÅedu v] LT'; 60282 case 4: 60283 case 5: 60284 return '[minulý] dddd [v] LT'; 60285 case 6: 60286 return '[minulou sobotu v] LT'; 60287 } 60288 }, 60289 sameElse: 'L', 60290 }, 60291 relativeTime: { 60292 future: 'za %s', 60293 past: 'pÅed %s', 60294 s: translate, 60295 ss: translate, 60296 m: translate, 60297 mm: translate, 60298 h: translate, 60299 hh: translate, 60300 d: translate, 60301 dd: translate, 60302 M: translate, 60303 MM: translate, 60304 y: translate, 60305 yy: translate, 60306 }, 60307 dayOfMonthOrdinalParse: /\d{1,2}\./, 60308 ordinal: '%d.', 60309 week: { 60310 dow: 1, // Monday is the first day of the week. 60311 doy: 4, // The week that contains Jan 4th is the first week of the year. 60312 }, 60313 }); 60314 60315 return cs; 60316 60317}))); 60318 60319 60320/***/ }), 60321
vendor: 3,062 bytes, lines 60322-60403
60322/***/ "./node_modules/moment/locale/cv.js": 60323/*!******************************************!*\ 60324 !*** ./node_modules/moment/locale/cv.js ***! 60325 \******************************************/ 60326/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 60327 60328//! moment.js locale configuration 60329//! locale : Chuvash [cv] 60330//! author : Anatoly Mironov : https://github.com/mirontoli 60331 60332;(function (global, factory) { 60333 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 60334 0 60335}(this, (function (moment) { 'use strict'; 60336 60337 //! moment.js locale configuration 60338 60339 var cv = moment.defineLocale('cv', { 60340 months: 'кÓÑлаÑ_наÑÓÑ_пÑÑ_ака_май_Ò«ÓÑÑме_ÑÑÓ_Ò«ÑÑла_авÓн_Ñпа_Ñӳк_ÑаÑÑав'.split( 60341 '_' 60342 ), 60343 monthsShort: 'кÓÑ_наÑ_пÑÑ_ака_май_Ò«ÓÑ_ÑÑÓ_Ò«ÑÑ_авн_Ñпа_Ñӳк_ÑаÑ'.split('_'), 60344 weekdays: 60345 'вÑÑÑаÑникÑн_ÑÑнÑикÑн_ÑÑлаÑикÑн_ÑнкÑн_кÓҫнеÑникÑн_ÑÑнекÑн_ÑÓмаÑкÑн'.split( 60346 '_' 60347 ), 60348 weekdaysShort: 'вÑÑ_ÑÑн_ÑÑл_Ñн_кÓÒ«_ÑÑн_ÑÓм'.split('_'), 60349 weekdaysMin: 'вÑ_Ñн_ÑÑ_Ñн_кҫ_ÑÑ_Ñм'.split('_'), 60350 longDateFormat: { 60351 LT: 'HH:mm', 60352 LTS: 'HH:mm:ss', 60353 L: 'DD-MM-YYYY', 60354 LL: 'YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ]', 60355 LLL: 'YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ], HH:mm', 60356 LLLL: 'dddd, YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ], HH:mm', 60357 }, 60358 calendar: { 60359 sameDay: '[ÐаÑн] LT [ÑÐµÑ ÐµÑÑе]', 60360 nextDay: '[ЫÑан] LT [ÑÐµÑ ÐµÑÑе]', 60361 lastDay: '[ÓнеÑ] LT [ÑÐµÑ ÐµÑÑе]', 60362 nextWeek: '[ҪиÑеÑ] dddd LT [ÑÐµÑ ÐµÑÑе]', 60363 lastWeek: '[ÐÑÑнÓ] dddd LT [ÑÐµÑ ÐµÑÑе]', 60364 sameElse: 'L', 60365 }, 60366 relativeTime: { 60367 future: function (output) { 60368 var affix = /ÑÐµÑ ÐµÑ$/i.exec(output) 60369 ? 'Ñен' 60370 : /Ò«Ñл$/i.exec(output) 60371 ? 'Ñан' 60372 : 'Ñан'; 60373 return output + affix; 60374 }, 60375 past: '%s каÑлла', 60376 s: 'пÓÑ-ик ҫеккÑнÑ', 60377 ss: '%d ҫеккÑнÑ', 60378 m: 'пÓÑ Ð¼Ð¸Ð½ÑÑ', 60379 mm: '%d минÑÑ', 60380 h: 'пÓÑ ÑÐµÑ ÐµÑ', 60381 hh: '%d ÑÐµÑ ÐµÑ', 60382 d: 'пÓÑ ÐºÑн', 60383 dd: '%d кÑн', 60384 M: 'пÓÑ ÑйÓÑ ', 60385 MM: '%d ÑйÓÑ ', 60386 y: 'пÓÑ Ò«Ñл', 60387 yy: '%d Ò«Ñл', 60388 }, 60389 dayOfMonthOrdinalParse: /\d{1,2}-мÓÑ/, 60390 ordinal: '%d-мÓÑ', 60391 week: { 60392 dow: 1, // Monday is the first day of the week. 60393 doy: 7, // The week that contains Jan 7th is the first week of the year. 60394 }, 60395 }); 60396 60397 return cv; 60398 60399}))); 60400 60401 60402/***/ }), 60403
vendor: 3,687 bytes, lines 60404-60520
60404/***/ "./node_modules/moment/locale/cy.js": 60405/*!******************************************!*\ 60406 !*** ./node_modules/moment/locale/cy.js ***! 60407 \******************************************/ 60408/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 60409 60410//! moment.js locale configuration 60411//! locale : Welsh [cy] 60412//! author : Robert Allen : https://github.com/robgallen 60413//! author : https://github.com/ryangreaves 60414 60415;(function (global, factory) { 60416 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 60417 0 60418}(this, (function (moment) { 'use strict'; 60419 60420 //! moment.js locale configuration 60421 60422 var cy = moment.defineLocale('cy', { 60423 months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( 60424 '_' 60425 ), 60426 monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( 60427 '_' 60428 ), 60429 weekdays: 60430 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( 60431 '_' 60432 ), 60433 weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), 60434 weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), 60435 weekdaysParseExact: true, 60436 // time formats are the same as en-gb 60437 longDateFormat: { 60438 LT: 'HH:mm', 60439 LTS: 'HH:mm:ss', 60440 L: 'DD/MM/YYYY', 60441 LL: 'D MMMM YYYY', 60442 LLL: 'D MMMM YYYY HH:mm', 60443 LLLL: 'dddd, D MMMM YYYY HH:mm', 60444 }, 60445 calendar: { 60446 sameDay: '[Heddiw am] LT', 60447 nextDay: '[Yfory am] LT', 60448 nextWeek: 'dddd [am] LT', 60449 lastDay: '[Ddoe am] LT', 60450 lastWeek: 'dddd [diwethaf am] LT', 60451 sameElse: 'L', 60452 }, 60453 relativeTime: { 60454 future: 'mewn %s', 60455 past: '%s yn ôl', 60456 s: 'ychydig eiliadau', 60457 ss: '%d eiliad', 60458 m: 'munud', 60459 mm: '%d munud', 60460 h: 'awr', 60461 hh: '%d awr', 60462 d: 'diwrnod', 60463 dd: '%d diwrnod', 60464 M: 'mis', 60465 MM: '%d mis', 60466 y: 'blwyddyn', 60467 yy: '%d flynedd', 60468 }, 60469 dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, 60470 // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh 60471 ordinal: function (number) { 60472 var b = number, 60473 output = '', 60474 lookup = [ 60475 '', 60476 'af', 60477 'il', 60478 'ydd', 60479 'ydd', 60480 'ed', 60481 'ed', 60482 'ed', 60483 'fed', 60484 'fed', 60485 'fed', // 1af to 10fed 60486 'eg', 60487 'fed', 60488 'eg', 60489 'eg', 60490 'fed', 60491 'eg', 60492 'eg', 60493 'fed', 60494 'eg', 60495 'fed', // 11eg to 20fed 60496 ]; 60497 if (b > 20) { 60498 if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { 60499 output = 'fed'; // not 30ain, 70ain or 90ain 60500 } else { 60501 output = 'ain'; 60502 } 60503 } else if (b > 0) { 60504 output = lookup[b]; 60505 } 60506 return number + output; 60507 }, 60508 week: { 60509 dow: 1, // Monday is the first day of the week. 60510 doy: 4, // The week that contains Jan 4th is the first week of the year. 60511 }, 60512 }); 60513 60514 return cy; 60515 60516}))); 60517 60518 60519/***/ }), 60520
vendor: 2,306 bytes, lines 60521-60592
60521/***/ "./node_modules/moment/locale/da.js": 60522/*!******************************************!*\ 60523 !*** ./node_modules/moment/locale/da.js ***! 60524 \******************************************/ 60525/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 60526 60527//! moment.js locale configuration 60528//! locale : Danish [da] 60529//! author : Ulrik Nielsen : https://github.com/mrbase 60530 60531;(function (global, factory) { 60532 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 60533 0 60534}(this, (function (moment) { 'use strict'; 60535 60536 //! moment.js locale configuration 60537 60538 var da = moment.defineLocale('da', { 60539 months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( 60540 '_' 60541 ), 60542 monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), 60543 weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), 60544 weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), 60545 weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), 60546 longDateFormat: { 60547 LT: 'HH:mm', 60548 LTS: 'HH:mm:ss', 60549 L: 'DD.MM.YYYY', 60550 LL: 'D. MMMM YYYY', 60551 LLL: 'D. MMMM YYYY HH:mm', 60552 LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', 60553 }, 60554 calendar: { 60555 sameDay: '[i dag kl.] LT', 60556 nextDay: '[i morgen kl.] LT', 60557 nextWeek: 'på dddd [kl.] LT', 60558 lastDay: '[i går kl.] LT', 60559 lastWeek: '[i] dddd[s kl.] LT', 60560 sameElse: 'L', 60561 }, 60562 relativeTime: { 60563 future: 'om %s', 60564 past: '%s siden', 60565 s: 'få sekunder', 60566 ss: '%d sekunder', 60567 m: 'et minut', 60568 mm: '%d minutter', 60569 h: 'en time', 60570 hh: '%d timer', 60571 d: 'en dag', 60572 dd: '%d dage', 60573 M: 'en måned', 60574 MM: '%d måneder', 60575 y: 'et år', 60576 yy: '%d år', 60577 }, 60578 dayOfMonthOrdinalParse: /\d{1,2}\./, 60579 ordinal: '%d.', 60580 week: { 60581 dow: 1, // Monday is the first day of the week. 60582 doy: 4, // The week that contains Jan 4th is the first week of the year. 60583 }, 60584 }); 60585 60586 return da; 60587 60588}))); 60589 60590 60591/***/ }), 60592
vendor: 3,416 bytes, lines 60593-60690
60593/***/ "./node_modules/moment/locale/de-at.js": 60594/*!*********************************************!*\ 60595 !*** ./node_modules/moment/locale/de-at.js ***! 60596 \*********************************************/ 60597/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 60598 60599//! moment.js locale configuration 60600//! locale : German (Austria) [de-at] 60601//! author : lluchs : https://github.com/lluchs 60602//! author: Menelion Elensúle: https://github.com/Oire 60603//! author : Martin Groller : https://github.com/MadMG 60604//! author : Mikolaj Dadela : https://github.com/mik01aj 60605 60606;(function (global, factory) { 60607 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 60608 0 60609}(this, (function (moment) { 'use strict'; 60610 60611 //! moment.js locale configuration 60612 60613 function processRelativeTime(number, withoutSuffix, key, isFuture) { 60614 var format = { 60615 m: ['eine Minute', 'einer Minute'], 60616 h: ['eine Stunde', 'einer Stunde'], 60617 d: ['ein Tag', 'einem Tag'], 60618 dd: [number + ' Tage', number + ' Tagen'], 60619 w: ['eine Woche', 'einer Woche'], 60620 M: ['ein Monat', 'einem Monat'], 60621 MM: [number + ' Monate', number + ' Monaten'], 60622 y: ['ein Jahr', 'einem Jahr'], 60623 yy: [number + ' Jahre', number + ' Jahren'], 60624 }; 60625 return withoutSuffix ? format[key][0] : format[key][1]; 60626 } 60627 60628 var deAt = moment.defineLocale('de-at', { 60629 months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( 60630 '_' 60631 ), 60632 monthsShort: 60633 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), 60634 monthsParseExact: true, 60635 weekdays: 60636 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( 60637 '_' 60638 ), 60639 weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), 60640 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 60641 weekdaysParseExact: true, 60642 longDateFormat: { 60643 LT: 'HH:mm', 60644 LTS: 'HH:mm:ss', 60645 L: 'DD.MM.YYYY', 60646 LL: 'D. MMMM YYYY', 60647 LLL: 'D. MMMM YYYY HH:mm', 60648 LLLL: 'dddd, D. MMMM YYYY HH:mm', 60649 }, 60650 calendar: { 60651 sameDay: '[heute um] LT [Uhr]', 60652 sameElse: 'L', 60653 nextDay: '[morgen um] LT [Uhr]', 60654 nextWeek: 'dddd [um] LT [Uhr]', 60655 lastDay: '[gestern um] LT [Uhr]', 60656 lastWeek: '[letzten] dddd [um] LT [Uhr]', 60657 }, 60658 relativeTime: { 60659 future: 'in %s', 60660 past: 'vor %s', 60661 s: 'ein paar Sekunden', 60662 ss: '%d Sekunden', 60663 m: processRelativeTime, 60664 mm: '%d Minuten', 60665 h: processRelativeTime, 60666 hh: '%d Stunden', 60667 d: processRelativeTime, 60668 dd: processRelativeTime, 60669 w: processRelativeTime, 60670 ww: '%d Wochen', 60671 M: processRelativeTime, 60672 MM: processRelativeTime, 60673 y: processRelativeTime, 60674 yy: processRelativeTime, 60675 }, 60676 dayOfMonthOrdinalParse: /\d{1,2}\./, 60677 ordinal: '%d.', 60678 week: { 60679 dow: 1, // Monday is the first day of the week. 60680 doy: 4, // The week that contains Jan 4th is the first week of the year. 60681 }, 60682 }); 60683 60684 return deAt; 60685 60686}))); 60687 60688 60689/***/ }), 60690
vendor: 3,251 bytes, lines 60691-60785
60691/***/ "./node_modules/moment/locale/de-ch.js": 60692/*!*********************************************!*\ 60693 !*** ./node_modules/moment/locale/de-ch.js ***! 60694 \*********************************************/ 60695/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 60696 60697//! moment.js locale configuration 60698//! locale : German (Switzerland) [de-ch] 60699//! author : sschueller : https://github.com/sschueller 60700 60701;(function (global, factory) { 60702 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 60703 0 60704}(this, (function (moment) { 'use strict'; 60705 60706 //! moment.js locale configuration 60707 60708 function processRelativeTime(number, withoutSuffix, key, isFuture) { 60709 var format = { 60710 m: ['eine Minute', 'einer Minute'], 60711 h: ['eine Stunde', 'einer Stunde'], 60712 d: ['ein Tag', 'einem Tag'], 60713 dd: [number + ' Tage', number + ' Tagen'], 60714 w: ['eine Woche', 'einer Woche'], 60715 M: ['ein Monat', 'einem Monat'], 60716 MM: [number + ' Monate', number + ' Monaten'], 60717 y: ['ein Jahr', 'einem Jahr'], 60718 yy: [number + ' Jahre', number + ' Jahren'], 60719 }; 60720 return withoutSuffix ? format[key][0] : format[key][1]; 60721 } 60722 60723 var deCh = moment.defineLocale('de-ch', { 60724 months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( 60725 '_' 60726 ), 60727 monthsShort: 60728 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), 60729 monthsParseExact: true, 60730 weekdays: 60731 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( 60732 '_' 60733 ), 60734 weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 60735 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 60736 weekdaysParseExact: true, 60737 longDateFormat: { 60738 LT: 'HH:mm', 60739 LTS: 'HH:mm:ss', 60740 L: 'DD.MM.YYYY', 60741 LL: 'D. MMMM YYYY', 60742 LLL: 'D. MMMM YYYY HH:mm', 60743 LLLL: 'dddd, D. MMMM YYYY HH:mm', 60744 }, 60745 calendar: { 60746 sameDay: '[heute um] LT [Uhr]', 60747 sameElse: 'L', 60748 nextDay: '[morgen um] LT [Uhr]', 60749 nextWeek: 'dddd [um] LT [Uhr]', 60750 lastDay: '[gestern um] LT [Uhr]', 60751 lastWeek: '[letzten] dddd [um] LT [Uhr]', 60752 }, 60753 relativeTime: { 60754 future: 'in %s', 60755 past: 'vor %s', 60756 s: 'ein paar Sekunden', 60757 ss: '%d Sekunden', 60758 m: processRelativeTime, 60759 mm: '%d Minuten', 60760 h: processRelativeTime, 60761 hh: '%d Stunden', 60762 d: processRelativeTime, 60763 dd: processRelativeTime, 60764 w: processRelativeTime, 60765 ww: '%d Wochen', 60766 M: processRelativeTime, 60767 MM: processRelativeTime, 60768 y: processRelativeTime, 60769 yy: processRelativeTime, 60770 }, 60771 dayOfMonthOrdinalParse: /\d{1,2}\./, 60772 ordinal: '%d.', 60773 week: { 60774 dow: 1, // Monday is the first day of the week. 60775 doy: 4, // The week that contains Jan 4th is the first week of the year. 60776 }, 60777 }); 60778 60779 return deCh; 60780 60781}))); 60782 60783 60784/***/ }), 60785
vendor: 3,327 bytes, lines 60786-60882
60786/***/ "./node_modules/moment/locale/de.js": 60787/*!******************************************!*\ 60788 !*** ./node_modules/moment/locale/de.js ***! 60789 \******************************************/ 60790/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 60791 60792//! moment.js locale configuration 60793//! locale : German [de] 60794//! author : lluchs : https://github.com/lluchs 60795//! author: Menelion Elensúle: https://github.com/Oire 60796//! author : Mikolaj Dadela : https://github.com/mik01aj 60797 60798;(function (global, factory) { 60799 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 60800 0 60801}(this, (function (moment) { 'use strict'; 60802 60803 //! moment.js locale configuration 60804 60805 function processRelativeTime(number, withoutSuffix, key, isFuture) { 60806 var format = { 60807 m: ['eine Minute', 'einer Minute'], 60808 h: ['eine Stunde', 'einer Stunde'], 60809 d: ['ein Tag', 'einem Tag'], 60810 dd: [number + ' Tage', number + ' Tagen'], 60811 w: ['eine Woche', 'einer Woche'], 60812 M: ['ein Monat', 'einem Monat'], 60813 MM: [number + ' Monate', number + ' Monaten'], 60814 y: ['ein Jahr', 'einem Jahr'], 60815 yy: [number + ' Jahre', number + ' Jahren'], 60816 }; 60817 return withoutSuffix ? format[key][0] : format[key][1]; 60818 } 60819 60820 var de = moment.defineLocale('de', { 60821 months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( 60822 '_' 60823 ), 60824 monthsShort: 60825 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), 60826 monthsParseExact: true, 60827 weekdays: 60828 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( 60829 '_' 60830 ), 60831 weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), 60832 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 60833 weekdaysParseExact: true, 60834 longDateFormat: { 60835 LT: 'HH:mm', 60836 LTS: 'HH:mm:ss', 60837 L: 'DD.MM.YYYY', 60838 LL: 'D. MMMM YYYY', 60839 LLL: 'D. MMMM YYYY HH:mm', 60840 LLLL: 'dddd, D. MMMM YYYY HH:mm', 60841 }, 60842 calendar: { 60843 sameDay: '[heute um] LT [Uhr]', 60844 sameElse: 'L', 60845 nextDay: '[morgen um] LT [Uhr]', 60846 nextWeek: 'dddd [um] LT [Uhr]', 60847 lastDay: '[gestern um] LT [Uhr]', 60848 lastWeek: '[letzten] dddd [um] LT [Uhr]', 60849 }, 60850 relativeTime: { 60851 future: 'in %s', 60852 past: 'vor %s', 60853 s: 'ein paar Sekunden', 60854 ss: '%d Sekunden', 60855 m: processRelativeTime, 60856 mm: '%d Minuten', 60857 h: processRelativeTime, 60858 hh: '%d Stunden', 60859 d: processRelativeTime, 60860 dd: processRelativeTime, 60861 w: processRelativeTime, 60862 ww: '%d Wochen', 60863 M: processRelativeTime, 60864 MM: processRelativeTime, 60865 y: processRelativeTime, 60866 yy: processRelativeTime, 60867 }, 60868 dayOfMonthOrdinalParse: /\d{1,2}\./, 60869 ordinal: '%d.', 60870 week: { 60871 dow: 1, // Monday is the first day of the week. 60872 doy: 4, // The week that contains Jan 4th is the first week of the year. 60873 }, 60874 }); 60875 60876 return de; 60877 60878}))); 60879 60880 60881/***/ }), 60882
vendor: 3,285 bytes, lines 60883-60991
60883/***/ "./node_modules/moment/locale/dv.js": 60884/*!******************************************!*\ 60885 !*** ./node_modules/moment/locale/dv.js ***! 60886 \******************************************/ 60887/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 60888 60889//! moment.js locale configuration 60890//! locale : Maldivian [dv] 60891//! author : Jawish Hameed : https://github.com/jawish 60892 60893;(function (global, factory) { 60894 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 60895 0 60896}(this, (function (moment) { 'use strict'; 60897 60898 //! moment.js locale configuration 60899 60900 var months = [ 60901 'ÞÞ¬ÞÞªÞÞ¦ÞÞ©', 60902 'ÞÞ¬ÞÞ°ÞÞªÞÞ¦ÞÞ©', 60903 'ÞÞ§ÞÞ¨ÞÞª', 60904 'ÞÞÞÞ°ÞÞ©ÞÞª', 60905 'ÞÞ', 60906 'ÞÞ«ÞÞ°', 60907 'ÞÞªÞÞ¦ÞÞ¨', 60908 'ÞÞ¯ÞÞ¦ÞÞ°ÞÞª', 60909 'ÞÞ¬ÞÞ°ÞÞ¬ÞÞ°ÞÞ¦ÞÞª', 60910 'ÞÞ®ÞÞ°ÞÞ¯ÞÞ¦ÞÞª', 60911 'ÞÞ®ÞÞ¬ÞÞ°ÞÞ¦ÞÞª', 60912 'ÞÞ¨ÞÞ¬ÞÞ°ÞÞ¦ÞÞª', 60913 ], 60914 weekdays = [ 60915 'ÞÞ§ÞÞ¨ÞÞ°ÞÞ¦', 60916 'ÞÞ¯ÞÞ¦', 60917 'ÞÞ¦ÞÞ°ÞÞ§ÞÞ¦', 60918 'ÞÞªÞÞ¦', 60919 'ÞÞªÞÞ§ÞÞ°ÞÞ¦ÞÞ¨', 60920 'ÞÞªÞÞªÞÞª', 60921 'ÞÞ®ÞÞ¨ÞÞ¨ÞÞª', 60922 ]; 60923 60924 var dv = moment.defineLocale('dv', { 60925 months: months, 60926 monthsShort: months, 60927 weekdays: weekdays, 60928 weekdaysShort: weekdays, 60929 weekdaysMin: 'ÞÞ§ÞÞ¨_ÞÞ¯ÞÞ¦_ÞÞ¦ÞÞ°_ÞÞªÞÞ¦_ÞÞªÞÞ§_ÞÞªÞÞª_ÞÞ®ÞÞ¨'.split('_'), 60930 longDateFormat: { 60931 LT: 'HH:mm', 60932 LTS: 'HH:mm:ss', 60933 L: 'D/M/YYYY', 60934 LL: 'D MMMM YYYY', 60935 LLL: 'D MMMM YYYY HH:mm', 60936 LLLL: 'dddd D MMMM YYYY HH:mm', 60937 }, 60938 meridiemParse: /ÞÞ|ÞÞ/, 60939 isPM: function (input) { 60940 return 'ÞÞ' === input; 60941 }, 60942 meridiem: function (hour, minute, isLower) { 60943 if (hour < 12) { 60944 return 'ÞÞ'; 60945 } else { 60946 return 'ÞÞ'; 60947 } 60948 }, 60949 calendar: { 60950 sameDay: '[ÞÞ¨ÞÞ¦ÞÞª] LT', 60951 nextDay: '[ÞÞ§ÞÞ¦ÞÞ§] LT', 60952 nextWeek: 'dddd LT', 60953 lastDay: '[ÞÞ¨ÞÞ°ÞÞ¬] LT', 60954 lastWeek: '[ÞÞ§ÞÞ¨ÞÞªÞÞ¨] dddd LT', 60955 sameElse: 'L', 60956 }, 60957 relativeTime: { 60958 future: 'ÞÞ¬ÞÞÞÞ¦ÞÞ¨ %s', 60959 past: 'ÞÞªÞÞ¨ÞÞ° %s', 60960 s: 'ÞÞ¨ÞÞªÞÞ°ÞÞªÞÞ®Þ Þ¬ÞÞ°', 60961 ss: 'd% ÞÞ¨ÞÞªÞÞ°ÞÞª', 60962 m: 'ÞÞ¨ÞÞ¨ÞÞ¬ÞÞ°', 60963 mm: 'ÞÞ¨ÞÞ¨ÞÞª %d', 60964 h: 'ÞÞ¦ÞÞ¨ÞÞ¨ÞÞ¬ÞÞ°', 60965 hh: 'ÞÞ¦ÞÞ¨ÞÞ¨ÞÞª %d', 60966 d: 'ÞÞªÞÞ¦ÞÞ¬ÞÞ°', 60967 dd: 'ÞÞªÞÞ¦ÞÞ° %d', 60968 M: 'ÞÞ¦ÞÞ¬ÞÞ°', 60969 MM: 'ÞÞ¦ÞÞ° %d', 60970 y: 'ÞÞ¦ÞÞ¦ÞÞ¬ÞÞ°', 60971 yy: 'ÞÞ¦ÞÞ¦ÞÞª %d', 60972 }, 60973 preparse: function (string) { 60974 return string.replace(/Ø/g, ','); 60975 }, 60976 postformat: function (string) { 60977 return string.replace(/,/g, 'Ø'); 60978 }, 60979 week: { 60980 dow: 7, // Sunday is the first day of the week. 60981 doy: 12, // The week that contains Jan 12th is the first week of the year. 60982 }, 60983 }); 60984 60985 return dv; 60986 60987}))); 60988 60989 60990/***/ }), 60991
vendor: 4,762 bytes, lines 60992-61116
60992/***/ "./node_modules/moment/locale/el.js": 60993/*!******************************************!*\ 60994 !*** ./node_modules/moment/locale/el.js ***! 60995 \******************************************/ 60996/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 60997 60998//! moment.js locale configuration 60999//! locale : Greek [el] 61000//! author : Aggelos Karalias : https://github.com/mehiel 61001 61002;(function (global, factory) { 61003 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 61004 0 61005}(this, (function (moment) { 'use strict'; 61006 61007 //! moment.js locale configuration 61008 61009 function isFunction(input) { 61010 return ( 61011 (typeof Function !== 'undefined' && input instanceof Function) || 61012 Object.prototype.toString.call(input) === '[object Function]' 61013 ); 61014 } 61015 61016 var el = moment.defineLocale('el', { 61017 monthsNominativeEl: 61018 'ÎÎ±Î½Î¿Ï Î¬ÏιοÏ_ΦεβÏÎ¿Ï Î¬ÏιοÏ_ÎάÏÏιοÏ_ÎÏÏίλιοÏ_ÎάιοÏ_ÎοÏνιοÏ_ÎοÏλιοÏ_ÎÏÎ³Î¿Ï ÏÏοÏ_ΣεÏÏÎμβÏιοÏ_ÎκÏÏβÏιοÏ_ÎοÎμβÏιοÏ_ÎεκÎμβÏιοÏ'.split( 61019 '_' 61020 ), 61021 monthsGenitiveEl: 61022 'ÎÎ±Î½Î¿Ï Î±ÏÎ¯Î¿Ï _ΦεβÏÎ¿Ï Î±ÏÎ¯Î¿Ï _ÎαÏÏÎ¯Î¿Ï _ÎÏÏÎ¹Î»Î¯Î¿Ï _ÎαÎÎ¿Ï _ÎÎ¿Ï Î½Î¯Î¿Ï _ÎÎ¿Ï Î»Î¯Î¿Ï _ÎÏ Î³Î¿ÏÏÏÎ¿Ï _ΣεÏÏεμβÏÎ¯Î¿Ï _ÎκÏÏβÏÎ¯Î¿Ï _ÎοεμβÏÎ¯Î¿Ï _ÎεκεμβÏÎ¯Î¿Ï '.split( 61023 '_' 61024 ), 61025 months: function (momentToFormat, format) { 61026 if (!momentToFormat) { 61027 return this._monthsNominativeEl; 61028 } else if ( 61029 typeof format === 'string' && 61030 /D/.test(format.substring(0, format.indexOf('MMMM'))) 61031 ) { 61032 // if there is a day number before 'MMMM' 61033 return this._monthsGenitiveEl[momentToFormat.month()]; 61034 } else { 61035 return this._monthsNominativeEl[momentToFormat.month()]; 61036 } 61037 }, 61038 monthsShort: 'Îαν_Φεβ_ÎαÏ_ÎÏÏ_ÎαÏ_ÎÎ¿Ï Î½_ÎÎ¿Ï Î»_ÎÏ Î³_ΣεÏ_ÎκÏ_Îοε_Îεκ'.split('_'), 61039 weekdays: 'ÎÏ Ïιακή_ÎÎµÏ ÏÎÏα_ΤÏίÏη_ΤεÏάÏÏη_Î ÎμÏÏη_ΠαÏαÏÎºÎµÏ Î®_ΣάββαÏο'.split( 61040 '_' 61041 ), 61042 weekdaysShort: 'ÎÏ Ï_ÎÎµÏ _ΤÏι_ΤεÏ_Πεμ_ΠαÏ_Σαβ'.split('_'), 61043 weekdaysMin: 'ÎÏ _Îε_ΤÏ_Τε_Πε_Πα_Σα'.split('_'), 61044 meridiem: function (hours, minutes, isLower) { 61045 if (hours > 11) { 61046 return isLower ? 'μμ' : 'ÎÎ'; 61047 } else { 61048 return isLower ? 'Ïμ' : 'Î Î'; 61049 } 61050 }, 61051 isPM: function (input) { 61052 return (input + '').toLowerCase()[0] === 'μ'; 61053 }, 61054 meridiemParse: /[Î Î]\.?Î?\.?/i, 61055 longDateFormat: { 61056 LT: 'h:mm A', 61057 LTS: 'h:mm:ss A', 61058 L: 'DD/MM/YYYY', 61059 LL: 'D MMMM YYYY', 61060 LLL: 'D MMMM YYYY h:mm A', 61061 LLLL: 'dddd, D MMMM YYYY h:mm A', 61062 }, 61063 calendarEl: { 61064 sameDay: '[ΣήμεÏα {}] LT', 61065 nextDay: '[ÎÏÏιο {}] LT', 61066 nextWeek: 'dddd [{}] LT', 61067 lastDay: '[Î§Î¸ÎµÏ {}] LT', 61068 lastWeek: function () { 61069 switch (this.day()) { 61070 case 6: 61071 return '[Ïο ÏÏοηγοÏμενο] dddd [{}] LT'; 61072 default: 61073 return '[Ïην ÏÏοηγοÏμενη] dddd [{}] LT'; 61074 } 61075 }, 61076 sameElse: 'L', 61077 }, 61078 calendar: function (key, mom) { 61079 var output = this._calendarEl[key], 61080 hours = mom && mom.hours(); 61081 if (isFunction(output)) { 61082 output = output.apply(mom); 61083 } 61084 return output.replace('{}', hours % 12 === 1 ? 'ÏÏη' : 'ÏÏιÏ'); 61085 }, 61086 relativeTime: { 61087 future: 'Ïε %s', 61088 past: '%s ÏÏιν', 61089 s: 'λίγα Î´ÎµÏ ÏεÏÏλεÏÏα', 61090 ss: '%d Î´ÎµÏ ÏεÏÏλεÏÏα', 61091 m: 'Îνα λεÏÏÏ', 61092 mm: '%d λεÏÏά', 61093 h: 'μία ÏÏα', 61094 hh: '%d ÏÏεÏ', 61095 d: 'μία μÎÏα', 61096 dd: '%d μÎÏεÏ', 61097 M: 'ÎÎ½Î±Ï Î¼Î®Î½Î±Ï', 61098 MM: '%d μήνεÏ', 61099 y: 'ÎÎ½Î±Ï ÏÏÏνοÏ', 61100 yy: '%d ÏÏÏνια', 61101 }, 61102 dayOfMonthOrdinalParse: /\d{1,2}η/, 61103 ordinal: '%dη', 61104 week: { 61105 dow: 1, // Monday is the first day of the week. 61106 doy: 4, // The week that contains Jan 4st is the first week of the year. 61107 }, 61108 }); 61109 61110 return el; 61111 61112}))); 61113 61114 61115/***/ }), 61116
vendor: 2,806 bytes, lines 61117-61203
61117/***/ "./node_modules/moment/locale/en-au.js": 61118/*!*********************************************!*\ 61119 !*** ./node_modules/moment/locale/en-au.js ***! 61120 \*********************************************/ 61121/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 61122 61123//! moment.js locale configuration 61124//! locale : English (Australia) [en-au] 61125//! author : Jared Morse : https://github.com/jarcoal 61126 61127;(function (global, factory) { 61128 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 61129 0 61130}(this, (function (moment) { 'use strict'; 61131 61132 //! moment.js locale configuration 61133 61134 var enAu = moment.defineLocale('en-au', { 61135 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 61136 '_' 61137 ), 61138 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 61139 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 61140 '_' 61141 ), 61142 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 61143 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 61144 longDateFormat: { 61145 LT: 'h:mm A', 61146 LTS: 'h:mm:ss A', 61147 L: 'DD/MM/YYYY', 61148 LL: 'D MMMM YYYY', 61149 LLL: 'D MMMM YYYY h:mm A', 61150 LLLL: 'dddd, D MMMM YYYY h:mm A', 61151 }, 61152 calendar: { 61153 sameDay: '[Today at] LT', 61154 nextDay: '[Tomorrow at] LT', 61155 nextWeek: 'dddd [at] LT', 61156 lastDay: '[Yesterday at] LT', 61157 lastWeek: '[Last] dddd [at] LT', 61158 sameElse: 'L', 61159 }, 61160 relativeTime: { 61161 future: 'in %s', 61162 past: '%s ago', 61163 s: 'a few seconds', 61164 ss: '%d seconds', 61165 m: 'a minute', 61166 mm: '%d minutes', 61167 h: 'an hour', 61168 hh: '%d hours', 61169 d: 'a day', 61170 dd: '%d days', 61171 M: 'a month', 61172 MM: '%d months', 61173 y: 'a year', 61174 yy: '%d years', 61175 }, 61176 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 61177 ordinal: function (number) { 61178 var b = number % 10, 61179 output = 61180 ~~((number % 100) / 10) === 1 61181 ? 'th' 61182 : b === 1 61183 ? 'st' 61184 : b === 2 61185 ? 'nd' 61186 : b === 3 61187 ? 'rd' 61188 : 'th'; 61189 return number + output; 61190 }, 61191 week: { 61192 dow: 0, // Sunday is the first day of the week. 61193 doy: 4, // The week that contains Jan 4th is the first week of the year. 61194 }, 61195 }); 61196 61197 return enAu; 61198 61199}))); 61200 61201 61202/***/ }), 61203
vendor: 2,639 bytes, lines 61204-61286
61204/***/ "./node_modules/moment/locale/en-ca.js": 61205/*!*********************************************!*\ 61206 !*** ./node_modules/moment/locale/en-ca.js ***! 61207 \*********************************************/ 61208/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 61209 61210//! moment.js locale configuration 61211//! locale : English (Canada) [en-ca] 61212//! author : Jonathan Abourbih : https://github.com/jonbca 61213 61214;(function (global, factory) { 61215 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 61216 0 61217}(this, (function (moment) { 'use strict'; 61218 61219 //! moment.js locale configuration 61220 61221 var enCa = moment.defineLocale('en-ca', { 61222 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 61223 '_' 61224 ), 61225 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 61226 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 61227 '_' 61228 ), 61229 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 61230 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 61231 longDateFormat: { 61232 LT: 'h:mm A', 61233 LTS: 'h:mm:ss A', 61234 L: 'YYYY-MM-DD', 61235 LL: 'MMMM D, YYYY', 61236 LLL: 'MMMM D, YYYY h:mm A', 61237 LLLL: 'dddd, MMMM D, YYYY h:mm A', 61238 }, 61239 calendar: { 61240 sameDay: '[Today at] LT', 61241 nextDay: '[Tomorrow at] LT', 61242 nextWeek: 'dddd [at] LT', 61243 lastDay: '[Yesterday at] LT', 61244 lastWeek: '[Last] dddd [at] LT', 61245 sameElse: 'L', 61246 }, 61247 relativeTime: { 61248 future: 'in %s', 61249 past: '%s ago', 61250 s: 'a few seconds', 61251 ss: '%d seconds', 61252 m: 'a minute', 61253 mm: '%d minutes', 61254 h: 'an hour', 61255 hh: '%d hours', 61256 d: 'a day', 61257 dd: '%d days', 61258 M: 'a month', 61259 MM: '%d months', 61260 y: 'a year', 61261 yy: '%d years', 61262 }, 61263 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 61264 ordinal: function (number) { 61265 var b = number % 10, 61266 output = 61267 ~~((number % 100) / 10) === 1 61268 ? 'th' 61269 : b === 1 61270 ? 'st' 61271 : b === 2 61272 ? 'nd' 61273 : b === 3 61274 ? 'rd' 61275 : 'th'; 61276 return number + output; 61277 }, 61278 }); 61279 61280 return enCa; 61281 61282}))); 61283 61284 61285/***/ }), 61286
vendor: 2,812 bytes, lines 61287-61373
61287/***/ "./node_modules/moment/locale/en-gb.js": 61288/*!*********************************************!*\ 61289 !*** ./node_modules/moment/locale/en-gb.js ***! 61290 \*********************************************/ 61291/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 61292 61293//! moment.js locale configuration 61294//! locale : English (United Kingdom) [en-gb] 61295//! author : Chris Gedrim : https://github.com/chrisgedrim 61296 61297;(function (global, factory) { 61298 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 61299 0 61300}(this, (function (moment) { 'use strict'; 61301 61302 //! moment.js locale configuration 61303 61304 var enGb = moment.defineLocale('en-gb', { 61305 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 61306 '_' 61307 ), 61308 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 61309 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 61310 '_' 61311 ), 61312 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 61313 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 61314 longDateFormat: { 61315 LT: 'HH:mm', 61316 LTS: 'HH:mm:ss', 61317 L: 'DD/MM/YYYY', 61318 LL: 'D MMMM YYYY', 61319 LLL: 'D MMMM YYYY HH:mm', 61320 LLLL: 'dddd, D MMMM YYYY HH:mm', 61321 }, 61322 calendar: { 61323 sameDay: '[Today at] LT', 61324 nextDay: '[Tomorrow at] LT', 61325 nextWeek: 'dddd [at] LT', 61326 lastDay: '[Yesterday at] LT', 61327 lastWeek: '[Last] dddd [at] LT', 61328 sameElse: 'L', 61329 }, 61330 relativeTime: { 61331 future: 'in %s', 61332 past: '%s ago', 61333 s: 'a few seconds', 61334 ss: '%d seconds', 61335 m: 'a minute', 61336 mm: '%d minutes', 61337 h: 'an hour', 61338 hh: '%d hours', 61339 d: 'a day', 61340 dd: '%d days', 61341 M: 'a month', 61342 MM: '%d months', 61343 y: 'a year', 61344 yy: '%d years', 61345 }, 61346 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 61347 ordinal: function (number) { 61348 var b = number % 10, 61349 output = 61350 ~~((number % 100) / 10) === 1 61351 ? 'th' 61352 : b === 1 61353 ? 'st' 61354 : b === 2 61355 ? 'nd' 61356 : b === 3 61357 ? 'rd' 61358 : 'th'; 61359 return number + output; 61360 }, 61361 week: { 61362 dow: 1, // Monday is the first day of the week. 61363 doy: 4, // The week that contains Jan 4th is the first week of the year. 61364 }, 61365 }); 61366 61367 return enGb; 61368 61369}))); 61370 61371 61372/***/ }), 61373
vendor: 2,810 bytes, lines 61374-61460
61374/***/ "./node_modules/moment/locale/en-ie.js": 61375/*!*********************************************!*\ 61376 !*** ./node_modules/moment/locale/en-ie.js ***! 61377 \*********************************************/ 61378/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 61379 61380//! moment.js locale configuration 61381//! locale : English (Ireland) [en-ie] 61382//! author : Chris Cartlidge : https://github.com/chriscartlidge 61383 61384;(function (global, factory) { 61385 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 61386 0 61387}(this, (function (moment) { 'use strict'; 61388 61389 //! moment.js locale configuration 61390 61391 var enIe = moment.defineLocale('en-ie', { 61392 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 61393 '_' 61394 ), 61395 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 61396 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 61397 '_' 61398 ), 61399 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 61400 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 61401 longDateFormat: { 61402 LT: 'HH:mm', 61403 LTS: 'HH:mm:ss', 61404 L: 'DD/MM/YYYY', 61405 LL: 'D MMMM YYYY', 61406 LLL: 'D MMMM YYYY HH:mm', 61407 LLLL: 'dddd D MMMM YYYY HH:mm', 61408 }, 61409 calendar: { 61410 sameDay: '[Today at] LT', 61411 nextDay: '[Tomorrow at] LT', 61412 nextWeek: 'dddd [at] LT', 61413 lastDay: '[Yesterday at] LT', 61414 lastWeek: '[Last] dddd [at] LT', 61415 sameElse: 'L', 61416 }, 61417 relativeTime: { 61418 future: 'in %s', 61419 past: '%s ago', 61420 s: 'a few seconds', 61421 ss: '%d seconds', 61422 m: 'a minute', 61423 mm: '%d minutes', 61424 h: 'an hour', 61425 hh: '%d hours', 61426 d: 'a day', 61427 dd: '%d days', 61428 M: 'a month', 61429 MM: '%d months', 61430 y: 'a year', 61431 yy: '%d years', 61432 }, 61433 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 61434 ordinal: function (number) { 61435 var b = number % 10, 61436 output = 61437 ~~((number % 100) / 10) === 1 61438 ? 'th' 61439 : b === 1 61440 ? 'st' 61441 : b === 2 61442 ? 'nd' 61443 : b === 3 61444 ? 'rd' 61445 : 'th'; 61446 return number + output; 61447 }, 61448 week: { 61449 dow: 1, // Monday is the first day of the week. 61450 doy: 4, // The week that contains Jan 4th is the first week of the year. 61451 }, 61452 }); 61453 61454 return enIe; 61455 61456}))); 61457 61458 61459/***/ }), 61460
vendor: 2,632 bytes, lines 61461-61543
61461/***/ "./node_modules/moment/locale/en-il.js": 61462/*!*********************************************!*\ 61463 !*** ./node_modules/moment/locale/en-il.js ***! 61464 \*********************************************/ 61465/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 61466 61467//! moment.js locale configuration 61468//! locale : English (Israel) [en-il] 61469//! author : Chris Gedrim : https://github.com/chrisgedrim 61470 61471;(function (global, factory) { 61472 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 61473 0 61474}(this, (function (moment) { 'use strict'; 61475 61476 //! moment.js locale configuration 61477 61478 var enIl = moment.defineLocale('en-il', { 61479 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 61480 '_' 61481 ), 61482 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 61483 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 61484 '_' 61485 ), 61486 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 61487 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 61488 longDateFormat: { 61489 LT: 'HH:mm', 61490 LTS: 'HH:mm:ss', 61491 L: 'DD/MM/YYYY', 61492 LL: 'D MMMM YYYY', 61493 LLL: 'D MMMM YYYY HH:mm', 61494 LLLL: 'dddd, D MMMM YYYY HH:mm', 61495 }, 61496 calendar: { 61497 sameDay: '[Today at] LT', 61498 nextDay: '[Tomorrow at] LT', 61499 nextWeek: 'dddd [at] LT', 61500 lastDay: '[Yesterday at] LT', 61501 lastWeek: '[Last] dddd [at] LT', 61502 sameElse: 'L', 61503 }, 61504 relativeTime: { 61505 future: 'in %s', 61506 past: '%s ago', 61507 s: 'a few seconds', 61508 ss: '%d seconds', 61509 m: 'a minute', 61510 mm: '%d minutes', 61511 h: 'an hour', 61512 hh: '%d hours', 61513 d: 'a day', 61514 dd: '%d days', 61515 M: 'a month', 61516 MM: '%d months', 61517 y: 'a year', 61518 yy: '%d years', 61519 }, 61520 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 61521 ordinal: function (number) { 61522 var b = number % 10, 61523 output = 61524 ~~((number % 100) / 10) === 1 61525 ? 'th' 61526 : b === 1 61527 ? 'st' 61528 : b === 2 61529 ? 'nd' 61530 : b === 3 61531 ? 'rd' 61532 : 'th'; 61533 return number + output; 61534 }, 61535 }); 61536 61537 return enIl; 61538 61539}))); 61540 61541 61542/***/ }), 61543
vendor: 2,806 bytes, lines 61544-61630
61544/***/ "./node_modules/moment/locale/en-in.js": 61545/*!*********************************************!*\ 61546 !*** ./node_modules/moment/locale/en-in.js ***! 61547 \*********************************************/ 61548/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 61549 61550//! moment.js locale configuration 61551//! locale : English (India) [en-in] 61552//! author : Jatin Agrawal : https://github.com/jatinag22 61553 61554;(function (global, factory) { 61555 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 61556 0 61557}(this, (function (moment) { 'use strict'; 61558 61559 //! moment.js locale configuration 61560 61561 var enIn = moment.defineLocale('en-in', { 61562 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 61563 '_' 61564 ), 61565 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 61566 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 61567 '_' 61568 ), 61569 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 61570 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 61571 longDateFormat: { 61572 LT: 'h:mm A', 61573 LTS: 'h:mm:ss A', 61574 L: 'DD/MM/YYYY', 61575 LL: 'D MMMM YYYY', 61576 LLL: 'D MMMM YYYY h:mm A', 61577 LLLL: 'dddd, D MMMM YYYY h:mm A', 61578 }, 61579 calendar: { 61580 sameDay: '[Today at] LT', 61581 nextDay: '[Tomorrow at] LT', 61582 nextWeek: 'dddd [at] LT', 61583 lastDay: '[Yesterday at] LT', 61584 lastWeek: '[Last] dddd [at] LT', 61585 sameElse: 'L', 61586 }, 61587 relativeTime: { 61588 future: 'in %s', 61589 past: '%s ago', 61590 s: 'a few seconds', 61591 ss: '%d seconds', 61592 m: 'a minute', 61593 mm: '%d minutes', 61594 h: 'an hour', 61595 hh: '%d hours', 61596 d: 'a day', 61597 dd: '%d days', 61598 M: 'a month', 61599 MM: '%d months', 61600 y: 'a year', 61601 yy: '%d years', 61602 }, 61603 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 61604 ordinal: function (number) { 61605 var b = number % 10, 61606 output = 61607 ~~((number % 100) / 10) === 1 61608 ? 'th' 61609 : b === 1 61610 ? 'st' 61611 : b === 2 61612 ? 'nd' 61613 : b === 3 61614 ? 'rd' 61615 : 'th'; 61616 return number + output; 61617 }, 61618 week: { 61619 dow: 0, // Sunday is the first day of the week. 61620 doy: 6, // The week that contains Jan 1st is the first week of the year. 61621 }, 61622 }); 61623 61624 return enIn; 61625 61626}))); 61627 61628 61629/***/ }), 61630
vendor: 2,815 bytes, lines 61631-61717
61631/***/ "./node_modules/moment/locale/en-nz.js": 61632/*!*********************************************!*\ 61633 !*** ./node_modules/moment/locale/en-nz.js ***! 61634 \*********************************************/ 61635/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 61636 61637//! moment.js locale configuration 61638//! locale : English (New Zealand) [en-nz] 61639//! author : Luke McGregor : https://github.com/lukemcgregor 61640 61641;(function (global, factory) { 61642 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 61643 0 61644}(this, (function (moment) { 'use strict'; 61645 61646 //! moment.js locale configuration 61647 61648 var enNz = moment.defineLocale('en-nz', { 61649 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 61650 '_' 61651 ), 61652 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 61653 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 61654 '_' 61655 ), 61656 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 61657 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 61658 longDateFormat: { 61659 LT: 'h:mm A', 61660 LTS: 'h:mm:ss A', 61661 L: 'DD/MM/YYYY', 61662 LL: 'D MMMM YYYY', 61663 LLL: 'D MMMM YYYY h:mm A', 61664 LLLL: 'dddd, D MMMM YYYY h:mm A', 61665 }, 61666 calendar: { 61667 sameDay: '[Today at] LT', 61668 nextDay: '[Tomorrow at] LT', 61669 nextWeek: 'dddd [at] LT', 61670 lastDay: '[Yesterday at] LT', 61671 lastWeek: '[Last] dddd [at] LT', 61672 sameElse: 'L', 61673 }, 61674 relativeTime: { 61675 future: 'in %s', 61676 past: '%s ago', 61677 s: 'a few seconds', 61678 ss: '%d seconds', 61679 m: 'a minute', 61680 mm: '%d minutes', 61681 h: 'an hour', 61682 hh: '%d hours', 61683 d: 'a day', 61684 dd: '%d days', 61685 M: 'a month', 61686 MM: '%d months', 61687 y: 'a year', 61688 yy: '%d years', 61689 }, 61690 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 61691 ordinal: function (number) { 61692 var b = number % 10, 61693 output = 61694 ~~((number % 100) / 10) === 1 61695 ? 'th' 61696 : b === 1 61697 ? 'st' 61698 : b === 2 61699 ? 'nd' 61700 : b === 3 61701 ? 'rd' 61702 : 'th'; 61703 return number + output; 61704 }, 61705 week: { 61706 dow: 1, // Monday is the first day of the week. 61707 doy: 4, // The week that contains Jan 4th is the first week of the year. 61708 }, 61709 }); 61710 61711 return enNz; 61712 61713}))); 61714 61715 61716/***/ }), 61717
vendor: 2,824 bytes, lines 61718-61804
61718/***/ "./node_modules/moment/locale/en-sg.js": 61719/*!*********************************************!*\ 61720 !*** ./node_modules/moment/locale/en-sg.js ***! 61721 \*********************************************/ 61722/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 61723 61724//! moment.js locale configuration 61725//! locale : English (Singapore) [en-sg] 61726//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension 61727 61728;(function (global, factory) { 61729 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 61730 0 61731}(this, (function (moment) { 'use strict'; 61732 61733 //! moment.js locale configuration 61734 61735 var enSg = moment.defineLocale('en-sg', { 61736 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 61737 '_' 61738 ), 61739 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 61740 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 61741 '_' 61742 ), 61743 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 61744 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 61745 longDateFormat: { 61746 LT: 'HH:mm', 61747 LTS: 'HH:mm:ss', 61748 L: 'DD/MM/YYYY', 61749 LL: 'D MMMM YYYY', 61750 LLL: 'D MMMM YYYY HH:mm', 61751 LLLL: 'dddd, D MMMM YYYY HH:mm', 61752 }, 61753 calendar: { 61754 sameDay: '[Today at] LT', 61755 nextDay: '[Tomorrow at] LT', 61756 nextWeek: 'dddd [at] LT', 61757 lastDay: '[Yesterday at] LT', 61758 lastWeek: '[Last] dddd [at] LT', 61759 sameElse: 'L', 61760 }, 61761 relativeTime: { 61762 future: 'in %s', 61763 past: '%s ago', 61764 s: 'a few seconds', 61765 ss: '%d seconds', 61766 m: 'a minute', 61767 mm: '%d minutes', 61768 h: 'an hour', 61769 hh: '%d hours', 61770 d: 'a day', 61771 dd: '%d days', 61772 M: 'a month', 61773 MM: '%d months', 61774 y: 'a year', 61775 yy: '%d years', 61776 }, 61777 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 61778 ordinal: function (number) { 61779 var b = number % 10, 61780 output = 61781 ~~((number % 100) / 10) === 1 61782 ? 'th' 61783 : b === 1 61784 ? 'st' 61785 : b === 2 61786 ? 'nd' 61787 : b === 3 61788 ? 'rd' 61789 : 'th'; 61790 return number + output; 61791 }, 61792 week: { 61793 dow: 1, // Monday is the first day of the week. 61794 doy: 4, // The week that contains Jan 4th is the first week of the year. 61795 }, 61796 }); 61797 61798 return enSg; 61799 61800}))); 61801 61802 61803/***/ }), 61804
vendor: 3,063 bytes, lines 61805-61891
61805/***/ "./node_modules/moment/locale/eo.js": 61806/*!******************************************!*\ 61807 !*** ./node_modules/moment/locale/eo.js ***! 61808 \******************************************/ 61809/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 61810 61811//! moment.js locale configuration 61812//! locale : Esperanto [eo] 61813//! author : Colin Dean : https://github.com/colindean 61814//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia 61815//! comment : miestasmia corrected the translation by colindean 61816//! comment : Vivakvo corrected the translation by colindean and miestasmia 61817 61818;(function (global, factory) { 61819 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 61820 0 61821}(this, (function (moment) { 'use strict'; 61822 61823 //! moment.js locale configuration 61824 61825 var eo = moment.defineLocale('eo', { 61826 months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅgusto_septembro_oktobro_novembro_decembro'.split( 61827 '_' 61828 ), 61829 monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅg_sept_okt_nov_dec'.split('_'), 61830 weekdays: 'dimanÄo_lundo_mardo_merkredo_ĵaÅdo_vendredo_sabato'.split('_'), 61831 weekdaysShort: 'dim_lun_mard_merk_ĵaÅ_ven_sab'.split('_'), 61832 weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), 61833 longDateFormat: { 61834 LT: 'HH:mm', 61835 LTS: 'HH:mm:ss', 61836 L: 'YYYY-MM-DD', 61837 LL: '[la] D[-an de] MMMM, YYYY', 61838 LLL: '[la] D[-an de] MMMM, YYYY HH:mm', 61839 LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', 61840 llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', 61841 }, 61842 meridiemParse: /[ap]\.t\.m/i, 61843 isPM: function (input) { 61844 return input.charAt(0).toLowerCase() === 'p'; 61845 }, 61846 meridiem: function (hours, minutes, isLower) { 61847 if (hours > 11) { 61848 return isLower ? 'p.t.m.' : 'P.T.M.'; 61849 } else { 61850 return isLower ? 'a.t.m.' : 'A.T.M.'; 61851 } 61852 }, 61853 calendar: { 61854 sameDay: '[HodiaÅ je] LT', 61855 nextDay: '[MorgaÅ je] LT', 61856 nextWeek: 'dddd[n je] LT', 61857 lastDay: '[HieraÅ je] LT', 61858 lastWeek: '[pasintan] dddd[n je] LT', 61859 sameElse: 'L', 61860 }, 61861 relativeTime: { 61862 future: 'post %s', 61863 past: 'antaÅ %s', 61864 s: 'kelkaj sekundoj', 61865 ss: '%d sekundoj', 61866 m: 'unu minuto', 61867 mm: '%d minutoj', 61868 h: 'unu horo', 61869 hh: '%d horoj', 61870 d: 'unu tago', //ne 'diurno', Äar estas uzita por proksimumo 61871 dd: '%d tagoj', 61872 M: 'unu monato', 61873 MM: '%d monatoj', 61874 y: 'unu jaro', 61875 yy: '%d jaroj', 61876 }, 61877 dayOfMonthOrdinalParse: /\d{1,2}a/, 61878 ordinal: '%da', 61879 week: { 61880 dow: 1, // Monday is the first day of the week. 61881 doy: 7, // The week that contains Jan 7th is the first week of the year. 61882 }, 61883 }); 61884 61885 return eo; 61886 61887}))); 61888 61889 61890/***/ }), 61891
vendor: 4,354 bytes, lines 61892-62018
61892/***/ "./node_modules/moment/locale/es-do.js": 61893/*!*********************************************!*\ 61894 !*** ./node_modules/moment/locale/es-do.js ***! 61895 \*********************************************/ 61896/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 61897 61898//! moment.js locale configuration 61899//! locale : Spanish (Dominican Republic) [es-do] 61900 61901;(function (global, factory) { 61902 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 61903 0 61904}(this, (function (moment) { 'use strict'; 61905 61906 //! moment.js locale configuration 61907 61908 var monthsShortDot = 61909 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 61910 '_' 61911 ), 61912 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 61913 monthsParse = [ 61914 /^ene/i, 61915 /^feb/i, 61916 /^mar/i, 61917 /^abr/i, 61918 /^may/i, 61919 /^jun/i, 61920 /^jul/i, 61921 /^ago/i, 61922 /^sep/i, 61923 /^oct/i, 61924 /^nov/i, 61925 /^dic/i, 61926 ], 61927 monthsRegex = 61928 /^(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; 61929 61930 var esDo = moment.defineLocale('es-do', { 61931 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 61932 '_' 61933 ), 61934 monthsShort: function (m, format) { 61935 if (!m) { 61936 return monthsShortDot; 61937 } else if (/-MMM-/.test(format)) { 61938 return monthsShort[m.month()]; 61939 } else { 61940 return monthsShortDot[m.month()]; 61941 } 61942 }, 61943 monthsRegex: monthsRegex, 61944 monthsShortRegex: monthsRegex, 61945 monthsStrictRegex: 61946 /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 61947 monthsShortStrictRegex: 61948 /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 61949 monthsParse: monthsParse, 61950 longMonthsParse: monthsParse, 61951 shortMonthsParse: monthsParse, 61952 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 61953 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 61954 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 61955 weekdaysParseExact: true, 61956 longDateFormat: { 61957 LT: 'h:mm A', 61958 LTS: 'h:mm:ss A', 61959 L: 'DD/MM/YYYY', 61960 LL: 'D [de] MMMM [de] YYYY', 61961 LLL: 'D [de] MMMM [de] YYYY h:mm A', 61962 LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', 61963 }, 61964 calendar: { 61965 sameDay: function () { 61966 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 61967 }, 61968 nextDay: function () { 61969 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 61970 }, 61971 nextWeek: function () { 61972 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 61973 }, 61974 lastDay: function () { 61975 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 61976 }, 61977 lastWeek: function () { 61978 return ( 61979 '[el] dddd [pasado a la' + 61980 (this.hours() !== 1 ? 's' : '') + 61981 '] LT' 61982 ); 61983 }, 61984 sameElse: 'L', 61985 }, 61986 relativeTime: { 61987 future: 'en %s', 61988 past: 'hace %s', 61989 s: 'unos segundos', 61990 ss: '%d segundos', 61991 m: 'un minuto', 61992 mm: '%d minutos', 61993 h: 'una hora', 61994 hh: '%d horas', 61995 d: 'un dÃa', 61996 dd: '%d dÃas', 61997 w: 'una semana', 61998 ww: '%d semanas', 61999 M: 'un mes', 62000 MM: '%d meses', 62001 y: 'un año', 62002 yy: '%d años', 62003 }, 62004 dayOfMonthOrdinalParse: /\d{1,2}º/, 62005 ordinal: '%dº', 62006 week: { 62007 dow: 1, // Monday is the first day of the week. 62008 doy: 4, // The week that contains Jan 4th is the first week of the year. 62009 }, 62010 }); 62011 62012 return esDo; 62013 62014}))); 62015 62016 62017/***/ }), 62018
vendor: 4,427 bytes, lines 62019-62147
62019/***/ "./node_modules/moment/locale/es-mx.js": 62020/*!*********************************************!*\ 62021 !*** ./node_modules/moment/locale/es-mx.js ***! 62022 \*********************************************/ 62023/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 62024 62025//! moment.js locale configuration 62026//! locale : Spanish (Mexico) [es-mx] 62027//! author : JC Franco : https://github.com/jcfranco 62028 62029;(function (global, factory) { 62030 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 62031 0 62032}(this, (function (moment) { 'use strict'; 62033 62034 //! moment.js locale configuration 62035 62036 var monthsShortDot = 62037 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 62038 '_' 62039 ), 62040 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 62041 monthsParse = [ 62042 /^ene/i, 62043 /^feb/i, 62044 /^mar/i, 62045 /^abr/i, 62046 /^may/i, 62047 /^jun/i, 62048 /^jul/i, 62049 /^ago/i, 62050 /^sep/i, 62051 /^oct/i, 62052 /^nov/i, 62053 /^dic/i, 62054 ], 62055 monthsRegex = 62056 /^(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; 62057 62058 var esMx = moment.defineLocale('es-mx', { 62059 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 62060 '_' 62061 ), 62062 monthsShort: function (m, format) { 62063 if (!m) { 62064 return monthsShortDot; 62065 } else if (/-MMM-/.test(format)) { 62066 return monthsShort[m.month()]; 62067 } else { 62068 return monthsShortDot[m.month()]; 62069 } 62070 }, 62071 monthsRegex: monthsRegex, 62072 monthsShortRegex: monthsRegex, 62073 monthsStrictRegex: 62074 /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 62075 monthsShortStrictRegex: 62076 /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 62077 monthsParse: monthsParse, 62078 longMonthsParse: monthsParse, 62079 shortMonthsParse: monthsParse, 62080 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 62081 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 62082 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 62083 weekdaysParseExact: true, 62084 longDateFormat: { 62085 LT: 'H:mm', 62086 LTS: 'H:mm:ss', 62087 L: 'DD/MM/YYYY', 62088 LL: 'D [de] MMMM [de] YYYY', 62089 LLL: 'D [de] MMMM [de] YYYY H:mm', 62090 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', 62091 }, 62092 calendar: { 62093 sameDay: function () { 62094 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62095 }, 62096 nextDay: function () { 62097 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62098 }, 62099 nextWeek: function () { 62100 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62101 }, 62102 lastDay: function () { 62103 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62104 }, 62105 lastWeek: function () { 62106 return ( 62107 '[el] dddd [pasado a la' + 62108 (this.hours() !== 1 ? 's' : '') + 62109 '] LT' 62110 ); 62111 }, 62112 sameElse: 'L', 62113 }, 62114 relativeTime: { 62115 future: 'en %s', 62116 past: 'hace %s', 62117 s: 'unos segundos', 62118 ss: '%d segundos', 62119 m: 'un minuto', 62120 mm: '%d minutos', 62121 h: 'una hora', 62122 hh: '%d horas', 62123 d: 'un dÃa', 62124 dd: '%d dÃas', 62125 w: 'una semana', 62126 ww: '%d semanas', 62127 M: 'un mes', 62128 MM: '%d meses', 62129 y: 'un año', 62130 yy: '%d años', 62131 }, 62132 dayOfMonthOrdinalParse: /\d{1,2}º/, 62133 ordinal: '%dº', 62134 week: { 62135 dow: 0, // Sunday is the first day of the week. 62136 doy: 4, // The week that contains Jan 4th is the first week of the year. 62137 }, 62138 invalidDate: 'Fecha inválida', 62139 }); 62140 62141 return esMx; 62142 62143}))); 62144 62145 62146/***/ }), 62147
vendor: 4,451 bytes, lines 62148-62276
62148/***/ "./node_modules/moment/locale/es-us.js": 62149/*!*********************************************!*\ 62150 !*** ./node_modules/moment/locale/es-us.js ***! 62151 \*********************************************/ 62152/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 62153 62154//! moment.js locale configuration 62155//! locale : Spanish (United States) [es-us] 62156//! author : bustta : https://github.com/bustta 62157//! author : chrisrodz : https://github.com/chrisrodz 62158 62159;(function (global, factory) { 62160 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 62161 0 62162}(this, (function (moment) { 'use strict'; 62163 62164 //! moment.js locale configuration 62165 62166 var monthsShortDot = 62167 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 62168 '_' 62169 ), 62170 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 62171 monthsParse = [ 62172 /^ene/i, 62173 /^feb/i, 62174 /^mar/i, 62175 /^abr/i, 62176 /^may/i, 62177 /^jun/i, 62178 /^jul/i, 62179 /^ago/i, 62180 /^sep/i, 62181 /^oct/i, 62182 /^nov/i, 62183 /^dic/i, 62184 ], 62185 monthsRegex = 62186 /^(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; 62187 62188 var esUs = moment.defineLocale('es-us', { 62189 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 62190 '_' 62191 ), 62192 monthsShort: function (m, format) { 62193 if (!m) { 62194 return monthsShortDot; 62195 } else if (/-MMM-/.test(format)) { 62196 return monthsShort[m.month()]; 62197 } else { 62198 return monthsShortDot[m.month()]; 62199 } 62200 }, 62201 monthsRegex: monthsRegex, 62202 monthsShortRegex: monthsRegex, 62203 monthsStrictRegex: 62204 /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 62205 monthsShortStrictRegex: 62206 /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 62207 monthsParse: monthsParse, 62208 longMonthsParse: monthsParse, 62209 shortMonthsParse: monthsParse, 62210 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 62211 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 62212 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 62213 weekdaysParseExact: true, 62214 longDateFormat: { 62215 LT: 'h:mm A', 62216 LTS: 'h:mm:ss A', 62217 L: 'MM/DD/YYYY', 62218 LL: 'D [de] MMMM [de] YYYY', 62219 LLL: 'D [de] MMMM [de] YYYY h:mm A', 62220 LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', 62221 }, 62222 calendar: { 62223 sameDay: function () { 62224 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62225 }, 62226 nextDay: function () { 62227 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62228 }, 62229 nextWeek: function () { 62230 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62231 }, 62232 lastDay: function () { 62233 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62234 }, 62235 lastWeek: function () { 62236 return ( 62237 '[el] dddd [pasado a la' + 62238 (this.hours() !== 1 ? 's' : '') + 62239 '] LT' 62240 ); 62241 }, 62242 sameElse: 'L', 62243 }, 62244 relativeTime: { 62245 future: 'en %s', 62246 past: 'hace %s', 62247 s: 'unos segundos', 62248 ss: '%d segundos', 62249 m: 'un minuto', 62250 mm: '%d minutos', 62251 h: 'una hora', 62252 hh: '%d horas', 62253 d: 'un dÃa', 62254 dd: '%d dÃas', 62255 w: 'una semana', 62256 ww: '%d semanas', 62257 M: 'un mes', 62258 MM: '%d meses', 62259 y: 'un año', 62260 yy: '%d años', 62261 }, 62262 dayOfMonthOrdinalParse: /\d{1,2}º/, 62263 ordinal: '%dº', 62264 week: { 62265 dow: 0, // Sunday is the first day of the week. 62266 doy: 6, // The week that contains Jan 6th is the first week of the year. 62267 }, 62268 }); 62269 62270 return esUs; 62271 62272}))); 62273 62274 62275/***/ }), 62276
vendor: 4,399 bytes, lines 62277-62405
62277/***/ "./node_modules/moment/locale/es.js": 62278/*!******************************************!*\ 62279 !*** ./node_modules/moment/locale/es.js ***! 62280 \******************************************/ 62281/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 62282 62283//! moment.js locale configuration 62284//! locale : Spanish [es] 62285//! author : Julio Napurà : https://github.com/julionc 62286 62287;(function (global, factory) { 62288 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 62289 0 62290}(this, (function (moment) { 'use strict'; 62291 62292 //! moment.js locale configuration 62293 62294 var monthsShortDot = 62295 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 62296 '_' 62297 ), 62298 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 62299 monthsParse = [ 62300 /^ene/i, 62301 /^feb/i, 62302 /^mar/i, 62303 /^abr/i, 62304 /^may/i, 62305 /^jun/i, 62306 /^jul/i, 62307 /^ago/i, 62308 /^sep/i, 62309 /^oct/i, 62310 /^nov/i, 62311 /^dic/i, 62312 ], 62313 monthsRegex = 62314 /^(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; 62315 62316 var es = moment.defineLocale('es', { 62317 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 62318 '_' 62319 ), 62320 monthsShort: function (m, format) { 62321 if (!m) { 62322 return monthsShortDot; 62323 } else if (/-MMM-/.test(format)) { 62324 return monthsShort[m.month()]; 62325 } else { 62326 return monthsShortDot[m.month()]; 62327 } 62328 }, 62329 monthsRegex: monthsRegex, 62330 monthsShortRegex: monthsRegex, 62331 monthsStrictRegex: 62332 /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 62333 monthsShortStrictRegex: 62334 /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 62335 monthsParse: monthsParse, 62336 longMonthsParse: monthsParse, 62337 shortMonthsParse: monthsParse, 62338 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 62339 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 62340 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 62341 weekdaysParseExact: true, 62342 longDateFormat: { 62343 LT: 'H:mm', 62344 LTS: 'H:mm:ss', 62345 L: 'DD/MM/YYYY', 62346 LL: 'D [de] MMMM [de] YYYY', 62347 LLL: 'D [de] MMMM [de] YYYY H:mm', 62348 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', 62349 }, 62350 calendar: { 62351 sameDay: function () { 62352 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62353 }, 62354 nextDay: function () { 62355 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62356 }, 62357 nextWeek: function () { 62358 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62359 }, 62360 lastDay: function () { 62361 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 62362 }, 62363 lastWeek: function () { 62364 return ( 62365 '[el] dddd [pasado a la' + 62366 (this.hours() !== 1 ? 's' : '') + 62367 '] LT' 62368 ); 62369 }, 62370 sameElse: 'L', 62371 }, 62372 relativeTime: { 62373 future: 'en %s', 62374 past: 'hace %s', 62375 s: 'unos segundos', 62376 ss: '%d segundos', 62377 m: 'un minuto', 62378 mm: '%d minutos', 62379 h: 'una hora', 62380 hh: '%d horas', 62381 d: 'un dÃa', 62382 dd: '%d dÃas', 62383 w: 'una semana', 62384 ww: '%d semanas', 62385 M: 'un mes', 62386 MM: '%d meses', 62387 y: 'un año', 62388 yy: '%d años', 62389 }, 62390 dayOfMonthOrdinalParse: /\d{1,2}º/, 62391 ordinal: '%dº', 62392 week: { 62393 dow: 1, // Monday is the first day of the week. 62394 doy: 4, // The week that contains Jan 4th is the first week of the year. 62395 }, 62396 invalidDate: 'Fecha inválida', 62397 }); 62398 62399 return es; 62400 62401}))); 62402 62403 62404/***/ }), 62405
vendor: 3,400 bytes, lines 62406-62502
62406/***/ "./node_modules/moment/locale/et.js": 62407/*!******************************************!*\ 62408 !*** ./node_modules/moment/locale/et.js ***! 62409 \******************************************/ 62410/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 62411 62412//! moment.js locale configuration 62413//! locale : Estonian [et] 62414//! author : Henry Kehlmann : https://github.com/madhenry 62415//! improvements : Illimar Tambek : https://github.com/ragulka 62416 62417;(function (global, factory) { 62418 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 62419 0 62420}(this, (function (moment) { 'use strict'; 62421 62422 //! moment.js locale configuration 62423 62424 function processRelativeTime(number, withoutSuffix, key, isFuture) { 62425 var format = { 62426 s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], 62427 ss: [number + 'sekundi', number + 'sekundit'], 62428 m: ['ühe minuti', 'üks minut'], 62429 mm: [number + ' minuti', number + ' minutit'], 62430 h: ['ühe tunni', 'tund aega', 'üks tund'], 62431 hh: [number + ' tunni', number + ' tundi'], 62432 d: ['ühe päeva', 'üks päev'], 62433 M: ['kuu aja', 'kuu aega', 'üks kuu'], 62434 MM: [number + ' kuu', number + ' kuud'], 62435 y: ['ühe aasta', 'aasta', 'üks aasta'], 62436 yy: [number + ' aasta', number + ' aastat'], 62437 }; 62438 if (withoutSuffix) { 62439 return format[key][2] ? format[key][2] : format[key][1]; 62440 } 62441 return isFuture ? format[key][0] : format[key][1]; 62442 } 62443 62444 var et = moment.defineLocale('et', { 62445 months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( 62446 '_' 62447 ), 62448 monthsShort: 62449 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), 62450 weekdays: 62451 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( 62452 '_' 62453 ), 62454 weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), 62455 weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), 62456 longDateFormat: { 62457 LT: 'H:mm', 62458 LTS: 'H:mm:ss', 62459 L: 'DD.MM.YYYY', 62460 LL: 'D. MMMM YYYY', 62461 LLL: 'D. MMMM YYYY H:mm', 62462 LLLL: 'dddd, D. MMMM YYYY H:mm', 62463 }, 62464 calendar: { 62465 sameDay: '[Täna,] LT', 62466 nextDay: '[Homme,] LT', 62467 nextWeek: '[Järgmine] dddd LT', 62468 lastDay: '[Eile,] LT', 62469 lastWeek: '[Eelmine] dddd LT', 62470 sameElse: 'L', 62471 }, 62472 relativeTime: { 62473 future: '%s pärast', 62474 past: '%s tagasi', 62475 s: processRelativeTime, 62476 ss: processRelativeTime, 62477 m: processRelativeTime, 62478 mm: processRelativeTime, 62479 h: processRelativeTime, 62480 hh: processRelativeTime, 62481 d: processRelativeTime, 62482 dd: '%d päeva', 62483 M: processRelativeTime, 62484 MM: processRelativeTime, 62485 y: processRelativeTime, 62486 yy: processRelativeTime, 62487 }, 62488 dayOfMonthOrdinalParse: /\d{1,2}\./, 62489 ordinal: '%d.', 62490 week: { 62491 dow: 1, // Monday is the first day of the week. 62492 doy: 4, // The week that contains Jan 4th is the first week of the year. 62493 }, 62494 }); 62495 62496 return et; 62497 62498}))); 62499 62500 62501/***/ }), 62502
vendor: 2,689 bytes, lines 62503-62586
62503/***/ "./node_modules/moment/locale/eu.js": 62504/*!******************************************!*\ 62505 !*** ./node_modules/moment/locale/eu.js ***! 62506 \******************************************/ 62507/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 62508 62509//! moment.js locale configuration 62510//! locale : Basque [eu] 62511//! author : Eneko Illarramendi : https://github.com/eillarra 62512 62513;(function (global, factory) { 62514 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 62515 0 62516}(this, (function (moment) { 'use strict'; 62517 62518 //! moment.js locale configuration 62519 62520 var eu = moment.defineLocale('eu', { 62521 months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( 62522 '_' 62523 ), 62524 monthsShort: 62525 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( 62526 '_' 62527 ), 62528 monthsParseExact: true, 62529 weekdays: 62530 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( 62531 '_' 62532 ), 62533 weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), 62534 weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), 62535 weekdaysParseExact: true, 62536 longDateFormat: { 62537 LT: 'HH:mm', 62538 LTS: 'HH:mm:ss', 62539 L: 'YYYY-MM-DD', 62540 LL: 'YYYY[ko] MMMM[ren] D[a]', 62541 LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', 62542 LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', 62543 l: 'YYYY-M-D', 62544 ll: 'YYYY[ko] MMM D[a]', 62545 lll: 'YYYY[ko] MMM D[a] HH:mm', 62546 llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', 62547 }, 62548 calendar: { 62549 sameDay: '[gaur] LT[etan]', 62550 nextDay: '[bihar] LT[etan]', 62551 nextWeek: 'dddd LT[etan]', 62552 lastDay: '[atzo] LT[etan]', 62553 lastWeek: '[aurreko] dddd LT[etan]', 62554 sameElse: 'L', 62555 }, 62556 relativeTime: { 62557 future: '%s barru', 62558 past: 'duela %s', 62559 s: 'segundo batzuk', 62560 ss: '%d segundo', 62561 m: 'minutu bat', 62562 mm: '%d minutu', 62563 h: 'ordu bat', 62564 hh: '%d ordu', 62565 d: 'egun bat', 62566 dd: '%d egun', 62567 M: 'hilabete bat', 62568 MM: '%d hilabete', 62569 y: 'urte bat', 62570 yy: '%d urte', 62571 }, 62572 dayOfMonthOrdinalParse: /\d{1,2}\./, 62573 ordinal: '%d.', 62574 week: { 62575 dow: 1, // Monday is the first day of the week. 62576 doy: 7, // The week that contains Jan 7th is the first week of the year. 62577 }, 62578 }); 62579 62580 return eu; 62581 62582}))); 62583 62584 62585/***/ }), 62586
vendor: 4,143 bytes, lines 62587-62718
62587/***/ "./node_modules/moment/locale/fa.js": 62588/*!******************************************!*\ 62589 !*** ./node_modules/moment/locale/fa.js ***! 62590 \******************************************/ 62591/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 62592 62593//! moment.js locale configuration 62594//! locale : Persian [fa] 62595//! author : Ebrahim Byagowi : https://github.com/ebraminio 62596 62597;(function (global, factory) { 62598 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 62599 0 62600}(this, (function (moment) { 'use strict'; 62601 62602 //! moment.js locale configuration 62603 62604 var symbolMap = { 62605 1: 'Û±', 62606 2: 'Û²', 62607 3: 'Û³', 62608 4: 'Û´', 62609 5: 'Ûµ', 62610 6: 'Û¶', 62611 7: 'Û·', 62612 8: 'Û¸', 62613 9: 'Û¹', 62614 0: 'Û°', 62615 }, 62616 numberMap = { 62617 'Û±': '1', 62618 'Û²': '2', 62619 'Û³': '3', 62620 'Û´': '4', 62621 'Ûµ': '5', 62622 'Û¶': '6', 62623 'Û·': '7', 62624 'Û¸': '8', 62625 'Û¹': '9', 62626 'Û°': '0', 62627 }; 62628 62629 var fa = moment.defineLocale('fa', { 62630 months: 'ÚØ§ÙÙÛÙ_ÙÙØ±ÛÙ_٠ارس_Ø¢ÙØ±ÛÙ_Ù Ù_ÚÙØ¦Ù_ÚÙØ¦ÛÙ_Ø§ÙØª_سپتا٠بر_اکتبر_ÙÙØ§Ù بر_دسا٠بر'.split( 62631 '_' 62632 ), 62633 monthsShort: 62634 'ÚØ§ÙÙÛÙ_ÙÙØ±ÛÙ_٠ارس_Ø¢ÙØ±ÛÙ_Ù Ù_ÚÙØ¦Ù_ÚÙØ¦ÛÙ_Ø§ÙØª_سپتا٠بر_اکتبر_ÙÙØ§Ù بر_دسا٠بر'.split( 62635 '_' 62636 ), 62637 weekdays: 62638 'ÛÚ©\u200cØ´ÙØ¨Ù_Ø¯ÙØ´ÙبÙ_سÙ\u200cØ´ÙØ¨Ù_ÚÙØ§Ø±Ø´ÙبÙ_Ù¾ÙØ¬\u200cØ´ÙØ¨Ù_ج٠عÙ_Ø´ÙØ¨Ù'.split( 62639 '_' 62640 ), 62641 weekdaysShort: 62642 'ÛÚ©\u200cØ´ÙØ¨Ù_Ø¯ÙØ´ÙبÙ_سÙ\u200cØ´ÙØ¨Ù_ÚÙØ§Ø±Ø´ÙبÙ_Ù¾ÙØ¬\u200cØ´ÙØ¨Ù_ج٠عÙ_Ø´ÙØ¨Ù'.split( 62643 '_' 62644 ), 62645 weekdaysMin: 'Û_د_س_Ú_Ù¾_ج_Ø´'.split('_'), 62646 weekdaysParseExact: true, 62647 longDateFormat: { 62648 LT: 'HH:mm', 62649 LTS: 'HH:mm:ss', 62650 L: 'DD/MM/YYYY', 62651 LL: 'D MMMM YYYY', 62652 LLL: 'D MMMM YYYY HH:mm', 62653 LLLL: 'dddd, D MMMM YYYY HH:mm', 62654 }, 62655 meridiemParse: /ÙØ¨Ù از Ø¸ÙØ±|بعد از Ø¸ÙØ±/, 62656 isPM: function (input) { 62657 return /بعد از Ø¸ÙØ±/.test(input); 62658 }, 62659 meridiem: function (hour, minute, isLower) { 62660 if (hour < 12) { 62661 return 'ÙØ¨Ù از Ø¸ÙØ±'; 62662 } else { 62663 return 'بعد از Ø¸ÙØ±'; 62664 } 62665 }, 62666 calendar: { 62667 sameDay: '[Ø§Ù Ø±ÙØ² ساعت] LT', 62668 nextDay: '[ÙØ±Ø¯Ø§ ساعت] LT', 62669 nextWeek: 'dddd [ساعت] LT', 62670 lastDay: '[Ø¯ÛØ±Ùز ساعت] LT', 62671 lastWeek: 'dddd [Ù¾ÛØ´] [ساعت] LT', 62672 sameElse: 'L', 62673 }, 62674 relativeTime: { 62675 future: 'در %s', 62676 past: '%s Ù¾ÛØ´', 62677 s: 'ÚÙØ¯ ثاÙÛÙ', 62678 ss: '%d ثاÙÛÙ', 62679 m: 'ÛÚ© دÙÛÙÙ', 62680 mm: '%d دÙÛÙÙ', 62681 h: 'ÛÚ© ساعت', 62682 hh: '%d ساعت', 62683 d: 'ÛÚ© Ø±ÙØ²', 62684 dd: '%d Ø±ÙØ²', 62685 M: 'ÛÚ© ٠اÙ', 62686 MM: '%d ٠اÙ', 62687 y: 'ÛÚ© ساÙ', 62688 yy: '%d ساÙ', 62689 }, 62690 preparse: function (string) { 62691 return string 62692 .replace(/[Û°-Û¹]/g, function (match) { 62693 return numberMap[match]; 62694 }) 62695 .replace(/Ø/g, ','); 62696 }, 62697 postformat: function (string) { 62698 return string 62699 .replace(/\d/g, function (match) { 62700 return symbolMap[match]; 62701 }) 62702 .replace(/,/g, 'Ø'); 62703 }, 62704 dayOfMonthOrdinalParse: /\d{1,2}Ù /, 62705 ordinal: '%dÙ ', 62706 week: { 62707 dow: 6, // Saturday is the first day of the week. 62708 doy: 12, // The week that contains Jan 12th is the first week of the year. 62709 }, 62710 }); 62711 62712 return fa; 62713 62714}))); 62715 62716 62717/***/ }), 62718
vendor: 4,589 bytes, lines 62719-62861
62719/***/ "./node_modules/moment/locale/fi.js": 62720/*!******************************************!*\ 62721 !*** ./node_modules/moment/locale/fi.js ***! 62722 \******************************************/ 62723/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 62724 62725//! moment.js locale configuration 62726//! locale : Finnish [fi] 62727//! author : Tarmo Aidantausta : https://github.com/bleadof 62728 62729;(function (global, factory) { 62730 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 62731 0 62732}(this, (function (moment) { 'use strict'; 62733 62734 //! moment.js locale configuration 62735 62736 var numbersPast = 62737 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( 62738 ' ' 62739 ), 62740 numbersFuture = [ 62741 'nolla', 62742 'yhden', 62743 'kahden', 62744 'kolmen', 62745 'neljän', 62746 'viiden', 62747 'kuuden', 62748 numbersPast[7], 62749 numbersPast[8], 62750 numbersPast[9], 62751 ]; 62752 function translate(number, withoutSuffix, key, isFuture) { 62753 var result = ''; 62754 switch (key) { 62755 case 's': 62756 return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; 62757 case 'ss': 62758 result = isFuture ? 'sekunnin' : 'sekuntia'; 62759 break; 62760 case 'm': 62761 return isFuture ? 'minuutin' : 'minuutti'; 62762 case 'mm': 62763 result = isFuture ? 'minuutin' : 'minuuttia'; 62764 break; 62765 case 'h': 62766 return isFuture ? 'tunnin' : 'tunti'; 62767 case 'hh': 62768 result = isFuture ? 'tunnin' : 'tuntia'; 62769 break; 62770 case 'd': 62771 return isFuture ? 'päivän' : 'päivä'; 62772 case 'dd': 62773 result = isFuture ? 'päivän' : 'päivää'; 62774 break; 62775 case 'M': 62776 return isFuture ? 'kuukauden' : 'kuukausi'; 62777 case 'MM': 62778 result = isFuture ? 'kuukauden' : 'kuukautta'; 62779 break; 62780 case 'y': 62781 return isFuture ? 'vuoden' : 'vuosi'; 62782 case 'yy': 62783 result = isFuture ? 'vuoden' : 'vuotta'; 62784 break; 62785 } 62786 result = verbalNumber(number, isFuture) + ' ' + result; 62787 return result; 62788 } 62789 function verbalNumber(number, isFuture) { 62790 return number < 10 62791 ? isFuture 62792 ? numbersFuture[number] 62793 : numbersPast[number] 62794 : number; 62795 } 62796 62797 var fi = moment.defineLocale('fi', { 62798 months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( 62799 '_' 62800 ), 62801 monthsShort: 62802 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( 62803 '_' 62804 ), 62805 weekdays: 62806 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( 62807 '_' 62808 ), 62809 weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), 62810 weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), 62811 longDateFormat: { 62812 LT: 'HH.mm', 62813 LTS: 'HH.mm.ss', 62814 L: 'DD.MM.YYYY', 62815 LL: 'Do MMMM[ta] YYYY', 62816 LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', 62817 LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', 62818 l: 'D.M.YYYY', 62819 ll: 'Do MMM YYYY', 62820 lll: 'Do MMM YYYY, [klo] HH.mm', 62821 llll: 'ddd, Do MMM YYYY, [klo] HH.mm', 62822 }, 62823 calendar: { 62824 sameDay: '[tänään] [klo] LT', 62825 nextDay: '[huomenna] [klo] LT', 62826 nextWeek: 'dddd [klo] LT', 62827 lastDay: '[eilen] [klo] LT', 62828 lastWeek: '[viime] dddd[na] [klo] LT', 62829 sameElse: 'L', 62830 }, 62831 relativeTime: { 62832 future: '%s päästä', 62833 past: '%s sitten', 62834 s: translate, 62835 ss: translate, 62836 m: translate, 62837 mm: translate, 62838 h: translate, 62839 hh: translate, 62840 d: translate, 62841 dd: translate, 62842 M: translate, 62843 MM: translate, 62844 y: translate, 62845 yy: translate, 62846 }, 62847 dayOfMonthOrdinalParse: /\d{1,2}\./, 62848 ordinal: '%d.', 62849 week: { 62850 dow: 1, // Monday is the first day of the week. 62851 doy: 4, // The week that contains Jan 4th is the first week of the year. 62852 }, 62853 }); 62854 62855 return fi; 62856 62857}))); 62858 62859 62860/***/ }), 62861
vendor: 2,475 bytes, lines 62862-62938
62862/***/ "./node_modules/moment/locale/fil.js": 62863/*!*******************************************!*\ 62864 !*** ./node_modules/moment/locale/fil.js ***! 62865 \*******************************************/ 62866/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 62867 62868//! moment.js locale configuration 62869//! locale : Filipino [fil] 62870//! author : Dan Hagman : https://github.com/hagmandan 62871//! author : Matthew Co : https://github.com/matthewdeeco 62872 62873;(function (global, factory) { 62874 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 62875 0 62876}(this, (function (moment) { 'use strict'; 62877 62878 //! moment.js locale configuration 62879 62880 var fil = moment.defineLocale('fil', { 62881 months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( 62882 '_' 62883 ), 62884 monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), 62885 weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( 62886 '_' 62887 ), 62888 weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), 62889 weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), 62890 longDateFormat: { 62891 LT: 'HH:mm', 62892 LTS: 'HH:mm:ss', 62893 L: 'MM/D/YYYY', 62894 LL: 'MMMM D, YYYY', 62895 LLL: 'MMMM D, YYYY HH:mm', 62896 LLLL: 'dddd, MMMM DD, YYYY HH:mm', 62897 }, 62898 calendar: { 62899 sameDay: 'LT [ngayong araw]', 62900 nextDay: '[Bukas ng] LT', 62901 nextWeek: 'LT [sa susunod na] dddd', 62902 lastDay: 'LT [kahapon]', 62903 lastWeek: 'LT [noong nakaraang] dddd', 62904 sameElse: 'L', 62905 }, 62906 relativeTime: { 62907 future: 'sa loob ng %s', 62908 past: '%s ang nakalipas', 62909 s: 'ilang segundo', 62910 ss: '%d segundo', 62911 m: 'isang minuto', 62912 mm: '%d minuto', 62913 h: 'isang oras', 62914 hh: '%d oras', 62915 d: 'isang araw', 62916 dd: '%d araw', 62917 M: 'isang buwan', 62918 MM: '%d buwan', 62919 y: 'isang taon', 62920 yy: '%d taon', 62921 }, 62922 dayOfMonthOrdinalParse: /\d{1,2}/, 62923 ordinal: function (number) { 62924 return number; 62925 }, 62926 week: { 62927 dow: 1, // Monday is the first day of the week. 62928 doy: 4, // The week that contains Jan 4th is the first week of the year. 62929 }, 62930 }); 62931 62932 return fil; 62933 62934}))); 62935 62936 62937/***/ }), 62938
vendor: 2,461 bytes, lines 62939-63014
62939/***/ "./node_modules/moment/locale/fo.js": 62940/*!******************************************!*\ 62941 !*** ./node_modules/moment/locale/fo.js ***! 62942 \******************************************/ 62943/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 62944 62945//! moment.js locale configuration 62946//! locale : Faroese [fo] 62947//! author : Ragnar Johannesen : https://github.com/ragnar123 62948//! author : Kristian Sakarisson : https://github.com/sakarisson 62949 62950;(function (global, factory) { 62951 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 62952 0 62953}(this, (function (moment) { 'use strict'; 62954 62955 //! moment.js locale configuration 62956 62957 var fo = moment.defineLocale('fo', { 62958 months: 'januar_februar_mars_aprÃl_mai_juni_juli_august_september_oktober_november_desember'.split( 62959 '_' 62960 ), 62961 monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), 62962 weekdays: 62963 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_frÃggjadagur_leygardagur'.split( 62964 '_' 62965 ), 62966 weekdaysShort: 'sun_mán_týs_mik_hós_frÃ_ley'.split('_'), 62967 weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), 62968 longDateFormat: { 62969 LT: 'HH:mm', 62970 LTS: 'HH:mm:ss', 62971 L: 'DD/MM/YYYY', 62972 LL: 'D MMMM YYYY', 62973 LLL: 'D MMMM YYYY HH:mm', 62974 LLLL: 'dddd D. MMMM, YYYY HH:mm', 62975 }, 62976 calendar: { 62977 sameDay: '[à dag kl.] LT', 62978 nextDay: '[à morgin kl.] LT', 62979 nextWeek: 'dddd [kl.] LT', 62980 lastDay: '[à gjár kl.] LT', 62981 lastWeek: '[sÃðstu] dddd [kl] LT', 62982 sameElse: 'L', 62983 }, 62984 relativeTime: { 62985 future: 'um %s', 62986 past: '%s sÃðani', 62987 s: 'fá sekund', 62988 ss: '%d sekundir', 62989 m: 'ein minuttur', 62990 mm: '%d minuttir', 62991 h: 'ein tÃmi', 62992 hh: '%d tÃmar', 62993 d: 'ein dagur', 62994 dd: '%d dagar', 62995 M: 'ein mánaður', 62996 MM: '%d mánaðir', 62997 y: 'eitt ár', 62998 yy: '%d ár', 62999 }, 63000 dayOfMonthOrdinalParse: /\d{1,2}\./, 63001 ordinal: '%d.', 63002 week: { 63003 dow: 1, // Monday is the first day of the week. 63004 doy: 4, // The week that contains Jan 4th is the first week of the year. 63005 }, 63006 }); 63007 63008 return fo; 63009 63010}))); 63011 63012 63013/***/ }), 63014
vendor: 2,861 bytes, lines 63015-63103
63015/***/ "./node_modules/moment/locale/fr-ca.js": 63016/*!*********************************************!*\ 63017 !*** ./node_modules/moment/locale/fr-ca.js ***! 63018 \*********************************************/ 63019/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 63020 63021//! moment.js locale configuration 63022//! locale : French (Canada) [fr-ca] 63023//! author : Jonathan Abourbih : https://github.com/jonbca 63024 63025;(function (global, factory) { 63026 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 63027 0 63028}(this, (function (moment) { 'use strict'; 63029 63030 //! moment.js locale configuration 63031 63032 var frCa = moment.defineLocale('fr-ca', { 63033 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( 63034 '_' 63035 ), 63036 monthsShort: 63037 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( 63038 '_' 63039 ), 63040 monthsParseExact: true, 63041 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 63042 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 63043 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 63044 weekdaysParseExact: true, 63045 longDateFormat: { 63046 LT: 'HH:mm', 63047 LTS: 'HH:mm:ss', 63048 L: 'YYYY-MM-DD', 63049 LL: 'D MMMM YYYY', 63050 LLL: 'D MMMM YYYY HH:mm', 63051 LLLL: 'dddd D MMMM YYYY HH:mm', 63052 }, 63053 calendar: { 63054 sameDay: '[Aujourdâhui à ] LT', 63055 nextDay: '[Demain à ] LT', 63056 nextWeek: 'dddd [à ] LT', 63057 lastDay: '[Hier à ] LT', 63058 lastWeek: 'dddd [dernier à ] LT', 63059 sameElse: 'L', 63060 }, 63061 relativeTime: { 63062 future: 'dans %s', 63063 past: 'il y a %s', 63064 s: 'quelques secondes', 63065 ss: '%d secondes', 63066 m: 'une minute', 63067 mm: '%d minutes', 63068 h: 'une heure', 63069 hh: '%d heures', 63070 d: 'un jour', 63071 dd: '%d jours', 63072 M: 'un mois', 63073 MM: '%d mois', 63074 y: 'un an', 63075 yy: '%d ans', 63076 }, 63077 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, 63078 ordinal: function (number, period) { 63079 switch (period) { 63080 // Words with masculine grammatical gender: mois, trimestre, jour 63081 default: 63082 case 'M': 63083 case 'Q': 63084 case 'D': 63085 case 'DDD': 63086 case 'd': 63087 return number + (number === 1 ? 'er' : 'e'); 63088 63089 // Words with feminine grammatical gender: semaine 63090 case 'w': 63091 case 'W': 63092 return number + (number === 1 ? 're' : 'e'); 63093 } 63094 }, 63095 }); 63096 63097 return frCa; 63098 63099}))); 63100 63101 63102/***/ }), 63103
vendor: 3,036 bytes, lines 63104-63196
63104/***/ "./node_modules/moment/locale/fr-ch.js": 63105/*!*********************************************!*\ 63106 !*** ./node_modules/moment/locale/fr-ch.js ***! 63107 \*********************************************/ 63108/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 63109 63110//! moment.js locale configuration 63111//! locale : French (Switzerland) [fr-ch] 63112//! author : Gaspard Bucher : https://github.com/gaspard 63113 63114;(function (global, factory) { 63115 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 63116 0 63117}(this, (function (moment) { 'use strict'; 63118 63119 //! moment.js locale configuration 63120 63121 var frCh = moment.defineLocale('fr-ch', { 63122 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( 63123 '_' 63124 ), 63125 monthsShort: 63126 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( 63127 '_' 63128 ), 63129 monthsParseExact: true, 63130 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 63131 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 63132 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 63133 weekdaysParseExact: true, 63134 longDateFormat: { 63135 LT: 'HH:mm', 63136 LTS: 'HH:mm:ss', 63137 L: 'DD.MM.YYYY', 63138 LL: 'D MMMM YYYY', 63139 LLL: 'D MMMM YYYY HH:mm', 63140 LLLL: 'dddd D MMMM YYYY HH:mm', 63141 }, 63142 calendar: { 63143 sameDay: '[Aujourdâhui à ] LT', 63144 nextDay: '[Demain à ] LT', 63145 nextWeek: 'dddd [à ] LT', 63146 lastDay: '[Hier à ] LT', 63147 lastWeek: 'dddd [dernier à ] LT', 63148 sameElse: 'L', 63149 }, 63150 relativeTime: { 63151 future: 'dans %s', 63152 past: 'il y a %s', 63153 s: 'quelques secondes', 63154 ss: '%d secondes', 63155 m: 'une minute', 63156 mm: '%d minutes', 63157 h: 'une heure', 63158 hh: '%d heures', 63159 d: 'un jour', 63160 dd: '%d jours', 63161 M: 'un mois', 63162 MM: '%d mois', 63163 y: 'un an', 63164 yy: '%d ans', 63165 }, 63166 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, 63167 ordinal: function (number, period) { 63168 switch (period) { 63169 // Words with masculine grammatical gender: mois, trimestre, jour 63170 default: 63171 case 'M': 63172 case 'Q': 63173 case 'D': 63174 case 'DDD': 63175 case 'd': 63176 return number + (number === 1 ? 'er' : 'e'); 63177 63178 // Words with feminine grammatical gender: semaine 63179 case 'w': 63180 case 'W': 63181 return number + (number === 1 ? 're' : 'e'); 63182 } 63183 }, 63184 week: { 63185 dow: 1, // Monday is the first day of the week. 63186 doy: 4, // The week that contains Jan 4th is the first week of the year. 63187 }, 63188 }); 63189 63190 return frCh; 63191 63192}))); 63193 63194 63195/***/ }), 63196
vendor: 4,356 bytes, lines 63197-63323
63197/***/ "./node_modules/moment/locale/fr.js": 63198/*!******************************************!*\ 63199 !*** ./node_modules/moment/locale/fr.js ***! 63200 \******************************************/ 63201/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 63202 63203//! moment.js locale configuration 63204//! locale : French [fr] 63205//! author : John Fischer : https://github.com/jfroffice 63206 63207;(function (global, factory) { 63208 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 63209 0 63210}(this, (function (moment) { 'use strict'; 63211 63212 //! moment.js locale configuration 63213 63214 var monthsStrictRegex = 63215 /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, 63216 monthsShortStrictRegex = 63217 /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, 63218 monthsRegex = 63219 /(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, 63220 monthsParse = [ 63221 /^janv/i, 63222 /^févr/i, 63223 /^mars/i, 63224 /^avr/i, 63225 /^mai/i, 63226 /^juin/i, 63227 /^juil/i, 63228 /^août/i, 63229 /^sept/i, 63230 /^oct/i, 63231 /^nov/i, 63232 /^déc/i, 63233 ]; 63234 63235 var fr = moment.defineLocale('fr', { 63236 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( 63237 '_' 63238 ), 63239 monthsShort: 63240 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( 63241 '_' 63242 ), 63243 monthsRegex: monthsRegex, 63244 monthsShortRegex: monthsRegex, 63245 monthsStrictRegex: monthsStrictRegex, 63246 monthsShortStrictRegex: monthsShortStrictRegex, 63247 monthsParse: monthsParse, 63248 longMonthsParse: monthsParse, 63249 shortMonthsParse: monthsParse, 63250 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 63251 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 63252 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 63253 weekdaysParseExact: true, 63254 longDateFormat: { 63255 LT: 'HH:mm', 63256 LTS: 'HH:mm:ss', 63257 L: 'DD/MM/YYYY', 63258 LL: 'D MMMM YYYY', 63259 LLL: 'D MMMM YYYY HH:mm', 63260 LLLL: 'dddd D MMMM YYYY HH:mm', 63261 }, 63262 calendar: { 63263 sameDay: '[Aujourdâhui à ] LT', 63264 nextDay: '[Demain à ] LT', 63265 nextWeek: 'dddd [à ] LT', 63266 lastDay: '[Hier à ] LT', 63267 lastWeek: 'dddd [dernier à ] LT', 63268 sameElse: 'L', 63269 }, 63270 relativeTime: { 63271 future: 'dans %s', 63272 past: 'il y a %s', 63273 s: 'quelques secondes', 63274 ss: '%d secondes', 63275 m: 'une minute', 63276 mm: '%d minutes', 63277 h: 'une heure', 63278 hh: '%d heures', 63279 d: 'un jour', 63280 dd: '%d jours', 63281 w: 'une semaine', 63282 ww: '%d semaines', 63283 M: 'un mois', 63284 MM: '%d mois', 63285 y: 'un an', 63286 yy: '%d ans', 63287 }, 63288 dayOfMonthOrdinalParse: /\d{1,2}(er|)/, 63289 ordinal: function (number, period) { 63290 switch (period) { 63291 // TODO: Return 'e' when day of month > 1. Move this case inside 63292 // block for masculine words below. 63293 // See https://github.com/moment/moment/issues/3375 63294 case 'D': 63295 return number + (number === 1 ? 'er' : ''); 63296 63297 // Words with masculine grammatical gender: mois, trimestre, jour 63298 default: 63299 case 'M': 63300 case 'Q': 63301 case 'DDD': 63302 case 'd': 63303 return number + (number === 1 ? 'er' : 'e'); 63304 63305 // Words with feminine grammatical gender: semaine 63306 case 'w': 63307 case 'W': 63308 return number + (number === 1 ? 're' : 'e'); 63309 } 63310 }, 63311 week: { 63312 dow: 1, // Monday is the first day of the week. 63313 doy: 4, // The week that contains Jan 4th is the first week of the year. 63314 }, 63315 }); 63316 63317 return fr; 63318 63319}))); 63320 63321 63322/***/ }), 63323
vendor: 3,036 bytes, lines 63324-63417
63324/***/ "./node_modules/moment/locale/fy.js": 63325/*!******************************************!*\ 63326 !*** ./node_modules/moment/locale/fy.js ***! 63327 \******************************************/ 63328/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 63329 63330//! moment.js locale configuration 63331//! locale : Frisian [fy] 63332//! author : Robin van der Vliet : https://github.com/robin0van0der0v 63333 63334;(function (global, factory) { 63335 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 63336 0 63337}(this, (function (moment) { 'use strict'; 63338 63339 //! moment.js locale configuration 63340 63341 var monthsShortWithDots = 63342 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), 63343 monthsShortWithoutDots = 63344 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); 63345 63346 var fy = moment.defineLocale('fy', { 63347 months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( 63348 '_' 63349 ), 63350 monthsShort: function (m, format) { 63351 if (!m) { 63352 return monthsShortWithDots; 63353 } else if (/-MMM-/.test(format)) { 63354 return monthsShortWithoutDots[m.month()]; 63355 } else { 63356 return monthsShortWithDots[m.month()]; 63357 } 63358 }, 63359 monthsParseExact: true, 63360 weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( 63361 '_' 63362 ), 63363 weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), 63364 weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), 63365 weekdaysParseExact: true, 63366 longDateFormat: { 63367 LT: 'HH:mm', 63368 LTS: 'HH:mm:ss', 63369 L: 'DD-MM-YYYY', 63370 LL: 'D MMMM YYYY', 63371 LLL: 'D MMMM YYYY HH:mm', 63372 LLLL: 'dddd D MMMM YYYY HH:mm', 63373 }, 63374 calendar: { 63375 sameDay: '[hjoed om] LT', 63376 nextDay: '[moarn om] LT', 63377 nextWeek: 'dddd [om] LT', 63378 lastDay: '[juster om] LT', 63379 lastWeek: '[ôfrûne] dddd [om] LT', 63380 sameElse: 'L', 63381 }, 63382 relativeTime: { 63383 future: 'oer %s', 63384 past: '%s lyn', 63385 s: 'in pear sekonden', 63386 ss: '%d sekonden', 63387 m: 'ien minút', 63388 mm: '%d minuten', 63389 h: 'ien oere', 63390 hh: '%d oeren', 63391 d: 'ien dei', 63392 dd: '%d dagen', 63393 M: 'ien moanne', 63394 MM: '%d moannen', 63395 y: 'ien jier', 63396 yy: '%d jierren', 63397 }, 63398 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 63399 ordinal: function (number) { 63400 return ( 63401 number + 63402 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 63403 ); 63404 }, 63405 week: { 63406 dow: 1, // Monday is the first day of the week. 63407 doy: 4, // The week that contains Jan 4th is the first week of the year. 63408 }, 63409 }); 63410 63411 return fy; 63412 63413}))); 63414 63415 63416/***/ }), 63417
vendor: 3,201 bytes, lines 63418-63531
63418/***/ "./node_modules/moment/locale/ga.js": 63419/*!******************************************!*\ 63420 !*** ./node_modules/moment/locale/ga.js ***! 63421 \******************************************/ 63422/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 63423 63424//! moment.js locale configuration 63425//! locale : Irish or Irish Gaelic [ga] 63426//! author : André Silva : https://github.com/askpt 63427 63428;(function (global, factory) { 63429 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 63430 0 63431}(this, (function (moment) { 'use strict'; 63432 63433 //! moment.js locale configuration 63434 63435 var months = [ 63436 'Eanáir', 63437 'Feabhra', 63438 'Márta', 63439 'Aibreán', 63440 'Bealtaine', 63441 'Meitheamh', 63442 'Iúil', 63443 'Lúnasa', 63444 'Meán Fómhair', 63445 'Deireadh Fómhair', 63446 'Samhain', 63447 'Nollaig', 63448 ], 63449 monthsShort = [ 63450 'Ean', 63451 'Feabh', 63452 'Márt', 63453 'Aib', 63454 'Beal', 63455 'Meith', 63456 'Iúil', 63457 'Lún', 63458 'M.F.', 63459 'D.F.', 63460 'Samh', 63461 'Noll', 63462 ], 63463 weekdays = [ 63464 'Dé Domhnaigh', 63465 'Dé Luain', 63466 'Dé Máirt', 63467 'Dé Céadaoin', 63468 'Déardaoin', 63469 'Dé hAoine', 63470 'Dé Sathairn', 63471 ], 63472 weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], 63473 weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; 63474 63475 var ga = moment.defineLocale('ga', { 63476 months: months, 63477 monthsShort: monthsShort, 63478 monthsParseExact: true, 63479 weekdays: weekdays, 63480 weekdaysShort: weekdaysShort, 63481 weekdaysMin: weekdaysMin, 63482 longDateFormat: { 63483 LT: 'HH:mm', 63484 LTS: 'HH:mm:ss', 63485 L: 'DD/MM/YYYY', 63486 LL: 'D MMMM YYYY', 63487 LLL: 'D MMMM YYYY HH:mm', 63488 LLLL: 'dddd, D MMMM YYYY HH:mm', 63489 }, 63490 calendar: { 63491 sameDay: '[Inniu ag] LT', 63492 nextDay: '[Amárach ag] LT', 63493 nextWeek: 'dddd [ag] LT', 63494 lastDay: '[Inné ag] LT', 63495 lastWeek: 'dddd [seo caite] [ag] LT', 63496 sameElse: 'L', 63497 }, 63498 relativeTime: { 63499 future: 'i %s', 63500 past: '%s ó shin', 63501 s: 'cúpla soicind', 63502 ss: '%d soicind', 63503 m: 'nóiméad', 63504 mm: '%d nóiméad', 63505 h: 'uair an chloig', 63506 hh: '%d uair an chloig', 63507 d: 'lá', 63508 dd: '%d lá', 63509 M: 'mÃ', 63510 MM: '%d mÃonna', 63511 y: 'bliain', 63512 yy: '%d bliain', 63513 }, 63514 dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, 63515 ordinal: function (number) { 63516 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; 63517 return number + output; 63518 }, 63519 week: { 63520 dow: 1, // Monday is the first day of the week. 63521 doy: 4, // The week that contains Jan 4th is the first week of the year. 63522 }, 63523 }); 63524 63525 return ga; 63526 63527}))); 63528 63529 63530/***/ }), 63531
vendor: 3,221 bytes, lines 63532-63645
63532/***/ "./node_modules/moment/locale/gd.js": 63533/*!******************************************!*\ 63534 !*** ./node_modules/moment/locale/gd.js ***! 63535 \******************************************/ 63536/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 63537 63538//! moment.js locale configuration 63539//! locale : Scottish Gaelic [gd] 63540//! author : Jon Ashdown : https://github.com/jonashdown 63541 63542;(function (global, factory) { 63543 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 63544 0 63545}(this, (function (moment) { 'use strict'; 63546 63547 //! moment.js locale configuration 63548 63549 var months = [ 63550 'Am Faoilleach', 63551 'An Gearran', 63552 'Am Mà rt', 63553 'An Giblean', 63554 'An Cèitean', 63555 'An t-Ãgmhios', 63556 'An t-Iuchar', 63557 'An Lùnastal', 63558 'An t-Sultain', 63559 'An Dà mhair', 63560 'An t-Samhain', 63561 'An Dùbhlachd', 63562 ], 63563 monthsShort = [ 63564 'Faoi', 63565 'Gear', 63566 'Mà rt', 63567 'Gibl', 63568 'Cèit', 63569 'Ãgmh', 63570 'Iuch', 63571 'Lùn', 63572 'Sult', 63573 'Dà mh', 63574 'Samh', 63575 'Dùbh', 63576 ], 63577 weekdays = [ 63578 'Didòmhnaich', 63579 'Diluain', 63580 'Dimà irt', 63581 'Diciadain', 63582 'Diardaoin', 63583 'Dihaoine', 63584 'Disathairne', 63585 ], 63586 weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], 63587 weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa']; 63588 63589 var gd = moment.defineLocale('gd', { 63590 months: months, 63591 monthsShort: monthsShort, 63592 monthsParseExact: true, 63593 weekdays: weekdays, 63594 weekdaysShort: weekdaysShort, 63595 weekdaysMin: weekdaysMin, 63596 longDateFormat: { 63597 LT: 'HH:mm', 63598 LTS: 'HH:mm:ss', 63599 L: 'DD/MM/YYYY', 63600 LL: 'D MMMM YYYY', 63601 LLL: 'D MMMM YYYY HH:mm', 63602 LLLL: 'dddd, D MMMM YYYY HH:mm', 63603 }, 63604 calendar: { 63605 sameDay: '[An-diugh aig] LT', 63606 nextDay: '[A-mà ireach aig] LT', 63607 nextWeek: 'dddd [aig] LT', 63608 lastDay: '[An-dè aig] LT', 63609 lastWeek: 'dddd [seo chaidh] [aig] LT', 63610 sameElse: 'L', 63611 }, 63612 relativeTime: { 63613 future: 'ann an %s', 63614 past: 'bho chionn %s', 63615 s: 'beagan diogan', 63616 ss: '%d diogan', 63617 m: 'mionaid', 63618 mm: '%d mionaidean', 63619 h: 'uair', 63620 hh: '%d uairean', 63621 d: 'latha', 63622 dd: '%d latha', 63623 M: 'mìos', 63624 MM: '%d mìosan', 63625 y: 'bliadhna', 63626 yy: '%d bliadhna', 63627 }, 63628 dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, 63629 ordinal: function (number) { 63630 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; 63631 return number + output; 63632 }, 63633 week: { 63634 dow: 1, // Monday is the first day of the week. 63635 doy: 4, // The week that contains Jan 4th is the first week of the year. 63636 }, 63637 }); 63638 63639 return gd; 63640 63641}))); 63642 63643 63644/***/ }), 63645
vendor: 3,112 bytes, lines 63646-63739
63646/***/ "./node_modules/moment/locale/gl.js": 63647/*!******************************************!*\ 63648 !*** ./node_modules/moment/locale/gl.js ***! 63649 \******************************************/ 63650/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 63651 63652//! moment.js locale configuration 63653//! locale : Galician [gl] 63654//! author : Juan G. Hurtado : https://github.com/juanghurtado 63655 63656;(function (global, factory) { 63657 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 63658 0 63659}(this, (function (moment) { 'use strict'; 63660 63661 //! moment.js locale configuration 63662 63663 var gl = moment.defineLocale('gl', { 63664 months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( 63665 '_' 63666 ), 63667 monthsShort: 63668 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( 63669 '_' 63670 ), 63671 monthsParseExact: true, 63672 weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), 63673 weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), 63674 weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), 63675 weekdaysParseExact: true, 63676 longDateFormat: { 63677 LT: 'H:mm', 63678 LTS: 'H:mm:ss', 63679 L: 'DD/MM/YYYY', 63680 LL: 'D [de] MMMM [de] YYYY', 63681 LLL: 'D [de] MMMM [de] YYYY H:mm', 63682 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', 63683 }, 63684 calendar: { 63685 sameDay: function () { 63686 return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; 63687 }, 63688 nextDay: function () { 63689 return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; 63690 }, 63691 nextWeek: function () { 63692 return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; 63693 }, 63694 lastDay: function () { 63695 return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; 63696 }, 63697 lastWeek: function () { 63698 return ( 63699 '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' 63700 ); 63701 }, 63702 sameElse: 'L', 63703 }, 63704 relativeTime: { 63705 future: function (str) { 63706 if (str.indexOf('un') === 0) { 63707 return 'n' + str; 63708 } 63709 return 'en ' + str; 63710 }, 63711 past: 'hai %s', 63712 s: 'uns segundos', 63713 ss: '%d segundos', 63714 m: 'un minuto', 63715 mm: '%d minutos', 63716 h: 'unha hora', 63717 hh: '%d horas', 63718 d: 'un dÃa', 63719 dd: '%d dÃas', 63720 M: 'un mes', 63721 MM: '%d meses', 63722 y: 'un ano', 63723 yy: '%d anos', 63724 }, 63725 dayOfMonthOrdinalParse: /\d{1,2}º/, 63726 ordinal: '%dº', 63727 week: { 63728 dow: 1, // Monday is the first day of the week. 63729 doy: 4, // The week that contains Jan 4th is the first week of the year. 63730 }, 63731 }); 63732 63733 return gl; 63734 63735}))); 63736 63737 63738/***/ }), 63739
vendor: 6,505 bytes, lines 63740-63884
63740/***/ "./node_modules/moment/locale/gom-deva.js": 63741/*!************************************************!*\ 63742 !*** ./node_modules/moment/locale/gom-deva.js ***! 63743 \************************************************/ 63744/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 63745 63746//! moment.js locale configuration 63747//! locale : Konkani Devanagari script [gom-deva] 63748//! author : The Discoverer : https://github.com/WikiDiscoverer 63749 63750;(function (global, factory) { 63751 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 63752 0 63753}(this, (function (moment) { 'use strict'; 63754 63755 //! moment.js locale configuration 63756 63757 function processRelativeTime(number, withoutSuffix, key, isFuture) { 63758 var format = { 63759 s: ['थà¥à¤¡à¤¯à¤¾ सॠà¤à¤à¤¡à¤¾à¤à¤¨à¥', 'थà¥à¤¡à¥ सॠà¤à¤à¤¡'], 63760 ss: [number + ' सॠà¤à¤à¤¡à¤¾à¤à¤¨à¥', number + ' सॠà¤à¤à¤¡'], 63761 m: ['à¤à¤à¤¾ मिणà¤à¤¾à¤¨', 'à¤à¤ मिनà¥à¤'], 63762 mm: [number + ' मिणà¤à¤¾à¤à¤¨à¥', number + ' मिणà¤à¤¾à¤'], 63763 h: ['à¤à¤à¤¾ वरान', 'à¤à¤ वर'], 63764 hh: [number + ' वराà¤à¤¨à¥', number + ' वराà¤'], 63765 d: ['à¤à¤à¤¾ दिसान', 'à¤à¤ दà¥à¤¸'], 63766 dd: [number + ' दिसाà¤à¤¨à¥', number + ' दà¥à¤¸'], 63767 M: ['à¤à¤à¤¾ मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨', 'à¤à¤ मà¥à¤¹à¤¯à¤¨à¥'], 63768 MM: [number + ' मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨à¥', number + ' मà¥à¤¹à¤¯à¤¨à¥'], 63769 y: ['à¤à¤à¤¾ वरà¥à¤¸à¤¾à¤¨', 'à¤à¤ वरà¥à¤¸'], 63770 yy: [number + ' वरà¥à¤¸à¤¾à¤à¤¨à¥', number + ' वरà¥à¤¸à¤¾à¤'], 63771 }; 63772 return isFuture ? format[key][0] : format[key][1]; 63773 } 63774 63775 var gomDeva = moment.defineLocale('gom-deva', { 63776 months: { 63777 standalone: 63778 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥_मारà¥à¤_à¤à¤ªà¥à¤°à¥à¤²_मà¥_à¤à¥à¤¨_à¤à¥à¤²à¤¯_à¤à¤à¤¸à¥à¤_सपà¥à¤à¥à¤à¤¬à¤°_à¤à¤à¥à¤à¥à¤¬à¤°_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°_डिसà¥à¤à¤¬à¤°'.split( 63779 '_' 63780 ), 63781 format: 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥à¤à¥à¤¯à¤¾_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥à¤à¥à¤¯à¤¾_मारà¥à¤à¤¾à¤à¥à¤¯à¤¾_à¤à¤ªà¥à¤°à¥à¤²à¤¾à¤à¥à¤¯à¤¾_मà¥à¤¯à¤¾à¤à¥à¤¯à¤¾_à¤à¥à¤¨à¤¾à¤à¥à¤¯à¤¾_à¤à¥à¤²à¤¯à¤¾à¤à¥à¤¯à¤¾_à¤à¤à¤¸à¥à¤à¤¾à¤à¥à¤¯à¤¾_सपà¥à¤à¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_à¤à¤à¥à¤à¥à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_डिसà¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾'.split( 63782 '_' 63783 ), 63784 isFormat: /MMMM(\s)+D[oD]?/, 63785 }, 63786 monthsShort: 63787 'à¤à¤¾à¤¨à¥._फà¥à¤¬à¥à¤°à¥._मारà¥à¤_à¤à¤ªà¥à¤°à¥._मà¥_à¤à¥à¤¨_à¤à¥à¤²._à¤à¤._सपà¥à¤à¥à¤._à¤à¤à¥à¤à¥._नà¥à¤µà¥à¤¹à¥à¤._डिसà¥à¤.'.split( 63788 '_' 63789 ), 63790 monthsParseExact: true, 63791 weekdays: 'à¤à¤¯à¤¤à¤¾à¤°_सà¥à¤®à¤¾à¤°_मà¤à¤à¤³à¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_बिरà¥à¤¸à¥à¤¤à¤¾à¤°_सà¥à¤à¥à¤°à¤¾à¤°_शà¥à¤¨à¤µà¤¾à¤°'.split('_'), 63792 weekdaysShort: 'à¤à¤¯à¤¤._सà¥à¤®._मà¤à¤à¤³._बà¥à¤§._बà¥à¤°à¥à¤¸à¥à¤¤._सà¥à¤à¥à¤°._शà¥à¤¨.'.split('_'), 63793 weekdaysMin: 'à¤_सà¥_मà¤_बà¥_बà¥à¤°à¥_सà¥_शà¥'.split('_'), 63794 weekdaysParseExact: true, 63795 longDateFormat: { 63796 LT: 'A h:mm [वाà¤à¤¤à¤¾à¤]', 63797 LTS: 'A h:mm:ss [वाà¤à¤¤à¤¾à¤]', 63798 L: 'DD-MM-YYYY', 63799 LL: 'D MMMM YYYY', 63800 LLL: 'D MMMM YYYY A h:mm [वाà¤à¤¤à¤¾à¤]', 63801 LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाà¤à¤¤à¤¾à¤]', 63802 llll: 'ddd, D MMM YYYY, A h:mm [वाà¤à¤¤à¤¾à¤]', 63803 }, 63804 calendar: { 63805 sameDay: '[à¤à¤¯à¤] LT', 63806 nextDay: '[फालà¥à¤¯à¤¾à¤] LT', 63807 nextWeek: '[फà¥à¤¡à¤²à¥] dddd[,] LT', 63808 lastDay: '[à¤à¤¾à¤²] LT', 63809 lastWeek: '[फाà¤à¤²à¥] dddd[,] LT', 63810 sameElse: 'L', 63811 }, 63812 relativeTime: { 63813 future: '%s', 63814 past: '%s à¤à¤¦à¥à¤', 63815 s: processRelativeTime, 63816 ss: processRelativeTime, 63817 m: processRelativeTime, 63818 mm: processRelativeTime, 63819 h: processRelativeTime, 63820 hh: processRelativeTime, 63821 d: processRelativeTime, 63822 dd: processRelativeTime, 63823 M: processRelativeTime, 63824 MM: processRelativeTime, 63825 y: processRelativeTime, 63826 yy: processRelativeTime, 63827 }, 63828 dayOfMonthOrdinalParse: /\d{1,2}(वà¥à¤°)/, 63829 ordinal: function (number, period) { 63830 switch (period) { 63831 // the ordinal 'वà¥à¤°' only applies to day of the month 63832 case 'D': 63833 return number + 'वà¥à¤°'; 63834 default: 63835 case 'M': 63836 case 'Q': 63837 case 'DDD': 63838 case 'd': 63839 case 'w': 63840 case 'W': 63841 return number; 63842 } 63843 }, 63844 week: { 63845 dow: 0, // Sunday is the first day of the week 63846 doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) 63847 }, 63848 meridiemParse: /रातà¥|सà¤à¤¾à¤³à¥à¤|दनपाराà¤|साà¤à¤à¥/, 63849 meridiemHour: function (hour, meridiem) { 63850 if (hour === 12) { 63851 hour = 0; 63852 } 63853 if (meridiem === 'रातà¥') { 63854 return hour < 4 ? hour : hour + 12; 63855 } else if (meridiem === 'सà¤à¤¾à¤³à¥à¤') { 63856 return hour; 63857 } else if (meridiem === 'दनपाराà¤') { 63858 return hour > 12 ? hour : hour + 12; 63859 } else if (meridiem === 'साà¤à¤à¥') { 63860 return hour + 12; 63861 } 63862 }, 63863 meridiem: function (hour, minute, isLower) { 63864 if (hour < 4) { 63865 return 'रातà¥'; 63866 } else if (hour < 12) { 63867 return 'सà¤à¤¾à¤³à¥à¤'; 63868 } else if (hour < 16) { 63869 return 'दनपाराà¤'; 63870 } else if (hour < 20) { 63871 return 'साà¤à¤à¥'; 63872 } else { 63873 return 'रातà¥'; 63874 } 63875 }, 63876 }); 63877 63878 return gomDeva; 63879 63880}))); 63881 63882 63883/***/ }), 63884
vendor: 5,121 bytes, lines 63885-64027
63885/***/ "./node_modules/moment/locale/gom-latn.js": 63886/*!************************************************!*\ 63887 !*** ./node_modules/moment/locale/gom-latn.js ***! 63888 \************************************************/ 63889/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 63890 63891//! moment.js locale configuration 63892//! locale : Konkani Latin script [gom-latn] 63893//! author : The Discoverer : https://github.com/WikiDiscoverer 63894 63895;(function (global, factory) { 63896 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 63897 0 63898}(this, (function (moment) { 'use strict'; 63899 63900 //! moment.js locale configuration 63901 63902 function processRelativeTime(number, withoutSuffix, key, isFuture) { 63903 var format = { 63904 s: ['thoddea sekondamni', 'thodde sekond'], 63905 ss: [number + ' sekondamni', number + ' sekond'], 63906 m: ['eka mintan', 'ek minut'], 63907 mm: [number + ' mintamni', number + ' mintam'], 63908 h: ['eka voran', 'ek vor'], 63909 hh: [number + ' voramni', number + ' voram'], 63910 d: ['eka disan', 'ek dis'], 63911 dd: [number + ' disamni', number + ' dis'], 63912 M: ['eka mhoinean', 'ek mhoino'], 63913 MM: [number + ' mhoineamni', number + ' mhoine'], 63914 y: ['eka vorsan', 'ek voros'], 63915 yy: [number + ' vorsamni', number + ' vorsam'], 63916 }; 63917 return isFuture ? format[key][0] : format[key][1]; 63918 } 63919 63920 var gomLatn = moment.defineLocale('gom-latn', { 63921 months: { 63922 standalone: 63923 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( 63924 '_' 63925 ), 63926 format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( 63927 '_' 63928 ), 63929 isFormat: /MMMM(\s)+D[oD]?/, 63930 }, 63931 monthsShort: 63932 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), 63933 monthsParseExact: true, 63934 weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), 63935 weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), 63936 weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), 63937 weekdaysParseExact: true, 63938 longDateFormat: { 63939 LT: 'A h:mm [vazta]', 63940 LTS: 'A h:mm:ss [vazta]', 63941 L: 'DD-MM-YYYY', 63942 LL: 'D MMMM YYYY', 63943 LLL: 'D MMMM YYYY A h:mm [vazta]', 63944 LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', 63945 llll: 'ddd, D MMM YYYY, A h:mm [vazta]', 63946 }, 63947 calendar: { 63948 sameDay: '[Aiz] LT', 63949 nextDay: '[Faleam] LT', 63950 nextWeek: '[Fuddlo] dddd[,] LT', 63951 lastDay: '[Kal] LT', 63952 lastWeek: '[Fattlo] dddd[,] LT', 63953 sameElse: 'L', 63954 }, 63955 relativeTime: { 63956 future: '%s', 63957 past: '%s adim', 63958 s: processRelativeTime, 63959 ss: processRelativeTime, 63960 m: processRelativeTime, 63961 mm: processRelativeTime, 63962 h: processRelativeTime, 63963 hh: processRelativeTime, 63964 d: processRelativeTime, 63965 dd: processRelativeTime, 63966 M: processRelativeTime, 63967 MM: processRelativeTime, 63968 y: processRelativeTime, 63969 yy: processRelativeTime, 63970 }, 63971 dayOfMonthOrdinalParse: /\d{1,2}(er)/, 63972 ordinal: function (number, period) { 63973 switch (period) { 63974 // the ordinal 'er' only applies to day of the month 63975 case 'D': 63976 return number + 'er'; 63977 default: 63978 case 'M': 63979 case 'Q': 63980 case 'DDD': 63981 case 'd': 63982 case 'w': 63983 case 'W': 63984 return number; 63985 } 63986 }, 63987 week: { 63988 dow: 0, // Sunday is the first day of the week 63989 doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) 63990 }, 63991 meridiemParse: /rati|sokallim|donparam|sanje/, 63992 meridiemHour: function (hour, meridiem) { 63993 if (hour === 12) { 63994 hour = 0; 63995 } 63996 if (meridiem === 'rati') { 63997 return hour < 4 ? hour : hour + 12; 63998 } else if (meridiem === 'sokallim') { 63999 return hour; 64000 } else if (meridiem === 'donparam') { 64001 return hour > 12 ? hour : hour + 12; 64002 } else if (meridiem === 'sanje') { 64003 return hour + 12; 64004 } 64005 }, 64006 meridiem: function (hour, minute, isLower) { 64007 if (hour < 4) { 64008 return 'rati'; 64009 } else if (hour < 12) { 64010 return 'sokallim'; 64011 } else if (hour < 16) { 64012 return 'donparam'; 64013 } else if (hour < 20) { 64014 return 'sanje'; 64015 } else { 64016 return 'rati'; 64017 } 64018 }, 64019 }); 64020 64021 return gomLatn; 64022 64023}))); 64024 64025 64026/***/ }), 64027
vendor: 5,081 bytes, lines 64028-64168
64028/***/ "./node_modules/moment/locale/gu.js": 64029/*!******************************************!*\ 64030 !*** ./node_modules/moment/locale/gu.js ***! 64031 \******************************************/ 64032/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 64033 64034//! moment.js locale configuration 64035//! locale : Gujarati [gu] 64036//! author : Kaushik Thanki : https://github.com/Kaushik1987 64037 64038;(function (global, factory) { 64039 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 64040 0 64041}(this, (function (moment) { 'use strict'; 64042 64043 //! moment.js locale configuration 64044 64045 var symbolMap = { 64046 1: 'à«§', 64047 2: '૨', 64048 3: 'à«©', 64049 4: '૪', 64050 5: 'à««', 64051 6: '૬', 64052 7: 'à«', 64053 8: 'à«®', 64054 9: '૯', 64055 0: '૦', 64056 }, 64057 numberMap = { 64058 'à«§': '1', 64059 '૨': '2', 64060 'à«©': '3', 64061 '૪': '4', 64062 'à««': '5', 64063 '૬': '6', 64064 'à«': '7', 64065 'à«®': '8', 64066 '૯': '9', 64067 '૦': '0', 64068 }; 64069 64070 var gu = moment.defineLocale('gu', { 64071 months: 'àªàª¾àª¨à«àª¯à«àªàª°à«_ફà«àª¬à«àª°à«àªàª°à«_મારà«àª_àªàªªà«àª°àª¿àª²_મà«_àªà«àª¨_àªà«àª²àª¾àª_àªàªàª¸à«àª_સપà«àªà«àª®à«àª¬àª°_àªàªà«àªà«àª¬àª°_નવà«àª®à«àª¬àª°_ડિસà«àª®à«àª¬àª°'.split( 64072 '_' 64073 ), 64074 monthsShort: 64075 'àªàª¾àª¨à«àª¯à«._ફà«àª¬à«àª°à«._મારà«àª_àªàªªà«àª°àª¿._મà«_àªà«àª¨_àªà«àª²àª¾._àªàª._સપà«àªà«._àªàªà«àªà«._નવà«._ડિસà«.'.split( 64076 '_' 64077 ), 64078 monthsParseExact: true, 64079 weekdays: 'રવિવાર_સà«àª®àªµàª¾àª°_મàªàªàª³àªµàª¾àª°_બà«àª§à«àªµàª¾àª°_àªà«àª°à«àªµàª¾àª°_શà«àªà«àª°àªµàª¾àª°_શનિવાર'.split( 64080 '_' 64081 ), 64082 weekdaysShort: 'રવિ_સà«àª®_મàªàªàª³_બà«àª§à«_àªà«àª°à«_શà«àªà«àª°_શનિ'.split('_'), 64083 weekdaysMin: 'ર_સà«_મàª_બà«_àªà«_શà«_શ'.split('_'), 64084 longDateFormat: { 64085 LT: 'A h:mm વાàªà«àª¯à«', 64086 LTS: 'A h:mm:ss વાàªà«àª¯à«', 64087 L: 'DD/MM/YYYY', 64088 LL: 'D MMMM YYYY', 64089 LLL: 'D MMMM YYYY, A h:mm વાàªà«àª¯à«', 64090 LLLL: 'dddd, D MMMM YYYY, A h:mm વાàªà«àª¯à«', 64091 }, 64092 calendar: { 64093 sameDay: '[àªàª] LT', 64094 nextDay: '[àªàª¾àª²à«] LT', 64095 nextWeek: 'dddd, LT', 64096 lastDay: '[àªàªàªàª¾àª²à«] LT', 64097 lastWeek: '[પાàªàª²àª¾] dddd, LT', 64098 sameElse: 'L', 64099 }, 64100 relativeTime: { 64101 future: '%s મા', 64102 past: '%s પહà«àª²àª¾', 64103 s: 'ઠમà«àª પળà«', 64104 ss: '%d સà«àªàªàª¡', 64105 m: 'àªàª મિનિàª', 64106 mm: '%d મિનિàª', 64107 h: 'àªàª àªàª²àª¾àª', 64108 hh: '%d àªàª²àª¾àª', 64109 d: 'àªàª દિવસ', 64110 dd: '%d દિવસ', 64111 M: 'àªàª મહિનà«', 64112 MM: '%d મહિનà«', 64113 y: 'àªàª વરà«àª·', 64114 yy: '%d વરà«àª·', 64115 }, 64116 preparse: function (string) { 64117 return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) { 64118 return numberMap[match]; 64119 }); 64120 }, 64121 postformat: function (string) { 64122 return string.replace(/\d/g, function (match) { 64123 return symbolMap[match]; 64124 }); 64125 }, 64126 // Gujarati notation for meridiems are quite fuzzy in practice. While there exists 64127 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. 64128 meridiemParse: /રાત|બપà«àª°|સવાર|સાàªàª/, 64129 meridiemHour: function (hour, meridiem) { 64130 if (hour === 12) { 64131 hour = 0; 64132 } 64133 if (meridiem === 'રાત') { 64134 return hour < 4 ? hour : hour + 12; 64135 } else if (meridiem === 'સવાર') { 64136 return hour; 64137 } else if (meridiem === 'બપà«àª°') { 64138 return hour >= 10 ? hour : hour + 12; 64139 } else if (meridiem === 'સાàªàª') { 64140 return hour + 12; 64141 } 64142 }, 64143 meridiem: function (hour, minute, isLower) { 64144 if (hour < 4) { 64145 return 'રાત'; 64146 } else if (hour < 10) { 64147 return 'સવાર'; 64148 } else if (hour < 17) { 64149 return 'બપà«àª°'; 64150 } else if (hour < 20) { 64151 return 'સાàªàª'; 64152 } else { 64153 return 'રાત'; 64154 } 64155 }, 64156 week: { 64157 dow: 0, // Sunday is the first day of the week. 64158 doy: 6, // The week that contains Jan 6th is the first week of the year. 64159 }, 64160 }); 64161 64162 return gu; 64163 64164}))); 64165 64166 64167/***/ }), 64168
vendor: 4,044 bytes, lines 64169-64281
64169/***/ "./node_modules/moment/locale/he.js": 64170/*!******************************************!*\ 64171 !*** ./node_modules/moment/locale/he.js ***! 64172 \******************************************/ 64173/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 64174 64175//! moment.js locale configuration 64176//! locale : Hebrew [he] 64177//! author : Tomer Cohen : https://github.com/tomer 64178//! author : Moshe Simantov : https://github.com/DevelopmentIL 64179//! author : Tal Ater : https://github.com/TalAter 64180 64181;(function (global, factory) { 64182 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 64183 0 64184}(this, (function (moment) { 'use strict'; 64185 64186 //! moment.js locale configuration 64187 64188 var he = moment.defineLocale('he', { 64189 months: '×× ××ר_פ×ר××ר_×רץ_×פר××_×××_××× ×_××××_××××ס×_ספ×××ר_×××§×××ר_× ××××ר_×צ××ר'.split( 64190 '_' 64191 ), 64192 monthsShort: 64193 '×× ×׳_פ×ר׳_×רץ_×פר׳_×××_××× ×_××××_×××׳_ספ×׳_××ק׳_× ××׳_×צ×׳'.split('_'), 64194 weekdays: 'ר×ש××_×©× ×_ש××ש×_ר×××¢×_×××ש×_ש×ש×_ש×ת'.split('_'), 64195 weekdaysShort: '×׳_×׳_×׳_×׳_×׳_×׳_ש׳'.split('_'), 64196 weekdaysMin: '×_×_×_×_×_×_ש'.split('_'), 64197 longDateFormat: { 64198 LT: 'HH:mm', 64199 LTS: 'HH:mm:ss', 64200 L: 'DD/MM/YYYY', 64201 LL: 'D [×]MMMM YYYY', 64202 LLL: 'D [×]MMMM YYYY HH:mm', 64203 LLLL: 'dddd, D [×]MMMM YYYY HH:mm', 64204 l: 'D/M/YYYY', 64205 ll: 'D MMM YYYY', 64206 lll: 'D MMM YYYY HH:mm', 64207 llll: 'ddd, D MMM YYYY HH:mm', 64208 }, 64209 calendar: { 64210 sameDay: '[×××× ×Ö¾]LT', 64211 nextDay: '[××ר ×Ö¾]LT', 64212 nextWeek: 'dddd [×שע×] LT', 64213 lastDay: '[×ת××× ×Ö¾]LT', 64214 lastWeek: '[××××] dddd [×××ר×× ×שע×] LT', 64215 sameElse: 'L', 64216 }, 64217 relativeTime: { 64218 future: '××¢×× %s', 64219 past: '××¤× × %s', 64220 s: '×ספר ×©× ××ת', 64221 ss: '%d ×©× ××ת', 64222 m: '××§×', 64223 mm: '%d ××§×ת', 64224 h: 'שע×', 64225 hh: function (number) { 64226 if (number === 2) { 64227 return 'שעת×××'; 64228 } 64229 return number + ' שע×ת'; 64230 }, 64231 d: '×××', 64232 dd: function (number) { 64233 if (number === 2) { 64234 return '××××××'; 64235 } 64236 return number + ' ××××'; 64237 }, 64238 M: '×××ש', 64239 MM: function (number) { 64240 if (number === 2) { 64241 return '×××ש×××'; 64242 } 64243 return number + ' ×××ש××'; 64244 }, 64245 y: '×©× ×', 64246 yy: function (number) { 64247 if (number === 2) { 64248 return '×©× ×ª×××'; 64249 } else if (number % 10 === 0 && number !== 10) { 64250 return number + ' ×©× ×'; 64251 } 64252 return number + ' ×©× ××'; 64253 }, 64254 }, 64255 meridiemParse: 64256 /×××"צ|××¤× ×"צ|×××¨× ×צ×ר×××|××¤× × ×צ×ר×××|××¤× ×ת ××קר|×××קר|×ער×/i, 64257 isPM: function (input) { 64258 return /^(×××"צ|×××¨× ×צ×ר×××|×ער×)$/.test(input); 64259 }, 64260 meridiem: function (hour, minute, isLower) { 64261 if (hour < 5) { 64262 return '××¤× ×ת ××קר'; 64263 } else if (hour < 10) { 64264 return '×××קר'; 64265 } else if (hour < 12) { 64266 return isLower ? '××¤× ×"צ' : '××¤× × ×צ×ר×××'; 64267 } else if (hour < 18) { 64268 return isLower ? '×××"צ' : '×××¨× ×צ×ר×××'; 64269 } else { 64270 return '×ער×'; 64271 } 64272 }, 64273 }); 64274 64275 return he; 64276 64277}))); 64278 64279 64280/***/ }), 64281
vendor: 7,530 bytes, lines 64282-64468
64282/***/ "./node_modules/moment/locale/hi.js": 64283/*!******************************************!*\ 64284 !*** ./node_modules/moment/locale/hi.js ***! 64285 \******************************************/ 64286/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 64287 64288//! moment.js locale configuration 64289//! locale : Hindi [hi] 64290//! author : Mayank Singhal : https://github.com/mayanksinghal 64291 64292;(function (global, factory) { 64293 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 64294 0 64295}(this, (function (moment) { 'use strict'; 64296 64297 //! moment.js locale configuration 64298 64299 var symbolMap = { 64300 1: '१', 64301 2: '२', 64302 3: '३', 64303 4: '४', 64304 5: '५', 64305 6: '६', 64306 7: 'à¥', 64307 8: '८', 64308 9: '९', 64309 0: '०', 64310 }, 64311 numberMap = { 64312 '१': '1', 64313 '२': '2', 64314 '३': '3', 64315 '४': '4', 64316 '५': '5', 64317 '६': '6', 64318 'à¥': '7', 64319 '८': '8', 64320 '९': '9', 64321 '०': '0', 64322 }, 64323 monthsParse = [ 64324 /^à¤à¤¨/i, 64325 /^फ़र|फर/i, 64326 /^मारà¥à¤/i, 64327 /^ठपà¥à¤°à¥/i, 64328 /^मà¤/i, 64329 /^à¤à¥à¤¨/i, 64330 /^à¤à¥à¤²/i, 64331 /^ठà¤/i, 64332 /^सितà¤|सित/i, 64333 /^ठà¤à¥à¤à¥/i, 64334 /^नव|नवà¤/i, 64335 /^दिसà¤|दिस/i, 64336 ], 64337 shortMonthsParse = [ 64338 /^à¤à¤¨/i, 64339 /^फ़र/i, 64340 /^मारà¥à¤/i, 64341 /^ठपà¥à¤°à¥/i, 64342 /^मà¤/i, 64343 /^à¤à¥à¤¨/i, 64344 /^à¤à¥à¤²/i, 64345 /^ठà¤/i, 64346 /^सित/i, 64347 /^ठà¤à¥à¤à¥/i, 64348 /^नव/i, 64349 /^दिस/i, 64350 ]; 64351 64352 var hi = moment.defineLocale('hi', { 64353 months: { 64354 format: 'à¤à¤¨à¤µà¤°à¥_फ़रवरà¥_मारà¥à¤_ठपà¥à¤°à¥à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤¸à¥à¤¤_सितमà¥à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split( 64355 '_' 64356 ), 64357 standalone: 64358 'à¤à¤¨à¤µà¤°à¥_फरवरà¥_मारà¥à¤_ठपà¥à¤°à¥à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤¸à¥à¤¤_सितà¤à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नवà¤à¤¬à¤°_दिसà¤à¤¬à¤°'.split( 64359 '_' 64360 ), 64361 }, 64362 monthsShort: 64363 'à¤à¤¨._फ़र._मारà¥à¤_ठपà¥à¤°à¥._मà¤_à¤à¥à¤¨_à¤à¥à¤²._ठà¤._सित._ठà¤à¥à¤à¥._नव._दिस.'.split('_'), 64364 weekdays: 'रविवार_सà¥à¤®à¤µà¤¾à¤°_मà¤à¤à¤²à¤µà¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_à¤à¥à¤°à¥à¤µà¤¾à¤°_शà¥à¤à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'), 64365 weekdaysShort: 'रवि_सà¥à¤®_मà¤à¤à¤²_बà¥à¤§_à¤à¥à¤°à¥_शà¥à¤à¥à¤°_शनि'.split('_'), 64366 weekdaysMin: 'र_सà¥_मà¤_बà¥_à¤à¥_शà¥_श'.split('_'), 64367 longDateFormat: { 64368 LT: 'A h:mm बà¤à¥', 64369 LTS: 'A h:mm:ss बà¤à¥', 64370 L: 'DD/MM/YYYY', 64371 LL: 'D MMMM YYYY', 64372 LLL: 'D MMMM YYYY, A h:mm बà¤à¥', 64373 LLLL: 'dddd, D MMMM YYYY, A h:mm बà¤à¥', 64374 }, 64375 64376 monthsParse: monthsParse, 64377 longMonthsParse: monthsParse, 64378 shortMonthsParse: shortMonthsParse, 64379 64380 monthsRegex: 64381 /^(à¤à¤¨à¤µà¤°à¥|à¤à¤¨\.?|फ़रवरà¥|फरवरà¥|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥à¤²|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤|à¤à¥à¤²\.?|ठà¤à¤¸à¥à¤¤|ठà¤\.?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित\.?|ठà¤à¥à¤à¥à¤¬à¤°|ठà¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°|नव\.?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°|दिस\.?)/i, 64382 64383 monthsShortRegex: 64384 /^(à¤à¤¨à¤µà¤°à¥|à¤à¤¨\.?|फ़रवरà¥|फरवरà¥|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥à¤²|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤|à¤à¥à¤²\.?|ठà¤à¤¸à¥à¤¤|ठà¤\.?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित\.?|ठà¤à¥à¤à¥à¤¬à¤°|ठà¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°|नव\.?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°|दिस\.?)/i, 64385 64386 monthsStrictRegex: 64387 /^(à¤à¤¨à¤µà¤°à¥?|फ़रवरà¥|फरवरà¥?|मारà¥à¤?|ठपà¥à¤°à¥à¤²?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤?|ठà¤à¤¸à¥à¤¤?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित?\.?|ठà¤à¥à¤à¥à¤¬à¤°|ठà¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°?)/i, 64388 64389 monthsShortStrictRegex: 64390 /^(à¤à¤¨\.?|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²\.?|ठà¤\.?|सित\.?|ठà¤à¥à¤à¥\.?|नव\.?|दिस\.?)/i, 64391 64392 calendar: { 64393 sameDay: '[à¤à¤] LT', 64394 nextDay: '[à¤à¤²] LT', 64395 nextWeek: 'dddd, LT', 64396 lastDay: '[à¤à¤²] LT', 64397 lastWeek: '[पिà¤à¤²à¥] dddd, LT', 64398 sameElse: 'L', 64399 }, 64400 relativeTime: { 64401 future: '%s मà¥à¤', 64402 past: '%s पहलà¥', 64403 s: 'à¤à¥à¤ हॠà¤à¥à¤·à¤£', 64404 ss: '%d सà¥à¤à¤à¤¡', 64405 m: 'à¤à¤ मिनà¤', 64406 mm: '%d मिनà¤', 64407 h: 'à¤à¤ à¤à¤à¤à¤¾', 64408 hh: '%d à¤à¤à¤à¥', 64409 d: 'à¤à¤ दिन', 64410 dd: '%d दिन', 64411 M: 'à¤à¤ महà¥à¤¨à¥', 64412 MM: '%d महà¥à¤¨à¥', 64413 y: 'à¤à¤ वरà¥à¤·', 64414 yy: '%d वरà¥à¤·', 64415 }, 64416 preparse: function (string) { 64417 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 64418 return numberMap[match]; 64419 }); 64420 }, 64421 postformat: function (string) { 64422 return string.replace(/\d/g, function (match) { 64423 return symbolMap[match]; 64424 }); 64425 }, 64426 // Hindi notation for meridiems are quite fuzzy in practice. While there exists 64427 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. 64428 meridiemParse: /रात|सà¥à¤¬à¤¹|दà¥à¤ªà¤¹à¤°|शाम/, 64429 meridiemHour: function (hour, meridiem) { 64430 if (hour === 12) { 64431 hour = 0; 64432 } 64433 if (meridiem === 'रात') { 64434 return hour < 4 ? hour : hour + 12; 64435 } else if (meridiem === 'सà¥à¤¬à¤¹') { 64436 return hour; 64437 } else if (meridiem === 'दà¥à¤ªà¤¹à¤°') { 64438 return hour >= 10 ? hour : hour + 12; 64439 } else if (meridiem === 'शाम') { 64440 return hour + 12; 64441 } 64442 }, 64443 meridiem: function (hour, minute, isLower) { 64444 if (hour < 4) { 64445 return 'रात'; 64446 } else if (hour < 10) { 64447 return 'सà¥à¤¬à¤¹'; 64448 } else if (hour < 17) { 64449 return 'दà¥à¤ªà¤¹à¤°'; 64450 } else if (hour < 20) { 64451 return 'शाम'; 64452 } else { 64453 return 'रात'; 64454 } 64455 }, 64456 week: { 64457 dow: 0, // Sunday is the first day of the week. 64458 doy: 6, // The week that contains Jan 6th is the first week of the year. 64459 }, 64460 }); 64461 64462 return hi; 64463 64464}))); 64465 64466 64467/***/ }), 64468
vendor: 5,803 bytes, lines 64469-64643
64469/***/ "./node_modules/moment/locale/hr.js": 64470/*!******************************************!*\ 64471 !*** ./node_modules/moment/locale/hr.js ***! 64472 \******************************************/ 64473/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 64474 64475//! moment.js locale configuration 64476//! locale : Croatian [hr] 64477//! author : Bojan MarkoviÄ : https://github.com/bmarkovic 64478 64479;(function (global, factory) { 64480 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 64481 0 64482}(this, (function (moment) { 'use strict'; 64483 64484 //! moment.js locale configuration 64485 64486 function translate(number, withoutSuffix, key) { 64487 var result = number + ' '; 64488 switch (key) { 64489 case 'ss': 64490 if (number === 1) { 64491 result += 'sekunda'; 64492 } else if (number === 2 || number === 3 || number === 4) { 64493 result += 'sekunde'; 64494 } else { 64495 result += 'sekundi'; 64496 } 64497 return result; 64498 case 'm': 64499 return withoutSuffix ? 'jedna minuta' : 'jedne minute'; 64500 case 'mm': 64501 if (number === 1) { 64502 result += 'minuta'; 64503 } else if (number === 2 || number === 3 || number === 4) { 64504 result += 'minute'; 64505 } else { 64506 result += 'minuta'; 64507 } 64508 return result; 64509 case 'h': 64510 return withoutSuffix ? 'jedan sat' : 'jednog sata'; 64511 case 'hh': 64512 if (number === 1) { 64513 result += 'sat'; 64514 } else if (number === 2 || number === 3 || number === 4) { 64515 result += 'sata'; 64516 } else { 64517 result += 'sati'; 64518 } 64519 return result; 64520 case 'dd': 64521 if (number === 1) { 64522 result += 'dan'; 64523 } else { 64524 result += 'dana'; 64525 } 64526 return result; 64527 case 'MM': 64528 if (number === 1) { 64529 result += 'mjesec'; 64530 } else if (number === 2 || number === 3 || number === 4) { 64531 result += 'mjeseca'; 64532 } else { 64533 result += 'mjeseci'; 64534 } 64535 return result; 64536 case 'yy': 64537 if (number === 1) { 64538 result += 'godina'; 64539 } else if (number === 2 || number === 3 || number === 4) { 64540 result += 'godine'; 64541 } else { 64542 result += 'godina'; 64543 } 64544 return result; 64545 } 64546 } 64547 64548 var hr = moment.defineLocale('hr', { 64549 months: { 64550 format: 'sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( 64551 '_' 64552 ), 64553 standalone: 64554 'sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( 64555 '_' 64556 ), 64557 }, 64558 monthsShort: 64559 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( 64560 '_' 64561 ), 64562 monthsParseExact: true, 64563 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split( 64564 '_' 64565 ), 64566 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 64567 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 64568 weekdaysParseExact: true, 64569 longDateFormat: { 64570 LT: 'H:mm', 64571 LTS: 'H:mm:ss', 64572 L: 'DD.MM.YYYY', 64573 LL: 'Do MMMM YYYY', 64574 LLL: 'Do MMMM YYYY H:mm', 64575 LLLL: 'dddd, Do MMMM YYYY H:mm', 64576 }, 64577 calendar: { 64578 sameDay: '[danas u] LT', 64579 nextDay: '[sutra u] LT', 64580 nextWeek: function () { 64581 switch (this.day()) { 64582 case 0: 64583 return '[u] [nedjelju] [u] LT'; 64584 case 3: 64585 return '[u] [srijedu] [u] LT'; 64586 case 6: 64587 return '[u] [subotu] [u] LT'; 64588 case 1: 64589 case 2: 64590 case 4: 64591 case 5: 64592 return '[u] dddd [u] LT'; 64593 } 64594 }, 64595 lastDay: '[juÄer u] LT', 64596 lastWeek: function () { 64597 switch (this.day()) { 64598 case 0: 64599 return '[proÅ¡lu] [nedjelju] [u] LT'; 64600 case 3: 64601 return '[proÅ¡lu] [srijedu] [u] LT'; 64602 case 6: 64603 return '[proÅ¡le] [subote] [u] LT'; 64604 case 1: 64605 case 2: 64606 case 4: 64607 case 5: 64608 return '[proÅ¡li] dddd [u] LT'; 64609 } 64610 }, 64611 sameElse: 'L', 64612 }, 64613 relativeTime: { 64614 future: 'za %s', 64615 past: 'prije %s', 64616 s: 'par sekundi', 64617 ss: translate, 64618 m: translate, 64619 mm: translate, 64620 h: translate, 64621 hh: translate, 64622 d: 'dan', 64623 dd: translate, 64624 M: 'mjesec', 64625 MM: translate, 64626 y: 'godinu', 64627 yy: translate, 64628 }, 64629 dayOfMonthOrdinalParse: /\d{1,2}\./, 64630 ordinal: '%d.', 64631 week: { 64632 dow: 1, // Monday is the first day of the week. 64633 doy: 7, // The week that contains Jan 7th is the first week of the year. 64634 }, 64635 }); 64636 64637 return hr; 64638 64639}))); 64640 64641 64642/***/ }), 64643
vendor: 4,744 bytes, lines 64644-64780
64644/***/ "./node_modules/moment/locale/hu.js": 64645/*!******************************************!*\ 64646 !*** ./node_modules/moment/locale/hu.js ***! 64647 \******************************************/ 64648/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 64649 64650//! moment.js locale configuration 64651//! locale : Hungarian [hu] 64652//! author : Adam Brunner : https://github.com/adambrunner 64653//! author : Peter Viszt : https://github.com/passatgt 64654 64655;(function (global, factory) { 64656 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 64657 0 64658}(this, (function (moment) { 'use strict'; 64659 64660 //! moment.js locale configuration 64661 64662 var weekEndings = 64663 'vasárnap hétfÅn kedden szerdán csütörtökön pénteken szombaton'.split(' '); 64664 function translate(number, withoutSuffix, key, isFuture) { 64665 var num = number; 64666 switch (key) { 64667 case 's': 64668 return isFuture || withoutSuffix 64669 ? 'néhány másodperc' 64670 : 'néhány másodperce'; 64671 case 'ss': 64672 return num + (isFuture || withoutSuffix) 64673 ? ' másodperc' 64674 : ' másodperce'; 64675 case 'm': 64676 return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); 64677 case 'mm': 64678 return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); 64679 case 'h': 64680 return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); 64681 case 'hh': 64682 return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); 64683 case 'd': 64684 return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); 64685 case 'dd': 64686 return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); 64687 case 'M': 64688 return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); 64689 case 'MM': 64690 return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); 64691 case 'y': 64692 return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); 64693 case 'yy': 64694 return num + (isFuture || withoutSuffix ? ' év' : ' éve'); 64695 } 64696 return ''; 64697 } 64698 function week(isFuture) { 64699 return ( 64700 (isFuture ? '' : '[múlt] ') + 64701 '[' + 64702 weekEndings[this.day()] + 64703 '] LT[-kor]' 64704 ); 64705 } 64706 64707 var hu = moment.defineLocale('hu', { 64708 months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( 64709 '_' 64710 ), 64711 monthsShort: 64712 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( 64713 '_' 64714 ), 64715 monthsParseExact: true, 64716 weekdays: 'vasárnap_hétfÅ_kedd_szerda_csütörtök_péntek_szombat'.split('_'), 64717 weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), 64718 weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), 64719 longDateFormat: { 64720 LT: 'H:mm', 64721 LTS: 'H:mm:ss', 64722 L: 'YYYY.MM.DD.', 64723 LL: 'YYYY. MMMM D.', 64724 LLL: 'YYYY. MMMM D. H:mm', 64725 LLLL: 'YYYY. MMMM D., dddd H:mm', 64726 }, 64727 meridiemParse: /de|du/i, 64728 isPM: function (input) { 64729 return input.charAt(1).toLowerCase() === 'u'; 64730 }, 64731 meridiem: function (hours, minutes, isLower) { 64732 if (hours < 12) { 64733 return isLower === true ? 'de' : 'DE'; 64734 } else { 64735 return isLower === true ? 'du' : 'DU'; 64736 } 64737 }, 64738 calendar: { 64739 sameDay: '[ma] LT[-kor]', 64740 nextDay: '[holnap] LT[-kor]', 64741 nextWeek: function () { 64742 return week.call(this, true); 64743 }, 64744 lastDay: '[tegnap] LT[-kor]', 64745 lastWeek: function () { 64746 return week.call(this, false); 64747 }, 64748 sameElse: 'L', 64749 }, 64750 relativeTime: { 64751 future: '%s múlva', 64752 past: '%s', 64753 s: translate, 64754 ss: translate, 64755 m: translate, 64756 mm: translate, 64757 h: translate, 64758 hh: translate, 64759 d: translate, 64760 dd: translate, 64761 M: translate, 64762 MM: translate, 64763 y: translate, 64764 yy: translate, 64765 }, 64766 dayOfMonthOrdinalParse: /\d{1,2}\./, 64767 ordinal: '%d.', 64768 week: { 64769 dow: 1, // Monday is the first day of the week. 64770 doy: 4, // The week that contains Jan 4th is the first week of the year. 64771 }, 64772 }); 64773 64774 return hu; 64775 64776}))); 64777 64778 64779/***/ }), 64780
vendor: 4,093 bytes, lines 64781-64893
64781/***/ "./node_modules/moment/locale/hy-am.js": 64782/*!*********************************************!*\ 64783 !*** ./node_modules/moment/locale/hy-am.js ***! 64784 \*********************************************/ 64785/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 64786 64787//! moment.js locale configuration 64788//! locale : Armenian [hy-am] 64789//! author : Armendarabyan : https://github.com/armendarabyan 64790 64791;(function (global, factory) { 64792 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 64793 0 64794}(this, (function (moment) { 'use strict'; 64795 64796 //! moment.js locale configuration 64797 64798 var hyAm = moment.defineLocale('hy-am', { 64799 months: { 64800 format: 'Õ°Õ¸ÖÕ¶Õ¾Õ¡ÖÕ«_ÖÕ¥Õ¿ÖÕ¾Õ¡ÖÕ«_Õ´Õ¡ÖÕ¿Õ«_Õ¡ÕºÖÕ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸ÖÕ¶Õ«Õ½Õ«_Õ°Õ¸ÖÕ¬Õ«Õ½Õ«_Ö Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥ÖÕ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥ÖÕ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥ÖÕ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥ÖÕ«'.split( 64801 '_' 64802 ), 64803 standalone: 64804 'Õ°Õ¸ÖÕ¶Õ¾Õ¡Ö_ÖÕ¥Õ¿ÖÕ¾Õ¡Ö_Õ´Õ¡ÖÕ¿_Õ¡ÕºÖÕ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸ÖÕ¶Õ«Õ½_Õ°Õ¸ÖÕ¬Õ«Õ½_Ö Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö'.split( 64805 '_' 64806 ), 64807 }, 64808 monthsShort: 'Õ°Õ¶Õ¾_ÖÕ¿Ö_Õ´ÖÕ¿_Õ¡ÕºÖ_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿'.split('_'), 64809 weekdays: 64810 'Õ¯Õ«ÖÕ¡Õ¯Õ«_Õ¥ÖÕ¯Õ¸ÖÕ·Õ¡Õ¢Õ©Õ«_Õ¥ÖÕ¥ÖÕ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸ÖÕ¥ÖÕ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸ÖÖÕ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©'.split( 64811 '_' 64812 ), 64813 weekdaysShort: 'Õ¯ÖÕ¯_Õ¥ÖÕ¯_Õ¥ÖÖ_Õ¹ÖÖ_Õ°Õ¶Õ£_Õ¸ÖÖÕ¢_Õ·Õ¢Õ©'.split('_'), 64814 weekdaysMin: 'Õ¯ÖÕ¯_Õ¥ÖÕ¯_Õ¥ÖÖ_Õ¹ÖÖ_Õ°Õ¶Õ£_Õ¸ÖÖÕ¢_Õ·Õ¢Õ©'.split('_'), 64815 longDateFormat: { 64816 LT: 'HH:mm', 64817 LTS: 'HH:mm:ss', 64818 L: 'DD.MM.YYYY', 64819 LL: 'D MMMM YYYY Õ©.', 64820 LLL: 'D MMMM YYYY Õ©., HH:mm', 64821 LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm', 64822 }, 64823 calendar: { 64824 sameDay: '[Õ¡ÕµÕ½Ö Ö] LT', 64825 nextDay: '[Õ¾Õ¡Õ²Õ¨] LT', 64826 lastDay: '[Õ¥ÖÕ¥Õ¯] LT', 64827 nextWeek: function () { 64828 return 'dddd [Ö ÖÕ¨ ÕªÕ¡Õ´Õ¨] LT'; 64829 }, 64830 lastWeek: function () { 64831 return '[Õ¡Õ¶ÖÕ¡Õ®] dddd [Ö ÖÕ¨ ÕªÕ¡Õ´Õ¨] LT'; 64832 }, 64833 sameElse: 'L', 64834 }, 64835 relativeTime: { 64836 future: '%s Õ°Õ¥Õ¿Õ¸', 64837 past: '%s Õ¡Õ¼Õ¡Õ»', 64838 s: 'Õ´Õ« ÖÕ¡Õ¶Õ« Õ¾Õ¡ÕµÖÕ¯ÕµÕ¡Õ¶', 64839 ss: '%d Õ¾Õ¡ÕµÖÕ¯ÕµÕ¡Õ¶', 64840 m: 'ÖÕ¸ÕºÕ¥', 64841 mm: '%d ÖÕ¸ÕºÕ¥', 64842 h: 'ÕªÕ¡Õ´', 64843 hh: '%d ÕªÕ¡Õ´', 64844 d: 'Ö Ö', 64845 dd: '%d Ö Ö', 64846 M: 'Õ¡Õ´Õ«Õ½', 64847 MM: '%d Õ¡Õ´Õ«Õ½', 64848 y: 'Õ¿Õ¡ÖÕ«', 64849 yy: '%d Õ¿Õ¡ÖÕ«', 64850 }, 64851 meridiemParse: /Õ£Õ«Õ·Õ¥ÖÕ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡|Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶/, 64852 isPM: function (input) { 64853 return /^(ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡|Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(input); 64854 }, 64855 meridiem: function (hour) { 64856 if (hour < 4) { 64857 return 'Õ£Õ«Õ·Õ¥ÖÕ¾Õ¡'; 64858 } else if (hour < 12) { 64859 return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡'; 64860 } else if (hour < 17) { 64861 return 'ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡'; 64862 } else { 64863 return 'Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶'; 64864 } 64865 }, 64866 dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(Õ«Õ¶|ÖÕ¤)/, 64867 ordinal: function (number, period) { 64868 switch (period) { 64869 case 'DDD': 64870 case 'w': 64871 case 'W': 64872 case 'DDDo': 64873 if (number === 1) { 64874 return number + '-Õ«Õ¶'; 64875 } 64876 return number + '-ÖÕ¤'; 64877 default: 64878 return number; 64879 } 64880 }, 64881 week: { 64882 dow: 1, // Monday is the first day of the week. 64883 doy: 7, // The week that contains Jan 7th is the first week of the year. 64884 }, 64885 }); 64886 64887 return hyAm; 64888 64889}))); 64890 64891 64892/***/ }), 64893
vendor: 3,140 bytes, lines 64894-64988
64894/***/ "./node_modules/moment/locale/id.js": 64895/*!******************************************!*\ 64896 !*** ./node_modules/moment/locale/id.js ***! 64897 \******************************************/ 64898/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 64899 64900//! moment.js locale configuration 64901//! locale : Indonesian [id] 64902//! author : Mohammad Satrio Utomo : https://github.com/tyok 64903//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan 64904 64905;(function (global, factory) { 64906 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 64907 0 64908}(this, (function (moment) { 'use strict'; 64909 64910 //! moment.js locale configuration 64911 64912 var id = moment.defineLocale('id', { 64913 months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( 64914 '_' 64915 ), 64916 monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), 64917 weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), 64918 weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), 64919 weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), 64920 longDateFormat: { 64921 LT: 'HH.mm', 64922 LTS: 'HH.mm.ss', 64923 L: 'DD/MM/YYYY', 64924 LL: 'D MMMM YYYY', 64925 LLL: 'D MMMM YYYY [pukul] HH.mm', 64926 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 64927 }, 64928 meridiemParse: /pagi|siang|sore|malam/, 64929 meridiemHour: function (hour, meridiem) { 64930 if (hour === 12) { 64931 hour = 0; 64932 } 64933 if (meridiem === 'pagi') { 64934 return hour; 64935 } else if (meridiem === 'siang') { 64936 return hour >= 11 ? hour : hour + 12; 64937 } else if (meridiem === 'sore' || meridiem === 'malam') { 64938 return hour + 12; 64939 } 64940 }, 64941 meridiem: function (hours, minutes, isLower) { 64942 if (hours < 11) { 64943 return 'pagi'; 64944 } else if (hours < 15) { 64945 return 'siang'; 64946 } else if (hours < 19) { 64947 return 'sore'; 64948 } else { 64949 return 'malam'; 64950 } 64951 }, 64952 calendar: { 64953 sameDay: '[Hari ini pukul] LT', 64954 nextDay: '[Besok pukul] LT', 64955 nextWeek: 'dddd [pukul] LT', 64956 lastDay: '[Kemarin pukul] LT', 64957 lastWeek: 'dddd [lalu pukul] LT', 64958 sameElse: 'L', 64959 }, 64960 relativeTime: { 64961 future: 'dalam %s', 64962 past: '%s yang lalu', 64963 s: 'beberapa detik', 64964 ss: '%d detik', 64965 m: 'semenit', 64966 mm: '%d menit', 64967 h: 'sejam', 64968 hh: '%d jam', 64969 d: 'sehari', 64970 dd: '%d hari', 64971 M: 'sebulan', 64972 MM: '%d bulan', 64973 y: 'setahun', 64974 yy: '%d tahun', 64975 }, 64976 week: { 64977 dow: 0, // Sunday is the first day of the week. 64978 doy: 6, // The week that contains Jan 6th is the first week of the year. 64979 }, 64980 }); 64981 64982 return id; 64983 64984}))); 64985 64986 64987/***/ }), 64988
vendor: 5,479 bytes, lines 64989-65147
64989/***/ "./node_modules/moment/locale/is.js": 64990/*!******************************************!*\ 64991 !*** ./node_modules/moment/locale/is.js ***! 64992 \******************************************/ 64993/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 64994 64995//! moment.js locale configuration 64996//! locale : Icelandic [is] 64997//! author : Hinrik Ãrn Sigurðsson : https://github.com/hinrik 64998 64999;(function (global, factory) { 65000 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 65001 0 65002}(this, (function (moment) { 'use strict'; 65003 65004 //! moment.js locale configuration 65005 65006 function plural(n) { 65007 if (n % 100 === 11) { 65008 return true; 65009 } else if (n % 10 === 1) { 65010 return false; 65011 } 65012 return true; 65013 } 65014 function translate(number, withoutSuffix, key, isFuture) { 65015 var result = number + ' '; 65016 switch (key) { 65017 case 's': 65018 return withoutSuffix || isFuture 65019 ? 'nokkrar sekúndur' 65020 : 'nokkrum sekúndum'; 65021 case 'ss': 65022 if (plural(number)) { 65023 return ( 65024 result + 65025 (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') 65026 ); 65027 } 65028 return result + 'sekúnda'; 65029 case 'm': 65030 return withoutSuffix ? 'mÃnúta' : 'mÃnútu'; 65031 case 'mm': 65032 if (plural(number)) { 65033 return ( 65034 result + (withoutSuffix || isFuture ? 'mÃnútur' : 'mÃnútum') 65035 ); 65036 } else if (withoutSuffix) { 65037 return result + 'mÃnúta'; 65038 } 65039 return result + 'mÃnútu'; 65040 case 'hh': 65041 if (plural(number)) { 65042 return ( 65043 result + 65044 (withoutSuffix || isFuture 65045 ? 'klukkustundir' 65046 : 'klukkustundum') 65047 ); 65048 } 65049 return result + 'klukkustund'; 65050 case 'd': 65051 if (withoutSuffix) { 65052 return 'dagur'; 65053 } 65054 return isFuture ? 'dag' : 'degi'; 65055 case 'dd': 65056 if (plural(number)) { 65057 if (withoutSuffix) { 65058 return result + 'dagar'; 65059 } 65060 return result + (isFuture ? 'daga' : 'dögum'); 65061 } else if (withoutSuffix) { 65062 return result + 'dagur'; 65063 } 65064 return result + (isFuture ? 'dag' : 'degi'); 65065 case 'M': 65066 if (withoutSuffix) { 65067 return 'mánuður'; 65068 } 65069 return isFuture ? 'mánuð' : 'mánuði'; 65070 case 'MM': 65071 if (plural(number)) { 65072 if (withoutSuffix) { 65073 return result + 'mánuðir'; 65074 } 65075 return result + (isFuture ? 'mánuði' : 'mánuðum'); 65076 } else if (withoutSuffix) { 65077 return result + 'mánuður'; 65078 } 65079 return result + (isFuture ? 'mánuð' : 'mánuði'); 65080 case 'y': 65081 return withoutSuffix || isFuture ? 'ár' : 'ári'; 65082 case 'yy': 65083 if (plural(number)) { 65084 return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); 65085 } 65086 return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); 65087 } 65088 } 65089 65090 var is = moment.defineLocale('is', { 65091 months: 'janúar_febrúar_mars_aprÃl_maÃ_júnÃ_júlÃ_ágúst_september_október_nóvember_desember'.split( 65092 '_' 65093 ), 65094 monthsShort: 'jan_feb_mar_apr_maÃ_jún_júl_ágú_sep_okt_nóv_des'.split('_'), 65095 weekdays: 65096 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( 65097 '_' 65098 ), 65099 weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), 65100 weekdaysMin: 'Su_Má_Ãr_Mi_Fi_Fö_La'.split('_'), 65101 longDateFormat: { 65102 LT: 'H:mm', 65103 LTS: 'H:mm:ss', 65104 L: 'DD.MM.YYYY', 65105 LL: 'D. MMMM YYYY', 65106 LLL: 'D. MMMM YYYY [kl.] H:mm', 65107 LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', 65108 }, 65109 calendar: { 65110 sameDay: '[à dag kl.] LT', 65111 nextDay: '[á morgun kl.] LT', 65112 nextWeek: 'dddd [kl.] LT', 65113 lastDay: '[à gær kl.] LT', 65114 lastWeek: '[sÃðasta] dddd [kl.] LT', 65115 sameElse: 'L', 65116 }, 65117 relativeTime: { 65118 future: 'eftir %s', 65119 past: 'fyrir %s sÃðan', 65120 s: translate, 65121 ss: translate, 65122 m: translate, 65123 mm: translate, 65124 h: 'klukkustund', 65125 hh: translate, 65126 d: translate, 65127 dd: translate, 65128 M: translate, 65129 MM: translate, 65130 y: translate, 65131 yy: translate, 65132 }, 65133 dayOfMonthOrdinalParse: /\d{1,2}\./, 65134 ordinal: '%d.', 65135 week: { 65136 dow: 1, // Monday is the first day of the week. 65137 doy: 4, // The week that contains Jan 4th is the first week of the year. 65138 }, 65139 }); 65140 65141 return is; 65142 65143}))); 65144 65145 65146/***/ }), 65147
vendor: 2,678 bytes, lines 65148-65230
65148/***/ "./node_modules/moment/locale/it-ch.js": 65149/*!*********************************************!*\ 65150 !*** ./node_modules/moment/locale/it-ch.js ***! 65151 \*********************************************/ 65152/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 65153 65154//! moment.js locale configuration 65155//! locale : Italian (Switzerland) [it-ch] 65156//! author : xfh : https://github.com/xfh 65157 65158;(function (global, factory) { 65159 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 65160 0 65161}(this, (function (moment) { 'use strict'; 65162 65163 //! moment.js locale configuration 65164 65165 var itCh = moment.defineLocale('it-ch', { 65166 months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( 65167 '_' 65168 ), 65169 monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), 65170 weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( 65171 '_' 65172 ), 65173 weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), 65174 weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), 65175 longDateFormat: { 65176 LT: 'HH:mm', 65177 LTS: 'HH:mm:ss', 65178 L: 'DD.MM.YYYY', 65179 LL: 'D MMMM YYYY', 65180 LLL: 'D MMMM YYYY HH:mm', 65181 LLLL: 'dddd D MMMM YYYY HH:mm', 65182 }, 65183 calendar: { 65184 sameDay: '[Oggi alle] LT', 65185 nextDay: '[Domani alle] LT', 65186 nextWeek: 'dddd [alle] LT', 65187 lastDay: '[Ieri alle] LT', 65188 lastWeek: function () { 65189 switch (this.day()) { 65190 case 0: 65191 return '[la scorsa] dddd [alle] LT'; 65192 default: 65193 return '[lo scorso] dddd [alle] LT'; 65194 } 65195 }, 65196 sameElse: 'L', 65197 }, 65198 relativeTime: { 65199 future: function (s) { 65200 return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; 65201 }, 65202 past: '%s fa', 65203 s: 'alcuni secondi', 65204 ss: '%d secondi', 65205 m: 'un minuto', 65206 mm: '%d minuti', 65207 h: "un'ora", 65208 hh: '%d ore', 65209 d: 'un giorno', 65210 dd: '%d giorni', 65211 M: 'un mese', 65212 MM: '%d mesi', 65213 y: 'un anno', 65214 yy: '%d anni', 65215 }, 65216 dayOfMonthOrdinalParse: /\d{1,2}º/, 65217 ordinal: '%dº', 65218 week: { 65219 dow: 1, // Monday is the first day of the week. 65220 doy: 4, // The week that contains Jan 4th is the first week of the year. 65221 }, 65222 }); 65223 65224 return itCh; 65225 65226}))); 65227 65228 65229/***/ }), 65230
vendor: 4,140 bytes, lines 65231-65355
65231/***/ "./node_modules/moment/locale/it.js": 65232/*!******************************************!*\ 65233 !*** ./node_modules/moment/locale/it.js ***! 65234 \******************************************/ 65235/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 65236 65237//! moment.js locale configuration 65238//! locale : Italian [it] 65239//! author : Lorenzo : https://github.com/aliem 65240//! author: Mattia Larentis: https://github.com/nostalgiaz 65241//! author: Marco : https://github.com/Manfre98 65242 65243;(function (global, factory) { 65244 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 65245 0 65246}(this, (function (moment) { 'use strict'; 65247 65248 //! moment.js locale configuration 65249 65250 var it = moment.defineLocale('it', { 65251 months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( 65252 '_' 65253 ), 65254 monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), 65255 weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( 65256 '_' 65257 ), 65258 weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), 65259 weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), 65260 longDateFormat: { 65261 LT: 'HH:mm', 65262 LTS: 'HH:mm:ss', 65263 L: 'DD/MM/YYYY', 65264 LL: 'D MMMM YYYY', 65265 LLL: 'D MMMM YYYY HH:mm', 65266 LLLL: 'dddd D MMMM YYYY HH:mm', 65267 }, 65268 calendar: { 65269 sameDay: function () { 65270 return ( 65271 '[Oggi a' + 65272 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 65273 ']LT' 65274 ); 65275 }, 65276 nextDay: function () { 65277 return ( 65278 '[Domani a' + 65279 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 65280 ']LT' 65281 ); 65282 }, 65283 nextWeek: function () { 65284 return ( 65285 'dddd [a' + 65286 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 65287 ']LT' 65288 ); 65289 }, 65290 lastDay: function () { 65291 return ( 65292 '[Ieri a' + 65293 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 65294 ']LT' 65295 ); 65296 }, 65297 lastWeek: function () { 65298 switch (this.day()) { 65299 case 0: 65300 return ( 65301 '[La scorsa] dddd [a' + 65302 (this.hours() > 1 65303 ? 'lle ' 65304 : this.hours() === 0 65305 ? ' ' 65306 : "ll'") + 65307 ']LT' 65308 ); 65309 default: 65310 return ( 65311 '[Lo scorso] dddd [a' + 65312 (this.hours() > 1 65313 ? 'lle ' 65314 : this.hours() === 0 65315 ? ' ' 65316 : "ll'") + 65317 ']LT' 65318 ); 65319 } 65320 }, 65321 sameElse: 'L', 65322 }, 65323 relativeTime: { 65324 future: 'tra %s', 65325 past: '%s fa', 65326 s: 'alcuni secondi', 65327 ss: '%d secondi', 65328 m: 'un minuto', 65329 mm: '%d minuti', 65330 h: "un'ora", 65331 hh: '%d ore', 65332 d: 'un giorno', 65333 dd: '%d giorni', 65334 w: 'una settimana', 65335 ww: '%d settimane', 65336 M: 'un mese', 65337 MM: '%d mesi', 65338 y: 'un anno', 65339 yy: '%d anni', 65340 }, 65341 dayOfMonthOrdinalParse: /\d{1,2}º/, 65342 ordinal: '%dº', 65343 week: { 65344 dow: 1, // Monday is the first day of the week. 65345 doy: 4, // The week that contains Jan 4th is the first week of the year. 65346 }, 65347 }); 65348 65349 return it; 65350 65351}))); 65352 65353 65354/***/ }), 65355
vendor: 5,012 bytes, lines 65356-65522
65356/***/ "./node_modules/moment/locale/ja.js": 65357/*!******************************************!*\ 65358 !*** ./node_modules/moment/locale/ja.js ***! 65359 \******************************************/ 65360/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 65361 65362//! moment.js locale configuration 65363//! locale : Japanese [ja] 65364//! author : LI Long : https://github.com/baryon 65365 65366;(function (global, factory) { 65367 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 65368 0 65369}(this, (function (moment) { 'use strict'; 65370 65371 //! moment.js locale configuration 65372 65373 var ja = moment.defineLocale('ja', { 65374 eras: [ 65375 { 65376 since: '2019-05-01', 65377 offset: 1, 65378 name: '令å', 65379 narrow: 'ã¿', 65380 abbr: 'R', 65381 }, 65382 { 65383 since: '1989-01-08', 65384 until: '2019-04-30', 65385 offset: 1, 65386 name: 'å¹³æ', 65387 narrow: 'ã»', 65388 abbr: 'H', 65389 }, 65390 { 65391 since: '1926-12-25', 65392 until: '1989-01-07', 65393 offset: 1, 65394 name: 'æå', 65395 narrow: 'ã¼', 65396 abbr: 'S', 65397 }, 65398 { 65399 since: '1912-07-30', 65400 until: '1926-12-24', 65401 offset: 1, 65402 name: '大æ£', 65403 narrow: 'ã½', 65404 abbr: 'T', 65405 }, 65406 { 65407 since: '1873-01-01', 65408 until: '1912-07-29', 65409 offset: 6, 65410 name: 'ææ²»', 65411 narrow: 'ã¾', 65412 abbr: 'M', 65413 }, 65414 { 65415 since: '0001-01-01', 65416 until: '1873-12-31', 65417 offset: 1, 65418 name: '西æ¦', 65419 narrow: 'AD', 65420 abbr: 'AD', 65421 }, 65422 { 65423 since: '0000-12-31', 65424 until: -Infinity, 65425 offset: 1, 65426 name: 'ç´å å', 65427 narrow: 'BC', 65428 abbr: 'BC', 65429 }, 65430 ], 65431 eraYearOrdinalRegex: /(å |\d+)å¹´/, 65432 eraYearOrdinalParse: function (input, match) { 65433 return match[1] === 'å ' ? 1 : parseInt(match[1] || input, 10); 65434 }, 65435 months: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'), 65436 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 65437 '_' 65438 ), 65439 weekdays: 'æ¥ææ¥_æææ¥_ç«ææ¥_æ°´ææ¥_æ¨ææ¥_éææ¥_åææ¥'.split('_'), 65440 weekdaysShort: 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'), 65441 weekdaysMin: 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'), 65442 longDateFormat: { 65443 LT: 'HH:mm', 65444 LTS: 'HH:mm:ss', 65445 L: 'YYYY/MM/DD', 65446 LL: 'YYYYå¹´MæDæ¥', 65447 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 65448 LLLL: 'YYYYå¹´MæDæ¥ dddd HH:mm', 65449 l: 'YYYY/MM/DD', 65450 ll: 'YYYYå¹´MæDæ¥', 65451 lll: 'YYYYå¹´MæDæ¥ HH:mm', 65452 llll: 'YYYYå¹´MæDæ¥(ddd) HH:mm', 65453 }, 65454 meridiemParse: /åå|åå¾/i, 65455 isPM: function (input) { 65456 return input === 'åå¾'; 65457 }, 65458 meridiem: function (hour, minute, isLower) { 65459 if (hour < 12) { 65460 return 'åå'; 65461 } else { 65462 return 'åå¾'; 65463 } 65464 }, 65465 calendar: { 65466 sameDay: '[仿¥] LT', 65467 nextDay: '[ææ¥] LT', 65468 nextWeek: function (now) { 65469 if (now.week() !== this.week()) { 65470 return '[æ¥é±]dddd LT'; 65471 } else { 65472 return 'dddd LT'; 65473 } 65474 }, 65475 lastDay: '[æ¨æ¥] LT', 65476 lastWeek: function (now) { 65477 if (this.week() !== now.week()) { 65478 return '[å é±]dddd LT'; 65479 } else { 65480 return 'dddd LT'; 65481 } 65482 }, 65483 sameElse: 'L', 65484 }, 65485 dayOfMonthOrdinalParse: /\d{1,2}æ¥/, 65486 ordinal: function (number, period) { 65487 switch (period) { 65488 case 'y': 65489 return number === 1 ? 'å å¹´' : number + 'å¹´'; 65490 case 'd': 65491 case 'D': 65492 case 'DDD': 65493 return number + 'æ¥'; 65494 default: 65495 return number; 65496 } 65497 }, 65498 relativeTime: { 65499 future: '%så¾', 65500 past: '%så', 65501 s: 'æ°ç§', 65502 ss: '%dç§', 65503 m: '1å', 65504 mm: '%då', 65505 h: '1æé', 65506 hh: '%dæé', 65507 d: '1æ¥', 65508 dd: '%dæ¥', 65509 M: '1ã¶æ', 65510 MM: '%dã¶æ', 65511 y: '1å¹´', 65512 yy: '%då¹´', 65513 }, 65514 }); 65515 65516 return ja; 65517 65518}))); 65519 65520 65521/***/ }), 65522
vendor: 3,149 bytes, lines 65523-65617
65523/***/ "./node_modules/moment/locale/jv.js": 65524/*!******************************************!*\ 65525 !*** ./node_modules/moment/locale/jv.js ***! 65526 \******************************************/ 65527/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 65528 65529//! moment.js locale configuration 65530//! locale : Javanese [jv] 65531//! author : Rony Lantip : https://github.com/lantip 65532//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa 65533 65534;(function (global, factory) { 65535 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 65536 0 65537}(this, (function (moment) { 'use strict'; 65538 65539 //! moment.js locale configuration 65540 65541 var jv = moment.defineLocale('jv', { 65542 months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( 65543 '_' 65544 ), 65545 monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), 65546 weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), 65547 weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), 65548 weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), 65549 longDateFormat: { 65550 LT: 'HH.mm', 65551 LTS: 'HH.mm.ss', 65552 L: 'DD/MM/YYYY', 65553 LL: 'D MMMM YYYY', 65554 LLL: 'D MMMM YYYY [pukul] HH.mm', 65555 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 65556 }, 65557 meridiemParse: /enjing|siyang|sonten|ndalu/, 65558 meridiemHour: function (hour, meridiem) { 65559 if (hour === 12) { 65560 hour = 0; 65561 } 65562 if (meridiem === 'enjing') { 65563 return hour; 65564 } else if (meridiem === 'siyang') { 65565 return hour >= 11 ? hour : hour + 12; 65566 } else if (meridiem === 'sonten' || meridiem === 'ndalu') { 65567 return hour + 12; 65568 } 65569 }, 65570 meridiem: function (hours, minutes, isLower) { 65571 if (hours < 11) { 65572 return 'enjing'; 65573 } else if (hours < 15) { 65574 return 'siyang'; 65575 } else if (hours < 19) { 65576 return 'sonten'; 65577 } else { 65578 return 'ndalu'; 65579 } 65580 }, 65581 calendar: { 65582 sameDay: '[Dinten puniko pukul] LT', 65583 nextDay: '[Mbenjang pukul] LT', 65584 nextWeek: 'dddd [pukul] LT', 65585 lastDay: '[Kala wingi pukul] LT', 65586 lastWeek: 'dddd [kepengker pukul] LT', 65587 sameElse: 'L', 65588 }, 65589 relativeTime: { 65590 future: 'wonten ing %s', 65591 past: '%s ingkang kepengker', 65592 s: 'sawetawis detik', 65593 ss: '%d detik', 65594 m: 'setunggal menit', 65595 mm: '%d menit', 65596 h: 'setunggal jam', 65597 hh: '%d jam', 65598 d: 'sedinten', 65599 dd: '%d dinten', 65600 M: 'sewulan', 65601 MM: '%d wulan', 65602 y: 'setaun', 65603 yy: '%d taun', 65604 }, 65605 week: { 65606 dow: 1, // Monday is the first day of the week. 65607 doy: 7, // The week that contains Jan 7th is the first week of the year. 65608 }, 65609 }); 65610 65611 return jv; 65612 65613}))); 65614 65615 65616/***/ }), 65617
vendor: 4,337 bytes, lines 65618-65728
65618/***/ "./node_modules/moment/locale/ka.js": 65619/*!******************************************!*\ 65620 !*** ./node_modules/moment/locale/ka.js ***! 65621 \******************************************/ 65622/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 65623 65624//! moment.js locale configuration 65625//! locale : Georgian [ka] 65626//! author : Irakli Janiashvili : https://github.com/IrakliJani 65627 65628;(function (global, factory) { 65629 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 65630 0 65631}(this, (function (moment) { 'use strict'; 65632 65633 //! moment.js locale configuration 65634 65635 var ka = moment.defineLocale('ka', { 65636 months: 'áááááá á_ááááá áááá_ááá á¢á_ááá ááá_áááá¡á_ááááá¡á_ááááá¡á_ááááá¡á¢á_á¡áá¥á¢ááááá á_áá¥á¢ááááá á_ááááááá á_áááááááá á'.split( 65637 '_' 65638 ), 65639 monthsShort: 'ááá_ááá_ááá _ááá _ááá_ááá_ááá_ááá_á¡áá¥_áá¥á¢_ááá_ááá'.split('_'), 65640 weekdays: { 65641 standalone: 65642 'áááá á_áá á¨ááááá_á¡ááá¨ááááá_ááá®á¨ááááá_á®á£áá¨ááááá_ááá áá¡áááá_á¨ááááá'.split( 65643 '_' 65644 ), 65645 format: 'áááá áá¡_áá á¨ááááá¡_á¡ááá¨ááááá¡_ááá®á¨ááááá¡_á®á£áá¨ááááá¡_ááá áá¡áááá¡_á¨ááááá¡'.split( 65646 '_' 65647 ), 65648 isFormat: /(á¬ááá|á¨ááááá)/, 65649 }, 65650 weekdaysShort: 'ááá_áá á¨_á¡áá_ááá®_á®á£á_ááá _á¨áá'.split('_'), 65651 weekdaysMin: 'áá_áá _á¡á_áá_á®á£_áá_á¨á'.split('_'), 65652 longDateFormat: { 65653 LT: 'HH:mm', 65654 LTS: 'HH:mm:ss', 65655 L: 'DD/MM/YYYY', 65656 LL: 'D MMMM YYYY', 65657 LLL: 'D MMMM YYYY HH:mm', 65658 LLLL: 'dddd, D MMMM YYYY HH:mm', 65659 }, 65660 calendar: { 65661 sameDay: '[áá¦áá¡] LT[-áá]', 65662 nextDay: '[á®ááá] LT[-áá]', 65663 lastDay: '[áá£á¨áá] LT[-áá]', 65664 nextWeek: '[á¨ááááá] dddd LT[-áá]', 65665 lastWeek: '[á¬ááá] dddd LT-áá', 65666 sameElse: 'L', 65667 }, 65668 relativeTime: { 65669 future: function (s) { 65670 return s.replace( 65671 /(á¬áá|á¬á£á|á¡ááá|á¬áá|áá¦|áá)(á|á)/, 65672 function ($0, $1, $2) { 65673 return $2 === 'á' ? $1 + 'á¨á' : $1 + $2 + 'á¨á'; 65674 } 65675 ); 65676 }, 65677 past: function (s) { 65678 if (/(á¬ááá|á¬á£áá|á¡áááá|áá¦á|ááá)/.test(s)) { 65679 return s.replace(/(á|á)$/, 'áá¡ á¬áá'); 65680 } 65681 if (/á¬ááá/.test(s)) { 65682 return s.replace(/á¬ááá$/, 'á¬ááá¡ á¬áá'); 65683 } 65684 return s; 65685 }, 65686 s: 'á áááááááá á¬ááá', 65687 ss: '%d á¬ááá', 65688 m: 'á¬á£áá', 65689 mm: '%d á¬á£áá', 65690 h: 'á¡áááá', 65691 hh: '%d á¡áááá', 65692 d: 'áá¦á', 65693 dd: '%d áá¦á', 65694 M: 'ááá', 65695 MM: '%d ááá', 65696 y: 'á¬ááá', 65697 yy: '%d á¬ááá', 65698 }, 65699 dayOfMonthOrdinalParse: /0|1-áá|áá-\d{1,2}|\d{1,2}-á/, 65700 ordinal: function (number) { 65701 if (number === 0) { 65702 return number; 65703 } 65704 if (number === 1) { 65705 return number + '-áá'; 65706 } 65707 if ( 65708 number < 20 || 65709 (number <= 100 && number % 20 === 0) || 65710 number % 100 === 0 65711 ) { 65712 return 'áá-' + number; 65713 } 65714 return number + '-á'; 65715 }, 65716 week: { 65717 dow: 1, 65718 doy: 7, 65719 }, 65720 }); 65721 65722 return ka; 65723 65724}))); 65725 65726 65727/***/ }), 65728
vendor: 3,284 bytes, lines 65729-65829
65729/***/ "./node_modules/moment/locale/kk.js": 65730/*!******************************************!*\ 65731 !*** ./node_modules/moment/locale/kk.js ***! 65732 \******************************************/ 65733/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 65734 65735//! moment.js locale configuration 65736//! locale : Kazakh [kk] 65737//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan 65738 65739;(function (global, factory) { 65740 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 65741 0 65742}(this, (function (moment) { 'use strict'; 65743 65744 //! moment.js locale configuration 65745 65746 var suffixes = { 65747 0: '-ÑÑ', 65748 1: '-ÑÑ', 65749 2: '-ÑÑ', 65750 3: '-ÑÑ', 65751 4: '-ÑÑ', 65752 5: '-ÑÑ', 65753 6: '-ÑÑ', 65754 7: '-ÑÑ', 65755 8: '-ÑÑ', 65756 9: '-ÑÑ', 65757 10: '-ÑÑ', 65758 20: '-ÑÑ', 65759 30: '-ÑÑ', 65760 40: '-ÑÑ', 65761 50: '-ÑÑ', 65762 60: '-ÑÑ', 65763 70: '-ÑÑ', 65764 80: '-ÑÑ', 65765 90: '-ÑÑ', 65766 100: '-ÑÑ', 65767 }; 65768 65769 var kk = moment.defineLocale('kk', { 65770 months: 'ÒаңÑаÑ_аÒпан_наÑÑÑз_ÑÓÑÑÑ_мамÑÑ_маÑÑÑм_ÑÑлде_ÑамÑз_ÒÑÑкүйек_Òазан_ÒаÑаÑа_желÑоÒÑан'.split( 65771 '_' 65772 ), 65773 monthsShort: 'Òаң_аÒп_наÑ_ÑÓÑ_мам_маÑ_ÑÑл_Ñам_ÒÑÑ_Òаз_ÒаÑ_жел'.split('_'), 65774 weekdays: 'жекÑенбÑ_дүйÑенбÑ_ÑейÑенбÑ_ÑÓÑÑенбÑ_бейÑенбÑ_жұма_ÑенбÑ'.split( 65775 '_' 65776 ), 65777 weekdaysShort: 'жек_дүй_Ñей_ÑÓÑ_бей_жұм_Ñен'.split('_'), 65778 weekdaysMin: 'жк_дй_Ñй_ÑÑ_бй_жм_Ñн'.split('_'), 65779 longDateFormat: { 65780 LT: 'HH:mm', 65781 LTS: 'HH:mm:ss', 65782 L: 'DD.MM.YYYY', 65783 LL: 'D MMMM YYYY', 65784 LLL: 'D MMMM YYYY HH:mm', 65785 LLLL: 'dddd, D MMMM YYYY HH:mm', 65786 }, 65787 calendar: { 65788 sameDay: '[ÐүгÑн ÑаÒаÑ] LT', 65789 nextDay: '[ÐÑÑең ÑаÒаÑ] LT', 65790 nextWeek: 'dddd [ÑаÒаÑ] LT', 65791 lastDay: '[ÐеÑе ÑаÒаÑ] LT', 65792 lastWeek: '[Ó¨Ñкен апÑанÑÒ£] dddd [ÑаÒаÑ] LT', 65793 sameElse: 'L', 65794 }, 65795 relativeTime: { 65796 future: '%s ÑÑÑнде', 65797 past: '%s бұÑÑн', 65798 s: 'бÑÑнеÑе ÑекÑнд', 65799 ss: '%d ÑекÑнд', 65800 m: 'бÑÑ Ð¼Ð¸Ð½ÑÑ', 65801 mm: '%d минÑÑ', 65802 h: 'бÑÑ ÑаÒаÑ', 65803 hh: '%d ÑаÒаÑ', 65804 d: 'бÑÑ ÐºÒ¯Ð½', 65805 dd: '%d күн', 65806 M: 'бÑÑ Ð°Ð¹', 65807 MM: '%d ай', 65808 y: 'бÑÑ Ð¶Ñл', 65809 yy: '%d жÑл', 65810 }, 65811 dayOfMonthOrdinalParse: /\d{1,2}-(ÑÑ|ÑÑ)/, 65812 ordinal: function (number) { 65813 var a = number % 10, 65814 b = number >= 100 ? 100 : null; 65815 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 65816 }, 65817 week: { 65818 dow: 1, // Monday is the first day of the week. 65819 doy: 7, // The week that contains Jan 7th is the first week of the year. 65820 }, 65821 }); 65822 65823 return kk; 65824 65825}))); 65826 65827 65828/***/ }), 65829
vendor: 4,235 bytes, lines 65830-65951
65830/***/ "./node_modules/moment/locale/km.js": 65831/*!******************************************!*\ 65832 !*** ./node_modules/moment/locale/km.js ***! 65833 \******************************************/ 65834/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 65835 65836//! moment.js locale configuration 65837//! locale : Cambodian [km] 65838//! author : Kruy Vanna : https://github.com/kruyvanna 65839 65840;(function (global, factory) { 65841 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 65842 0 65843}(this, (function (moment) { 'use strict'; 65844 65845 //! moment.js locale configuration 65846 65847 var symbolMap = { 65848 1: 'á¡', 65849 2: 'á¢', 65850 3: 'á£', 65851 4: 'á¤', 65852 5: 'á¥', 65853 6: 'á¦', 65854 7: 'á§', 65855 8: 'á¨', 65856 9: 'á©', 65857 0: 'á ', 65858 }, 65859 numberMap = { 65860 'á¡': '1', 65861 'á¢': '2', 65862 'á£': '3', 65863 'á¤': '4', 65864 'á¥': '5', 65865 'á¦': '6', 65866 'á§': '7', 65867 'á¨': '8', 65868 'á©': '9', 65869 'á ': '0', 65870 }; 65871 65872 var km = moment.defineLocale('km', { 65873 months: 'áááá¶_áá»áááá_áá¸áá¶_áááá¶_á§ááá¶_áá·áá»áá¶_áááááá¶_áá¸á á¶_ááááá¶_áá»áá¶_áá·á ááá·áá¶_áááá¼'.split( 65874 '_' 65875 ), 65876 monthsShort: 65877 'áááá¶_áá»áááá_áá¸áá¶_áááá¶_á§ááá¶_áá·áá»áá¶_áááááá¶_áá¸á á¶_ááááá¶_áá»áá¶_áá·á ááá·áá¶_áááá¼'.split( 65878 '_' 65879 ), 65880 weekdays: 'á¢á¶áá·ááá_á áááá_á¢áááá¶á_áá»á_áááá ááááá·á_áá»ááá_áá áá'.split('_'), 65881 weekdaysShort: 'á¢á¶_á _á¢_á_ááá_áá»_á'.split('_'), 65882 weekdaysMin: 'á¢á¶_á _á¢_á_ááá_áá»_á'.split('_'), 65883 weekdaysParseExact: true, 65884 longDateFormat: { 65885 LT: 'HH:mm', 65886 LTS: 'HH:mm:ss', 65887 L: 'DD/MM/YYYY', 65888 LL: 'D MMMM YYYY', 65889 LLL: 'D MMMM YYYY HH:mm', 65890 LLLL: 'dddd, D MMMM YYYY HH:mm', 65891 }, 65892 meridiemParse: /áááá¹á|áááá¶á /, 65893 isPM: function (input) { 65894 return input === 'áááá¶á '; 65895 }, 65896 meridiem: function (hour, minute, isLower) { 65897 if (hour < 12) { 65898 return 'áááá¹á'; 65899 } else { 65900 return 'áááá¶á '; 65901 } 65902 }, 65903 calendar: { 65904 sameDay: '[ááááááá áááá] LT', 65905 nextDay: '[ááá¢áá áááá] LT', 65906 nextWeek: 'dddd [áááá] LT', 65907 lastDay: '[áááá·ááá·á áááá] LT', 65908 lastWeek: 'dddd [ááááá¶á ááá»á] [áááá] LT', 65909 sameElse: 'L', 65910 }, 65911 relativeTime: { 65912 future: '%sááá', 65913 past: '%sáá»á', 65914 s: 'ááá»áááá¶ááá·áá¶áá¸', 65915 ss: '%d áá·áá¶áá¸', 65916 m: 'áá½ááá¶áá¸', 65917 mm: '%d áá¶áá¸', 65918 h: 'áá½ááááá', 65919 hh: '%d áááá', 65920 d: 'áá½ááááá', 65921 dd: '%d áááá', 65922 M: 'áá½ááá', 65923 MM: '%d áá', 65924 y: 'áá½ááááá¶á', 65925 yy: '%d áááá¶á', 65926 }, 65927 dayOfMonthOrdinalParse: /áá¸\d{1,2}/, 65928 ordinal: 'áá¸%d', 65929 preparse: function (string) { 65930 return string.replace(/[á¡á¢á£á¤á¥á¦á§á¨á©á ]/g, function (match) { 65931 return numberMap[match]; 65932 }); 65933 }, 65934 postformat: function (string) { 65935 return string.replace(/\d/g, function (match) { 65936 return symbolMap[match]; 65937 }); 65938 }, 65939 week: { 65940 dow: 1, // Monday is the first day of the week. 65941 doy: 4, // The week that contains Jan 4th is the first week of the year. 65942 }, 65943 }); 65944 65945 return km; 65946 65947}))); 65948 65949 65950/***/ }), 65951
vendor: 5,209 bytes, lines 65952-66094
65952/***/ "./node_modules/moment/locale/kn.js": 65953/*!******************************************!*\ 65954 !*** ./node_modules/moment/locale/kn.js ***! 65955 \******************************************/ 65956/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 65957 65958//! moment.js locale configuration 65959//! locale : Kannada [kn] 65960//! author : Rajeev Naik : https://github.com/rajeevnaikte 65961 65962;(function (global, factory) { 65963 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 65964 0 65965}(this, (function (moment) { 'use strict'; 65966 65967 //! moment.js locale configuration 65968 65969 var symbolMap = { 65970 1: 'à³§', 65971 2: '೨', 65972 3: '೩', 65973 4: '೪', 65974 5: '೫', 65975 6: '೬', 65976 7: 'à³', 65977 8: 'à³®', 65978 9: '೯', 65979 0: '೦', 65980 }, 65981 numberMap = { 65982 'à³§': '1', 65983 '೨': '2', 65984 '೩': '3', 65985 '೪': '4', 65986 '೫': '5', 65987 '೬': '6', 65988 'à³': '7', 65989 'à³®': '8', 65990 '೯': '9', 65991 '೦': '0', 65992 }; 65993 65994 var kn = moment.defineLocale('kn', { 65995 months: 'à²à²¨à²µà²°à²¿_ಫà³à²¬à³à²°à²µà²°à²¿_ಮಾರà³à²à³_à²à²ªà³à²°à²¿à²²à³_ಮà³à³_à²à³à²¨à³_à²à³à²²à³à³_à²à²à²¸à³à²à³_ಸà³à²ªà³à²à³à²à²¬à²°à³_ಠà²à³à²à³à³à³à²¬à²°à³_ನವà³à²à²¬à²°à³_ಡಿಸà³à²à²¬à²°à³'.split( 65996 '_' 65997 ), 65998 monthsShort: 65999 'à²à²¨_ಫà³à²¬à³à²°_ಮಾರà³à²à³_à²à²ªà³à²°à²¿à²²à³_ಮà³à³_à²à³à²¨à³_à²à³à²²à³à³_à²à²à²¸à³à²à³_ಸà³à²ªà³à²à³à²_ಠà²à³à²à³à³à³_ನವà³à²_ಡಿಸà³à²'.split( 66000 '_' 66001 ), 66002 monthsParseExact: true, 66003 weekdays: 'à²à²¾à²¨à³à²µà²¾à²°_ಸà³à³à³à²®à²µà²¾à²°_ಮà²à²à²³à²µà²¾à²°_ಬà³à²§à²µà²¾à²°_à²à³à²°à³à²µà²¾à²°_ಶà³à²à³à²°à²µà²¾à²°_ಶನಿವಾರ'.split( 66004 '_' 66005 ), 66006 weekdaysShort: 'à²à²¾à²¨à³_ಸà³à³à³à²®_ಮà²à²à²³_ಬà³à²§_à²à³à²°à³_ಶà³à²à³à²°_ಶನಿ'.split('_'), 66007 weekdaysMin: 'à²à²¾_ಸà³à³à³_ಮà²_ಬà³_à²à³_ಶà³_ಶ'.split('_'), 66008 longDateFormat: { 66009 LT: 'A h:mm', 66010 LTS: 'A h:mm:ss', 66011 L: 'DD/MM/YYYY', 66012 LL: 'D MMMM YYYY', 66013 LLL: 'D MMMM YYYY, A h:mm', 66014 LLLL: 'dddd, D MMMM YYYY, A h:mm', 66015 }, 66016 calendar: { 66017 sameDay: '[à²à²à²¦à³] LT', 66018 nextDay: '[ನಾಳà³] LT', 66019 nextWeek: 'dddd, LT', 66020 lastDay: '[ನಿನà³à²¨à³] LT', 66021 lastWeek: '[à²à³à³à²¨à³à²¯] dddd, LT', 66022 sameElse: 'L', 66023 }, 66024 relativeTime: { 66025 future: '%s ನà²à²¤à²°', 66026 past: '%s ಹಿà²à²¦à³', 66027 s: 'à²à³à²²à²µà³ à²à³à²·à²£à²à²³à³', 66028 ss: '%d ಸà³à²à³à²à²¡à³à²à²³à³', 66029 m: 'à²à²à²¦à³ ನಿಮಿಷ', 66030 mm: '%d ನಿಮಿಷ', 66031 h: 'à²à²à²¦à³ à²à²à²à³', 66032 hh: '%d à²à²à²à³', 66033 d: 'à²à²à²¦à³ ದಿನ', 66034 dd: '%d ದಿನ', 66035 M: 'à²à²à²¦à³ ತಿà²à²à²³à³', 66036 MM: '%d ತಿà²à²à²³à³', 66037 y: 'à²à²à²¦à³ ವರà³à²·', 66038 yy: '%d ವರà³à²·', 66039 }, 66040 preparse: function (string) { 66041 return string.replace(/[೧೨೩೪೫೬à³à³®à³¯à³¦]/g, function (match) { 66042 return numberMap[match]; 66043 }); 66044 }, 66045 postformat: function (string) { 66046 return string.replace(/\d/g, function (match) { 66047 return symbolMap[match]; 66048 }); 66049 }, 66050 meridiemParse: /ರಾತà³à²°à²¿|ಬà³à²³à²¿à²à³à²à³|ಮಧà³à²¯à²¾à²¹à³à²¨|ಸà²à²à³/, 66051 meridiemHour: function (hour, meridiem) { 66052 if (hour === 12) { 66053 hour = 0; 66054 } 66055 if (meridiem === 'ರಾತà³à²°à²¿') { 66056 return hour < 4 ? hour : hour + 12; 66057 } else if (meridiem === 'ಬà³à²³à²¿à²à³à²à³') { 66058 return hour; 66059 } else if (meridiem === 'ಮಧà³à²¯à²¾à²¹à³à²¨') { 66060 return hour >= 10 ? hour : hour + 12; 66061 } else if (meridiem === 'ಸà²à²à³') { 66062 return hour + 12; 66063 } 66064 }, 66065 meridiem: function (hour, minute, isLower) { 66066 if (hour < 4) { 66067 return 'ರಾತà³à²°à²¿'; 66068 } else if (hour < 10) { 66069 return 'ಬà³à²³à²¿à²à³à²à³'; 66070 } else if (hour < 17) { 66071 return 'ಮಧà³à²¯à²¾à²¹à³à²¨'; 66072 } else if (hour < 20) { 66073 return 'ಸà²à²à³'; 66074 } else { 66075 return 'ರಾತà³à²°à²¿'; 66076 } 66077 }, 66078 dayOfMonthOrdinalParse: /\d{1,2}(ನà³à³)/, 66079 ordinal: function (number) { 66080 return number + 'ನà³à³'; 66081 }, 66082 week: { 66083 dow: 0, // Sunday is the first day of the week. 66084 doy: 6, // The week that contains Jan 6th is the first week of the year. 66085 }, 66086 }); 66087 66088 return kn; 66089 66090}))); 66091 66092 66093/***/ }), 66094
vendor: 2,984 bytes, lines 66095-66188
66095/***/ "./node_modules/moment/locale/ko.js": 66096/*!******************************************!*\ 66097 !*** ./node_modules/moment/locale/ko.js ***! 66098 \******************************************/ 66099/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 66100 66101//! moment.js locale configuration 66102//! locale : Korean [ko] 66103//! author : Kyungwook, Park : https://github.com/kyungw00k 66104//! author : Jeeeyul Lee <[email protected]> 66105 66106;(function (global, factory) { 66107 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 66108 0 66109}(this, (function (moment) { 'use strict'; 66110 66111 //! moment.js locale configuration 66112 66113 var ko = moment.defineLocale('ko', { 66114 months: '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split('_'), 66115 monthsShort: '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split( 66116 '_' 66117 ), 66118 weekdays: 'ì¼ìì¼_ììì¼_íìì¼_ììì¼_목ìì¼_ê¸ìì¼_í ìì¼'.split('_'), 66119 weekdaysShort: 'ì¼_ì_í_ì_목_ê¸_í '.split('_'), 66120 weekdaysMin: 'ì¼_ì_í_ì_목_ê¸_í '.split('_'), 66121 longDateFormat: { 66122 LT: 'A h:mm', 66123 LTS: 'A h:mm:ss', 66124 L: 'YYYY.MM.DD.', 66125 LL: 'YYYYë MMMM Dì¼', 66126 LLL: 'YYYYë MMMM Dì¼ A h:mm', 66127 LLLL: 'YYYYë MMMM Dì¼ dddd A h:mm', 66128 l: 'YYYY.MM.DD.', 66129 ll: 'YYYYë MMMM Dì¼', 66130 lll: 'YYYYë MMMM Dì¼ A h:mm', 66131 llll: 'YYYYë MMMM Dì¼ dddd A h:mm', 66132 }, 66133 calendar: { 66134 sameDay: 'ì¤ë LT', 66135 nextDay: 'ë´ì¼ LT', 66136 nextWeek: 'dddd LT', 66137 lastDay: 'ì´ì LT', 66138 lastWeek: 'ì§ë주 dddd LT', 66139 sameElse: 'L', 66140 }, 66141 relativeTime: { 66142 future: '%s í', 66143 past: '%s ì ', 66144 s: 'ëª ì´', 66145 ss: '%dì´', 66146 m: '1ë¶', 66147 mm: '%dë¶', 66148 h: 'í ìê°', 66149 hh: '%dìê°', 66150 d: 'í루', 66151 dd: '%dì¼', 66152 M: 'í ë¬', 66153 MM: '%dë¬', 66154 y: 'ì¼ ë ', 66155 yy: '%dë ', 66156 }, 66157 dayOfMonthOrdinalParse: /\d{1,2}(ì¼|ì|주)/, 66158 ordinal: function (number, period) { 66159 switch (period) { 66160 case 'd': 66161 case 'D': 66162 case 'DDD': 66163 return number + 'ì¼'; 66164 case 'M': 66165 return number + 'ì'; 66166 case 'w': 66167 case 'W': 66168 return number + '주'; 66169 default: 66170 return number; 66171 } 66172 }, 66173 meridiemParse: /ì¤ì |ì¤í/, 66174 isPM: function (token) { 66175 return token === 'ì¤í'; 66176 }, 66177 meridiem: function (hour, minute, isUpper) { 66178 return hour < 12 ? 'ì¤ì ' : 'ì¤í'; 66179 }, 66180 }); 66181 66182 return ko; 66183 66184}))); 66185 66186 66187/***/ }), 66188
vendor: 5,051 bytes, lines 66189-66321
66189/***/ "./node_modules/moment/locale/ku-kmr.js": 66190/*!**********************************************!*\ 66191 !*** ./node_modules/moment/locale/ku-kmr.js ***! 66192 \**********************************************/ 66193/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 66194 66195//! moment.js locale configuration 66196//! locale : Northern Kurdish [ku-kmr] 66197//! authors : Mazlum Ãzdogan : https://github.com/mergehez 66198 66199;(function (global, factory) { 66200 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 66201 0 66202}(this, (function (moment) { 'use strict'; 66203 66204 //! moment.js locale configuration 66205 66206 function processRelativeTime(num, withoutSuffix, key, isFuture) { 66207 var format = { 66208 s: ['çend sanîye', 'çend sanîyeyan'], 66209 ss: [num + ' sanîye', num + ' sanîyeyan'], 66210 m: ['deqîqeyek', 'deqîqeyekê'], 66211 mm: [num + ' deqîqe', num + ' deqîqeyan'], 66212 h: ['saetek', 'saetekê'], 66213 hh: [num + ' saet', num + ' saetan'], 66214 d: ['rojek', 'rojekê'], 66215 dd: [num + ' roj', num + ' rojan'], 66216 w: ['hefteyek', 'hefteyekê'], 66217 ww: [num + ' hefte', num + ' hefteyan'], 66218 M: ['mehek', 'mehekê'], 66219 MM: [num + ' meh', num + ' mehan'], 66220 y: ['salek', 'salekê'], 66221 yy: [num + ' sal', num + ' salan'], 66222 }; 66223 return withoutSuffix ? format[key][0] : format[key][1]; 66224 } 66225 // function obliqueNumSuffix(num) { 66226 // if(num.includes(':')) 66227 // num = parseInt(num.split(':')[0]); 66228 // else 66229 // num = parseInt(num); 66230 // return num == 0 || num % 10 == 1 ? 'ê' 66231 // : (num > 10 && num % 10 == 0 ? 'î' : 'an'); 66232 // } 66233 function ezafeNumSuffix(num) { 66234 num = '' + num; 66235 var l = num.substring(num.length - 1), 66236 ll = num.length > 1 ? num.substring(num.length - 2) : ''; 66237 if ( 66238 !(ll == 12 || ll == 13) && 66239 (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80') 66240 ) 66241 return 'yê'; 66242 return 'ê'; 66243 } 66244 66245 var kuKmr = moment.defineLocale('ku-kmr', { 66246 // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation) 66247 // 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' 66248 // But the names below are more well known and handy 66249 months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Ãlon_Cotmeh_Mijdar_Berfanbar'.split( 66250 '_' 66251 ), 66252 monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Ãlo_Cot_Mij_Ber'.split('_'), 66253 monthsParseExact: true, 66254 weekdays: 'YekÅem_DuÅem_SêÅem_ÃarÅem_PêncÅem_Ãn_Åemî'.split('_'), 66255 weekdaysShort: 'Yek_Du_Sê_Ãar_Pên_Ãn_Åem'.split('_'), 66256 weekdaysMin: 'Ye_Du_Sê_Ãa_Pê_Ãn_Åe'.split('_'), 66257 meridiem: function (hours, minutes, isLower) { 66258 if (hours < 12) { 66259 return isLower ? 'bn' : 'BN'; 66260 } else { 66261 return isLower ? 'pn' : 'PN'; 66262 } 66263 }, 66264 meridiemParse: /bn|BN|pn|PN/, 66265 longDateFormat: { 66266 LT: 'HH:mm', 66267 LTS: 'HH:mm:ss', 66268 L: 'DD.MM.YYYY', 66269 LL: 'Do MMMM[a] YYYY[an]', 66270 LLL: 'Do MMMM[a] YYYY[an] HH:mm', 66271 LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm', 66272 ll: 'Do MMM[.] YYYY[an]', 66273 lll: 'Do MMM[.] YYYY[an] HH:mm', 66274 llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm', 66275 }, 66276 calendar: { 66277 sameDay: '[Ãro di saet] LT [de]', 66278 nextDay: '[Sibê di saet] LT [de]', 66279 nextWeek: 'dddd [di saet] LT [de]', 66280 lastDay: '[Duh di saet] LT [de]', 66281 lastWeek: 'dddd[a borî di saet] LT [de]', 66282 sameElse: 'L', 66283 }, 66284 relativeTime: { 66285 future: 'di %s de', 66286 past: 'berî %s', 66287 s: processRelativeTime, 66288 ss: processRelativeTime, 66289 m: processRelativeTime, 66290 mm: processRelativeTime, 66291 h: processRelativeTime, 66292 hh: processRelativeTime, 66293 d: processRelativeTime, 66294 dd: processRelativeTime, 66295 w: processRelativeTime, 66296 ww: processRelativeTime, 66297 M: processRelativeTime, 66298 MM: processRelativeTime, 66299 y: processRelativeTime, 66300 yy: processRelativeTime, 66301 }, 66302 dayOfMonthOrdinalParse: /\d{1,2}(?:yê|ê|\.)/, 66303 ordinal: function (num, period) { 66304 var p = period.toLowerCase(); 66305 if (p.includes('w') || p.includes('m')) return num + '.'; 66306 66307 return num + ezafeNumSuffix(num); 66308 }, 66309 week: { 66310 dow: 1, // Monday is the first day of the week. 66311 doy: 4, // The week that contains Jan 4th is the first week of the year. 66312 }, 66313 }); 66314 66315 return kuKmr; 66316 66317}))); 66318 66319 66320/***/ }), 66321
vendor: 4,263 bytes, lines 66322-66458
66322/***/ "./node_modules/moment/locale/ku.js": 66323/*!******************************************!*\ 66324 !*** ./node_modules/moment/locale/ku.js ***! 66325 \******************************************/ 66326/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 66327 66328//! moment.js locale configuration 66329//! locale : Kurdish [ku] 66330//! author : Shahram Mebashar : https://github.com/ShahramMebashar 66331 66332;(function (global, factory) { 66333 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 66334 0 66335}(this, (function (moment) { 'use strict'; 66336 66337 //! moment.js locale configuration 66338 66339 var symbolMap = { 66340 1: 'Ù¡', 66341 2: 'Ù¢', 66342 3: 'Ù£', 66343 4: 'Ù¤', 66344 5: 'Ù¥', 66345 6: 'Ù¦', 66346 7: 'Ù§', 66347 8: 'Ù¨', 66348 9: 'Ù©', 66349 0: 'Ù ', 66350 }, 66351 numberMap = { 66352 'Ù¡': '1', 66353 'Ù¢': '2', 66354 'Ù£': '3', 66355 'Ù¤': '4', 66356 'Ù¥': '5', 66357 'Ù¦': '6', 66358 'Ù§': '7', 66359 'Ù¨': '8', 66360 'Ù©': '9', 66361 'Ù ': '0', 66362 }, 66363 months = [ 66364 'کاÙÙÙÛ Ø¯ÙÙÛÙ ', 66365 'Ø´ÙØ¨Ø§Øª', 66366 'ئازار', 66367 'ÙÛØ³Ø§Ù', 66368 'Ø¦Ø§ÛØ§Ø±', 66369 'ØÙزÛÛØ±Ø§Ù', 66370 'تÛÙ Ù ÙØ²', 66371 'ئاب', 66372 'ئÛÛÙÙÙÙ', 66373 'تشرÛÙÛ ÛÛÙÛÙ ', 66374 'تشرÛÙÛ Ø¯ÙÙÛÙ ', 66375 'ÙØ§ÙÙÙÛ ÛÛÚ©ÛÙ ', 66376 ]; 66377 66378 var ku = moment.defineLocale('ku', { 66379 months: months, 66380 monthsShort: months, 66381 weekdays: 66382 'ÛÙâÙØ´ÙâÙ Ù Ùâ_دÙÙØ´ÙâÙ Ù Ùâ_Ø³ÛØ´ÙâÙ Ù Ùâ_ÚÙØ§Ø±Ø´ÙâÙ Ù Ùâ_Ù¾ÛÙØ¬Ø´ÙâÙ Ù Ùâ_ÙÙâÛÙÛ_Ø´ÙâÙ Ù Ùâ'.split( 66383 '_' 66384 ), 66385 weekdaysShort: 66386 'ÛÙâÙØ´ÙâÙ _دÙÙØ´ÙâÙ _Ø³ÛØ´ÙâÙ _ÚÙØ§Ø±Ø´ÙâÙ _Ù¾ÛÙØ¬Ø´ÙâÙ _ÙÙâÛÙÛ_Ø´ÙâÙ Ù Ùâ'.split('_'), 66387 weekdaysMin: 'Û_د_س_Ú_Ù¾_Ù_Ø´'.split('_'), 66388 weekdaysParseExact: true, 66389 longDateFormat: { 66390 LT: 'HH:mm', 66391 LTS: 'HH:mm:ss', 66392 L: 'DD/MM/YYYY', 66393 LL: 'D MMMM YYYY', 66394 LLL: 'D MMMM YYYY HH:mm', 66395 LLLL: 'dddd, D MMMM YYYY HH:mm', 66396 }, 66397 meridiemParse: /ئÛÙØ§Ø±Ùâ|بÙâÛØ§ÙÛ/, 66398 isPM: function (input) { 66399 return /ئÛÙØ§Ø±Ùâ/.test(input); 66400 }, 66401 meridiem: function (hour, minute, isLower) { 66402 if (hour < 12) { 66403 return 'بÙâÛØ§ÙÛ'; 66404 } else { 66405 return 'ئÛÙØ§Ø±Ùâ'; 66406 } 66407 }, 66408 calendar: { 66409 sameDay: '[ئÙâÙ Ø±Û ÙØ§ØªÚÙ ÛØ±] LT', 66410 nextDay: '[بÙâÛØ§ÙÛ ÙØ§ØªÚÙ ÛØ±] LT', 66411 nextWeek: 'dddd [ÙØ§ØªÚÙ ÛØ±] LT', 66412 lastDay: '[دÙÛÙÛ ÙØ§ØªÚÙ ÛØ±] LT', 66413 lastWeek: 'dddd [ÙØ§ØªÚÙ ÛØ±] LT', 66414 sameElse: 'L', 66415 }, 66416 relativeTime: { 66417 future: 'ÙÙâ %s', 66418 past: '%s', 66419 s: 'ÚÙâÙØ¯ ÚØ±ÙÙâÛÙâÙ', 66420 ss: 'ÚØ±ÙÙâ %d', 66421 m: 'ÛÙâÙ Ø®ÙÙÙâÙ', 66422 mm: '%d Ø®ÙÙÙâÙ', 66423 h: 'ÛÙâÙ ÙØ§ØªÚÙ ÛØ±', 66424 hh: '%d ÙØ§ØªÚÙ ÛØ±', 66425 d: 'ÛÙâÙ ÚÛÚ', 66426 dd: '%d ÚÛÚ', 66427 M: 'ÛÙâ٠٠اÙÚ¯', 66428 MM: '%d ٠اÙÚ¯', 66429 y: 'ÛÙâ٠ساڵ', 66430 yy: '%d ساڵ', 66431 }, 66432 preparse: function (string) { 66433 return string 66434 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 66435 return numberMap[match]; 66436 }) 66437 .replace(/Ø/g, ','); 66438 }, 66439 postformat: function (string) { 66440 return string 66441 .replace(/\d/g, function (match) { 66442 return symbolMap[match]; 66443 }) 66444 .replace(/,/g, 'Ø'); 66445 }, 66446 week: { 66447 dow: 6, // Saturday is the first day of the week. 66448 doy: 12, // The week that contains Jan 12th is the first week of the year. 66449 }, 66450 }); 66451 66452 return ku; 66453 66454}))); 66455 66456 66457/***/ }), 66458
vendor: 3,318 bytes, lines 66459-66561
66459/***/ "./node_modules/moment/locale/ky.js": 66460/*!******************************************!*\ 66461 !*** ./node_modules/moment/locale/ky.js ***! 66462 \******************************************/ 66463/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 66464 66465//! moment.js locale configuration 66466//! locale : Kyrgyz [ky] 66467//! author : Chyngyz Arystan uulu : https://github.com/chyngyz 66468 66469;(function (global, factory) { 66470 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 66471 0 66472}(this, (function (moment) { 'use strict'; 66473 66474 //! moment.js locale configuration 66475 66476 var suffixes = { 66477 0: '-ÑÒ¯', 66478 1: '-Ñи', 66479 2: '-Ñи', 66480 3: '-ÑÒ¯', 66481 4: '-ÑÒ¯', 66482 5: '-Ñи', 66483 6: '-ÑÑ', 66484 7: '-Ñи', 66485 8: '-Ñи', 66486 9: '-ÑÑ', 66487 10: '-ÑÑ', 66488 20: '-ÑÑ', 66489 30: '-ÑÑ', 66490 40: '-ÑÑ', 66491 50: '-ÑÒ¯', 66492 60: '-ÑÑ', 66493 70: '-Ñи', 66494 80: '-Ñи', 66495 90: '-ÑÑ', 66496 100: '-ÑÒ¯', 66497 }; 66498 66499 var ky = moment.defineLocale('ky', { 66500 months: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑ_апÑелÑ_май_иÑнÑ_иÑлÑ_авгÑÑÑ_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split( 66501 '_' 66502 ), 66503 monthsShort: 'Ñнв_Ñев_маÑÑ_апÑ_май_иÑнÑ_иÑлÑ_авг_Ñен_окÑ_ноÑ_дек'.split( 66504 '_' 66505 ), 66506 weekdays: 'ÐекÑемби_ÐүйÑөмбү_ШейÑемби_ШаÑÑемби_ÐейÑемби_ÐÑма_ÐÑемби'.split( 66507 '_' 66508 ), 66509 weekdaysShort: 'Ðек_Ðүй_Шей_ШаÑ_Ðей_ÐÑм_ÐÑе'.split('_'), 66510 weekdaysMin: 'Ðк_Ðй_Шй_ШÑ_Ðй_Ðм_ÐÑ'.split('_'), 66511 longDateFormat: { 66512 LT: 'HH:mm', 66513 LTS: 'HH:mm:ss', 66514 L: 'DD.MM.YYYY', 66515 LL: 'D MMMM YYYY', 66516 LLL: 'D MMMM YYYY HH:mm', 66517 LLLL: 'dddd, D MMMM YYYY HH:mm', 66518 }, 66519 calendar: { 66520 sameDay: '[Ðүгүн ÑааÑ] LT', 66521 nextDay: '[ÐÑÑең ÑааÑ] LT', 66522 nextWeek: 'dddd [ÑааÑ] LT', 66523 lastDay: '[ÐеÑÑÑ ÑааÑ] LT', 66524 lastWeek: '[Ó¨Ñкөн апÑанÑн] dddd [күнү] [ÑааÑ] LT', 66525 sameElse: 'L', 66526 }, 66527 relativeTime: { 66528 future: '%s иÑинде', 66529 past: '%s мÑÑÑн', 66530 s: 'биÑнеÑе ÑекÑнд', 66531 ss: '%d ÑекÑнд', 66532 m: 'Ð±Ð¸Ñ Ð¼Ò¯Ð½Ó©Ñ', 66533 mm: '%d мүнөÑ', 66534 h: 'Ð±Ð¸Ñ ÑааÑ', 66535 hh: '%d ÑааÑ', 66536 d: 'Ð±Ð¸Ñ ÐºÒ¯Ð½', 66537 dd: '%d күн', 66538 M: 'Ð±Ð¸Ñ Ð°Ð¹', 66539 MM: '%d ай', 66540 y: 'Ð±Ð¸Ñ Ð¶Ñл', 66541 yy: '%d жÑл', 66542 }, 66543 dayOfMonthOrdinalParse: /\d{1,2}-(Ñи|ÑÑ|ÑÒ¯|ÑÑ)/, 66544 ordinal: function (number) { 66545 var a = number % 10, 66546 b = number >= 100 ? 100 : null; 66547 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 66548 }, 66549 week: { 66550 dow: 1, // Monday is the first day of the week. 66551 doy: 7, // The week that contains Jan 7th is the first week of the year. 66552 }, 66553 }); 66554 66555 return ky; 66556 66557}))); 66558 66559 66560/***/ }), 66561
vendor: 5,274 bytes, lines 66562-66717
66562/***/ "./node_modules/moment/locale/lb.js": 66563/*!******************************************!*\ 66564 !*** ./node_modules/moment/locale/lb.js ***! 66565 \******************************************/ 66566/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 66567 66568//! moment.js locale configuration 66569//! locale : Luxembourgish [lb] 66570//! author : mweimerskirch : https://github.com/mweimerskirch 66571//! author : David Raison : https://github.com/kwisatz 66572 66573;(function (global, factory) { 66574 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 66575 0 66576}(this, (function (moment) { 'use strict'; 66577 66578 //! moment.js locale configuration 66579 66580 function processRelativeTime(number, withoutSuffix, key, isFuture) { 66581 var format = { 66582 m: ['eng Minutt', 'enger Minutt'], 66583 h: ['eng Stonn', 'enger Stonn'], 66584 d: ['een Dag', 'engem Dag'], 66585 M: ['ee Mount', 'engem Mount'], 66586 y: ['ee Joer', 'engem Joer'], 66587 }; 66588 return withoutSuffix ? format[key][0] : format[key][1]; 66589 } 66590 function processFutureTime(string) { 66591 var number = string.substr(0, string.indexOf(' ')); 66592 if (eifelerRegelAppliesToNumber(number)) { 66593 return 'a ' + string; 66594 } 66595 return 'an ' + string; 66596 } 66597 function processPastTime(string) { 66598 var number = string.substr(0, string.indexOf(' ')); 66599 if (eifelerRegelAppliesToNumber(number)) { 66600 return 'viru ' + string; 66601 } 66602 return 'virun ' + string; 66603 } 66604 /** 66605 * Returns true if the word before the given number loses the '-n' ending. 66606 * e.g. 'an 10 Deeg' but 'a 5 Deeg' 66607 * 66608 * @param number {integer} 66609 * @returns {boolean} 66610 */ 66611 function eifelerRegelAppliesToNumber(number) { 66612 number = parseInt(number, 10); 66613 if (isNaN(number)) { 66614 return false; 66615 } 66616 if (number < 0) { 66617 // Negative Number --> always true 66618 return true; 66619 } else if (number < 10) { 66620 // Only 1 digit 66621 if (4 <= number && number <= 7) { 66622 return true; 66623 } 66624 return false; 66625 } else if (number < 100) { 66626 // 2 digits 66627 var lastDigit = number % 10, 66628 firstDigit = number / 10; 66629 if (lastDigit === 0) { 66630 return eifelerRegelAppliesToNumber(firstDigit); 66631 } 66632 return eifelerRegelAppliesToNumber(lastDigit); 66633 } else if (number < 10000) { 66634 // 3 or 4 digits --> recursively check first digit 66635 while (number >= 10) { 66636 number = number / 10; 66637 } 66638 return eifelerRegelAppliesToNumber(number); 66639 } else { 66640 // Anything larger than 4 digits: recursively check first n-3 digits 66641 number = number / 1000; 66642 return eifelerRegelAppliesToNumber(number); 66643 } 66644 } 66645 66646 var lb = moment.defineLocale('lb', { 66647 months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( 66648 '_' 66649 ), 66650 monthsShort: 66651 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( 66652 '_' 66653 ), 66654 monthsParseExact: true, 66655 weekdays: 66656 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( 66657 '_' 66658 ), 66659 weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), 66660 weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), 66661 weekdaysParseExact: true, 66662 longDateFormat: { 66663 LT: 'H:mm [Auer]', 66664 LTS: 'H:mm:ss [Auer]', 66665 L: 'DD.MM.YYYY', 66666 LL: 'D. MMMM YYYY', 66667 LLL: 'D. MMMM YYYY H:mm [Auer]', 66668 LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', 66669 }, 66670 calendar: { 66671 sameDay: '[Haut um] LT', 66672 sameElse: 'L', 66673 nextDay: '[Muer um] LT', 66674 nextWeek: 'dddd [um] LT', 66675 lastDay: '[Gëschter um] LT', 66676 lastWeek: function () { 66677 // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule 66678 switch (this.day()) { 66679 case 2: 66680 case 4: 66681 return '[Leschten] dddd [um] LT'; 66682 default: 66683 return '[Leschte] dddd [um] LT'; 66684 } 66685 }, 66686 }, 66687 relativeTime: { 66688 future: processFutureTime, 66689 past: processPastTime, 66690 s: 'e puer Sekonnen', 66691 ss: '%d Sekonnen', 66692 m: processRelativeTime, 66693 mm: '%d Minutten', 66694 h: processRelativeTime, 66695 hh: '%d Stonnen', 66696 d: processRelativeTime, 66697 dd: '%d Deeg', 66698 M: processRelativeTime, 66699 MM: '%d Méint', 66700 y: processRelativeTime, 66701 yy: '%d Joer', 66702 }, 66703 dayOfMonthOrdinalParse: /\d{1,2}\./, 66704 ordinal: '%d.', 66705 week: { 66706 dow: 1, // Monday is the first day of the week. 66707 doy: 4, // The week that contains Jan 4th is the first week of the year. 66708 }, 66709 }); 66710 66711 return lb; 66712 66713}))); 66714 66715 66716/***/ }), 66717
vendor: 3,314 bytes, lines 66718-66802
66718/***/ "./node_modules/moment/locale/lo.js": 66719/*!******************************************!*\ 66720 !*** ./node_modules/moment/locale/lo.js ***! 66721 \******************************************/ 66722/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 66723 66724//! moment.js locale configuration 66725//! locale : Lao [lo] 66726//! author : Ryan Hart : https://github.com/ryanhart2 66727 66728;(function (global, factory) { 66729 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 66730 0 66731}(this, (function (moment) { 'use strict'; 66732 66733 //! moment.js locale configuration 66734 66735 var lo = moment.defineLocale('lo', { 66736 months: 'ມັàºàºàºàº_àºàº¸àº¡àºàº²_ມີàºàº²_à»àº¡àºªàº²_àºàº¶àºàºªàº°àºàº²_ມິàºàº¸àºàº²_àºà»àº¥àº°àºàº»àº_ສິàºàº«àº²_àºàº±àºàºàº²_àºàº¸àº¥àº²_àºàº°àºàº´àº_àºàº±àºàº§àº²'.split( 66737 '_' 66738 ), 66739 monthsShort: 66740 'ມັàºàºàºàº_àºàº¸àº¡àºàº²_ມີàºàº²_à»àº¡àºªàº²_àºàº¶àºàºªàº°àºàº²_ມິàºàº¸àºàº²_àºà»àº¥àº°àºàº»àº_ສິàºàº«àº²_àºàº±àºàºàº²_àºàº¸àº¥àº²_àºàº°àºàº´àº_àºàº±àºàº§àº²'.split( 66741 '_' 66742 ), 66743 weekdays: 'àºàº²àºàº´àº_àºàº±àº_àºàº±àºàºàº²àº_àºàº¸àº_àºàº°àº«àº±àº_ສຸàº_à»àºªàº»àº²'.split('_'), 66744 weekdaysShort: 'àºàº´àº_àºàº±àº_àºàº±àºàºàº²àº_àºàº¸àº_àºàº°àº«àº±àº_ສຸàº_à»àºªàº»àº²'.split('_'), 66745 weekdaysMin: 'àº_àº_àºàº_àº_àºàº«_ສàº_ສ'.split('_'), 66746 weekdaysParseExact: true, 66747 longDateFormat: { 66748 LT: 'HH:mm', 66749 LTS: 'HH:mm:ss', 66750 L: 'DD/MM/YYYY', 66751 LL: 'D MMMM YYYY', 66752 LLL: 'D MMMM YYYY HH:mm', 66753 LLLL: 'ວັàºdddd D MMMM YYYY HH:mm', 66754 }, 66755 meridiemParse: /àºàºàºà»àºàº»à»àº²|àºàºàºà»àº¥àº/, 66756 isPM: function (input) { 66757 return input === 'àºàºàºà»àº¥àº'; 66758 }, 66759 meridiem: function (hour, minute, isLower) { 66760 if (hour < 12) { 66761 return 'àºàºàºà»àºàº»à»àº²'; 66762 } else { 66763 return 'àºàºàºà»àº¥àº'; 66764 } 66765 }, 66766 calendar: { 66767 sameDay: '[ມືà»àºàºµà»à»àº§àº¥àº²] LT', 66768 nextDay: '[ມືà»àºàº·à»àºà»àº§àº¥àº²] LT', 66769 nextWeek: '[ວັàº]dddd[à»à»àº²à»àº§àº¥àº²] LT', 66770 lastDay: '[ມືà»àº§àº²àºàºàºµà»à»àº§àº¥àº²] LT', 66771 lastWeek: '[ວັàº]dddd[à»àº¥à»àº§àºàºµà»à»àº§àº¥àº²] LT', 66772 sameElse: 'L', 66773 }, 66774 relativeTime: { 66775 future: 'àºàºµàº %s', 66776 past: '%sàºà»àº²àºàº¡àº²', 66777 s: 'àºà»à»à»àºàº»à»àº²à»àºàº§àº´àºàº²àºàºµ', 66778 ss: '%d ວິàºàº²àºàºµ', 66779 m: '1 àºàº²àºàºµ', 66780 mm: '%d àºàº²àºàºµ', 66781 h: '1 àºàº»à»àº§à»àº¡àº', 66782 hh: '%d àºàº»à»àº§à»àº¡àº', 66783 d: '1 ມືà»', 66784 dd: '%d ມືà»', 66785 M: '1 à»àºàº·àºàº', 66786 MM: '%d à»àºàº·àºàº', 66787 y: '1 àºàºµ', 66788 yy: '%d àºàºµ', 66789 }, 66790 dayOfMonthOrdinalParse: /(àºàºµà»)\d{1,2}/, 66791 ordinal: function (number) { 66792 return 'àºàºµà»' + number; 66793 }, 66794 }); 66795 66796 return lo; 66797 66798}))); 66799 66800 66801/***/ }), 66802
vendor: 4,974 bytes, lines 66803-66946
66803/***/ "./node_modules/moment/locale/lt.js": 66804/*!******************************************!*\ 66805 !*** ./node_modules/moment/locale/lt.js ***! 66806 \******************************************/ 66807/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 66808 66809//! moment.js locale configuration 66810//! locale : Lithuanian [lt] 66811//! author : Mindaugas MozÅ«ras : https://github.com/mmozuras 66812 66813;(function (global, factory) { 66814 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 66815 0 66816}(this, (function (moment) { 'use strict'; 66817 66818 //! moment.js locale configuration 66819 66820 var units = { 66821 ss: 'sekundÄ_sekundžių_sekundes', 66822 m: 'minutÄ_minutÄs_minutÄ', 66823 mm: 'minutÄs_minuÄių_minutes', 66824 h: 'valanda_valandos_valandÄ ', 66825 hh: 'valandos_valandų_valandas', 66826 d: 'diena_dienos_dienÄ ', 66827 dd: 'dienos_dienų_dienas', 66828 M: 'mÄnuo_mÄnesio_mÄnesį', 66829 MM: 'mÄnesiai_mÄnesių_mÄnesius', 66830 y: 'metai_metų_metus', 66831 yy: 'metai_metų_metus', 66832 }; 66833 function translateSeconds(number, withoutSuffix, key, isFuture) { 66834 if (withoutSuffix) { 66835 return 'kelios sekundÄs'; 66836 } else { 66837 return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; 66838 } 66839 } 66840 function translateSingular(number, withoutSuffix, key, isFuture) { 66841 return withoutSuffix 66842 ? forms(key)[0] 66843 : isFuture 66844 ? forms(key)[1] 66845 : forms(key)[2]; 66846 } 66847 function special(number) { 66848 return number % 10 === 0 || (number > 10 && number < 20); 66849 } 66850 function forms(key) { 66851 return units[key].split('_'); 66852 } 66853 function translate(number, withoutSuffix, key, isFuture) { 66854 var result = number + ' '; 66855 if (number === 1) { 66856 return ( 66857 result + translateSingular(number, withoutSuffix, key[0], isFuture) 66858 ); 66859 } else if (withoutSuffix) { 66860 return result + (special(number) ? forms(key)[1] : forms(key)[0]); 66861 } else { 66862 if (isFuture) { 66863 return result + forms(key)[1]; 66864 } else { 66865 return result + (special(number) ? forms(key)[1] : forms(key)[2]); 66866 } 66867 } 66868 } 66869 var lt = moment.defineLocale('lt', { 66870 months: { 66871 format: 'sausio_vasario_kovo_balandžio_gegužÄs_birželio_liepos_rugpjÅ«Äio_rugsÄjo_spalio_lapkriÄio_gruodžio'.split( 66872 '_' 66873 ), 66874 standalone: 66875 'sausis_vasaris_kovas_balandis_gegužÄ_birželis_liepa_rugpjÅ«tis_rugsÄjis_spalis_lapkritis_gruodis'.split( 66876 '_' 66877 ), 66878 isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, 66879 }, 66880 monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), 66881 weekdays: { 66882 format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split( 66883 '_' 66884 ), 66885 standalone: 66886 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split( 66887 '_' 66888 ), 66889 isFormat: /dddd HH:mm/, 66890 }, 66891 weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'), 66892 weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'), 66893 weekdaysParseExact: true, 66894 longDateFormat: { 66895 LT: 'HH:mm', 66896 LTS: 'HH:mm:ss', 66897 L: 'YYYY-MM-DD', 66898 LL: 'YYYY [m.] MMMM D [d.]', 66899 LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', 66900 LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', 66901 l: 'YYYY-MM-DD', 66902 ll: 'YYYY [m.] MMMM D [d.]', 66903 lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', 66904 llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', 66905 }, 66906 calendar: { 66907 sameDay: '[Å iandien] LT', 66908 nextDay: '[Rytoj] LT', 66909 nextWeek: 'dddd LT', 66910 lastDay: '[Vakar] LT', 66911 lastWeek: '[PraÄjusį] dddd LT', 66912 sameElse: 'L', 66913 }, 66914 relativeTime: { 66915 future: 'po %s', 66916 past: 'prieÅ¡ %s', 66917 s: translateSeconds, 66918 ss: translate, 66919 m: translateSingular, 66920 mm: translate, 66921 h: translateSingular, 66922 hh: translate, 66923 d: translateSingular, 66924 dd: translate, 66925 M: translateSingular, 66926 MM: translate, 66927 y: translateSingular, 66928 yy: translate, 66929 }, 66930 dayOfMonthOrdinalParse: /\d{1,2}-oji/, 66931 ordinal: function (number) { 66932 return number + '-oji'; 66933 }, 66934 week: { 66935 dow: 1, // Monday is the first day of the week. 66936 doy: 4, // The week that contains Jan 4th is the first week of the year. 66937 }, 66938 }); 66939 66940 return lt; 66941 66942}))); 66943 66944 66945/***/ }), 66946
vendor: 4,282 bytes, lines 66947-67059
66947/***/ "./node_modules/moment/locale/lv.js": 66948/*!******************************************!*\ 66949 !*** ./node_modules/moment/locale/lv.js ***! 66950 \******************************************/ 66951/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 66952 66953//! moment.js locale configuration 66954//! locale : Latvian [lv] 66955//! author : Kristaps Karlsons : https://github.com/skakri 66956//! author : JÄnis Elmeris : https://github.com/JanisE 66957 66958;(function (global, factory) { 66959 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 66960 0 66961}(this, (function (moment) { 'use strict'; 66962 66963 //! moment.js locale configuration 66964 66965 var units = { 66966 ss: 'sekundes_sekundÄm_sekunde_sekundes'.split('_'), 66967 m: 'minÅ«tes_minÅ«tÄm_minÅ«te_minÅ«tes'.split('_'), 66968 mm: 'minÅ«tes_minÅ«tÄm_minÅ«te_minÅ«tes'.split('_'), 66969 h: 'stundas_stundÄm_stunda_stundas'.split('_'), 66970 hh: 'stundas_stundÄm_stunda_stundas'.split('_'), 66971 d: 'dienas_dienÄm_diena_dienas'.split('_'), 66972 dd: 'dienas_dienÄm_diena_dienas'.split('_'), 66973 M: 'mÄneÅ¡a_mÄneÅ¡iem_mÄnesis_mÄneÅ¡i'.split('_'), 66974 MM: 'mÄneÅ¡a_mÄneÅ¡iem_mÄnesis_mÄneÅ¡i'.split('_'), 66975 y: 'gada_gadiem_gads_gadi'.split('_'), 66976 yy: 'gada_gadiem_gads_gadi'.split('_'), 66977 }; 66978 /** 66979 * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. 66980 */ 66981 function format(forms, number, withoutSuffix) { 66982 if (withoutSuffix) { 66983 // E.g. "21 minÅ«te", "3 minÅ«tes". 66984 return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; 66985 } else { 66986 // E.g. "21 minÅ«tes" as in "pÄc 21 minÅ«tes". 66987 // E.g. "3 minÅ«tÄm" as in "pÄc 3 minÅ«tÄm". 66988 return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; 66989 } 66990 } 66991 function relativeTimeWithPlural(number, withoutSuffix, key) { 66992 return number + ' ' + format(units[key], number, withoutSuffix); 66993 } 66994 function relativeTimeWithSingular(number, withoutSuffix, key) { 66995 return format(units[key], number, withoutSuffix); 66996 } 66997 function relativeSeconds(number, withoutSuffix) { 66998 return withoutSuffix ? 'dažas sekundes' : 'dažÄm sekundÄm'; 66999 } 67000 67001 var lv = moment.defineLocale('lv', { 67002 months: 'janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split( 67003 '_' 67004 ), 67005 monthsShort: 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'), 67006 weekdays: 67007 'svÄtdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena'.split( 67008 '_' 67009 ), 67010 weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), 67011 weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), 67012 weekdaysParseExact: true, 67013 longDateFormat: { 67014 LT: 'HH:mm', 67015 LTS: 'HH:mm:ss', 67016 L: 'DD.MM.YYYY.', 67017 LL: 'YYYY. [gada] D. MMMM', 67018 LLL: 'YYYY. [gada] D. MMMM, HH:mm', 67019 LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', 67020 }, 67021 calendar: { 67022 sameDay: '[Å odien pulksten] LT', 67023 nextDay: '[RÄ«t pulksten] LT', 67024 nextWeek: 'dddd [pulksten] LT', 67025 lastDay: '[Vakar pulksten] LT', 67026 lastWeek: '[PagÄjuÅ¡Ä] dddd [pulksten] LT', 67027 sameElse: 'L', 67028 }, 67029 relativeTime: { 67030 future: 'pÄc %s', 67031 past: 'pirms %s', 67032 s: relativeSeconds, 67033 ss: relativeTimeWithPlural, 67034 m: relativeTimeWithSingular, 67035 mm: relativeTimeWithPlural, 67036 h: relativeTimeWithSingular, 67037 hh: relativeTimeWithPlural, 67038 d: relativeTimeWithSingular, 67039 dd: relativeTimeWithPlural, 67040 M: relativeTimeWithSingular, 67041 MM: relativeTimeWithPlural, 67042 y: relativeTimeWithSingular, 67043 yy: relativeTimeWithPlural, 67044 }, 67045 dayOfMonthOrdinalParse: /\d{1,2}\./, 67046 ordinal: '%d.', 67047 week: { 67048 dow: 1, // Monday is the first day of the week. 67049 doy: 4, // The week that contains Jan 4th is the first week of the year. 67050 }, 67051 }); 67052 67053 return lv; 67054 67055}))); 67056 67057 67058/***/ }), 67059
vendor: 4,590 bytes, lines 67060-67195
67060/***/ "./node_modules/moment/locale/me.js": 67061/*!******************************************!*\ 67062 !*** ./node_modules/moment/locale/me.js ***! 67063 \******************************************/ 67064/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 67065 67066//! moment.js locale configuration 67067//! locale : Montenegrin [me] 67068//! author : Miodrag NikaÄ <[email protected]> : https://github.com/miodragnikac 67069 67070;(function (global, factory) { 67071 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 67072 0 67073}(this, (function (moment) { 'use strict'; 67074 67075 //! moment.js locale configuration 67076 67077 var translator = { 67078 words: { 67079 //Different grammatical cases 67080 ss: ['sekund', 'sekunda', 'sekundi'], 67081 m: ['jedan minut', 'jednog minuta'], 67082 mm: ['minut', 'minuta', 'minuta'], 67083 h: ['jedan sat', 'jednog sata'], 67084 hh: ['sat', 'sata', 'sati'], 67085 dd: ['dan', 'dana', 'dana'], 67086 MM: ['mjesec', 'mjeseca', 'mjeseci'], 67087 yy: ['godina', 'godine', 'godina'], 67088 }, 67089 correctGrammaticalCase: function (number, wordKey) { 67090 return number === 1 67091 ? wordKey[0] 67092 : number >= 2 && number <= 4 67093 ? wordKey[1] 67094 : wordKey[2]; 67095 }, 67096 translate: function (number, withoutSuffix, key) { 67097 var wordKey = translator.words[key]; 67098 if (key.length === 1) { 67099 return withoutSuffix ? wordKey[0] : wordKey[1]; 67100 } else { 67101 return ( 67102 number + 67103 ' ' + 67104 translator.correctGrammaticalCase(number, wordKey) 67105 ); 67106 } 67107 }, 67108 }; 67109 67110 var me = moment.defineLocale('me', { 67111 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( 67112 '_' 67113 ), 67114 monthsShort: 67115 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), 67116 monthsParseExact: true, 67117 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split( 67118 '_' 67119 ), 67120 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 67121 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 67122 weekdaysParseExact: true, 67123 longDateFormat: { 67124 LT: 'H:mm', 67125 LTS: 'H:mm:ss', 67126 L: 'DD.MM.YYYY', 67127 LL: 'D. MMMM YYYY', 67128 LLL: 'D. MMMM YYYY H:mm', 67129 LLLL: 'dddd, D. MMMM YYYY H:mm', 67130 }, 67131 calendar: { 67132 sameDay: '[danas u] LT', 67133 nextDay: '[sjutra u] LT', 67134 67135 nextWeek: function () { 67136 switch (this.day()) { 67137 case 0: 67138 return '[u] [nedjelju] [u] LT'; 67139 case 3: 67140 return '[u] [srijedu] [u] LT'; 67141 case 6: 67142 return '[u] [subotu] [u] LT'; 67143 case 1: 67144 case 2: 67145 case 4: 67146 case 5: 67147 return '[u] dddd [u] LT'; 67148 } 67149 }, 67150 lastDay: '[juÄe u] LT', 67151 lastWeek: function () { 67152 var lastWeekDays = [ 67153 '[proÅ¡le] [nedjelje] [u] LT', 67154 '[proÅ¡log] [ponedjeljka] [u] LT', 67155 '[proÅ¡log] [utorka] [u] LT', 67156 '[proÅ¡le] [srijede] [u] LT', 67157 '[proÅ¡log] [Äetvrtka] [u] LT', 67158 '[proÅ¡log] [petka] [u] LT', 67159 '[proÅ¡le] [subote] [u] LT', 67160 ]; 67161 return lastWeekDays[this.day()]; 67162 }, 67163 sameElse: 'L', 67164 }, 67165 relativeTime: { 67166 future: 'za %s', 67167 past: 'prije %s', 67168 s: 'nekoliko sekundi', 67169 ss: translator.translate, 67170 m: translator.translate, 67171 mm: translator.translate, 67172 h: translator.translate, 67173 hh: translator.translate, 67174 d: 'dan', 67175 dd: translator.translate, 67176 M: 'mjesec', 67177 MM: translator.translate, 67178 y: 'godinu', 67179 yy: translator.translate, 67180 }, 67181 dayOfMonthOrdinalParse: /\d{1,2}\./, 67182 ordinal: '%d.', 67183 week: { 67184 dow: 1, // Monday is the first day of the week. 67185 doy: 7, // The week that contains Jan 7th is the first week of the year. 67186 }, 67187 }); 67188 67189 return me; 67190 67191}))); 67192 67193 67194/***/ }), 67195
vendor: 2,728 bytes, lines 67196-67274
67196/***/ "./node_modules/moment/locale/mi.js": 67197/*!******************************************!*\ 67198 !*** ./node_modules/moment/locale/mi.js ***! 67199 \******************************************/ 67200/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 67201 67202//! moment.js locale configuration 67203//! locale : Maori [mi] 67204//! author : John Corrigan <[email protected]> : https://github.com/johnideal 67205 67206;(function (global, factory) { 67207 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 67208 0 67209}(this, (function (moment) { 'use strict'; 67210 67211 //! moment.js locale configuration 67212 67213 var mi = moment.defineLocale('mi', { 67214 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( 67215 '_' 67216 ), 67217 monthsShort: 67218 'Kohi_Hui_Pou_Pae_Hara_Pipi_HÅngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( 67219 '_' 67220 ), 67221 monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 67222 monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 67223 monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 67224 monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, 67225 weekdays: 'RÄtapu_Mane_TÅ«rei_Wenerei_TÄite_Paraire_HÄtarei'.split('_'), 67226 weekdaysShort: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'), 67227 weekdaysMin: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'), 67228 longDateFormat: { 67229 LT: 'HH:mm', 67230 LTS: 'HH:mm:ss', 67231 L: 'DD/MM/YYYY', 67232 LL: 'D MMMM YYYY', 67233 LLL: 'D MMMM YYYY [i] HH:mm', 67234 LLLL: 'dddd, D MMMM YYYY [i] HH:mm', 67235 }, 67236 calendar: { 67237 sameDay: '[i teie mahana, i] LT', 67238 nextDay: '[apopo i] LT', 67239 nextWeek: 'dddd [i] LT', 67240 lastDay: '[inanahi i] LT', 67241 lastWeek: 'dddd [whakamutunga i] LT', 67242 sameElse: 'L', 67243 }, 67244 relativeTime: { 67245 future: 'i roto i %s', 67246 past: '%s i mua', 67247 s: 'te hÄkona ruarua', 67248 ss: '%d hÄkona', 67249 m: 'he meneti', 67250 mm: '%d meneti', 67251 h: 'te haora', 67252 hh: '%d haora', 67253 d: 'he ra', 67254 dd: '%d ra', 67255 M: 'he marama', 67256 MM: '%d marama', 67257 y: 'he tau', 67258 yy: '%d tau', 67259 }, 67260 dayOfMonthOrdinalParse: /\d{1,2}º/, 67261 ordinal: '%dº', 67262 week: { 67263 dow: 1, // Monday is the first day of the week. 67264 doy: 4, // The week that contains Jan 4th is the first week of the year. 67265 }, 67266 }); 67267 67268 return mi; 67269 67270}))); 67271 67272 67273/***/ }), 67274
vendor: 3,827 bytes, lines 67275-67379
67275/***/ "./node_modules/moment/locale/mk.js": 67276/*!******************************************!*\ 67277 !*** ./node_modules/moment/locale/mk.js ***! 67278 \******************************************/ 67279/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 67280 67281//! moment.js locale configuration 67282//! locale : Macedonian [mk] 67283//! author : Borislav Mickov : https://github.com/B0k0 67284//! author : Sashko Todorov : https://github.com/bkyceh 67285 67286;(function (global, factory) { 67287 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 67288 0 67289}(this, (function (moment) { 'use strict'; 67290 67291 //! moment.js locale configuration 67292 67293 var mk = moment.defineLocale('mk', { 67294 months: 'ÑанÑаÑи_ÑевÑÑаÑи_маÑÑ_апÑил_маÑ_ÑÑни_ÑÑли_авгÑÑÑ_ÑепÑемвÑи_окÑомвÑи_ноемвÑи_декемвÑи'.split( 67295 '_' 67296 ), 67297 monthsShort: 'Ñан_Ñев_маÑ_апÑ_маÑ_ÑÑн_ÑÑл_авг_Ñеп_окÑ_ное_дек'.split('_'), 67298 weekdays: 'недела_понеделник_вÑоÑник_ÑÑеда_ÑеÑвÑÑок_пеÑок_ÑабоÑа'.split( 67299 '_' 67300 ), 67301 weekdaysShort: 'нед_пон_вÑо_ÑÑе_ÑеÑ_пеÑ_Ñаб'.split('_'), 67302 weekdaysMin: 'нe_пo_вÑ_ÑÑ_Ñе_пе_Ña'.split('_'), 67303 longDateFormat: { 67304 LT: 'H:mm', 67305 LTS: 'H:mm:ss', 67306 L: 'D.MM.YYYY', 67307 LL: 'D MMMM YYYY', 67308 LLL: 'D MMMM YYYY H:mm', 67309 LLLL: 'dddd, D MMMM YYYY H:mm', 67310 }, 67311 calendar: { 67312 sameDay: '[ÐÐµÐ½ÐµÑ Ð²Ð¾] LT', 67313 nextDay: '[УÑÑе во] LT', 67314 nextWeek: '[Ðо] dddd [во] LT', 67315 lastDay: '[ÐÑеÑа во] LT', 67316 lastWeek: function () { 67317 switch (this.day()) { 67318 case 0: 67319 case 3: 67320 case 6: 67321 return '[ÐзминаÑаÑа] dddd [во] LT'; 67322 case 1: 67323 case 2: 67324 case 4: 67325 case 5: 67326 return '[ÐзминаÑиоÑ] dddd [во] LT'; 67327 } 67328 }, 67329 sameElse: 'L', 67330 }, 67331 relativeTime: { 67332 future: 'за %s', 67333 past: 'пÑед %s', 67334 s: 'Ð½ÐµÐºÐ¾Ð»ÐºÑ ÑекÑнди', 67335 ss: '%d ÑекÑнди', 67336 m: 'една минÑÑа', 67337 mm: '%d минÑÑи', 67338 h: 'еден ÑаÑ', 67339 hh: '%d ÑаÑа', 67340 d: 'еден ден', 67341 dd: '%d дена', 67342 M: 'еден меÑеÑ', 67343 MM: '%d меÑеÑи', 67344 y: 'една година', 67345 yy: '%d години', 67346 }, 67347 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|Ñи|ви|Ñи|ми)/, 67348 ordinal: function (number) { 67349 var lastDigit = number % 10, 67350 last2Digits = number % 100; 67351 if (number === 0) { 67352 return number + '-ев'; 67353 } else if (last2Digits === 0) { 67354 return number + '-ен'; 67355 } else if (last2Digits > 10 && last2Digits < 20) { 67356 return number + '-Ñи'; 67357 } else if (lastDigit === 1) { 67358 return number + '-ви'; 67359 } else if (lastDigit === 2) { 67360 return number + '-Ñи'; 67361 } else if (lastDigit === 7 || lastDigit === 8) { 67362 return number + '-ми'; 67363 } else { 67364 return number + '-Ñи'; 67365 } 67366 }, 67367 week: { 67368 dow: 1, // Monday is the first day of the week. 67369 doy: 7, // The week that contains Jan 7th is the first week of the year. 67370 }, 67371 }); 67372 67373 return mk; 67374 67375}))); 67376 67377 67378/***/ }), 67379
vendor: 4,080 bytes, lines 67380-67480
67380/***/ "./node_modules/moment/locale/ml.js": 67381/*!******************************************!*\ 67382 !*** ./node_modules/moment/locale/ml.js ***! 67383 \******************************************/ 67384/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 67385 67386//! moment.js locale configuration 67387//! locale : Malayalam [ml] 67388//! author : Floyd Pink : https://github.com/floydpink 67389 67390;(function (global, factory) { 67391 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 67392 0 67393}(this, (function (moment) { 'use strict'; 67394 67395 //! moment.js locale configuration 67396 67397 var ml = moment.defineLocale('ml', { 67398 months: 'à´à´¨àµà´µà´°à´¿_à´«àµà´¬àµà´°àµà´µà´°à´¿_മാർà´àµà´àµ_à´à´ªàµà´°à´¿àµ½_à´®àµà´¯àµ_à´àµàµº_à´àµà´²àµ_à´à´à´¸àµà´±àµà´±àµ_à´¸àµà´ªàµà´±àµà´±à´à´¬àµ¼_à´à´àµà´àµà´¬àµ¼_നവà´à´¬àµ¼_à´¡à´¿à´¸à´à´¬àµ¼'.split( 67399 '_' 67400 ), 67401 monthsShort: 67402 'à´à´¨àµ._à´«àµà´¬àµà´°àµ._മാർ._à´à´ªàµà´°à´¿._à´®àµà´¯àµ_à´àµàµº_à´àµà´²àµ._à´à´._à´¸àµà´ªàµà´±àµà´±._à´à´àµà´àµ._നവà´._à´¡à´¿à´¸à´.'.split( 67403 '_' 67404 ), 67405 monthsParseExact: true, 67406 weekdays: 67407 'à´à´¾à´¯à´±à´¾à´´àµà´_തിà´àµà´à´³à´¾à´´àµà´_à´àµà´µàµà´µà´¾à´´àµà´_à´¬àµà´§à´¨à´¾à´´àµà´_à´µàµà´¯à´¾à´´à´¾à´´àµà´_à´µàµà´³àµà´³à´¿à´¯à´¾à´´àµà´_ശനിയാഴàµà´'.split( 67408 '_' 67409 ), 67410 weekdaysShort: 'à´à´¾à´¯àµ¼_തിà´àµà´àµ¾_à´àµà´µàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´_à´µàµà´³àµà´³à´¿_ശനി'.split('_'), 67411 weekdaysMin: 'à´à´¾_തി_à´àµ_à´¬àµ_à´µàµà´¯à´¾_à´µàµ_à´¶'.split('_'), 67412 longDateFormat: { 67413 LT: 'A h:mm -à´¨àµ', 67414 LTS: 'A h:mm:ss -à´¨àµ', 67415 L: 'DD/MM/YYYY', 67416 LL: 'D MMMM YYYY', 67417 LLL: 'D MMMM YYYY, A h:mm -à´¨àµ', 67418 LLLL: 'dddd, D MMMM YYYY, A h:mm -à´¨àµ', 67419 }, 67420 calendar: { 67421 sameDay: '[à´à´¨àµà´¨àµ] LT', 67422 nextDay: '[നാളàµ] LT', 67423 nextWeek: 'dddd, LT', 67424 lastDay: '[à´à´¨àµà´¨à´²àµ] LT', 67425 lastWeek: '[à´à´´à´¿à´àµà´] dddd, LT', 67426 sameElse: 'L', 67427 }, 67428 relativeTime: { 67429 future: '%s à´à´´à´¿à´àµà´àµ', 67430 past: '%s à´®àµàµ»à´ªàµ', 67431 s: 'ഠൽപ നിമിഷà´àµà´àµ¾', 67432 ss: '%d à´¸àµà´àµà´àµ»à´¡àµ', 67433 m: 'à´à´°àµ മിനിറàµà´±àµ', 67434 mm: '%d മിനിറàµà´±àµ', 67435 h: 'à´à´°àµ മണിà´àµà´àµàµ¼', 67436 hh: '%d മണിà´àµà´àµàµ¼', 67437 d: 'à´à´°àµ ദിവസà´', 67438 dd: '%d ദിവസà´', 67439 M: 'à´à´°àµ മാസà´', 67440 MM: '%d മാസà´', 67441 y: 'à´à´°àµ വർഷà´', 67442 yy: '%d വർഷà´', 67443 }, 67444 meridiemParse: /രാതàµà´°à´¿|രാവിലàµ|à´à´àµà´ à´à´´à´¿à´àµà´àµ|à´µàµà´àµà´¨àµà´¨àµà´°à´|രാതàµà´°à´¿/i, 67445 meridiemHour: function (hour, meridiem) { 67446 if (hour === 12) { 67447 hour = 0; 67448 } 67449 if ( 67450 (meridiem === 'രാതàµà´°à´¿' && hour >= 4) || 67451 meridiem === 'à´à´àµà´ à´à´´à´¿à´àµà´àµ' || 67452 meridiem === 'à´µàµà´àµà´¨àµà´¨àµà´°à´' 67453 ) { 67454 return hour + 12; 67455 } else { 67456 return hour; 67457 } 67458 }, 67459 meridiem: function (hour, minute, isLower) { 67460 if (hour < 4) { 67461 return 'രാതàµà´°à´¿'; 67462 } else if (hour < 12) { 67463 return 'രാവിലàµ'; 67464 } else if (hour < 17) { 67465 return 'à´à´àµà´ à´à´´à´¿à´àµà´àµ'; 67466 } else if (hour < 20) { 67467 return 'à´µàµà´àµà´¨àµà´¨àµà´°à´'; 67468 } else { 67469 return 'രാതàµà´°à´¿'; 67470 } 67471 }, 67472 }); 67473 67474 return ml; 67475 67476}))); 67477 67478 67479/***/ }), 67480
vendor: 4,275 bytes, lines 67481-67599
67481/***/ "./node_modules/moment/locale/mn.js": 67482/*!******************************************!*\ 67483 !*** ./node_modules/moment/locale/mn.js ***! 67484 \******************************************/ 67485/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 67486 67487//! moment.js locale configuration 67488//! locale : Mongolian [mn] 67489//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 67490 67491;(function (global, factory) { 67492 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 67493 0 67494}(this, (function (moment) { 'use strict'; 67495 67496 //! moment.js locale configuration 67497 67498 function translate(number, withoutSuffix, key, isFuture) { 67499 switch (key) { 67500 case 's': 67501 return withoutSuffix ? 'Ñ ÑÐ´Ñ Ñн ÑекÑнд' : 'Ñ ÑÐ´Ñ Ñн ÑекÑндÑн'; 67502 case 'ss': 67503 return number + (withoutSuffix ? ' ÑекÑнд' : ' ÑекÑндÑн'); 67504 case 'm': 67505 case 'mm': 67506 return number + (withoutSuffix ? ' минÑÑ' : ' минÑÑÑн'); 67507 case 'h': 67508 case 'hh': 67509 return number + (withoutSuffix ? ' Ñаг' : ' Ñагийн'); 67510 case 'd': 67511 case 'dd': 67512 return number + (withoutSuffix ? ' өдөÑ' : ' өдÑийн'); 67513 case 'M': 67514 case 'MM': 67515 return number + (withoutSuffix ? ' ÑаÑ' : ' ÑаÑÑн'); 67516 case 'y': 67517 case 'yy': 67518 return number + (withoutSuffix ? ' жил' : ' жилийн'); 67519 default: 67520 return number; 67521 } 67522 } 67523 67524 var mn = moment.defineLocale('mn', { 67525 months: 'ÐÑгдүгÑÑÑ ÑаÑ_ХоÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÓ©ÑөвдүгÑÑÑ ÑаÑ_ТавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑгадÑÐ³Ð°Ð°Ñ ÑаÑ_ÐолдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐаймдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑдүгÑÑÑ ÑаÑ_ÐÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑван нÑгдүгÑÑÑ ÑаÑ_ÐÑван Ñ Ð¾ÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ'.split( 67526 '_' 67527 ), 67528 monthsShort: 67529 '1 ÑаÑ_2 ÑаÑ_3 ÑаÑ_4 ÑаÑ_5 ÑаÑ_6 ÑаÑ_7 ÑаÑ_8 ÑаÑ_9 ÑаÑ_10 ÑаÑ_11 ÑаÑ_12 ÑаÑ'.split( 67530 '_' 67531 ), 67532 monthsParseExact: true, 67533 weekdays: 'ÐÑм_Ðаваа_ÐÑгмаÑ_ÐÑ Ð°Ð³Ð²Ð°_ÐÒ¯ÑÑв_ÐааÑан_ÐÑмба'.split('_'), 67534 weekdaysShort: 'ÐÑм_Ðав_ÐÑг_ÐÑ Ð°_ÐÒ¯Ñ_Ðаа_ÐÑм'.split('_'), 67535 weekdaysMin: 'ÐÑ_Ðа_ÐÑ_ÐÑ _ÐÒ¯_Ðа_ÐÑ'.split('_'), 67536 weekdaysParseExact: true, 67537 longDateFormat: { 67538 LT: 'HH:mm', 67539 LTS: 'HH:mm:ss', 67540 L: 'YYYY-MM-DD', 67541 LL: 'YYYY Ð¾Ð½Ñ MMMMÑн D', 67542 LLL: 'YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm', 67543 LLLL: 'dddd, YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm', 67544 }, 67545 meridiemParse: /Ò®Ó¨|ҮХ/i, 67546 isPM: function (input) { 67547 return input === 'ҮХ'; 67548 }, 67549 meridiem: function (hour, minute, isLower) { 67550 if (hour < 12) { 67551 return 'Ò®Ó¨'; 67552 } else { 67553 return 'ҮХ'; 67554 } 67555 }, 67556 calendar: { 67557 sameDay: '[ӨнөөдөÑ] LT', 67558 nextDay: '[ÐаÑгааÑ] LT', 67559 nextWeek: '[ÐÑÑÑ ] dddd LT', 67560 lastDay: '[Ó¨ÑигдөÑ] LT', 67561 lastWeek: '[ӨнгөÑÑөн] dddd LT', 67562 sameElse: 'L', 67563 }, 67564 relativeTime: { 67565 future: '%s даÑаа', 67566 past: '%s өмнө', 67567 s: translate, 67568 ss: translate, 67569 m: translate, 67570 mm: translate, 67571 h: translate, 67572 hh: translate, 67573 d: translate, 67574 dd: translate, 67575 M: translate, 67576 MM: translate, 67577 y: translate, 67578 yy: translate, 67579 }, 67580 dayOfMonthOrdinalParse: /\d{1,2} өдөÑ/, 67581 ordinal: function (number, period) { 67582 switch (period) { 67583 case 'd': 67584 case 'D': 67585 case 'DDD': 67586 return number + ' өдөÑ'; 67587 default: 67588 return number; 67589 } 67590 }, 67591 }); 67592 67593 return mn; 67594 67595}))); 67596 67597 67598/***/ }), 67599
vendor: 7,839 bytes, lines 67600-67821
67600/***/ "./node_modules/moment/locale/mr.js": 67601/*!******************************************!*\ 67602 !*** ./node_modules/moment/locale/mr.js ***! 67603 \******************************************/ 67604/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 67605 67606//! moment.js locale configuration 67607//! locale : Marathi [mr] 67608//! author : Harshad Kale : https://github.com/kalehv 67609//! author : Vivek Athalye : https://github.com/vnathalye 67610 67611;(function (global, factory) { 67612 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 67613 0 67614}(this, (function (moment) { 'use strict'; 67615 67616 //! moment.js locale configuration 67617 67618 var symbolMap = { 67619 1: '१', 67620 2: '२', 67621 3: '३', 67622 4: '४', 67623 5: '५', 67624 6: '६', 67625 7: 'à¥', 67626 8: '८', 67627 9: '९', 67628 0: '०', 67629 }, 67630 numberMap = { 67631 '१': '1', 67632 '२': '2', 67633 '३': '3', 67634 '४': '4', 67635 '५': '5', 67636 '६': '6', 67637 'à¥': '7', 67638 '८': '8', 67639 '९': '9', 67640 '०': '0', 67641 }; 67642 67643 function relativeTimeMr(number, withoutSuffix, string, isFuture) { 67644 var output = ''; 67645 if (withoutSuffix) { 67646 switch (string) { 67647 case 's': 67648 output = 'à¤à¤¾à¤¹à¥ सà¥à¤à¤à¤¦'; 67649 break; 67650 case 'ss': 67651 output = '%d सà¥à¤à¤à¤¦'; 67652 break; 67653 case 'm': 67654 output = 'à¤à¤ मिनिà¤'; 67655 break; 67656 case 'mm': 67657 output = '%d मिनिà¤à¥'; 67658 break; 67659 case 'h': 67660 output = 'à¤à¤ तास'; 67661 break; 67662 case 'hh': 67663 output = '%d तास'; 67664 break; 67665 case 'd': 67666 output = 'à¤à¤ दिवस'; 67667 break; 67668 case 'dd': 67669 output = '%d दिवस'; 67670 break; 67671 case 'M': 67672 output = 'à¤à¤ महिना'; 67673 break; 67674 case 'MM': 67675 output = '%d महिनà¥'; 67676 break; 67677 case 'y': 67678 output = 'à¤à¤ वरà¥à¤·'; 67679 break; 67680 case 'yy': 67681 output = '%d वरà¥à¤·à¥'; 67682 break; 67683 } 67684 } else { 67685 switch (string) { 67686 case 's': 67687 output = 'à¤à¤¾à¤¹à¥ सà¥à¤à¤à¤¦à¤¾à¤'; 67688 break; 67689 case 'ss': 67690 output = '%d सà¥à¤à¤à¤¦à¤¾à¤'; 67691 break; 67692 case 'm': 67693 output = 'à¤à¤à¤¾ मिनिà¤à¤¾'; 67694 break; 67695 case 'mm': 67696 output = '%d मिनिà¤à¤¾à¤'; 67697 break; 67698 case 'h': 67699 output = 'à¤à¤à¤¾ तासा'; 67700 break; 67701 case 'hh': 67702 output = '%d तासाà¤'; 67703 break; 67704 case 'd': 67705 output = 'à¤à¤à¤¾ दिवसा'; 67706 break; 67707 case 'dd': 67708 output = '%d दिवसाà¤'; 67709 break; 67710 case 'M': 67711 output = 'à¤à¤à¤¾ महिनà¥à¤¯à¤¾'; 67712 break; 67713 case 'MM': 67714 output = '%d महिनà¥à¤¯à¤¾à¤'; 67715 break; 67716 case 'y': 67717 output = 'à¤à¤à¤¾ वरà¥à¤·à¤¾'; 67718 break; 67719 case 'yy': 67720 output = '%d वरà¥à¤·à¤¾à¤'; 67721 break; 67722 } 67723 } 67724 return output.replace(/%d/i, number); 67725 } 67726 67727 var mr = moment.defineLocale('mr', { 67728 months: 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥_मारà¥à¤_à¤à¤ªà¥à¤°à¤¿à¤²_मà¥_à¤à¥à¤¨_à¤à¥à¤²à¥_à¤à¤à¤¸à¥à¤_सपà¥à¤à¥à¤à¤¬à¤°_à¤à¤à¥à¤à¥à¤¬à¤°_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°_डिसà¥à¤à¤¬à¤°'.split( 67729 '_' 67730 ), 67731 monthsShort: 67732 'à¤à¤¾à¤¨à¥._फà¥à¤¬à¥à¤°à¥._मारà¥à¤._à¤à¤ªà¥à¤°à¤¿._मà¥._à¤à¥à¤¨._à¤à¥à¤²à¥._à¤à¤._सपà¥à¤à¥à¤._à¤à¤à¥à¤à¥._नà¥à¤µà¥à¤¹à¥à¤._डिसà¥à¤.'.split( 67733 '_' 67734 ), 67735 monthsParseExact: true, 67736 weekdays: 'रविवार_सà¥à¤®à¤µà¤¾à¤°_मà¤à¤à¤³à¤µà¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_à¤à¥à¤°à¥à¤µà¤¾à¤°_शà¥à¤à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'), 67737 weekdaysShort: 'रवि_सà¥à¤®_मà¤à¤à¤³_बà¥à¤§_à¤à¥à¤°à¥_शà¥à¤à¥à¤°_शनि'.split('_'), 67738 weekdaysMin: 'र_सà¥_मà¤_बà¥_à¤à¥_शà¥_श'.split('_'), 67739 longDateFormat: { 67740 LT: 'A h:mm वाà¤à¤¤à¤¾', 67741 LTS: 'A h:mm:ss वाà¤à¤¤à¤¾', 67742 L: 'DD/MM/YYYY', 67743 LL: 'D MMMM YYYY', 67744 LLL: 'D MMMM YYYY, A h:mm वाà¤à¤¤à¤¾', 67745 LLLL: 'dddd, D MMMM YYYY, A h:mm वाà¤à¤¤à¤¾', 67746 }, 67747 calendar: { 67748 sameDay: '[à¤à¤] LT', 67749 nextDay: '[à¤à¤¦à¥à¤¯à¤¾] LT', 67750 nextWeek: 'dddd, LT', 67751 lastDay: '[à¤à¤¾à¤²] LT', 67752 lastWeek: '[माà¤à¥à¤²] dddd, LT', 67753 sameElse: 'L', 67754 }, 67755 relativeTime: { 67756 future: '%sमधà¥à¤¯à¥', 67757 past: '%sपà¥à¤°à¥à¤µà¥', 67758 s: relativeTimeMr, 67759 ss: relativeTimeMr, 67760 m: relativeTimeMr, 67761 mm: relativeTimeMr, 67762 h: relativeTimeMr, 67763 hh: relativeTimeMr, 67764 d: relativeTimeMr, 67765 dd: relativeTimeMr, 67766 M: relativeTimeMr, 67767 MM: relativeTimeMr, 67768 y: relativeTimeMr, 67769 yy: relativeTimeMr, 67770 }, 67771 preparse: function (string) { 67772 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 67773 return numberMap[match]; 67774 }); 67775 }, 67776 postformat: function (string) { 67777 return string.replace(/\d/g, function (match) { 67778 return symbolMap[match]; 67779 }); 67780 }, 67781 meridiemParse: /पहाà¤à¥|सà¤à¤¾à¤³à¥|दà¥à¤ªà¤¾à¤°à¥|सायà¤à¤à¤¾à¤³à¥|रातà¥à¤°à¥/, 67782 meridiemHour: function (hour, meridiem) { 67783 if (hour === 12) { 67784 hour = 0; 67785 } 67786 if (meridiem === 'पहाà¤à¥' || meridiem === 'सà¤à¤¾à¤³à¥') { 67787 return hour; 67788 } else if ( 67789 meridiem === 'दà¥à¤ªà¤¾à¤°à¥' || 67790 meridiem === 'सायà¤à¤à¤¾à¤³à¥' || 67791 meridiem === 'रातà¥à¤°à¥' 67792 ) { 67793 return hour >= 12 ? hour : hour + 12; 67794 } 67795 }, 67796 meridiem: function (hour, minute, isLower) { 67797 if (hour >= 0 && hour < 6) { 67798 return 'पहाà¤à¥'; 67799 } else if (hour < 12) { 67800 return 'सà¤à¤¾à¤³à¥'; 67801 } else if (hour < 17) { 67802 return 'दà¥à¤ªà¤¾à¤°à¥'; 67803 } else if (hour < 20) { 67804 return 'सायà¤à¤à¤¾à¤³à¥'; 67805 } else { 67806 return 'रातà¥à¤°à¥'; 67807 } 67808 }, 67809 week: { 67810 dow: 0, // Sunday is the first day of the week. 67811 doy: 6, // The week that contains Jan 6th is the first week of the year. 67812 }, 67813 }); 67814 67815 return mr; 67816 67817}))); 67818 67819 67820/***/ }), 67821
vendor: 3,111 bytes, lines 67822-67916
67822/***/ "./node_modules/moment/locale/ms-my.js": 67823/*!*********************************************!*\ 67824 !*** ./node_modules/moment/locale/ms-my.js ***! 67825 \*********************************************/ 67826/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 67827 67828//! moment.js locale configuration 67829//! locale : Malay [ms-my] 67830//! note : DEPRECATED, the correct one is [ms] 67831//! author : Weldan Jamili : https://github.com/weldan 67832 67833;(function (global, factory) { 67834 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 67835 0 67836}(this, (function (moment) { 'use strict'; 67837 67838 //! moment.js locale configuration 67839 67840 var msMy = moment.defineLocale('ms-my', { 67841 months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( 67842 '_' 67843 ), 67844 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), 67845 weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), 67846 weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), 67847 weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), 67848 longDateFormat: { 67849 LT: 'HH.mm', 67850 LTS: 'HH.mm.ss', 67851 L: 'DD/MM/YYYY', 67852 LL: 'D MMMM YYYY', 67853 LLL: 'D MMMM YYYY [pukul] HH.mm', 67854 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 67855 }, 67856 meridiemParse: /pagi|tengahari|petang|malam/, 67857 meridiemHour: function (hour, meridiem) { 67858 if (hour === 12) { 67859 hour = 0; 67860 } 67861 if (meridiem === 'pagi') { 67862 return hour; 67863 } else if (meridiem === 'tengahari') { 67864 return hour >= 11 ? hour : hour + 12; 67865 } else if (meridiem === 'petang' || meridiem === 'malam') { 67866 return hour + 12; 67867 } 67868 }, 67869 meridiem: function (hours, minutes, isLower) { 67870 if (hours < 11) { 67871 return 'pagi'; 67872 } else if (hours < 15) { 67873 return 'tengahari'; 67874 } else if (hours < 19) { 67875 return 'petang'; 67876 } else { 67877 return 'malam'; 67878 } 67879 }, 67880 calendar: { 67881 sameDay: '[Hari ini pukul] LT', 67882 nextDay: '[Esok pukul] LT', 67883 nextWeek: 'dddd [pukul] LT', 67884 lastDay: '[Kelmarin pukul] LT', 67885 lastWeek: 'dddd [lepas pukul] LT', 67886 sameElse: 'L', 67887 }, 67888 relativeTime: { 67889 future: 'dalam %s', 67890 past: '%s yang lepas', 67891 s: 'beberapa saat', 67892 ss: '%d saat', 67893 m: 'seminit', 67894 mm: '%d minit', 67895 h: 'sejam', 67896 hh: '%d jam', 67897 d: 'sehari', 67898 dd: '%d hari', 67899 M: 'sebulan', 67900 MM: '%d bulan', 67901 y: 'setahun', 67902 yy: '%d tahun', 67903 }, 67904 week: { 67905 dow: 1, // Monday is the first day of the week. 67906 doy: 7, // The week that contains Jan 7th is the first week of the year. 67907 }, 67908 }); 67909 67910 return msMy; 67911 67912}))); 67913 67914 67915/***/ }), 67916
vendor: 3,042 bytes, lines 67917-68010
67917/***/ "./node_modules/moment/locale/ms.js": 67918/*!******************************************!*\ 67919 !*** ./node_modules/moment/locale/ms.js ***! 67920 \******************************************/ 67921/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 67922 67923//! moment.js locale configuration 67924//! locale : Malay [ms] 67925//! author : Weldan Jamili : https://github.com/weldan 67926 67927;(function (global, factory) { 67928 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 67929 0 67930}(this, (function (moment) { 'use strict'; 67931 67932 //! moment.js locale configuration 67933 67934 var ms = moment.defineLocale('ms', { 67935 months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( 67936 '_' 67937 ), 67938 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), 67939 weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), 67940 weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), 67941 weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), 67942 longDateFormat: { 67943 LT: 'HH.mm', 67944 LTS: 'HH.mm.ss', 67945 L: 'DD/MM/YYYY', 67946 LL: 'D MMMM YYYY', 67947 LLL: 'D MMMM YYYY [pukul] HH.mm', 67948 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 67949 }, 67950 meridiemParse: /pagi|tengahari|petang|malam/, 67951 meridiemHour: function (hour, meridiem) { 67952 if (hour === 12) { 67953 hour = 0; 67954 } 67955 if (meridiem === 'pagi') { 67956 return hour; 67957 } else if (meridiem === 'tengahari') { 67958 return hour >= 11 ? hour : hour + 12; 67959 } else if (meridiem === 'petang' || meridiem === 'malam') { 67960 return hour + 12; 67961 } 67962 }, 67963 meridiem: function (hours, minutes, isLower) { 67964 if (hours < 11) { 67965 return 'pagi'; 67966 } else if (hours < 15) { 67967 return 'tengahari'; 67968 } else if (hours < 19) { 67969 return 'petang'; 67970 } else { 67971 return 'malam'; 67972 } 67973 }, 67974 calendar: { 67975 sameDay: '[Hari ini pukul] LT', 67976 nextDay: '[Esok pukul] LT', 67977 nextWeek: 'dddd [pukul] LT', 67978 lastDay: '[Kelmarin pukul] LT', 67979 lastWeek: 'dddd [lepas pukul] LT', 67980 sameElse: 'L', 67981 }, 67982 relativeTime: { 67983 future: 'dalam %s', 67984 past: '%s yang lepas', 67985 s: 'beberapa saat', 67986 ss: '%d saat', 67987 m: 'seminit', 67988 mm: '%d minit', 67989 h: 'sejam', 67990 hh: '%d jam', 67991 d: 'sehari', 67992 dd: '%d hari', 67993 M: 'sebulan', 67994 MM: '%d bulan', 67995 y: 'setahun', 67996 yy: '%d tahun', 67997 }, 67998 week: { 67999 dow: 1, // Monday is the first day of the week. 68000 doy: 7, // The week that contains Jan 7th is the first week of the year. 68001 }, 68002 }); 68003 68004 return ms; 68005 68006}))); 68007 68008 68009/***/ }), 68010
vendor: 2,373 bytes, lines 68011-68085
68011/***/ "./node_modules/moment/locale/mt.js": 68012/*!******************************************!*\ 68013 !*** ./node_modules/moment/locale/mt.js ***! 68014 \******************************************/ 68015/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 68016 68017//! moment.js locale configuration 68018//! locale : Maltese (Malta) [mt] 68019//! author : Alessandro Maruccia : https://github.com/alesma 68020 68021;(function (global, factory) { 68022 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 68023 0 68024}(this, (function (moment) { 'use strict'; 68025 68026 //! moment.js locale configuration 68027 68028 var mt = moment.defineLocale('mt', { 68029 months: 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_DiÄembru'.split( 68030 '_' 68031 ), 68032 monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_DiÄ'.split('_'), 68033 weekdays: 68034 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split( 68035 '_' 68036 ), 68037 weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'), 68038 weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'), 68039 longDateFormat: { 68040 LT: 'HH:mm', 68041 LTS: 'HH:mm:ss', 68042 L: 'DD/MM/YYYY', 68043 LL: 'D MMMM YYYY', 68044 LLL: 'D MMMM YYYY HH:mm', 68045 LLLL: 'dddd, D MMMM YYYY HH:mm', 68046 }, 68047 calendar: { 68048 sameDay: '[Illum fil-]LT', 68049 nextDay: '[Għada fil-]LT', 68050 nextWeek: 'dddd [fil-]LT', 68051 lastDay: '[Il-bieraħ fil-]LT', 68052 lastWeek: 'dddd [li għadda] [fil-]LT', 68053 sameElse: 'L', 68054 }, 68055 relativeTime: { 68056 future: 'fâ %s', 68057 past: '%s ilu', 68058 s: 'ftit sekondi', 68059 ss: '%d sekondi', 68060 m: 'minuta', 68061 mm: '%d minuti', 68062 h: 'siegħa', 68063 hh: '%d siegħat', 68064 d: 'Ä¡urnata', 68065 dd: '%d Ä¡ranet', 68066 M: 'xahar', 68067 MM: '%d xhur', 68068 y: 'sena', 68069 yy: '%d sni', 68070 }, 68071 dayOfMonthOrdinalParse: /\d{1,2}º/, 68072 ordinal: '%dº', 68073 week: { 68074 dow: 1, // Monday is the first day of the week. 68075 doy: 4, // The week that contains Jan 4th is the first week of the year. 68076 }, 68077 }); 68078 68079 return mt; 68080 68081}))); 68082 68083 68084/***/ }), 68085
vendor: 3,907 bytes, lines 68086-68195
68086/***/ "./node_modules/moment/locale/my.js": 68087/*!******************************************!*\ 68088 !*** ./node_modules/moment/locale/my.js ***! 68089 \******************************************/ 68090/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 68091 68092//! moment.js locale configuration 68093//! locale : Burmese [my] 68094//! author : Squar team, mysquar.com 68095//! author : David Rossellat : https://github.com/gholadr 68096//! author : Tin Aung Lin : https://github.com/thanyawzinmin 68097 68098;(function (global, factory) { 68099 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 68100 0 68101}(this, (function (moment) { 'use strict'; 68102 68103 //! moment.js locale configuration 68104 68105 var symbolMap = { 68106 1: 'á', 68107 2: 'á', 68108 3: 'á', 68109 4: 'á', 68110 5: 'á ', 68111 6: 'á', 68112 7: 'á', 68113 8: 'á', 68114 9: 'á', 68115 0: 'á', 68116 }, 68117 numberMap = { 68118 'á': '1', 68119 'á': '2', 68120 'á': '3', 68121 'á': '4', 68122 'á ': '5', 68123 'á': '6', 68124 'á': '7', 68125 'á': '8', 68126 'á': '9', 68127 'á': '0', 68128 }; 68129 68130 var my = moment.defineLocale('my', { 68131 months: 'áááºááá«áá®_áá±áá±á¬áºáá«áá®_áááº_á§áá¼á®_áá±_áá½ááº_áá°ááá¯ááº_áá¼áá¯ááº_á ááºáááºáá¬_á¡á±á¬ááºááá¯áá¬_ááá¯áááºáá¬_áá®áááºáá¬'.split( 68132 '_' 68133 ), 68134 monthsShort: 'áááº_áá±_áááº_áá¼á®_áá±_áá½ááº_ááá¯ááº_áá¼_á ááº_á¡á±á¬ááº_ááá¯_áá®'.split('_'), 68135 weekdays: 'ááááºá¹ááá½á±_ááááºá¹áá¬_á¡ááºá¹áá«_áá¯áá¹ááá°á¸_áá¼á¬áááá±á¸_áá±á¬áá¼á¬_á áá±'.split( 68136 '_' 68137 ), 68138 weekdaysShort: 'áá½á±_áá¬_áá«_áá°á¸_áá¼á¬_áá±á¬_áá±'.split('_'), 68139 weekdaysMin: 'áá½á±_áá¬_áá«_áá°á¸_áá¼á¬_áá±á¬_áá±'.split('_'), 68140 68141 longDateFormat: { 68142 LT: 'HH:mm', 68143 LTS: 'HH:mm:ss', 68144 L: 'DD/MM/YYYY', 68145 LL: 'D MMMM YYYY', 68146 LLL: 'D MMMM YYYY HH:mm', 68147 LLLL: 'dddd D MMMM YYYY HH:mm', 68148 }, 68149 calendar: { 68150 sameDay: '[ááá±.] LT [áá¾á¬]', 68151 nextDay: '[ááááºáá¼ááº] LT [áá¾á¬]', 68152 nextWeek: 'dddd LT [áá¾á¬]', 68153 lastDay: '[ááá±.á] LT [áá¾á¬]', 68154 lastWeek: '[áá¼á®á¸áá²á·áá±á¬] dddd LT [áá¾á¬]', 68155 sameElse: 'L', 68156 }, 68157 relativeTime: { 68158 future: 'áá¬áááºá· %s áá¾á¬', 68159 past: 'áá½ááºáá²á·áá±á¬ %s á', 68160 s: 'á áá¹áááº.á¡áááºá¸áááº', 68161 ss: '%d á áá¹ááá·áº', 68162 m: 'áá áºáááá áº', 68163 mm: '%d áááá áº', 68164 h: 'áá áºáá¬áá®', 68165 hh: '%d áá¬áá®', 68166 d: 'áá áºáááº', 68167 dd: '%d áááº', 68168 M: 'áá áºá', 68169 MM: '%d á', 68170 y: 'áá áºáá¾á áº', 68171 yy: '%d áá¾á áº', 68172 }, 68173 preparse: function (string) { 68174 return string.replace(/[ááááá ááááá]/g, function (match) { 68175 return numberMap[match]; 68176 }); 68177 }, 68178 postformat: function (string) { 68179 return string.replace(/\d/g, function (match) { 68180 return symbolMap[match]; 68181 }); 68182 }, 68183 week: { 68184 dow: 1, // Monday is the first day of the week. 68185 doy: 4, // The week that contains Jan 4th is the first week of the year. 68186 }, 68187 }); 68188 68189 return my; 68190 68191}))); 68192 68193 68194/***/ }), 68195
vendor: 2,600 bytes, lines 68196-68274
68196/***/ "./node_modules/moment/locale/nb.js": 68197/*!******************************************!*\ 68198 !*** ./node_modules/moment/locale/nb.js ***! 68199 \******************************************/ 68200/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 68201 68202//! moment.js locale configuration 68203//! locale : Norwegian Bokmål [nb] 68204//! authors : Espen Hovlandsdal : https://github.com/rexxars 68205//! Sigurd Gartmann : https://github.com/sigurdga 68206//! Stephen Ramthun : https://github.com/stephenramthun 68207 68208;(function (global, factory) { 68209 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 68210 0 68211}(this, (function (moment) { 'use strict'; 68212 68213 //! moment.js locale configuration 68214 68215 var nb = moment.defineLocale('nb', { 68216 months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( 68217 '_' 68218 ), 68219 monthsShort: 68220 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), 68221 monthsParseExact: true, 68222 weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), 68223 weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), 68224 weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), 68225 weekdaysParseExact: true, 68226 longDateFormat: { 68227 LT: 'HH:mm', 68228 LTS: 'HH:mm:ss', 68229 L: 'DD.MM.YYYY', 68230 LL: 'D. MMMM YYYY', 68231 LLL: 'D. MMMM YYYY [kl.] HH:mm', 68232 LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', 68233 }, 68234 calendar: { 68235 sameDay: '[i dag kl.] LT', 68236 nextDay: '[i morgen kl.] LT', 68237 nextWeek: 'dddd [kl.] LT', 68238 lastDay: '[i går kl.] LT', 68239 lastWeek: '[forrige] dddd [kl.] LT', 68240 sameElse: 'L', 68241 }, 68242 relativeTime: { 68243 future: 'om %s', 68244 past: '%s siden', 68245 s: 'noen sekunder', 68246 ss: '%d sekunder', 68247 m: 'ett minutt', 68248 mm: '%d minutter', 68249 h: 'én time', 68250 hh: '%d timer', 68251 d: 'én dag', 68252 dd: '%d dager', 68253 w: 'én uke', 68254 ww: '%d uker', 68255 M: 'én måned', 68256 MM: '%d måneder', 68257 y: 'ett år', 68258 yy: '%d år', 68259 }, 68260 dayOfMonthOrdinalParse: /\d{1,2}\./, 68261 ordinal: '%d.', 68262 week: { 68263 dow: 1, // Monday is the first day of the week. 68264 doy: 4, // The week that contains Jan 4th is the first week of the year. 68265 }, 68266 }); 68267 68268 return nb; 68269 68270}))); 68271 68272 68273/***/ }), 68274
vendor: 4,976 bytes, lines 68275-68414
68275/***/ "./node_modules/moment/locale/ne.js": 68276/*!******************************************!*\ 68277 !*** ./node_modules/moment/locale/ne.js ***! 68278 \******************************************/ 68279/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 68280 68281//! moment.js locale configuration 68282//! locale : Nepalese [ne] 68283//! author : suvash : https://github.com/suvash 68284 68285;(function (global, factory) { 68286 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 68287 0 68288}(this, (function (moment) { 'use strict'; 68289 68290 //! moment.js locale configuration 68291 68292 var symbolMap = { 68293 1: '१', 68294 2: '२', 68295 3: '३', 68296 4: '४', 68297 5: '५', 68298 6: '६', 68299 7: 'à¥', 68300 8: '८', 68301 9: '९', 68302 0: '०', 68303 }, 68304 numberMap = { 68305 '१': '1', 68306 '२': '2', 68307 '३': '3', 68308 '४': '4', 68309 '५': '5', 68310 '६': '6', 68311 'à¥': '7', 68312 '८': '8', 68313 '९': '9', 68314 '०': '0', 68315 }; 68316 68317 var ne = moment.defineLocale('ne', { 68318 months: 'à¤à¤¨à¤µà¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤°à¥_मारà¥à¤_ठपà¥à¤°à¤¿à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤·à¥à¤_सà¥à¤ªà¥à¤à¥à¤®à¥à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नà¥à¤à¥à¤®à¥à¤¬à¤°_डिसà¥à¤®à¥à¤¬à¤°'.split( 68319 '_' 68320 ), 68321 monthsShort: 68322 'à¤à¤¨._फà¥à¤¬à¥à¤°à¥._मारà¥à¤_ठपà¥à¤°à¤¿._मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤._ठà¤._सà¥à¤ªà¥à¤._ठà¤à¥à¤à¥._नà¥à¤à¥._डिसà¥.'.split( 68323 '_' 68324 ), 68325 monthsParseExact: true, 68326 weekdays: 'à¤à¤à¤¤à¤¬à¤¾à¤°_सà¥à¤®à¤¬à¤¾à¤°_मà¤à¥à¤à¤²à¤¬à¤¾à¤°_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split( 68327 '_' 68328 ), 68329 weekdaysShort: 'à¤à¤à¤¤._सà¥à¤®._मà¤à¥à¤à¤²._बà¥à¤§._बिहि._शà¥à¤à¥à¤°._शनि.'.split('_'), 68330 weekdaysMin: 'à¤._सà¥._मà¤._बà¥._बि._शà¥._श.'.split('_'), 68331 weekdaysParseExact: true, 68332 longDateFormat: { 68333 LT: 'Aà¤à¥ h:mm बà¤à¥', 68334 LTS: 'Aà¤à¥ h:mm:ss बà¤à¥', 68335 L: 'DD/MM/YYYY', 68336 LL: 'D MMMM YYYY', 68337 LLL: 'D MMMM YYYY, Aà¤à¥ h:mm बà¤à¥', 68338 LLLL: 'dddd, D MMMM YYYY, Aà¤à¥ h:mm बà¤à¥', 68339 }, 68340 preparse: function (string) { 68341 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 68342 return numberMap[match]; 68343 }); 68344 }, 68345 postformat: function (string) { 68346 return string.replace(/\d/g, function (match) { 68347 return symbolMap[match]; 68348 }); 68349 }, 68350 meridiemParse: /राति|बिहान|दिà¤à¤à¤¸à¥|साà¤à¤/, 68351 meridiemHour: function (hour, meridiem) { 68352 if (hour === 12) { 68353 hour = 0; 68354 } 68355 if (meridiem === 'राति') { 68356 return hour < 4 ? hour : hour + 12; 68357 } else if (meridiem === 'बिहान') { 68358 return hour; 68359 } else if (meridiem === 'दिà¤à¤à¤¸à¥') { 68360 return hour >= 10 ? hour : hour + 12; 68361 } else if (meridiem === 'साà¤à¤') { 68362 return hour + 12; 68363 } 68364 }, 68365 meridiem: function (hour, minute, isLower) { 68366 if (hour < 3) { 68367 return 'राति'; 68368 } else if (hour < 12) { 68369 return 'बिहान'; 68370 } else if (hour < 16) { 68371 return 'दिà¤à¤à¤¸à¥'; 68372 } else if (hour < 20) { 68373 return 'साà¤à¤'; 68374 } else { 68375 return 'राति'; 68376 } 68377 }, 68378 calendar: { 68379 sameDay: '[à¤à¤] LT', 68380 nextDay: '[à¤à¥à¤²à¤¿] LT', 68381 nextWeek: '[à¤à¤à¤à¤¦à¥] dddd[,] LT', 68382 lastDay: '[हिà¤à¥] LT', 68383 lastWeek: '[à¤à¤à¤à¥] dddd[,] LT', 68384 sameElse: 'L', 68385 }, 68386 relativeTime: { 68387 future: '%sमा', 68388 past: '%s ठà¤à¤¾à¤¡à¤¿', 68389 s: 'à¤à¥à¤¹à¥ à¤à¥à¤·à¤£', 68390 ss: '%d सà¥à¤à¥à¤£à¥à¤¡', 68391 m: 'à¤à¤ मिनà¥à¤', 68392 mm: '%d मिनà¥à¤', 68393 h: 'à¤à¤ à¤à¤£à¥à¤à¤¾', 68394 hh: '%d à¤à¤£à¥à¤à¤¾', 68395 d: 'à¤à¤ दिन', 68396 dd: '%d दिन', 68397 M: 'à¤à¤ महिना', 68398 MM: '%d महिना', 68399 y: 'à¤à¤ बरà¥à¤·', 68400 yy: '%d बरà¥à¤·', 68401 }, 68402 week: { 68403 dow: 0, // Sunday is the first day of the week. 68404 doy: 6, // The week that contains Jan 6th is the first week of the year. 68405 }, 68406 }); 68407 68408 return ne; 68409 68410}))); 68411 68412 68413/***/ }), 68414
vendor: 4,041 bytes, lines 68415-68535
68415/***/ "./node_modules/moment/locale/nl-be.js": 68416/*!*********************************************!*\ 68417 !*** ./node_modules/moment/locale/nl-be.js ***! 68418 \*********************************************/ 68419/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 68420 68421//! moment.js locale configuration 68422//! locale : Dutch (Belgium) [nl-be] 68423//! author : Joris Röling : https://github.com/jorisroling 68424//! author : Jacob Middag : https://github.com/middagj 68425 68426;(function (global, factory) { 68427 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 68428 0 68429}(this, (function (moment) { 'use strict'; 68430 68431 //! moment.js locale configuration 68432 68433 var monthsShortWithDots = 68434 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), 68435 monthsShortWithoutDots = 68436 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), 68437 monthsParse = [ 68438 /^jan/i, 68439 /^feb/i, 68440 /^(maart|mrt\.?)$/i, 68441 /^apr/i, 68442 /^mei$/i, 68443 /^jun[i.]?$/i, 68444 /^jul[i.]?$/i, 68445 /^aug/i, 68446 /^sep/i, 68447 /^okt/i, 68448 /^nov/i, 68449 /^dec/i, 68450 ], 68451 monthsRegex = 68452 /^(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; 68453 68454 var nlBe = moment.defineLocale('nl-be', { 68455 months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( 68456 '_' 68457 ), 68458 monthsShort: function (m, format) { 68459 if (!m) { 68460 return monthsShortWithDots; 68461 } else if (/-MMM-/.test(format)) { 68462 return monthsShortWithoutDots[m.month()]; 68463 } else { 68464 return monthsShortWithDots[m.month()]; 68465 } 68466 }, 68467 68468 monthsRegex: monthsRegex, 68469 monthsShortRegex: monthsRegex, 68470 monthsStrictRegex: 68471 /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, 68472 monthsShortStrictRegex: 68473 /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, 68474 68475 monthsParse: monthsParse, 68476 longMonthsParse: monthsParse, 68477 shortMonthsParse: monthsParse, 68478 68479 weekdays: 68480 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), 68481 weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), 68482 weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), 68483 weekdaysParseExact: true, 68484 longDateFormat: { 68485 LT: 'HH:mm', 68486 LTS: 'HH:mm:ss', 68487 L: 'DD/MM/YYYY', 68488 LL: 'D MMMM YYYY', 68489 LLL: 'D MMMM YYYY HH:mm', 68490 LLLL: 'dddd D MMMM YYYY HH:mm', 68491 }, 68492 calendar: { 68493 sameDay: '[vandaag om] LT', 68494 nextDay: '[morgen om] LT', 68495 nextWeek: 'dddd [om] LT', 68496 lastDay: '[gisteren om] LT', 68497 lastWeek: '[afgelopen] dddd [om] LT', 68498 sameElse: 'L', 68499 }, 68500 relativeTime: { 68501 future: 'over %s', 68502 past: '%s geleden', 68503 s: 'een paar seconden', 68504 ss: '%d seconden', 68505 m: 'één minuut', 68506 mm: '%d minuten', 68507 h: 'één uur', 68508 hh: '%d uur', 68509 d: 'één dag', 68510 dd: '%d dagen', 68511 M: 'één maand', 68512 MM: '%d maanden', 68513 y: 'één jaar', 68514 yy: '%d jaar', 68515 }, 68516 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 68517 ordinal: function (number) { 68518 return ( 68519 number + 68520 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 68521 ); 68522 }, 68523 week: { 68524 dow: 1, // Monday is the first day of the week. 68525 doy: 4, // The week that contains Jan 4th is the first week of the year. 68526 }, 68527 }); 68528 68529 return nlBe; 68530 68531}))); 68532 68533 68534/***/ }), 68535
vendor: 4,066 bytes, lines 68536-68658
68536/***/ "./node_modules/moment/locale/nl.js": 68537/*!******************************************!*\ 68538 !*** ./node_modules/moment/locale/nl.js ***! 68539 \******************************************/ 68540/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 68541 68542//! moment.js locale configuration 68543//! locale : Dutch [nl] 68544//! author : Joris Röling : https://github.com/jorisroling 68545//! author : Jacob Middag : https://github.com/middagj 68546 68547;(function (global, factory) { 68548 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 68549 0 68550}(this, (function (moment) { 'use strict'; 68551 68552 //! moment.js locale configuration 68553 68554 var monthsShortWithDots = 68555 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), 68556 monthsShortWithoutDots = 68557 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), 68558 monthsParse = [ 68559 /^jan/i, 68560 /^feb/i, 68561 /^(maart|mrt\.?)$/i, 68562 /^apr/i, 68563 /^mei$/i, 68564 /^jun[i.]?$/i, 68565 /^jul[i.]?$/i, 68566 /^aug/i, 68567 /^sep/i, 68568 /^okt/i, 68569 /^nov/i, 68570 /^dec/i, 68571 ], 68572 monthsRegex = 68573 /^(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; 68574 68575 var nl = moment.defineLocale('nl', { 68576 months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( 68577 '_' 68578 ), 68579 monthsShort: function (m, format) { 68580 if (!m) { 68581 return monthsShortWithDots; 68582 } else if (/-MMM-/.test(format)) { 68583 return monthsShortWithoutDots[m.month()]; 68584 } else { 68585 return monthsShortWithDots[m.month()]; 68586 } 68587 }, 68588 68589 monthsRegex: monthsRegex, 68590 monthsShortRegex: monthsRegex, 68591 monthsStrictRegex: 68592 /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, 68593 monthsShortStrictRegex: 68594 /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, 68595 68596 monthsParse: monthsParse, 68597 longMonthsParse: monthsParse, 68598 shortMonthsParse: monthsParse, 68599 68600 weekdays: 68601 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), 68602 weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), 68603 weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), 68604 weekdaysParseExact: true, 68605 longDateFormat: { 68606 LT: 'HH:mm', 68607 LTS: 'HH:mm:ss', 68608 L: 'DD-MM-YYYY', 68609 LL: 'D MMMM YYYY', 68610 LLL: 'D MMMM YYYY HH:mm', 68611 LLLL: 'dddd D MMMM YYYY HH:mm', 68612 }, 68613 calendar: { 68614 sameDay: '[vandaag om] LT', 68615 nextDay: '[morgen om] LT', 68616 nextWeek: 'dddd [om] LT', 68617 lastDay: '[gisteren om] LT', 68618 lastWeek: '[afgelopen] dddd [om] LT', 68619 sameElse: 'L', 68620 }, 68621 relativeTime: { 68622 future: 'over %s', 68623 past: '%s geleden', 68624 s: 'een paar seconden', 68625 ss: '%d seconden', 68626 m: 'één minuut', 68627 mm: '%d minuten', 68628 h: 'één uur', 68629 hh: '%d uur', 68630 d: 'één dag', 68631 dd: '%d dagen', 68632 w: 'één week', 68633 ww: '%d weken', 68634 M: 'één maand', 68635 MM: '%d maanden', 68636 y: 'één jaar', 68637 yy: '%d jaar', 68638 }, 68639 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 68640 ordinal: function (number) { 68641 return ( 68642 number + 68643 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 68644 ); 68645 }, 68646 week: { 68647 dow: 1, // Monday is the first day of the week. 68648 doy: 4, // The week that contains Jan 4th is the first week of the year. 68649 }, 68650 }); 68651 68652 return nl; 68653 68654}))); 68655 68656 68657/***/ }), 68658
vendor: 2,525 bytes, lines 68659-68736
68659/***/ "./node_modules/moment/locale/nn.js": 68660/*!******************************************!*\ 68661 !*** ./node_modules/moment/locale/nn.js ***! 68662 \******************************************/ 68663/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 68664 68665//! moment.js locale configuration 68666//! locale : Nynorsk [nn] 68667//! authors : https://github.com/mechuwind 68668//! Stephen Ramthun : https://github.com/stephenramthun 68669 68670;(function (global, factory) { 68671 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 68672 0 68673}(this, (function (moment) { 'use strict'; 68674 68675 //! moment.js locale configuration 68676 68677 var nn = moment.defineLocale('nn', { 68678 months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( 68679 '_' 68680 ), 68681 monthsShort: 68682 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), 68683 monthsParseExact: true, 68684 weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), 68685 weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), 68686 weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), 68687 weekdaysParseExact: true, 68688 longDateFormat: { 68689 LT: 'HH:mm', 68690 LTS: 'HH:mm:ss', 68691 L: 'DD.MM.YYYY', 68692 LL: 'D. MMMM YYYY', 68693 LLL: 'D. MMMM YYYY [kl.] H:mm', 68694 LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', 68695 }, 68696 calendar: { 68697 sameDay: '[I dag klokka] LT', 68698 nextDay: '[I morgon klokka] LT', 68699 nextWeek: 'dddd [klokka] LT', 68700 lastDay: '[I går klokka] LT', 68701 lastWeek: '[Føregåande] dddd [klokka] LT', 68702 sameElse: 'L', 68703 }, 68704 relativeTime: { 68705 future: 'om %s', 68706 past: '%s sidan', 68707 s: 'nokre sekund', 68708 ss: '%d sekund', 68709 m: 'eit minutt', 68710 mm: '%d minutt', 68711 h: 'ein time', 68712 hh: '%d timar', 68713 d: 'ein dag', 68714 dd: '%d dagar', 68715 w: 'ei veke', 68716 ww: '%d veker', 68717 M: 'ein månad', 68718 MM: '%d månader', 68719 y: 'eit år', 68720 yy: '%d år', 68721 }, 68722 dayOfMonthOrdinalParse: /\d{1,2}\./, 68723 ordinal: '%d.', 68724 week: { 68725 dow: 1, // Monday is the first day of the week. 68726 doy: 4, // The week that contains Jan 4th is the first week of the year. 68727 }, 68728 }); 68729 68730 return nn; 68731 68732}))); 68733 68734 68735/***/ }), 68736
vendor: 3,323 bytes, lines 68737-68840
68737/***/ "./node_modules/moment/locale/oc-lnc.js": 68738/*!**********************************************!*\ 68739 !*** ./node_modules/moment/locale/oc-lnc.js ***! 68740 \**********************************************/ 68741/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 68742 68743//! moment.js locale configuration 68744//! locale : Occitan, lengadocian dialecte [oc-lnc] 68745//! author : Quentin PAGÃS : https://github.com/Quenty31 68746 68747;(function (global, factory) { 68748 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 68749 0 68750}(this, (function (moment) { 'use strict'; 68751 68752 //! moment.js locale configuration 68753 68754 var ocLnc = moment.defineLocale('oc-lnc', { 68755 months: { 68756 standalone: 68757 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( 68758 '_' 68759 ), 68760 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( 68761 '_' 68762 ), 68763 isFormat: /D[oD]?(\s)+MMMM/, 68764 }, 68765 monthsShort: 68766 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( 68767 '_' 68768 ), 68769 monthsParseExact: true, 68770 weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( 68771 '_' 68772 ), 68773 weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), 68774 weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), 68775 weekdaysParseExact: true, 68776 longDateFormat: { 68777 LT: 'H:mm', 68778 LTS: 'H:mm:ss', 68779 L: 'DD/MM/YYYY', 68780 LL: 'D MMMM [de] YYYY', 68781 ll: 'D MMM YYYY', 68782 LLL: 'D MMMM [de] YYYY [a] H:mm', 68783 lll: 'D MMM YYYY, H:mm', 68784 LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', 68785 llll: 'ddd D MMM YYYY, H:mm', 68786 }, 68787 calendar: { 68788 sameDay: '[uèi a] LT', 68789 nextDay: '[deman a] LT', 68790 nextWeek: 'dddd [a] LT', 68791 lastDay: '[ièr a] LT', 68792 lastWeek: 'dddd [passat a] LT', 68793 sameElse: 'L', 68794 }, 68795 relativeTime: { 68796 future: "d'aquà %s", 68797 past: 'fa %s', 68798 s: 'unas segondas', 68799 ss: '%d segondas', 68800 m: 'una minuta', 68801 mm: '%d minutas', 68802 h: 'una ora', 68803 hh: '%d oras', 68804 d: 'un jorn', 68805 dd: '%d jorns', 68806 M: 'un mes', 68807 MM: '%d meses', 68808 y: 'un an', 68809 yy: '%d ans', 68810 }, 68811 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, 68812 ordinal: function (number, period) { 68813 var output = 68814 number === 1 68815 ? 'r' 68816 : number === 2 68817 ? 'n' 68818 : number === 3 68819 ? 'r' 68820 : number === 4 68821 ? 't' 68822 : 'è'; 68823 if (period === 'w' || period === 'W') { 68824 output = 'a'; 68825 } 68826 return number + output; 68827 }, 68828 week: { 68829 dow: 1, // Monday is the first day of the week. 68830 doy: 4, 68831 }, 68832 }); 68833 68834 return ocLnc; 68835 68836}))); 68837 68838 68839/***/ }), 68840
vendor: 5,163 bytes, lines 68841-68981
68841/***/ "./node_modules/moment/locale/pa-in.js": 68842/*!*********************************************!*\ 68843 !*** ./node_modules/moment/locale/pa-in.js ***! 68844 \*********************************************/ 68845/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 68846 68847//! moment.js locale configuration 68848//! locale : Punjabi (India) [pa-in] 68849//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit 68850 68851;(function (global, factory) { 68852 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 68853 0 68854}(this, (function (moment) { 'use strict'; 68855 68856 //! moment.js locale configuration 68857 68858 var symbolMap = { 68859 1: 'à©§', 68860 2: '੨', 68861 3: 'à©©', 68862 4: '੪', 68863 5: 'à©«', 68864 6: '੬', 68865 7: 'à©', 68866 8: 'à©®', 68867 9: '੯', 68868 0: '੦', 68869 }, 68870 numberMap = { 68871 'à©§': '1', 68872 '੨': '2', 68873 'à©©': '3', 68874 '੪': '4', 68875 'à©«': '5', 68876 '੬': '6', 68877 'à©': '7', 68878 'à©®': '8', 68879 '੯': '9', 68880 '੦': '0', 68881 }; 68882 68883 var paIn = moment.defineLocale('pa-in', { 68884 // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. 68885 months: 'à¨à¨¨à¨µà¨°à©_ਫ਼ਰਵਰà©_ਮਾਰà¨_ਠਪà©à¨°à©à¨²_ਮà¨_à¨à©à¨¨_à¨à©à¨²à¨¾à¨_ਠà¨à¨¸à¨¤_ਸਤੰਬਰ_ਠà¨à¨¤à©à¨¬à¨°_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( 68886 '_' 68887 ), 68888 monthsShort: 68889 'à¨à¨¨à¨µà¨°à©_ਫ਼ਰਵਰà©_ਮਾਰà¨_ਠਪà©à¨°à©à¨²_ਮà¨_à¨à©à¨¨_à¨à©à¨²à¨¾à¨_ਠà¨à¨¸à¨¤_ਸਤੰਬਰ_ਠà¨à¨¤à©à¨¬à¨°_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( 68890 '_' 68891 ), 68892 weekdays: 'à¨à¨¤à¨µà¨¾à¨°_ਸà©à¨®à¨µà¨¾à¨°_ਮੰà¨à¨²à¨µà¨¾à¨°_ਬà©à¨§à¨µà¨¾à¨°_ਵà©à¨°à¨µà¨¾à¨°_ਸ਼à©à©±à¨à¨°à¨µà¨¾à¨°_ਸ਼ਨà©à¨à¨°à¨µà¨¾à¨°'.split( 68893 '_' 68894 ), 68895 weekdaysShort: 'à¨à¨¤_ਸà©à¨®_ਮੰà¨à¨²_ਬà©à¨§_ਵà©à¨°_ਸ਼à©à¨à¨°_ਸ਼ਨà©'.split('_'), 68896 weekdaysMin: 'à¨à¨¤_ਸà©à¨®_ਮੰà¨à¨²_ਬà©à¨§_ਵà©à¨°_ਸ਼à©à¨à¨°_ਸ਼ਨà©'.split('_'), 68897 longDateFormat: { 68898 LT: 'A h:mm ਵà¨à©', 68899 LTS: 'A h:mm:ss ਵà¨à©', 68900 L: 'DD/MM/YYYY', 68901 LL: 'D MMMM YYYY', 68902 LLL: 'D MMMM YYYY, A h:mm ਵà¨à©', 68903 LLLL: 'dddd, D MMMM YYYY, A h:mm ਵà¨à©', 68904 }, 68905 calendar: { 68906 sameDay: '[ਠà¨] LT', 68907 nextDay: '[à¨à¨²] LT', 68908 nextWeek: '[ਠà¨à¨²à¨¾] dddd, LT', 68909 lastDay: '[à¨à¨²] LT', 68910 lastWeek: '[ਪਿà¨à¨²à©] dddd, LT', 68911 sameElse: 'L', 68912 }, 68913 relativeTime: { 68914 future: '%s ਵਿੱà¨', 68915 past: '%s ਪਿà¨à¨²à©', 68916 s: 'à¨à©à¨ ਸà¨à¨¿à©°à¨', 68917 ss: '%d ਸà¨à¨¿à©°à¨', 68918 m: 'à¨à¨ ਮਿੰà¨', 68919 mm: '%d ਮਿੰà¨', 68920 h: 'à¨à©±à¨ à¨à©°à¨à¨¾', 68921 hh: '%d à¨à©°à¨à©', 68922 d: 'à¨à©±à¨ ਦਿਨ', 68923 dd: '%d ਦਿਨ', 68924 M: 'à¨à©±à¨ ਮਹà©à¨¨à¨¾', 68925 MM: '%d ਮਹà©à¨¨à©', 68926 y: 'à¨à©±à¨ ਸਾਲ', 68927 yy: '%d ਸਾਲ', 68928 }, 68929 preparse: function (string) { 68930 return string.replace(/[੧੨੩੪੫੬à©à©®à©¯à©¦]/g, function (match) { 68931 return numberMap[match]; 68932 }); 68933 }, 68934 postformat: function (string) { 68935 return string.replace(/\d/g, function (match) { 68936 return symbolMap[match]; 68937 }); 68938 }, 68939 // Punjabi notation for meridiems are quite fuzzy in practice. While there exists 68940 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. 68941 meridiemParse: /ਰਾਤ|ਸਵà©à¨°|ਦà©à¨ªà¨¹à¨¿à¨°|ਸ਼ਾਮ/, 68942 meridiemHour: function (hour, meridiem) { 68943 if (hour === 12) { 68944 hour = 0; 68945 } 68946 if (meridiem === 'ਰਾਤ') { 68947 return hour < 4 ? hour : hour + 12; 68948 } else if (meridiem === 'ਸਵà©à¨°') { 68949 return hour; 68950 } else if (meridiem === 'ਦà©à¨ªà¨¹à¨¿à¨°') { 68951 return hour >= 10 ? hour : hour + 12; 68952 } else if (meridiem === 'ਸ਼ਾਮ') { 68953 return hour + 12; 68954 } 68955 }, 68956 meridiem: function (hour, minute, isLower) { 68957 if (hour < 4) { 68958 return 'ਰਾਤ'; 68959 } else if (hour < 10) { 68960 return 'ਸਵà©à¨°'; 68961 } else if (hour < 17) { 68962 return 'ਦà©à¨ªà¨¹à¨¿à¨°'; 68963 } else if (hour < 20) { 68964 return 'ਸ਼ਾਮ'; 68965 } else { 68966 return 'ਰਾਤ'; 68967 } 68968 }, 68969 week: { 68970 dow: 0, // Sunday is the first day of the week. 68971 doy: 6, // The week that contains Jan 6th is the first week of the year. 68972 }, 68973 }); 68974 68975 return paIn; 68976 68977}))); 68978 68979 68980/***/ }), 68981
vendor: 5,171 bytes, lines 68982-69140
68982/***/ "./node_modules/moment/locale/pl.js": 68983/*!******************************************!*\ 68984 !*** ./node_modules/moment/locale/pl.js ***! 68985 \******************************************/ 68986/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 68987 68988//! moment.js locale configuration 68989//! locale : Polish [pl] 68990//! author : Rafal Hirsz : https://github.com/evoL 68991 68992;(function (global, factory) { 68993 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 68994 0 68995}(this, (function (moment) { 'use strict'; 68996 68997 //! moment.js locale configuration 68998 68999 var monthsNominative = 69000 'styczeÅ_luty_marzec_kwiecieÅ_maj_czerwiec_lipiec_sierpieÅ_wrzesieÅ_październik_listopad_grudzieÅ'.split( 69001 '_' 69002 ), 69003 monthsSubjective = 69004 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅnia_października_listopada_grudnia'.split( 69005 '_' 69006 ), 69007 monthsParse = [ 69008 /^sty/i, 69009 /^lut/i, 69010 /^mar/i, 69011 /^kwi/i, 69012 /^maj/i, 69013 /^cze/i, 69014 /^lip/i, 69015 /^sie/i, 69016 /^wrz/i, 69017 /^paź/i, 69018 /^lis/i, 69019 /^gru/i, 69020 ]; 69021 function plural(n) { 69022 return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; 69023 } 69024 function translate(number, withoutSuffix, key) { 69025 var result = number + ' '; 69026 switch (key) { 69027 case 'ss': 69028 return result + (plural(number) ? 'sekundy' : 'sekund'); 69029 case 'm': 69030 return withoutSuffix ? 'minuta' : 'minutÄ'; 69031 case 'mm': 69032 return result + (plural(number) ? 'minuty' : 'minut'); 69033 case 'h': 69034 return withoutSuffix ? 'godzina' : 'godzinÄ'; 69035 case 'hh': 69036 return result + (plural(number) ? 'godziny' : 'godzin'); 69037 case 'ww': 69038 return result + (plural(number) ? 'tygodnie' : 'tygodni'); 69039 case 'MM': 69040 return result + (plural(number) ? 'miesiÄ ce' : 'miesiÄcy'); 69041 case 'yy': 69042 return result + (plural(number) ? 'lata' : 'lat'); 69043 } 69044 } 69045 69046 var pl = moment.defineLocale('pl', { 69047 months: function (momentToFormat, format) { 69048 if (!momentToFormat) { 69049 return monthsNominative; 69050 } else if (/D MMMM/.test(format)) { 69051 return monthsSubjective[momentToFormat.month()]; 69052 } else { 69053 return monthsNominative[momentToFormat.month()]; 69054 } 69055 }, 69056 monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), 69057 monthsParse: monthsParse, 69058 longMonthsParse: monthsParse, 69059 shortMonthsParse: monthsParse, 69060 weekdays: 69061 'niedziela_poniedziaÅek_wtorek_Åroda_czwartek_piÄ tek_sobota'.split('_'), 69062 weekdaysShort: 'ndz_pon_wt_År_czw_pt_sob'.split('_'), 69063 weekdaysMin: 'Nd_Pn_Wt_År_Cz_Pt_So'.split('_'), 69064 longDateFormat: { 69065 LT: 'HH:mm', 69066 LTS: 'HH:mm:ss', 69067 L: 'DD.MM.YYYY', 69068 LL: 'D MMMM YYYY', 69069 LLL: 'D MMMM YYYY HH:mm', 69070 LLLL: 'dddd, D MMMM YYYY HH:mm', 69071 }, 69072 calendar: { 69073 sameDay: '[DziÅ o] LT', 69074 nextDay: '[Jutro o] LT', 69075 nextWeek: function () { 69076 switch (this.day()) { 69077 case 0: 69078 return '[W niedzielÄ o] LT'; 69079 69080 case 2: 69081 return '[We wtorek o] LT'; 69082 69083 case 3: 69084 return '[W ÅrodÄ o] LT'; 69085 69086 case 6: 69087 return '[W sobotÄ o] LT'; 69088 69089 default: 69090 return '[W] dddd [o] LT'; 69091 } 69092 }, 69093 lastDay: '[Wczoraj o] LT', 69094 lastWeek: function () { 69095 switch (this.day()) { 69096 case 0: 69097 return '[W zeszÅÄ niedzielÄ o] LT'; 69098 case 3: 69099 return '[W zeszÅÄ ÅrodÄ o] LT'; 69100 case 6: 69101 return '[W zeszÅÄ sobotÄ o] LT'; 69102 default: 69103 return '[W zeszÅy] dddd [o] LT'; 69104 } 69105 }, 69106 sameElse: 'L', 69107 }, 69108 relativeTime: { 69109 future: 'za %s', 69110 past: '%s temu', 69111 s: 'kilka sekund', 69112 ss: translate, 69113 m: translate, 69114 mm: translate, 69115 h: translate, 69116 hh: translate, 69117 d: '1 dzieÅ', 69118 dd: '%d dni', 69119 w: 'tydzieÅ', 69120 ww: translate, 69121 M: 'miesiÄ c', 69122 MM: translate, 69123 y: 'rok', 69124 yy: translate, 69125 }, 69126 dayOfMonthOrdinalParse: /\d{1,2}\./, 69127 ordinal: '%d.', 69128 week: { 69129 dow: 1, // Monday is the first day of the week. 69130 doy: 4, // The week that contains Jan 4th is the first week of the year. 69131 }, 69132 }); 69133 69134 return pl; 69135 69136}))); 69137 69138 69139/***/ }), 69140
vendor: 2,567 bytes, lines 69141-69217
69141/***/ "./node_modules/moment/locale/pt-br.js": 69142/*!*********************************************!*\ 69143 !*** ./node_modules/moment/locale/pt-br.js ***! 69144 \*********************************************/ 69145/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 69146 69147//! moment.js locale configuration 69148//! locale : Portuguese (Brazil) [pt-br] 69149//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira 69150 69151;(function (global, factory) { 69152 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 69153 0 69154}(this, (function (moment) { 'use strict'; 69155 69156 //! moment.js locale configuration 69157 69158 var ptBr = moment.defineLocale('pt-br', { 69159 months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( 69160 '_' 69161 ), 69162 monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), 69163 weekdays: 69164 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( 69165 '_' 69166 ), 69167 weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), 69168 weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), 69169 weekdaysParseExact: true, 69170 longDateFormat: { 69171 LT: 'HH:mm', 69172 LTS: 'HH:mm:ss', 69173 L: 'DD/MM/YYYY', 69174 LL: 'D [de] MMMM [de] YYYY', 69175 LLL: 'D [de] MMMM [de] YYYY [à s] HH:mm', 69176 LLLL: 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm', 69177 }, 69178 calendar: { 69179 sameDay: '[Hoje à s] LT', 69180 nextDay: '[Amanhã à s] LT', 69181 nextWeek: 'dddd [à s] LT', 69182 lastDay: '[Ontem à s] LT', 69183 lastWeek: function () { 69184 return this.day() === 0 || this.day() === 6 69185 ? '[Ãltimo] dddd [à s] LT' // Saturday + Sunday 69186 : '[Ãltima] dddd [à s] LT'; // Monday - Friday 69187 }, 69188 sameElse: 'L', 69189 }, 69190 relativeTime: { 69191 future: 'em %s', 69192 past: 'há %s', 69193 s: 'poucos segundos', 69194 ss: '%d segundos', 69195 m: 'um minuto', 69196 mm: '%d minutos', 69197 h: 'uma hora', 69198 hh: '%d horas', 69199 d: 'um dia', 69200 dd: '%d dias', 69201 M: 'um mês', 69202 MM: '%d meses', 69203 y: 'um ano', 69204 yy: '%d anos', 69205 }, 69206 dayOfMonthOrdinalParse: /\d{1,2}º/, 69207 ordinal: '%dº', 69208 invalidDate: 'Data inválida', 69209 }); 69210 69211 return ptBr; 69212 69213}))); 69214 69215 69216/***/ }), 69217
vendor: 2,685 bytes, lines 69218-69299
69218/***/ "./node_modules/moment/locale/pt.js": 69219/*!******************************************!*\ 69220 !*** ./node_modules/moment/locale/pt.js ***! 69221 \******************************************/ 69222/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 69223 69224//! moment.js locale configuration 69225//! locale : Portuguese [pt] 69226//! author : Jefferson : https://github.com/jalex79 69227 69228;(function (global, factory) { 69229 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 69230 0 69231}(this, (function (moment) { 'use strict'; 69232 69233 //! moment.js locale configuration 69234 69235 var pt = moment.defineLocale('pt', { 69236 months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( 69237 '_' 69238 ), 69239 monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), 69240 weekdays: 69241 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( 69242 '_' 69243 ), 69244 weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), 69245 weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), 69246 weekdaysParseExact: true, 69247 longDateFormat: { 69248 LT: 'HH:mm', 69249 LTS: 'HH:mm:ss', 69250 L: 'DD/MM/YYYY', 69251 LL: 'D [de] MMMM [de] YYYY', 69252 LLL: 'D [de] MMMM [de] YYYY HH:mm', 69253 LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', 69254 }, 69255 calendar: { 69256 sameDay: '[Hoje à s] LT', 69257 nextDay: '[Amanhã à s] LT', 69258 nextWeek: 'dddd [à s] LT', 69259 lastDay: '[Ontem à s] LT', 69260 lastWeek: function () { 69261 return this.day() === 0 || this.day() === 6 69262 ? '[Ãltimo] dddd [à s] LT' // Saturday + Sunday 69263 : '[Ãltima] dddd [à s] LT'; // Monday - Friday 69264 }, 69265 sameElse: 'L', 69266 }, 69267 relativeTime: { 69268 future: 'em %s', 69269 past: 'há %s', 69270 s: 'segundos', 69271 ss: '%d segundos', 69272 m: 'um minuto', 69273 mm: '%d minutos', 69274 h: 'uma hora', 69275 hh: '%d horas', 69276 d: 'um dia', 69277 dd: '%d dias', 69278 w: 'uma semana', 69279 ww: '%d semanas', 69280 M: 'um mês', 69281 MM: '%d meses', 69282 y: 'um ano', 69283 yy: '%d anos', 69284 }, 69285 dayOfMonthOrdinalParse: /\d{1,2}º/, 69286 ordinal: '%dº', 69287 week: { 69288 dow: 1, // Monday is the first day of the week. 69289 doy: 4, // The week that contains Jan 4th is the first week of the year. 69290 }, 69291 }); 69292 69293 return pt; 69294 69295}))); 69296 69297 69298/***/ }), 69299
vendor: 3,076 bytes, lines 69300-69394
69300/***/ "./node_modules/moment/locale/ro.js": 69301/*!******************************************!*\ 69302 !*** ./node_modules/moment/locale/ro.js ***! 69303 \******************************************/ 69304/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 69305 69306//! moment.js locale configuration 69307//! locale : Romanian [ro] 69308//! author : Vlad Gurdiga : https://github.com/gurdiga 69309//! author : Valentin Agachi : https://github.com/avaly 69310//! author : Emanuel Cepoi : https://github.com/cepem 69311 69312;(function (global, factory) { 69313 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 69314 0 69315}(this, (function (moment) { 'use strict'; 69316 69317 //! moment.js locale configuration 69318 69319 function relativeTimeWithPlural(number, withoutSuffix, key) { 69320 var format = { 69321 ss: 'secunde', 69322 mm: 'minute', 69323 hh: 'ore', 69324 dd: 'zile', 69325 ww: 'sÄptÄmâni', 69326 MM: 'luni', 69327 yy: 'ani', 69328 }, 69329 separator = ' '; 69330 if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { 69331 separator = ' de '; 69332 } 69333 return number + separator + format[key]; 69334 } 69335 69336 var ro = moment.defineLocale('ro', { 69337 months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( 69338 '_' 69339 ), 69340 monthsShort: 69341 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( 69342 '_' 69343 ), 69344 monthsParseExact: true, 69345 weekdays: 'duminicÄ_luni_marÈi_miercuri_joi_vineri_sâmbÄtÄ'.split('_'), 69346 weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), 69347 weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), 69348 longDateFormat: { 69349 LT: 'H:mm', 69350 LTS: 'H:mm:ss', 69351 L: 'DD.MM.YYYY', 69352 LL: 'D MMMM YYYY', 69353 LLL: 'D MMMM YYYY H:mm', 69354 LLLL: 'dddd, D MMMM YYYY H:mm', 69355 }, 69356 calendar: { 69357 sameDay: '[azi la] LT', 69358 nextDay: '[mâine la] LT', 69359 nextWeek: 'dddd [la] LT', 69360 lastDay: '[ieri la] LT', 69361 lastWeek: '[fosta] dddd [la] LT', 69362 sameElse: 'L', 69363 }, 69364 relativeTime: { 69365 future: 'peste %s', 69366 past: '%s în urmÄ', 69367 s: 'câteva secunde', 69368 ss: relativeTimeWithPlural, 69369 m: 'un minut', 69370 mm: relativeTimeWithPlural, 69371 h: 'o orÄ', 69372 hh: relativeTimeWithPlural, 69373 d: 'o zi', 69374 dd: relativeTimeWithPlural, 69375 w: 'o sÄptÄmânÄ', 69376 ww: relativeTimeWithPlural, 69377 M: 'o lunÄ', 69378 MM: relativeTimeWithPlural, 69379 y: 'un an', 69380 yy: relativeTimeWithPlural, 69381 }, 69382 week: { 69383 dow: 1, // Monday is the first day of the week. 69384 doy: 7, // The week that contains Jan 7th is the first week of the year. 69385 }, 69386 }); 69387 69388 return ro; 69389 69390}))); 69391 69392 69393/***/ }), 69394
vendor: 9,711 bytes, lines 69395-69626
69395/***/ "./node_modules/moment/locale/ru.js": 69396/*!******************************************!*\ 69397 !*** ./node_modules/moment/locale/ru.js ***! 69398 \******************************************/ 69399/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 69400 69401//! moment.js locale configuration 69402//! locale : Russian [ru] 69403//! author : Viktorminator : https://github.com/Viktorminator 69404//! author : Menelion Elensúle : https://github.com/Oire 69405//! author : ÐоÑенбеÑг ÐаÑк : https://github.com/socketpair 69406 69407;(function (global, factory) { 69408 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 69409 0 69410}(this, (function (moment) { 'use strict'; 69411 69412 //! moment.js locale configuration 69413 69414 function plural(word, num) { 69415 var forms = word.split('_'); 69416 return num % 10 === 1 && num % 100 !== 11 69417 ? forms[0] 69418 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) 69419 ? forms[1] 69420 : forms[2]; 69421 } 69422 function relativeTimeWithPlural(number, withoutSuffix, key) { 69423 var format = { 69424 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑндÑ_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑндÑ_ÑекÑнд', 69425 mm: withoutSuffix ? 'минÑÑа_минÑÑÑ_минÑÑ' : 'минÑÑÑ_минÑÑÑ_минÑÑ', 69426 hh: 'ÑаÑ_ÑаÑа_ÑаÑов', 69427 dd: 'денÑ_днÑ_дней', 69428 ww: 'неделÑ_недели_неделÑ', 69429 MM: 'меÑÑÑ_меÑÑÑа_меÑÑÑев', 69430 yy: 'год_года_леÑ', 69431 }; 69432 if (key === 'm') { 69433 return withoutSuffix ? 'минÑÑа' : 'минÑÑÑ'; 69434 } else { 69435 return number + ' ' + plural(format[key], +number); 69436 } 69437 } 69438 var monthsParse = [ 69439 /^Ñнв/i, 69440 /^Ñев/i, 69441 /^маÑ/i, 69442 /^апÑ/i, 69443 /^ма[йÑ]/i, 69444 /^иÑн/i, 69445 /^иÑл/i, 69446 /^авг/i, 69447 /^Ñен/i, 69448 /^окÑ/i, 69449 /^ноÑ/i, 69450 /^дек/i, 69451 ]; 69452 69453 // http://new.gramota.ru/spravka/rules/139-prop : § 103 69454 // СокÑаÑÐµÐ½Ð¸Ñ Ð¼ÐµÑÑÑев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 69455 // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 69456 var ru = moment.defineLocale('ru', { 69457 months: { 69458 format: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑа_апÑелÑ_маÑ_иÑнÑ_иÑлÑ_авгÑÑÑа_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split( 69459 '_' 69460 ), 69461 standalone: 69462 'ÑнваÑÑ_ÑевÑалÑ_маÑÑ_апÑелÑ_май_иÑнÑ_иÑлÑ_авгÑÑÑ_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split( 69463 '_' 69464 ), 69465 }, 69466 monthsShort: { 69467 // по CLDR именно "иÑл." и "иÑн.", но какой ÑмÑÑл менÑÑÑ Ð±ÑÐºÐ²Ñ Ð½Ð° ÑоÑкÑ? 69468 format: 'Ñнв._ÑевÑ._маÑ._апÑ._маÑ_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split( 69469 '_' 69470 ), 69471 standalone: 69472 'Ñнв._ÑевÑ._маÑÑ_апÑ._май_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split( 69473 '_' 69474 ), 69475 }, 69476 weekdays: { 69477 standalone: 69478 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑеда_ÑеÑвеÑг_пÑÑниÑа_ÑÑббоÑа'.split( 69479 '_' 69480 ), 69481 format: 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑедÑ_ÑеÑвеÑг_пÑÑниÑÑ_ÑÑббоÑÑ'.split( 69482 '_' 69483 ), 69484 isFormat: /\[ ?[Ðв] ?(?:пÑоÑлÑÑ|ÑледÑÑÑÑÑ|ÑÑÑ)? ?] ?dddd/, 69485 }, 69486 weekdaysShort: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 69487 weekdaysMin: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 69488 monthsParse: monthsParse, 69489 longMonthsParse: monthsParse, 69490 shortMonthsParse: monthsParse, 69491 69492 // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по ÑÑи бÑквÑ, Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ , по 4 бÑквÑ, ÑокÑаÑÐµÐ½Ð¸Ñ Ñ ÑоÑкой и без ÑоÑки 69493 monthsRegex: 69494 /^(ÑнваÑ[ÑÑ]|Ñнв\.?|ÑевÑал[ÑÑ]|ÑевÑ?\.?|маÑÑа?|маÑ\.?|апÑел[ÑÑ]|апÑ\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\.?|иÑл[ÑÑ]|иÑл\.?|авгÑÑÑа?|авг\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\.?|окÑÑбÑ[ÑÑ]|окÑ\.?|ноÑбÑ[ÑÑ]|ноÑб?\.?|декабÑ[ÑÑ]|дек\.?)/i, 69495 69496 // ÐºÐ¾Ð¿Ð¸Ñ Ð¿ÑедÑдÑÑего 69497 monthsShortRegex: 69498 /^(ÑнваÑ[ÑÑ]|Ñнв\.?|ÑевÑал[ÑÑ]|ÑевÑ?\.?|маÑÑа?|маÑ\.?|апÑел[ÑÑ]|апÑ\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\.?|иÑл[ÑÑ]|иÑл\.?|авгÑÑÑа?|авг\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\.?|окÑÑбÑ[ÑÑ]|окÑ\.?|ноÑбÑ[ÑÑ]|ноÑб?\.?|декабÑ[ÑÑ]|дек\.?)/i, 69499 69500 // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸ 69501 monthsStrictRegex: 69502 /^(ÑнваÑ[ÑÑ]|ÑевÑал[ÑÑ]|маÑÑа?|апÑел[ÑÑ]|ма[Ñй]|иÑн[ÑÑ]|иÑл[ÑÑ]|авгÑÑÑа?|ÑенÑÑбÑ[ÑÑ]|окÑÑбÑ[ÑÑ]|ноÑбÑ[ÑÑ]|декабÑ[ÑÑ])/i, 69503 69504 // ÐÑÑажение, коÑоÑое ÑооÑвеÑÑÑвÑÐµÑ ÑолÑко ÑокÑаÑÑннÑм ÑоÑмам 69505 monthsShortStrictRegex: 69506 /^(Ñнв\.|ÑевÑ?\.|маÑ[Ñ.]|апÑ\.|ма[Ñй]|иÑн[ÑÑ.]|иÑл[ÑÑ.]|авг\.|ÑенÑ?\.|окÑ\.|ноÑб?\.|дек\.)/i, 69507 longDateFormat: { 69508 LT: 'H:mm', 69509 LTS: 'H:mm:ss', 69510 L: 'DD.MM.YYYY', 69511 LL: 'D MMMM YYYY г.', 69512 LLL: 'D MMMM YYYY г., H:mm', 69513 LLLL: 'dddd, D MMMM YYYY г., H:mm', 69514 }, 69515 calendar: { 69516 sameDay: '[СегоднÑ, в] LT', 69517 nextDay: '[ÐавÑÑа, в] LT', 69518 lastDay: '[ÐÑеÑа, в] LT', 69519 nextWeek: function (now) { 69520 if (now.week() !== this.week()) { 69521 switch (this.day()) { 69522 case 0: 69523 return '[Ð ÑледÑÑÑее] dddd, [в] LT'; 69524 case 1: 69525 case 2: 69526 case 4: 69527 return '[Ð ÑледÑÑÑий] dddd, [в] LT'; 69528 case 3: 69529 case 5: 69530 case 6: 69531 return '[Ð ÑледÑÑÑÑÑ] dddd, [в] LT'; 69532 } 69533 } else { 69534 if (this.day() === 2) { 69535 return '[Ðо] dddd, [в] LT'; 69536 } else { 69537 return '[Ð] dddd, [в] LT'; 69538 } 69539 } 69540 }, 69541 lastWeek: function (now) { 69542 if (now.week() !== this.week()) { 69543 switch (this.day()) { 69544 case 0: 69545 return '[РпÑоÑлое] dddd, [в] LT'; 69546 case 1: 69547 case 2: 69548 case 4: 69549 return '[РпÑоÑлÑй] dddd, [в] LT'; 69550 case 3: 69551 case 5: 69552 case 6: 69553 return '[РпÑоÑлÑÑ] dddd, [в] LT'; 69554 } 69555 } else { 69556 if (this.day() === 2) { 69557 return '[Ðо] dddd, [в] LT'; 69558 } else { 69559 return '[Ð] dddd, [в] LT'; 69560 } 69561 } 69562 }, 69563 sameElse: 'L', 69564 }, 69565 relativeTime: { 69566 future: 'ÑеÑез %s', 69567 past: '%s назад', 69568 s: 'неÑколÑко ÑекÑнд', 69569 ss: relativeTimeWithPlural, 69570 m: relativeTimeWithPlural, 69571 mm: relativeTimeWithPlural, 69572 h: 'ÑаÑ', 69573 hh: relativeTimeWithPlural, 69574 d: 'денÑ', 69575 dd: relativeTimeWithPlural, 69576 w: 'неделÑ', 69577 ww: relativeTimeWithPlural, 69578 M: 'меÑÑÑ', 69579 MM: relativeTimeWithPlural, 69580 y: 'год', 69581 yy: relativeTimeWithPlural, 69582 }, 69583 meridiemParse: /ноÑи|ÑÑÑа|днÑ|веÑеÑа/i, 69584 isPM: function (input) { 69585 return /^(днÑ|веÑеÑа)$/.test(input); 69586 }, 69587 meridiem: function (hour, minute, isLower) { 69588 if (hour < 4) { 69589 return 'ноÑи'; 69590 } else if (hour < 12) { 69591 return 'ÑÑÑа'; 69592 } else if (hour < 17) { 69593 return 'днÑ'; 69594 } else { 69595 return 'веÑеÑа'; 69596 } 69597 }, 69598 dayOfMonthOrdinalParse: /\d{1,2}-(й|го|Ñ)/, 69599 ordinal: function (number, period) { 69600 switch (period) { 69601 case 'M': 69602 case 'd': 69603 case 'DDD': 69604 return number + '-й'; 69605 case 'D': 69606 return number + '-го'; 69607 case 'w': 69608 case 'W': 69609 return number + '-Ñ'; 69610 default: 69611 return number; 69612 } 69613 }, 69614 week: { 69615 dow: 1, // Monday is the first day of the week. 69616 doy: 4, // The week that contains Jan 4th is the first week of the year. 69617 }, 69618 }); 69619 69620 return ru; 69621 69622}))); 69623 69624 69625/***/ }), 69626
vendor: 2,938 bytes, lines 69627-69726
69627/***/ "./node_modules/moment/locale/sd.js": 69628/*!******************************************!*\ 69629 !*** ./node_modules/moment/locale/sd.js ***! 69630 \******************************************/ 69631/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 69632 69633//! moment.js locale configuration 69634//! locale : Sindhi [sd] 69635//! author : Narain Sagar : https://github.com/narainsagar 69636 69637;(function (global, factory) { 69638 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 69639 0 69640}(this, (function (moment) { 'use strict'; 69641 69642 //! moment.js locale configuration 69643 69644 var months = [ 69645 'جÙÙØ±Ù', 69646 'ÙÙØ¨Ø±ÙرÙ', 69647 '٠ارÚ', 69648 'اپرÙÙ', 69649 '٠ئÙ', 69650 'جÙÙ', 69651 'جÙÙØ§Ø¡Ù', 69652 'آگسٽ', 69653 'سÙپٽ٠بر', 69654 'Ø¢ÚªÙ½ÙØ¨Ø±', 69655 'ÙÙ٠بر', 69656 'ÚØ³Ù بر', 69657 ], 69658 days = ['Ø¢ÚØ±', 'سÙ٠ر', 'اڱارÙ', 'اربع', 'Ø®Ù ÙØ³', 'ج٠ع', 'ÚÙÚØ±']; 69659 69660 var sd = moment.defineLocale('sd', { 69661 months: months, 69662 monthsShort: months, 69663 weekdays: days, 69664 weekdaysShort: days, 69665 weekdaysMin: days, 69666 longDateFormat: { 69667 LT: 'HH:mm', 69668 LTS: 'HH:mm:ss', 69669 L: 'DD/MM/YYYY', 69670 LL: 'D MMMM YYYY', 69671 LLL: 'D MMMM YYYY HH:mm', 69672 LLLL: 'ddddØ D MMMM YYYY HH:mm', 69673 }, 69674 meridiemParse: /صبØ|شا٠/, 69675 isPM: function (input) { 69676 return 'شا٠' === input; 69677 }, 69678 meridiem: function (hour, minute, isLower) { 69679 if (hour < 12) { 69680 return 'صبØ'; 69681 } 69682 return 'شا٠'; 69683 }, 69684 calendar: { 69685 sameDay: '[اÚ] LT', 69686 nextDay: '[Ø³ÚØ§Ú»Ù] LT', 69687 nextWeek: 'dddd [اڳÙÙ ÙÙØªÙ تÙ] LT', 69688 lastDay: '[ڪاÙÙÙ] LT', 69689 lastWeek: '[گزرÙÙ ÙÙØªÙ] dddd [تÙ] LT', 69690 sameElse: 'L', 69691 }, 69692 relativeTime: { 69693 future: '%s Ù¾ÙØ¡', 69694 past: '%s اڳ', 69695 s: 'ÚÙØ¯ سÙÚªÙÚ', 69696 ss: '%d سÙÚªÙÚ', 69697 m: 'ÙÚª Ù ÙÙ½', 69698 mm: '%d Ù ÙÙ½', 69699 h: 'ÙÚª ÚªÙØ§Úª', 69700 hh: '%d ÚªÙØ§Úª', 69701 d: 'ÙÚª ÚÙÙÙÙ', 69702 dd: '%d ÚÙÙÙÙ', 69703 M: 'ÙÚª Ù ÙÙÙÙ', 69704 MM: '%d Ù ÙÙÙØ§', 69705 y: 'ÙÚª ساÙ', 69706 yy: '%d ساÙ', 69707 }, 69708 preparse: function (string) { 69709 return string.replace(/Ø/g, ','); 69710 }, 69711 postformat: function (string) { 69712 return string.replace(/,/g, 'Ø'); 69713 }, 69714 week: { 69715 dow: 1, // Monday is the first day of the week. 69716 doy: 4, // The week that contains Jan 4th is the first week of the year. 69717 }, 69718 }); 69719 69720 return sd; 69721 69722}))); 69723 69724 69725/***/ }), 69726
vendor: 2,542 bytes, lines 69727-69802
69727/***/ "./node_modules/moment/locale/se.js": 69728/*!******************************************!*\ 69729 !*** ./node_modules/moment/locale/se.js ***! 69730 \******************************************/ 69731/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 69732 69733//! moment.js locale configuration 69734//! locale : Northern Sami [se] 69735//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell 69736 69737;(function (global, factory) { 69738 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 69739 0 69740}(this, (function (moment) { 'use strict'; 69741 69742 //! moment.js locale configuration 69743 69744 var se = moment.defineLocale('se', { 69745 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( 69746 '_' 69747 ), 69748 monthsShort: 69749 'oÄÄj_guov_njuk_cuo_mies_geas_suoi_borg_ÄakÄ_golg_skáb_juov'.split('_'), 69750 weekdays: 69751 'sotnabeaivi_vuossárga_maÅÅebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( 69752 '_' 69753 ), 69754 weekdaysShort: 'sotn_vuos_maÅ_gask_duor_bear_láv'.split('_'), 69755 weekdaysMin: 's_v_m_g_d_b_L'.split('_'), 69756 longDateFormat: { 69757 LT: 'HH:mm', 69758 LTS: 'HH:mm:ss', 69759 L: 'DD.MM.YYYY', 69760 LL: 'MMMM D. [b.] YYYY', 69761 LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', 69762 LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', 69763 }, 69764 calendar: { 69765 sameDay: '[otne ti] LT', 69766 nextDay: '[ihttin ti] LT', 69767 nextWeek: 'dddd [ti] LT', 69768 lastDay: '[ikte ti] LT', 69769 lastWeek: '[ovddit] dddd [ti] LT', 69770 sameElse: 'L', 69771 }, 69772 relativeTime: { 69773 future: '%s geažes', 69774 past: 'maÅit %s', 69775 s: 'moadde sekunddat', 69776 ss: '%d sekunddat', 69777 m: 'okta minuhta', 69778 mm: '%d minuhtat', 69779 h: 'okta diimmu', 69780 hh: '%d diimmut', 69781 d: 'okta beaivi', 69782 dd: '%d beaivvit', 69783 M: 'okta mánnu', 69784 MM: '%d mánut', 69785 y: 'okta jahki', 69786 yy: '%d jagit', 69787 }, 69788 dayOfMonthOrdinalParse: /\d{1,2}\./, 69789 ordinal: '%d.', 69790 week: { 69791 dow: 1, // Monday is the first day of the week. 69792 doy: 4, // The week that contains Jan 4th is the first week of the year. 69793 }, 69794 }); 69795 69796 return se; 69797 69798}))); 69799 69800 69801/***/ }), 69802
vendor: 3,422 bytes, lines 69803-69890
69803/***/ "./node_modules/moment/locale/si.js": 69804/*!******************************************!*\ 69805 !*** ./node_modules/moment/locale/si.js ***! 69806 \******************************************/ 69807/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 69808 69809//! moment.js locale configuration 69810//! locale : Sinhalese [si] 69811//! author : Sampath Sitinamaluwa : https://github.com/sampathsris 69812 69813;(function (global, factory) { 69814 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 69815 0 69816}(this, (function (moment) { 'use strict'; 69817 69818 //! moment.js locale configuration 69819 69820 /*jshint -W100*/ 69821 var si = moment.defineLocale('si', { 69822 months: 'ජනà·à·à¶»à·_à¶´à·à¶¶à¶»à·à·à¶»à·_මà·à¶»à·à¶à·_à¶ à¶´à·âà¶»à·à¶½à·_මà·à¶ºà·_à¶¢à·à¶±à·_à¶¢à·à¶½à·_à¶ à¶à·à·à·à¶à·_à·à·à¶´à·à¶à·à¶¸à·à¶¶à¶»à·_à¶à¶à·à¶à·à¶¶à¶»à·_à¶±à·à·à·à¶¸à·à¶¶à¶»à·_දà·à·à·à¶¸à·à¶¶à¶»à·'.split( 69823 '_' 69824 ), 69825 monthsShort: 'ජන_à¶´à·à¶¶_මà·à¶»à·_à¶ à¶´à·_මà·à¶ºà·_à¶¢à·à¶±à·_à¶¢à·à¶½à·_à¶ à¶à·_à·à·à¶´à·_à¶à¶à·_à¶±à·à·à·_දà·à·à·'.split( 69826 '_' 69827 ), 69828 weekdays: 69829 'à¶à¶»à·à¶¯à·_à·à¶³à·à¶¯à·_à¶ à¶à·à¶»à·à·à·à¶¯à·_බදà·à¶¯à·_à¶¶à·âà¶»à·à·à·à¶´à¶à·à¶±à·à¶¯à·_à·à·à¶à·à¶»à·à¶¯à·_à·à·à¶±à·à·à¶»à·à¶¯à·'.split( 69830 '_' 69831 ), 69832 weekdaysShort: 'à¶à¶»à·_à·à¶³à·_à¶ à¶_බදà·_à¶¶à·âà¶»à·_à·à·à¶à·_à·à·à¶±'.split('_'), 69833 weekdaysMin: 'à¶_à·_à¶ _à¶¶_à¶¶à·âà¶»_à·à·_à·à·'.split('_'), 69834 weekdaysParseExact: true, 69835 longDateFormat: { 69836 LT: 'a h:mm', 69837 LTS: 'a h:mm:ss', 69838 L: 'YYYY/MM/DD', 69839 LL: 'YYYY MMMM D', 69840 LLL: 'YYYY MMMM D, a h:mm', 69841 LLLL: 'YYYY MMMM D [à·à·à¶±à·] dddd, a h:mm:ss', 69842 }, 69843 calendar: { 69844 sameDay: '[චද] LT[à¶§]', 69845 nextDay: '[à·à·à¶§] LT[à¶§]', 69846 nextWeek: 'dddd LT[à¶§]', 69847 lastDay: '[à¶à¶ºà·] LT[à¶§]', 69848 lastWeek: '[à¶´à·à·à¶à·à¶º] dddd LT[à¶§]', 69849 sameElse: 'L', 69850 }, 69851 relativeTime: { 69852 future: '%sà¶à·à¶±à·', 69853 past: '%sà¶à¶§ à¶´à·à¶»', 69854 s: 'à¶à¶à·à¶´à¶» à¶à·à·à·à¶´à¶º', 69855 ss: 'à¶à¶à·à¶´à¶» %d', 69856 m: 'මà·à¶±à·à¶à·à¶à·à·', 69857 mm: 'මà·à¶±à·à¶à·à¶à· %d', 69858 h: 'à¶´à·à¶º', 69859 hh: 'à¶´à·à¶º %d', 69860 d: 'දà·à¶±à¶º', 69861 dd: 'දà·à¶± %d', 69862 M: 'මà·à·à¶º', 69863 MM: 'මà·à· %d', 69864 y: 'à·à·à¶»', 69865 yy: 'à·à·à¶» %d', 69866 }, 69867 dayOfMonthOrdinalParse: /\d{1,2} à·à·à¶±à·/, 69868 ordinal: function (number) { 69869 return number + ' à·à·à¶±à·'; 69870 }, 69871 meridiemParse: /à¶´à·à¶» à·à¶»à·|à¶´à·à· à·à¶»à·|à¶´à·.à·|à¶´.à·./, 69872 isPM: function (input) { 69873 return input === 'à¶´.à·.' || input === 'à¶´à·à· à·à¶»à·'; 69874 }, 69875 meridiem: function (hours, minutes, isLower) { 69876 if (hours > 11) { 69877 return isLower ? 'à¶´.à·.' : 'à¶´à·à· à·à¶»à·'; 69878 } else { 69879 return isLower ? 'à¶´à·.à·.' : 'à¶´à·à¶» à·à¶»à·'; 69880 } 69881 }, 69882 }); 69883 69884 return si; 69885 69886}))); 69887 69888 69889/***/ }), 69890
vendor: 6,210 bytes, lines 69891-70054
69891/***/ "./node_modules/moment/locale/sk.js": 69892/*!******************************************!*\ 69893 !*** ./node_modules/moment/locale/sk.js ***! 69894 \******************************************/ 69895/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 69896 69897//! moment.js locale configuration 69898//! locale : Slovak [sk] 69899//! author : Martin Minka : https://github.com/k2s 69900//! based on work of petrbela : https://github.com/petrbela 69901 69902;(function (global, factory) { 69903 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 69904 0 69905}(this, (function (moment) { 'use strict'; 69906 69907 //! moment.js locale configuration 69908 69909 var months = 69910 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split( 69911 '_' 69912 ), 69913 monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); 69914 function plural(n) { 69915 return n > 1 && n < 5; 69916 } 69917 function translate(number, withoutSuffix, key, isFuture) { 69918 var result = number + ' '; 69919 switch (key) { 69920 case 's': // a few seconds / in a few seconds / a few seconds ago 69921 return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; 69922 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago 69923 if (withoutSuffix || isFuture) { 69924 return result + (plural(number) ? 'sekundy' : 'sekúnd'); 69925 } else { 69926 return result + 'sekundami'; 69927 } 69928 case 'm': // a minute / in a minute / a minute ago 69929 return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; 69930 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago 69931 if (withoutSuffix || isFuture) { 69932 return result + (plural(number) ? 'minúty' : 'minút'); 69933 } else { 69934 return result + 'minútami'; 69935 } 69936 case 'h': // an hour / in an hour / an hour ago 69937 return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; 69938 case 'hh': // 9 hours / in 9 hours / 9 hours ago 69939 if (withoutSuffix || isFuture) { 69940 return result + (plural(number) ? 'hodiny' : 'hodÃn'); 69941 } else { 69942 return result + 'hodinami'; 69943 } 69944 case 'd': // a day / in a day / a day ago 69945 return withoutSuffix || isFuture ? 'deÅ' : 'dÅom'; 69946 case 'dd': // 9 days / in 9 days / 9 days ago 69947 if (withoutSuffix || isFuture) { 69948 return result + (plural(number) ? 'dni' : 'dnÃ'); 69949 } else { 69950 return result + 'dÅami'; 69951 } 69952 case 'M': // a month / in a month / a month ago 69953 return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; 69954 case 'MM': // 9 months / in 9 months / 9 months ago 69955 if (withoutSuffix || isFuture) { 69956 return result + (plural(number) ? 'mesiace' : 'mesiacov'); 69957 } else { 69958 return result + 'mesiacmi'; 69959 } 69960 case 'y': // a year / in a year / a year ago 69961 return withoutSuffix || isFuture ? 'rok' : 'rokom'; 69962 case 'yy': // 9 years / in 9 years / 9 years ago 69963 if (withoutSuffix || isFuture) { 69964 return result + (plural(number) ? 'roky' : 'rokov'); 69965 } else { 69966 return result + 'rokmi'; 69967 } 69968 } 69969 } 69970 69971 var sk = moment.defineLocale('sk', { 69972 months: months, 69973 monthsShort: monthsShort, 69974 weekdays: 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'), 69975 weekdaysShort: 'ne_po_ut_st_Å¡t_pi_so'.split('_'), 69976 weekdaysMin: 'ne_po_ut_st_Å¡t_pi_so'.split('_'), 69977 longDateFormat: { 69978 LT: 'H:mm', 69979 LTS: 'H:mm:ss', 69980 L: 'DD.MM.YYYY', 69981 LL: 'D. MMMM YYYY', 69982 LLL: 'D. MMMM YYYY H:mm', 69983 LLLL: 'dddd D. MMMM YYYY H:mm', 69984 }, 69985 calendar: { 69986 sameDay: '[dnes o] LT', 69987 nextDay: '[zajtra o] LT', 69988 nextWeek: function () { 69989 switch (this.day()) { 69990 case 0: 69991 return '[v nedeľu o] LT'; 69992 case 1: 69993 case 2: 69994 return '[v] dddd [o] LT'; 69995 case 3: 69996 return '[v stredu o] LT'; 69997 case 4: 69998 return '[vo Å¡tvrtok o] LT'; 69999 case 5: 70000 return '[v piatok o] LT'; 70001 case 6: 70002 return '[v sobotu o] LT'; 70003 } 70004 }, 70005 lastDay: '[vÄera o] LT', 70006 lastWeek: function () { 70007 switch (this.day()) { 70008 case 0: 70009 return '[minulú nedeľu o] LT'; 70010 case 1: 70011 case 2: 70012 return '[minulý] dddd [o] LT'; 70013 case 3: 70014 return '[minulú stredu o] LT'; 70015 case 4: 70016 case 5: 70017 return '[minulý] dddd [o] LT'; 70018 case 6: 70019 return '[minulú sobotu o] LT'; 70020 } 70021 }, 70022 sameElse: 'L', 70023 }, 70024 relativeTime: { 70025 future: 'za %s', 70026 past: 'pred %s', 70027 s: translate, 70028 ss: translate, 70029 m: translate, 70030 mm: translate, 70031 h: translate, 70032 hh: translate, 70033 d: translate, 70034 dd: translate, 70035 M: translate, 70036 MM: translate, 70037 y: translate, 70038 yy: translate, 70039 }, 70040 dayOfMonthOrdinalParse: /\d{1,2}\./, 70041 ordinal: '%d.', 70042 week: { 70043 dow: 1, // Monday is the first day of the week. 70044 doy: 4, // The week that contains Jan 4th is the first week of the year. 70045 }, 70046 }); 70047 70048 return sk; 70049 70050}))); 70051 70052 70053/***/ }), 70054
vendor: 7,256 bytes, lines 70055-70244
70055/***/ "./node_modules/moment/locale/sl.js": 70056/*!******************************************!*\ 70057 !*** ./node_modules/moment/locale/sl.js ***! 70058 \******************************************/ 70059/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 70060 70061//! moment.js locale configuration 70062//! locale : Slovenian [sl] 70063//! author : Robert SedovÅ¡ek : https://github.com/sedovsek 70064 70065;(function (global, factory) { 70066 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 70067 0 70068}(this, (function (moment) { 'use strict'; 70069 70070 //! moment.js locale configuration 70071 70072 function processRelativeTime(number, withoutSuffix, key, isFuture) { 70073 var result = number + ' '; 70074 switch (key) { 70075 case 's': 70076 return withoutSuffix || isFuture 70077 ? 'nekaj sekund' 70078 : 'nekaj sekundami'; 70079 case 'ss': 70080 if (number === 1) { 70081 result += withoutSuffix ? 'sekundo' : 'sekundi'; 70082 } else if (number === 2) { 70083 result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; 70084 } else if (number < 5) { 70085 result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; 70086 } else { 70087 result += 'sekund'; 70088 } 70089 return result; 70090 case 'm': 70091 return withoutSuffix ? 'ena minuta' : 'eno minuto'; 70092 case 'mm': 70093 if (number === 1) { 70094 result += withoutSuffix ? 'minuta' : 'minuto'; 70095 } else if (number === 2) { 70096 result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; 70097 } else if (number < 5) { 70098 result += withoutSuffix || isFuture ? 'minute' : 'minutami'; 70099 } else { 70100 result += withoutSuffix || isFuture ? 'minut' : 'minutami'; 70101 } 70102 return result; 70103 case 'h': 70104 return withoutSuffix ? 'ena ura' : 'eno uro'; 70105 case 'hh': 70106 if (number === 1) { 70107 result += withoutSuffix ? 'ura' : 'uro'; 70108 } else if (number === 2) { 70109 result += withoutSuffix || isFuture ? 'uri' : 'urama'; 70110 } else if (number < 5) { 70111 result += withoutSuffix || isFuture ? 'ure' : 'urami'; 70112 } else { 70113 result += withoutSuffix || isFuture ? 'ur' : 'urami'; 70114 } 70115 return result; 70116 case 'd': 70117 return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; 70118 case 'dd': 70119 if (number === 1) { 70120 result += withoutSuffix || isFuture ? 'dan' : 'dnem'; 70121 } else if (number === 2) { 70122 result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; 70123 } else { 70124 result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; 70125 } 70126 return result; 70127 case 'M': 70128 return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; 70129 case 'MM': 70130 if (number === 1) { 70131 result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; 70132 } else if (number === 2) { 70133 result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; 70134 } else if (number < 5) { 70135 result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; 70136 } else { 70137 result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; 70138 } 70139 return result; 70140 case 'y': 70141 return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; 70142 case 'yy': 70143 if (number === 1) { 70144 result += withoutSuffix || isFuture ? 'leto' : 'letom'; 70145 } else if (number === 2) { 70146 result += withoutSuffix || isFuture ? 'leti' : 'letoma'; 70147 } else if (number < 5) { 70148 result += withoutSuffix || isFuture ? 'leta' : 'leti'; 70149 } else { 70150 result += withoutSuffix || isFuture ? 'let' : 'leti'; 70151 } 70152 return result; 70153 } 70154 } 70155 70156 var sl = moment.defineLocale('sl', { 70157 months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( 70158 '_' 70159 ), 70160 monthsShort: 70161 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( 70162 '_' 70163 ), 70164 monthsParseExact: true, 70165 weekdays: 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'), 70166 weekdaysShort: 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'), 70167 weekdaysMin: 'ne_po_to_sr_Äe_pe_so'.split('_'), 70168 weekdaysParseExact: true, 70169 longDateFormat: { 70170 LT: 'H:mm', 70171 LTS: 'H:mm:ss', 70172 L: 'DD. MM. YYYY', 70173 LL: 'D. MMMM YYYY', 70174 LLL: 'D. MMMM YYYY H:mm', 70175 LLLL: 'dddd, D. MMMM YYYY H:mm', 70176 }, 70177 calendar: { 70178 sameDay: '[danes ob] LT', 70179 nextDay: '[jutri ob] LT', 70180 70181 nextWeek: function () { 70182 switch (this.day()) { 70183 case 0: 70184 return '[v] [nedeljo] [ob] LT'; 70185 case 3: 70186 return '[v] [sredo] [ob] LT'; 70187 case 6: 70188 return '[v] [soboto] [ob] LT'; 70189 case 1: 70190 case 2: 70191 case 4: 70192 case 5: 70193 return '[v] dddd [ob] LT'; 70194 } 70195 }, 70196 lastDay: '[vÄeraj ob] LT', 70197 lastWeek: function () { 70198 switch (this.day()) { 70199 case 0: 70200 return '[prejÅ¡njo] [nedeljo] [ob] LT'; 70201 case 3: 70202 return '[prejÅ¡njo] [sredo] [ob] LT'; 70203 case 6: 70204 return '[prejÅ¡njo] [soboto] [ob] LT'; 70205 case 1: 70206 case 2: 70207 case 4: 70208 case 5: 70209 return '[prejÅ¡nji] dddd [ob] LT'; 70210 } 70211 }, 70212 sameElse: 'L', 70213 }, 70214 relativeTime: { 70215 future: 'Äez %s', 70216 past: 'pred %s', 70217 s: processRelativeTime, 70218 ss: processRelativeTime, 70219 m: processRelativeTime, 70220 mm: processRelativeTime, 70221 h: processRelativeTime, 70222 hh: processRelativeTime, 70223 d: processRelativeTime, 70224 dd: processRelativeTime, 70225 M: processRelativeTime, 70226 MM: processRelativeTime, 70227 y: processRelativeTime, 70228 yy: processRelativeTime, 70229 }, 70230 dayOfMonthOrdinalParse: /\d{1,2}\./, 70231 ordinal: '%d.', 70232 week: { 70233 dow: 1, // Monday is the first day of the week. 70234 doy: 7, // The week that contains Jan 7th is the first week of the year. 70235 }, 70236 }); 70237 70238 return sl; 70239 70240}))); 70241 70242 70243/***/ }), 70244
vendor: 2,704 bytes, lines 70245-70328
70245/***/ "./node_modules/moment/locale/sq.js": 70246/*!******************************************!*\ 70247 !*** ./node_modules/moment/locale/sq.js ***! 70248 \******************************************/ 70249/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 70250 70251//! moment.js locale configuration 70252//! locale : Albanian [sq] 70253//! author : Flakërim Ismani : https://github.com/flakerimi 70254//! author : Menelion Elensúle : https://github.com/Oire 70255//! author : Oerd Cukalla : https://github.com/oerd 70256 70257;(function (global, factory) { 70258 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 70259 0 70260}(this, (function (moment) { 'use strict'; 70261 70262 //! moment.js locale configuration 70263 70264 var sq = moment.defineLocale('sq', { 70265 months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( 70266 '_' 70267 ), 70268 monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), 70269 weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( 70270 '_' 70271 ), 70272 weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), 70273 weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), 70274 weekdaysParseExact: true, 70275 meridiemParse: /PD|MD/, 70276 isPM: function (input) { 70277 return input.charAt(0) === 'M'; 70278 }, 70279 meridiem: function (hours, minutes, isLower) { 70280 return hours < 12 ? 'PD' : 'MD'; 70281 }, 70282 longDateFormat: { 70283 LT: 'HH:mm', 70284 LTS: 'HH:mm:ss', 70285 L: 'DD/MM/YYYY', 70286 LL: 'D MMMM YYYY', 70287 LLL: 'D MMMM YYYY HH:mm', 70288 LLLL: 'dddd, D MMMM YYYY HH:mm', 70289 }, 70290 calendar: { 70291 sameDay: '[Sot në] LT', 70292 nextDay: '[Nesër në] LT', 70293 nextWeek: 'dddd [në] LT', 70294 lastDay: '[Dje në] LT', 70295 lastWeek: 'dddd [e kaluar në] LT', 70296 sameElse: 'L', 70297 }, 70298 relativeTime: { 70299 future: 'në %s', 70300 past: '%s më parë', 70301 s: 'disa sekonda', 70302 ss: '%d sekonda', 70303 m: 'një minutë', 70304 mm: '%d minuta', 70305 h: 'një orë', 70306 hh: '%d orë', 70307 d: 'një ditë', 70308 dd: '%d ditë', 70309 M: 'një muaj', 70310 MM: '%d muaj', 70311 y: 'një vit', 70312 yy: '%d vite', 70313 }, 70314 dayOfMonthOrdinalParse: /\d{1,2}\./, 70315 ordinal: '%d.', 70316 week: { 70317 dow: 1, // Monday is the first day of the week. 70318 doy: 4, // The week that contains Jan 4th is the first week of the year. 70319 }, 70320 }); 70321 70322 return sq; 70323 70324}))); 70325 70326 70327/***/ }), 70328
vendor: 5,743 bytes, lines 70329-70474
70329/***/ "./node_modules/moment/locale/sr-cyrl.js": 70330/*!***********************************************!*\ 70331 !*** ./node_modules/moment/locale/sr-cyrl.js ***! 70332 \***********************************************/ 70333/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 70334 70335//! moment.js locale configuration 70336//! locale : Serbian Cyrillic [sr-cyrl] 70337//! author : Milan JanaÄkoviÄ<[email protected]> : https://github.com/milan-j 70338//! author : Stefan CrnjakoviÄ <[email protected]> : https://github.com/crnjakovic 70339 70340;(function (global, factory) { 70341 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 70342 0 70343}(this, (function (moment) { 'use strict'; 70344 70345 //! moment.js locale configuration 70346 70347 var translator = { 70348 words: { 70349 //Different grammatical cases 70350 ss: ['ÑекÑнда', 'ÑекÑнде', 'ÑекÑнди'], 70351 m: ['Ñедан минÑÑ', 'Ñедног минÑÑа'], 70352 mm: ['минÑÑ', 'минÑÑа', 'минÑÑа'], 70353 h: ['Ñедан ÑаÑ', 'Ñедног ÑаÑа'], 70354 hh: ['ÑаÑ', 'ÑаÑа', 'ÑаÑи'], 70355 d: ['Ñедан дан', 'Ñедног дана'], 70356 dd: ['дан', 'дана', 'дана'], 70357 M: ['Ñедан меÑеÑ', 'Ñедног меÑеÑа'], 70358 MM: ['меÑеÑ', 'меÑеÑа', 'меÑеÑи'], 70359 y: ['ÑÐµÐ´Ð½Ñ Ð³Ð¾Ð´Ð¸Ð½Ñ', 'Ñедне године'], 70360 yy: ['годинÑ', 'године', 'година'], 70361 }, 70362 correctGrammaticalCase: function (number, wordKey) { 70363 if ( 70364 number % 10 >= 1 && 70365 number % 10 <= 4 && 70366 (number % 100 < 10 || number % 100 >= 20) 70367 ) { 70368 return number % 10 === 1 ? wordKey[0] : wordKey[1]; 70369 } 70370 return wordKey[2]; 70371 }, 70372 translate: function (number, withoutSuffix, key, isFuture) { 70373 var wordKey = translator.words[key], 70374 word; 70375 70376 if (key.length === 1) { 70377 // Nominativ 70378 if (key === 'y' && withoutSuffix) return 'Ñедна година'; 70379 return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; 70380 } 70381 70382 word = translator.correctGrammaticalCase(number, wordKey); 70383 // Nominativ 70384 if (key === 'yy' && withoutSuffix && word === 'годинÑ') { 70385 return number + ' година'; 70386 } 70387 70388 return number + ' ' + word; 70389 }, 70390 }; 70391 70392 var srCyrl = moment.defineLocale('sr-cyrl', { 70393 months: 'ÑанÑаÑ_ÑебÑÑаÑ_маÑÑ_апÑил_маÑ_ÑÑн_ÑÑл_авгÑÑÑ_ÑепÑембаÑ_окÑобаÑ_новембаÑ_деÑембаÑ'.split( 70394 '_' 70395 ), 70396 monthsShort: 70397 'Ñан._Ñеб._маÑ._апÑ._маÑ_ÑÑн_ÑÑл_авг._Ñеп._окÑ._нов._деÑ.'.split('_'), 70398 monthsParseExact: true, 70399 weekdays: 'недеÑа_понедеÑак_ÑÑоÑак_ÑÑеда_ÑеÑвÑÑак_пеÑак_ÑÑбоÑа'.split('_'), 70400 weekdaysShort: 'нед._пон._ÑÑо._ÑÑе._ÑеÑ._пеÑ._ÑÑб.'.split('_'), 70401 weekdaysMin: 'не_по_ÑÑ_ÑÑ_Ñе_пе_ÑÑ'.split('_'), 70402 weekdaysParseExact: true, 70403 longDateFormat: { 70404 LT: 'H:mm', 70405 LTS: 'H:mm:ss', 70406 L: 'D. M. YYYY.', 70407 LL: 'D. MMMM YYYY.', 70408 LLL: 'D. MMMM YYYY. H:mm', 70409 LLLL: 'dddd, D. MMMM YYYY. H:mm', 70410 }, 70411 calendar: { 70412 sameDay: '[Ð´Ð°Ð½Ð°Ñ Ñ] LT', 70413 nextDay: '[ÑÑÑÑа Ñ] LT', 70414 nextWeek: function () { 70415 switch (this.day()) { 70416 case 0: 70417 return '[Ñ] [недеÑÑ] [Ñ] LT'; 70418 case 3: 70419 return '[Ñ] [ÑÑедÑ] [Ñ] LT'; 70420 case 6: 70421 return '[Ñ] [ÑÑбоÑÑ] [Ñ] LT'; 70422 case 1: 70423 case 2: 70424 case 4: 70425 case 5: 70426 return '[Ñ] dddd [Ñ] LT'; 70427 } 70428 }, 70429 lastDay: '[ÑÑÑе Ñ] LT', 70430 lastWeek: function () { 70431 var lastWeekDays = [ 70432 '[пÑоÑле] [недеÑе] [Ñ] LT', 70433 '[пÑоÑлог] [понедеÑка] [Ñ] LT', 70434 '[пÑоÑлог] [ÑÑоÑка] [Ñ] LT', 70435 '[пÑоÑле] [ÑÑеде] [Ñ] LT', 70436 '[пÑоÑлог] [ÑеÑвÑÑка] [Ñ] LT', 70437 '[пÑоÑлог] [пеÑка] [Ñ] LT', 70438 '[пÑоÑле] [ÑÑбоÑе] [Ñ] LT', 70439 ]; 70440 return lastWeekDays[this.day()]; 70441 }, 70442 sameElse: 'L', 70443 }, 70444 relativeTime: { 70445 future: 'за %s', 70446 past: 'пÑе %s', 70447 s: 'неколико ÑекÑнди', 70448 ss: translator.translate, 70449 m: translator.translate, 70450 mm: translator.translate, 70451 h: translator.translate, 70452 hh: translator.translate, 70453 d: translator.translate, 70454 dd: translator.translate, 70455 M: translator.translate, 70456 MM: translator.translate, 70457 y: translator.translate, 70458 yy: translator.translate, 70459 }, 70460 dayOfMonthOrdinalParse: /\d{1,2}\./, 70461 ordinal: '%d.', 70462 week: { 70463 dow: 1, // Monday is the first day of the week. 70464 doy: 7, // The week that contains Jan 1st is the first week of the year. 70465 }, 70466 }); 70467 70468 return srCyrl; 70469 70470}))); 70471 70472 70473/***/ }), 70474
vendor: 5,170 bytes, lines 70475-70622
70475/***/ "./node_modules/moment/locale/sr.js": 70476/*!******************************************!*\ 70477 !*** ./node_modules/moment/locale/sr.js ***! 70478 \******************************************/ 70479/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 70480 70481//! moment.js locale configuration 70482//! locale : Serbian [sr] 70483//! author : Milan JanaÄkoviÄ<[email protected]> : https://github.com/milan-j 70484//! author : Stefan CrnjakoviÄ <[email protected]> : https://github.com/crnjakovic 70485 70486;(function (global, factory) { 70487 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 70488 0 70489}(this, (function (moment) { 'use strict'; 70490 70491 //! moment.js locale configuration 70492 70493 var translator = { 70494 words: { 70495 //Different grammatical cases 70496 ss: ['sekunda', 'sekunde', 'sekundi'], 70497 m: ['jedan minut', 'jednog minuta'], 70498 mm: ['minut', 'minuta', 'minuta'], 70499 h: ['jedan sat', 'jednog sata'], 70500 hh: ['sat', 'sata', 'sati'], 70501 d: ['jedan dan', 'jednog dana'], 70502 dd: ['dan', 'dana', 'dana'], 70503 M: ['jedan mesec', 'jednog meseca'], 70504 MM: ['mesec', 'meseca', 'meseci'], 70505 y: ['jednu godinu', 'jedne godine'], 70506 yy: ['godinu', 'godine', 'godina'], 70507 }, 70508 correctGrammaticalCase: function (number, wordKey) { 70509 if ( 70510 number % 10 >= 1 && 70511 number % 10 <= 4 && 70512 (number % 100 < 10 || number % 100 >= 20) 70513 ) { 70514 return number % 10 === 1 ? wordKey[0] : wordKey[1]; 70515 } 70516 return wordKey[2]; 70517 }, 70518 translate: function (number, withoutSuffix, key, isFuture) { 70519 var wordKey = translator.words[key], 70520 word; 70521 70522 if (key.length === 1) { 70523 // Nominativ 70524 if (key === 'y' && withoutSuffix) return 'jedna godina'; 70525 return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; 70526 } 70527 70528 word = translator.correctGrammaticalCase(number, wordKey); 70529 // Nominativ 70530 if (key === 'yy' && withoutSuffix && word === 'godinu') { 70531 return number + ' godina'; 70532 } 70533 70534 return number + ' ' + word; 70535 }, 70536 }; 70537 70538 var sr = moment.defineLocale('sr', { 70539 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( 70540 '_' 70541 ), 70542 monthsShort: 70543 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), 70544 monthsParseExact: true, 70545 weekdays: 'nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota'.split( 70546 '_' 70547 ), 70548 weekdaysShort: 'ned._pon._uto._sre._Äet._pet._sub.'.split('_'), 70549 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 70550 weekdaysParseExact: true, 70551 longDateFormat: { 70552 LT: 'H:mm', 70553 LTS: 'H:mm:ss', 70554 L: 'D. M. YYYY.', 70555 LL: 'D. MMMM YYYY.', 70556 LLL: 'D. MMMM YYYY. H:mm', 70557 LLLL: 'dddd, D. MMMM YYYY. H:mm', 70558 }, 70559 calendar: { 70560 sameDay: '[danas u] LT', 70561 nextDay: '[sutra u] LT', 70562 nextWeek: function () { 70563 switch (this.day()) { 70564 case 0: 70565 return '[u] [nedelju] [u] LT'; 70566 case 3: 70567 return '[u] [sredu] [u] LT'; 70568 case 6: 70569 return '[u] [subotu] [u] LT'; 70570 case 1: 70571 case 2: 70572 case 4: 70573 case 5: 70574 return '[u] dddd [u] LT'; 70575 } 70576 }, 70577 lastDay: '[juÄe u] LT', 70578 lastWeek: function () { 70579 var lastWeekDays = [ 70580 '[proÅ¡le] [nedelje] [u] LT', 70581 '[proÅ¡log] [ponedeljka] [u] LT', 70582 '[proÅ¡log] [utorka] [u] LT', 70583 '[proÅ¡le] [srede] [u] LT', 70584 '[proÅ¡log] [Äetvrtka] [u] LT', 70585 '[proÅ¡log] [petka] [u] LT', 70586 '[proÅ¡le] [subote] [u] LT', 70587 ]; 70588 return lastWeekDays[this.day()]; 70589 }, 70590 sameElse: 'L', 70591 }, 70592 relativeTime: { 70593 future: 'za %s', 70594 past: 'pre %s', 70595 s: 'nekoliko sekundi', 70596 ss: translator.translate, 70597 m: translator.translate, 70598 mm: translator.translate, 70599 h: translator.translate, 70600 hh: translator.translate, 70601 d: translator.translate, 70602 dd: translator.translate, 70603 M: translator.translate, 70604 MM: translator.translate, 70605 y: translator.translate, 70606 yy: translator.translate, 70607 }, 70608 dayOfMonthOrdinalParse: /\d{1,2}\./, 70609 ordinal: '%d.', 70610 week: { 70611 dow: 1, // Monday is the first day of the week. 70612 doy: 7, // The week that contains Jan 7th is the first week of the year. 70613 }, 70614 }); 70615 70616 return sr; 70617 70618}))); 70619 70620 70621/***/ }), 70622
vendor: 3,373 bytes, lines 70623-70725
70623/***/ "./node_modules/moment/locale/ss.js": 70624/*!******************************************!*\ 70625 !*** ./node_modules/moment/locale/ss.js ***! 70626 \******************************************/ 70627/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 70628 70629//! moment.js locale configuration 70630//! locale : siSwati [ss] 70631//! author : Nicolai Davies<[email protected]> : https://github.com/nicolaidavies 70632 70633;(function (global, factory) { 70634 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 70635 0 70636}(this, (function (moment) { 'use strict'; 70637 70638 //! moment.js locale configuration 70639 70640 var ss = moment.defineLocale('ss', { 70641 months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( 70642 '_' 70643 ), 70644 monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), 70645 weekdays: 70646 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( 70647 '_' 70648 ), 70649 weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), 70650 weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), 70651 weekdaysParseExact: true, 70652 longDateFormat: { 70653 LT: 'h:mm A', 70654 LTS: 'h:mm:ss A', 70655 L: 'DD/MM/YYYY', 70656 LL: 'D MMMM YYYY', 70657 LLL: 'D MMMM YYYY h:mm A', 70658 LLLL: 'dddd, D MMMM YYYY h:mm A', 70659 }, 70660 calendar: { 70661 sameDay: '[Namuhla nga] LT', 70662 nextDay: '[Kusasa nga] LT', 70663 nextWeek: 'dddd [nga] LT', 70664 lastDay: '[Itolo nga] LT', 70665 lastWeek: 'dddd [leliphelile] [nga] LT', 70666 sameElse: 'L', 70667 }, 70668 relativeTime: { 70669 future: 'nga %s', 70670 past: 'wenteka nga %s', 70671 s: 'emizuzwana lomcane', 70672 ss: '%d mzuzwana', 70673 m: 'umzuzu', 70674 mm: '%d emizuzu', 70675 h: 'lihora', 70676 hh: '%d emahora', 70677 d: 'lilanga', 70678 dd: '%d emalanga', 70679 M: 'inyanga', 70680 MM: '%d tinyanga', 70681 y: 'umnyaka', 70682 yy: '%d iminyaka', 70683 }, 70684 meridiemParse: /ekuseni|emini|entsambama|ebusuku/, 70685 meridiem: function (hours, minutes, isLower) { 70686 if (hours < 11) { 70687 return 'ekuseni'; 70688 } else if (hours < 15) { 70689 return 'emini'; 70690 } else if (hours < 19) { 70691 return 'entsambama'; 70692 } else { 70693 return 'ebusuku'; 70694 } 70695 }, 70696 meridiemHour: function (hour, meridiem) { 70697 if (hour === 12) { 70698 hour = 0; 70699 } 70700 if (meridiem === 'ekuseni') { 70701 return hour; 70702 } else if (meridiem === 'emini') { 70703 return hour >= 11 ? hour : hour + 12; 70704 } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { 70705 if (hour === 0) { 70706 return 0; 70707 } 70708 return hour + 12; 70709 } 70710 }, 70711 dayOfMonthOrdinalParse: /\d{1,2}/, 70712 ordinal: '%d', 70713 week: { 70714 dow: 1, // Monday is the first day of the week. 70715 doy: 4, // The week that contains Jan 4th is the first week of the year. 70716 }, 70717 }); 70718 70719 return ss; 70720 70721}))); 70722 70723 70724/***/ }), 70725
vendor: 2,827 bytes, lines 70726-70812
70726/***/ "./node_modules/moment/locale/sv.js": 70727/*!******************************************!*\ 70728 !*** ./node_modules/moment/locale/sv.js ***! 70729 \******************************************/ 70730/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 70731 70732//! moment.js locale configuration 70733//! locale : Swedish [sv] 70734//! author : Jens Alm : https://github.com/ulmus 70735 70736;(function (global, factory) { 70737 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 70738 0 70739}(this, (function (moment) { 'use strict'; 70740 70741 //! moment.js locale configuration 70742 70743 var sv = moment.defineLocale('sv', { 70744 months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( 70745 '_' 70746 ), 70747 monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), 70748 weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), 70749 weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), 70750 weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), 70751 longDateFormat: { 70752 LT: 'HH:mm', 70753 LTS: 'HH:mm:ss', 70754 L: 'YYYY-MM-DD', 70755 LL: 'D MMMM YYYY', 70756 LLL: 'D MMMM YYYY [kl.] HH:mm', 70757 LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', 70758 lll: 'D MMM YYYY HH:mm', 70759 llll: 'ddd D MMM YYYY HH:mm', 70760 }, 70761 calendar: { 70762 sameDay: '[Idag] LT', 70763 nextDay: '[Imorgon] LT', 70764 lastDay: '[Igår] LT', 70765 nextWeek: '[På] dddd LT', 70766 lastWeek: '[I] dddd[s] LT', 70767 sameElse: 'L', 70768 }, 70769 relativeTime: { 70770 future: 'om %s', 70771 past: 'för %s sedan', 70772 s: 'några sekunder', 70773 ss: '%d sekunder', 70774 m: 'en minut', 70775 mm: '%d minuter', 70776 h: 'en timme', 70777 hh: '%d timmar', 70778 d: 'en dag', 70779 dd: '%d dagar', 70780 M: 'en månad', 70781 MM: '%d månader', 70782 y: 'ett år', 70783 yy: '%d år', 70784 }, 70785 dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, 70786 ordinal: function (number) { 70787 var b = number % 10, 70788 output = 70789 ~~((number % 100) / 10) === 1 70790 ? ':e' 70791 : b === 1 70792 ? ':a' 70793 : b === 2 70794 ? ':a' 70795 : b === 3 70796 ? ':e' 70797 : ':e'; 70798 return number + output; 70799 }, 70800 week: { 70801 dow: 1, // Monday is the first day of the week. 70802 doy: 4, // The week that contains Jan 4th is the first week of the year. 70803 }, 70804 }); 70805 70806 return sv; 70807 70808}))); 70809 70810 70811/***/ }), 70812
vendor: 2,336 bytes, lines 70813-70886
70813/***/ "./node_modules/moment/locale/sw.js": 70814/*!******************************************!*\ 70815 !*** ./node_modules/moment/locale/sw.js ***! 70816 \******************************************/ 70817/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 70818 70819//! moment.js locale configuration 70820//! locale : Swahili [sw] 70821//! author : Fahad Kassim : https://github.com/fadsel 70822 70823;(function (global, factory) { 70824 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 70825 0 70826}(this, (function (moment) { 'use strict'; 70827 70828 //! moment.js locale configuration 70829 70830 var sw = moment.defineLocale('sw', { 70831 months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( 70832 '_' 70833 ), 70834 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), 70835 weekdays: 70836 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( 70837 '_' 70838 ), 70839 weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), 70840 weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), 70841 weekdaysParseExact: true, 70842 longDateFormat: { 70843 LT: 'hh:mm A', 70844 LTS: 'HH:mm:ss', 70845 L: 'DD.MM.YYYY', 70846 LL: 'D MMMM YYYY', 70847 LLL: 'D MMMM YYYY HH:mm', 70848 LLLL: 'dddd, D MMMM YYYY HH:mm', 70849 }, 70850 calendar: { 70851 sameDay: '[leo saa] LT', 70852 nextDay: '[kesho saa] LT', 70853 nextWeek: '[wiki ijayo] dddd [saat] LT', 70854 lastDay: '[jana] LT', 70855 lastWeek: '[wiki iliyopita] dddd [saat] LT', 70856 sameElse: 'L', 70857 }, 70858 relativeTime: { 70859 future: '%s baadaye', 70860 past: 'tokea %s', 70861 s: 'hivi punde', 70862 ss: 'sekunde %d', 70863 m: 'dakika moja', 70864 mm: 'dakika %d', 70865 h: 'saa limoja', 70866 hh: 'masaa %d', 70867 d: 'siku moja', 70868 dd: 'siku %d', 70869 M: 'mwezi mmoja', 70870 MM: 'miezi %d', 70871 y: 'mwaka mmoja', 70872 yy: 'miaka %d', 70873 }, 70874 week: { 70875 dow: 1, // Monday is the first day of the week. 70876 doy: 7, // The week that contains Jan 7th is the first week of the year. 70877 }, 70878 }); 70879 70880 return sw; 70881 70882}))); 70883 70884 70885/***/ }), 70886
vendor: 5,785 bytes, lines 70887-71036
70887/***/ "./node_modules/moment/locale/ta.js": 70888/*!******************************************!*\ 70889 !*** ./node_modules/moment/locale/ta.js ***! 70890 \******************************************/ 70891/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 70892 70893//! moment.js locale configuration 70894//! locale : Tamil [ta] 70895//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 70896 70897;(function (global, factory) { 70898 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 70899 0 70900}(this, (function (moment) { 'use strict'; 70901 70902 //! moment.js locale configuration 70903 70904 var symbolMap = { 70905 1: '௧', 70906 2: '௨', 70907 3: '௩', 70908 4: '௪', 70909 5: '௫', 70910 6: '௬', 70911 7: 'à¯', 70912 8: '௮', 70913 9: '௯', 70914 0: '௦', 70915 }, 70916 numberMap = { 70917 '௧': '1', 70918 '௨': '2', 70919 '௩': '3', 70920 '௪': '4', 70921 '௫': '5', 70922 '௬': '6', 70923 'à¯': '7', 70924 '௮': '8', 70925 '௯': '9', 70926 '௦': '0', 70927 }; 70928 70929 var ta = moment.defineLocale('ta', { 70930 months: 'à®à®©à®µà®°à®¿_பிபà¯à®°à®µà®°à®¿_மாரà¯à®à¯_à®à®ªà¯à®°à®²à¯_à®®à¯_à®à¯à®©à¯_à®à¯à®²à¯_à®à®à®¸à¯à®à¯_à®à¯à®ªà¯à®à¯à®®à¯à®ªà®°à¯_à® à®à¯à®à¯à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_à®à®¿à®à®®à¯à®ªà®°à¯'.split( 70931 '_' 70932 ), 70933 monthsShort: 70934 'à®à®©à®µà®°à®¿_பிபà¯à®°à®µà®°à®¿_மாரà¯à®à¯_à®à®ªà¯à®°à®²à¯_à®®à¯_à®à¯à®©à¯_à®à¯à®²à¯_à®à®à®¸à¯à®à¯_à®à¯à®ªà¯à®à¯à®®à¯à®ªà®°à¯_à® à®à¯à®à¯à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_à®à®¿à®à®®à¯à®ªà®°à¯'.split( 70935 '_' 70936 ), 70937 weekdays: 70938 'à®à®¾à®¯à®¿à®±à¯à®±à¯à®à¯à®à®¿à®´à®®à¯_திà®à¯à®à®à¯à®à®¿à®´à®®à¯_à®à¯à®µà¯à®µà®¾à®¯à¯à®à®¿à®´à®®à¯_பà¯à®¤à®©à¯à®à®¿à®´à®®à¯_வியாழà®à¯à®à®¿à®´à®®à¯_வà¯à®³à¯à®³à®¿à®à¯à®à®¿à®´à®®à¯_à®à®©à®¿à®à¯à®à®¿à®´à®®à¯'.split( 70939 '_' 70940 ), 70941 weekdaysShort: 'à®à®¾à®¯à®¿à®±à¯_திà®à¯à®à®³à¯_à®à¯à®µà¯à®µà®¾à®¯à¯_பà¯à®¤à®©à¯_வியாழனà¯_வà¯à®³à¯à®³à®¿_à®à®©à®¿'.split( 70942 '_' 70943 ), 70944 weekdaysMin: 'à®à®¾_தி_à®à¯_பà¯_வி_வà¯_à®'.split('_'), 70945 longDateFormat: { 70946 LT: 'HH:mm', 70947 LTS: 'HH:mm:ss', 70948 L: 'DD/MM/YYYY', 70949 LL: 'D MMMM YYYY', 70950 LLL: 'D MMMM YYYY, HH:mm', 70951 LLLL: 'dddd, D MMMM YYYY, HH:mm', 70952 }, 70953 calendar: { 70954 sameDay: '[à®à®©à¯à®±à¯] LT', 70955 nextDay: '[நாளà¯] LT', 70956 nextWeek: 'dddd, LT', 70957 lastDay: '[நà¯à®±à¯à®±à¯] LT', 70958 lastWeek: '[à®à®à®¨à¯à®¤ வாரமà¯] dddd, LT', 70959 sameElse: 'L', 70960 }, 70961 relativeTime: { 70962 future: '%s à®à®²à¯', 70963 past: '%s à®®à¯à®©à¯', 70964 s: 'à®à®°à¯ à®à®¿à®² விநாà®à®¿à®à®³à¯', 70965 ss: '%d விநாà®à®¿à®à®³à¯', 70966 m: 'à®à®°à¯ நிமிà®à®®à¯', 70967 mm: '%d நிமிà®à®à¯à®à®³à¯', 70968 h: 'à®à®°à¯ மணி நà¯à®°à®®à¯', 70969 hh: '%d மணி நà¯à®°à®®à¯', 70970 d: 'à®à®°à¯ நாளà¯', 70971 dd: '%d நாà®à¯à®à®³à¯', 70972 M: 'à®à®°à¯ மாதமà¯', 70973 MM: '%d மாதà®à¯à®à®³à¯', 70974 y: 'à®à®°à¯ வரà¯à®à®®à¯', 70975 yy: '%d à®à®£à¯à®à¯à®à®³à¯', 70976 }, 70977 dayOfMonthOrdinalParse: /\d{1,2}வதà¯/, 70978 ordinal: function (number) { 70979 return number + 'வதà¯'; 70980 }, 70981 preparse: function (string) { 70982 return string.replace(/[௧௨௩௪௫௬à¯à¯®à¯¯à¯¦]/g, function (match) { 70983 return numberMap[match]; 70984 }); 70985 }, 70986 postformat: function (string) { 70987 return string.replace(/\d/g, function (match) { 70988 return symbolMap[match]; 70989 }); 70990 }, 70991 // refer http://ta.wikipedia.org/s/1er1 70992 meridiemParse: /யாமமà¯|வà¯à®à®±à¯|à®à®¾à®²à¯|நணà¯à®ªà®à®²à¯|à®à®±à¯à®ªà®¾à®à¯|மாலà¯/, 70993 meridiem: function (hour, minute, isLower) { 70994 if (hour < 2) { 70995 return ' யாமமà¯'; 70996 } else if (hour < 6) { 70997 return ' வà¯à®à®±à¯'; // வà¯à®à®±à¯ 70998 } else if (hour < 10) { 70999 return ' à®à®¾à®²à¯'; // à®à®¾à®²à¯ 71000 } else if (hour < 14) { 71001 return ' நணà¯à®ªà®à®²à¯'; // நணà¯à®ªà®à®²à¯ 71002 } else if (hour < 18) { 71003 return ' à®à®±à¯à®ªà®¾à®à¯'; // à®à®±à¯à®ªà®¾à®à¯ 71004 } else if (hour < 22) { 71005 return ' மாலà¯'; // மால௠71006 } else { 71007 return ' யாமமà¯'; 71008 } 71009 }, 71010 meridiemHour: function (hour, meridiem) { 71011 if (hour === 12) { 71012 hour = 0; 71013 } 71014 if (meridiem === 'யாமமà¯') { 71015 return hour < 2 ? hour : hour + 12; 71016 } else if (meridiem === 'வà¯à®à®±à¯' || meridiem === 'à®à®¾à®²à¯') { 71017 return hour; 71018 } else if (meridiem === 'நணà¯à®ªà®à®²à¯') { 71019 return hour >= 10 ? hour : hour + 12; 71020 } else { 71021 return hour + 12; 71022 } 71023 }, 71024 week: { 71025 dow: 0, // Sunday is the first day of the week. 71026 doy: 6, // The week that contains Jan 6th is the first week of the year. 71027 }, 71028 }); 71029 71030 return ta; 71031 71032}))); 71033 71034 71035/***/ }), 71036
vendor: 4,209 bytes, lines 71037-71143
71037/***/ "./node_modules/moment/locale/te.js": 71038/*!******************************************!*\ 71039 !*** ./node_modules/moment/locale/te.js ***! 71040 \******************************************/ 71041/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 71042 71043//! moment.js locale configuration 71044//! locale : Telugu [te] 71045//! author : Krishna Chaitanya Thota : https://github.com/kcthota 71046 71047;(function (global, factory) { 71048 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 71049 0 71050}(this, (function (moment) { 'use strict'; 71051 71052 //! moment.js locale configuration 71053 71054 var te = moment.defineLocale('te', { 71055 months: 'à°à°¨à°µà°°à°¿_à°«à°¿à°¬à±à°°à°µà°°à°¿_మారà±à°à°¿_à°à°ªà±à°°à°¿à°²à±_à°®à±_à°à±à°¨à±_à°à±à°²à±_à°à°à°¸à±à°à±_à°¸à±à°ªà±à°à±à°à°¬à°°à±_à° à°à±à°à±à°¬à°°à±_నవà°à°¬à°°à±_à°¡à°¿à°¸à±à°à°¬à°°à±'.split( 71056 '_' 71057 ), 71058 monthsShort: 71059 'à°à°¨._à°«à°¿à°¬à±à°°._మారà±à°à°¿_à°à°ªà±à°°à°¿._à°®à±_à°à±à°¨à±_à°à±à°²à±_à°à°._à°¸à±à°ªà±._à° à°à±à°à±._నవ._à°¡à°¿à°¸à±.'.split( 71060 '_' 71061 ), 71062 monthsParseExact: true, 71063 weekdays: 71064 'à°à°¦à°¿à°µà°¾à°°à°_à°¸à±à°®à°µà°¾à°°à°_à°®à°à°à°³à°µà°¾à°°à°_à°¬à±à°§à°µà°¾à°°à°_à°à±à°°à±à°µà°¾à°°à°_à°¶à±à°à±à°°à°µà°¾à°°à°_శనివారà°'.split( 71065 '_' 71066 ), 71067 weekdaysShort: 'à°à°¦à°¿_à°¸à±à°®_à°®à°à°à°³_à°¬à±à°§_à°à±à°°à±_à°¶à±à°à±à°°_శని'.split('_'), 71068 weekdaysMin: 'à°_à°¸à±_à°®à°_à°¬à±_à°à±_à°¶à±_à°¶'.split('_'), 71069 longDateFormat: { 71070 LT: 'A h:mm', 71071 LTS: 'A h:mm:ss', 71072 L: 'DD/MM/YYYY', 71073 LL: 'D MMMM YYYY', 71074 LLL: 'D MMMM YYYY, A h:mm', 71075 LLLL: 'dddd, D MMMM YYYY, A h:mm', 71076 }, 71077 calendar: { 71078 sameDay: '[à°¨à±à°¡à±] LT', 71079 nextDay: '[à°°à±à°ªà±] LT', 71080 nextWeek: 'dddd, LT', 71081 lastDay: '[నినà±à°¨] LT', 71082 lastWeek: '[à°à°¤] dddd, LT', 71083 sameElse: 'L', 71084 }, 71085 relativeTime: { 71086 future: '%s à°²à±', 71087 past: '%s à°à±à°°à°¿à°¤à°', 71088 s: 'à°à±à°¨à±à°¨à°¿ à°à±à°·à°£à°¾à°²à±', 71089 ss: '%d à°¸à±à°à°¨à±à°²à±', 71090 m: 'à°à° నిమిషà°', 71091 mm: '%d నిమిషాలà±', 71092 h: 'à°à° à°à°à°', 71093 hh: '%d à°à°à°à°²à±', 71094 d: 'à°à° à°°à±à°à±', 71095 dd: '%d à°°à±à°à±à°²à±', 71096 M: 'à°à° à°¨à±à°²', 71097 MM: '%d à°¨à±à°²à°²à±', 71098 y: 'à°à° à°¸à°à°µà°¤à±à°¸à°°à°', 71099 yy: '%d à°¸à°à°µà°¤à±à°¸à°°à°¾à°²à±', 71100 }, 71101 dayOfMonthOrdinalParse: /\d{1,2}à°µ/, 71102 ordinal: '%dà°µ', 71103 meridiemParse: /రాతà±à°°à°¿|à°à°¦à°¯à°|మధà±à°¯à°¾à°¹à±à°¨à°|సాయà°à°¤à±à°°à°/, 71104 meridiemHour: function (hour, meridiem) { 71105 if (hour === 12) { 71106 hour = 0; 71107 } 71108 if (meridiem === 'రాతà±à°°à°¿') { 71109 return hour < 4 ? hour : hour + 12; 71110 } else if (meridiem === 'à°à°¦à°¯à°') { 71111 return hour; 71112 } else if (meridiem === 'మధà±à°¯à°¾à°¹à±à°¨à°') { 71113 return hour >= 10 ? hour : hour + 12; 71114 } else if (meridiem === 'సాయà°à°¤à±à°°à°') { 71115 return hour + 12; 71116 } 71117 }, 71118 meridiem: function (hour, minute, isLower) { 71119 if (hour < 4) { 71120 return 'రాతà±à°°à°¿'; 71121 } else if (hour < 10) { 71122 return 'à°à°¦à°¯à°'; 71123 } else if (hour < 17) { 71124 return 'మధà±à°¯à°¾à°¹à±à°¨à°'; 71125 } else if (hour < 20) { 71126 return 'సాయà°à°¤à±à°°à°'; 71127 } else { 71128 return 'రాతà±à°°à°¿'; 71129 } 71130 }, 71131 week: { 71132 dow: 0, // Sunday is the first day of the week. 71133 doy: 6, // The week that contains Jan 6th is the first week of the year. 71134 }, 71135 }); 71136 71137 return te; 71138 71139}))); 71140 71141 71142/***/ }), 71143
vendor: 2,914 bytes, lines 71144-71230
71144/***/ "./node_modules/moment/locale/tet.js": 71145/*!*******************************************!*\ 71146 !*** ./node_modules/moment/locale/tet.js ***! 71147 \*******************************************/ 71148/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 71149 71150//! moment.js locale configuration 71151//! locale : Tetun Dili (East Timor) [tet] 71152//! author : Joshua Brooks : https://github.com/joshbrooks 71153//! author : Onorio De J. Afonso : https://github.com/marobo 71154//! author : Sonia Simoes : https://github.com/soniasimoes 71155 71156;(function (global, factory) { 71157 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 71158 0 71159}(this, (function (moment) { 'use strict'; 71160 71161 //! moment.js locale configuration 71162 71163 var tet = moment.defineLocale('tet', { 71164 months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( 71165 '_' 71166 ), 71167 monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), 71168 weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), 71169 weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), 71170 weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), 71171 longDateFormat: { 71172 LT: 'HH:mm', 71173 LTS: 'HH:mm:ss', 71174 L: 'DD/MM/YYYY', 71175 LL: 'D MMMM YYYY', 71176 LLL: 'D MMMM YYYY HH:mm', 71177 LLLL: 'dddd, D MMMM YYYY HH:mm', 71178 }, 71179 calendar: { 71180 sameDay: '[Ohin iha] LT', 71181 nextDay: '[Aban iha] LT', 71182 nextWeek: 'dddd [iha] LT', 71183 lastDay: '[Horiseik iha] LT', 71184 lastWeek: 'dddd [semana kotuk] [iha] LT', 71185 sameElse: 'L', 71186 }, 71187 relativeTime: { 71188 future: 'iha %s', 71189 past: '%s liuba', 71190 s: 'segundu balun', 71191 ss: 'segundu %d', 71192 m: 'minutu ida', 71193 mm: 'minutu %d', 71194 h: 'oras ida', 71195 hh: 'oras %d', 71196 d: 'loron ida', 71197 dd: 'loron %d', 71198 M: 'fulan ida', 71199 MM: 'fulan %d', 71200 y: 'tinan ida', 71201 yy: 'tinan %d', 71202 }, 71203 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 71204 ordinal: function (number) { 71205 var b = number % 10, 71206 output = 71207 ~~((number % 100) / 10) === 1 71208 ? 'th' 71209 : b === 1 71210 ? 'st' 71211 : b === 2 71212 ? 'nd' 71213 : b === 3 71214 ? 'rd' 71215 : 'th'; 71216 return number + output; 71217 }, 71218 week: { 71219 dow: 1, // Monday is the first day of the week. 71220 doy: 4, // The week that contains Jan 4th is the first week of the year. 71221 }, 71222 }); 71223 71224 return tet; 71225 71226}))); 71227 71228 71229/***/ }), 71230
vendor: 4,533 bytes, lines 71231-71366
71231/***/ "./node_modules/moment/locale/tg.js": 71232/*!******************************************!*\ 71233 !*** ./node_modules/moment/locale/tg.js ***! 71234 \******************************************/ 71235/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 71236 71237//! moment.js locale configuration 71238//! locale : Tajik [tg] 71239//! author : Orif N. Jr. : https://github.com/orif-jr 71240 71241;(function (global, factory) { 71242 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 71243 0 71244}(this, (function (moment) { 'use strict'; 71245 71246 //! moment.js locale configuration 71247 71248 var suffixes = { 71249 0: '-Ñм', 71250 1: '-Ñм', 71251 2: '-Ñм', 71252 3: '-Ñм', 71253 4: '-Ñм', 71254 5: '-Ñм', 71255 6: '-Ñм', 71256 7: '-Ñм', 71257 8: '-Ñм', 71258 9: '-Ñм', 71259 10: '-Ñм', 71260 12: '-Ñм', 71261 13: '-Ñм', 71262 20: '-Ñм', 71263 30: '-Ñм', 71264 40: '-Ñм', 71265 50: '-Ñм', 71266 60: '-Ñм', 71267 70: '-Ñм', 71268 80: '-Ñм', 71269 90: '-Ñм', 71270 100: '-Ñм', 71271 }; 71272 71273 var tg = moment.defineLocale('tg', { 71274 months: { 71275 format: 'ÑнваÑи_ÑевÑали_маÑÑи_апÑели_майи_иÑни_иÑли_авгÑÑÑи_ÑенÑÑбÑи_окÑÑбÑи_ноÑбÑи_декабÑи'.split( 71276 '_' 71277 ), 71278 standalone: 71279 'ÑнваÑ_ÑевÑал_маÑÑ_апÑел_май_иÑн_иÑл_авгÑÑÑ_ÑенÑÑбÑ_окÑÑбÑ_ноÑбÑ_декабÑ'.split( 71280 '_' 71281 ), 71282 }, 71283 monthsShort: 'Ñнв_Ñев_маÑ_апÑ_май_иÑн_иÑл_авг_Ñен_окÑ_ноÑ_дек'.split('_'), 71284 weekdays: 'ÑкÑанбе_дÑÑанбе_ÑеÑанбе_ÑоÑÑанбе_панҷÑанбе_Ò·ÑмÑа_Ñанбе'.split( 71285 '_' 71286 ), 71287 weekdaysShort: 'ÑÑб_дÑб_ÑÑб_ÑÑб_пÑб_Ò·Ñм_Ñнб'.split('_'), 71288 weekdaysMin: 'ÑÑ_дÑ_ÑÑ_ÑÑ_пÑ_ҷм_Ñб'.split('_'), 71289 longDateFormat: { 71290 LT: 'HH:mm', 71291 LTS: 'HH:mm:ss', 71292 L: 'DD.MM.YYYY', 71293 LL: 'D MMMM YYYY', 71294 LLL: 'D MMMM YYYY HH:mm', 71295 LLLL: 'dddd, D MMMM YYYY HH:mm', 71296 }, 71297 calendar: { 71298 sameDay: '[ÐмÑӯз ÑоаÑи] LT', 71299 nextDay: '[ФаÑдо ÑоаÑи] LT', 71300 lastDay: '[ÐиÑӯз ÑоаÑи] LT', 71301 nextWeek: 'dddd[и] [ҳаÑÑаи оÑнда ÑоаÑи] LT', 71302 lastWeek: 'dddd[и] [ҳаÑÑаи гÑзаÑÑа ÑоаÑи] LT', 71303 sameElse: 'L', 71304 }, 71305 relativeTime: { 71306 future: 'баÑди %s', 71307 past: '%s пеÑ', 71308 s: 'ÑкÑанд ÑониÑ', 71309 m: 'Ñк даÒиÒа', 71310 mm: '%d даÒиÒа', 71311 h: 'Ñк ÑоаÑ', 71312 hh: '%d ÑоаÑ', 71313 d: 'Ñк Ñӯз', 71314 dd: '%d Ñӯз', 71315 M: 'Ñк моҳ', 71316 MM: '%d моҳ', 71317 y: 'Ñк Ñол', 71318 yy: '%d Ñол', 71319 }, 71320 meridiemParse: /Ñаб|ÑÑбҳ|Ñӯз|бегоҳ/, 71321 meridiemHour: function (hour, meridiem) { 71322 if (hour === 12) { 71323 hour = 0; 71324 } 71325 if (meridiem === 'Ñаб') { 71326 return hour < 4 ? hour : hour + 12; 71327 } else if (meridiem === 'ÑÑбҳ') { 71328 return hour; 71329 } else if (meridiem === 'Ñӯз') { 71330 return hour >= 11 ? hour : hour + 12; 71331 } else if (meridiem === 'бегоҳ') { 71332 return hour + 12; 71333 } 71334 }, 71335 meridiem: function (hour, minute, isLower) { 71336 if (hour < 4) { 71337 return 'Ñаб'; 71338 } else if (hour < 11) { 71339 return 'ÑÑбҳ'; 71340 } else if (hour < 16) { 71341 return 'Ñӯз'; 71342 } else if (hour < 19) { 71343 return 'бегоҳ'; 71344 } else { 71345 return 'Ñаб'; 71346 } 71347 }, 71348 dayOfMonthOrdinalParse: /\d{1,2}-(Ñм|Ñм)/, 71349 ordinal: function (number) { 71350 var a = number % 10, 71351 b = number >= 100 ? 100 : null; 71352 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 71353 }, 71354 week: { 71355 dow: 1, // Monday is the first day of the week. 71356 doy: 7, // The week that contains Jan 1th is the first week of the year. 71357 }, 71358 }); 71359 71360 return tg; 71361 71362}))); 71363 71364 71365/***/ }), 71366
vendor: 3,461 bytes, lines 71367-71450
71367/***/ "./node_modules/moment/locale/th.js": 71368/*!******************************************!*\ 71369 !*** ./node_modules/moment/locale/th.js ***! 71370 \******************************************/ 71371/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 71372 71373//! moment.js locale configuration 71374//! locale : Thai [th] 71375//! author : Kridsada Thanabulpong : https://github.com/sirn 71376 71377;(function (global, factory) { 71378 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 71379 0 71380}(this, (function (moment) { 'use strict'; 71381 71382 //! moment.js locale configuration 71383 71384 var th = moment.defineLocale('th', { 71385 months: 'มà¸à¸£à¸²à¸à¸¡_à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹_มีà¸à¸²à¸à¸¡_à¹à¸¡à¸©à¸²à¸¢à¸_à¸à¸¤à¸©à¸ าà¸à¸¡_มิà¸à¸¸à¸à¸²à¸¢à¸_à¸à¸£à¸à¸à¸²à¸à¸¡_สิà¸à¸«à¸²à¸à¸¡_à¸à¸±à¸à¸¢à¸²à¸¢à¸_à¸à¸¸à¸¥à¸²à¸à¸¡_à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸_à¸à¸±à¸à¸§à¸²à¸à¸¡'.split( 71386 '_' 71387 ), 71388 monthsShort: 71389 'ม.à¸._à¸.à¸._มี.à¸._à¹à¸¡.ย._à¸.à¸._มิ.ย._à¸.à¸._ส.à¸._à¸.ย._à¸.à¸._à¸.ย._à¸.à¸.'.split( 71390 '_' 71391 ), 71392 monthsParseExact: true, 71393 weekdays: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.split('_'), 71394 weekdaysShort: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ª_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.split('_'), // yes, three characters difference 71395 weekdaysMin: 'à¸à¸²._à¸._à¸._à¸._à¸à¸¤._ศ._ส.'.split('_'), 71396 weekdaysParseExact: true, 71397 longDateFormat: { 71398 LT: 'H:mm', 71399 LTS: 'H:mm:ss', 71400 L: 'DD/MM/YYYY', 71401 LL: 'D MMMM YYYY', 71402 LLL: 'D MMMM YYYY à¹à¸§à¸¥à¸² H:mm', 71403 LLLL: 'วัà¸ddddà¸à¸µà¹ D MMMM YYYY à¹à¸§à¸¥à¸² H:mm', 71404 }, 71405 meridiemParse: /à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸|หลัà¸à¹à¸à¸µà¹à¸¢à¸/, 71406 isPM: function (input) { 71407 return input === 'หลัà¸à¹à¸à¸µà¹à¸¢à¸'; 71408 }, 71409 meridiem: function (hour, minute, isLower) { 71410 if (hour < 12) { 71411 return 'à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸'; 71412 } else { 71413 return 'หลัà¸à¹à¸à¸µà¹à¸¢à¸'; 71414 } 71415 }, 71416 calendar: { 71417 sameDay: '[วัà¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 71418 nextDay: '[à¸à¸£à¸¸à¹à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 71419 nextWeek: 'dddd[หà¸à¹à¸² à¹à¸§à¸¥à¸²] LT', 71420 lastDay: '[à¹à¸¡à¸·à¹à¸à¸§à¸²à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 71421 lastWeek: '[วัà¸]dddd[à¸à¸µà¹à¹à¸¥à¹à¸§ à¹à¸§à¸¥à¸²] LT', 71422 sameElse: 'L', 71423 }, 71424 relativeTime: { 71425 future: 'à¸à¸µà¸ %s', 71426 past: '%sà¸à¸µà¹à¹à¸¥à¹à¸§', 71427 s: 'à¹à¸¡à¹à¸à¸µà¹à¸§à¸´à¸à¸²à¸à¸µ', 71428 ss: '%d วิà¸à¸²à¸à¸µ', 71429 m: '1 à¸à¸²à¸à¸µ', 71430 mm: '%d à¸à¸²à¸à¸µ', 71431 h: '1 à¸à¸±à¹à¸§à¹à¸¡à¸', 71432 hh: '%d à¸à¸±à¹à¸§à¹à¸¡à¸', 71433 d: '1 วัà¸', 71434 dd: '%d วัà¸', 71435 w: '1 สัà¸à¸à¸²à¸«à¹', 71436 ww: '%d สัà¸à¸à¸²à¸«à¹', 71437 M: '1 à¹à¸à¸·à¸à¸', 71438 MM: '%d à¹à¸à¸·à¸à¸', 71439 y: '1 à¸à¸µ', 71440 yy: '%d à¸à¸µ', 71441 }, 71442 }); 71443 71444 return th; 71445 71446}))); 71447 71448 71449/***/ }), 71450
vendor: 3,313 bytes, lines 71451-71560
71451/***/ "./node_modules/moment/locale/tk.js": 71452/*!******************************************!*\ 71453 !*** ./node_modules/moment/locale/tk.js ***! 71454 \******************************************/ 71455/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 71456 71457//! moment.js locale configuration 71458//! locale : Turkmen [tk] 71459//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy 71460 71461;(function (global, factory) { 71462 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 71463 0 71464}(this, (function (moment) { 'use strict'; 71465 71466 //! moment.js locale configuration 71467 71468 var suffixes = { 71469 1: "'inji", 71470 5: "'inji", 71471 8: "'inji", 71472 70: "'inji", 71473 80: "'inji", 71474 2: "'nji", 71475 7: "'nji", 71476 20: "'nji", 71477 50: "'nji", 71478 3: "'ünji", 71479 4: "'ünji", 71480 100: "'ünji", 71481 6: "'njy", 71482 9: "'unjy", 71483 10: "'unjy", 71484 30: "'unjy", 71485 60: "'ynjy", 71486 90: "'ynjy", 71487 }; 71488 71489 var tk = moment.defineLocale('tk', { 71490 months: 'Ãanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( 71491 '_' 71492 ), 71493 monthsShort: 'Ãan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), 71494 weekdays: 'ÃekÅenbe_DuÅenbe_SiÅenbe_ÃarÅenbe_PenÅenbe_Anna_Åenbe'.split( 71495 '_' 71496 ), 71497 weekdaysShort: 'Ãek_DuÅ_SiÅ_Ãar_Pen_Ann_Åen'.split('_'), 71498 weekdaysMin: 'Ãk_DÅ_SÅ_Ãr_Pn_An_Ån'.split('_'), 71499 longDateFormat: { 71500 LT: 'HH:mm', 71501 LTS: 'HH:mm:ss', 71502 L: 'DD.MM.YYYY', 71503 LL: 'D MMMM YYYY', 71504 LLL: 'D MMMM YYYY HH:mm', 71505 LLLL: 'dddd, D MMMM YYYY HH:mm', 71506 }, 71507 calendar: { 71508 sameDay: '[bugün sagat] LT', 71509 nextDay: '[ertir sagat] LT', 71510 nextWeek: '[indiki] dddd [sagat] LT', 71511 lastDay: '[düýn] LT', 71512 lastWeek: '[geçen] dddd [sagat] LT', 71513 sameElse: 'L', 71514 }, 71515 relativeTime: { 71516 future: '%s soÅ', 71517 past: '%s öÅ', 71518 s: 'birnäçe sekunt', 71519 m: 'bir minut', 71520 mm: '%d minut', 71521 h: 'bir sagat', 71522 hh: '%d sagat', 71523 d: 'bir gün', 71524 dd: '%d gün', 71525 M: 'bir aý', 71526 MM: '%d aý', 71527 y: 'bir ýyl', 71528 yy: '%d ýyl', 71529 }, 71530 ordinal: function (number, period) { 71531 switch (period) { 71532 case 'd': 71533 case 'D': 71534 case 'Do': 71535 case 'DD': 71536 return number; 71537 default: 71538 if (number === 0) { 71539 // special case for zero 71540 return number + "'unjy"; 71541 } 71542 var a = number % 10, 71543 b = (number % 100) - a, 71544 c = number >= 100 ? 100 : null; 71545 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 71546 } 71547 }, 71548 week: { 71549 dow: 1, // Monday is the first day of the week. 71550 doy: 7, // The week that contains Jan 7th is the first week of the year. 71551 }, 71552 }); 71553 71554 return tk; 71555 71556}))); 71557 71558 71559/***/ }), 71560
vendor: 2,444 bytes, lines 71561-71636
71561/***/ "./node_modules/moment/locale/tl-ph.js": 71562/*!*********************************************!*\ 71563 !*** ./node_modules/moment/locale/tl-ph.js ***! 71564 \*********************************************/ 71565/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 71566 71567//! moment.js locale configuration 71568//! locale : Tagalog (Philippines) [tl-ph] 71569//! author : Dan Hagman : https://github.com/hagmandan 71570 71571;(function (global, factory) { 71572 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 71573 0 71574}(this, (function (moment) { 'use strict'; 71575 71576 //! moment.js locale configuration 71577 71578 var tlPh = moment.defineLocale('tl-ph', { 71579 months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( 71580 '_' 71581 ), 71582 monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), 71583 weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( 71584 '_' 71585 ), 71586 weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), 71587 weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), 71588 longDateFormat: { 71589 LT: 'HH:mm', 71590 LTS: 'HH:mm:ss', 71591 L: 'MM/D/YYYY', 71592 LL: 'MMMM D, YYYY', 71593 LLL: 'MMMM D, YYYY HH:mm', 71594 LLLL: 'dddd, MMMM DD, YYYY HH:mm', 71595 }, 71596 calendar: { 71597 sameDay: 'LT [ngayong araw]', 71598 nextDay: '[Bukas ng] LT', 71599 nextWeek: 'LT [sa susunod na] dddd', 71600 lastDay: 'LT [kahapon]', 71601 lastWeek: 'LT [noong nakaraang] dddd', 71602 sameElse: 'L', 71603 }, 71604 relativeTime: { 71605 future: 'sa loob ng %s', 71606 past: '%s ang nakalipas', 71607 s: 'ilang segundo', 71608 ss: '%d segundo', 71609 m: 'isang minuto', 71610 mm: '%d minuto', 71611 h: 'isang oras', 71612 hh: '%d oras', 71613 d: 'isang araw', 71614 dd: '%d araw', 71615 M: 'isang buwan', 71616 MM: '%d buwan', 71617 y: 'isang taon', 71618 yy: '%d taon', 71619 }, 71620 dayOfMonthOrdinalParse: /\d{1,2}/, 71621 ordinal: function (number) { 71622 return number; 71623 }, 71624 week: { 71625 dow: 1, // Monday is the first day of the week. 71626 doy: 4, // The week that contains Jan 4th is the first week of the year. 71627 }, 71628 }); 71629 71630 return tlPh; 71631 71632}))); 71633 71634 71635/***/ }), 71636
vendor: 4,726 bytes, lines 71637-71779
71637/***/ "./node_modules/moment/locale/tlh.js": 71638/*!*******************************************!*\ 71639 !*** ./node_modules/moment/locale/tlh.js ***! 71640 \*******************************************/ 71641/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 71642 71643//! moment.js locale configuration 71644//! locale : Klingon [tlh] 71645//! author : Dominika Kruk : https://github.com/amaranthrose 71646 71647;(function (global, factory) { 71648 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 71649 0 71650}(this, (function (moment) { 'use strict'; 71651 71652 //! moment.js locale configuration 71653 71654 var numbersNouns = 'pagh_waâ_chaâ_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); 71655 71656 function translateFuture(output) { 71657 var time = output; 71658 time = 71659 output.indexOf('jaj') !== -1 71660 ? time.slice(0, -3) + 'leS' 71661 : output.indexOf('jar') !== -1 71662 ? time.slice(0, -3) + 'waQ' 71663 : output.indexOf('DIS') !== -1 71664 ? time.slice(0, -3) + 'nem' 71665 : time + ' pIq'; 71666 return time; 71667 } 71668 71669 function translatePast(output) { 71670 var time = output; 71671 time = 71672 output.indexOf('jaj') !== -1 71673 ? time.slice(0, -3) + 'Huâ' 71674 : output.indexOf('jar') !== -1 71675 ? time.slice(0, -3) + 'wen' 71676 : output.indexOf('DIS') !== -1 71677 ? time.slice(0, -3) + 'ben' 71678 : time + ' ret'; 71679 return time; 71680 } 71681 71682 function translate(number, withoutSuffix, string, isFuture) { 71683 var numberNoun = numberAsNoun(number); 71684 switch (string) { 71685 case 'ss': 71686 return numberNoun + ' lup'; 71687 case 'mm': 71688 return numberNoun + ' tup'; 71689 case 'hh': 71690 return numberNoun + ' rep'; 71691 case 'dd': 71692 return numberNoun + ' jaj'; 71693 case 'MM': 71694 return numberNoun + ' jar'; 71695 case 'yy': 71696 return numberNoun + ' DIS'; 71697 } 71698 } 71699 71700 function numberAsNoun(number) { 71701 var hundred = Math.floor((number % 1000) / 100), 71702 ten = Math.floor((number % 100) / 10), 71703 one = number % 10, 71704 word = ''; 71705 if (hundred > 0) { 71706 word += numbersNouns[hundred] + 'vatlh'; 71707 } 71708 if (ten > 0) { 71709 word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; 71710 } 71711 if (one > 0) { 71712 word += (word !== '' ? ' ' : '') + numbersNouns[one]; 71713 } 71714 return word === '' ? 'pagh' : word; 71715 } 71716 71717 var tlh = moment.defineLocale('tlh', { 71718 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( 71719 '_' 71720 ), 71721 monthsShort: 71722 '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( 71723 '_' 71724 ), 71725 monthsParseExact: true, 71726 weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( 71727 '_' 71728 ), 71729 weekdaysShort: 71730 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), 71731 weekdaysMin: 71732 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), 71733 longDateFormat: { 71734 LT: 'HH:mm', 71735 LTS: 'HH:mm:ss', 71736 L: 'DD.MM.YYYY', 71737 LL: 'D MMMM YYYY', 71738 LLL: 'D MMMM YYYY HH:mm', 71739 LLLL: 'dddd, D MMMM YYYY HH:mm', 71740 }, 71741 calendar: { 71742 sameDay: '[DaHjaj] LT', 71743 nextDay: '[waâleS] LT', 71744 nextWeek: 'LLL', 71745 lastDay: '[waâHuâ] LT', 71746 lastWeek: 'LLL', 71747 sameElse: 'L', 71748 }, 71749 relativeTime: { 71750 future: translateFuture, 71751 past: translatePast, 71752 s: 'puS lup', 71753 ss: translate, 71754 m: 'waâ tup', 71755 mm: translate, 71756 h: 'waâ rep', 71757 hh: translate, 71758 d: 'waâ jaj', 71759 dd: translate, 71760 M: 'waâ jar', 71761 MM: translate, 71762 y: 'waâ DIS', 71763 yy: translate, 71764 }, 71765 dayOfMonthOrdinalParse: /\d{1,2}\./, 71766 ordinal: '%d.', 71767 week: { 71768 dow: 1, // Monday is the first day of the week. 71769 doy: 4, // The week that contains Jan 4th is the first week of the year. 71770 }, 71771 }); 71772 71773 return tlh; 71774 71775}))); 71776 71777 71778/***/ }), 71779
vendor: 3,808 bytes, lines 71780-71904
71780/***/ "./node_modules/moment/locale/tr.js": 71781/*!******************************************!*\ 71782 !*** ./node_modules/moment/locale/tr.js ***! 71783 \******************************************/ 71784/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 71785 71786//! moment.js locale configuration 71787//! locale : Turkish [tr] 71788//! authors : Erhan Gundogan : https://github.com/erhangundogan, 71789//! Burak YiÄit Kaya: https://github.com/BYK 71790 71791;(function (global, factory) { 71792 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 71793 0 71794}(this, (function (moment) { 'use strict'; 71795 71796 //! moment.js locale configuration 71797 71798 var suffixes = { 71799 1: "'inci", 71800 5: "'inci", 71801 8: "'inci", 71802 70: "'inci", 71803 80: "'inci", 71804 2: "'nci", 71805 7: "'nci", 71806 20: "'nci", 71807 50: "'nci", 71808 3: "'üncü", 71809 4: "'üncü", 71810 100: "'üncü", 71811 6: "'ncı", 71812 9: "'uncu", 71813 10: "'uncu", 71814 30: "'uncu", 71815 60: "'ıncı", 71816 90: "'ıncı", 71817 }; 71818 71819 var tr = moment.defineLocale('tr', { 71820 months: 'Ocak_Åubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄustos_Eylül_Ekim_Kasım_Aralık'.split( 71821 '_' 71822 ), 71823 monthsShort: 'Oca_Åub_Mar_Nis_May_Haz_Tem_AÄu_Eyl_Eki_Kas_Ara'.split('_'), 71824 weekdays: 'Pazar_Pazartesi_Salı_ÃarÅamba_PerÅembe_Cuma_Cumartesi'.split( 71825 '_' 71826 ), 71827 weekdaysShort: 'Paz_Pzt_Sal_Ãar_Per_Cum_Cmt'.split('_'), 71828 weekdaysMin: 'Pz_Pt_Sa_Ãa_Pe_Cu_Ct'.split('_'), 71829 meridiem: function (hours, minutes, isLower) { 71830 if (hours < 12) { 71831 return isLower ? 'öö' : 'ÃÃ'; 71832 } else { 71833 return isLower ? 'ös' : 'ÃS'; 71834 } 71835 }, 71836 meridiemParse: /öö|ÃÃ|ös|ÃS/, 71837 isPM: function (input) { 71838 return input === 'ös' || input === 'ÃS'; 71839 }, 71840 longDateFormat: { 71841 LT: 'HH:mm', 71842 LTS: 'HH:mm:ss', 71843 L: 'DD.MM.YYYY', 71844 LL: 'D MMMM YYYY', 71845 LLL: 'D MMMM YYYY HH:mm', 71846 LLLL: 'dddd, D MMMM YYYY HH:mm', 71847 }, 71848 calendar: { 71849 sameDay: '[bugün saat] LT', 71850 nextDay: '[yarın saat] LT', 71851 nextWeek: '[gelecek] dddd [saat] LT', 71852 lastDay: '[dün] LT', 71853 lastWeek: '[geçen] dddd [saat] LT', 71854 sameElse: 'L', 71855 }, 71856 relativeTime: { 71857 future: '%s sonra', 71858 past: '%s önce', 71859 s: 'birkaç saniye', 71860 ss: '%d saniye', 71861 m: 'bir dakika', 71862 mm: '%d dakika', 71863 h: 'bir saat', 71864 hh: '%d saat', 71865 d: 'bir gün', 71866 dd: '%d gün', 71867 w: 'bir hafta', 71868 ww: '%d hafta', 71869 M: 'bir ay', 71870 MM: '%d ay', 71871 y: 'bir yıl', 71872 yy: '%d yıl', 71873 }, 71874 ordinal: function (number, period) { 71875 switch (period) { 71876 case 'd': 71877 case 'D': 71878 case 'Do': 71879 case 'DD': 71880 return number; 71881 default: 71882 if (number === 0) { 71883 // special case for zero 71884 return number + "'ıncı"; 71885 } 71886 var a = number % 10, 71887 b = (number % 100) - a, 71888 c = number >= 100 ? 100 : null; 71889 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 71890 } 71891 }, 71892 week: { 71893 dow: 1, // Monday is the first day of the week. 71894 doy: 7, // The week that contains Jan 7th is the first week of the year. 71895 }, 71896 }); 71897 71898 return tr; 71899 71900}))); 71901 71902 71903/***/ }), 71904
vendor: 3,932 bytes, lines 71905-72012
71905/***/ "./node_modules/moment/locale/tzl.js": 71906/*!*******************************************!*\ 71907 !*** ./node_modules/moment/locale/tzl.js ***! 71908 \*******************************************/ 71909/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 71910 71911//! moment.js locale configuration 71912//! locale : Talossan [tzl] 71913//! author : Robin van der Vliet : https://github.com/robin0van0der0v 71914//! author : Iustì Canun 71915 71916;(function (global, factory) { 71917 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 71918 0 71919}(this, (function (moment) { 'use strict'; 71920 71921 //! moment.js locale configuration 71922 71923 // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. 71924 // This is currently too difficult (maybe even impossible) to add. 71925 var tzl = moment.defineLocale('tzl', { 71926 months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( 71927 '_' 71928 ), 71929 monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), 71930 weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), 71931 weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), 71932 weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), 71933 longDateFormat: { 71934 LT: 'HH.mm', 71935 LTS: 'HH.mm.ss', 71936 L: 'DD.MM.YYYY', 71937 LL: 'D. MMMM [dallas] YYYY', 71938 LLL: 'D. MMMM [dallas] YYYY HH.mm', 71939 LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', 71940 }, 71941 meridiemParse: /d\'o|d\'a/i, 71942 isPM: function (input) { 71943 return "d'o" === input.toLowerCase(); 71944 }, 71945 meridiem: function (hours, minutes, isLower) { 71946 if (hours > 11) { 71947 return isLower ? "d'o" : "D'O"; 71948 } else { 71949 return isLower ? "d'a" : "D'A"; 71950 } 71951 }, 71952 calendar: { 71953 sameDay: '[oxhi à ] LT', 71954 nextDay: '[demà à ] LT', 71955 nextWeek: 'dddd [à ] LT', 71956 lastDay: '[ieiri à ] LT', 71957 lastWeek: '[sür el] dddd [lasteu à ] LT', 71958 sameElse: 'L', 71959 }, 71960 relativeTime: { 71961 future: 'osprei %s', 71962 past: 'ja%s', 71963 s: processRelativeTime, 71964 ss: processRelativeTime, 71965 m: processRelativeTime, 71966 mm: processRelativeTime, 71967 h: processRelativeTime, 71968 hh: processRelativeTime, 71969 d: processRelativeTime, 71970 dd: processRelativeTime, 71971 M: processRelativeTime, 71972 MM: processRelativeTime, 71973 y: processRelativeTime, 71974 yy: processRelativeTime, 71975 }, 71976 dayOfMonthOrdinalParse: /\d{1,2}\./, 71977 ordinal: '%d.', 71978 week: { 71979 dow: 1, // Monday is the first day of the week. 71980 doy: 4, // The week that contains Jan 4th is the first week of the year. 71981 }, 71982 }); 71983 71984 function processRelativeTime(number, withoutSuffix, key, isFuture) { 71985 var format = { 71986 s: ['viensas secunds', "'iensas secunds"], 71987 ss: [number + ' secunds', '' + number + ' secunds'], 71988 m: ["'n mÃut", "'iens mÃut"], 71989 mm: [number + ' mÃuts', '' + number + ' mÃuts'], 71990 h: ["'n þora", "'iensa þora"], 71991 hh: [number + ' þoras', '' + number + ' þoras'], 71992 d: ["'n ziua", "'iensa ziua"], 71993 dd: [number + ' ziuas', '' + number + ' ziuas'], 71994 M: ["'n mes", "'iens mes"], 71995 MM: [number + ' mesen', '' + number + ' mesen'], 71996 y: ["'n ar", "'iens ar"], 71997 yy: [number + ' ars', '' + number + ' ars'], 71998 }; 71999 return isFuture 72000 ? format[key][0] 72001 : withoutSuffix 72002 ? format[key][0] 72003 : format[key][1]; 72004 } 72005 72006 return tzl; 72007 72008}))); 72009 72010 72011/***/ }), 72012
vendor: 2,406 bytes, lines 72013-72085
72013/***/ "./node_modules/moment/locale/tzm-latn.js": 72014/*!************************************************!*\ 72015 !*** ./node_modules/moment/locale/tzm-latn.js ***! 72016 \************************************************/ 72017/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 72018 72019//! moment.js locale configuration 72020//! locale : Central Atlas Tamazight Latin [tzm-latn] 72021//! author : Abdel Said : https://github.com/abdelsaid 72022 72023;(function (global, factory) { 72024 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 72025 0 72026}(this, (function (moment) { 'use strict'; 72027 72028 //! moment.js locale configuration 72029 72030 var tzmLatn = moment.defineLocale('tzm-latn', { 72031 months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( 72032 '_' 72033 ), 72034 monthsShort: 72035 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( 72036 '_' 72037 ), 72038 weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 72039 weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 72040 weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 72041 longDateFormat: { 72042 LT: 'HH:mm', 72043 LTS: 'HH:mm:ss', 72044 L: 'DD/MM/YYYY', 72045 LL: 'D MMMM YYYY', 72046 LLL: 'D MMMM YYYY HH:mm', 72047 LLLL: 'dddd D MMMM YYYY HH:mm', 72048 }, 72049 calendar: { 72050 sameDay: '[asdkh g] LT', 72051 nextDay: '[aska g] LT', 72052 nextWeek: 'dddd [g] LT', 72053 lastDay: '[assant g] LT', 72054 lastWeek: 'dddd [g] LT', 72055 sameElse: 'L', 72056 }, 72057 relativeTime: { 72058 future: 'dadkh s yan %s', 72059 past: 'yan %s', 72060 s: 'imik', 72061 ss: '%d imik', 72062 m: 'minuá¸', 72063 mm: '%d minuá¸', 72064 h: 'saÉa', 72065 hh: '%d tassaÉin', 72066 d: 'ass', 72067 dd: '%d ossan', 72068 M: 'ayowr', 72069 MM: '%d iyyirn', 72070 y: 'asgas', 72071 yy: '%d isgasn', 72072 }, 72073 week: { 72074 dow: 6, // Saturday is the first day of the week. 72075 doy: 12, // The week that contains Jan 12th is the first week of the year. 72076 }, 72077 }); 72078 72079 return tzmLatn; 72080 72081}))); 72082 72083 72084/***/ }), 72085
vendor: 3,009 bytes, lines 72086-72158
72086/***/ "./node_modules/moment/locale/tzm.js": 72087/*!*******************************************!*\ 72088 !*** ./node_modules/moment/locale/tzm.js ***! 72089 \*******************************************/ 72090/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 72091 72092//! moment.js locale configuration 72093//! locale : Central Atlas Tamazight [tzm] 72094//! author : Abdel Said : https://github.com/abdelsaid 72095 72096;(function (global, factory) { 72097 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 72098 0 72099}(this, (function (moment) { 'use strict'; 72100 72101 //! moment.js locale configuration 72102 72103 var tzm = moment.defineLocale('tzm', { 72104 months: 'âµâµâµâ´°âµ¢âµ_â´±âµâ´°âµ¢âµ_âµâ´°âµâµ_âµâ´±âµâµâµ_âµâ´°âµ¢âµ¢âµ_âµ¢âµâµâµ¢âµ_âµ¢âµâµâµ¢âµâµ£_âµâµâµâµ_âµâµâµâ´°âµâ´±âµâµ_â´½âµâµâ´±âµ_âµâµâµ¡â´°âµâ´±âµâµ_â´·âµâµâµâ´±âµâµ'.split( 72105 '_' 72106 ), 72107 monthsShort: 72108 'âµâµâµâ´°âµ¢âµ_â´±âµâ´°âµ¢âµ_âµâ´°âµâµ_âµâ´±âµâµâµ_âµâ´°âµ¢âµ¢âµ_âµ¢âµâµâµ¢âµ_âµ¢âµâµâµ¢âµâµ£_âµâµâµâµ_âµâµâµâ´°âµâ´±âµâµ_â´½âµâµâ´±âµ_âµâµâµ¡â´°âµâ´±âµâµ_â´·âµâµâµâ´±âµâµ'.split( 72109 '_' 72110 ), 72111 weekdays: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 72112 weekdaysShort: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 72113 weekdaysMin: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 72114 longDateFormat: { 72115 LT: 'HH:mm', 72116 LTS: 'HH:mm:ss', 72117 L: 'DD/MM/YYYY', 72118 LL: 'D MMMM YYYY', 72119 LLL: 'D MMMM YYYY HH:mm', 72120 LLLL: 'dddd D MMMM YYYY HH:mm', 72121 }, 72122 calendar: { 72123 sameDay: '[â´°âµâ´·âµ â´´] LT', 72124 nextDay: '[â´°âµâ´½â´° â´´] LT', 72125 nextWeek: 'dddd [â´´] LT', 72126 lastDay: '[â´°âµâ´°âµâµ â´´] LT', 72127 lastWeek: 'dddd [â´´] LT', 72128 sameElse: 'L', 72129 }, 72130 relativeTime: { 72131 future: 'ⴷⴰⴷⵠⵠⵢⴰⵠ%s', 72132 past: 'ⵢⴰⵠ%s', 72133 s: 'âµâµâµâ´½', 72134 ss: '%d âµâµâµâ´½', 72135 m: 'âµâµâµâµâ´º', 72136 mm: '%d âµâµâµâµâ´º', 72137 h: 'âµâ´°âµâ´°', 72138 hh: '%d âµâ´°âµâµâ´°âµâµâµ', 72139 d: 'â´°âµâµ', 72140 dd: '%d oâµâµâ´°âµ', 72141 M: 'â´°âµ¢oâµâµ', 72142 MM: '%d âµâµ¢âµ¢âµâµâµ', 72143 y: 'â´°âµâ´³â´°âµ', 72144 yy: '%d âµâµâ´³â´°âµâµ', 72145 }, 72146 week: { 72147 dow: 6, // Saturday is the first day of the week. 72148 doy: 12, // The week that contains Jan 12th is the first week of the year. 72149 }, 72150 }); 72151 72152 return tzm; 72153 72154}))); 72155 72156 72157/***/ }), 72158
vendor: 4,801 bytes, lines 72159-72288
72159/***/ "./node_modules/moment/locale/ug-cn.js": 72160/*!*********************************************!*\ 72161 !*** ./node_modules/moment/locale/ug-cn.js ***! 72162 \*********************************************/ 72163/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 72164 72165//! moment.js locale configuration 72166//! locale : Uyghur (China) [ug-cn] 72167//! author: boyaq : https://github.com/boyaq 72168 72169;(function (global, factory) { 72170 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 72171 0 72172}(this, (function (moment) { 'use strict'; 72173 72174 //! moment.js locale configuration 72175 72176 var ugCn = moment.defineLocale('ug-cn', { 72177 months: 'ÙØ§ÙÛØ§Ø±_ÙÛÛØ±Ø§Ù_٠ارت_ئاپرÛÙ_٠اÙ_ئÙÙÛÙ_ئÙÙÛÙ_Ø¦Ø§ÛØºÛست_سÛÙØªÛØ¨ÙØ±_ئÛÙØªÛØ¨ÙØ±_ÙÙÙØ§Ø¨Ùر_دÛÙØ§Ø¨Ùر'.split( 72178 '_' 72179 ), 72180 monthsShort: 72181 'ÙØ§ÙÛØ§Ø±_ÙÛÛØ±Ø§Ù_٠ارت_ئاپرÛÙ_٠اÙ_ئÙÙÛÙ_ئÙÙÛÙ_Ø¦Ø§ÛØºÛست_سÛÙØªÛØ¨ÙØ±_ئÛÙØªÛØ¨ÙØ±_ÙÙÙØ§Ø¨Ùر_دÛÙØ§Ø¨Ùر'.split( 72182 '_' 72183 ), 72184 weekdays: 'ÙÛÙØ´ÛÙØ¨Û_Ø¯ÛØ´ÛÙØ¨Û_سÛÙØ´ÛÙØ¨Û_ÚØ§Ø±Ø´ÛÙØ¨Û_Ù¾ÛÙØ´ÛÙØ¨Û_جÛÙ Û_Ø´ÛÙØ¨Û'.split( 72185 '_' 72186 ), 72187 weekdaysShort: 'ÙÛ_دÛ_سÛ_ÚØ§_Ù¾Û_جÛ_Ø´Û'.split('_'), 72188 weekdaysMin: 'ÙÛ_دÛ_سÛ_ÚØ§_Ù¾Û_جÛ_Ø´Û'.split('_'), 72189 longDateFormat: { 72190 LT: 'HH:mm', 72191 LTS: 'HH:mm:ss', 72192 L: 'YYYY-MM-DD', 72193 LL: 'YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙ', 72194 LLL: 'YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙØ HH:mm', 72195 LLLL: 'ddddØ YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙØ HH:mm', 72196 }, 72197 meridiemParse: /ÙÛØ±ÙÙ ÙÛÚÛ|سÛÚ¾ÛØ±|ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ|ÚÛØ´|ÚÛØ´ØªÙÙ ÙÛÙÙÙ|ÙÛÚ/, 72198 meridiemHour: function (hour, meridiem) { 72199 if (hour === 12) { 72200 hour = 0; 72201 } 72202 if ( 72203 meridiem === 'ÙÛØ±ÙÙ ÙÛÚÛ' || 72204 meridiem === 'سÛÚ¾ÛØ±' || 72205 meridiem === 'ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ' 72206 ) { 72207 return hour; 72208 } else if (meridiem === 'ÚÛØ´ØªÙÙ ÙÛÙÙÙ' || meridiem === 'ÙÛÚ') { 72209 return hour + 12; 72210 } else { 72211 return hour >= 11 ? hour : hour + 12; 72212 } 72213 }, 72214 meridiem: function (hour, minute, isLower) { 72215 var hm = hour * 100 + minute; 72216 if (hm < 600) { 72217 return 'ÙÛØ±ÙÙ ÙÛÚÛ'; 72218 } else if (hm < 900) { 72219 return 'سÛÚ¾ÛØ±'; 72220 } else if (hm < 1130) { 72221 return 'ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ'; 72222 } else if (hm < 1230) { 72223 return 'ÚÛØ´'; 72224 } else if (hm < 1800) { 72225 return 'ÚÛØ´ØªÙÙ ÙÛÙÙÙ'; 72226 } else { 72227 return 'ÙÛÚ'; 72228 } 72229 }, 72230 calendar: { 72231 sameDay: '[بÛÚ¯ÛÙ Ø³Ø§Ø¦ÛØª] LT', 72232 nextDay: '[Ø¦ÛØªÛ Ø³Ø§Ø¦ÛØª] LT', 72233 nextWeek: '[ÙÛÙÛØ±ÙÙ] dddd [Ø³Ø§Ø¦ÛØª] LT', 72234 lastDay: '[تÛÙÛÚ¯ÛÙ] LT', 72235 lastWeek: '[Ø¦Ø§ÙØ¯ÙÙÙÙ] dddd [Ø³Ø§Ø¦ÛØª] LT', 72236 sameElse: 'L', 72237 }, 72238 relativeTime: { 72239 future: '%s ÙÛÙÙÙ', 72240 past: '%s Ø¨ÛØ±ÛÙ', 72241 s: 'ÙÛÚÚÛ Ø³ÛÙÙÙØª', 72242 ss: '%d سÛÙÙÙØª', 72243 m: 'Ø¨ÙØ± Ù ÙÙÛØª', 72244 mm: '%d Ù ÙÙÛØª', 72245 h: 'Ø¨ÙØ± Ø³Ø§Ø¦ÛØª', 72246 hh: '%d Ø³Ø§Ø¦ÛØª', 72247 d: 'Ø¨ÙØ± ÙÛÙ', 72248 dd: '%d ÙÛÙ', 72249 M: 'Ø¨ÙØ± ئاÙ', 72250 MM: '%d ئاÙ', 72251 y: 'Ø¨ÙØ± ÙÙÙ', 72252 yy: '%d ÙÙÙ', 72253 }, 72254 72255 dayOfMonthOrdinalParse: /\d{1,2}(-ÙÛÙÙ|-ئاÙ|-Ú¾ÛپتÛ)/, 72256 ordinal: function (number, period) { 72257 switch (period) { 72258 case 'd': 72259 case 'D': 72260 case 'DDD': 72261 return number + '-ÙÛÙÙ'; 72262 case 'w': 72263 case 'W': 72264 return number + '-Ú¾ÛپتÛ'; 72265 default: 72266 return number; 72267 } 72268 }, 72269 preparse: function (string) { 72270 return string.replace(/Ø/g, ','); 72271 }, 72272 postformat: function (string) { 72273 return string.replace(/,/g, 'Ø'); 72274 }, 72275 week: { 72276 // GB/T 7408-1994ãæ°æ®å åäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ¥æåæ¶é´è¡¨ç¤ºæ³ãä¸ISO 8601:1988çæ 72277 dow: 1, // Monday is the first day of the week. 72278 doy: 7, // The week that contains Jan 1st is the first week of the year. 72279 }, 72280 }); 72281 72282 return ugCn; 72283 72284}))); 72285 72286 72287/***/ }), 72288
vendor: 7,080 bytes, lines 72289-72474
72289/***/ "./node_modules/moment/locale/uk.js": 72290/*!******************************************!*\ 72291 !*** ./node_modules/moment/locale/uk.js ***! 72292 \******************************************/ 72293/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 72294 72295//! moment.js locale configuration 72296//! locale : Ukrainian [uk] 72297//! author : zemlanin : https://github.com/zemlanin 72298//! Author : Menelion Elensúle : https://github.com/Oire 72299 72300;(function (global, factory) { 72301 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 72302 0 72303}(this, (function (moment) { 'use strict'; 72304 72305 //! moment.js locale configuration 72306 72307 function plural(word, num) { 72308 var forms = word.split('_'); 72309 return num % 10 === 1 && num % 100 !== 11 72310 ? forms[0] 72311 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) 72312 ? forms[1] 72313 : forms[2]; 72314 } 72315 function relativeTimeWithPlural(number, withoutSuffix, key) { 72316 var format = { 72317 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑнди_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑнди_ÑекÑнд', 72318 mm: withoutSuffix ? 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ð°_Ñ Ð²Ð¸Ð»Ð¸Ð½Ð¸_Ñ Ð²Ð¸Ð»Ð¸Ð½' : 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ñ_Ñ Ð²Ð¸Ð»Ð¸Ð½Ð¸_Ñ Ð²Ð¸Ð»Ð¸Ð½', 72319 hh: withoutSuffix ? 'година_години_годин' : 'годинÑ_години_годин', 72320 dd: 'денÑ_днÑ_днÑв', 72321 MM: 'мÑÑÑÑÑ_мÑÑÑÑÑ_мÑÑÑÑÑв', 72322 yy: 'ÑÑк_Ñоки_ÑокÑв', 72323 }; 72324 if (key === 'm') { 72325 return withoutSuffix ? 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ð°' : 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ñ'; 72326 } else if (key === 'h') { 72327 return withoutSuffix ? 'година' : 'годинÑ'; 72328 } else { 72329 return number + ' ' + plural(format[key], +number); 72330 } 72331 } 72332 function weekdaysCaseReplace(m, format) { 72333 var weekdays = { 72334 nominative: 72335 'недÑлÑ_понедÑлок_вÑвÑоÑок_ÑеÑеда_ÑеÑвеÑ_пâÑÑниÑÑ_ÑÑбоÑа'.split( 72336 '_' 72337 ), 72338 accusative: 72339 'недÑлÑ_понедÑлок_вÑвÑоÑок_ÑеÑедÑ_ÑеÑвеÑ_пâÑÑниÑÑ_ÑÑбоÑÑ'.split( 72340 '_' 72341 ), 72342 genitive: 72343 'недÑлÑ_понедÑлка_вÑвÑоÑка_ÑеÑеди_ÑеÑвеÑга_пâÑÑниÑÑ_ÑÑбоÑи'.split( 72344 '_' 72345 ), 72346 }, 72347 nounCase; 72348 72349 if (m === true) { 72350 return weekdays['nominative'] 72351 .slice(1, 7) 72352 .concat(weekdays['nominative'].slice(0, 1)); 72353 } 72354 if (!m) { 72355 return weekdays['nominative']; 72356 } 72357 72358 nounCase = /(\[[ÐвУÑ]\]) ?dddd/.test(format) 72359 ? 'accusative' 72360 : /\[?(?:минÑлоÑ|наÑÑÑпноÑ)? ?\] ?dddd/.test(format) 72361 ? 'genitive' 72362 : 'nominative'; 72363 return weekdays[nounCase][m.day()]; 72364 } 72365 function processHoursFunction(str) { 72366 return function () { 72367 return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; 72368 }; 72369 } 72370 72371 var uk = moment.defineLocale('uk', { 72372 months: { 72373 format: 'ÑÑÑнÑ_лÑÑого_беÑезнÑ_квÑÑнÑ_ÑÑавнÑ_ÑеÑвнÑ_липнÑ_ÑеÑпнÑ_веÑеÑнÑ_жовÑнÑ_лиÑÑопада_гÑÑднÑ'.split( 72374 '_' 72375 ), 72376 standalone: 72377 'ÑÑÑенÑ_лÑÑий_беÑезенÑ_квÑÑенÑ_ÑÑавенÑ_ÑеÑвенÑ_липенÑ_ÑеÑпенÑ_веÑеÑенÑ_жовÑенÑ_лиÑÑопад_гÑÑденÑ'.split( 72378 '_' 72379 ), 72380 }, 72381 monthsShort: 'ÑÑÑ_лÑÑ_беÑ_квÑÑ_ÑÑав_ÑеÑв_лип_ÑеÑп_веÑ_жовÑ_лиÑÑ_гÑÑд'.split( 72382 '_' 72383 ), 72384 weekdays: weekdaysCaseReplace, 72385 weekdaysShort: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 72386 weekdaysMin: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 72387 longDateFormat: { 72388 LT: 'HH:mm', 72389 LTS: 'HH:mm:ss', 72390 L: 'DD.MM.YYYY', 72391 LL: 'D MMMM YYYY Ñ.', 72392 LLL: 'D MMMM YYYY Ñ., HH:mm', 72393 LLLL: 'dddd, D MMMM YYYY Ñ., HH:mm', 72394 }, 72395 calendar: { 72396 sameDay: processHoursFunction('[СÑÐ¾Ð³Ð¾Ð´Ð½Ñ '), 72397 nextDay: processHoursFunction('[ÐавÑÑа '), 72398 lastDay: processHoursFunction('[ÐÑоÑа '), 72399 nextWeek: processHoursFunction('[У] dddd ['), 72400 lastWeek: function () { 72401 switch (this.day()) { 72402 case 0: 72403 case 3: 72404 case 5: 72405 case 6: 72406 return processHoursFunction('[ÐинÑлоÑ] dddd [').call(this); 72407 case 1: 72408 case 2: 72409 case 4: 72410 return processHoursFunction('[ÐинÑлого] dddd [').call(this); 72411 } 72412 }, 72413 sameElse: 'L', 72414 }, 72415 relativeTime: { 72416 future: 'за %s', 72417 past: '%s ÑомÑ', 72418 s: 'декÑлÑка ÑекÑнд', 72419 ss: relativeTimeWithPlural, 72420 m: relativeTimeWithPlural, 72421 mm: relativeTimeWithPlural, 72422 h: 'годинÑ', 72423 hh: relativeTimeWithPlural, 72424 d: 'денÑ', 72425 dd: relativeTimeWithPlural, 72426 M: 'мÑÑÑÑÑ', 72427 MM: relativeTimeWithPlural, 72428 y: 'ÑÑк', 72429 yy: relativeTimeWithPlural, 72430 }, 72431 // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason 72432 meridiemParse: /ноÑÑ|ÑанкÑ|днÑ|веÑоÑа/, 72433 isPM: function (input) { 72434 return /^(днÑ|веÑоÑа)$/.test(input); 72435 }, 72436 meridiem: function (hour, minute, isLower) { 72437 if (hour < 4) { 72438 return 'ноÑÑ'; 72439 } else if (hour < 12) { 72440 return 'ÑанкÑ'; 72441 } else if (hour < 17) { 72442 return 'днÑ'; 72443 } else { 72444 return 'веÑоÑа'; 72445 } 72446 }, 72447 dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, 72448 ordinal: function (number, period) { 72449 switch (period) { 72450 case 'M': 72451 case 'd': 72452 case 'DDD': 72453 case 'w': 72454 case 'W': 72455 return number + '-й'; 72456 case 'D': 72457 return number + '-го'; 72458 default: 72459 return number; 72460 } 72461 }, 72462 week: { 72463 dow: 1, // Monday is the first day of the week. 72464 doy: 7, // The week that contains Jan 7th is the first week of the year. 72465 }, 72466 }); 72467 72468 return uk; 72469 72470}))); 72471 72472 72473/***/ }), 72474
vendor: 2,985 bytes, lines 72475-72575
72475/***/ "./node_modules/moment/locale/ur.js": 72476/*!******************************************!*\ 72477 !*** ./node_modules/moment/locale/ur.js ***! 72478 \******************************************/ 72479/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 72480 72481//! moment.js locale configuration 72482//! locale : Urdu [ur] 72483//! author : Sawood Alam : https://github.com/ibnesayeed 72484//! author : Zack : https://github.com/ZackVision 72485 72486;(function (global, factory) { 72487 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 72488 0 72489}(this, (function (moment) { 'use strict'; 72490 72491 //! moment.js locale configuration 72492 72493 var months = [ 72494 'جÙÙØ±Û', 72495 'ÙØ±ÙرÛ', 72496 '٠ارÚ', 72497 'اپرÛÙ', 72498 '٠ئÛ', 72499 'جÙÙ', 72500 'جÙÙØ§Ø¦Û', 72501 'اگست', 72502 'ست٠بر', 72503 'Ø§Ú©ØªÙØ¨Ø±', 72504 'ÙÙ٠بر', 72505 'دس٠بر', 72506 ], 72507 days = ['Ø§ØªÙØ§Ø±', 'Ù¾ÛØ±', 'Ù ÙÚ¯Ù', 'بدھ', 'ج٠عرات', 'ج٠عÛ', 'ÛÙØªÛ']; 72508 72509 var ur = moment.defineLocale('ur', { 72510 months: months, 72511 monthsShort: months, 72512 weekdays: days, 72513 weekdaysShort: days, 72514 weekdaysMin: days, 72515 longDateFormat: { 72516 LT: 'HH:mm', 72517 LTS: 'HH:mm:ss', 72518 L: 'DD/MM/YYYY', 72519 LL: 'D MMMM YYYY', 72520 LLL: 'D MMMM YYYY HH:mm', 72521 LLLL: 'ddddØ D MMMM YYYY HH:mm', 72522 }, 72523 meridiemParse: /صبØ|شا٠/, 72524 isPM: function (input) { 72525 return 'شا٠' === input; 72526 }, 72527 meridiem: function (hour, minute, isLower) { 72528 if (hour < 12) { 72529 return 'صبØ'; 72530 } 72531 return 'شا٠'; 72532 }, 72533 calendar: { 72534 sameDay: '[آج بÙÙØª] LT', 72535 nextDay: '[ک٠بÙÙØª] LT', 72536 nextWeek: 'dddd [بÙÙØª] LT', 72537 lastDay: '[Ú¯Ø°Ø´ØªÛ Ø±ÙØ² بÙÙØª] LT', 72538 lastWeek: '[گذشتÛ] dddd [بÙÙØª] LT', 72539 sameElse: 'L', 72540 }, 72541 relativeTime: { 72542 future: '%s بعد', 72543 past: '%s ÙØ¨Ù', 72544 s: 'ÚÙØ¯ سÛÚ©ÙÚ', 72545 ss: '%d سÛÚ©ÙÚ', 72546 m: 'اÛÚ© Ù ÙÙ¹', 72547 mm: '%d Ù ÙÙ¹', 72548 h: 'اÛÚ© Ú¯Ú¾ÙÙ¹Û', 72549 hh: '%d Ú¯Ú¾ÙÙ¹Û', 72550 d: 'اÛÚ© دÙ', 72551 dd: '%d دÙ', 72552 M: 'اÛÚ© ٠اÛ', 72553 MM: '%d ٠اÛ', 72554 y: 'اÛÚ© ساÙ', 72555 yy: '%d ساÙ', 72556 }, 72557 preparse: function (string) { 72558 return string.replace(/Ø/g, ','); 72559 }, 72560 postformat: function (string) { 72561 return string.replace(/,/g, 'Ø'); 72562 }, 72563 week: { 72564 dow: 1, // Monday is the first day of the week. 72565 doy: 4, // The week that contains Jan 4th is the first week of the year. 72566 }, 72567 }); 72568 72569 return ur; 72570 72571}))); 72572 72573 72574/***/ }), 72575
vendor: 2,348 bytes, lines 72576-72648
72576/***/ "./node_modules/moment/locale/uz-latn.js": 72577/*!***********************************************!*\ 72578 !*** ./node_modules/moment/locale/uz-latn.js ***! 72579 \***********************************************/ 72580/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 72581 72582//! moment.js locale configuration 72583//! locale : Uzbek Latin [uz-latn] 72584//! author : Rasulbek Mirzayev : github.com/Rasulbeeek 72585 72586;(function (global, factory) { 72587 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 72588 0 72589}(this, (function (moment) { 'use strict'; 72590 72591 //! moment.js locale configuration 72592 72593 var uzLatn = moment.defineLocale('uz-latn', { 72594 months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( 72595 '_' 72596 ), 72597 monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), 72598 weekdays: 72599 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( 72600 '_' 72601 ), 72602 weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), 72603 weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), 72604 longDateFormat: { 72605 LT: 'HH:mm', 72606 LTS: 'HH:mm:ss', 72607 L: 'DD/MM/YYYY', 72608 LL: 'D MMMM YYYY', 72609 LLL: 'D MMMM YYYY HH:mm', 72610 LLLL: 'D MMMM YYYY, dddd HH:mm', 72611 }, 72612 calendar: { 72613 sameDay: '[Bugun soat] LT [da]', 72614 nextDay: '[Ertaga] LT [da]', 72615 nextWeek: 'dddd [kuni soat] LT [da]', 72616 lastDay: '[Kecha soat] LT [da]', 72617 lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", 72618 sameElse: 'L', 72619 }, 72620 relativeTime: { 72621 future: 'Yaqin %s ichida', 72622 past: 'Bir necha %s oldin', 72623 s: 'soniya', 72624 ss: '%d soniya', 72625 m: 'bir daqiqa', 72626 mm: '%d daqiqa', 72627 h: 'bir soat', 72628 hh: '%d soat', 72629 d: 'bir kun', 72630 dd: '%d kun', 72631 M: 'bir oy', 72632 MM: '%d oy', 72633 y: 'bir yil', 72634 yy: '%d yil', 72635 }, 72636 week: { 72637 dow: 1, // Monday is the first day of the week. 72638 doy: 7, // The week that contains Jan 7th is the first week of the year. 72639 }, 72640 }); 72641 72642 return uzLatn; 72643 72644}))); 72645 72646 72647/***/ }), 72648
vendor: 2,554 bytes, lines 72649-72718
72649/***/ "./node_modules/moment/locale/uz.js": 72650/*!******************************************!*\ 72651 !*** ./node_modules/moment/locale/uz.js ***! 72652 \******************************************/ 72653/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 72654 72655//! moment.js locale configuration 72656//! locale : Uzbek [uz] 72657//! author : Sardor Muminov : https://github.com/muminoff 72658 72659;(function (global, factory) { 72660 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 72661 0 72662}(this, (function (moment) { 'use strict'; 72663 72664 //! moment.js locale configuration 72665 72666 var uz = moment.defineLocale('uz', { 72667 months: 'ÑнваÑ_ÑевÑал_маÑÑ_апÑел_май_иÑн_иÑл_авгÑÑÑ_ÑенÑÑбÑ_окÑÑбÑ_ноÑбÑ_декабÑ'.split( 72668 '_' 72669 ), 72670 monthsShort: 'Ñнв_Ñев_маÑ_апÑ_май_иÑн_иÑл_авг_Ñен_окÑ_ноÑ_дек'.split('_'), 72671 weekdays: 'ЯкÑанба_ÐÑÑанба_СеÑанба_ЧоÑÑанба_ÐайÑанба_ÐÑма_Шанба'.split('_'), 72672 weekdaysShort: 'ЯкÑ_ÐÑÑ_СеÑ_ЧоÑ_Ðай_ÐÑм_Шан'.split('_'), 72673 weekdaysMin: 'Як_ÐÑ_Се_Чо_Ðа_ÐÑ_Ша'.split('_'), 72674 longDateFormat: { 72675 LT: 'HH:mm', 72676 LTS: 'HH:mm:ss', 72677 L: 'DD/MM/YYYY', 72678 LL: 'D MMMM YYYY', 72679 LLL: 'D MMMM YYYY HH:mm', 72680 LLLL: 'D MMMM YYYY, dddd HH:mm', 72681 }, 72682 calendar: { 72683 sameDay: '[ÐÑгÑн ÑоаÑ] LT [да]', 72684 nextDay: '[ÐÑÑага] LT [да]', 72685 nextWeek: 'dddd [кÑни ÑоаÑ] LT [да]', 72686 lastDay: '[ÐеÑа ÑоаÑ] LT [да]', 72687 lastWeek: '[УÑган] dddd [кÑни ÑоаÑ] LT [да]', 72688 sameElse: 'L', 72689 }, 72690 relativeTime: { 72691 future: 'Якин %s иÑида', 72692 past: 'ÐÐ¸Ñ Ð½ÐµÑа %s олдин', 72693 s: 'ÑÑÑÑаÑ', 72694 ss: '%d ÑÑÑÑаÑ', 72695 m: 'Ð±Ð¸Ñ Ð´Ð°ÐºÐ¸ÐºÐ°', 72696 mm: '%d дакика', 72697 h: 'Ð±Ð¸Ñ ÑоаÑ', 72698 hh: '%d ÑоаÑ', 72699 d: 'Ð±Ð¸Ñ ÐºÑн', 72700 dd: '%d кÑн', 72701 M: 'Ð±Ð¸Ñ Ð¾Ð¹', 72702 MM: '%d ой', 72703 y: 'Ð±Ð¸Ñ Ð¹Ð¸Ð»', 72704 yy: '%d йил', 72705 }, 72706 week: { 72707 dow: 1, // Monday is the first day of the week. 72708 doy: 7, // The week that contains Jan 4th is the first week of the year. 72709 }, 72710 }); 72711 72712 return uz; 72713 72714}))); 72715 72716 72717/***/ }), 72718
vendor: 3,211 bytes, lines 72719-72817
72719/***/ "./node_modules/moment/locale/vi.js": 72720/*!******************************************!*\ 72721 !*** ./node_modules/moment/locale/vi.js ***! 72722 \******************************************/ 72723/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 72724 72725//! moment.js locale configuration 72726//! locale : Vietnamese [vi] 72727//! author : Bang Nguyen : https://github.com/bangnk 72728//! author : Chien Kira : https://github.com/chienkira 72729 72730;(function (global, factory) { 72731 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 72732 0 72733}(this, (function (moment) { 'use strict'; 72734 72735 //! moment.js locale configuration 72736 72737 var vi = moment.defineLocale('vi', { 72738 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( 72739 '_' 72740 ), 72741 monthsShort: 72742 '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( 72743 '_' 72744 ), 72745 monthsParseExact: true, 72746 weekdays: 'chá»§ nháºt_thứ hai_thứ ba_thứ tư_thứ nÄm_thứ sáu_thứ bảy'.split( 72747 '_' 72748 ), 72749 weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), 72750 weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), 72751 weekdaysParseExact: true, 72752 meridiemParse: /sa|ch/i, 72753 isPM: function (input) { 72754 return /^ch$/i.test(input); 72755 }, 72756 meridiem: function (hours, minutes, isLower) { 72757 if (hours < 12) { 72758 return isLower ? 'sa' : 'SA'; 72759 } else { 72760 return isLower ? 'ch' : 'CH'; 72761 } 72762 }, 72763 longDateFormat: { 72764 LT: 'HH:mm', 72765 LTS: 'HH:mm:ss', 72766 L: 'DD/MM/YYYY', 72767 LL: 'D MMMM [nÄm] YYYY', 72768 LLL: 'D MMMM [nÄm] YYYY HH:mm', 72769 LLLL: 'dddd, D MMMM [nÄm] YYYY HH:mm', 72770 l: 'DD/M/YYYY', 72771 ll: 'D MMM YYYY', 72772 lll: 'D MMM YYYY HH:mm', 72773 llll: 'ddd, D MMM YYYY HH:mm', 72774 }, 72775 calendar: { 72776 sameDay: '[Hôm nay lúc] LT', 72777 nextDay: '[Ngà y mai lúc] LT', 72778 nextWeek: 'dddd [tuần tá»i lúc] LT', 72779 lastDay: '[Hôm qua lúc] LT', 72780 lastWeek: 'dddd [tuần trưá»c lúc] LT', 72781 sameElse: 'L', 72782 }, 72783 relativeTime: { 72784 future: '%s tá»i', 72785 past: '%s trưá»c', 72786 s: 'và i giây', 72787 ss: '%d giây', 72788 m: 'má»t phút', 72789 mm: '%d phút', 72790 h: 'má»t giá»', 72791 hh: '%d giá»', 72792 d: 'má»t ngà y', 72793 dd: '%d ngà y', 72794 w: 'má»t tuần', 72795 ww: '%d tuần', 72796 M: 'má»t tháng', 72797 MM: '%d tháng', 72798 y: 'má»t nÄm', 72799 yy: '%d nÄm', 72800 }, 72801 dayOfMonthOrdinalParse: /\d{1,2}/, 72802 ordinal: function (number) { 72803 return number; 72804 }, 72805 week: { 72806 dow: 1, // Monday is the first day of the week. 72807 doy: 4, // The week that contains Jan 4th is the first week of the year. 72808 }, 72809 }); 72810 72811 return vi; 72812 72813}))); 72814 72815 72816/***/ }), 72817
vendor: 3,163 bytes, lines 72818-72909
72818/***/ "./node_modules/moment/locale/x-pseudo.js": 72819/*!************************************************!*\ 72820 !*** ./node_modules/moment/locale/x-pseudo.js ***! 72821 \************************************************/ 72822/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 72823 72824//! moment.js locale configuration 72825//! locale : Pseudo [x-pseudo] 72826//! author : Andrew Hood : https://github.com/andrewhood125 72827 72828;(function (global, factory) { 72829 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 72830 0 72831}(this, (function (moment) { 'use strict'; 72832 72833 //! moment.js locale configuration 72834 72835 var xPseudo = moment.defineLocale('x-pseudo', { 72836 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( 72837 '_' 72838 ), 72839 monthsShort: 72840 'J~áñ_~Féb_~Már_~Ãpr_~Máý_~Júñ_~Júl_~Ãúg_~Sép_~Ãct_~Ãóv_~Déc'.split( 72841 '_' 72842 ), 72843 monthsParseExact: true, 72844 weekdays: 72845 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~FrÃd~áý_S~átúr~dáý'.split( 72846 '_' 72847 ), 72848 weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~FrÃ_~Sát'.split('_'), 72849 weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), 72850 weekdaysParseExact: true, 72851 longDateFormat: { 72852 LT: 'HH:mm', 72853 L: 'DD/MM/YYYY', 72854 LL: 'D MMMM YYYY', 72855 LLL: 'D MMMM YYYY HH:mm', 72856 LLLL: 'dddd, D MMMM YYYY HH:mm', 72857 }, 72858 calendar: { 72859 sameDay: '[T~ódá~ý át] LT', 72860 nextDay: '[T~ómó~rró~w át] LT', 72861 nextWeek: 'dddd [át] LT', 72862 lastDay: '[Ã~ést~érdá~ý át] LT', 72863 lastWeek: '[L~ást] dddd [át] LT', 72864 sameElse: 'L', 72865 }, 72866 relativeTime: { 72867 future: 'Ã~ñ %s', 72868 past: '%s á~gó', 72869 s: 'á ~féw ~sécó~ñds', 72870 ss: '%d s~écóñ~ds', 72871 m: 'á ~mÃñ~úté', 72872 mm: '%d m~Ãñú~tés', 72873 h: 'á~ñ hó~úr', 72874 hh: '%d h~óúrs', 72875 d: 'á ~dáý', 72876 dd: '%d d~áýs', 72877 M: 'á ~móñ~th', 72878 MM: '%d m~óñt~hs', 72879 y: 'á ~ýéár', 72880 yy: '%d ý~éárs', 72881 }, 72882 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, 72883 ordinal: function (number) { 72884 var b = number % 10, 72885 output = 72886 ~~((number % 100) / 10) === 1 72887 ? 'th' 72888 : b === 1 72889 ? 'st' 72890 : b === 2 72891 ? 'nd' 72892 : b === 3 72893 ? 'rd' 72894 : 'th'; 72895 return number + output; 72896 }, 72897 week: { 72898 dow: 1, // Monday is the first day of the week. 72899 doy: 4, // The week that contains Jan 4th is the first week of the year. 72900 }, 72901 }); 72902 72903 return xPseudo; 72904 72905}))); 72906 72907 72908/***/ }), 72909
vendor: 2,564 bytes, lines 72910-72981
72910/***/ "./node_modules/moment/locale/yo.js": 72911/*!******************************************!*\ 72912 !*** ./node_modules/moment/locale/yo.js ***! 72913 \******************************************/ 72914/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 72915 72916//! moment.js locale configuration 72917//! locale : Yoruba Nigeria [yo] 72918//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe 72919 72920;(function (global, factory) { 72921 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 72922 0 72923}(this, (function (moment) { 'use strict'; 72924 72925 //! moment.js locale configuration 72926 72927 var yo = moment.defineLocale('yo', { 72928 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( 72929 '_' 72930 ), 72931 monthsShort: 'SẹÌr_EÌrl_Ẹrn_IÌgb_EÌbi_OÌkuÌ_Agẹ_OÌguÌ_Owe_á»ÌwaÌ_BeÌl_á»ÌpẹÌÌ'.split('_'), 72932 weekdays: 'AÌiÌkuÌ_AjeÌ_IÌsẹÌgun_á»já»ÌruÌ_á»já»Ìbá»_ẸtiÌ_AÌbaÌmẹÌta'.split('_'), 72933 weekdaysShort: 'AÌiÌk_AjeÌ_IÌsẹÌ_á»jr_á»jb_ẸtiÌ_AÌbaÌ'.split('_'), 72934 weekdaysMin: 'AÌiÌ_Aj_IÌs_á»r_á»b_Ẹt_AÌb'.split('_'), 72935 longDateFormat: { 72936 LT: 'h:mm A', 72937 LTS: 'h:mm:ss A', 72938 L: 'DD/MM/YYYY', 72939 LL: 'D MMMM YYYY', 72940 LLL: 'D MMMM YYYY h:mm A', 72941 LLLL: 'dddd, D MMMM YYYY h:mm A', 72942 }, 72943 calendar: { 72944 sameDay: '[OÌniÌ ni] LT', 72945 nextDay: '[á»Ìla ni] LT', 72946 nextWeek: "dddd [á»sáº¹Ì toÌn'bá»] [ni] LT", 72947 lastDay: '[AÌna ni] LT', 72948 lastWeek: 'dddd [á»sáº¹Ì toÌlá»Ì] [ni] LT', 72949 sameElse: 'L', 72950 }, 72951 relativeTime: { 72952 future: 'niÌ %s', 72953 past: '%s ká»jaÌ', 72954 s: 'iÌsẹjuÌ aayaÌ die', 72955 ss: 'aayaÌ %d', 72956 m: 'iÌsẹjuÌ kan', 72957 mm: 'iÌsẹjuÌ %d', 72958 h: 'waÌkati kan', 72959 hh: 'waÌkati %d', 72960 d: 'á»já»Ì kan', 72961 dd: 'á»já»Ì %d', 72962 M: 'osuÌ kan', 72963 MM: 'osuÌ %d', 72964 y: 'á»duÌn kan', 72965 yy: 'á»duÌn %d', 72966 }, 72967 dayOfMonthOrdinalParse: /á»já»Ì\s\d{1,2}/, 72968 ordinal: 'á»já»Ì %d', 72969 week: { 72970 dow: 1, // Monday is the first day of the week. 72971 doy: 4, // The week that contains Jan 4th is the first week of the year. 72972 }, 72973 }); 72974 72975 return yo; 72976 72977}))); 72978 72979 72980/***/ }), 72981
vendor: 4,664 bytes, lines 72982-73120
72982/***/ "./node_modules/moment/locale/zh-cn.js": 72983/*!*********************************************!*\ 72984 !*** ./node_modules/moment/locale/zh-cn.js ***! 72985 \*********************************************/ 72986/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 72987 72988//! moment.js locale configuration 72989//! locale : Chinese (China) [zh-cn] 72990//! author : suupic : https://github.com/suupic 72991//! author : Zeno Zeng : https://github.com/zenozeng 72992//! author : uu109 : https://github.com/uu109 72993 72994;(function (global, factory) { 72995 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 72996 0 72997}(this, (function (moment) { 'use strict'; 72998 72999 //! moment.js locale configuration 73000 73001 var zhCn = moment.defineLocale('zh-cn', { 73002 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 73003 '_' 73004 ), 73005 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 73006 '_' 73007 ), 73008 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 73009 weekdaysShort: '卿¥_å¨ä¸_å¨äº_å¨ä¸_å¨å_å¨äº_å¨å '.split('_'), 73010 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 73011 longDateFormat: { 73012 LT: 'HH:mm', 73013 LTS: 'HH:mm:ss', 73014 L: 'YYYY/MM/DD', 73015 LL: 'YYYYå¹´MæDæ¥', 73016 LLL: 'YYYYå¹´MæDæ¥Ahç¹mmå', 73017 LLLL: 'YYYYå¹´MæDæ¥ddddAhç¹mmå', 73018 l: 'YYYY/M/D', 73019 ll: 'YYYYå¹´MæDæ¥', 73020 lll: 'YYYYå¹´MæDæ¥ HH:mm', 73021 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 73022 }, 73023 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 73024 meridiemHour: function (hour, meridiem) { 73025 if (hour === 12) { 73026 hour = 0; 73027 } 73028 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 73029 return hour; 73030 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 73031 return hour + 12; 73032 } else { 73033 // 'ä¸å' 73034 return hour >= 11 ? hour : hour + 12; 73035 } 73036 }, 73037 meridiem: function (hour, minute, isLower) { 73038 var hm = hour * 100 + minute; 73039 if (hm < 600) { 73040 return '忍'; 73041 } else if (hm < 900) { 73042 return 'æ©ä¸'; 73043 } else if (hm < 1130) { 73044 return 'ä¸å'; 73045 } else if (hm < 1230) { 73046 return 'ä¸å'; 73047 } else if (hm < 1800) { 73048 return 'ä¸å'; 73049 } else { 73050 return 'æä¸'; 73051 } 73052 }, 73053 calendar: { 73054 sameDay: '[ä»å¤©]LT', 73055 nextDay: '[æå¤©]LT', 73056 nextWeek: function (now) { 73057 if (now.week() !== this.week()) { 73058 return '[ä¸]dddLT'; 73059 } else { 73060 return '[æ¬]dddLT'; 73061 } 73062 }, 73063 lastDay: '[æ¨å¤©]LT', 73064 lastWeek: function (now) { 73065 if (this.week() !== now.week()) { 73066 return '[ä¸]dddLT'; 73067 } else { 73068 return '[æ¬]dddLT'; 73069 } 73070 }, 73071 sameElse: 'L', 73072 }, 73073 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|å¨)/, 73074 ordinal: function (number, period) { 73075 switch (period) { 73076 case 'd': 73077 case 'D': 73078 case 'DDD': 73079 return number + 'æ¥'; 73080 case 'M': 73081 return number + 'æ'; 73082 case 'w': 73083 case 'W': 73084 return number + 'å¨'; 73085 default: 73086 return number; 73087 } 73088 }, 73089 relativeTime: { 73090 future: '%så', 73091 past: '%så', 73092 s: 'å ç§', 73093 ss: '%d ç§', 73094 m: '1 åé', 73095 mm: '%d åé', 73096 h: '1 å°æ¶', 73097 hh: '%d å°æ¶', 73098 d: '1 天', 73099 dd: '%d 天', 73100 w: '1 å¨', 73101 ww: '%d å¨', 73102 M: '1 个æ', 73103 MM: '%d 个æ', 73104 y: '1 å¹´', 73105 yy: '%d å¹´', 73106 }, 73107 week: { 73108 // GB/T 7408-1994ãæ°æ®å åäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ¥æåæ¶é´è¡¨ç¤ºæ³ãä¸ISO 8601:1988çæ 73109 dow: 1, // Monday is the first day of the week. 73110 doy: 4, // The week that contains Jan 4th is the first week of the year. 73111 }, 73112 }); 73113 73114 return zhCn; 73115 73116}))); 73117 73118 73119/***/ }), 73120
vendor: 3,989 bytes, lines 73121-73240
73121/***/ "./node_modules/moment/locale/zh-hk.js": 73122/*!*********************************************!*\ 73123 !*** ./node_modules/moment/locale/zh-hk.js ***! 73124 \*********************************************/ 73125/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 73126 73127//! moment.js locale configuration 73128//! locale : Chinese (Hong Kong) [zh-hk] 73129//! author : Ben : https://github.com/ben-lin 73130//! author : Chris Lam : https://github.com/hehachris 73131//! author : Konstantin : https://github.com/skfd 73132//! author : Anthony : https://github.com/anthonylau 73133 73134;(function (global, factory) { 73135 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 73136 0 73137}(this, (function (moment) { 'use strict'; 73138 73139 //! moment.js locale configuration 73140 73141 var zhHk = moment.defineLocale('zh-hk', { 73142 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 73143 '_' 73144 ), 73145 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 73146 '_' 73147 ), 73148 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 73149 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 73150 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 73151 longDateFormat: { 73152 LT: 'HH:mm', 73153 LTS: 'HH:mm:ss', 73154 L: 'YYYY/MM/DD', 73155 LL: 'YYYYå¹´MæDæ¥', 73156 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 73157 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 73158 l: 'YYYY/M/D', 73159 ll: 'YYYYå¹´MæDæ¥', 73160 lll: 'YYYYå¹´MæDæ¥ HH:mm', 73161 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 73162 }, 73163 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 73164 meridiemHour: function (hour, meridiem) { 73165 if (hour === 12) { 73166 hour = 0; 73167 } 73168 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 73169 return hour; 73170 } else if (meridiem === 'ä¸å') { 73171 return hour >= 11 ? hour : hour + 12; 73172 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 73173 return hour + 12; 73174 } 73175 }, 73176 meridiem: function (hour, minute, isLower) { 73177 var hm = hour * 100 + minute; 73178 if (hm < 600) { 73179 return '忍'; 73180 } else if (hm < 900) { 73181 return 'æ©ä¸'; 73182 } else if (hm < 1200) { 73183 return 'ä¸å'; 73184 } else if (hm === 1200) { 73185 return 'ä¸å'; 73186 } else if (hm < 1800) { 73187 return 'ä¸å'; 73188 } else { 73189 return 'æä¸'; 73190 } 73191 }, 73192 calendar: { 73193 sameDay: '[ä»å¤©]LT', 73194 nextDay: '[æå¤©]LT', 73195 nextWeek: '[ä¸]ddddLT', 73196 lastDay: '[æ¨å¤©]LT', 73197 lastWeek: '[ä¸]ddddLT', 73198 sameElse: 'L', 73199 }, 73200 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 73201 ordinal: function (number, period) { 73202 switch (period) { 73203 case 'd': 73204 case 'D': 73205 case 'DDD': 73206 return number + 'æ¥'; 73207 case 'M': 73208 return number + 'æ'; 73209 case 'w': 73210 case 'W': 73211 return number + 'é±'; 73212 default: 73213 return number; 73214 } 73215 }, 73216 relativeTime: { 73217 future: '%så¾', 73218 past: '%så', 73219 s: 'å¹¾ç§', 73220 ss: '%d ç§', 73221 m: '1 åé', 73222 mm: '%d åé', 73223 h: '1 å°æ', 73224 hh: '%d å°æ', 73225 d: '1 天', 73226 dd: '%d 天', 73227 M: '1 åæ', 73228 MM: '%d åæ', 73229 y: '1 å¹´', 73230 yy: '%d å¹´', 73231 }, 73232 }); 73233 73234 return zhHk; 73235 73236}))); 73237 73238 73239/***/ }), 73240
vendor: 3,939 bytes, lines 73241-73359
73241/***/ "./node_modules/moment/locale/zh-mo.js": 73242/*!*********************************************!*\ 73243 !*** ./node_modules/moment/locale/zh-mo.js ***! 73244 \*********************************************/ 73245/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 73246 73247//! moment.js locale configuration 73248//! locale : Chinese (Macau) [zh-mo] 73249//! author : Ben : https://github.com/ben-lin 73250//! author : Chris Lam : https://github.com/hehachris 73251//! author : Tan Yuanhong : https://github.com/le0tan 73252 73253;(function (global, factory) { 73254 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 73255 0 73256}(this, (function (moment) { 'use strict'; 73257 73258 //! moment.js locale configuration 73259 73260 var zhMo = moment.defineLocale('zh-mo', { 73261 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 73262 '_' 73263 ), 73264 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 73265 '_' 73266 ), 73267 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 73268 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 73269 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 73270 longDateFormat: { 73271 LT: 'HH:mm', 73272 LTS: 'HH:mm:ss', 73273 L: 'DD/MM/YYYY', 73274 LL: 'YYYYå¹´MæDæ¥', 73275 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 73276 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 73277 l: 'D/M/YYYY', 73278 ll: 'YYYYå¹´MæDæ¥', 73279 lll: 'YYYYå¹´MæDæ¥ HH:mm', 73280 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 73281 }, 73282 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 73283 meridiemHour: function (hour, meridiem) { 73284 if (hour === 12) { 73285 hour = 0; 73286 } 73287 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 73288 return hour; 73289 } else if (meridiem === 'ä¸å') { 73290 return hour >= 11 ? hour : hour + 12; 73291 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 73292 return hour + 12; 73293 } 73294 }, 73295 meridiem: function (hour, minute, isLower) { 73296 var hm = hour * 100 + minute; 73297 if (hm < 600) { 73298 return '忍'; 73299 } else if (hm < 900) { 73300 return 'æ©ä¸'; 73301 } else if (hm < 1130) { 73302 return 'ä¸å'; 73303 } else if (hm < 1230) { 73304 return 'ä¸å'; 73305 } else if (hm < 1800) { 73306 return 'ä¸å'; 73307 } else { 73308 return 'æä¸'; 73309 } 73310 }, 73311 calendar: { 73312 sameDay: '[ä»å¤©] LT', 73313 nextDay: '[æå¤©] LT', 73314 nextWeek: '[ä¸]dddd LT', 73315 lastDay: '[æ¨å¤©] LT', 73316 lastWeek: '[ä¸]dddd LT', 73317 sameElse: 'L', 73318 }, 73319 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 73320 ordinal: function (number, period) { 73321 switch (period) { 73322 case 'd': 73323 case 'D': 73324 case 'DDD': 73325 return number + 'æ¥'; 73326 case 'M': 73327 return number + 'æ'; 73328 case 'w': 73329 case 'W': 73330 return number + 'é±'; 73331 default: 73332 return number; 73333 } 73334 }, 73335 relativeTime: { 73336 future: '%så §', 73337 past: '%så', 73338 s: 'å¹¾ç§', 73339 ss: '%d ç§', 73340 m: '1 åé', 73341 mm: '%d åé', 73342 h: '1 å°æ', 73343 hh: '%d å°æ', 73344 d: '1 天', 73345 dd: '%d 天', 73346 M: '1 åæ', 73347 MM: '%d åæ', 73348 y: '1 å¹´', 73349 yy: '%d å¹´', 73350 }, 73351 }); 73352 73353 return zhMo; 73354 73355}))); 73356 73357 73358/***/ }), 73359
vendor: 18,660 bytes, lines 73360-73782
73360/***/ "./node_modules/moment/locale/zh-tw.js": 73361/*!*********************************************!*\ 73362 !*** ./node_modules/moment/locale/zh-tw.js ***! 73363 \*********************************************/ 73364/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { 73365 73366//! moment.js locale configuration 73367//! locale : Chinese (Taiwan) [zh-tw] 73368//! author : Ben : https://github.com/ben-lin 73369//! author : Chris Lam : https://github.com/hehachris 73370 73371;(function (global, factory) { 73372 true ? factory(__webpack_require__(/*! ../moment */ "./node_modules/moment/moment.js")) : 73373 0 73374}(this, (function (moment) { 'use strict'; 73375 73376 //! moment.js locale configuration 73377 73378 var zhTw = moment.defineLocale('zh-tw', { 73379 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 73380 '_' 73381 ), 73382 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 73383 '_' 73384 ), 73385 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 73386 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 73387 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 73388 longDateFormat: { 73389 LT: 'HH:mm', 73390 LTS: 'HH:mm:ss', 73391 L: 'YYYY/MM/DD', 73392 LL: 'YYYYå¹´MæDæ¥', 73393 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 73394 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 73395 l: 'YYYY/M/D', 73396 ll: 'YYYYå¹´MæDæ¥', 73397 lll: 'YYYYå¹´MæDæ¥ HH:mm', 73398 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 73399 }, 73400 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 73401 meridiemHour: function (hour, meridiem) { 73402 if (hour === 12) { 73403 hour = 0; 73404 } 73405 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 73406 return hour; 73407 } else if (meridiem === 'ä¸å') { 73408 return hour >= 11 ? hour : hour + 12; 73409 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 73410 return hour + 12; 73411 } 73412 }, 73413 meridiem: function (hour, minute, isLower) { 73414 var hm = hour * 100 + minute; 73415 if (hm < 600) { 73416 return '忍'; 73417 } else if (hm < 900) { 73418 return 'æ©ä¸'; 73419 } else if (hm < 1130) { 73420 return 'ä¸å'; 73421 } else if (hm < 1230) { 73422 return 'ä¸å'; 73423 } else if (hm < 1800) { 73424 return 'ä¸å'; 73425 } else { 73426 return 'æä¸'; 73427 } 73428 }, 73429 calendar: { 73430 sameDay: '[ä»å¤©] LT', 73431 nextDay: '[æå¤©] LT', 73432 nextWeek: '[ä¸]dddd LT', 73433 lastDay: '[æ¨å¤©] LT', 73434 lastWeek: '[ä¸]dddd LT', 73435 sameElse: 'L', 73436 }, 73437 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 73438 ordinal: function (number, period) { 73439 switch (period) { 73440 case 'd': 73441 case 'D': 73442 case 'DDD': 73443 return number + 'æ¥'; 73444 case 'M': 73445 return number + 'æ'; 73446 case 'w': 73447 case 'W': 73448 return number + 'é±'; 73449 default: 73450 return number; 73451 } 73452 }, 73453 relativeTime: { 73454 future: '%så¾', 73455 past: '%så', 73456 s: 'å¹¾ç§', 73457 ss: '%d ç§', 73458 m: '1 åé', 73459 mm: '%d åé', 73460 h: '1 å°æ', 73461 hh: '%d å°æ', 73462 d: '1 天', 73463 dd: '%d 天', 73464 M: '1 åæ', 73465 MM: '%d åæ', 73466 y: '1 å¹´', 73467 yy: '%d å¹´', 73468 }, 73469 }); 73470 73471 return zhTw; 73472 73473}))); 73474 73475 73476/***/ }), 73477 73478/***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$": 73479/*!***************************************************!*\ 73480 !*** ./node_modules/moment/locale/ sync ^\.\/.*$ ***! 73481 \***************************************************/ 73482/***/ ((module, __unused_webpack_exports, __webpack_require__) => { 73483 73484var map = { 73485 "./af": "./node_modules/moment/locale/af.js", 73486 "./af.js": "./node_modules/moment/locale/af.js", 73487 "./ar": "./node_modules/moment/locale/ar.js", 73488 "./ar-dz": "./node_modules/moment/locale/ar-dz.js", 73489 "./ar-dz.js": "./node_modules/moment/locale/ar-dz.js", 73490 "./ar-kw": "./node_modules/moment/locale/ar-kw.js", 73491 "./ar-kw.js": "./node_modules/moment/locale/ar-kw.js", 73492 "./ar-ly": "./node_modules/moment/locale/ar-ly.js", 73493 "./ar-ly.js": "./node_modules/moment/locale/ar-ly.js", 73494 "./ar-ma": "./node_modules/moment/locale/ar-ma.js", 73495 "./ar-ma.js": "./node_modules/moment/locale/ar-ma.js", 73496 "./ar-ps": "./node_modules/moment/locale/ar-ps.js", 73497 "./ar-ps.js": "./node_modules/moment/locale/ar-ps.js", 73498 "./ar-sa": "./node_modules/moment/locale/ar-sa.js", 73499 "./ar-sa.js": "./node_modules/moment/locale/ar-sa.js", 73500 "./ar-tn": "./node_modules/moment/locale/ar-tn.js", 73501 "./ar-tn.js": "./node_modules/moment/locale/ar-tn.js", 73502 "./ar.js": "./node_modules/moment/locale/ar.js", 73503 "./az": "./node_modules/moment/locale/az.js", 73504 "./az.js": "./node_modules/moment/locale/az.js", 73505 "./be": "./node_modules/moment/locale/be.js", 73506 "./be.js": "./node_modules/moment/locale/be.js", 73507 "./bg": "./node_modules/moment/locale/bg.js", 73508 "./bg.js": "./node_modules/moment/locale/bg.js", 73509 "./bm": "./node_modules/moment/locale/bm.js", 73510 "./bm.js": "./node_modules/moment/locale/bm.js", 73511 "./bn": "./node_modules/moment/locale/bn.js", 73512 "./bn-bd": "./node_modules/moment/locale/bn-bd.js", 73513 "./bn-bd.js": "./node_modules/moment/locale/bn-bd.js", 73514 "./bn.js": "./node_modules/moment/locale/bn.js", 73515 "./bo": "./node_modules/moment/locale/bo.js", 73516 "./bo.js": "./node_modules/moment/locale/bo.js", 73517 "./br": "./node_modules/moment/locale/br.js", 73518 "./br.js": "./node_modules/moment/locale/br.js", 73519 "./bs": "./node_modules/moment/locale/bs.js", 73520 "./bs.js": "./node_modules/moment/locale/bs.js", 73521 "./ca": "./node_modules/moment/locale/ca.js", 73522 "./ca.js": "./node_modules/moment/locale/ca.js", 73523 "./cs": "./node_modules/moment/locale/cs.js", 73524 "./cs.js": "./node_modules/moment/locale/cs.js", 73525 "./cv": "./node_modules/moment/locale/cv.js", 73526 "./cv.js": "./node_modules/moment/locale/cv.js", 73527 "./cy": "./node_modules/moment/locale/cy.js", 73528 "./cy.js": "./node_modules/moment/locale/cy.js", 73529 "./da": "./node_modules/moment/locale/da.js", 73530 "./da.js": "./node_modules/moment/locale/da.js", 73531 "./de": "./node_modules/moment/locale/de.js", 73532 "./de-at": "./node_modules/moment/locale/de-at.js", 73533 "./de-at.js": "./node_modules/moment/locale/de-at.js", 73534 "./de-ch": "./node_modules/moment/locale/de-ch.js", 73535 "./de-ch.js": "./node_modules/moment/locale/de-ch.js", 73536 "./de.js": "./node_modules/moment/locale/de.js", 73537 "./dv": "./node_modules/moment/locale/dv.js", 73538 "./dv.js": "./node_modules/moment/locale/dv.js", 73539 "./el": "./node_modules/moment/locale/el.js", 73540 "./el.js": "./node_modules/moment/locale/el.js", 73541 "./en-au": "./node_modules/moment/locale/en-au.js", 73542 "./en-au.js": "./node_modules/moment/locale/en-au.js", 73543 "./en-ca": "./node_modules/moment/locale/en-ca.js", 73544 "./en-ca.js": "./node_modules/moment/locale/en-ca.js", 73545 "./en-gb": "./node_modules/moment/locale/en-gb.js", 73546 "./en-gb.js": "./node_modules/moment/locale/en-gb.js", 73547 "./en-ie": "./node_modules/moment/locale/en-ie.js", 73548 "./en-ie.js": "./node_modules/moment/locale/en-ie.js", 73549 "./en-il": "./node_modules/moment/locale/en-il.js", 73550 "./en-il.js": "./node_modules/moment/locale/en-il.js", 73551 "./en-in": "./node_modules/moment/locale/en-in.js", 73552 "./en-in.js": "./node_modules/moment/locale/en-in.js", 73553 "./en-nz": "./node_modules/moment/locale/en-nz.js", 73554 "./en-nz.js": "./node_modules/moment/locale/en-nz.js", 73555 "./en-sg": "./node_modules/moment/locale/en-sg.js", 73556 "./en-sg.js": "./node_modules/moment/locale/en-sg.js", 73557 "./eo": "./node_modules/moment/locale/eo.js", 73558 "./eo.js": "./node_modules/moment/locale/eo.js", 73559 "./es": "./node_modules/moment/locale/es.js", 73560 "./es-do": "./node_modules/moment/locale/es-do.js", 73561 "./es-do.js": "./node_modules/moment/locale/es-do.js", 73562 "./es-mx": "./node_modules/moment/locale/es-mx.js", 73563 "./es-mx.js": "./node_modules/moment/locale/es-mx.js", 73564 "./es-us": "./node_modules/moment/locale/es-us.js", 73565 "./es-us.js": "./node_modules/moment/locale/es-us.js", 73566 "./es.js": "./node_modules/moment/locale/es.js", 73567 "./et": "./node_modules/moment/locale/et.js", 73568 "./et.js": "./node_modules/moment/locale/et.js", 73569 "./eu": "./node_modules/moment/locale/eu.js", 73570 "./eu.js": "./node_modules/moment/locale/eu.js", 73571 "./fa": "./node_modules/moment/locale/fa.js", 73572 "./fa.js": "./node_modules/moment/locale/fa.js", 73573 "./fi": "./node_modules/moment/locale/fi.js", 73574 "./fi.js": "./node_modules/moment/locale/fi.js", 73575 "./fil": "./node_modules/moment/locale/fil.js", 73576 "./fil.js": "./node_modules/moment/locale/fil.js", 73577 "./fo": "./node_modules/moment/locale/fo.js", 73578 "./fo.js": "./node_modules/moment/locale/fo.js", 73579 "./fr": "./node_modules/moment/locale/fr.js", 73580 "./fr-ca": "./node_modules/moment/locale/fr-ca.js", 73581 "./fr-ca.js": "./node_modules/moment/locale/fr-ca.js", 73582 "./fr-ch": "./node_modules/moment/locale/fr-ch.js", 73583 "./fr-ch.js": "./node_modules/moment/locale/fr-ch.js", 73584 "./fr.js": "./node_modules/moment/locale/fr.js", 73585 "./fy": "./node_modules/moment/locale/fy.js", 73586 "./fy.js": "./node_modules/moment/locale/fy.js", 73587 "./ga": "./node_modules/moment/locale/ga.js", 73588 "./ga.js": "./node_modules/moment/locale/ga.js", 73589 "./gd": "./node_modules/moment/locale/gd.js", 73590 "./gd.js": "./node_modules/moment/locale/gd.js", 73591 "./gl": "./node_modules/moment/locale/gl.js", 73592 "./gl.js": "./node_modules/moment/locale/gl.js", 73593 "./gom-deva": "./node_modules/moment/locale/gom-deva.js", 73594 "./gom-deva.js": "./node_modules/moment/locale/gom-deva.js", 73595 "./gom-latn": "./node_modules/moment/locale/gom-latn.js", 73596 "./gom-latn.js": "./node_modules/moment/locale/gom-latn.js", 73597 "./gu": "./node_modules/moment/locale/gu.js", 73598 "./gu.js": "./node_modules/moment/locale/gu.js", 73599 "./he": "./node_modules/moment/locale/he.js", 73600 "./he.js": "./node_modules/moment/locale/he.js", 73601 "./hi": "./node_modules/moment/locale/hi.js", 73602 "./hi.js": "./node_modules/moment/locale/hi.js", 73603 "./hr": "./node_modules/moment/locale/hr.js", 73604 "./hr.js": "./node_modules/moment/locale/hr.js", 73605 "./hu": "./node_modules/moment/locale/hu.js", 73606 "./hu.js": "./node_modules/moment/locale/hu.js", 73607 "./hy-am": "./node_modules/moment/locale/hy-am.js", 73608 "./hy-am.js": "./node_modules/moment/locale/hy-am.js", 73609 "./id": "./node_modules/moment/locale/id.js", 73610 "./id.js": "./node_modules/moment/locale/id.js", 73611 "./is": "./node_modules/moment/locale/is.js", 73612 "./is.js": "./node_modules/moment/locale/is.js", 73613 "./it": "./node_modules/moment/locale/it.js", 73614 "./it-ch": "./node_modules/moment/locale/it-ch.js", 73615 "./it-ch.js": "./node_modules/moment/locale/it-ch.js", 73616 "./it.js": "./node_modules/moment/locale/it.js", 73617 "./ja": "./node_modules/moment/locale/ja.js", 73618 "./ja.js": "./node_modules/moment/locale/ja.js", 73619 "./jv": "./node_modules/moment/locale/jv.js", 73620 "./jv.js": "./node_modules/moment/locale/jv.js", 73621 "./ka": "./node_modules/moment/locale/ka.js", 73622 "./ka.js": "./node_modules/moment/locale/ka.js", 73623 "./kk": "./node_modules/moment/locale/kk.js", 73624 "./kk.js": "./node_modules/moment/locale/kk.js", 73625 "./km": "./node_modules/moment/locale/km.js", 73626 "./km.js": "./node_modules/moment/locale/km.js", 73627 "./kn": "./node_modules/moment/locale/kn.js", 73628 "./kn.js": "./node_modules/moment/locale/kn.js", 73629 "./ko": "./node_modules/moment/locale/ko.js", 73630 "./ko.js": "./node_modules/moment/locale/ko.js", 73631 "./ku": "./node_modules/moment/locale/ku.js", 73632 "./ku-kmr": "./node_modules/moment/locale/ku-kmr.js", 73633 "./ku-kmr.js": "./node_modules/moment/locale/ku-kmr.js", 73634 "./ku.js": "./node_modules/moment/locale/ku.js", 73635 "./ky": "./node_modules/moment/locale/ky.js", 73636 "./ky.js": "./node_modules/moment/locale/ky.js", 73637 "./lb": "./node_modules/moment/locale/lb.js", 73638 "./lb.js": "./node_modules/moment/locale/lb.js", 73639 "./lo": "./node_modules/moment/locale/lo.js", 73640 "./lo.js": "./node_modules/moment/locale/lo.js", 73641 "./lt": "./node_modules/moment/locale/lt.js", 73642 "./lt.js": "./node_modules/moment/locale/lt.js", 73643 "./lv": "./node_modules/moment/locale/lv.js", 73644 "./lv.js": "./node_modules/moment/locale/lv.js", 73645 "./me": "./node_modules/moment/locale/me.js", 73646 "./me.js": "./node_modules/moment/locale/me.js", 73647 "./mi": "./node_modules/moment/locale/mi.js", 73648 "./mi.js": "./node_modules/moment/locale/mi.js", 73649 "./mk": "./node_modules/moment/locale/mk.js", 73650 "./mk.js": "./node_modules/moment/locale/mk.js", 73651 "./ml": "./node_modules/moment/locale/ml.js", 73652 "./ml.js": "./node_modules/moment/locale/ml.js", 73653 "./mn": "./node_modules/moment/locale/mn.js", 73654 "./mn.js": "./node_modules/moment/locale/mn.js", 73655 "./mr": "./node_modules/moment/locale/mr.js", 73656 "./mr.js": "./node_modules/moment/locale/mr.js", 73657 "./ms": "./node_modules/moment/locale/ms.js", 73658 "./ms-my": "./node_modules/moment/locale/ms-my.js", 73659 "./ms-my.js": "./node_modules/moment/locale/ms-my.js", 73660 "./ms.js": "./node_modules/moment/locale/ms.js", 73661 "./mt": "./node_modules/moment/locale/mt.js", 73662 "./mt.js": "./node_modules/moment/locale/mt.js", 73663 "./my": "./node_modules/moment/locale/my.js", 73664 "./my.js": "./node_modules/moment/locale/my.js", 73665 "./nb": "./node_modules/moment/locale/nb.js", 73666 "./nb.js": "./node_modules/moment/locale/nb.js", 73667 "./ne": "./node_modules/moment/locale/ne.js", 73668 "./ne.js": "./node_modules/moment/locale/ne.js", 73669 "./nl": "./node_modules/moment/locale/nl.js", 73670 "./nl-be": "./node_modules/moment/locale/nl-be.js", 73671 "./nl-be.js": "./node_modules/moment/locale/nl-be.js", 73672 "./nl.js": "./node_modules/moment/locale/nl.js", 73673 "./nn": "./node_modules/moment/locale/nn.js", 73674 "./nn.js": "./node_modules/moment/locale/nn.js", 73675 "./oc-lnc": "./node_modules/moment/locale/oc-lnc.js", 73676 "./oc-lnc.js": "./node_modules/moment/locale/oc-lnc.js", 73677 "./pa-in": "./node_modules/moment/locale/pa-in.js", 73678 "./pa-in.js": "./node_modules/moment/locale/pa-in.js", 73679 "./pl": "./node_modules/moment/locale/pl.js", 73680 "./pl.js": "./node_modules/moment/locale/pl.js", 73681 "./pt": "./node_modules/moment/locale/pt.js", 73682 "./pt-br": "./node_modules/moment/locale/pt-br.js", 73683 "./pt-br.js": "./node_modules/moment/locale/pt-br.js", 73684 "./pt.js": "./node_modules/moment/locale/pt.js", 73685 "./ro": "./node_modules/moment/locale/ro.js", 73686 "./ro.js": "./node_modules/moment/locale/ro.js", 73687 "./ru": "./node_modules/moment/locale/ru.js", 73688 "./ru.js": "./node_modules/moment/locale/ru.js", 73689 "./sd": "./node_modules/moment/locale/sd.js", 73690 "./sd.js": "./node_modules/moment/locale/sd.js", 73691 "./se": "./node_modules/moment/locale/se.js", 73692 "./se.js": "./node_modules/moment/locale/se.js", 73693 "./si": "./node_modules/moment/locale/si.js", 73694 "./si.js": "./node_modules/moment/locale/si.js", 73695 "./sk": "./node_modules/moment/locale/sk.js", 73696 "./sk.js": "./node_modules/moment/locale/sk.js", 73697 "./sl": "./node_modules/moment/locale/sl.js", 73698 "./sl.js": "./node_modules/moment/locale/sl.js", 73699 "./sq": "./node_modules/moment/locale/sq.js", 73700 "./sq.js": "./node_modules/moment/locale/sq.js", 73701 "./sr": "./node_modules/moment/locale/sr.js", 73702 "./sr-cyrl": "./node_modules/moment/locale/sr-cyrl.js", 73703 "./sr-cyrl.js": "./node_modules/moment/locale/sr-cyrl.js", 73704 "./sr.js": "./node_modules/moment/locale/sr.js", 73705 "./ss": "./node_modules/moment/locale/ss.js", 73706 "./ss.js": "./node_modules/moment/locale/ss.js", 73707 "./sv": "./node_modules/moment/locale/sv.js", 73708 "./sv.js": "./node_modules/moment/locale/sv.js", 73709 "./sw": "./node_modules/moment/locale/sw.js", 73710 "./sw.js": "./node_modules/moment/locale/sw.js", 73711 "./ta": "./node_modules/moment/locale/ta.js", 73712 "./ta.js": "./node_modules/moment/locale/ta.js", 73713 "./te": "./node_modules/moment/locale/te.js", 73714 "./te.js": "./node_modules/moment/locale/te.js", 73715 "./tet": "./node_modules/moment/locale/tet.js", 73716 "./tet.js": "./node_modules/moment/locale/tet.js", 73717 "./tg": "./node_modules/moment/locale/tg.js", 73718 "./tg.js": "./node_modules/moment/locale/tg.js", 73719 "./th": "./node_modules/moment/locale/th.js", 73720 "./th.js": "./node_modules/moment/locale/th.js", 73721 "./tk": "./node_modules/moment/locale/tk.js", 73722 "./tk.js": "./node_modules/moment/locale/tk.js", 73723 "./tl-ph": "./node_modules/moment/locale/tl-ph.js", 73724 "./tl-ph.js": "./node_modules/moment/locale/tl-ph.js", 73725 "./tlh": "./node_modules/moment/locale/tlh.js", 73726 "./tlh.js": "./node_modules/moment/locale/tlh.js", 73727 "./tr": "./node_modules/moment/locale/tr.js", 73728 "./tr.js": "./node_modules/moment/locale/tr.js", 73729 "./tzl": "./node_modules/moment/locale/tzl.js", 73730 "./tzl.js": "./node_modules/moment/locale/tzl.js", 73731 "./tzm": "./node_modules/moment/locale/tzm.js", 73732 "./tzm-latn": "./node_modules/moment/locale/tzm-latn.js", 73733 "./tzm-latn.js": "./node_modules/moment/locale/tzm-latn.js", 73734 "./tzm.js": "./node_modules/moment/locale/tzm.js", 73735 "./ug-cn": "./node_modules/moment/locale/ug-cn.js", 73736 "./ug-cn.js": "./node_modules/moment/locale/ug-cn.js", 73737 "./uk": "./node_modules/moment/locale/uk.js", 73738 "./uk.js": "./node_modules/moment/locale/uk.js", 73739 "./ur": "./node_modules/moment/locale/ur.js", 73740 "./ur.js": "./node_modules/moment/locale/ur.js", 73741 "./uz": "./node_modules/moment/locale/uz.js", 73742 "./uz-latn": "./node_modules/moment/locale/uz-latn.js", 73743 "./uz-latn.js": "./node_modules/moment/locale/uz-latn.js", 73744 "./uz.js": "./node_modules/moment/locale/uz.js", 73745 "./vi": "./node_modules/moment/locale/vi.js", 73746 "./vi.js": "./node_modules/moment/locale/vi.js", 73747 "./x-pseudo": "./node_modules/moment/locale/x-pseudo.js", 73748 "./x-pseudo.js": "./node_modules/moment/locale/x-pseudo.js", 73749 "./yo": "./node_modules/moment/locale/yo.js", 73750 "./yo.js": "./node_modules/moment/locale/yo.js", 73751 "./zh-cn": "./node_modules/moment/locale/zh-cn.js", 73752 "./zh-cn.js": "./node_modules/moment/locale/zh-cn.js", 73753 "./zh-hk": "./node_modules/moment/locale/zh-hk.js", 73754 "./zh-hk.js": "./node_modules/moment/locale/zh-hk.js", 73755 "./zh-mo": "./node_modules/moment/locale/zh-mo.js", 73756 "./zh-mo.js": "./node_modules/moment/locale/zh-mo.js", 73757 "./zh-tw": "./node_modules/moment/locale/zh-tw.js", 73758 "./zh-tw.js": "./node_modules/moment/locale/zh-tw.js" 73759}; 73760 73761 73762function webpackContext(req) { 73763 var id = webpackContextResolve(req); 73764 return __webpack_require__(id); 73765} 73766function webpackContextResolve(req) { 73767 if(!__webpack_require__.o(map, req)) { 73768 var e = new Error("Cannot find module '" + req + "'"); 73769 e.code = 'MODULE_NOT_FOUND'; 73770 throw e; 73771 } 73772 return map[req]; 73773} 73774webpackContext.keys = function webpackContextKeys() { 73775 return Object.keys(map); 73776}; 73777webpackContext.resolve = webpackContextResolve; 73778module.exports = webpackContext; 73779webpackContext.id = "./node_modules/moment/locale sync recursive ^\\.\\/.*$"; 73780 73781/***/ }), 73782
vendor: 176,669 bytes, lines 73783-79480
73783/***/ "./node_modules/moment/moment.js": 73784/*!***************************************!*\ 73785 !*** ./node_modules/moment/moment.js ***! 73786 \***************************************/ 73787/***/ (function(module, __unused_webpack_exports, __webpack_require__) { 73788 73789/* module decorator */ module = __webpack_require__.nmd(module); 73790//! moment.js 73791//! version : 2.30.1 73792//! authors : Tim Wood, Iskren Chernev, Moment.js contributors 73793//! license : MIT 73794//! momentjs.com 73795 73796;(function (global, factory) { 73797 true ? module.exports = factory() : 73798 0 73799}(this, (function () { 'use strict'; 73800 73801 var hookCallback; 73802 73803 function hooks() { 73804 return hookCallback.apply(null, arguments); 73805 } 73806 73807 // This is done to register the method called with moment() 73808 // without creating circular dependencies. 73809 function setHookCallback(callback) { 73810 hookCallback = callback; 73811 } 73812 73813 function isArray(input) { 73814 return ( 73815 input instanceof Array || 73816 Object.prototype.toString.call(input) === '[object Array]' 73817 ); 73818 } 73819 73820 function isObject(input) { 73821 // IE8 will treat undefined and null as object if it wasn't for 73822 // input != null 73823 return ( 73824 input != null && 73825 Object.prototype.toString.call(input) === '[object Object]' 73826 ); 73827 } 73828 73829 function hasOwnProp(a, b) { 73830 return Object.prototype.hasOwnProperty.call(a, b); 73831 } 73832 73833 function isObjectEmpty(obj) { 73834 if (Object.getOwnPropertyNames) { 73835 return Object.getOwnPropertyNames(obj).length === 0; 73836 } else { 73837 var k; 73838 for (k in obj) { 73839 if (hasOwnProp(obj, k)) { 73840 return false; 73841 } 73842 } 73843 return true; 73844 } 73845 } 73846 73847 function isUndefined(input) { 73848 return input === void 0; 73849 } 73850 73851 function isNumber(input) { 73852 return ( 73853 typeof input === 'number' || 73854 Object.prototype.toString.call(input) === '[object Number]' 73855 ); 73856 } 73857 73858 function isDate(input) { 73859 return ( 73860 input instanceof Date || 73861 Object.prototype.toString.call(input) === '[object Date]' 73862 ); 73863 } 73864 73865 function map(arr, fn) { 73866 var res = [], 73867 i, 73868 arrLen = arr.length; 73869 for (i = 0; i < arrLen; ++i) { 73870 res.push(fn(arr[i], i)); 73871 } 73872 return res; 73873 } 73874 73875 function extend(a, b) { 73876 for (var i in b) { 73877 if (hasOwnProp(b, i)) { 73878 a[i] = b[i]; 73879 } 73880 } 73881 73882 if (hasOwnProp(b, 'toString')) { 73883 a.toString = b.toString; 73884 } 73885 73886 if (hasOwnProp(b, 'valueOf')) { 73887 a.valueOf = b.valueOf; 73888 } 73889 73890 return a; 73891 } 73892 73893 function createUTC(input, format, locale, strict) { 73894 return createLocalOrUTC(input, format, locale, strict, true).utc(); 73895 } 73896 73897 function defaultParsingFlags() { 73898 // We need to deep clone this object. 73899 return { 73900 empty: false, 73901 unusedTokens: [], 73902 unusedInput: [], 73903 overflow: -2, 73904 charsLeftOver: 0, 73905 nullInput: false, 73906 invalidEra: null, 73907 invalidMonth: null, 73908 invalidFormat: false, 73909 userInvalidated: false, 73910 iso: false, 73911 parsedDateParts: [], 73912 era: null, 73913 meridiem: null, 73914 rfc2822: false, 73915 weekdayMismatch: false, 73916 }; 73917 } 73918 73919 function getParsingFlags(m) { 73920 if (m._pf == null) { 73921 m._pf = defaultParsingFlags(); 73922 } 73923 return m._pf; 73924 } 73925 73926 var some; 73927 if (Array.prototype.some) { 73928 some = Array.prototype.some; 73929 } else { 73930 some = function (fun) { 73931 var t = Object(this), 73932 len = t.length >>> 0, 73933 i; 73934 73935 for (i = 0; i < len; i++) { 73936 if (i in t && fun.call(this, t[i], i, t)) { 73937 return true; 73938 } 73939 } 73940 73941 return false; 73942 }; 73943 } 73944 73945 function isValid(m) { 73946 var flags = null, 73947 parsedParts = false, 73948 isNowValid = m._d && !isNaN(m._d.getTime()); 73949 if (isNowValid) { 73950 flags = getParsingFlags(m); 73951 parsedParts = some.call(flags.parsedDateParts, function (i) { 73952 return i != null; 73953 }); 73954 isNowValid = 73955 flags.overflow < 0 && 73956 !flags.empty && 73957 !flags.invalidEra && 73958 !flags.invalidMonth && 73959 !flags.invalidWeekday && 73960 !flags.weekdayMismatch && 73961 !flags.nullInput && 73962 !flags.invalidFormat && 73963 !flags.userInvalidated && 73964 (!flags.meridiem || (flags.meridiem && parsedParts)); 73965 if (m._strict) { 73966 isNowValid = 73967 isNowValid && 73968 flags.charsLeftOver === 0 && 73969 flags.unusedTokens.length === 0 && 73970 flags.bigHour === undefined; 73971 } 73972 } 73973 if (Object.isFrozen == null || !Object.isFrozen(m)) { 73974 m._isValid = isNowValid; 73975 } else { 73976 return isNowValid; 73977 } 73978 return m._isValid; 73979 } 73980 73981 function createInvalid(flags) { 73982 var m = createUTC(NaN); 73983 if (flags != null) { 73984 extend(getParsingFlags(m), flags); 73985 } else { 73986 getParsingFlags(m).userInvalidated = true; 73987 } 73988 73989 return m; 73990 } 73991 73992 // Plugins that add properties should also add the key here (null value), 73993 // so we can properly clone ourselves. 73994 var momentProperties = (hooks.momentProperties = []), 73995 updateInProgress = false; 73996 73997 function copyConfig(to, from) { 73998 var i, 73999 prop, 74000 val, 74001 momentPropertiesLen = momentProperties.length; 74002 74003 if (!isUndefined(from._isAMomentObject)) { 74004 to._isAMomentObject = from._isAMomentObject; 74005 } 74006 if (!isUndefined(from._i)) { 74007 to._i = from._i; 74008 } 74009 if (!isUndefined(from._f)) { 74010 to._f = from._f; 74011 } 74012 if (!isUndefined(from._l)) { 74013 to._l = from._l; 74014 } 74015 if (!isUndefined(from._strict)) { 74016 to._strict = from._strict; 74017 } 74018 if (!isUndefined(from._tzm)) { 74019 to._tzm = from._tzm; 74020 } 74021 if (!isUndefined(from._isUTC)) { 74022 to._isUTC = from._isUTC; 74023 } 74024 if (!isUndefined(from._offset)) { 74025 to._offset = from._offset; 74026 } 74027 if (!isUndefined(from._pf)) { 74028 to._pf = getParsingFlags(from); 74029 } 74030 if (!isUndefined(from._locale)) { 74031 to._locale = from._locale; 74032 } 74033 74034 if (momentPropertiesLen > 0) { 74035 for (i = 0; i < momentPropertiesLen; i++) { 74036 prop = momentProperties[i]; 74037 val = from[prop]; 74038 if (!isUndefined(val)) { 74039 to[prop] = val; 74040 } 74041 } 74042 } 74043 74044 return to; 74045 } 74046 74047 // Moment prototype object 74048 function Moment(config) { 74049 copyConfig(this, config); 74050 this._d = new Date(config._d != null ? config._d.getTime() : NaN); 74051 if (!this.isValid()) { 74052 this._d = new Date(NaN); 74053 } 74054 // Prevent infinite loop in case updateOffset creates new moment 74055 // objects. 74056 if (updateInProgress === false) { 74057 updateInProgress = true; 74058 hooks.updateOffset(this); 74059 updateInProgress = false; 74060 } 74061 } 74062 74063 function isMoment(obj) { 74064 return ( 74065 obj instanceof Moment || (obj != null && obj._isAMomentObject != null) 74066 ); 74067 } 74068 74069 function warn(msg) { 74070 if ( 74071 hooks.suppressDeprecationWarnings === false && 74072 typeof console !== 'undefined' && 74073 console.warn 74074 ) { 74075 console.warn('Deprecation warning: ' + msg); 74076 } 74077 } 74078 74079 function deprecate(msg, fn) { 74080 var firstTime = true; 74081 74082 return extend(function () { 74083 if (hooks.deprecationHandler != null) { 74084 hooks.deprecationHandler(null, msg); 74085 } 74086 if (firstTime) { 74087 var args = [], 74088 arg, 74089 i, 74090 key, 74091 argLen = arguments.length; 74092 for (i = 0; i < argLen; i++) { 74093 arg = ''; 74094 if (typeof arguments[i] === 'object') { 74095 arg += '\n[' + i + '] '; 74096 for (key in arguments[0]) { 74097 if (hasOwnProp(arguments[0], key)) { 74098 arg += key + ': ' + arguments[0][key] + ', '; 74099 } 74100 } 74101 arg = arg.slice(0, -2); // Remove trailing comma and space 74102 } else { 74103 arg = arguments[i]; 74104 } 74105 args.push(arg); 74106 } 74107 warn( 74108 msg + 74109 '\nArguments: ' + 74110 Array.prototype.slice.call(args).join('') + 74111 '\n' + 74112 new Error().stack 74113 ); 74114 firstTime = false; 74115 } 74116 return fn.apply(this, arguments); 74117 }, fn); 74118 } 74119 74120 var deprecations = {}; 74121 74122 function deprecateSimple(name, msg) { 74123 if (hooks.deprecationHandler != null) { 74124 hooks.deprecationHandler(name, msg); 74125 } 74126 if (!deprecations[name]) { 74127 warn(msg); 74128 deprecations[name] = true; 74129 } 74130 } 74131 74132 hooks.suppressDeprecationWarnings = false; 74133 hooks.deprecationHandler = null; 74134 74135 function isFunction(input) { 74136 return ( 74137 (typeof Function !== 'undefined' && input instanceof Function) || 74138 Object.prototype.toString.call(input) === '[object Function]' 74139 ); 74140 } 74141 74142 function set(config) { 74143 var prop, i; 74144 for (i in config) { 74145 if (hasOwnProp(config, i)) { 74146 prop = config[i]; 74147 if (isFunction(prop)) { 74148 this[i] = prop; 74149 } else { 74150 this['_' + i] = prop; 74151 } 74152 } 74153 } 74154 this._config = config; 74155 // Lenient ordinal parsing accepts just a number in addition to 74156 // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. 74157 // TODO: Remove "ordinalParse" fallback in next major release. 74158 this._dayOfMonthOrdinalParseLenient = new RegExp( 74159 (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + 74160 '|' + 74161 /\d{1,2}/.source 74162 ); 74163 } 74164 74165 function mergeConfigs(parentConfig, childConfig) { 74166 var res = extend({}, parentConfig), 74167 prop; 74168 for (prop in childConfig) { 74169 if (hasOwnProp(childConfig, prop)) { 74170 if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { 74171 res[prop] = {}; 74172 extend(res[prop], parentConfig[prop]); 74173 extend(res[prop], childConfig[prop]); 74174 } else if (childConfig[prop] != null) { 74175 res[prop] = childConfig[prop]; 74176 } else { 74177 delete res[prop]; 74178 } 74179 } 74180 } 74181 for (prop in parentConfig) { 74182 if ( 74183 hasOwnProp(parentConfig, prop) && 74184 !hasOwnProp(childConfig, prop) && 74185 isObject(parentConfig[prop]) 74186 ) { 74187 // make sure changes to properties don't modify parent config 74188 res[prop] = extend({}, res[prop]); 74189 } 74190 } 74191 return res; 74192 } 74193 74194 function Locale(config) { 74195 if (config != null) { 74196 this.set(config); 74197 } 74198 } 74199 74200 var keys; 74201 74202 if (Object.keys) { 74203 keys = Object.keys; 74204 } else { 74205 keys = function (obj) { 74206 var i, 74207 res = []; 74208 for (i in obj) { 74209 if (hasOwnProp(obj, i)) { 74210 res.push(i); 74211 } 74212 } 74213 return res; 74214 }; 74215 } 74216 74217 var defaultCalendar = { 74218 sameDay: '[Today at] LT', 74219 nextDay: '[Tomorrow at] LT', 74220 nextWeek: 'dddd [at] LT', 74221 lastDay: '[Yesterday at] LT', 74222 lastWeek: '[Last] dddd [at] LT', 74223 sameElse: 'L', 74224 }; 74225 74226 function calendar(key, mom, now) { 74227 var output = this._calendar[key] || this._calendar['sameElse']; 74228 return isFunction(output) ? output.call(mom, now) : output; 74229 } 74230 74231 function zeroFill(number, targetLength, forceSign) { 74232 var absNumber = '' + Math.abs(number), 74233 zerosToFill = targetLength - absNumber.length, 74234 sign = number >= 0; 74235 return ( 74236 (sign ? (forceSign ? '+' : '') : '-') + 74237 Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + 74238 absNumber 74239 ); 74240 } 74241 74242 var formattingTokens = 74243 /(\[[^\[]*\])|(\\)?([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, 74244 localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, 74245 formatFunctions = {}, 74246 formatTokenFunctions = {}; 74247 74248 // token: 'M' 74249 // padded: ['MM', 2] 74250 // ordinal: 'Mo' 74251 // callback: function () { this.month() + 1 } 74252 function addFormatToken(token, padded, ordinal, callback) { 74253 var func = callback; 74254 if (typeof callback === 'string') { 74255 func = function () { 74256 return this[callback](); 74257 }; 74258 } 74259 if (token) { 74260 formatTokenFunctions[token] = func; 74261 } 74262 if (padded) { 74263 formatTokenFunctions[padded[0]] = function () { 74264 return zeroFill(func.apply(this, arguments), padded[1], padded[2]); 74265 }; 74266 } 74267 if (ordinal) { 74268 formatTokenFunctions[ordinal] = function () { 74269 return this.localeData().ordinal( 74270 func.apply(this, arguments), 74271 token 74272 ); 74273 }; 74274 } 74275 } 74276 74277 function removeFormattingTokens(input) { 74278 if (input.match(/\[[\s\S]/)) { 74279 return input.replace(/^\[|\]$/g, ''); 74280 } 74281 return input.replace(/\\/g, ''); 74282 } 74283 74284 function makeFormatFunction(format) { 74285 var array = format.match(formattingTokens), 74286 i, 74287 length; 74288 74289 for (i = 0, length = array.length; i < length; i++) { 74290 if (formatTokenFunctions[array[i]]) { 74291 array[i] = formatTokenFunctions[array[i]]; 74292 } else { 74293 array[i] = removeFormattingTokens(array[i]); 74294 } 74295 } 74296 74297 return function (mom) { 74298 var output = '', 74299 i; 74300 for (i = 0; i < length; i++) { 74301 output += isFunction(array[i]) 74302 ? array[i].call(mom, format) 74303 : array[i]; 74304 } 74305 return output; 74306 }; 74307 } 74308 74309 // format date using native date object 74310 function formatMoment(m, format) { 74311 if (!m.isValid()) { 74312 return m.localeData().invalidDate(); 74313 } 74314 74315 format = expandFormat(format, m.localeData()); 74316 formatFunctions[format] = 74317 formatFunctions[format] || makeFormatFunction(format); 74318 74319 return formatFunctions[format](m); 74320 } 74321 74322 function expandFormat(format, locale) { 74323 var i = 5; 74324 74325 function replaceLongDateFormatTokens(input) { 74326 return locale.longDateFormat(input) || input; 74327 } 74328 74329 localFormattingTokens.lastIndex = 0; 74330 while (i >= 0 && localFormattingTokens.test(format)) { 74331 format = format.replace( 74332 localFormattingTokens, 74333 replaceLongDateFormatTokens 74334 ); 74335 localFormattingTokens.lastIndex = 0; 74336 i -= 1; 74337 } 74338 74339 return format; 74340 } 74341 74342 var defaultLongDateFormat = { 74343 LTS: 'h:mm:ss A', 74344 LT: 'h:mm A', 74345 L: 'MM/DD/YYYY', 74346 LL: 'MMMM D, YYYY', 74347 LLL: 'MMMM D, YYYY h:mm A', 74348 LLLL: 'dddd, MMMM D, YYYY h:mm A', 74349 }; 74350 74351 function longDateFormat(key) { 74352 var format = this._longDateFormat[key], 74353 formatUpper = this._longDateFormat[key.toUpperCase()]; 74354 74355 if (format || !formatUpper) { 74356 return format; 74357 } 74358 74359 this._longDateFormat[key] = formatUpper 74360 .match(formattingTokens) 74361 .map(function (tok) { 74362 if ( 74363 tok === 'MMMM' || 74364 tok === 'MM' || 74365 tok === 'DD' || 74366 tok === 'dddd' 74367 ) { 74368 return tok.slice(1); 74369 } 74370 return tok; 74371 }) 74372 .join(''); 74373 74374 return this._longDateFormat[key]; 74375 } 74376 74377 var defaultInvalidDate = 'Invalid date'; 74378 74379 function invalidDate() { 74380 return this._invalidDate; 74381 } 74382 74383 var defaultOrdinal = '%d', 74384 defaultDayOfMonthOrdinalParse = /\d{1,2}/; 74385 74386 function ordinal(number) { 74387 return this._ordinal.replace('%d', number); 74388 } 74389 74390 var defaultRelativeTime = { 74391 future: 'in %s', 74392 past: '%s ago', 74393 s: 'a few seconds', 74394 ss: '%d seconds', 74395 m: 'a minute', 74396 mm: '%d minutes', 74397 h: 'an hour', 74398 hh: '%d hours', 74399 d: 'a day', 74400 dd: '%d days', 74401 w: 'a week', 74402 ww: '%d weeks', 74403 M: 'a month', 74404 MM: '%d months', 74405 y: 'a year', 74406 yy: '%d years', 74407 }; 74408 74409 function relativeTime(number, withoutSuffix, string, isFuture) { 74410 var output = this._relativeTime[string]; 74411 return isFunction(output) 74412 ? output(number, withoutSuffix, string, isFuture) 74413 : output.replace(/%d/i, number); 74414 } 74415 74416 function pastFuture(diff, output) { 74417 var format = this._relativeTime[diff > 0 ? 'future' : 'past']; 74418 return isFunction(format) ? format(output) : format.replace(/%s/i, output); 74419 } 74420 74421 var aliases = { 74422 D: 'date', 74423 dates: 'date', 74424 date: 'date', 74425 d: 'day', 74426 days: 'day', 74427 day: 'day', 74428 e: 'weekday', 74429 weekdays: 'weekday', 74430 weekday: 'weekday', 74431 E: 'isoWeekday', 74432 isoweekdays: 'isoWeekday', 74433 isoweekday: 'isoWeekday', 74434 DDD: 'dayOfYear', 74435 dayofyears: 'dayOfYear', 74436 dayofyear: 'dayOfYear', 74437 h: 'hour', 74438 hours: 'hour', 74439 hour: 'hour', 74440 ms: 'millisecond', 74441 milliseconds: 'millisecond', 74442 millisecond: 'millisecond', 74443 m: 'minute', 74444 minutes: 'minute', 74445 minute: 'minute', 74446 M: 'month', 74447 months: 'month', 74448 month: 'month', 74449 Q: 'quarter', 74450 quarters: 'quarter', 74451 quarter: 'quarter', 74452 s: 'second', 74453 seconds: 'second', 74454 second: 'second', 74455 gg: 'weekYear', 74456 weekyears: 'weekYear', 74457 weekyear: 'weekYear', 74458 GG: 'isoWeekYear', 74459 isoweekyears: 'isoWeekYear', 74460 isoweekyear: 'isoWeekYear', 74461 w: 'week', 74462 weeks: 'week', 74463 week: 'week', 74464 W: 'isoWeek', 74465 isoweeks: 'isoWeek', 74466 isoweek: 'isoWeek', 74467 y: 'year', 74468 years: 'year', 74469 year: 'year', 74470 }; 74471 74472 function normalizeUnits(units) { 74473 return typeof units === 'string' 74474 ? aliases[units] || aliases[units.toLowerCase()] 74475 : undefined; 74476 } 74477 74478 function normalizeObjectUnits(inputObject) { 74479 var normalizedInput = {}, 74480 normalizedProp, 74481 prop; 74482 74483 for (prop in inputObject) { 74484 if (hasOwnProp(inputObject, prop)) { 74485 normalizedProp = normalizeUnits(prop); 74486 if (normalizedProp) { 74487 normalizedInput[normalizedProp] = inputObject[prop]; 74488 } 74489 } 74490 } 74491 74492 return normalizedInput; 74493 } 74494 74495 var priorities = { 74496 date: 9, 74497 day: 11, 74498 weekday: 11, 74499 isoWeekday: 11, 74500 dayOfYear: 4, 74501 hour: 13, 74502 millisecond: 16, 74503 minute: 14, 74504 month: 8, 74505 quarter: 7, 74506 second: 15, 74507 weekYear: 1, 74508 isoWeekYear: 1, 74509 week: 5, 74510 isoWeek: 5, 74511 year: 1, 74512 }; 74513 74514 function getPrioritizedUnits(unitsObj) { 74515 var units = [], 74516 u; 74517 for (u in unitsObj) { 74518 if (hasOwnProp(unitsObj, u)) { 74519 units.push({ unit: u, priority: priorities[u] }); 74520 } 74521 } 74522 units.sort(function (a, b) { 74523 return a.priority - b.priority; 74524 }); 74525 return units; 74526 } 74527 74528 var match1 = /\d/, // 0 - 9 74529 match2 = /\d\d/, // 00 - 99 74530 match3 = /\d{3}/, // 000 - 999 74531 match4 = /\d{4}/, // 0000 - 9999 74532 match6 = /[+-]?\d{6}/, // -999999 - 999999 74533 match1to2 = /\d\d?/, // 0 - 99 74534 match3to4 = /\d\d\d\d?/, // 999 - 9999 74535 match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 74536 match1to3 = /\d{1,3}/, // 0 - 999 74537 match1to4 = /\d{1,4}/, // 0 - 9999 74538 match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 74539 matchUnsigned = /\d+/, // 0 - inf 74540 matchSigned = /[+-]?\d+/, // -inf - inf 74541 matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z 74542 matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z 74543 matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 74544 // any word (or two) characters or numbers including two/three word month in arabic. 74545 // includes scottish gaelic two word and hyphenated months 74546 matchWord = 74547 /[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, 74548 match1to2NoLeadingZero = /^[1-9]\d?/, // 1-99 74549 match1to2HasZero = /^([1-9]\d|\d)/, // 0-99 74550 regexes; 74551 74552 regexes = {}; 74553 74554 function addRegexToken(token, regex, strictRegex) { 74555 regexes[token] = isFunction(regex) 74556 ? regex 74557 : function (isStrict, localeData) { 74558 return isStrict && strictRegex ? strictRegex : regex; 74559 }; 74560 } 74561 74562 function getParseRegexForToken(token, config) { 74563 if (!hasOwnProp(regexes, token)) { 74564 return new RegExp(unescapeFormat(token)); 74565 } 74566 74567 return regexes[token](config._strict, config._locale); 74568 } 74569 74570 // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript 74571 function unescapeFormat(s) { 74572 return regexEscape( 74573 s 74574 .replace('\\', '') 74575 .replace( 74576 /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, 74577 function (matched, p1, p2, p3, p4) { 74578 return p1 || p2 || p3 || p4; 74579 } 74580 ) 74581 ); 74582 } 74583 74584 function regexEscape(s) { 74585 return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); 74586 } 74587 74588 function absFloor(number) { 74589 if (number < 0) { 74590 // -0 -> 0 74591 return Math.ceil(number) || 0; 74592 } else { 74593 return Math.floor(number); 74594 } 74595 } 74596 74597 function toInt(argumentForCoercion) { 74598 var coercedNumber = +argumentForCoercion, 74599 value = 0; 74600 74601 if (coercedNumber !== 0 && isFinite(coercedNumber)) { 74602 value = absFloor(coercedNumber); 74603 } 74604 74605 return value; 74606 } 74607 74608 var tokens = {}; 74609 74610 function addParseToken(token, callback) { 74611 var i, 74612 func = callback, 74613 tokenLen; 74614 if (typeof token === 'string') { 74615 token = [token]; 74616 } 74617 if (isNumber(callback)) { 74618 func = function (input, array) { 74619 array[callback] = toInt(input); 74620 }; 74621 } 74622 tokenLen = token.length; 74623 for (i = 0; i < tokenLen; i++) { 74624 tokens[token[i]] = func; 74625 } 74626 } 74627 74628 function addWeekParseToken(token, callback) { 74629 addParseToken(token, function (input, array, config, token) { 74630 config._w = config._w || {}; 74631 callback(input, config._w, config, token); 74632 }); 74633 } 74634 74635 function addTimeToArrayFromToken(token, input, config) { 74636 if (input != null && hasOwnProp(tokens, token)) { 74637 tokens[token](input, config._a, config, token); 74638 } 74639 } 74640 74641 function isLeapYear(year) { 74642 return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; 74643 } 74644 74645 var YEAR = 0, 74646 MONTH = 1, 74647 DATE = 2, 74648 HOUR = 3, 74649 MINUTE = 4, 74650 SECOND = 5, 74651 MILLISECOND = 6, 74652 WEEK = 7, 74653 WEEKDAY = 8; 74654 74655 // FORMATTING 74656 74657 addFormatToken('Y', 0, 0, function () { 74658 var y = this.year(); 74659 return y <= 9999 ? zeroFill(y, 4) : '+' + y; 74660 }); 74661 74662 addFormatToken(0, ['YY', 2], 0, function () { 74663 return this.year() % 100; 74664 }); 74665 74666 addFormatToken(0, ['YYYY', 4], 0, 'year'); 74667 addFormatToken(0, ['YYYYY', 5], 0, 'year'); 74668 addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); 74669 74670 // PARSING 74671 74672 addRegexToken('Y', matchSigned); 74673 addRegexToken('YY', match1to2, match2); 74674 addRegexToken('YYYY', match1to4, match4); 74675 addRegexToken('YYYYY', match1to6, match6); 74676 addRegexToken('YYYYYY', match1to6, match6); 74677 74678 addParseToken(['YYYYY', 'YYYYYY'], YEAR); 74679 addParseToken('YYYY', function (input, array) { 74680 array[YEAR] = 74681 input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); 74682 }); 74683 addParseToken('YY', function (input, array) { 74684 array[YEAR] = hooks.parseTwoDigitYear(input); 74685 }); 74686 addParseToken('Y', function (input, array) { 74687 array[YEAR] = parseInt(input, 10); 74688 }); 74689 74690 // HELPERS 74691 74692 function daysInYear(year) { 74693 return isLeapYear(year) ? 366 : 365; 74694 } 74695 74696 // HOOKS 74697 74698 hooks.parseTwoDigitYear = function (input) { 74699 return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); 74700 }; 74701 74702 // MOMENTS 74703 74704 var getSetYear = makeGetSet('FullYear', true); 74705 74706 function getIsLeapYear() { 74707 return isLeapYear(this.year()); 74708 } 74709 74710 function makeGetSet(unit, keepTime) { 74711 return function (value) { 74712 if (value != null) { 74713 set$1(this, unit, value); 74714 hooks.updateOffset(this, keepTime); 74715 return this; 74716 } else { 74717 return get(this, unit); 74718 } 74719 }; 74720 } 74721 74722 function get(mom, unit) { 74723 if (!mom.isValid()) { 74724 return NaN; 74725 } 74726 74727 var d = mom._d, 74728 isUTC = mom._isUTC; 74729 74730 switch (unit) { 74731 case 'Milliseconds': 74732 return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds(); 74733 case 'Seconds': 74734 return isUTC ? d.getUTCSeconds() : d.getSeconds(); 74735 case 'Minutes': 74736 return isUTC ? d.getUTCMinutes() : d.getMinutes(); 74737 case 'Hours': 74738 return isUTC ? d.getUTCHours() : d.getHours(); 74739 case 'Date': 74740 return isUTC ? d.getUTCDate() : d.getDate(); 74741 case 'Day': 74742 return isUTC ? d.getUTCDay() : d.getDay(); 74743 case 'Month': 74744 return isUTC ? d.getUTCMonth() : d.getMonth(); 74745 case 'FullYear': 74746 return isUTC ? d.getUTCFullYear() : d.getFullYear(); 74747 default: 74748 return NaN; // Just in case 74749 } 74750 } 74751 74752 function set$1(mom, unit, value) { 74753 var d, isUTC, year, month, date; 74754 74755 if (!mom.isValid() || isNaN(value)) { 74756 return; 74757 } 74758 74759 d = mom._d; 74760 isUTC = mom._isUTC; 74761 74762 switch (unit) { 74763 case 'Milliseconds': 74764 return void (isUTC 74765 ? d.setUTCMilliseconds(value) 74766 : d.setMilliseconds(value)); 74767 case 'Seconds': 74768 return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value)); 74769 case 'Minutes': 74770 return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value)); 74771 case 'Hours': 74772 return void (isUTC ? d.setUTCHours(value) : d.setHours(value)); 74773 case 'Date': 74774 return void (isUTC ? d.setUTCDate(value) : d.setDate(value)); 74775 // case 'Day': // Not real 74776 // return void (isUTC ? d.setUTCDay(value) : d.setDay(value)); 74777 // case 'Month': // Not used because we need to pass two variables 74778 // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value)); 74779 case 'FullYear': 74780 break; // See below ... 74781 default: 74782 return; // Just in case 74783 } 74784 74785 year = value; 74786 month = mom.month(); 74787 date = mom.date(); 74788 date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date; 74789 void (isUTC 74790 ? d.setUTCFullYear(year, month, date) 74791 : d.setFullYear(year, month, date)); 74792 } 74793 74794 // MOMENTS 74795 74796 function stringGet(units) { 74797 units = normalizeUnits(units); 74798 if (isFunction(this[units])) { 74799 return this[units](); 74800 } 74801 return this; 74802 } 74803 74804 function stringSet(units, value) { 74805 if (typeof units === 'object') { 74806 units = normalizeObjectUnits(units); 74807 var prioritized = getPrioritizedUnits(units), 74808 i, 74809 prioritizedLen = prioritized.length; 74810 for (i = 0; i < prioritizedLen; i++) { 74811 this[prioritized[i].unit](units[prioritized[i].unit]); 74812 } 74813 } else { 74814 units = normalizeUnits(units); 74815 if (isFunction(this[units])) { 74816 return this[units](value); 74817 } 74818 } 74819 return this; 74820 } 74821 74822 function mod(n, x) { 74823 return ((n % x) + x) % x; 74824 } 74825 74826 var indexOf; 74827 74828 if (Array.prototype.indexOf) { 74829 indexOf = Array.prototype.indexOf; 74830 } else { 74831 indexOf = function (o) { 74832 // I know 74833 var i; 74834 for (i = 0; i < this.length; ++i) { 74835 if (this[i] === o) { 74836 return i; 74837 } 74838 } 74839 return -1; 74840 }; 74841 } 74842 74843 function daysInMonth(year, month) { 74844 if (isNaN(year) || isNaN(month)) { 74845 return NaN; 74846 } 74847 var modMonth = mod(month, 12); 74848 year += (month - modMonth) / 12; 74849 return modMonth === 1 74850 ? isLeapYear(year) 74851 ? 29 74852 : 28 74853 : 31 - ((modMonth % 7) % 2); 74854 } 74855 74856 // FORMATTING 74857 74858 addFormatToken('M', ['MM', 2], 'Mo', function () { 74859 return this.month() + 1; 74860 }); 74861 74862 addFormatToken('MMM', 0, 0, function (format) { 74863 return this.localeData().monthsShort(this, format); 74864 }); 74865 74866 addFormatToken('MMMM', 0, 0, function (format) { 74867 return this.localeData().months(this, format); 74868 }); 74869 74870 // PARSING 74871 74872 addRegexToken('M', match1to2, match1to2NoLeadingZero); 74873 addRegexToken('MM', match1to2, match2); 74874 addRegexToken('MMM', function (isStrict, locale) { 74875 return locale.monthsShortRegex(isStrict); 74876 }); 74877 addRegexToken('MMMM', function (isStrict, locale) { 74878 return locale.monthsRegex(isStrict); 74879 }); 74880 74881 addParseToken(['M', 'MM'], function (input, array) { 74882 array[MONTH] = toInt(input) - 1; 74883 }); 74884 74885 addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { 74886 var month = config._locale.monthsParse(input, token, config._strict); 74887 // if we didn't find a month name, mark the date as invalid. 74888 if (month != null) { 74889 array[MONTH] = month; 74890 } else { 74891 getParsingFlags(config).invalidMonth = input; 74892 } 74893 }); 74894 74895 // LOCALES 74896 74897 var defaultLocaleMonths = 74898 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 74899 '_' 74900 ), 74901 defaultLocaleMonthsShort = 74902 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 74903 MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, 74904 defaultMonthsShortRegex = matchWord, 74905 defaultMonthsRegex = matchWord; 74906 74907 function localeMonths(m, format) { 74908 if (!m) { 74909 return isArray(this._months) 74910 ? this._months 74911 : this._months['standalone']; 74912 } 74913 return isArray(this._months) 74914 ? this._months[m.month()] 74915 : this._months[ 74916 (this._months.isFormat || MONTHS_IN_FORMAT).test(format) 74917 ? 'format' 74918 : 'standalone' 74919 ][m.month()]; 74920 } 74921 74922 function localeMonthsShort(m, format) { 74923 if (!m) { 74924 return isArray(this._monthsShort) 74925 ? this._monthsShort 74926 : this._monthsShort['standalone']; 74927 } 74928 return isArray(this._monthsShort) 74929 ? this._monthsShort[m.month()] 74930 : this._monthsShort[ 74931 MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' 74932 ][m.month()]; 74933 } 74934 74935 function handleStrictParse(monthName, format, strict) { 74936 var i, 74937 ii, 74938 mom, 74939 llc = monthName.toLocaleLowerCase(); 74940 if (!this._monthsParse) { 74941 // this is not used 74942 this._monthsParse = []; 74943 this._longMonthsParse = []; 74944 this._shortMonthsParse = []; 74945 for (i = 0; i < 12; ++i) { 74946 mom = createUTC([2000, i]); 74947 this._shortMonthsParse[i] = this.monthsShort( 74948 mom, 74949 '' 74950 ).toLocaleLowerCase(); 74951 this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); 74952 } 74953 } 74954 74955 if (strict) { 74956 if (format === 'MMM') { 74957 ii = indexOf.call(this._shortMonthsParse, llc); 74958 return ii !== -1 ? ii : null; 74959 } else { 74960 ii = indexOf.call(this._longMonthsParse, llc); 74961 return ii !== -1 ? ii : null; 74962 } 74963 } else { 74964 if (format === 'MMM') { 74965 ii = indexOf.call(this._shortMonthsParse, llc); 74966 if (ii !== -1) { 74967 return ii; 74968 } 74969 ii = indexOf.call(this._longMonthsParse, llc); 74970 return ii !== -1 ? ii : null; 74971 } else { 74972 ii = indexOf.call(this._longMonthsParse, llc); 74973 if (ii !== -1) { 74974 return ii; 74975 } 74976 ii = indexOf.call(this._shortMonthsParse, llc); 74977 return ii !== -1 ? ii : null; 74978 } 74979 } 74980 } 74981 74982 function localeMonthsParse(monthName, format, strict) { 74983 var i, mom, regex; 74984 74985 if (this._monthsParseExact) { 74986 return handleStrictParse.call(this, monthName, format, strict); 74987 } 74988 74989 if (!this._monthsParse) { 74990 this._monthsParse = []; 74991 this._longMonthsParse = []; 74992 this._shortMonthsParse = []; 74993 } 74994 74995 // TODO: add sorting 74996 // Sorting makes sure if one month (or abbr) is a prefix of another 74997 // see sorting in computeMonthsParse 74998 for (i = 0; i < 12; i++) { 74999 // make the regex if we don't have it already 75000 mom = createUTC([2000, i]); 75001 if (strict && !this._longMonthsParse[i]) { 75002 this._longMonthsParse[i] = new RegExp( 75003 '^' + this.months(mom, '').replace('.', '') + '$', 75004 'i' 75005 ); 75006 this._shortMonthsParse[i] = new RegExp( 75007 '^' + this.monthsShort(mom, '').replace('.', '') + '$', 75008 'i' 75009 ); 75010 } 75011 if (!strict && !this._monthsParse[i]) { 75012 regex = 75013 '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); 75014 this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); 75015 } 75016 // test the regex 75017 if ( 75018 strict && 75019 format === 'MMMM' && 75020 this._longMonthsParse[i].test(monthName) 75021 ) { 75022 return i; 75023 } else if ( 75024 strict && 75025 format === 'MMM' && 75026 this._shortMonthsParse[i].test(monthName) 75027 ) { 75028 return i; 75029 } else if (!strict && this._monthsParse[i].test(monthName)) { 75030 return i; 75031 } 75032 } 75033 } 75034 75035 // MOMENTS 75036 75037 function setMonth(mom, value) { 75038 if (!mom.isValid()) { 75039 // No op 75040 return mom; 75041 } 75042 75043 if (typeof value === 'string') { 75044 if (/^\d+$/.test(value)) { 75045 value = toInt(value); 75046 } else { 75047 value = mom.localeData().monthsParse(value); 75048 // TODO: Another silent failure? 75049 if (!isNumber(value)) { 75050 return mom; 75051 } 75052 } 75053 } 75054 75055 var month = value, 75056 date = mom.date(); 75057 75058 date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month)); 75059 void (mom._isUTC 75060 ? mom._d.setUTCMonth(month, date) 75061 : mom._d.setMonth(month, date)); 75062 return mom; 75063 } 75064 75065 function getSetMonth(value) { 75066 if (value != null) { 75067 setMonth(this, value); 75068 hooks.updateOffset(this, true); 75069 return this; 75070 } else { 75071 return get(this, 'Month'); 75072 } 75073 } 75074 75075 function getDaysInMonth() { 75076 return daysInMonth(this.year(), this.month()); 75077 } 75078 75079 function monthsShortRegex(isStrict) { 75080 if (this._monthsParseExact) { 75081 if (!hasOwnProp(this, '_monthsRegex')) { 75082 computeMonthsParse.call(this); 75083 } 75084 if (isStrict) { 75085 return this._monthsShortStrictRegex; 75086 } else { 75087 return this._monthsShortRegex; 75088 } 75089 } else { 75090 if (!hasOwnProp(this, '_monthsShortRegex')) { 75091 this._monthsShortRegex = defaultMonthsShortRegex; 75092 } 75093 return this._monthsShortStrictRegex && isStrict 75094 ? this._monthsShortStrictRegex 75095 : this._monthsShortRegex; 75096 } 75097 } 75098 75099 function monthsRegex(isStrict) { 75100 if (this._monthsParseExact) { 75101 if (!hasOwnProp(this, '_monthsRegex')) { 75102 computeMonthsParse.call(this); 75103 } 75104 if (isStrict) { 75105 return this._monthsStrictRegex; 75106 } else { 75107 return this._monthsRegex; 75108 } 75109 } else { 75110 if (!hasOwnProp(this, '_monthsRegex')) { 75111 this._monthsRegex = defaultMonthsRegex; 75112 } 75113 return this._monthsStrictRegex && isStrict 75114 ? this._monthsStrictRegex 75115 : this._monthsRegex; 75116 } 75117 } 75118 75119 function computeMonthsParse() { 75120 function cmpLenRev(a, b) { 75121 return b.length - a.length; 75122 } 75123 75124 var shortPieces = [], 75125 longPieces = [], 75126 mixedPieces = [], 75127 i, 75128 mom, 75129 shortP, 75130 longP; 75131 for (i = 0; i < 12; i++) { 75132 // make the regex if we don't have it already 75133 mom = createUTC([2000, i]); 75134 shortP = regexEscape(this.monthsShort(mom, '')); 75135 longP = regexEscape(this.months(mom, '')); 75136 shortPieces.push(shortP); 75137 longPieces.push(longP); 75138 mixedPieces.push(longP); 75139 mixedPieces.push(shortP); 75140 } 75141 // Sorting makes sure if one month (or abbr) is a prefix of another it 75142 // will match the longer piece. 75143 shortPieces.sort(cmpLenRev); 75144 longPieces.sort(cmpLenRev); 75145 mixedPieces.sort(cmpLenRev); 75146 75147 this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 75148 this._monthsShortRegex = this._monthsRegex; 75149 this._monthsStrictRegex = new RegExp( 75150 '^(' + longPieces.join('|') + ')', 75151 'i' 75152 ); 75153 this._monthsShortStrictRegex = new RegExp( 75154 '^(' + shortPieces.join('|') + ')', 75155 'i' 75156 ); 75157 } 75158 75159 function createDate(y, m, d, h, M, s, ms) { 75160 // can't just apply() to create a date: 75161 // https://stackoverflow.com/q/181348 75162 var date; 75163 // the date constructor remaps years 0-99 to 1900-1999 75164 if (y < 100 && y >= 0) { 75165 // preserve leap years using a full 400 year cycle, then reset 75166 date = new Date(y + 400, m, d, h, M, s, ms); 75167 if (isFinite(date.getFullYear())) { 75168 date.setFullYear(y); 75169 } 75170 } else { 75171 date = new Date(y, m, d, h, M, s, ms); 75172 } 75173 75174 return date; 75175 } 75176 75177 function createUTCDate(y) { 75178 var date, args; 75179 // the Date.UTC function remaps years 0-99 to 1900-1999 75180 if (y < 100 && y >= 0) { 75181 args = Array.prototype.slice.call(arguments); 75182 // preserve leap years using a full 400 year cycle, then reset 75183 args[0] = y + 400; 75184 date = new Date(Date.UTC.apply(null, args)); 75185 if (isFinite(date.getUTCFullYear())) { 75186 date.setUTCFullYear(y); 75187 } 75188 } else { 75189 date = new Date(Date.UTC.apply(null, arguments)); 75190 } 75191 75192 return date; 75193 } 75194 75195 // start-of-first-week - start-of-year 75196 function firstWeekOffset(year, dow, doy) { 75197 var // first-week day -- which january is always in the first week (4 for iso, 1 for other) 75198 fwd = 7 + dow - doy, 75199 // first-week day local weekday -- which local weekday is fwd 75200 fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; 75201 75202 return -fwdlw + fwd - 1; 75203 } 75204 75205 // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday 75206 function dayOfYearFromWeeks(year, week, weekday, dow, doy) { 75207 var localWeekday = (7 + weekday - dow) % 7, 75208 weekOffset = firstWeekOffset(year, dow, doy), 75209 dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, 75210 resYear, 75211 resDayOfYear; 75212 75213 if (dayOfYear <= 0) { 75214 resYear = year - 1; 75215 resDayOfYear = daysInYear(resYear) + dayOfYear; 75216 } else if (dayOfYear > daysInYear(year)) { 75217 resYear = year + 1; 75218 resDayOfYear = dayOfYear - daysInYear(year); 75219 } else { 75220 resYear = year; 75221 resDayOfYear = dayOfYear; 75222 } 75223 75224 return { 75225 year: resYear, 75226 dayOfYear: resDayOfYear, 75227 }; 75228 } 75229 75230 function weekOfYear(mom, dow, doy) { 75231 var weekOffset = firstWeekOffset(mom.year(), dow, doy), 75232 week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, 75233 resWeek, 75234 resYear; 75235 75236 if (week < 1) { 75237 resYear = mom.year() - 1; 75238 resWeek = week + weeksInYear(resYear, dow, doy); 75239 } else if (week > weeksInYear(mom.year(), dow, doy)) { 75240 resWeek = week - weeksInYear(mom.year(), dow, doy); 75241 resYear = mom.year() + 1; 75242 } else { 75243 resYear = mom.year(); 75244 resWeek = week; 75245 } 75246 75247 return { 75248 week: resWeek, 75249 year: resYear, 75250 }; 75251 } 75252 75253 function weeksInYear(year, dow, doy) { 75254 var weekOffset = firstWeekOffset(year, dow, doy), 75255 weekOffsetNext = firstWeekOffset(year + 1, dow, doy); 75256 return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; 75257 } 75258 75259 // FORMATTING 75260 75261 addFormatToken('w', ['ww', 2], 'wo', 'week'); 75262 addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); 75263 75264 // PARSING 75265 75266 addRegexToken('w', match1to2, match1to2NoLeadingZero); 75267 addRegexToken('ww', match1to2, match2); 75268 addRegexToken('W', match1to2, match1to2NoLeadingZero); 75269 addRegexToken('WW', match1to2, match2); 75270 75271 addWeekParseToken( 75272 ['w', 'ww', 'W', 'WW'], 75273 function (input, week, config, token) { 75274 week[token.substr(0, 1)] = toInt(input); 75275 } 75276 ); 75277 75278 // HELPERS 75279 75280 // LOCALES 75281 75282 function localeWeek(mom) { 75283 return weekOfYear(mom, this._week.dow, this._week.doy).week; 75284 } 75285 75286 var defaultLocaleWeek = { 75287 dow: 0, // Sunday is the first day of the week. 75288 doy: 6, // The week that contains Jan 6th is the first week of the year. 75289 }; 75290 75291 function localeFirstDayOfWeek() { 75292 return this._week.dow; 75293 } 75294 75295 function localeFirstDayOfYear() { 75296 return this._week.doy; 75297 } 75298 75299 // MOMENTS 75300 75301 function getSetWeek(input) { 75302 var week = this.localeData().week(this); 75303 return input == null ? week : this.add((input - week) * 7, 'd'); 75304 } 75305 75306 function getSetISOWeek(input) { 75307 var week = weekOfYear(this, 1, 4).week; 75308 return input == null ? week : this.add((input - week) * 7, 'd'); 75309 } 75310 75311 // FORMATTING 75312 75313 addFormatToken('d', 0, 'do', 'day'); 75314 75315 addFormatToken('dd', 0, 0, function (format) { 75316 return this.localeData().weekdaysMin(this, format); 75317 }); 75318 75319 addFormatToken('ddd', 0, 0, function (format) { 75320 return this.localeData().weekdaysShort(this, format); 75321 }); 75322 75323 addFormatToken('dddd', 0, 0, function (format) { 75324 return this.localeData().weekdays(this, format); 75325 }); 75326 75327 addFormatToken('e', 0, 0, 'weekday'); 75328 addFormatToken('E', 0, 0, 'isoWeekday'); 75329 75330 // PARSING 75331 75332 addRegexToken('d', match1to2); 75333 addRegexToken('e', match1to2); 75334 addRegexToken('E', match1to2); 75335 addRegexToken('dd', function (isStrict, locale) { 75336 return locale.weekdaysMinRegex(isStrict); 75337 }); 75338 addRegexToken('ddd', function (isStrict, locale) { 75339 return locale.weekdaysShortRegex(isStrict); 75340 }); 75341 addRegexToken('dddd', function (isStrict, locale) { 75342 return locale.weekdaysRegex(isStrict); 75343 }); 75344 75345 addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { 75346 var weekday = config._locale.weekdaysParse(input, token, config._strict); 75347 // if we didn't get a weekday name, mark the date as invalid 75348 if (weekday != null) { 75349 week.d = weekday; 75350 } else { 75351 getParsingFlags(config).invalidWeekday = input; 75352 } 75353 }); 75354 75355 addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { 75356 week[token] = toInt(input); 75357 }); 75358 75359 // HELPERS 75360 75361 function parseWeekday(input, locale) { 75362 if (typeof input !== 'string') { 75363 return input; 75364 } 75365 75366 if (!isNaN(input)) { 75367 return parseInt(input, 10); 75368 } 75369 75370 input = locale.weekdaysParse(input); 75371 if (typeof input === 'number') { 75372 return input; 75373 } 75374 75375 return null; 75376 } 75377 75378 function parseIsoWeekday(input, locale) { 75379 if (typeof input === 'string') { 75380 return locale.weekdaysParse(input) % 7 || 7; 75381 } 75382 return isNaN(input) ? null : input; 75383 } 75384 75385 // LOCALES 75386 function shiftWeekdays(ws, n) { 75387 return ws.slice(n, 7).concat(ws.slice(0, n)); 75388 } 75389 75390 var defaultLocaleWeekdays = 75391 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 75392 defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 75393 defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 75394 defaultWeekdaysRegex = matchWord, 75395 defaultWeekdaysShortRegex = matchWord, 75396 defaultWeekdaysMinRegex = matchWord; 75397 75398 function localeWeekdays(m, format) { 75399 var weekdays = isArray(this._weekdays) 75400 ? this._weekdays 75401 : this._weekdays[ 75402 m && m !== true && this._weekdays.isFormat.test(format) 75403 ? 'format' 75404 : 'standalone' 75405 ]; 75406 return m === true 75407 ? shiftWeekdays(weekdays, this._week.dow) 75408 : m 75409 ? weekdays[m.day()] 75410 : weekdays; 75411 } 75412 75413 function localeWeekdaysShort(m) { 75414 return m === true 75415 ? shiftWeekdays(this._weekdaysShort, this._week.dow) 75416 : m 75417 ? this._weekdaysShort[m.day()] 75418 : this._weekdaysShort; 75419 } 75420 75421 function localeWeekdaysMin(m) { 75422 return m === true 75423 ? shiftWeekdays(this._weekdaysMin, this._week.dow) 75424 : m 75425 ? this._weekdaysMin[m.day()] 75426 : this._weekdaysMin; 75427 } 75428 75429 function handleStrictParse$1(weekdayName, format, strict) { 75430 var i, 75431 ii, 75432 mom, 75433 llc = weekdayName.toLocaleLowerCase(); 75434 if (!this._weekdaysParse) { 75435 this._weekdaysParse = []; 75436 this._shortWeekdaysParse = []; 75437 this._minWeekdaysParse = []; 75438 75439 for (i = 0; i < 7; ++i) { 75440 mom = createUTC([2000, 1]).day(i); 75441 this._minWeekdaysParse[i] = this.weekdaysMin( 75442 mom, 75443 '' 75444 ).toLocaleLowerCase(); 75445 this._shortWeekdaysParse[i] = this.weekdaysShort( 75446 mom, 75447 '' 75448 ).toLocaleLowerCase(); 75449 this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); 75450 } 75451 } 75452 75453 if (strict) { 75454 if (format === 'dddd') { 75455 ii = indexOf.call(this._weekdaysParse, llc); 75456 return ii !== -1 ? ii : null; 75457 } else if (format === 'ddd') { 75458 ii = indexOf.call(this._shortWeekdaysParse, llc); 75459 return ii !== -1 ? ii : null; 75460 } else { 75461 ii = indexOf.call(this._minWeekdaysParse, llc); 75462 return ii !== -1 ? ii : null; 75463 } 75464 } else { 75465 if (format === 'dddd') { 75466 ii = indexOf.call(this._weekdaysParse, llc); 75467 if (ii !== -1) { 75468 return ii; 75469 } 75470 ii = indexOf.call(this._shortWeekdaysParse, llc); 75471 if (ii !== -1) { 75472 return ii; 75473 } 75474 ii = indexOf.call(this._minWeekdaysParse, llc); 75475 return ii !== -1 ? ii : null; 75476 } else if (format === 'ddd') { 75477 ii = indexOf.call(this._shortWeekdaysParse, llc); 75478 if (ii !== -1) { 75479 return ii; 75480 } 75481 ii = indexOf.call(this._weekdaysParse, llc); 75482 if (ii !== -1) { 75483 return ii; 75484 } 75485 ii = indexOf.call(this._minWeekdaysParse, llc); 75486 return ii !== -1 ? ii : null; 75487 } else { 75488 ii = indexOf.call(this._minWeekdaysParse, llc); 75489 if (ii !== -1) { 75490 return ii; 75491 } 75492 ii = indexOf.call(this._weekdaysParse, llc); 75493 if (ii !== -1) { 75494 return ii; 75495 } 75496 ii = indexOf.call(this._shortWeekdaysParse, llc); 75497 return ii !== -1 ? ii : null; 75498 } 75499 } 75500 } 75501 75502 function localeWeekdaysParse(weekdayName, format, strict) { 75503 var i, mom, regex; 75504 75505 if (this._weekdaysParseExact) { 75506 return handleStrictParse$1.call(this, weekdayName, format, strict); 75507 } 75508 75509 if (!this._weekdaysParse) { 75510 this._weekdaysParse = []; 75511 this._minWeekdaysParse = []; 75512 this._shortWeekdaysParse = []; 75513 this._fullWeekdaysParse = []; 75514 } 75515 75516 for (i = 0; i < 7; i++) { 75517 // make the regex if we don't have it already 75518 75519 mom = createUTC([2000, 1]).day(i); 75520 if (strict && !this._fullWeekdaysParse[i]) { 75521 this._fullWeekdaysParse[i] = new RegExp( 75522 '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 75523 'i' 75524 ); 75525 this._shortWeekdaysParse[i] = new RegExp( 75526 '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 75527 'i' 75528 ); 75529 this._minWeekdaysParse[i] = new RegExp( 75530 '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 75531 'i' 75532 ); 75533 } 75534 if (!this._weekdaysParse[i]) { 75535 regex = 75536 '^' + 75537 this.weekdays(mom, '') + 75538 '|^' + 75539 this.weekdaysShort(mom, '') + 75540 '|^' + 75541 this.weekdaysMin(mom, ''); 75542 this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); 75543 } 75544 // test the regex 75545 if ( 75546 strict && 75547 format === 'dddd' && 75548 this._fullWeekdaysParse[i].test(weekdayName) 75549 ) { 75550 return i; 75551 } else if ( 75552 strict && 75553 format === 'ddd' && 75554 this._shortWeekdaysParse[i].test(weekdayName) 75555 ) { 75556 return i; 75557 } else if ( 75558 strict && 75559 format === 'dd' && 75560 this._minWeekdaysParse[i].test(weekdayName) 75561 ) { 75562 return i; 75563 } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { 75564 return i; 75565 } 75566 } 75567 } 75568 75569 // MOMENTS 75570 75571 function getSetDayOfWeek(input) { 75572 if (!this.isValid()) { 75573 return input != null ? this : NaN; 75574 } 75575 75576 var day = get(this, 'Day'); 75577 if (input != null) { 75578 input = parseWeekday(input, this.localeData()); 75579 return this.add(input - day, 'd'); 75580 } else { 75581 return day; 75582 } 75583 } 75584 75585 function getSetLocaleDayOfWeek(input) { 75586 if (!this.isValid()) { 75587 return input != null ? this : NaN; 75588 } 75589 var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; 75590 return input == null ? weekday : this.add(input - weekday, 'd'); 75591 } 75592 75593 function getSetISODayOfWeek(input) { 75594 if (!this.isValid()) { 75595 return input != null ? this : NaN; 75596 } 75597 75598 // behaves the same as moment#day except 75599 // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) 75600 // as a setter, sunday should belong to the previous week. 75601 75602 if (input != null) { 75603 var weekday = parseIsoWeekday(input, this.localeData()); 75604 return this.day(this.day() % 7 ? weekday : weekday - 7); 75605 } else { 75606 return this.day() || 7; 75607 } 75608 } 75609 75610 function weekdaysRegex(isStrict) { 75611 if (this._weekdaysParseExact) { 75612 if (!hasOwnProp(this, '_weekdaysRegex')) { 75613 computeWeekdaysParse.call(this); 75614 } 75615 if (isStrict) { 75616 return this._weekdaysStrictRegex; 75617 } else { 75618 return this._weekdaysRegex; 75619 } 75620 } else { 75621 if (!hasOwnProp(this, '_weekdaysRegex')) { 75622 this._weekdaysRegex = defaultWeekdaysRegex; 75623 } 75624 return this._weekdaysStrictRegex && isStrict 75625 ? this._weekdaysStrictRegex 75626 : this._weekdaysRegex; 75627 } 75628 } 75629 75630 function weekdaysShortRegex(isStrict) { 75631 if (this._weekdaysParseExact) { 75632 if (!hasOwnProp(this, '_weekdaysRegex')) { 75633 computeWeekdaysParse.call(this); 75634 } 75635 if (isStrict) { 75636 return this._weekdaysShortStrictRegex; 75637 } else { 75638 return this._weekdaysShortRegex; 75639 } 75640 } else { 75641 if (!hasOwnProp(this, '_weekdaysShortRegex')) { 75642 this._weekdaysShortRegex = defaultWeekdaysShortRegex; 75643 } 75644 return this._weekdaysShortStrictRegex && isStrict 75645 ? this._weekdaysShortStrictRegex 75646 : this._weekdaysShortRegex; 75647 } 75648 } 75649 75650 function weekdaysMinRegex(isStrict) { 75651 if (this._weekdaysParseExact) { 75652 if (!hasOwnProp(this, '_weekdaysRegex')) { 75653 computeWeekdaysParse.call(this); 75654 } 75655 if (isStrict) { 75656 return this._weekdaysMinStrictRegex; 75657 } else { 75658 return this._weekdaysMinRegex; 75659 } 75660 } else { 75661 if (!hasOwnProp(this, '_weekdaysMinRegex')) { 75662 this._weekdaysMinRegex = defaultWeekdaysMinRegex; 75663 } 75664 return this._weekdaysMinStrictRegex && isStrict 75665 ? this._weekdaysMinStrictRegex 75666 : this._weekdaysMinRegex; 75667 } 75668 } 75669 75670 function computeWeekdaysParse() { 75671 function cmpLenRev(a, b) { 75672 return b.length - a.length; 75673 } 75674 75675 var minPieces = [], 75676 shortPieces = [], 75677 longPieces = [], 75678 mixedPieces = [], 75679 i, 75680 mom, 75681 minp, 75682 shortp, 75683 longp; 75684 for (i = 0; i < 7; i++) { 75685 // make the regex if we don't have it already 75686 mom = createUTC([2000, 1]).day(i); 75687 minp = regexEscape(this.weekdaysMin(mom, '')); 75688 shortp = regexEscape(this.weekdaysShort(mom, '')); 75689 longp = regexEscape(this.weekdays(mom, '')); 75690 minPieces.push(minp); 75691 shortPieces.push(shortp); 75692 longPieces.push(longp); 75693 mixedPieces.push(minp); 75694 mixedPieces.push(shortp); 75695 mixedPieces.push(longp); 75696 } 75697 // Sorting makes sure if one weekday (or abbr) is a prefix of another it 75698 // will match the longer piece. 75699 minPieces.sort(cmpLenRev); 75700 shortPieces.sort(cmpLenRev); 75701 longPieces.sort(cmpLenRev); 75702 mixedPieces.sort(cmpLenRev); 75703 75704 this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 75705 this._weekdaysShortRegex = this._weekdaysRegex; 75706 this._weekdaysMinRegex = this._weekdaysRegex; 75707 75708 this._weekdaysStrictRegex = new RegExp( 75709 '^(' + longPieces.join('|') + ')', 75710 'i' 75711 ); 75712 this._weekdaysShortStrictRegex = new RegExp( 75713 '^(' + shortPieces.join('|') + ')', 75714 'i' 75715 ); 75716 this._weekdaysMinStrictRegex = new RegExp( 75717 '^(' + minPieces.join('|') + ')', 75718 'i' 75719 ); 75720 } 75721 75722 // FORMATTING 75723 75724 function hFormat() { 75725 return this.hours() % 12 || 12; 75726 } 75727 75728 function kFormat() { 75729 return this.hours() || 24; 75730 } 75731 75732 addFormatToken('H', ['HH', 2], 0, 'hour'); 75733 addFormatToken('h', ['hh', 2], 0, hFormat); 75734 addFormatToken('k', ['kk', 2], 0, kFormat); 75735 75736 addFormatToken('hmm', 0, 0, function () { 75737 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); 75738 }); 75739 75740 addFormatToken('hmmss', 0, 0, function () { 75741 return ( 75742 '' + 75743 hFormat.apply(this) + 75744 zeroFill(this.minutes(), 2) + 75745 zeroFill(this.seconds(), 2) 75746 ); 75747 }); 75748 75749 addFormatToken('Hmm', 0, 0, function () { 75750 return '' + this.hours() + zeroFill(this.minutes(), 2); 75751 }); 75752 75753 addFormatToken('Hmmss', 0, 0, function () { 75754 return ( 75755 '' + 75756 this.hours() + 75757 zeroFill(this.minutes(), 2) + 75758 zeroFill(this.seconds(), 2) 75759 ); 75760 }); 75761 75762 function meridiem(token, lowercase) { 75763 addFormatToken(token, 0, 0, function () { 75764 return this.localeData().meridiem( 75765 this.hours(), 75766 this.minutes(), 75767 lowercase 75768 ); 75769 }); 75770 } 75771 75772 meridiem('a', true); 75773 meridiem('A', false); 75774 75775 // PARSING 75776 75777 function matchMeridiem(isStrict, locale) { 75778 return locale._meridiemParse; 75779 } 75780 75781 addRegexToken('a', matchMeridiem); 75782 addRegexToken('A', matchMeridiem); 75783 addRegexToken('H', match1to2, match1to2HasZero); 75784 addRegexToken('h', match1to2, match1to2NoLeadingZero); 75785 addRegexToken('k', match1to2, match1to2NoLeadingZero); 75786 addRegexToken('HH', match1to2, match2); 75787 addRegexToken('hh', match1to2, match2); 75788 addRegexToken('kk', match1to2, match2); 75789 75790 addRegexToken('hmm', match3to4); 75791 addRegexToken('hmmss', match5to6); 75792 addRegexToken('Hmm', match3to4); 75793 addRegexToken('Hmmss', match5to6); 75794 75795 addParseToken(['H', 'HH'], HOUR); 75796 addParseToken(['k', 'kk'], function (input, array, config) { 75797 var kInput = toInt(input); 75798 array[HOUR] = kInput === 24 ? 0 : kInput; 75799 }); 75800 addParseToken(['a', 'A'], function (input, array, config) { 75801 config._isPm = config._locale.isPM(input); 75802 config._meridiem = input; 75803 }); 75804 addParseToken(['h', 'hh'], function (input, array, config) { 75805 array[HOUR] = toInt(input); 75806 getParsingFlags(config).bigHour = true; 75807 }); 75808 addParseToken('hmm', function (input, array, config) { 75809 var pos = input.length - 2; 75810 array[HOUR] = toInt(input.substr(0, pos)); 75811 array[MINUTE] = toInt(input.substr(pos)); 75812 getParsingFlags(config).bigHour = true; 75813 }); 75814 addParseToken('hmmss', function (input, array, config) { 75815 var pos1 = input.length - 4, 75816 pos2 = input.length - 2; 75817 array[HOUR] = toInt(input.substr(0, pos1)); 75818 array[MINUTE] = toInt(input.substr(pos1, 2)); 75819 array[SECOND] = toInt(input.substr(pos2)); 75820 getParsingFlags(config).bigHour = true; 75821 }); 75822 addParseToken('Hmm', function (input, array, config) { 75823 var pos = input.length - 2; 75824 array[HOUR] = toInt(input.substr(0, pos)); 75825 array[MINUTE] = toInt(input.substr(pos)); 75826 }); 75827 addParseToken('Hmmss', function (input, array, config) { 75828 var pos1 = input.length - 4, 75829 pos2 = input.length - 2; 75830 array[HOUR] = toInt(input.substr(0, pos1)); 75831 array[MINUTE] = toInt(input.substr(pos1, 2)); 75832 array[SECOND] = toInt(input.substr(pos2)); 75833 }); 75834 75835 // LOCALES 75836 75837 function localeIsPM(input) { 75838 // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays 75839 // Using charAt should be more compatible. 75840 return (input + '').toLowerCase().charAt(0) === 'p'; 75841 } 75842 75843 var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, 75844 // Setting the hour should keep the time, because the user explicitly 75845 // specified which hour they want. So trying to maintain the same hour (in 75846 // a new timezone) makes sense. Adding/subtracting hours does not follow 75847 // this rule. 75848 getSetHour = makeGetSet('Hours', true); 75849 75850 function localeMeridiem(hours, minutes, isLower) { 75851 if (hours > 11) { 75852 return isLower ? 'pm' : 'PM'; 75853 } else { 75854 return isLower ? 'am' : 'AM'; 75855 } 75856 } 75857 75858 var baseConfig = { 75859 calendar: defaultCalendar, 75860 longDateFormat: defaultLongDateFormat, 75861 invalidDate: defaultInvalidDate, 75862 ordinal: defaultOrdinal, 75863 dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, 75864 relativeTime: defaultRelativeTime, 75865 75866 months: defaultLocaleMonths, 75867 monthsShort: defaultLocaleMonthsShort, 75868 75869 week: defaultLocaleWeek, 75870 75871 weekdays: defaultLocaleWeekdays, 75872 weekdaysMin: defaultLocaleWeekdaysMin, 75873 weekdaysShort: defaultLocaleWeekdaysShort, 75874 75875 meridiemParse: defaultLocaleMeridiemParse, 75876 }; 75877 75878 // internal storage for locale config files 75879 var locales = {}, 75880 localeFamilies = {}, 75881 globalLocale; 75882 75883 function commonPrefix(arr1, arr2) { 75884 var i, 75885 minl = Math.min(arr1.length, arr2.length); 75886 for (i = 0; i < minl; i += 1) { 75887 if (arr1[i] !== arr2[i]) { 75888 return i; 75889 } 75890 } 75891 return minl; 75892 } 75893 75894 function normalizeLocale(key) { 75895 return key ? key.toLowerCase().replace('_', '-') : key; 75896 } 75897 75898 // pick the locale from the array 75899 // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each 75900 // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root 75901 function chooseLocale(names) { 75902 var i = 0, 75903 j, 75904 next, 75905 locale, 75906 split; 75907 75908 while (i < names.length) { 75909 split = normalizeLocale(names[i]).split('-'); 75910 j = split.length; 75911 next = normalizeLocale(names[i + 1]); 75912 next = next ? next.split('-') : null; 75913 while (j > 0) { 75914 locale = loadLocale(split.slice(0, j).join('-')); 75915 if (locale) { 75916 return locale; 75917 } 75918 if ( 75919 next && 75920 next.length >= j && 75921 commonPrefix(split, next) >= j - 1 75922 ) { 75923 //the next array item is better than a shallower substring of this one 75924 break; 75925 } 75926 j--; 75927 } 75928 i++; 75929 } 75930 return globalLocale; 75931 } 75932 75933 function isLocaleNameSane(name) { 75934 // Prevent names that look like filesystem paths, i.e contain '/' or '\' 75935 // Ensure name is available and function returns boolean 75936 return !!(name && name.match('^[^/\\\\]*$')); 75937 } 75938 75939 function loadLocale(name) { 75940 var oldLocale = null, 75941 aliasedRequire; 75942 // TODO: Find a better way to register and load all the locales in Node 75943 if ( 75944 locales[name] === undefined && 75945 "object" !== 'undefined' && 75946 module && 75947 module.exports && 75948 isLocaleNameSane(name) 75949 ) { 75950 try { 75951 oldLocale = globalLocale._abbr; 75952 aliasedRequire = undefined; 75953 __webpack_require__("./node_modules/moment/locale sync recursive ^\\.\\/.*$")("./" + name); 75954 getSetGlobalLocale(oldLocale); 75955 } catch (e) { 75956 // mark as not found to avoid repeating expensive file require call causing high CPU 75957 // when trying to find en-US, en_US, en-us for every format call 75958 locales[name] = null; // null means not found 75959 } 75960 } 75961 return locales[name]; 75962 } 75963 75964 // This function will load locale and then set the global locale. If 75965 // no arguments are passed in, it will simply return the current global 75966 // locale key. 75967 function getSetGlobalLocale(key, values) { 75968 var data; 75969 if (key) { 75970 if (isUndefined(values)) { 75971 data = getLocale(key); 75972 } else { 75973 data = defineLocale(key, values); 75974 } 75975 75976 if (data) { 75977 // moment.duration._locale = moment._locale = data; 75978 globalLocale = data; 75979 } else { 75980 if (typeof console !== 'undefined' && console.warn) { 75981 //warn user if arguments are passed but the locale could not be set 75982 console.warn( 75983 'Locale ' + key + ' not found. Did you forget to load it?' 75984 ); 75985 } 75986 } 75987 } 75988 75989 return globalLocale._abbr; 75990 } 75991 75992 function defineLocale(name, config) { 75993 if (config !== null) { 75994 var locale, 75995 parentConfig = baseConfig; 75996 config.abbr = name; 75997 if (locales[name] != null) { 75998 deprecateSimple( 75999 'defineLocaleOverride', 76000 'use moment.updateLocale(localeName, config) to change ' + 76001 'an existing locale. moment.defineLocale(localeName, ' + 76002 'config) should only be used for creating a new locale ' + 76003 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' 76004 ); 76005 parentConfig = locales[name]._config; 76006 } else if (config.parentLocale != null) { 76007 if (locales[config.parentLocale] != null) { 76008 parentConfig = locales[config.parentLocale]._config; 76009 } else { 76010 locale = loadLocale(config.parentLocale); 76011 if (locale != null) { 76012 parentConfig = locale._config; 76013 } else { 76014 if (!localeFamilies[config.parentLocale]) { 76015 localeFamilies[config.parentLocale] = []; 76016 } 76017 localeFamilies[config.parentLocale].push({ 76018 name: name, 76019 config: config, 76020 }); 76021 return null; 76022 } 76023 } 76024 } 76025 locales[name] = new Locale(mergeConfigs(parentConfig, config)); 76026 76027 if (localeFamilies[name]) { 76028 localeFamilies[name].forEach(function (x) { 76029 defineLocale(x.name, x.config); 76030 }); 76031 } 76032 76033 // backwards compat for now: also set the locale 76034 // make sure we set the locale AFTER all child locales have been 76035 // created, so we won't end up with the child locale set. 76036 getSetGlobalLocale(name); 76037 76038 return locales[name]; 76039 } else { 76040 // useful for testing 76041 delete locales[name]; 76042 return null; 76043 } 76044 } 76045 76046 function updateLocale(name, config) { 76047 if (config != null) { 76048 var locale, 76049 tmpLocale, 76050 parentConfig = baseConfig; 76051 76052 if (locales[name] != null && locales[name].parentLocale != null) { 76053 // Update existing child locale in-place to avoid memory-leaks 76054 locales[name].set(mergeConfigs(locales[name]._config, config)); 76055 } else { 76056 // MERGE 76057 tmpLocale = loadLocale(name); 76058 if (tmpLocale != null) { 76059 parentConfig = tmpLocale._config; 76060 } 76061 config = mergeConfigs(parentConfig, config); 76062 if (tmpLocale == null) { 76063 // updateLocale is called for creating a new locale 76064 // Set abbr so it will have a name (getters return 76065 // undefined otherwise). 76066 config.abbr = name; 76067 } 76068 locale = new Locale(config); 76069 locale.parentLocale = locales[name]; 76070 locales[name] = locale; 76071 } 76072 76073 // backwards compat for now: also set the locale 76074 getSetGlobalLocale(name); 76075 } else { 76076 // pass null for config to unupdate, useful for tests 76077 if (locales[name] != null) { 76078 if (locales[name].parentLocale != null) { 76079 locales[name] = locales[name].parentLocale; 76080 if (name === getSetGlobalLocale()) { 76081 getSetGlobalLocale(name); 76082 } 76083 } else if (locales[name] != null) { 76084 delete locales[name]; 76085 } 76086 } 76087 } 76088 return locales[name]; 76089 } 76090 76091 // returns locale data 76092 function getLocale(key) { 76093 var locale; 76094 76095 if (key && key._locale && key._locale._abbr) { 76096 key = key._locale._abbr; 76097 } 76098 76099 if (!key) { 76100 return globalLocale; 76101 } 76102 76103 if (!isArray(key)) { 76104 //short-circuit everything else 76105 locale = loadLocale(key); 76106 if (locale) { 76107 return locale; 76108 } 76109 key = [key]; 76110 } 76111 76112 return chooseLocale(key); 76113 } 76114 76115 function listLocales() { 76116 return keys(locales); 76117 } 76118 76119 function checkOverflow(m) { 76120 var overflow, 76121 a = m._a; 76122 76123 if (a && getParsingFlags(m).overflow === -2) { 76124 overflow = 76125 a[MONTH] < 0 || a[MONTH] > 11 76126 ? MONTH 76127 : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) 76128 ? DATE 76129 : a[HOUR] < 0 || 76130 a[HOUR] > 24 || 76131 (a[HOUR] === 24 && 76132 (a[MINUTE] !== 0 || 76133 a[SECOND] !== 0 || 76134 a[MILLISECOND] !== 0)) 76135 ? HOUR 76136 : a[MINUTE] < 0 || a[MINUTE] > 59 76137 ? MINUTE 76138 : a[SECOND] < 0 || a[SECOND] > 59 76139 ? SECOND 76140 : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 76141 ? MILLISECOND 76142 : -1; 76143 76144 if ( 76145 getParsingFlags(m)._overflowDayOfYear && 76146 (overflow < YEAR || overflow > DATE) 76147 ) { 76148 overflow = DATE; 76149 } 76150 if (getParsingFlags(m)._overflowWeeks && overflow === -1) { 76151 overflow = WEEK; 76152 } 76153 if (getParsingFlags(m)._overflowWeekday && overflow === -1) { 76154 overflow = WEEKDAY; 76155 } 76156 76157 getParsingFlags(m).overflow = overflow; 76158 } 76159 76160 return m; 76161 } 76162 76163 // iso 8601 regex 76164 // 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) 76165 var extendedIsoRegex = 76166 /^\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)?)?$/, 76167 basicIsoRegex = 76168 /^\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)?)?$/, 76169 tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, 76170 isoDates = [ 76171 ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], 76172 ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], 76173 ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], 76174 ['GGGG-[W]WW', /\d{4}-W\d\d/, false], 76175 ['YYYY-DDD', /\d{4}-\d{3}/], 76176 ['YYYY-MM', /\d{4}-\d\d/, false], 76177 ['YYYYYYMMDD', /[+-]\d{10}/], 76178 ['YYYYMMDD', /\d{8}/], 76179 ['GGGG[W]WWE', /\d{4}W\d{3}/], 76180 ['GGGG[W]WW', /\d{4}W\d{2}/, false], 76181 ['YYYYDDD', /\d{7}/], 76182 ['YYYYMM', /\d{6}/, false], 76183 ['YYYY', /\d{4}/, false], 76184 ], 76185 // iso time formats and regexes 76186 isoTimes = [ 76187 ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], 76188 ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], 76189 ['HH:mm:ss', /\d\d:\d\d:\d\d/], 76190 ['HH:mm', /\d\d:\d\d/], 76191 ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], 76192 ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], 76193 ['HHmmss', /\d\d\d\d\d\d/], 76194 ['HHmm', /\d\d\d\d/], 76195 ['HH', /\d\d/], 76196 ], 76197 aspNetJsonRegex = /^\/?Date\((-?\d+)/i, 76198 // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 76199 rfc2822 = 76200 /^(?:(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}))$/, 76201 obsOffsets = { 76202 UT: 0, 76203 GMT: 0, 76204 EDT: -4 * 60, 76205 EST: -5 * 60, 76206 CDT: -5 * 60, 76207 CST: -6 * 60, 76208 MDT: -6 * 60, 76209 MST: -7 * 60, 76210 PDT: -7 * 60, 76211 PST: -8 * 60, 76212 }; 76213 76214 // date from iso format 76215 function configFromISO(config) { 76216 var i, 76217 l, 76218 string = config._i, 76219 match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), 76220 allowTime, 76221 dateFormat, 76222 timeFormat, 76223 tzFormat, 76224 isoDatesLen = isoDates.length, 76225 isoTimesLen = isoTimes.length; 76226 76227 if (match) { 76228 getParsingFlags(config).iso = true; 76229 for (i = 0, l = isoDatesLen; i < l; i++) { 76230 if (isoDates[i][1].exec(match[1])) { 76231 dateFormat = isoDates[i][0]; 76232 allowTime = isoDates[i][2] !== false; 76233 break; 76234 } 76235 } 76236 if (dateFormat == null) { 76237 config._isValid = false; 76238 return; 76239 } 76240 if (match[3]) { 76241 for (i = 0, l = isoTimesLen; i < l; i++) { 76242 if (isoTimes[i][1].exec(match[3])) { 76243 // match[2] should be 'T' or space 76244 timeFormat = (match[2] || ' ') + isoTimes[i][0]; 76245 break; 76246 } 76247 } 76248 if (timeFormat == null) { 76249 config._isValid = false; 76250 return; 76251 } 76252 } 76253 if (!allowTime && timeFormat != null) { 76254 config._isValid = false; 76255 return; 76256 } 76257 if (match[4]) { 76258 if (tzRegex.exec(match[4])) { 76259 tzFormat = 'Z'; 76260 } else { 76261 config._isValid = false; 76262 return; 76263 } 76264 } 76265 config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); 76266 configFromStringAndFormat(config); 76267 } else { 76268 config._isValid = false; 76269 } 76270 } 76271 76272 function extractFromRFC2822Strings( 76273 yearStr, 76274 monthStr, 76275 dayStr, 76276 hourStr, 76277 minuteStr, 76278 secondStr 76279 ) { 76280 var result = [ 76281 untruncateYear(yearStr), 76282 defaultLocaleMonthsShort.indexOf(monthStr), 76283 parseInt(dayStr, 10), 76284 parseInt(hourStr, 10), 76285 parseInt(minuteStr, 10), 76286 ]; 76287 76288 if (secondStr) { 76289 result.push(parseInt(secondStr, 10)); 76290 } 76291 76292 return result; 76293 } 76294 76295 function untruncateYear(yearStr) { 76296 var year = parseInt(yearStr, 10); 76297 if (year <= 49) { 76298 return 2000 + year; 76299 } else if (year <= 999) { 76300 return 1900 + year; 76301 } 76302 return year; 76303 } 76304 76305 function preprocessRFC2822(s) { 76306 // Remove comments and folding whitespace and replace multiple-spaces with a single space 76307 return s 76308 .replace(/\([^()]*\)|[\n\t]/g, ' ') 76309 .replace(/(\s\s+)/g, ' ') 76310 .replace(/^\s\s*/, '') 76311 .replace(/\s\s*$/, ''); 76312 } 76313 76314 function checkWeekday(weekdayStr, parsedInput, config) { 76315 if (weekdayStr) { 76316 // TODO: Replace the vanilla JS Date object with an independent day-of-week check. 76317 var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), 76318 weekdayActual = new Date( 76319 parsedInput[0], 76320 parsedInput[1], 76321 parsedInput[2] 76322 ).getDay(); 76323 if (weekdayProvided !== weekdayActual) { 76324 getParsingFlags(config).weekdayMismatch = true; 76325 config._isValid = false; 76326 return false; 76327 } 76328 } 76329 return true; 76330 } 76331 76332 function calculateOffset(obsOffset, militaryOffset, numOffset) { 76333 if (obsOffset) { 76334 return obsOffsets[obsOffset]; 76335 } else if (militaryOffset) { 76336 // the only allowed military tz is Z 76337 return 0; 76338 } else { 76339 var hm = parseInt(numOffset, 10), 76340 m = hm % 100, 76341 h = (hm - m) / 100; 76342 return h * 60 + m; 76343 } 76344 } 76345 76346 // date and time from ref 2822 format 76347 function configFromRFC2822(config) { 76348 var match = rfc2822.exec(preprocessRFC2822(config._i)), 76349 parsedArray; 76350 if (match) { 76351 parsedArray = extractFromRFC2822Strings( 76352 match[4], 76353 match[3], 76354 match[2], 76355 match[5], 76356 match[6], 76357 match[7] 76358 ); 76359 if (!checkWeekday(match[1], parsedArray, config)) { 76360 return; 76361 } 76362 76363 config._a = parsedArray; 76364 config._tzm = calculateOffset(match[8], match[9], match[10]); 76365 76366 config._d = createUTCDate.apply(null, config._a); 76367 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 76368 76369 getParsingFlags(config).rfc2822 = true; 76370 } else { 76371 config._isValid = false; 76372 } 76373 } 76374 76375 // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict 76376 function configFromString(config) { 76377 var matched = aspNetJsonRegex.exec(config._i); 76378 if (matched !== null) { 76379 config._d = new Date(+matched[1]); 76380 return; 76381 } 76382 76383 configFromISO(config); 76384 if (config._isValid === false) { 76385 delete config._isValid; 76386 } else { 76387 return; 76388 } 76389 76390 configFromRFC2822(config); 76391 if (config._isValid === false) { 76392 delete config._isValid; 76393 } else { 76394 return; 76395 } 76396 76397 if (config._strict) { 76398 config._isValid = false; 76399 } else { 76400 // Final attempt, use Input Fallback 76401 hooks.createFromInputFallback(config); 76402 } 76403 } 76404 76405 hooks.createFromInputFallback = deprecate( 76406 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 76407 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 76408 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', 76409 function (config) { 76410 config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); 76411 } 76412 ); 76413 76414 // Pick the first defined of two or three arguments. 76415 function defaults(a, b, c) { 76416 if (a != null) { 76417 return a; 76418 } 76419 if (b != null) { 76420 return b; 76421 } 76422 return c; 76423 } 76424 76425 function currentDateArray(config) { 76426 // hooks is actually the exported moment object 76427 var nowValue = new Date(hooks.now()); 76428 if (config._useUTC) { 76429 return [ 76430 nowValue.getUTCFullYear(), 76431 nowValue.getUTCMonth(), 76432 nowValue.getUTCDate(), 76433 ]; 76434 } 76435 return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; 76436 } 76437 76438 // convert an array to a date. 76439 // the array should mirror the parameters below 76440 // note: all values past the year are optional and will default to the lowest possible value. 76441 // [year, month, day , hour, minute, second, millisecond] 76442 function configFromArray(config) { 76443 var i, 76444 date, 76445 input = [], 76446 currentDate, 76447 expectedWeekday, 76448 yearToUse; 76449 76450 if (config._d) { 76451 return; 76452 } 76453 76454 currentDate = currentDateArray(config); 76455 76456 //compute day of the year from weeks and weekdays 76457 if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { 76458 dayOfYearFromWeekInfo(config); 76459 } 76460 76461 //if the day of the year is set, figure out what it is 76462 if (config._dayOfYear != null) { 76463 yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); 76464 76465 if ( 76466 config._dayOfYear > daysInYear(yearToUse) || 76467 config._dayOfYear === 0 76468 ) { 76469 getParsingFlags(config)._overflowDayOfYear = true; 76470 } 76471 76472 date = createUTCDate(yearToUse, 0, config._dayOfYear); 76473 config._a[MONTH] = date.getUTCMonth(); 76474 config._a[DATE] = date.getUTCDate(); 76475 } 76476 76477 // Default to current date. 76478 // * if no year, month, day of month are given, default to today 76479 // * if day of month is given, default month and year 76480 // * if month is given, default only year 76481 // * if year is given, don't default anything 76482 for (i = 0; i < 3 && config._a[i] == null; ++i) { 76483 config._a[i] = input[i] = currentDate[i]; 76484 } 76485 76486 // Zero out whatever was not defaulted, including time 76487 for (; i < 7; i++) { 76488 config._a[i] = input[i] = 76489 config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; 76490 } 76491 76492 // Check for 24:00:00.000 76493 if ( 76494 config._a[HOUR] === 24 && 76495 config._a[MINUTE] === 0 && 76496 config._a[SECOND] === 0 && 76497 config._a[MILLISECOND] === 0 76498 ) { 76499 config._nextDay = true; 76500 config._a[HOUR] = 0; 76501 } 76502 76503 config._d = (config._useUTC ? createUTCDate : createDate).apply( 76504 null, 76505 input 76506 ); 76507 expectedWeekday = config._useUTC 76508 ? config._d.getUTCDay() 76509 : config._d.getDay(); 76510 76511 // Apply timezone offset from input. The actual utcOffset can be changed 76512 // with parseZone. 76513 if (config._tzm != null) { 76514 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 76515 } 76516 76517 if (config._nextDay) { 76518 config._a[HOUR] = 24; 76519 } 76520 76521 // check for mismatching day of week 76522 if ( 76523 config._w && 76524 typeof config._w.d !== 'undefined' && 76525 config._w.d !== expectedWeekday 76526 ) { 76527 getParsingFlags(config).weekdayMismatch = true; 76528 } 76529 } 76530 76531 function dayOfYearFromWeekInfo(config) { 76532 var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; 76533 76534 w = config._w; 76535 if (w.GG != null || w.W != null || w.E != null) { 76536 dow = 1; 76537 doy = 4; 76538 76539 // TODO: We need to take the current isoWeekYear, but that depends on 76540 // how we interpret now (local, utc, fixed offset). So create 76541 // a now version of current config (take local/utc/offset flags, and 76542 // create now). 76543 weekYear = defaults( 76544 w.GG, 76545 config._a[YEAR], 76546 weekOfYear(createLocal(), 1, 4).year 76547 ); 76548 week = defaults(w.W, 1); 76549 weekday = defaults(w.E, 1); 76550 if (weekday < 1 || weekday > 7) { 76551 weekdayOverflow = true; 76552 } 76553 } else { 76554 dow = config._locale._week.dow; 76555 doy = config._locale._week.doy; 76556 76557 curWeek = weekOfYear(createLocal(), dow, doy); 76558 76559 weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); 76560 76561 // Default to current week. 76562 week = defaults(w.w, curWeek.week); 76563 76564 if (w.d != null) { 76565 // weekday -- low day numbers are considered next week 76566 weekday = w.d; 76567 if (weekday < 0 || weekday > 6) { 76568 weekdayOverflow = true; 76569 } 76570 } else if (w.e != null) { 76571 // local weekday -- counting starts from beginning of week 76572 weekday = w.e + dow; 76573 if (w.e < 0 || w.e > 6) { 76574 weekdayOverflow = true; 76575 } 76576 } else { 76577 // default to beginning of week 76578 weekday = dow; 76579 } 76580 } 76581 if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { 76582 getParsingFlags(config)._overflowWeeks = true; 76583 } else if (weekdayOverflow != null) { 76584 getParsingFlags(config)._overflowWeekday = true; 76585 } else { 76586 temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); 76587 config._a[YEAR] = temp.year; 76588 config._dayOfYear = temp.dayOfYear; 76589 } 76590 } 76591 76592 // constant that refers to the ISO standard 76593 hooks.ISO_8601 = function () {}; 76594 76595 // constant that refers to the RFC 2822 form 76596 hooks.RFC_2822 = function () {}; 76597 76598 // date from string and format string 76599 function configFromStringAndFormat(config) { 76600 // TODO: Move this to another part of the creation flow to prevent circular deps 76601 if (config._f === hooks.ISO_8601) { 76602 configFromISO(config); 76603 return; 76604 } 76605 if (config._f === hooks.RFC_2822) { 76606 configFromRFC2822(config); 76607 return; 76608 } 76609 config._a = []; 76610 getParsingFlags(config).empty = true; 76611 76612 // This array is used to make a Date, either with `new Date` or `Date.UTC` 76613 var string = '' + config._i, 76614 i, 76615 parsedInput, 76616 tokens, 76617 token, 76618 skipped, 76619 stringLength = string.length, 76620 totalParsedInputLength = 0, 76621 era, 76622 tokenLen; 76623 76624 tokens = 76625 expandFormat(config._f, config._locale).match(formattingTokens) || []; 76626 tokenLen = tokens.length; 76627 for (i = 0; i < tokenLen; i++) { 76628 token = tokens[i]; 76629 parsedInput = (string.match(getParseRegexForToken(token, config)) || 76630 [])[0]; 76631 if (parsedInput) { 76632 skipped = string.substr(0, string.indexOf(parsedInput)); 76633 if (skipped.length > 0) { 76634 getParsingFlags(config).unusedInput.push(skipped); 76635 } 76636 string = string.slice( 76637 string.indexOf(parsedInput) + parsedInput.length 76638 ); 76639 totalParsedInputLength += parsedInput.length; 76640 } 76641 // don't parse if it's not a known token 76642 if (formatTokenFunctions[token]) { 76643 if (parsedInput) { 76644 getParsingFlags(config).empty = false; 76645 } else { 76646 getParsingFlags(config).unusedTokens.push(token); 76647 } 76648 addTimeToArrayFromToken(token, parsedInput, config); 76649 } else if (config._strict && !parsedInput) { 76650 getParsingFlags(config).unusedTokens.push(token); 76651 } 76652 } 76653 76654 // add remaining unparsed input length to the string 76655 getParsingFlags(config).charsLeftOver = 76656 stringLength - totalParsedInputLength; 76657 if (string.length > 0) { 76658 getParsingFlags(config).unusedInput.push(string); 76659 } 76660 76661 // clear _12h flag if hour is <= 12 76662 if ( 76663 config._a[HOUR] <= 12 && 76664 getParsingFlags(config).bigHour === true && 76665 config._a[HOUR] > 0 76666 ) { 76667 getParsingFlags(config).bigHour = undefined; 76668 } 76669 76670 getParsingFlags(config).parsedDateParts = config._a.slice(0); 76671 getParsingFlags(config).meridiem = config._meridiem; 76672 // handle meridiem 76673 config._a[HOUR] = meridiemFixWrap( 76674 config._locale, 76675 config._a[HOUR], 76676 config._meridiem 76677 ); 76678 76679 // handle era 76680 era = getParsingFlags(config).era; 76681 if (era !== null) { 76682 config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); 76683 } 76684 76685 configFromArray(config); 76686 checkOverflow(config); 76687 } 76688 76689 function meridiemFixWrap(locale, hour, meridiem) { 76690 var isPm; 76691 76692 if (meridiem == null) { 76693 // nothing to do 76694 return hour; 76695 } 76696 if (locale.meridiemHour != null) { 76697 return locale.meridiemHour(hour, meridiem); 76698 } else if (locale.isPM != null) { 76699 // Fallback 76700 isPm = locale.isPM(meridiem); 76701 if (isPm && hour < 12) { 76702 hour += 12; 76703 } 76704 if (!isPm && hour === 12) { 76705 hour = 0; 76706 } 76707 return hour; 76708 } else { 76709 // this is not supposed to happen 76710 return hour; 76711 } 76712 } 76713 76714 // date from string and array of format strings 76715 function configFromStringAndArray(config) { 76716 var tempConfig, 76717 bestMoment, 76718 scoreToBeat, 76719 i, 76720 currentScore, 76721 validFormatFound, 76722 bestFormatIsValid = false, 76723 configfLen = config._f.length; 76724 76725 if (configfLen === 0) { 76726 getParsingFlags(config).invalidFormat = true; 76727 config._d = new Date(NaN); 76728 return; 76729 } 76730 76731 for (i = 0; i < configfLen; i++) { 76732 currentScore = 0; 76733 validFormatFound = false; 76734 tempConfig = copyConfig({}, config); 76735 if (config._useUTC != null) { 76736 tempConfig._useUTC = config._useUTC; 76737 } 76738 tempConfig._f = config._f[i]; 76739 configFromStringAndFormat(tempConfig); 76740 76741 if (isValid(tempConfig)) { 76742 validFormatFound = true; 76743 } 76744 76745 // if there is any input that was not parsed add a penalty for that format 76746 currentScore += getParsingFlags(tempConfig).charsLeftOver; 76747 76748 //or tokens 76749 currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; 76750 76751 getParsingFlags(tempConfig).score = currentScore; 76752 76753 if (!bestFormatIsValid) { 76754 if ( 76755 scoreToBeat == null || 76756 currentScore < scoreToBeat || 76757 validFormatFound 76758 ) { 76759 scoreToBeat = currentScore; 76760 bestMoment = tempConfig; 76761 if (validFormatFound) { 76762 bestFormatIsValid = true; 76763 } 76764 } 76765 } else { 76766 if (currentScore < scoreToBeat) { 76767 scoreToBeat = currentScore; 76768 bestMoment = tempConfig; 76769 } 76770 } 76771 } 76772 76773 extend(config, bestMoment || tempConfig); 76774 } 76775 76776 function configFromObject(config) { 76777 if (config._d) { 76778 return; 76779 } 76780 76781 var i = normalizeObjectUnits(config._i), 76782 dayOrDate = i.day === undefined ? i.date : i.day; 76783 config._a = map( 76784 [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], 76785 function (obj) { 76786 return obj && parseInt(obj, 10); 76787 } 76788 ); 76789 76790 configFromArray(config); 76791 } 76792 76793 function createFromConfig(config) { 76794 var res = new Moment(checkOverflow(prepareConfig(config))); 76795 if (res._nextDay) { 76796 // Adding is smart enough around DST 76797 res.add(1, 'd'); 76798 res._nextDay = undefined; 76799 } 76800 76801 return res; 76802 } 76803 76804 function prepareConfig(config) { 76805 var input = config._i, 76806 format = config._f; 76807 76808 config._locale = config._locale || getLocale(config._l); 76809 76810 if (input === null || (format === undefined && input === '')) { 76811 return createInvalid({ nullInput: true }); 76812 } 76813 76814 if (typeof input === 'string') { 76815 config._i = input = config._locale.preparse(input); 76816 } 76817 76818 if (isMoment(input)) { 76819 return new Moment(checkOverflow(input)); 76820 } else if (isDate(input)) { 76821 config._d = input; 76822 } else if (isArray(format)) { 76823 configFromStringAndArray(config); 76824 } else if (format) { 76825 configFromStringAndFormat(config); 76826 } else { 76827 configFromInput(config); 76828 } 76829 76830 if (!isValid(config)) { 76831 config._d = null; 76832 } 76833 76834 return config; 76835 } 76836 76837 function configFromInput(config) { 76838 var input = config._i; 76839 if (isUndefined(input)) { 76840 config._d = new Date(hooks.now()); 76841 } else if (isDate(input)) { 76842 config._d = new Date(input.valueOf()); 76843 } else if (typeof input === 'string') { 76844 configFromString(config); 76845 } else if (isArray(input)) { 76846 config._a = map(input.slice(0), function (obj) { 76847 return parseInt(obj, 10); 76848 }); 76849 configFromArray(config); 76850 } else if (isObject(input)) { 76851 configFromObject(config); 76852 } else if (isNumber(input)) { 76853 // from milliseconds 76854 config._d = new Date(input); 76855 } else { 76856 hooks.createFromInputFallback(config); 76857 } 76858 } 76859 76860 function createLocalOrUTC(input, format, locale, strict, isUTC) { 76861 var c = {}; 76862 76863 if (format === true || format === false) { 76864 strict = format; 76865 format = undefined; 76866 } 76867 76868 if (locale === true || locale === false) { 76869 strict = locale; 76870 locale = undefined; 76871 } 76872 76873 if ( 76874 (isObject(input) && isObjectEmpty(input)) || 76875 (isArray(input) && input.length === 0) 76876 ) { 76877 input = undefined; 76878 } 76879 // object construction must be done this way. 76880 // https://github.com/moment/moment/issues/1423 76881 c._isAMomentObject = true; 76882 c._useUTC = c._isUTC = isUTC; 76883 c._l = locale; 76884 c._i = input; 76885 c._f = format; 76886 c._strict = strict; 76887 76888 return createFromConfig(c); 76889 } 76890 76891 function createLocal(input, format, locale, strict) { 76892 return createLocalOrUTC(input, format, locale, strict, false); 76893 } 76894 76895 var prototypeMin = deprecate( 76896 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', 76897 function () { 76898 var other = createLocal.apply(null, arguments); 76899 if (this.isValid() && other.isValid()) { 76900 return other < this ? this : other; 76901 } else { 76902 return createInvalid(); 76903 } 76904 } 76905 ), 76906 prototypeMax = deprecate( 76907 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', 76908 function () { 76909 var other = createLocal.apply(null, arguments); 76910 if (this.isValid() && other.isValid()) { 76911 return other > this ? this : other; 76912 } else { 76913 return createInvalid(); 76914 } 76915 } 76916 ); 76917 76918 // Pick a moment m from moments so that m[fn](other) is true for all 76919 // other. This relies on the function fn to be transitive. 76920 // 76921 // moments should either be an array of moment objects or an array, whose 76922 // first element is an array of moment objects. 76923 function pickBy(fn, moments) { 76924 var res, i; 76925 if (moments.length === 1 && isArray(moments[0])) { 76926 moments = moments[0]; 76927 } 76928 if (!moments.length) { 76929 return createLocal(); 76930 } 76931 res = moments[0]; 76932 for (i = 1; i < moments.length; ++i) { 76933 if (!moments[i].isValid() || moments[i][fn](res)) { 76934 res = moments[i]; 76935 } 76936 } 76937 return res; 76938 } 76939 76940 // TODO: Use [].sort instead? 76941 function min() { 76942 var args = [].slice.call(arguments, 0); 76943 76944 return pickBy('isBefore', args); 76945 } 76946 76947 function max() { 76948 var args = [].slice.call(arguments, 0); 76949 76950 return pickBy('isAfter', args); 76951 } 76952 76953 var now = function () { 76954 return Date.now ? Date.now() : +new Date(); 76955 }; 76956 76957 var ordering = [ 76958 'year', 76959 'quarter', 76960 'month', 76961 'week', 76962 'day', 76963 'hour', 76964 'minute', 76965 'second', 76966 'millisecond', 76967 ]; 76968 76969 function isDurationValid(m) { 76970 var key, 76971 unitHasDecimal = false, 76972 i, 76973 orderLen = ordering.length; 76974 for (key in m) { 76975 if ( 76976 hasOwnProp(m, key) && 76977 !( 76978 indexOf.call(ordering, key) !== -1 && 76979 (m[key] == null || !isNaN(m[key])) 76980 ) 76981 ) { 76982 return false; 76983 } 76984 } 76985 76986 for (i = 0; i < orderLen; ++i) { 76987 if (m[ordering[i]]) { 76988 if (unitHasDecimal) { 76989 return false; // only allow non-integers for smallest unit 76990 } 76991 if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { 76992 unitHasDecimal = true; 76993 } 76994 } 76995 } 76996 76997 return true; 76998 } 76999 77000 function isValid$1() { 77001 return this._isValid; 77002 } 77003 77004 function createInvalid$1() { 77005 return createDuration(NaN); 77006 } 77007 77008 function Duration(duration) { 77009 var normalizedInput = normalizeObjectUnits(duration), 77010 years = normalizedInput.year || 0, 77011 quarters = normalizedInput.quarter || 0, 77012 months = normalizedInput.month || 0, 77013 weeks = normalizedInput.week || normalizedInput.isoWeek || 0, 77014 days = normalizedInput.day || 0, 77015 hours = normalizedInput.hour || 0, 77016 minutes = normalizedInput.minute || 0, 77017 seconds = normalizedInput.second || 0, 77018 milliseconds = normalizedInput.millisecond || 0; 77019 77020 this._isValid = isDurationValid(normalizedInput); 77021 77022 // representation for dateAddRemove 77023 this._milliseconds = 77024 +milliseconds + 77025 seconds * 1e3 + // 1000 77026 minutes * 6e4 + // 1000 * 60 77027 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 77028 // Because of dateAddRemove treats 24 hours as different from a 77029 // day when working around DST, we need to store them separately 77030 this._days = +days + weeks * 7; 77031 // It is impossible to translate months into days without knowing 77032 // which months you are are talking about, so we have to store 77033 // it separately. 77034 this._months = +months + quarters * 3 + years * 12; 77035 77036 this._data = {}; 77037 77038 this._locale = getLocale(); 77039 77040 this._bubble(); 77041 } 77042 77043 function isDuration(obj) { 77044 return obj instanceof Duration; 77045 } 77046 77047 function absRound(number) { 77048 if (number < 0) { 77049 return Math.round(-1 * number) * -1; 77050 } else { 77051 return Math.round(number); 77052 } 77053 } 77054 77055 // compare two arrays, return the number of differences 77056 function compareArrays(array1, array2, dontConvert) { 77057 var len = Math.min(array1.length, array2.length), 77058 lengthDiff = Math.abs(array1.length - array2.length), 77059 diffs = 0, 77060 i; 77061 for (i = 0; i < len; i++) { 77062 if ( 77063 (dontConvert && array1[i] !== array2[i]) || 77064 (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) 77065 ) { 77066 diffs++; 77067 } 77068 } 77069 return diffs + lengthDiff; 77070 } 77071 77072 // FORMATTING 77073 77074 function offset(token, separator) { 77075 addFormatToken(token, 0, 0, function () { 77076 var offset = this.utcOffset(), 77077 sign = '+'; 77078 if (offset < 0) { 77079 offset = -offset; 77080 sign = '-'; 77081 } 77082 return ( 77083 sign + 77084 zeroFill(~~(offset / 60), 2) + 77085 separator + 77086 zeroFill(~~offset % 60, 2) 77087 ); 77088 }); 77089 } 77090 77091 offset('Z', ':'); 77092 offset('ZZ', ''); 77093 77094 // PARSING 77095 77096 addRegexToken('Z', matchShortOffset); 77097 addRegexToken('ZZ', matchShortOffset); 77098 addParseToken(['Z', 'ZZ'], function (input, array, config) { 77099 config._useUTC = true; 77100 config._tzm = offsetFromString(matchShortOffset, input); 77101 }); 77102 77103 // HELPERS 77104 77105 // timezone chunker 77106 // '+10:00' > ['10', '00'] 77107 // '-1530' > ['-15', '30'] 77108 var chunkOffset = /([\+\-]|\d\d)/gi; 77109 77110 function offsetFromString(matcher, string) { 77111 var matches = (string || '').match(matcher), 77112 chunk, 77113 parts, 77114 minutes; 77115 77116 if (matches === null) { 77117 return null; 77118 } 77119 77120 chunk = matches[matches.length - 1] || []; 77121 parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; 77122 minutes = +(parts[1] * 60) + toInt(parts[2]); 77123 77124 return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; 77125 } 77126 77127 // Return a moment from input, that is local/utc/zone equivalent to model. 77128 function cloneWithOffset(input, model) { 77129 var res, diff; 77130 if (model._isUTC) { 77131 res = model.clone(); 77132 diff = 77133 (isMoment(input) || isDate(input) 77134 ? input.valueOf() 77135 : createLocal(input).valueOf()) - res.valueOf(); 77136 // Use low-level api, because this fn is low-level api. 77137 res._d.setTime(res._d.valueOf() + diff); 77138 hooks.updateOffset(res, false); 77139 return res; 77140 } else { 77141 return createLocal(input).local(); 77142 } 77143 } 77144 77145 function getDateOffset(m) { 77146 // On Firefox.24 Date#getTimezoneOffset returns a floating point. 77147 // https://github.com/moment/moment/pull/1871 77148 return -Math.round(m._d.getTimezoneOffset()); 77149 } 77150 77151 // HOOKS 77152 77153 // This function will be called whenever a moment is mutated. 77154 // It is intended to keep the offset in sync with the timezone. 77155 hooks.updateOffset = function () {}; 77156 77157 // MOMENTS 77158 77159 // keepLocalTime = true means only change the timezone, without 77160 // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> 77161 // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset 77162 // +0200, so we adjust the time as needed, to be valid. 77163 // 77164 // Keeping the time actually adds/subtracts (one hour) 77165 // from the actual represented time. That is why we call updateOffset 77166 // a second time. In case it wants us to change the offset again 77167 // _changeInProgress == true case, then we have to adjust, because 77168 // there is no such time in the given timezone. 77169 function getSetOffset(input, keepLocalTime, keepMinutes) { 77170 var offset = this._offset || 0, 77171 localAdjust; 77172 if (!this.isValid()) { 77173 return input != null ? this : NaN; 77174 } 77175 if (input != null) { 77176 if (typeof input === 'string') { 77177 input = offsetFromString(matchShortOffset, input); 77178 if (input === null) { 77179 return this; 77180 } 77181 } else if (Math.abs(input) < 16 && !keepMinutes) { 77182 input = input * 60; 77183 } 77184 if (!this._isUTC && keepLocalTime) { 77185 localAdjust = getDateOffset(this); 77186 } 77187 this._offset = input; 77188 this._isUTC = true; 77189 if (localAdjust != null) { 77190 this.add(localAdjust, 'm'); 77191 } 77192 if (offset !== input) { 77193 if (!keepLocalTime || this._changeInProgress) { 77194 addSubtract( 77195 this, 77196 createDuration(input - offset, 'm'), 77197 1, 77198 false 77199 ); 77200 } else if (!this._changeInProgress) { 77201 this._changeInProgress = true; 77202 hooks.updateOffset(this, true); 77203 this._changeInProgress = null; 77204 } 77205 } 77206 return this; 77207 } else { 77208 return this._isUTC ? offset : getDateOffset(this); 77209 } 77210 } 77211 77212 function getSetZone(input, keepLocalTime) { 77213 if (input != null) { 77214 if (typeof input !== 'string') { 77215 input = -input; 77216 } 77217 77218 this.utcOffset(input, keepLocalTime); 77219 77220 return this; 77221 } else { 77222 return -this.utcOffset(); 77223 } 77224 } 77225 77226 function setOffsetToUTC(keepLocalTime) { 77227 return this.utcOffset(0, keepLocalTime); 77228 } 77229 77230 function setOffsetToLocal(keepLocalTime) { 77231 if (this._isUTC) { 77232 this.utcOffset(0, keepLocalTime); 77233 this._isUTC = false; 77234 77235 if (keepLocalTime) { 77236 this.subtract(getDateOffset(this), 'm'); 77237 } 77238 } 77239 return this; 77240 } 77241 77242 function setOffsetToParsedOffset() { 77243 if (this._tzm != null) { 77244 this.utcOffset(this._tzm, false, true); 77245 } else if (typeof this._i === 'string') { 77246 var tZone = offsetFromString(matchOffset, this._i); 77247 if (tZone != null) { 77248 this.utcOffset(tZone); 77249 } else { 77250 this.utcOffset(0, true); 77251 } 77252 } 77253 return this; 77254 } 77255 77256 function hasAlignedHourOffset(input) { 77257 if (!this.isValid()) { 77258 return false; 77259 } 77260 input = input ? createLocal(input).utcOffset() : 0; 77261 77262 return (this.utcOffset() - input) % 60 === 0; 77263 } 77264 77265 function isDaylightSavingTime() { 77266 return ( 77267 this.utcOffset() > this.clone().month(0).utcOffset() || 77268 this.utcOffset() > this.clone().month(5).utcOffset() 77269 ); 77270 } 77271 77272 function isDaylightSavingTimeShifted() { 77273 if (!isUndefined(this._isDSTShifted)) { 77274 return this._isDSTShifted; 77275 } 77276 77277 var c = {}, 77278 other; 77279 77280 copyConfig(c, this); 77281 c = prepareConfig(c); 77282 77283 if (c._a) { 77284 other = c._isUTC ? createUTC(c._a) : createLocal(c._a); 77285 this._isDSTShifted = 77286 this.isValid() && compareArrays(c._a, other.toArray()) > 0; 77287 } else { 77288 this._isDSTShifted = false; 77289 } 77290 77291 return this._isDSTShifted; 77292 } 77293 77294 function isLocal() { 77295 return this.isValid() ? !this._isUTC : false; 77296 } 77297 77298 function isUtcOffset() { 77299 return this.isValid() ? this._isUTC : false; 77300 } 77301 77302 function isUtc() { 77303 return this.isValid() ? this._isUTC && this._offset === 0 : false; 77304 } 77305 77306 // ASP.NET json date format regex 77307 var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, 77308 // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html 77309 // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere 77310 // and further modified to allow for strings containing both week and day 77311 isoRegex = 77312 /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; 77313 77314 function createDuration(input, key) { 77315 var duration = input, 77316 // matching against regexp is expensive, do it on demand 77317 match = null, 77318 sign, 77319 ret, 77320 diffRes; 77321 77322 if (isDuration(input)) { 77323 duration = { 77324 ms: input._milliseconds, 77325 d: input._days, 77326 M: input._months, 77327 }; 77328 } else if (isNumber(input) || !isNaN(+input)) { 77329 duration = {}; 77330 if (key) { 77331 duration[key] = +input; 77332 } else { 77333 duration.milliseconds = +input; 77334 } 77335 } else if ((match = aspNetRegex.exec(input))) { 77336 sign = match[1] === '-' ? -1 : 1; 77337 duration = { 77338 y: 0, 77339 d: toInt(match[DATE]) * sign, 77340 h: toInt(match[HOUR]) * sign, 77341 m: toInt(match[MINUTE]) * sign, 77342 s: toInt(match[SECOND]) * sign, 77343 ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match 77344 }; 77345 } else if ((match = isoRegex.exec(input))) { 77346 sign = match[1] === '-' ? -1 : 1; 77347 duration = { 77348 y: parseIso(match[2], sign), 77349 M: parseIso(match[3], sign), 77350 w: parseIso(match[4], sign), 77351 d: parseIso(match[5], sign), 77352 h: parseIso(match[6], sign), 77353 m: parseIso(match[7], sign), 77354 s: parseIso(match[8], sign), 77355 }; 77356 } else if (duration == null) { 77357 // checks for null or undefined 77358 duration = {}; 77359 } else if ( 77360 typeof duration === 'object' && 77361 ('from' in duration || 'to' in duration) 77362 ) { 77363 diffRes = momentsDifference( 77364 createLocal(duration.from), 77365 createLocal(duration.to) 77366 ); 77367 77368 duration = {}; 77369 duration.ms = diffRes.milliseconds; 77370 duration.M = diffRes.months; 77371 } 77372 77373 ret = new Duration(duration); 77374 77375 if (isDuration(input) && hasOwnProp(input, '_locale')) { 77376 ret._locale = input._locale; 77377 } 77378 77379 if (isDuration(input) && hasOwnProp(input, '_isValid')) { 77380 ret._isValid = input._isValid; 77381 } 77382 77383 return ret; 77384 } 77385 77386 createDuration.fn = Duration.prototype; 77387 createDuration.invalid = createInvalid$1; 77388 77389 function parseIso(inp, sign) { 77390 // We'd normally use ~~inp for this, but unfortunately it also 77391 // converts floats to ints. 77392 // inp may be undefined, so careful calling replace on it. 77393 var res = inp && parseFloat(inp.replace(',', '.')); 77394 // apply sign while we're at it 77395 return (isNaN(res) ? 0 : res) * sign; 77396 } 77397 77398 function positiveMomentsDifference(base, other) { 77399 var res = {}; 77400 77401 res.months = 77402 other.month() - base.month() + (other.year() - base.year()) * 12; 77403 if (base.clone().add(res.months, 'M').isAfter(other)) { 77404 --res.months; 77405 } 77406 77407 res.milliseconds = +other - +base.clone().add(res.months, 'M'); 77408 77409 return res; 77410 } 77411 77412 function momentsDifference(base, other) { 77413 var res; 77414 if (!(base.isValid() && other.isValid())) { 77415 return { milliseconds: 0, months: 0 }; 77416 } 77417 77418 other = cloneWithOffset(other, base); 77419 if (base.isBefore(other)) { 77420 res = positiveMomentsDifference(base, other); 77421 } else { 77422 res = positiveMomentsDifference(other, base); 77423 res.milliseconds = -res.milliseconds; 77424 res.months = -res.months; 77425 } 77426 77427 return res; 77428 } 77429 77430 // TODO: remove 'name' arg after deprecation is removed 77431 function createAdder(direction, name) { 77432 return function (val, period) { 77433 var dur, tmp; 77434 //invert the arguments, but complain about it 77435 if (period !== null && !isNaN(+period)) { 77436 deprecateSimple( 77437 name, 77438 'moment().' + 77439 name + 77440 '(period, number) is deprecated. Please use moment().' + 77441 name + 77442 '(number, period). ' + 77443 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' 77444 ); 77445 tmp = val; 77446 val = period; 77447 period = tmp; 77448 } 77449 77450 dur = createDuration(val, period); 77451 addSubtract(this, dur, direction); 77452 return this; 77453 }; 77454 } 77455 77456 function addSubtract(mom, duration, isAdding, updateOffset) { 77457 var milliseconds = duration._milliseconds, 77458 days = absRound(duration._days), 77459 months = absRound(duration._months); 77460 77461 if (!mom.isValid()) { 77462 // No op 77463 return; 77464 } 77465 77466 updateOffset = updateOffset == null ? true : updateOffset; 77467 77468 if (months) { 77469 setMonth(mom, get(mom, 'Month') + months * isAdding); 77470 } 77471 if (days) { 77472 set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); 77473 } 77474 if (milliseconds) { 77475 mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); 77476 } 77477 if (updateOffset) { 77478 hooks.updateOffset(mom, days || months); 77479 } 77480 } 77481 77482 var add = createAdder(1, 'add'), 77483 subtract = createAdder(-1, 'subtract'); 77484 77485 function isString(input) { 77486 return typeof input === 'string' || input instanceof String; 77487 } 77488 77489 // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined 77490 function isMomentInput(input) { 77491 return ( 77492 isMoment(input) || 77493 isDate(input) || 77494 isString(input) || 77495 isNumber(input) || 77496 isNumberOrStringArray(input) || 77497 isMomentInputObject(input) || 77498 input === null || 77499 input === undefined 77500 ); 77501 } 77502 77503 function isMomentInputObject(input) { 77504 var objectTest = isObject(input) && !isObjectEmpty(input), 77505 propertyTest = false, 77506 properties = [ 77507 'years', 77508 'year', 77509 'y', 77510 'months', 77511 'month', 77512 'M', 77513 'days', 77514 'day', 77515 'd', 77516 'dates', 77517 'date', 77518 'D', 77519 'hours', 77520 'hour', 77521 'h', 77522 'minutes', 77523 'minute', 77524 'm', 77525 'seconds', 77526 'second', 77527 's', 77528 'milliseconds', 77529 'millisecond', 77530 'ms', 77531 ], 77532 i, 77533 property, 77534 propertyLen = properties.length; 77535 77536 for (i = 0; i < propertyLen; i += 1) { 77537 property = properties[i]; 77538 propertyTest = propertyTest || hasOwnProp(input, property); 77539 } 77540 77541 return objectTest && propertyTest; 77542 } 77543 77544 function isNumberOrStringArray(input) { 77545 var arrayTest = isArray(input), 77546 dataTypeTest = false; 77547 if (arrayTest) { 77548 dataTypeTest = 77549 input.filter(function (item) { 77550 return !isNumber(item) && isString(input); 77551 }).length === 0; 77552 } 77553 return arrayTest && dataTypeTest; 77554 } 77555 77556 function isCalendarSpec(input) { 77557 var objectTest = isObject(input) && !isObjectEmpty(input), 77558 propertyTest = false, 77559 properties = [ 77560 'sameDay', 77561 'nextDay', 77562 'lastDay', 77563 'nextWeek', 77564 'lastWeek', 77565 'sameElse', 77566 ], 77567 i, 77568 property; 77569 77570 for (i = 0; i < properties.length; i += 1) { 77571 property = properties[i]; 77572 propertyTest = propertyTest || hasOwnProp(input, property); 77573 } 77574 77575 return objectTest && propertyTest; 77576 } 77577 77578 function getCalendarFormat(myMoment, now) { 77579 var diff = myMoment.diff(now, 'days', true); 77580 return diff < -6 77581 ? 'sameElse' 77582 : diff < -1 77583 ? 'lastWeek' 77584 : diff < 0 77585 ? 'lastDay' 77586 : diff < 1 77587 ? 'sameDay' 77588 : diff < 2 77589 ? 'nextDay' 77590 : diff < 7 77591 ? 'nextWeek' 77592 : 'sameElse'; 77593 } 77594 77595 function calendar$1(time, formats) { 77596 // Support for single parameter, formats only overload to the calendar function 77597 if (arguments.length === 1) { 77598 if (!arguments[0]) { 77599 time = undefined; 77600 formats = undefined; 77601 } else if (isMomentInput(arguments[0])) { 77602 time = arguments[0]; 77603 formats = undefined; 77604 } else if (isCalendarSpec(arguments[0])) { 77605 formats = arguments[0]; 77606 time = undefined; 77607 } 77608 } 77609 // We want to compare the start of today, vs this. 77610 // Getting start-of-today depends on whether we're local/utc/offset or not. 77611 var now = time || createLocal(), 77612 sod = cloneWithOffset(now, this).startOf('day'), 77613 format = hooks.calendarFormat(this, sod) || 'sameElse', 77614 output = 77615 formats && 77616 (isFunction(formats[format]) 77617 ? formats[format].call(this, now) 77618 : formats[format]); 77619 77620 return this.format( 77621 output || this.localeData().calendar(format, this, createLocal(now)) 77622 ); 77623 } 77624 77625 function clone() { 77626 return new Moment(this); 77627 } 77628 77629 function isAfter(input, units) { 77630 var localInput = isMoment(input) ? input : createLocal(input); 77631 if (!(this.isValid() && localInput.isValid())) { 77632 return false; 77633 } 77634 units = normalizeUnits(units) || 'millisecond'; 77635 if (units === 'millisecond') { 77636 return this.valueOf() > localInput.valueOf(); 77637 } else { 77638 return localInput.valueOf() < this.clone().startOf(units).valueOf(); 77639 } 77640 } 77641 77642 function isBefore(input, units) { 77643 var localInput = isMoment(input) ? input : createLocal(input); 77644 if (!(this.isValid() && localInput.isValid())) { 77645 return false; 77646 } 77647 units = normalizeUnits(units) || 'millisecond'; 77648 if (units === 'millisecond') { 77649 return this.valueOf() < localInput.valueOf(); 77650 } else { 77651 return this.clone().endOf(units).valueOf() < localInput.valueOf(); 77652 } 77653 } 77654 77655 function isBetween(from, to, units, inclusivity) { 77656 var localFrom = isMoment(from) ? from : createLocal(from), 77657 localTo = isMoment(to) ? to : createLocal(to); 77658 if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { 77659 return false; 77660 } 77661 inclusivity = inclusivity || '()'; 77662 return ( 77663 (inclusivity[0] === '(' 77664 ? this.isAfter(localFrom, units) 77665 : !this.isBefore(localFrom, units)) && 77666 (inclusivity[1] === ')' 77667 ? this.isBefore(localTo, units) 77668 : !this.isAfter(localTo, units)) 77669 ); 77670 } 77671 77672 function isSame(input, units) { 77673 var localInput = isMoment(input) ? input : createLocal(input), 77674 inputMs; 77675 if (!(this.isValid() && localInput.isValid())) { 77676 return false; 77677 } 77678 units = normalizeUnits(units) || 'millisecond'; 77679 if (units === 'millisecond') { 77680 return this.valueOf() === localInput.valueOf(); 77681 } else { 77682 inputMs = localInput.valueOf(); 77683 return ( 77684 this.clone().startOf(units).valueOf() <= inputMs && 77685 inputMs <= this.clone().endOf(units).valueOf() 77686 ); 77687 } 77688 } 77689 77690 function isSameOrAfter(input, units) { 77691 return this.isSame(input, units) || this.isAfter(input, units); 77692 } 77693 77694 function isSameOrBefore(input, units) { 77695 return this.isSame(input, units) || this.isBefore(input, units); 77696 } 77697 77698 function diff(input, units, asFloat) { 77699 var that, zoneDelta, output; 77700 77701 if (!this.isValid()) { 77702 return NaN; 77703 } 77704 77705 that = cloneWithOffset(input, this); 77706 77707 if (!that.isValid()) { 77708 return NaN; 77709 } 77710 77711 zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; 77712 77713 units = normalizeUnits(units); 77714 77715 switch (units) { 77716 case 'year': 77717 output = monthDiff(this, that) / 12; 77718 break; 77719 case 'month': 77720 output = monthDiff(this, that); 77721 break; 77722 case 'quarter': 77723 output = monthDiff(this, that) / 3; 77724 break; 77725 case 'second': 77726 output = (this - that) / 1e3; 77727 break; // 1000 77728 case 'minute': 77729 output = (this - that) / 6e4; 77730 break; // 1000 * 60 77731 case 'hour': 77732 output = (this - that) / 36e5; 77733 break; // 1000 * 60 * 60 77734 case 'day': 77735 output = (this - that - zoneDelta) / 864e5; 77736 break; // 1000 * 60 * 60 * 24, negate dst 77737 case 'week': 77738 output = (this - that - zoneDelta) / 6048e5; 77739 break; // 1000 * 60 * 60 * 24 * 7, negate dst 77740 default: 77741 output = this - that; 77742 } 77743 77744 return asFloat ? output : absFloor(output); 77745 } 77746 77747 function monthDiff(a, b) { 77748 if (a.date() < b.date()) { 77749 // end-of-month calculations work correct when the start month has more 77750 // days than the end month. 77751 return -monthDiff(b, a); 77752 } 77753 // difference in months 77754 var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), 77755 // b is in (anchor - 1 month, anchor + 1 month) 77756 anchor = a.clone().add(wholeMonthDiff, 'months'), 77757 anchor2, 77758 adjust; 77759 77760 if (b - anchor < 0) { 77761 anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); 77762 // linear across the month 77763 adjust = (b - anchor) / (anchor - anchor2); 77764 } else { 77765 anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); 77766 // linear across the month 77767 adjust = (b - anchor) / (anchor2 - anchor); 77768 } 77769 77770 //check for negative zero, return zero if negative zero 77771 return -(wholeMonthDiff + adjust) || 0; 77772 } 77773 77774 hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; 77775 hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; 77776 77777 function toString() { 77778 return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); 77779 } 77780 77781 function toISOString(keepOffset) { 77782 if (!this.isValid()) { 77783 return null; 77784 } 77785 var utc = keepOffset !== true, 77786 m = utc ? this.clone().utc() : this; 77787 if (m.year() < 0 || m.year() > 9999) { 77788 return formatMoment( 77789 m, 77790 utc 77791 ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' 77792 : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' 77793 ); 77794 } 77795 if (isFunction(Date.prototype.toISOString)) { 77796 // native implementation is ~50x faster, use it when we can 77797 if (utc) { 77798 return this.toDate().toISOString(); 77799 } else { 77800 return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) 77801 .toISOString() 77802 .replace('Z', formatMoment(m, 'Z')); 77803 } 77804 } 77805 return formatMoment( 77806 m, 77807 utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' 77808 ); 77809 } 77810 77811 /** 77812 * Return a human readable representation of a moment that can 77813 * also be evaluated to get a new moment which is the same 77814 * 77815 * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects 77816 */ 77817 function inspect() { 77818 if (!this.isValid()) { 77819 return 'moment.invalid(/* ' + this._i + ' */)'; 77820 } 77821 var func = 'moment', 77822 zone = '', 77823 prefix, 77824 year, 77825 datetime, 77826 suffix; 77827 if (!this.isLocal()) { 77828 func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; 77829 zone = 'Z'; 77830 } 77831 prefix = '[' + func + '("]'; 77832 year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; 77833 datetime = '-MM-DD[T]HH:mm:ss.SSS'; 77834 suffix = zone + '[")]'; 77835 77836 return this.format(prefix + year + datetime + suffix); 77837 } 77838 77839 function format(inputString) { 77840 if (!inputString) { 77841 inputString = this.isUtc() 77842 ? hooks.defaultFormatUtc 77843 : hooks.defaultFormat; 77844 } 77845 var output = formatMoment(this, inputString); 77846 return this.localeData().postformat(output); 77847 } 77848 77849 function from(time, withoutSuffix) { 77850 if ( 77851 this.isValid() && 77852 ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) 77853 ) { 77854 return createDuration({ to: this, from: time }) 77855 .locale(this.locale()) 77856 .humanize(!withoutSuffix); 77857 } else { 77858 return this.localeData().invalidDate(); 77859 } 77860 } 77861 77862 function fromNow(withoutSuffix) { 77863 return this.from(createLocal(), withoutSuffix); 77864 } 77865 77866 function to(time, withoutSuffix) { 77867 if ( 77868 this.isValid() && 77869 ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) 77870 ) { 77871 return createDuration({ from: this, to: time }) 77872 .locale(this.locale()) 77873 .humanize(!withoutSuffix); 77874 } else { 77875 return this.localeData().invalidDate(); 77876 } 77877 } 77878 77879 function toNow(withoutSuffix) { 77880 return this.to(createLocal(), withoutSuffix); 77881 } 77882 77883 // If passed a locale key, it will set the locale for this 77884 // instance. Otherwise, it will return the locale configuration 77885 // variables for this instance. 77886 function locale(key) { 77887 var newLocaleData; 77888 77889 if (key === undefined) { 77890 return this._locale._abbr; 77891 } else { 77892 newLocaleData = getLocale(key); 77893 if (newLocaleData != null) { 77894 this._locale = newLocaleData; 77895 } 77896 return this; 77897 } 77898 } 77899 77900 var lang = deprecate( 77901 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', 77902 function (key) { 77903 if (key === undefined) { 77904 return this.localeData(); 77905 } else { 77906 return this.locale(key); 77907 } 77908 } 77909 ); 77910 77911 function localeData() { 77912 return this._locale; 77913 } 77914 77915 var MS_PER_SECOND = 1000, 77916 MS_PER_MINUTE = 60 * MS_PER_SECOND, 77917 MS_PER_HOUR = 60 * MS_PER_MINUTE, 77918 MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; 77919 77920 // actual modulo - handles negative numbers (for dates before 1970): 77921 function mod$1(dividend, divisor) { 77922 return ((dividend % divisor) + divisor) % divisor; 77923 } 77924 77925 function localStartOfDate(y, m, d) { 77926 // the date constructor remaps years 0-99 to 1900-1999 77927 if (y < 100 && y >= 0) { 77928 // preserve leap years using a full 400 year cycle, then reset 77929 return new Date(y + 400, m, d) - MS_PER_400_YEARS; 77930 } else { 77931 return new Date(y, m, d).valueOf(); 77932 } 77933 } 77934 77935 function utcStartOfDate(y, m, d) { 77936 // Date.UTC remaps years 0-99 to 1900-1999 77937 if (y < 100 && y >= 0) { 77938 // preserve leap years using a full 400 year cycle, then reset 77939 return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; 77940 } else { 77941 return Date.UTC(y, m, d); 77942 } 77943 } 77944 77945 function startOf(units) { 77946 var time, startOfDate; 77947 units = normalizeUnits(units); 77948 if (units === undefined || units === 'millisecond' || !this.isValid()) { 77949 return this; 77950 } 77951 77952 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 77953 77954 switch (units) { 77955 case 'year': 77956 time = startOfDate(this.year(), 0, 1); 77957 break; 77958 case 'quarter': 77959 time = startOfDate( 77960 this.year(), 77961 this.month() - (this.month() % 3), 77962 1 77963 ); 77964 break; 77965 case 'month': 77966 time = startOfDate(this.year(), this.month(), 1); 77967 break; 77968 case 'week': 77969 time = startOfDate( 77970 this.year(), 77971 this.month(), 77972 this.date() - this.weekday() 77973 ); 77974 break; 77975 case 'isoWeek': 77976 time = startOfDate( 77977 this.year(), 77978 this.month(), 77979 this.date() - (this.isoWeekday() - 1) 77980 ); 77981 break; 77982 case 'day': 77983 case 'date': 77984 time = startOfDate(this.year(), this.month(), this.date()); 77985 break; 77986 case 'hour': 77987 time = this._d.valueOf(); 77988 time -= mod$1( 77989 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), 77990 MS_PER_HOUR 77991 ); 77992 break; 77993 case 'minute': 77994 time = this._d.valueOf(); 77995 time -= mod$1(time, MS_PER_MINUTE); 77996 break; 77997 case 'second': 77998 time = this._d.valueOf(); 77999 time -= mod$1(time, MS_PER_SECOND); 78000 break; 78001 } 78002 78003 this._d.setTime(time); 78004 hooks.updateOffset(this, true); 78005 return this; 78006 } 78007 78008 function endOf(units) { 78009 var time, startOfDate; 78010 units = normalizeUnits(units); 78011 if (units === undefined || units === 'millisecond' || !this.isValid()) { 78012 return this; 78013 } 78014 78015 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 78016 78017 switch (units) { 78018 case 'year': 78019 time = startOfDate(this.year() + 1, 0, 1) - 1; 78020 break; 78021 case 'quarter': 78022 time = 78023 startOfDate( 78024 this.year(), 78025 this.month() - (this.month() % 3) + 3, 78026 1 78027 ) - 1; 78028 break; 78029 case 'month': 78030 time = startOfDate(this.year(), this.month() + 1, 1) - 1; 78031 break; 78032 case 'week': 78033 time = 78034 startOfDate( 78035 this.year(), 78036 this.month(), 78037 this.date() - this.weekday() + 7 78038 ) - 1; 78039 break; 78040 case 'isoWeek': 78041 time = 78042 startOfDate( 78043 this.year(), 78044 this.month(), 78045 this.date() - (this.isoWeekday() - 1) + 7 78046 ) - 1; 78047 break; 78048 case 'day': 78049 case 'date': 78050 time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; 78051 break; 78052 case 'hour': 78053 time = this._d.valueOf(); 78054 time += 78055 MS_PER_HOUR - 78056 mod$1( 78057 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), 78058 MS_PER_HOUR 78059 ) - 78060 1; 78061 break; 78062 case 'minute': 78063 time = this._d.valueOf(); 78064 time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; 78065 break; 78066 case 'second': 78067 time = this._d.valueOf(); 78068 time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; 78069 break; 78070 } 78071 78072 this._d.setTime(time); 78073 hooks.updateOffset(this, true); 78074 return this; 78075 } 78076 78077 function valueOf() { 78078 return this._d.valueOf() - (this._offset || 0) * 60000; 78079 } 78080 78081 function unix() { 78082 return Math.floor(this.valueOf() / 1000); 78083 } 78084 78085 function toDate() { 78086 return new Date(this.valueOf()); 78087 } 78088 78089 function toArray() { 78090 var m = this; 78091 return [ 78092 m.year(), 78093 m.month(), 78094 m.date(), 78095 m.hour(), 78096 m.minute(), 78097 m.second(), 78098 m.millisecond(), 78099 ]; 78100 } 78101 78102 function toObject() { 78103 var m = this; 78104 return { 78105 years: m.year(), 78106 months: m.month(), 78107 date: m.date(), 78108 hours: m.hours(), 78109 minutes: m.minutes(), 78110 seconds: m.seconds(), 78111 milliseconds: m.milliseconds(), 78112 }; 78113 } 78114 78115 function toJSON() { 78116 // new Date(NaN).toJSON() === null 78117 return this.isValid() ? this.toISOString() : null; 78118 } 78119 78120 function isValid$2() { 78121 return isValid(this); 78122 } 78123 78124 function parsingFlags() { 78125 return extend({}, getParsingFlags(this)); 78126 } 78127 78128 function invalidAt() { 78129 return getParsingFlags(this).overflow; 78130 } 78131 78132 function creationData() { 78133 return { 78134 input: this._i, 78135 format: this._f, 78136 locale: this._locale, 78137 isUTC: this._isUTC, 78138 strict: this._strict, 78139 }; 78140 } 78141 78142 addFormatToken('N', 0, 0, 'eraAbbr'); 78143 addFormatToken('NN', 0, 0, 'eraAbbr'); 78144 addFormatToken('NNN', 0, 0, 'eraAbbr'); 78145 addFormatToken('NNNN', 0, 0, 'eraName'); 78146 addFormatToken('NNNNN', 0, 0, 'eraNarrow'); 78147 78148 addFormatToken('y', ['y', 1], 'yo', 'eraYear'); 78149 addFormatToken('y', ['yy', 2], 0, 'eraYear'); 78150 addFormatToken('y', ['yyy', 3], 0, 'eraYear'); 78151 addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); 78152 78153 addRegexToken('N', matchEraAbbr); 78154 addRegexToken('NN', matchEraAbbr); 78155 addRegexToken('NNN', matchEraAbbr); 78156 addRegexToken('NNNN', matchEraName); 78157 addRegexToken('NNNNN', matchEraNarrow); 78158 78159 addParseToken( 78160 ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], 78161 function (input, array, config, token) { 78162 var era = config._locale.erasParse(input, token, config._strict); 78163 if (era) { 78164 getParsingFlags(config).era = era; 78165 } else { 78166 getParsingFlags(config).invalidEra = input; 78167 } 78168 } 78169 ); 78170 78171 addRegexToken('y', matchUnsigned); 78172 addRegexToken('yy', matchUnsigned); 78173 addRegexToken('yyy', matchUnsigned); 78174 addRegexToken('yyyy', matchUnsigned); 78175 addRegexToken('yo', matchEraYearOrdinal); 78176 78177 addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); 78178 addParseToken(['yo'], function (input, array, config, token) { 78179 var match; 78180 if (config._locale._eraYearOrdinalRegex) { 78181 match = input.match(config._locale._eraYearOrdinalRegex); 78182 } 78183 78184 if (config._locale.eraYearOrdinalParse) { 78185 array[YEAR] = config._locale.eraYearOrdinalParse(input, match); 78186 } else { 78187 array[YEAR] = parseInt(input, 10); 78188 } 78189 }); 78190 78191 function localeEras(m, format) { 78192 var i, 78193 l, 78194 date, 78195 eras = this._eras || getLocale('en')._eras; 78196 for (i = 0, l = eras.length; i < l; ++i) { 78197 switch (typeof eras[i].since) { 78198 case 'string': 78199 // truncate time 78200 date = hooks(eras[i].since).startOf('day'); 78201 eras[i].since = date.valueOf(); 78202 break; 78203 } 78204 78205 switch (typeof eras[i].until) { 78206 case 'undefined': 78207 eras[i].until = +Infinity; 78208 break; 78209 case 'string': 78210 // truncate time 78211 date = hooks(eras[i].until).startOf('day').valueOf(); 78212 eras[i].until = date.valueOf(); 78213 break; 78214 } 78215 } 78216 return eras; 78217 } 78218 78219 function localeErasParse(eraName, format, strict) { 78220 var i, 78221 l, 78222 eras = this.eras(), 78223 name, 78224 abbr, 78225 narrow; 78226 eraName = eraName.toUpperCase(); 78227 78228 for (i = 0, l = eras.length; i < l; ++i) { 78229 name = eras[i].name.toUpperCase(); 78230 abbr = eras[i].abbr.toUpperCase(); 78231 narrow = eras[i].narrow.toUpperCase(); 78232 78233 if (strict) { 78234 switch (format) { 78235 case 'N': 78236 case 'NN': 78237 case 'NNN': 78238 if (abbr === eraName) { 78239 return eras[i]; 78240 } 78241 break; 78242 78243 case 'NNNN': 78244 if (name === eraName) { 78245 return eras[i]; 78246 } 78247 break; 78248 78249 case 'NNNNN': 78250 if (narrow === eraName) { 78251 return eras[i]; 78252 } 78253 break; 78254 } 78255 } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { 78256 return eras[i]; 78257 } 78258 } 78259 } 78260 78261 function localeErasConvertYear(era, year) { 78262 var dir = era.since <= era.until ? +1 : -1; 78263 if (year === undefined) { 78264 return hooks(era.since).year(); 78265 } else { 78266 return hooks(era.since).year() + (year - era.offset) * dir; 78267 } 78268 } 78269 78270 function getEraName() { 78271 var i, 78272 l, 78273 val, 78274 eras = this.localeData().eras(); 78275 for (i = 0, l = eras.length; i < l; ++i) { 78276 // truncate time 78277 val = this.clone().startOf('day').valueOf(); 78278 78279 if (eras[i].since <= val && val <= eras[i].until) { 78280 return eras[i].name; 78281 } 78282 if (eras[i].until <= val && val <= eras[i].since) { 78283 return eras[i].name; 78284 } 78285 } 78286 78287 return ''; 78288 } 78289 78290 function getEraNarrow() { 78291 var i, 78292 l, 78293 val, 78294 eras = this.localeData().eras(); 78295 for (i = 0, l = eras.length; i < l; ++i) { 78296 // truncate time 78297 val = this.clone().startOf('day').valueOf(); 78298 78299 if (eras[i].since <= val && val <= eras[i].until) { 78300 return eras[i].narrow; 78301 } 78302 if (eras[i].until <= val && val <= eras[i].since) { 78303 return eras[i].narrow; 78304 } 78305 } 78306 78307 return ''; 78308 } 78309 78310 function getEraAbbr() { 78311 var i, 78312 l, 78313 val, 78314 eras = this.localeData().eras(); 78315 for (i = 0, l = eras.length; i < l; ++i) { 78316 // truncate time 78317 val = this.clone().startOf('day').valueOf(); 78318 78319 if (eras[i].since <= val && val <= eras[i].until) { 78320 return eras[i].abbr; 78321 } 78322 if (eras[i].until <= val && val <= eras[i].since) { 78323 return eras[i].abbr; 78324 } 78325 } 78326 78327 return ''; 78328 } 78329 78330 function getEraYear() { 78331 var i, 78332 l, 78333 dir, 78334 val, 78335 eras = this.localeData().eras(); 78336 for (i = 0, l = eras.length; i < l; ++i) { 78337 dir = eras[i].since <= eras[i].until ? +1 : -1; 78338 78339 // truncate time 78340 val = this.clone().startOf('day').valueOf(); 78341 78342 if ( 78343 (eras[i].since <= val && val <= eras[i].until) || 78344 (eras[i].until <= val && val <= eras[i].since) 78345 ) { 78346 return ( 78347 (this.year() - hooks(eras[i].since).year()) * dir + 78348 eras[i].offset 78349 ); 78350 } 78351 } 78352 78353 return this.year(); 78354 } 78355 78356 function erasNameRegex(isStrict) { 78357 if (!hasOwnProp(this, '_erasNameRegex')) { 78358 computeErasParse.call(this); 78359 } 78360 return isStrict ? this._erasNameRegex : this._erasRegex; 78361 } 78362 78363 function erasAbbrRegex(isStrict) { 78364 if (!hasOwnProp(this, '_erasAbbrRegex')) { 78365 computeErasParse.call(this); 78366 } 78367 return isStrict ? this._erasAbbrRegex : this._erasRegex; 78368 } 78369 78370 function erasNarrowRegex(isStrict) { 78371 if (!hasOwnProp(this, '_erasNarrowRegex')) { 78372 computeErasParse.call(this); 78373 } 78374 return isStrict ? this._erasNarrowRegex : this._erasRegex; 78375 } 78376 78377 function matchEraAbbr(isStrict, locale) { 78378 return locale.erasAbbrRegex(isStrict); 78379 } 78380 78381 function matchEraName(isStrict, locale) { 78382 return locale.erasNameRegex(isStrict); 78383 } 78384 78385 function matchEraNarrow(isStrict, locale) { 78386 return locale.erasNarrowRegex(isStrict); 78387 } 78388 78389 function matchEraYearOrdinal(isStrict, locale) { 78390 return locale._eraYearOrdinalRegex || matchUnsigned; 78391 } 78392 78393 function computeErasParse() { 78394 var abbrPieces = [], 78395 namePieces = [], 78396 narrowPieces = [], 78397 mixedPieces = [], 78398 i, 78399 l, 78400 erasName, 78401 erasAbbr, 78402 erasNarrow, 78403 eras = this.eras(); 78404 78405 for (i = 0, l = eras.length; i < l; ++i) { 78406 erasName = regexEscape(eras[i].name); 78407 erasAbbr = regexEscape(eras[i].abbr); 78408 erasNarrow = regexEscape(eras[i].narrow); 78409 78410 namePieces.push(erasName); 78411 abbrPieces.push(erasAbbr); 78412 narrowPieces.push(erasNarrow); 78413 mixedPieces.push(erasName); 78414 mixedPieces.push(erasAbbr); 78415 mixedPieces.push(erasNarrow); 78416 } 78417 78418 this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 78419 this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); 78420 this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); 78421 this._erasNarrowRegex = new RegExp( 78422 '^(' + narrowPieces.join('|') + ')', 78423 'i' 78424 ); 78425 } 78426 78427 // FORMATTING 78428 78429 addFormatToken(0, ['gg', 2], 0, function () { 78430 return this.weekYear() % 100; 78431 }); 78432 78433 addFormatToken(0, ['GG', 2], 0, function () { 78434 return this.isoWeekYear() % 100; 78435 }); 78436 78437 function addWeekYearFormatToken(token, getter) { 78438 addFormatToken(0, [token, token.length], 0, getter); 78439 } 78440 78441 addWeekYearFormatToken('gggg', 'weekYear'); 78442 addWeekYearFormatToken('ggggg', 'weekYear'); 78443 addWeekYearFormatToken('GGGG', 'isoWeekYear'); 78444 addWeekYearFormatToken('GGGGG', 'isoWeekYear'); 78445 78446 // ALIASES 78447 78448 // PARSING 78449 78450 addRegexToken('G', matchSigned); 78451 addRegexToken('g', matchSigned); 78452 addRegexToken('GG', match1to2, match2); 78453 addRegexToken('gg', match1to2, match2); 78454 addRegexToken('GGGG', match1to4, match4); 78455 addRegexToken('gggg', match1to4, match4); 78456 addRegexToken('GGGGG', match1to6, match6); 78457 addRegexToken('ggggg', match1to6, match6); 78458 78459 addWeekParseToken( 78460 ['gggg', 'ggggg', 'GGGG', 'GGGGG'], 78461 function (input, week, config, token) { 78462 week[token.substr(0, 2)] = toInt(input); 78463 } 78464 ); 78465 78466 addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { 78467 week[token] = hooks.parseTwoDigitYear(input); 78468 }); 78469 78470 // MOMENTS 78471 78472 function getSetWeekYear(input) { 78473 return getSetWeekYearHelper.call( 78474 this, 78475 input, 78476 this.week(), 78477 this.weekday() + this.localeData()._week.dow, 78478 this.localeData()._week.dow, 78479 this.localeData()._week.doy 78480 ); 78481 } 78482 78483 function getSetISOWeekYear(input) { 78484 return getSetWeekYearHelper.call( 78485 this, 78486 input, 78487 this.isoWeek(), 78488 this.isoWeekday(), 78489 1, 78490 4 78491 ); 78492 } 78493 78494 function getISOWeeksInYear() { 78495 return weeksInYear(this.year(), 1, 4); 78496 } 78497 78498 function getISOWeeksInISOWeekYear() { 78499 return weeksInYear(this.isoWeekYear(), 1, 4); 78500 } 78501 78502 function getWeeksInYear() { 78503 var weekInfo = this.localeData()._week; 78504 return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); 78505 } 78506 78507 function getWeeksInWeekYear() { 78508 var weekInfo = this.localeData()._week; 78509 return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); 78510 } 78511 78512 function getSetWeekYearHelper(input, week, weekday, dow, doy) { 78513 var weeksTarget; 78514 if (input == null) { 78515 return weekOfYear(this, dow, doy).year; 78516 } else { 78517 weeksTarget = weeksInYear(input, dow, doy); 78518 if (week > weeksTarget) { 78519 week = weeksTarget; 78520 } 78521 return setWeekAll.call(this, input, week, weekday, dow, doy); 78522 } 78523 } 78524 78525 function setWeekAll(weekYear, week, weekday, dow, doy) { 78526 var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), 78527 date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); 78528 78529 this.year(date.getUTCFullYear()); 78530 this.month(date.getUTCMonth()); 78531 this.date(date.getUTCDate()); 78532 return this; 78533 } 78534 78535 // FORMATTING 78536 78537 addFormatToken('Q', 0, 'Qo', 'quarter'); 78538 78539 // PARSING 78540 78541 addRegexToken('Q', match1); 78542 addParseToken('Q', function (input, array) { 78543 array[MONTH] = (toInt(input) - 1) * 3; 78544 }); 78545 78546 // MOMENTS 78547 78548 function getSetQuarter(input) { 78549 return input == null 78550 ? Math.ceil((this.month() + 1) / 3) 78551 : this.month((input - 1) * 3 + (this.month() % 3)); 78552 } 78553 78554 // FORMATTING 78555 78556 addFormatToken('D', ['DD', 2], 'Do', 'date'); 78557 78558 // PARSING 78559 78560 addRegexToken('D', match1to2, match1to2NoLeadingZero); 78561 addRegexToken('DD', match1to2, match2); 78562 addRegexToken('Do', function (isStrict, locale) { 78563 // TODO: Remove "ordinalParse" fallback in next major release. 78564 return isStrict 78565 ? locale._dayOfMonthOrdinalParse || locale._ordinalParse 78566 : locale._dayOfMonthOrdinalParseLenient; 78567 }); 78568 78569 addParseToken(['D', 'DD'], DATE); 78570 addParseToken('Do', function (input, array) { 78571 array[DATE] = toInt(input.match(match1to2)[0]); 78572 }); 78573 78574 // MOMENTS 78575 78576 var getSetDayOfMonth = makeGetSet('Date', true); 78577 78578 // FORMATTING 78579 78580 addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); 78581 78582 // PARSING 78583 78584 addRegexToken('DDD', match1to3); 78585 addRegexToken('DDDD', match3); 78586 addParseToken(['DDD', 'DDDD'], function (input, array, config) { 78587 config._dayOfYear = toInt(input); 78588 }); 78589 78590 // HELPERS 78591 78592 // MOMENTS 78593 78594 function getSetDayOfYear(input) { 78595 var dayOfYear = 78596 Math.round( 78597 (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 78598 ) + 1; 78599 return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); 78600 } 78601 78602 // FORMATTING 78603 78604 addFormatToken('m', ['mm', 2], 0, 'minute'); 78605 78606 // PARSING 78607 78608 addRegexToken('m', match1to2, match1to2HasZero); 78609 addRegexToken('mm', match1to2, match2); 78610 addParseToken(['m', 'mm'], MINUTE); 78611 78612 // MOMENTS 78613 78614 var getSetMinute = makeGetSet('Minutes', false); 78615 78616 // FORMATTING 78617 78618 addFormatToken('s', ['ss', 2], 0, 'second'); 78619 78620 // PARSING 78621 78622 addRegexToken('s', match1to2, match1to2HasZero); 78623 addRegexToken('ss', match1to2, match2); 78624 addParseToken(['s', 'ss'], SECOND); 78625 78626 // MOMENTS 78627 78628 var getSetSecond = makeGetSet('Seconds', false); 78629 78630 // FORMATTING 78631 78632 addFormatToken('S', 0, 0, function () { 78633 return ~~(this.millisecond() / 100); 78634 }); 78635 78636 addFormatToken(0, ['SS', 2], 0, function () { 78637 return ~~(this.millisecond() / 10); 78638 }); 78639 78640 addFormatToken(0, ['SSS', 3], 0, 'millisecond'); 78641 addFormatToken(0, ['SSSS', 4], 0, function () { 78642 return this.millisecond() * 10; 78643 }); 78644 addFormatToken(0, ['SSSSS', 5], 0, function () { 78645 return this.millisecond() * 100; 78646 }); 78647 addFormatToken(0, ['SSSSSS', 6], 0, function () { 78648 return this.millisecond() * 1000; 78649 }); 78650 addFormatToken(0, ['SSSSSSS', 7], 0, function () { 78651 return this.millisecond() * 10000; 78652 }); 78653 addFormatToken(0, ['SSSSSSSS', 8], 0, function () { 78654 return this.millisecond() * 100000; 78655 }); 78656 addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { 78657 return this.millisecond() * 1000000; 78658 }); 78659 78660 // PARSING 78661 78662 addRegexToken('S', match1to3, match1); 78663 addRegexToken('SS', match1to3, match2); 78664 addRegexToken('SSS', match1to3, match3); 78665 78666 var token, getSetMillisecond; 78667 for (token = 'SSSS'; token.length <= 9; token += 'S') { 78668 addRegexToken(token, matchUnsigned); 78669 } 78670 78671 function parseMs(input, array) { 78672 array[MILLISECOND] = toInt(('0.' + input) * 1000); 78673 } 78674 78675 for (token = 'S'; token.length <= 9; token += 'S') { 78676 addParseToken(token, parseMs); 78677 } 78678 78679 getSetMillisecond = makeGetSet('Milliseconds', false); 78680 78681 // FORMATTING 78682 78683 addFormatToken('z', 0, 0, 'zoneAbbr'); 78684 addFormatToken('zz', 0, 0, 'zoneName'); 78685 78686 // MOMENTS 78687 78688 function getZoneAbbr() { 78689 return this._isUTC ? 'UTC' : ''; 78690 } 78691 78692 function getZoneName() { 78693 return this._isUTC ? 'Coordinated Universal Time' : ''; 78694 } 78695 78696 var proto = Moment.prototype; 78697 78698 proto.add = add; 78699 proto.calendar = calendar$1; 78700 proto.clone = clone; 78701 proto.diff = diff; 78702 proto.endOf = endOf; 78703 proto.format = format; 78704 proto.from = from; 78705 proto.fromNow = fromNow; 78706 proto.to = to; 78707 proto.toNow = toNow; 78708 proto.get = stringGet; 78709 proto.invalidAt = invalidAt; 78710 proto.isAfter = isAfter; 78711 proto.isBefore = isBefore; 78712 proto.isBetween = isBetween; 78713 proto.isSame = isSame; 78714 proto.isSameOrAfter = isSameOrAfter; 78715 proto.isSameOrBefore = isSameOrBefore; 78716 proto.isValid = isValid$2; 78717 proto.lang = lang; 78718 proto.locale = locale; 78719 proto.localeData = localeData; 78720 proto.max = prototypeMax; 78721 proto.min = prototypeMin; 78722 proto.parsingFlags = parsingFlags; 78723 proto.set = stringSet; 78724 proto.startOf = startOf; 78725 proto.subtract = subtract; 78726 proto.toArray = toArray; 78727 proto.toObject = toObject; 78728 proto.toDate = toDate; 78729 proto.toISOString = toISOString; 78730 proto.inspect = inspect; 78731 if (typeof Symbol !== 'undefined' && Symbol.for != null) { 78732 proto[Symbol.for('nodejs.util.inspect.custom')] = function () { 78733 return 'Moment<' + this.format() + '>'; 78734 }; 78735 } 78736 proto.toJSON = toJSON; 78737 proto.toString = toString; 78738 proto.unix = unix; 78739 proto.valueOf = valueOf; 78740 proto.creationData = creationData; 78741 proto.eraName = getEraName; 78742 proto.eraNarrow = getEraNarrow; 78743 proto.eraAbbr = getEraAbbr; 78744 proto.eraYear = getEraYear; 78745 proto.year = getSetYear; 78746 proto.isLeapYear = getIsLeapYear; 78747 proto.weekYear = getSetWeekYear; 78748 proto.isoWeekYear = getSetISOWeekYear; 78749 proto.quarter = proto.quarters = getSetQuarter; 78750 proto.month = getSetMonth; 78751 proto.daysInMonth = getDaysInMonth; 78752 proto.week = proto.weeks = getSetWeek; 78753 proto.isoWeek = proto.isoWeeks = getSetISOWeek; 78754 proto.weeksInYear = getWeeksInYear; 78755 proto.weeksInWeekYear = getWeeksInWeekYear; 78756 proto.isoWeeksInYear = getISOWeeksInYear; 78757 proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; 78758 proto.date = getSetDayOfMonth; 78759 proto.day = proto.days = getSetDayOfWeek; 78760 proto.weekday = getSetLocaleDayOfWeek; 78761 proto.isoWeekday = getSetISODayOfWeek; 78762 proto.dayOfYear = getSetDayOfYear; 78763 proto.hour = proto.hours = getSetHour; 78764 proto.minute = proto.minutes = getSetMinute; 78765 proto.second = proto.seconds = getSetSecond; 78766 proto.millisecond = proto.milliseconds = getSetMillisecond; 78767 proto.utcOffset = getSetOffset; 78768 proto.utc = setOffsetToUTC; 78769 proto.local = setOffsetToLocal; 78770 proto.parseZone = setOffsetToParsedOffset; 78771 proto.hasAlignedHourOffset = hasAlignedHourOffset; 78772 proto.isDST = isDaylightSavingTime; 78773 proto.isLocal = isLocal; 78774 proto.isUtcOffset = isUtcOffset; 78775 proto.isUtc = isUtc; 78776 proto.isUTC = isUtc; 78777 proto.zoneAbbr = getZoneAbbr; 78778 proto.zoneName = getZoneName; 78779 proto.dates = deprecate( 78780 'dates accessor is deprecated. Use date instead.', 78781 getSetDayOfMonth 78782 ); 78783 proto.months = deprecate( 78784 'months accessor is deprecated. Use month instead', 78785 getSetMonth 78786 ); 78787 proto.years = deprecate( 78788 'years accessor is deprecated. Use year instead', 78789 getSetYear 78790 ); 78791 proto.zone = deprecate( 78792 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', 78793 getSetZone 78794 ); 78795 proto.isDSTShifted = deprecate( 78796 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', 78797 isDaylightSavingTimeShifted 78798 ); 78799 78800 function createUnix(input) { 78801 return createLocal(input * 1000); 78802 } 78803 78804 function createInZone() { 78805 return createLocal.apply(null, arguments).parseZone(); 78806 } 78807 78808 function preParsePostFormat(string) { 78809 return string; 78810 } 78811 78812 var proto$1 = Locale.prototype; 78813 78814 proto$1.calendar = calendar; 78815 proto$1.longDateFormat = longDateFormat; 78816 proto$1.invalidDate = invalidDate; 78817 proto$1.ordinal = ordinal; 78818 proto$1.preparse = preParsePostFormat; 78819 proto$1.postformat = preParsePostFormat; 78820 proto$1.relativeTime = relativeTime; 78821 proto$1.pastFuture = pastFuture; 78822 proto$1.set = set; 78823 proto$1.eras = localeEras; 78824 proto$1.erasParse = localeErasParse; 78825 proto$1.erasConvertYear = localeErasConvertYear; 78826 proto$1.erasAbbrRegex = erasAbbrRegex; 78827 proto$1.erasNameRegex = erasNameRegex; 78828 proto$1.erasNarrowRegex = erasNarrowRegex; 78829 78830 proto$1.months = localeMonths; 78831 proto$1.monthsShort = localeMonthsShort; 78832 proto$1.monthsParse = localeMonthsParse; 78833 proto$1.monthsRegex = monthsRegex; 78834 proto$1.monthsShortRegex = monthsShortRegex; 78835 proto$1.week = localeWeek; 78836 proto$1.firstDayOfYear = localeFirstDayOfYear; 78837 proto$1.firstDayOfWeek = localeFirstDayOfWeek; 78838 78839 proto$1.weekdays = localeWeekdays; 78840 proto$1.weekdaysMin = localeWeekdaysMin; 78841 proto$1.weekdaysShort = localeWeekdaysShort; 78842 proto$1.weekdaysParse = localeWeekdaysParse; 78843 78844 proto$1.weekdaysRegex = weekdaysRegex; 78845 proto$1.weekdaysShortRegex = weekdaysShortRegex; 78846 proto$1.weekdaysMinRegex = weekdaysMinRegex; 78847 78848 proto$1.isPM = localeIsPM; 78849 proto$1.meridiem = localeMeridiem; 78850 78851 function get$1(format, index, field, setter) { 78852 var locale = getLocale(), 78853 utc = createUTC().set(setter, index); 78854 return locale[field](utc, format); 78855 } 78856 78857 function listMonthsImpl(format, index, field) { 78858 if (isNumber(format)) { 78859 index = format; 78860 format = undefined; 78861 } 78862 78863 format = format || ''; 78864 78865 if (index != null) { 78866 return get$1(format, index, field, 'month'); 78867 } 78868 78869 var i, 78870 out = []; 78871 for (i = 0; i < 12; i++) { 78872 out[i] = get$1(format, i, field, 'month'); 78873 } 78874 return out; 78875 } 78876 78877 // () 78878 // (5) 78879 // (fmt, 5) 78880 // (fmt) 78881 // (true) 78882 // (true, 5) 78883 // (true, fmt, 5) 78884 // (true, fmt) 78885 function listWeekdaysImpl(localeSorted, format, index, field) { 78886 if (typeof localeSorted === 'boolean') { 78887 if (isNumber(format)) { 78888 index = format; 78889 format = undefined; 78890 } 78891 78892 format = format || ''; 78893 } else { 78894 format = localeSorted; 78895 index = format; 78896 localeSorted = false; 78897 78898 if (isNumber(format)) { 78899 index = format; 78900 format = undefined; 78901 } 78902 78903 format = format || ''; 78904 } 78905 78906 var locale = getLocale(), 78907 shift = localeSorted ? locale._week.dow : 0, 78908 i, 78909 out = []; 78910 78911 if (index != null) { 78912 return get$1(format, (index + shift) % 7, field, 'day'); 78913 } 78914 78915 for (i = 0; i < 7; i++) { 78916 out[i] = get$1(format, (i + shift) % 7, field, 'day'); 78917 } 78918 return out; 78919 } 78920 78921 function listMonths(format, index) { 78922 return listMonthsImpl(format, index, 'months'); 78923 } 78924 78925 function listMonthsShort(format, index) { 78926 return listMonthsImpl(format, index, 'monthsShort'); 78927 } 78928 78929 function listWeekdays(localeSorted, format, index) { 78930 return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); 78931 } 78932 78933 function listWeekdaysShort(localeSorted, format, index) { 78934 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); 78935 } 78936 78937 function listWeekdaysMin(localeSorted, format, index) { 78938 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); 78939 } 78940 78941 getSetGlobalLocale('en', { 78942 eras: [ 78943 { 78944 since: '0001-01-01', 78945 until: +Infinity, 78946 offset: 1, 78947 name: 'Anno Domini', 78948 narrow: 'AD', 78949 abbr: 'AD', 78950 }, 78951 { 78952 since: '0000-12-31', 78953 until: -Infinity, 78954 offset: 1, 78955 name: 'Before Christ', 78956 narrow: 'BC', 78957 abbr: 'BC', 78958 }, 78959 ], 78960 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, 78961 ordinal: function (number) { 78962 var b = number % 10, 78963 output = 78964 toInt((number % 100) / 10) === 1 78965 ? 'th' 78966 : b === 1 78967 ? 'st' 78968 : b === 2 78969 ? 'nd' 78970 : b === 3 78971 ? 'rd' 78972 : 'th'; 78973 return number + output; 78974 }, 78975 }); 78976 78977 // Side effect imports 78978 78979 hooks.lang = deprecate( 78980 'moment.lang is deprecated. Use moment.locale instead.', 78981 getSetGlobalLocale 78982 ); 78983 hooks.langData = deprecate( 78984 'moment.langData is deprecated. Use moment.localeData instead.', 78985 getLocale 78986 ); 78987 78988 var mathAbs = Math.abs; 78989 78990 function abs() { 78991 var data = this._data; 78992 78993 this._milliseconds = mathAbs(this._milliseconds); 78994 this._days = mathAbs(this._days); 78995 this._months = mathAbs(this._months); 78996 78997 data.milliseconds = mathAbs(data.milliseconds); 78998 data.seconds = mathAbs(data.seconds); 78999 data.minutes = mathAbs(data.minutes); 79000 data.hours = mathAbs(data.hours); 79001 data.months = mathAbs(data.months); 79002 data.years = mathAbs(data.years); 79003 79004 return this; 79005 } 79006 79007 function addSubtract$1(duration, input, value, direction) { 79008 var other = createDuration(input, value); 79009 79010 duration._milliseconds += direction * other._milliseconds; 79011 duration._days += direction * other._days; 79012 duration._months += direction * other._months; 79013 79014 return duration._bubble(); 79015 } 79016 79017 // supports only 2.0-style add(1, 's') or add(duration) 79018 function add$1(input, value) { 79019 return addSubtract$1(this, input, value, 1); 79020 } 79021 79022 // supports only 2.0-style subtract(1, 's') or subtract(duration) 79023 function subtract$1(input, value) { 79024 return addSubtract$1(this, input, value, -1); 79025 } 79026 79027 function absCeil(number) { 79028 if (number < 0) { 79029 return Math.floor(number); 79030 } else { 79031 return Math.ceil(number); 79032 } 79033 } 79034 79035 function bubble() { 79036 var milliseconds = this._milliseconds, 79037 days = this._days, 79038 months = this._months, 79039 data = this._data, 79040 seconds, 79041 minutes, 79042 hours, 79043 years, 79044 monthsFromDays; 79045 79046 // if we have a mix of positive and negative values, bubble down first 79047 // check: https://github.com/moment/moment/issues/2166 79048 if ( 79049 !( 79050 (milliseconds >= 0 && days >= 0 && months >= 0) || 79051 (milliseconds <= 0 && days <= 0 && months <= 0) 79052 ) 79053 ) { 79054 milliseconds += absCeil(monthsToDays(months) + days) * 864e5; 79055 days = 0; 79056 months = 0; 79057 } 79058 79059 // The following code bubbles up values, see the tests for 79060 // examples of what that means. 79061 data.milliseconds = milliseconds % 1000; 79062 79063 seconds = absFloor(milliseconds / 1000); 79064 data.seconds = seconds % 60; 79065 79066 minutes = absFloor(seconds / 60); 79067 data.minutes = minutes % 60; 79068 79069 hours = absFloor(minutes / 60); 79070 data.hours = hours % 24; 79071 79072 days += absFloor(hours / 24); 79073 79074 // convert days to months 79075 monthsFromDays = absFloor(daysToMonths(days)); 79076 months += monthsFromDays; 79077 days -= absCeil(monthsToDays(monthsFromDays)); 79078 79079 // 12 months -> 1 year 79080 years = absFloor(months / 12); 79081 months %= 12; 79082 79083 data.days = days; 79084 data.months = months; 79085 data.years = years; 79086 79087 return this; 79088 } 79089 79090 function daysToMonths(days) { 79091 // 400 years have 146097 days (taking into account leap year rules) 79092 // 400 years have 12 months === 4800 79093 return (days * 4800) / 146097; 79094 } 79095 79096 function monthsToDays(months) { 79097 // the reverse of daysToMonths 79098 return (months * 146097) / 4800; 79099 } 79100 79101 function as(units) { 79102 if (!this.isValid()) { 79103 return NaN; 79104 } 79105 var days, 79106 months, 79107 milliseconds = this._milliseconds; 79108 79109 units = normalizeUnits(units); 79110 79111 if (units === 'month' || units === 'quarter' || units === 'year') { 79112 days = this._days + milliseconds / 864e5; 79113 months = this._months + daysToMonths(days); 79114 switch (units) { 79115 case 'month': 79116 return months; 79117 case 'quarter': 79118 return months / 3; 79119 case 'year': 79120 return months / 12; 79121 } 79122 } else { 79123 // handle milliseconds separately because of floating point math errors (issue #1867) 79124 days = this._days + Math.round(monthsToDays(this._months)); 79125 switch (units) { 79126 case 'week': 79127 return days / 7 + milliseconds / 6048e5; 79128 case 'day': 79129 return days + milliseconds / 864e5; 79130 case 'hour': 79131 return days * 24 + milliseconds / 36e5; 79132 case 'minute': 79133 return days * 1440 + milliseconds / 6e4; 79134 case 'second': 79135 return days * 86400 + milliseconds / 1000; 79136 // Math.floor prevents floating point math errors here 79137 case 'millisecond': 79138 return Math.floor(days * 864e5) + milliseconds; 79139 default: 79140 throw new Error('Unknown unit ' + units); 79141 } 79142 } 79143 } 79144 79145 function makeAs(alias) { 79146 return function () { 79147 return this.as(alias); 79148 }; 79149 } 79150 79151 var asMilliseconds = makeAs('ms'), 79152 asSeconds = makeAs('s'), 79153 asMinutes = makeAs('m'), 79154 asHours = makeAs('h'), 79155 asDays = makeAs('d'), 79156 asWeeks = makeAs('w'), 79157 asMonths = makeAs('M'), 79158 asQuarters = makeAs('Q'), 79159 asYears = makeAs('y'), 79160 valueOf$1 = asMilliseconds; 79161 79162 function clone$1() { 79163 return createDuration(this); 79164 } 79165 79166 function get$2(units) { 79167 units = normalizeUnits(units); 79168 return this.isValid() ? this[units + 's']() : NaN; 79169 } 79170 79171 function makeGetter(name) { 79172 return function () { 79173 return this.isValid() ? this._data[name] : NaN; 79174 }; 79175 } 79176 79177 var milliseconds = makeGetter('milliseconds'), 79178 seconds = makeGetter('seconds'), 79179 minutes = makeGetter('minutes'), 79180 hours = makeGetter('hours'), 79181 days = makeGetter('days'), 79182 months = makeGetter('months'), 79183 years = makeGetter('years'); 79184 79185 function weeks() { 79186 return absFloor(this.days() / 7); 79187 } 79188 79189 var round = Math.round, 79190 thresholds = { 79191 ss: 44, // a few seconds to seconds 79192 s: 45, // seconds to minute 79193 m: 45, // minutes to hour 79194 h: 22, // hours to day 79195 d: 26, // days to month/week 79196 w: null, // weeks to month 79197 M: 11, // months to year 79198 }; 79199 79200 // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize 79201 function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { 79202 return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); 79203 } 79204 79205 function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { 79206 var duration = createDuration(posNegDuration).abs(), 79207 seconds = round(duration.as('s')), 79208 minutes = round(duration.as('m')), 79209 hours = round(duration.as('h')), 79210 days = round(duration.as('d')), 79211 months = round(duration.as('M')), 79212 weeks = round(duration.as('w')), 79213 years = round(duration.as('y')), 79214 a = 79215 (seconds <= thresholds.ss && ['s', seconds]) || 79216 (seconds < thresholds.s && ['ss', seconds]) || 79217 (minutes <= 1 && ['m']) || 79218 (minutes < thresholds.m && ['mm', minutes]) || 79219 (hours <= 1 && ['h']) || 79220 (hours < thresholds.h && ['hh', hours]) || 79221 (days <= 1 && ['d']) || 79222 (days < thresholds.d && ['dd', days]); 79223 79224 if (thresholds.w != null) { 79225 a = 79226 a || 79227 (weeks <= 1 && ['w']) || 79228 (weeks < thresholds.w && ['ww', weeks]); 79229 } 79230 a = a || 79231 (months <= 1 && ['M']) || 79232 (months < thresholds.M && ['MM', months]) || 79233 (years <= 1 && ['y']) || ['yy', years]; 79234 79235 a[2] = withoutSuffix; 79236 a[3] = +posNegDuration > 0; 79237 a[4] = locale; 79238 return substituteTimeAgo.apply(null, a); 79239 } 79240 79241 // This function allows you to set the rounding function for relative time strings 79242 function getSetRelativeTimeRounding(roundingFunction) { 79243 if (roundingFunction === undefined) { 79244 return round; 79245 } 79246 if (typeof roundingFunction === 'function') { 79247 round = roundingFunction; 79248 return true; 79249 } 79250 return false; 79251 } 79252 79253 // This function allows you to set a threshold for relative time strings 79254 function getSetRelativeTimeThreshold(threshold, limit) { 79255 if (thresholds[threshold] === undefined) { 79256 return false; 79257 } 79258 if (limit === undefined) { 79259 return thresholds[threshold]; 79260 } 79261 thresholds[threshold] = limit; 79262 if (threshold === 's') { 79263 thresholds.ss = limit - 1; 79264 } 79265 return true; 79266 } 79267 79268 function humanize(argWithSuffix, argThresholds) { 79269 if (!this.isValid()) { 79270 return this.localeData().invalidDate(); 79271 } 79272 79273 var withSuffix = false, 79274 th = thresholds, 79275 locale, 79276 output; 79277 79278 if (typeof argWithSuffix === 'object') { 79279 argThresholds = argWithSuffix; 79280 argWithSuffix = false; 79281 } 79282 if (typeof argWithSuffix === 'boolean') { 79283 withSuffix = argWithSuffix; 79284 } 79285 if (typeof argThresholds === 'object') { 79286 th = Object.assign({}, thresholds, argThresholds); 79287 if (argThresholds.s != null && argThresholds.ss == null) { 79288 th.ss = argThresholds.s - 1; 79289 } 79290 } 79291 79292 locale = this.localeData(); 79293 output = relativeTime$1(this, !withSuffix, th, locale); 79294 79295 if (withSuffix) { 79296 output = locale.pastFuture(+this, output); 79297 } 79298 79299 return locale.postformat(output); 79300 } 79301 79302 var abs$1 = Math.abs; 79303 79304 function sign(x) { 79305 return (x > 0) - (x < 0) || +x; 79306 } 79307 79308 function toISOString$1() { 79309 // for ISO strings we do not use the normal bubbling rules: 79310 // * milliseconds bubble up until they become hours 79311 // * days do not bubble at all 79312 // * months bubble up until they become years 79313 // This is because there is no context-free conversion between hours and days 79314 // (think of clock changes) 79315 // and also not between days and months (28-31 days per month) 79316 if (!this.isValid()) { 79317 return this.localeData().invalidDate(); 79318 } 79319 79320 var seconds = abs$1(this._milliseconds) / 1000, 79321 days = abs$1(this._days), 79322 months = abs$1(this._months), 79323 minutes, 79324 hours, 79325 years, 79326 s, 79327 total = this.asSeconds(), 79328 totalSign, 79329 ymSign, 79330 daysSign, 79331 hmsSign; 79332 79333 if (!total) { 79334 // this is the same as C#'s (Noda) and python (isodate)... 79335 // but not other JS (goog.date) 79336 return 'P0D'; 79337 } 79338 79339 // 3600 seconds -> 60 minutes -> 1 hour 79340 minutes = absFloor(seconds / 60); 79341 hours = absFloor(minutes / 60); 79342 seconds %= 60; 79343 minutes %= 60; 79344 79345 // 12 months -> 1 year 79346 years = absFloor(months / 12); 79347 months %= 12; 79348 79349 // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js 79350 s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; 79351 79352 totalSign = total < 0 ? '-' : ''; 79353 ymSign = sign(this._months) !== sign(total) ? '-' : ''; 79354 daysSign = sign(this._days) !== sign(total) ? '-' : ''; 79355 hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; 79356 79357 return ( 79358 totalSign + 79359 'P' + 79360 (years ? ymSign + years + 'Y' : '') + 79361 (months ? ymSign + months + 'M' : '') + 79362 (days ? daysSign + days + 'D' : '') + 79363 (hours || minutes || seconds ? 'T' : '') + 79364 (hours ? hmsSign + hours + 'H' : '') + 79365 (minutes ? hmsSign + minutes + 'M' : '') + 79366 (seconds ? hmsSign + s + 'S' : '') 79367 ); 79368 } 79369 79370 var proto$2 = Duration.prototype; 79371 79372 proto$2.isValid = isValid$1; 79373 proto$2.abs = abs; 79374 proto$2.add = add$1; 79375 proto$2.subtract = subtract$1; 79376 proto$2.as = as; 79377 proto$2.asMilliseconds = asMilliseconds; 79378 proto$2.asSeconds = asSeconds; 79379 proto$2.asMinutes = asMinutes; 79380 proto$2.asHours = asHours; 79381 proto$2.asDays = asDays; 79382 proto$2.asWeeks = asWeeks; 79383 proto$2.asMonths = asMonths; 79384 proto$2.asQuarters = asQuarters; 79385 proto$2.asYears = asYears; 79386 proto$2.valueOf = valueOf$1; 79387 proto$2._bubble = bubble; 79388 proto$2.clone = clone$1; 79389 proto$2.get = get$2; 79390 proto$2.milliseconds = milliseconds; 79391 proto$2.seconds = seconds; 79392 proto$2.minutes = minutes; 79393 proto$2.hours = hours; 79394 proto$2.days = days; 79395 proto$2.weeks = weeks; 79396 proto$2.months = months; 79397 proto$2.years = years; 79398 proto$2.humanize = humanize; 79399 proto$2.toISOString = toISOString$1; 79400 proto$2.toString = toISOString$1; 79401 proto$2.toJSON = toISOString$1; 79402 proto$2.locale = locale; 79403 proto$2.localeData = localeData; 79404 79405 proto$2.toIsoString = deprecate( 79406 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', 79407 toISOString$1 79408 ); 79409 proto$2.lang = lang; 79410 79411 // FORMATTING 79412 79413 addFormatToken('X', 0, 0, 'unix'); 79414 addFormatToken('x', 0, 0, 'valueOf'); 79415 79416 // PARSING 79417 79418 addRegexToken('x', matchSigned); 79419 addRegexToken('X', matchTimestamp); 79420 addParseToken('X', function (input, array, config) { 79421 config._d = new Date(parseFloat(input) * 1000); 79422 }); 79423 addParseToken('x', function (input, array, config) { 79424 config._d = new Date(toInt(input)); 79425 }); 79426 79427 //! moment.js 79428 79429 hooks.version = '2.30.1'; 79430 79431 setHookCallback(createLocal); 79432 79433 hooks.fn = proto; 79434 hooks.min = min; 79435 hooks.max = max; 79436 hooks.now = now; 79437 hooks.utc = createUTC; 79438 hooks.unix = createUnix; 79439 hooks.months = listMonths; 79440 hooks.isDate = isDate; 79441 hooks.locale = getSetGlobalLocale; 79442 hooks.invalid = createInvalid; 79443 hooks.duration = createDuration; 79444 hooks.isMoment = isMoment; 79445 hooks.weekdays = listWeekdays; 79446 hooks.parseZone = createInZone; 79447 hooks.localeData = getLocale; 79448 hooks.isDuration = isDuration; 79449 hooks.monthsShort = listMonthsShort; 79450 hooks.weekdaysMin = listWeekdaysMin; 79451 hooks.defineLocale = defineLocale; 79452 hooks.updateLocale = updateLocale; 79453 hooks.locales = listLocales; 79454 hooks.weekdaysShort = listWeekdaysShort; 79455 hooks.normalizeUnits = normalizeUnits; 79456 hooks.relativeTimeRounding = getSetRelativeTimeRounding; 79457 hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; 79458 hooks.calendarFormat = getCalendarFormat; 79459 hooks.prototype = proto; 79460 79461 // currently HTML5 input type only supports 24-hour formats 79462 hooks.HTML5_FMT = { 79463 DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" /> 79464 DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" /> 79465 DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" /> 79466 DATE: 'YYYY-MM-DD', // <input type="date" /> 79467 TIME: 'HH:mm', // <input type="time" /> 79468 TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" /> 79469 TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" /> 79470 WEEK: 'GGGG-[W]WW', // <input type="week" /> 79471 MONTH: 'YYYY-MM', // <input type="month" /> 79472 }; 79473 79474 return hooks; 79475 79476}))); 79477 79478 79479/***/ }), 79480
vendor: 85,598 bytes, lines 79481-82763
79481/***/ "./node_modules/owl.carousel2/dist/owl.carousel.js": 79482/*!*********************************************************!*\ 79483 !*** ./node_modules/owl.carousel2/dist/owl.carousel.js ***! 79484 \*********************************************************/ 79485/***/ (() => { 79486 79487/** 79488 * Owl Carousel v2.2.1 79489 * Copyright 2013-2017 Saurabh Sharma 79490 * Licensed under () 79491 */ 79492/** 79493 * Owl carousel 79494 * @version 2.1.6 79495 * @author Bartosz Wojciechowski 79496 * @author Saurabh Sharma 79497 * @license The MIT License (MIT) 79498 * @todo Lazy Load Icon 79499 * @todo prevent animationend bubling 79500 * @todo itemsScaleUp 79501 * @todo Test Zepto 79502 * @todo stagePadding calculate wrong active classes 79503 */ 79504;(function($, window, document, undefined) { 79505 79506 /** 79507 * Creates a carousel. 79508 * @class The Owl Carousel. 79509 * @public 79510 * @param {HTMLElement|jQuery} element - The element to create the carousel for. 79511 * @param {Object} [options] - The options 79512 */ 79513 function Owl(element, options) { 79514 79515 /** 79516 * Current settings for the carousel. 79517 * @public 79518 */ 79519 this.settings = null; 79520 79521 /** 79522 * Current options set by the caller including defaults. 79523 * @public 79524 */ 79525 this.options = $.extend({}, Owl.Defaults, options); 79526 79527 /** 79528 * Plugin element. 79529 * @public 79530 */ 79531 this.$element = $(element); 79532 79533 /** 79534 * Proxied event handlers. 79535 * @protected 79536 */ 79537 this._handlers = {}; 79538 79539 /** 79540 * References to the running plugins of this carousel. 79541 * @protected 79542 */ 79543 this._plugins = {}; 79544 79545 /** 79546 * Currently suppressed events to prevent them from beeing retriggered. 79547 * @protected 79548 */ 79549 this._supress = {}; 79550 79551 /** 79552 * Absolute current position. 79553 * @protected 79554 */ 79555 this._current = null; 79556 79557 /** 79558 * Animation speed in milliseconds. 79559 * @protected 79560 */ 79561 this._speed = null; 79562 79563 /** 79564 * Coordinates of all items in pixel. 79565 * @todo The name of this member is missleading. 79566 * @protected 79567 */ 79568 this._coordinates = []; 79569 79570 /** 79571 * Current breakpoint. 79572 * @todo Real media queries would be nice. 79573 * @protected 79574 */ 79575 this._breakpoint = null; 79576 79577 /** 79578 * Current width of the plugin element. 79579 */ 79580 this._width = null; 79581 79582 /** 79583 * All real items. 79584 * @protected 79585 */ 79586 this._items = []; 79587 79588 /** 79589 * All cloned items. 79590 * @protected 79591 */ 79592 this._clones = []; 79593 79594 /** 79595 * Merge values of all items. 79596 * @todo Maybe this could be part of a plugin. 79597 * @protected 79598 */ 79599 this._mergers = []; 79600 79601 /** 79602 * Widths of all items. 79603 */ 79604 this._widths = []; 79605 79606 /** 79607 * Invalidated parts within the update process. 79608 * @protected 79609 */ 79610 this._invalidated = {}; 79611 79612 /** 79613 * Ordered list of workers for the update process. 79614 * @protected 79615 */ 79616 this._pipe = []; 79617 79618 /** 79619 * Current state information for the drag operation. 79620 * @todo #261 79621 * @protected 79622 */ 79623 this._drag = { 79624 time: null, 79625 target: null, 79626 pointer: null, 79627 stage: { 79628 start: null, 79629 current: null 79630 }, 79631 direction: null 79632 }; 79633 79634 /** 79635 * Current state information and their tags. 79636 * @type {Object} 79637 * @protected 79638 */ 79639 this._states = { 79640 current: {}, 79641 tags: { 79642 'initializing': [ 'busy' ], 79643 'animating': [ 'busy' ], 79644 'dragging': [ 'interacting' ] 79645 } 79646 }; 79647 79648 $.each([ 'onResize', 'onThrottledResize' ], $.proxy(function(i, handler) { 79649 this._handlers[handler] = $.proxy(this[handler], this); 79650 }, this)); 79651 79652 $.each(Owl.Plugins, $.proxy(function(key, plugin) { 79653 this._plugins[key.charAt(0).toLowerCase() + key.slice(1)] 79654 = new plugin(this); 79655 }, this)); 79656 79657 $.each(Owl.Workers, $.proxy(function(priority, worker) { 79658 this._pipe.push({ 79659 'filter': worker.filter, 79660 'run': $.proxy(worker.run, this) 79661 }); 79662 }, this)); 79663 79664 this.setup(); 79665 this.initialize(); 79666 } 79667 79668 /** 79669 * Default options for the carousel. 79670 * @public 79671 */ 79672 Owl.Defaults = { 79673 items: 3, 79674 loop: false, 79675 center: false, 79676 rewind: false, 79677 79678 mouseDrag: true, 79679 touchDrag: true, 79680 pullDrag: true, 79681 freeDrag: false, 79682 79683 margin: 0, 79684 stagePadding: 0, 79685 79686 merge: false, 79687 mergeFit: true, 79688 autoWidth: false, 79689 79690 startPosition: 0, 79691 rtl: false, 79692 79693 smartSpeed: 250, 79694 fluidSpeed: false, 79695 dragEndSpeed: false, 79696 79697 responsive: {}, 79698 responsiveRefreshRate: 200, 79699 responsiveBaseElement: window, 79700 79701 fallbackEasing: 'swing', 79702 79703 info: false, 79704 79705 nestedItemSelector: false, 79706 itemElement: 'div', 79707 stageElement: 'div', 79708 79709 refreshClass: 'owl-refresh', 79710 loadedClass: 'owl-loaded', 79711 loadingClass: 'owl-loading', 79712 rtlClass: 'owl-rtl', 79713 responsiveClass: 'owl-responsive', 79714 dragClass: 'owl-drag', 79715 itemClass: 'owl-item', 79716 stageClass: 'owl-stage', 79717 stageOuterClass: 'owl-stage-outer', 79718 grabClass: 'owl-grab' 79719 }; 79720 79721 /** 79722 * Enumeration for width. 79723 * @public 79724 * @readonly 79725 * @enum {String} 79726 */ 79727 Owl.Width = { 79728 Default: 'default', 79729 Inner: 'inner', 79730 Outer: 'outer' 79731 }; 79732 79733 /** 79734 * Enumeration for types. 79735 * @public 79736 * @readonly 79737 * @enum {String} 79738 */ 79739 Owl.Type = { 79740 Event: 'event', 79741 State: 'state' 79742 }; 79743 79744 /** 79745 * Contains all registered plugins. 79746 * @public 79747 */ 79748 Owl.Plugins = {}; 79749 79750 /** 79751 * List of workers involved in the update process. 79752 */ 79753 Owl.Workers = [ { 79754 filter: [ 'width', 'settings' ], 79755 run: function() { 79756 this._width = this.$element.width(); 79757 } 79758 }, { 79759 filter: [ 'width', 'items', 'settings' ], 79760 run: function(cache) { 79761 cache.current = this._items && this._items[this.relative(this._current)]; 79762 } 79763 }, { 79764 filter: [ 'items', 'settings' ], 79765 run: function() { 79766 this.$stage.children('.cloned').remove(); 79767 } 79768 }, { 79769 filter: [ 'width', 'items', 'settings' ], 79770 run: function(cache) { 79771 var margin = this.settings.margin || '', 79772 grid = !this.settings.autoWidth, 79773 rtl = this.settings.rtl, 79774 css = { 79775 'width': 'auto', 79776 'margin-left': rtl ? margin : '', 79777 'margin-right': rtl ? '' : margin 79778 }; 79779 79780 !grid && this.$stage.children().css(css); 79781 79782 cache.css = css; 79783 } 79784 }, { 79785 filter: [ 'width', 'items', 'settings' ], 79786 run: function(cache) { 79787 var width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, 79788 merge = null, 79789 iterator = this._items.length, 79790 grid = !this.settings.autoWidth, 79791 widths = []; 79792 79793 cache.items = { 79794 merge: false, 79795 width: width 79796 }; 79797 79798 while (iterator--) { 79799 merge = this._mergers[iterator]; 79800 merge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge; 79801 79802 cache.items.merge = merge > 1 || cache.items.merge; 79803 79804 widths[iterator] = !grid ? this._items[iterator].width() : width * merge; 79805 } 79806 79807 this._widths = widths; 79808 } 79809 }, { 79810 filter: [ 'items', 'settings' ], 79811 run: function() { 79812 var clones = [], 79813 items = this._items, 79814 settings = this.settings, 79815 // TODO: Should be computed from number of min width items in stage 79816 view = Math.max(settings.items * 2, 4), 79817 size = Math.ceil(items.length / 2) * 2, 79818 repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0, 79819 append = '', 79820 prepend = ''; 79821 79822 repeat /= 2; 79823 79824 while (repeat--) { 79825 // Switch to only using appended clones 79826 clones.push(this.normalize(clones.length / 2, true)); 79827 $(items[clones[clones.length - 1]][0]).clone(true).addClass('cloned').appendTo(this.$stage); 79828 clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true)); 79829 $(items[clones[clones.length - 1]][0]).clone(true).addClass('cloned').prependTo(this.$stage); 79830 } 79831 79832 this._clones = clones; 79833 79834 } 79835 }, { 79836 filter: [ 'width', 'items', 'settings' ], 79837 run: function() { 79838 var rtl = this.settings.rtl ? 1 : -1, 79839 size = this._clones.length + this._items.length, 79840 iterator = -1, 79841 previous = 0, 79842 current = 0, 79843 coordinates = []; 79844 79845 while (++iterator < size) { 79846 previous = coordinates[iterator - 1] || 0; 79847 current = this._widths[this.relative(iterator)] + this.settings.margin; 79848 coordinates.push(previous + current * rtl); 79849 } 79850 79851 this._coordinates = coordinates; 79852 } 79853 }, { 79854 filter: [ 'width', 'items', 'settings' ], 79855 run: function() { 79856 var padding = this.settings.stagePadding, 79857 coordinates = this._coordinates, 79858 css = { 79859 'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2, 79860 'padding-left': padding || '', 79861 'padding-right': padding || '' 79862 }; 79863 79864 this.$stage.css(css); 79865 } 79866 }, { 79867 filter: [ 'width', 'items', 'settings' ], 79868 run: function(cache) { 79869 var iterator = this._coordinates.length, 79870 grid = !this.settings.autoWidth, 79871 items = this.$stage.children(); 79872 79873 if (grid && cache.items.merge) { 79874 while (iterator--) { 79875 cache.css.width = this._widths[this.relative(iterator)]; 79876 items.eq(iterator).css(cache.css); 79877 } 79878 } else if (grid) { 79879 cache.css.width = cache.items.width; 79880 items.css(cache.css); 79881 } 79882 } 79883 }, { 79884 filter: [ 'items' ], 79885 run: function() { 79886 this._coordinates.length < 1 && this.$stage.removeAttr('style'); 79887 } 79888 }, { 79889 filter: [ 'width', 'items', 'settings' ], 79890 run: function(cache) { 79891 cache.current = cache.current ? this.$stage.children().index(cache.current) : 0; 79892 cache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current)); 79893 this.reset(cache.current); 79894 } 79895 }, { 79896 filter: [ 'position' ], 79897 run: function() { 79898 this.animate(this.coordinates(this._current)); 79899 } 79900 }, { 79901 filter: [ 'width', 'position', 'items', 'settings' ], 79902 run: function() { 79903 var rtl = this.settings.rtl ? 1 : -1, 79904 padding = this.settings.stagePadding * 2, 79905 begin = this.coordinates(this.current()) + padding, 79906 end = begin + this.width() * rtl, 79907 inner, outer, matches = [], i, n; 79908 79909 for (i = 0, n = this._coordinates.length; i < n; i++) { 79910 inner = this._coordinates[i - 1] || 0; 79911 outer = Math.abs(this._coordinates[i]) + padding * rtl; 79912 79913 if ((this.op(inner, '<=', begin) && (this.op(inner, '>', end))) 79914 || (this.op(outer, '<', begin) && this.op(outer, '>', end))) { 79915 matches.push(i); 79916 } 79917 } 79918 79919 this.$stage.children('.active').removeClass('active'); 79920 this.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active'); 79921 79922 if (this.settings.center) { 79923 this.$stage.children('.center').removeClass('center'); 79924 this.$stage.children().eq(this.current()).addClass('center'); 79925 } 79926 } 79927 } ]; 79928 79929 /** 79930 * Initializes the carousel. 79931 * @protected 79932 */ 79933 Owl.prototype.initialize = function() { 79934 this.enter('initializing'); 79935 this.trigger('initialize'); 79936 79937 this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl); 79938 79939 if (this.settings.autoWidth && !this.is('pre-loading')) { 79940 var imgs, nestedSelector, width; 79941 imgs = this.$element.find('img'); 79942 nestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined; 79943 width = this.$element.children(nestedSelector).width(); 79944 79945 if (imgs.length && width <= 0) { 79946 this.preloadAutoWidthImages(imgs); 79947 } 79948 } 79949 79950 this.$element.addClass(this.options.loadingClass); 79951 79952 // create stage 79953 this.$stage = $('<' + this.settings.stageElement + ' class="' + this.settings.stageClass + '"/>') 79954 .wrap('<div class="' + this.settings.stageOuterClass + '"/>'); 79955 79956 // append stage 79957 this.$element.append(this.$stage.parent()); 79958 79959 // append content 79960 this.replace(this.$element.children().not(this.$stage.parent())); 79961 79962 // check visibility 79963 if (this.$element.is(':visible')) { 79964 // update view 79965 this.refresh(); 79966 } else { 79967 // invalidate width 79968 this.invalidate('width'); 79969 } 79970 79971 this.$element 79972 .removeClass(this.options.loadingClass) 79973 .addClass(this.options.loadedClass); 79974 79975 // register event handlers 79976 this.registerEventHandlers(); 79977 79978 this.leave('initializing'); 79979 this.trigger('initialized'); 79980 }; 79981 79982 /** 79983 * Setups the current settings. 79984 * @todo Remove responsive classes. Why should adaptive designs be brought into IE8? 79985 * @todo Support for media queries by using `matchMedia` would be nice. 79986 * @public 79987 */ 79988 Owl.prototype.setup = function() { 79989 var viewport = this.viewport(), 79990 overwrites = this.options.responsive, 79991 match = -1, 79992 settings = null; 79993 79994 if (!overwrites) { 79995 settings = $.extend({}, this.options); 79996 } else { 79997 $.each(overwrites, function(breakpoint) { 79998 if (breakpoint <= viewport && breakpoint > match) { 79999 match = Number(breakpoint); 80000 } 80001 }); 80002 80003 settings = $.extend({}, this.options, overwrites[match]); 80004 if (typeof settings.stagePadding === 'function') { 80005 settings.stagePadding = settings.stagePadding(); 80006 } 80007 delete settings.responsive; 80008 80009 // responsive class 80010 if (settings.responsiveClass) { 80011 this.$element.attr('class', 80012 this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\S+\\s', 'g'), '$1' + match) 80013 ); 80014 } 80015 } 80016 80017 this.trigger('change', { property: { name: 'settings', value: settings } }); 80018 this._breakpoint = match; 80019 this.settings = settings; 80020 this.invalidate('settings'); 80021 this.trigger('changed', { property: { name: 'settings', value: this.settings } }); 80022 }; 80023 80024 /** 80025 * Updates option logic if necessery. 80026 * @protected 80027 */ 80028 Owl.prototype.optionsLogic = function() { 80029 if (this.settings.autoWidth) { 80030 this.settings.stagePadding = false; 80031 this.settings.merge = false; 80032 } 80033 }; 80034 80035 /** 80036 * Prepares an item before add. 80037 * @todo Rename event parameter `content` to `item`. 80038 * @protected 80039 * @returns {jQuery|HTMLElement} - The item container. 80040 */ 80041 Owl.prototype.prepare = function(item) { 80042 var event = this.trigger('prepare', { content: item }); 80043 80044 if (!event.data) { 80045 event.data = $('<' + this.settings.itemElement + '/>') 80046 .addClass(this.options.itemClass).append(item) 80047 } 80048 80049 this.trigger('prepared', { content: event.data }); 80050 80051 return event.data; 80052 }; 80053 80054 /** 80055 * Updates the view. 80056 * @public 80057 */ 80058 Owl.prototype.update = function() { 80059 var i = 0, 80060 n = this._pipe.length, 80061 filter = $.proxy(function(p) { return this[p] }, this._invalidated), 80062 cache = {}; 80063 80064 while (i < n) { 80065 if (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) { 80066 this._pipe[i].run(cache); 80067 } 80068 i++; 80069 } 80070 80071 this._invalidated = {}; 80072 80073 !this.is('valid') && this.enter('valid'); 80074 }; 80075 80076 /** 80077 * Gets the width of the view. 80078 * @public 80079 * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return. 80080 * @returns {Number} - The width of the view in pixel. 80081 */ 80082 Owl.prototype.width = function(dimension) { 80083 dimension = dimension || Owl.Width.Default; 80084 switch (dimension) { 80085 case Owl.Width.Inner: 80086 case Owl.Width.Outer: 80087 return this._width; 80088 default: 80089 return this._width - this.settings.stagePadding * 2 + this.settings.margin; 80090 } 80091 }; 80092 80093 /** 80094 * Refreshes the carousel primarily for adaptive purposes. 80095 * @public 80096 */ 80097 Owl.prototype.refresh = function() { 80098 this.enter('refreshing'); 80099 this.trigger('refresh'); 80100 80101 this.setup(); 80102 80103 this.optionsLogic(); 80104 80105 this.$element.addClass(this.options.refreshClass); 80106 80107 this.update(); 80108 80109 this.$element.removeClass(this.options.refreshClass); 80110 80111 this.leave('refreshing'); 80112 this.trigger('refreshed'); 80113 }; 80114 80115 /** 80116 * Checks window `resize` event. 80117 * @protected 80118 */ 80119 Owl.prototype.onThrottledResize = function() { 80120 window.clearTimeout(this.resizeTimer); 80121 this.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate); 80122 }; 80123 80124 /** 80125 * Checks window `resize` event. 80126 * @protected 80127 */ 80128 Owl.prototype.onResize = function() { 80129 if (!this._items.length) { 80130 return false; 80131 } 80132 80133 if (this._width === this.$element.width()) { 80134 return false; 80135 } 80136 80137 if (!this.$element.is(':visible')) { 80138 return false; 80139 } 80140 80141 this.enter('resizing'); 80142 80143 if (this.trigger('resize').isDefaultPrevented()) { 80144 this.leave('resizing'); 80145 return false; 80146 } 80147 80148 this.invalidate('width'); 80149 80150 this.refresh(); 80151 80152 this.leave('resizing'); 80153 this.trigger('resized'); 80154 }; 80155 80156 /** 80157 * Registers event handlers. 80158 * @todo Check `msPointerEnabled` 80159 * @todo #261 80160 * @protected 80161 */ 80162 Owl.prototype.registerEventHandlers = function() { 80163 if ($.support.transition) { 80164 this.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this)); 80165 } 80166 80167 if (this.settings.responsive !== false) { 80168 this.on(window, 'resize', this._handlers.onThrottledResize); 80169 } 80170 80171 if (this.settings.mouseDrag) { 80172 this.$element.addClass(this.options.dragClass); 80173 this.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this)); 80174 this.$stage.on('dragstart.owl.core selectstart.owl.core', function() { return false }); 80175 } 80176 80177 if (this.settings.touchDrag){ 80178 this.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this)); 80179 this.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this)); 80180 } 80181 }; 80182 80183 /** 80184 * Handles `touchstart` and `mousedown` events. 80185 * @todo Horizontal swipe threshold as option 80186 * @todo #261 80187 * @protected 80188 * @param {Event} event - The event arguments. 80189 */ 80190 Owl.prototype.onDragStart = function(event) { 80191 var stage = null; 80192 80193 if (event.which === 3) { 80194 return; 80195 } 80196 80197 if ($.support.transform) { 80198 stage = this.$stage.css('transform').replace(/.*\(|\)| /g, '').split(','); 80199 stage = { 80200 x: stage[stage.length === 16 ? 12 : 4], 80201 y: stage[stage.length === 16 ? 13 : 5] 80202 }; 80203 } else { 80204 stage = this.$stage.position(); 80205 stage = { 80206 x: this.settings.rtl ? 80207 stage.left + this.$stage.width() - this.width() + this.settings.margin : 80208 stage.left, 80209 y: stage.top 80210 }; 80211 } 80212 80213 if (this.is('animating')) { 80214 $.support.transform ? this.animate(stage.x) : this.$stage.stop() 80215 this.invalidate('position'); 80216 } 80217 80218 this.$element.toggleClass(this.options.grabClass, event.type === 'mousedown'); 80219 80220 this.speed(0); 80221 80222 this._drag.time = new Date().getTime(); 80223 this._drag.target = $(event.target); 80224 this._drag.stage.start = stage; 80225 this._drag.stage.current = stage; 80226 this._drag.pointer = this.pointer(event); 80227 80228 $(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this)); 80229 80230 $(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event) { 80231 var delta = this.difference(this._drag.pointer, this.pointer(event)); 80232 80233 $(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this)); 80234 80235 if (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) { 80236 return; 80237 } 80238 80239 event.preventDefault(); 80240 80241 this.enter('dragging'); 80242 this.trigger('drag'); 80243 }, this)); 80244 }; 80245 80246 /** 80247 * Handles the `touchmove` and `mousemove` events. 80248 * @todo #261 80249 * @protected 80250 * @param {Event} event - The event arguments. 80251 */ 80252 Owl.prototype.onDragMove = function(event) { 80253 var minimum = null, 80254 maximum = null, 80255 pull = null, 80256 delta = this.difference(this._drag.pointer, this.pointer(event)), 80257 stage = this.difference(this._drag.stage.start, delta); 80258 80259 if (!this.is('dragging')) { 80260 return; 80261 } 80262 80263 event.preventDefault(); 80264 80265 if (this.settings.loop) { 80266 minimum = this.coordinates(this.minimum()); 80267 maximum = this.coordinates(this.maximum() + 1) - minimum; 80268 stage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum; 80269 } else { 80270 minimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()); 80271 maximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()); 80272 pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0; 80273 stage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull); 80274 } 80275 80276 this._drag.stage.current = stage; 80277 80278 this.animate(stage.x); 80279 }; 80280 80281 /** 80282 * Handles the `touchend` and `mouseup` events. 80283 * @todo #261 80284 * @todo Threshold for click event 80285 * @protected 80286 * @param {Event} event - The event arguments. 80287 */ 80288 Owl.prototype.onDragEnd = function(event) { 80289 var delta = this.difference(this._drag.pointer, this.pointer(event)), 80290 stage = this._drag.stage.current, 80291 direction = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right'; 80292 80293 $(document).off('.owl.core'); 80294 80295 this.$element.removeClass(this.options.grabClass); 80296 80297 if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) { 80298 this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed); 80299 this.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction)); 80300 this.invalidate('position'); 80301 this.update(); 80302 80303 this._drag.direction = direction; 80304 80305 if (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) { 80306 this._drag.target.one('click.owl.core', function() { return false; }); 80307 } 80308 } 80309 80310 if (!this.is('dragging')) { 80311 return; 80312 } 80313 80314 this.leave('dragging'); 80315 this.trigger('dragged'); 80316 }; 80317 80318 /** 80319 * Gets absolute position of the closest item for a coordinate. 80320 * @todo Setting `freeDrag` makes `closest` not reusable. See #165. 80321 * @protected 80322 * @param {Number} coordinate - The coordinate in pixel. 80323 * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`. 80324 * @return {Number} - The absolute position of the closest item. 80325 */ 80326 Owl.prototype.closest = function(coordinate, direction) { 80327 var position = -1, 80328 pull = 30, 80329 width = this.width(), 80330 coordinates = this.coordinates(); 80331 80332 if (!this.settings.freeDrag) { 80333 // check closest item 80334 $.each(coordinates, $.proxy(function(index, value) { 80335 // on a left pull, check on current index 80336 if (direction === 'left' && coordinate > value - pull && coordinate < value + pull) { 80337 position = index; 80338 // on a right pull, check on previous index 80339 // to do so, subtract width from value and set position = index + 1 80340 } else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) { 80341 position = index + 1; 80342 } else if (this.op(coordinate, '<', value) 80343 && this.op(coordinate, '>', coordinates[index + 1] || value - width)) { 80344 position = direction === 'left' ? index + 1 : index; 80345 } 80346 return position === -1; 80347 }, this)); 80348 } 80349 80350 if (!this.settings.loop) { 80351 // non loop boundries 80352 if (this.op(coordinate, '>', coordinates[this.minimum()])) { 80353 position = coordinate = this.minimum(); 80354 } else if (this.op(coordinate, '<', coordinates[this.maximum()])) { 80355 position = coordinate = this.maximum(); 80356 } 80357 } 80358 80359 return position; 80360 }; 80361 80362 /** 80363 * Animates the stage. 80364 * @todo #270 80365 * @public 80366 * @param {Number} coordinate - The coordinate in pixels. 80367 */ 80368 Owl.prototype.animate = function(coordinate) { 80369 var animate = this.speed() > 0; 80370 80371 this.is('animating') && this.onTransitionEnd(); 80372 80373 if (animate) { 80374 this.enter('animating'); 80375 this.trigger('translate'); 80376 } 80377 80378 if ($.support.transform3d && $.support.transition) { 80379 this.$stage.css({ 80380 transform: 'translate3d(' + coordinate + 'px,0px,0px)', 80381 transition: (this.speed() / 1000) + 's' 80382 }); 80383 } else if (animate) { 80384 this.$stage.animate({ 80385 left: coordinate + 'px' 80386 }, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this)); 80387 } else { 80388 this.$stage.css({ 80389 left: coordinate + 'px' 80390 }); 80391 } 80392 }; 80393 80394 /** 80395 * Checks whether the carousel is in a specific state or not. 80396 * @param {String} state - The state to check. 80397 * @returns {Boolean} - The flag which indicates if the carousel is busy. 80398 */ 80399 Owl.prototype.is = function(state) { 80400 return this._states.current[state] && this._states.current[state] > 0; 80401 }; 80402 80403 /** 80404 * Sets the absolute position of the current item. 80405 * @public 80406 * @param {Number} [position] - The new absolute position or nothing to leave it unchanged. 80407 * @returns {Number} - The absolute position of the current item. 80408 */ 80409 Owl.prototype.current = function(position) { 80410 if (position === undefined) { 80411 return this._current; 80412 } 80413 80414 if (this._items.length === 0) { 80415 return undefined; 80416 } 80417 80418 position = this.normalize(position); 80419 80420 if (this._current !== position) { 80421 var event = this.trigger('change', { property: { name: 'position', value: position } }); 80422 80423 if (event.data !== undefined) { 80424 position = this.normalize(event.data); 80425 } 80426 80427 this._current = position; 80428 80429 this.invalidate('position'); 80430 80431 this.trigger('changed', { property: { name: 'position', value: this._current } }); 80432 } 80433 80434 return this._current; 80435 }; 80436 80437 /** 80438 * Invalidates the given part of the update routine. 80439 * @param {String} [part] - The part to invalidate. 80440 * @returns {Array.<String>} - The invalidated parts. 80441 */ 80442 Owl.prototype.invalidate = function(part) { 80443 if ($.type(part) === 'string') { 80444 this._invalidated[part] = true; 80445 this.is('valid') && this.leave('valid'); 80446 } 80447 return $.map(this._invalidated, function(v, i) { return i }); 80448 }; 80449 80450 /** 80451 * Resets the absolute position of the current item. 80452 * @public 80453 * @param {Number} position - The absolute position of the new item. 80454 */ 80455 Owl.prototype.reset = function(position) { 80456 position = this.normalize(position); 80457 80458 if (position === undefined) { 80459 return; 80460 } 80461 80462 this._speed = 0; 80463 this._current = position; 80464 80465 this.suppress([ 'translate', 'translated' ]); 80466 80467 this.animate(this.coordinates(position)); 80468 80469 this.release([ 'translate', 'translated' ]); 80470 }; 80471 80472 /** 80473 * Normalizes an absolute or a relative position of an item. 80474 * @public 80475 * @param {Number} position - The absolute or relative position to normalize. 80476 * @param {Boolean} [relative=false] - Whether the given position is relative or not. 80477 * @returns {Number} - The normalized position. 80478 */ 80479 Owl.prototype.normalize = function(position, relative) { 80480 var n = this._items.length, 80481 m = relative ? 0 : this._clones.length; 80482 80483 if (!this.isNumeric(position) || n < 1) { 80484 position = undefined; 80485 } else if (position < 0 || position >= n + m) { 80486 position = ((position - m / 2) % n + n) % n + m / 2; 80487 } 80488 80489 return position; 80490 }; 80491 80492 /** 80493 * Converts an absolute position of an item into a relative one. 80494 * @public 80495 * @param {Number} position - The absolute position to convert. 80496 * @returns {Number} - The converted position. 80497 */ 80498 Owl.prototype.relative = function(position) { 80499 position -= this._clones.length / 2; 80500 return this.normalize(position, true); 80501 }; 80502 80503 /** 80504 * Gets the maximum position for the current item. 80505 * @public 80506 * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position. 80507 * @returns {Number} 80508 */ 80509 Owl.prototype.maximum = function(relative) { 80510 var settings = this.settings, 80511 maximum = this._coordinates.length, 80512 iterator, 80513 reciprocalItemsWidth, 80514 elementWidth; 80515 80516 if (settings.loop) { 80517 maximum = this._clones.length / 2 + this._items.length - 1; 80518 } else if (settings.autoWidth || settings.merge) { 80519 iterator = this._items.length; 80520 reciprocalItemsWidth = this._items[--iterator].width(); 80521 elementWidth = this.$element.width(); 80522 while (iterator--) { 80523 reciprocalItemsWidth += this._items[iterator].width() + this.settings.margin; 80524 if (reciprocalItemsWidth > elementWidth) { 80525 break; 80526 } 80527 } 80528 maximum = iterator + 1; 80529 } else if (settings.center) { 80530 maximum = this._items.length - 1; 80531 } else { 80532 maximum = this._items.length - settings.items; 80533 } 80534 80535 if (relative) { 80536 maximum -= this._clones.length / 2; 80537 } 80538 80539 return Math.max(maximum, 0); 80540 }; 80541 80542 /** 80543 * Gets the minimum position for the current item. 80544 * @public 80545 * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position. 80546 * @returns {Number} 80547 */ 80548 Owl.prototype.minimum = function(relative) { 80549 return relative ? 0 : this._clones.length / 2; 80550 }; 80551 80552 /** 80553 * Gets an item at the specified relative position. 80554 * @public 80555 * @param {Number} [position] - The relative position of the item. 80556 * @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given. 80557 */ 80558 Owl.prototype.items = function(position) { 80559 if (position === undefined) { 80560 return this._items.slice(); 80561 } 80562 80563 position = this.normalize(position, true); 80564 return this._items[position]; 80565 }; 80566 80567 /** 80568 * Gets an item at the specified relative position. 80569 * @public 80570 * @param {Number} [position] - The relative position of the item. 80571 * @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given. 80572 */ 80573 Owl.prototype.mergers = function(position) { 80574 if (position === undefined) { 80575 return this._mergers.slice(); 80576 } 80577 80578 position = this.normalize(position, true); 80579 return this._mergers[position]; 80580 }; 80581 80582 /** 80583 * Gets the absolute positions of clones for an item. 80584 * @public 80585 * @param {Number} [position] - The relative position of the item. 80586 * @returns {Array.<Number>} - The absolute positions of clones for the item or all if no position was given. 80587 */ 80588 Owl.prototype.clones = function(position) { 80589 var odd = this._clones.length / 2, 80590 even = odd + this._items.length, 80591 map = function(index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 }; 80592 80593 if (position === undefined) { 80594 return $.map(this._clones, function(v, i) { return map(i) }); 80595 } 80596 80597 return $.map(this._clones, function(v, i) { return v === position ? map(i) : null }); 80598 }; 80599 80600 /** 80601 * Sets the current animation speed. 80602 * @public 80603 * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged. 80604 * @returns {Number} - The current animation speed in milliseconds. 80605 */ 80606 Owl.prototype.speed = function(speed) { 80607 if (speed !== undefined) { 80608 this._speed = speed; 80609 } 80610 80611 return this._speed; 80612 }; 80613 80614 /** 80615 * Gets the coordinate of an item. 80616 * @todo The name of this method is missleanding. 80617 * @public 80618 * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`. 80619 * @returns {Number|Array.<Number>} - The coordinate of the item in pixel or all coordinates. 80620 */ 80621 Owl.prototype.coordinates = function(position) { 80622 var multiplier = 1, 80623 newPosition = position - 1, 80624 coordinate; 80625 80626 if (position === undefined) { 80627 return $.map(this._coordinates, $.proxy(function(coordinate, index) { 80628 return this.coordinates(index); 80629 }, this)); 80630 } 80631 80632 if (this.settings.center) { 80633 if (this.settings.rtl) { 80634 multiplier = -1; 80635 newPosition = position + 1; 80636 } 80637 80638 coordinate = this._coordinates[position]; 80639 coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier; 80640 } else { 80641 coordinate = this._coordinates[newPosition] || 0; 80642 } 80643 80644 coordinate = Math.ceil(coordinate); 80645 80646 return coordinate; 80647 }; 80648 80649 /** 80650 * Calculates the speed for a translation. 80651 * @protected 80652 * @param {Number} from - The absolute position of the start item. 80653 * @param {Number} to - The absolute position of the target item. 80654 * @param {Number} [factor=undefined] - The time factor in milliseconds. 80655 * @returns {Number} - The time in milliseconds for the translation. 80656 */ 80657 Owl.prototype.duration = function(from, to, factor) { 80658 if (factor === 0) { 80659 return 0; 80660 } 80661 80662 return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed)); 80663 }; 80664 80665 /** 80666 * Slides to the specified item. 80667 * @public 80668 * @param {Number} position - The position of the item. 80669 * @param {Number} [speed] - The time in milliseconds for the transition. 80670 */ 80671 Owl.prototype.to = function(position, speed) { 80672 var current = this.current(), 80673 revert = null, 80674 distance = position - this.relative(current), 80675 direction = (distance > 0) - (distance < 0), 80676 items = this._items.length, 80677 minimum = this.minimum(), 80678 maximum = this.maximum(); 80679 80680 if (this.settings.loop) { 80681 if (!this.settings.rewind && Math.abs(distance) > items / 2) { 80682 distance += direction * -1 * items; 80683 } 80684 80685 position = current + distance; 80686 revert = ((position - minimum) % items + items) % items + minimum; 80687 80688 if (revert !== position && revert - distance <= maximum && revert - distance > 0) { 80689 current = revert - distance; 80690 position = revert; 80691 this.reset(current); 80692 } 80693 } else if (this.settings.rewind) { 80694 maximum += 1; 80695 position = (position % maximum + maximum) % maximum; 80696 } else { 80697 position = Math.max(minimum, Math.min(maximum, position)); 80698 } 80699 80700 this.speed(this.duration(current, position, speed)); 80701 this.current(position); 80702 80703 if (this.$element.is(':visible')) { 80704 this.update(); 80705 } 80706 }; 80707 80708 /** 80709 * Slides to the next item. 80710 * @public 80711 * @param {Number} [speed] - The time in milliseconds for the transition. 80712 */ 80713 Owl.prototype.next = function(speed) { 80714 speed = speed || false; 80715 this.to(this.relative(this.current()) + 1, speed); 80716 }; 80717 80718 /** 80719 * Slides to the previous item. 80720 * @public 80721 * @param {Number} [speed] - The time in milliseconds for the transition. 80722 */ 80723 Owl.prototype.prev = function(speed) { 80724 speed = speed || false; 80725 this.to(this.relative(this.current()) - 1, speed); 80726 }; 80727 80728 /** 80729 * Handles the end of an animation. 80730 * @protected 80731 * @param {Event} event - The event arguments. 80732 */ 80733 Owl.prototype.onTransitionEnd = function(event) { 80734 80735 // if css2 animation then event object is undefined 80736 if (event !== undefined) { 80737 event.stopPropagation(); 80738 80739 // Catch only owl-stage transitionEnd event 80740 if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) { 80741 return false; 80742 } 80743 } 80744 80745 this.leave('animating'); 80746 this.trigger('translated'); 80747 }; 80748 80749 /** 80750 * Gets viewport width. 80751 * @protected 80752 * @return {Number} - The width in pixel. 80753 */ 80754 Owl.prototype.viewport = function() { 80755 var width; 80756 if (this.options.responsiveBaseElement !== window) { 80757 width = $(this.options.responsiveBaseElement).width(); 80758 } else if (window.innerWidth) { 80759 width = window.innerWidth; 80760 } else if (document.documentElement && document.documentElement.clientWidth) { 80761 width = document.documentElement.clientWidth; 80762 } else { 80763 console.warn('Can not detect viewport width.'); 80764 } 80765 return width; 80766 }; 80767 80768 /** 80769 * Replaces the current content. 80770 * @public 80771 * @param {HTMLElement|jQuery|String} content - The new content. 80772 */ 80773 Owl.prototype.replace = function(content) { 80774 this.$stage.empty(); 80775 this._items = []; 80776 80777 if (content) { 80778 content = (content instanceof jQuery) ? content : $(content); 80779 } 80780 80781 if (this.settings.nestedItemSelector) { 80782 content = content.find('.' + this.settings.nestedItemSelector); 80783 } 80784 80785 content.filter(function() { 80786 return this.nodeType === 1; 80787 }).each($.proxy(function(index, item) { 80788 item = this.prepare(item); 80789 this.$stage.append(item); 80790 this._items.push(item); 80791 this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); 80792 }, this)); 80793 80794 this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0); 80795 80796 this.invalidate('items'); 80797 }; 80798 80799 /** 80800 * Adds an item. 80801 * @todo Use `item` instead of `content` for the event arguments. 80802 * @public 80803 * @param {HTMLElement|jQuery|String} content - The item content to add. 80804 * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end. 80805 */ 80806 Owl.prototype.add = function(content, position) { 80807 var current = this.relative(this._current); 80808 80809 position = position === undefined ? this._items.length : this.normalize(position, true); 80810 content = content instanceof jQuery ? content : $(content); 80811 80812 this.trigger('add', { content: content, position: position }); 80813 80814 content = this.prepare(content); 80815 80816 if (this._items.length === 0 || position === this._items.length) { 80817 this._items.length === 0 && this.$stage.append(content); 80818 this._items.length !== 0 && this._items[position - 1].after(content); 80819 this._items.push(content); 80820 this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); 80821 } else { 80822 this._items[position].before(content); 80823 this._items.splice(position, 0, content); 80824 this._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); 80825 } 80826 80827 this._items[current] && this.reset(this._items[current].index()); 80828 80829 this.invalidate('items'); 80830 80831 this.trigger('added', { content: content, position: position }); 80832 }; 80833 80834 /** 80835 * Removes an item by its position. 80836 * @todo Use `item` instead of `content` for the event arguments. 80837 * @public 80838 * @param {Number} position - The relative position of the item to remove. 80839 */ 80840 Owl.prototype.remove = function(position) { 80841 position = this.normalize(position, true); 80842 80843 if (position === undefined) { 80844 return; 80845 } 80846 80847 this.trigger('remove', { content: this._items[position], position: position }); 80848 80849 this._items[position].remove(); 80850 this._items.splice(position, 1); 80851 this._mergers.splice(position, 1); 80852 80853 this.invalidate('items'); 80854 80855 this.trigger('removed', { content: null, position: position }); 80856 }; 80857 80858 /** 80859 * Preloads images with auto width. 80860 * @todo Replace by a more generic approach 80861 * @protected 80862 */ 80863 Owl.prototype.preloadAutoWidthImages = function(images) { 80864 images.each($.proxy(function(i, element) { 80865 this.enter('pre-loading'); 80866 element = $(element); 80867 $(new Image()).one('load', $.proxy(function(e) { 80868 element.attr('src', e.target.src); 80869 element.css('opacity', 1); 80870 this.leave('pre-loading'); 80871 !this.is('pre-loading') && !this.is('initializing') && this.refresh(); 80872 }, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina')); 80873 }, this)); 80874 }; 80875 80876 /** 80877 * Destroys the carousel. 80878 * @public 80879 */ 80880 Owl.prototype.destroy = function() { 80881 80882 this.$element.off('.owl.core'); 80883 this.$stage.off('.owl.core'); 80884 $(document).off('.owl.core'); 80885 80886 if (this.settings.responsive !== false) { 80887 window.clearTimeout(this.resizeTimer); 80888 this.off(window, 'resize', this._handlers.onThrottledResize); 80889 } 80890 80891 for (var i in this._plugins) { 80892 this._plugins[i].destroy(); 80893 } 80894 80895 this.$stage.children('.cloned').remove(); 80896 80897 this.$stage.unwrap(); 80898 this.$stage.children().contents().unwrap(); 80899 this.$stage.children().unwrap(); 80900 80901 this.$element 80902 .removeClass(this.options.refreshClass) 80903 .removeClass(this.options.loadingClass) 80904 .removeClass(this.options.loadedClass) 80905 .removeClass(this.options.rtlClass) 80906 .removeClass(this.options.dragClass) 80907 .removeClass(this.options.grabClass) 80908 .attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\S+\\s', 'g'), '')) 80909 .removeData('owl.carousel'); 80910 }; 80911 80912 /** 80913 * Operators to calculate right-to-left and left-to-right. 80914 * @protected 80915 * @param {Number} [a] - The left side operand. 80916 * @param {String} [o] - The operator. 80917 * @param {Number} [b] - The right side operand. 80918 */ 80919 Owl.prototype.op = function(a, o, b) { 80920 var rtl = this.settings.rtl; 80921 switch (o) { 80922 case '<': 80923 return rtl ? a > b : a < b; 80924 case '>': 80925 return rtl ? a < b : a > b; 80926 case '>=': 80927 return rtl ? a <= b : a >= b; 80928 case '<=': 80929 return rtl ? a >= b : a <= b; 80930 default: 80931 break; 80932 } 80933 }; 80934 80935 /** 80936 * Attaches to an internal event. 80937 * @protected 80938 * @param {HTMLElement} element - The event source. 80939 * @param {String} event - The event name. 80940 * @param {Function} listener - The event handler to attach. 80941 * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not. 80942 */ 80943 Owl.prototype.on = function(element, event, listener, capture) { 80944 if (element.addEventListener) { 80945 element.addEventListener(event, listener, capture); 80946 } else if (element.attachEvent) { 80947 element.attachEvent('on' + event, listener); 80948 } 80949 }; 80950 80951 /** 80952 * Detaches from an internal event. 80953 * @protected 80954 * @param {HTMLElement} element - The event source. 80955 * @param {String} event - The event name. 80956 * @param {Function} listener - The attached event handler to detach. 80957 * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not. 80958 */ 80959 Owl.prototype.off = function(element, event, listener, capture) { 80960 if (element.removeEventListener) { 80961 element.removeEventListener(event, listener, capture); 80962 } else if (element.detachEvent) { 80963 element.detachEvent('on' + event, listener); 80964 } 80965 }; 80966 80967 /** 80968 * Triggers a public event. 80969 * @todo Remove `status`, `relatedTarget` should be used instead. 80970 * @protected 80971 * @param {String} name - The event name. 80972 * @param {*} [data=null] - The event data. 80973 * @param {String} [namespace=carousel] - The event namespace. 80974 * @param {String} [state] - The state which is associated with the event. 80975 * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not. 80976 * @returns {Event} - The event arguments. 80977 */ 80978 Owl.prototype.trigger = function(name, data, namespace, state, enter) { 80979 var status = { 80980 item: { count: this._items.length, index: this.current() } 80981 }, handler = $.camelCase( 80982 $.grep([ 'on', name, namespace ], function(v) { return v }) 80983 .join('-').toLowerCase() 80984 ), event = $.Event( 80985 [ name, 'owl', namespace || 'carousel' ].join('.').toLowerCase(), 80986 $.extend({ relatedTarget: this }, status, data) 80987 ); 80988 80989 if (!this._supress[name]) { 80990 $.each(this._plugins, function(name, plugin) { 80991 if (plugin.onTrigger) { 80992 plugin.onTrigger(event); 80993 } 80994 }); 80995 80996 this.register({ type: Owl.Type.Event, name: name }); 80997 this.$element.trigger(event); 80998 80999 if (this.settings && typeof this.settings[handler] === 'function') { 81000 this.settings[handler].call(this, event); 81001 } 81002 } 81003 81004 return event; 81005 }; 81006 81007 /** 81008 * Enters a state. 81009 * @param name - The state name. 81010 */ 81011 Owl.prototype.enter = function(name) { 81012 $.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) { 81013 if (this._states.current[name] === undefined) { 81014 this._states.current[name] = 0; 81015 } 81016 81017 this._states.current[name]++; 81018 }, this)); 81019 }; 81020 81021 /** 81022 * Leaves a state. 81023 * @param name - The state name. 81024 */ 81025 Owl.prototype.leave = function(name) { 81026 $.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) { 81027 this._states.current[name]--; 81028 }, this)); 81029 }; 81030 81031 /** 81032 * Registers an event or state. 81033 * @public 81034 * @param {Object} object - The event or state to register. 81035 */ 81036 Owl.prototype.register = function(object) { 81037 if (object.type === Owl.Type.Event) { 81038 if (!$.event.special[object.name]) { 81039 $.event.special[object.name] = {}; 81040 } 81041 81042 if (!$.event.special[object.name].owl) { 81043 var _default = $.event.special[object.name]._default; 81044 $.event.special[object.name]._default = function(e) { 81045 if (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) { 81046 return _default.apply(this, arguments); 81047 } 81048 return e.namespace && e.namespace.indexOf('owl') > -1; 81049 }; 81050 $.event.special[object.name].owl = true; 81051 } 81052 } else if (object.type === Owl.Type.State) { 81053 if (!this._states.tags[object.name]) { 81054 this._states.tags[object.name] = object.tags; 81055 } else { 81056 this._states.tags[object.name] = this._states.tags[object.name].concat(object.tags); 81057 } 81058 81059 this._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function(tag, i) { 81060 return $.inArray(tag, this._states.tags[object.name]) === i; 81061 }, this)); 81062 } 81063 }; 81064 81065 /** 81066 * Suppresses events. 81067 * @protected 81068 * @param {Array.<String>} events - The events to suppress. 81069 */ 81070 Owl.prototype.suppress = function(events) { 81071 $.each(events, $.proxy(function(index, event) { 81072 this._supress[event] = true; 81073 }, this)); 81074 }; 81075 81076 /** 81077 * Releases suppressed events. 81078 * @protected 81079 * @param {Array.<String>} events - The events to release. 81080 */ 81081 Owl.prototype.release = function(events) { 81082 $.each(events, $.proxy(function(index, event) { 81083 delete this._supress[event]; 81084 }, this)); 81085 }; 81086 81087 /** 81088 * Gets unified pointer coordinates from event. 81089 * @todo #261 81090 * @protected 81091 * @param {Event} - The `mousedown` or `touchstart` event. 81092 * @returns {Object} - Contains `x` and `y` coordinates of current pointer position. 81093 */ 81094 Owl.prototype.pointer = function(event) { 81095 var result = { x: null, y: null }; 81096 81097 event = event.originalEvent || event || window.event; 81098 81099 event = event.touches && event.touches.length ? 81100 event.touches[0] : event.changedTouches && event.changedTouches.length ? 81101 event.changedTouches[0] : event; 81102 81103 if (event.pageX) { 81104 result.x = event.pageX; 81105 result.y = event.pageY; 81106 } else { 81107 result.x = event.clientX; 81108 result.y = event.clientY; 81109 } 81110 81111 return result; 81112 }; 81113 81114 /** 81115 * Determines if the input is a Number or something that can be coerced to a Number 81116 * @protected 81117 * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested 81118 * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number 81119 */ 81120 Owl.prototype.isNumeric = function(number) { 81121 return !isNaN(parseFloat(number)); 81122 }; 81123 81124 /** 81125 * Gets the difference of two vectors. 81126 * @todo #261 81127 * @protected 81128 * @param {Object} - The first vector. 81129 * @param {Object} - The second vector. 81130 * @returns {Object} - The difference. 81131 */ 81132 Owl.prototype.difference = function(first, second) { 81133 return { 81134 x: first.x - second.x, 81135 y: first.y - second.y 81136 }; 81137 }; 81138 81139 /** 81140 * The jQuery Plugin for the Owl Carousel 81141 * @todo Navigation plugin `next` and `prev` 81142 * @public 81143 */ 81144 $.fn.owlCarousel = function(option) { 81145 var args = Array.prototype.slice.call(arguments, 1); 81146 81147 return this.each(function() { 81148 var $this = $(this), 81149 data = $this.data('owl.carousel'); 81150 81151 if (!data) { 81152 data = new Owl(this, typeof option == 'object' && option); 81153 $this.data('owl.carousel', data); 81154 81155 $.each([ 81156 'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove' 81157 ], function(i, event) { 81158 data.register({ type: Owl.Type.Event, name: event }); 81159 data.$element.on(event + '.owl.carousel.core', $.proxy(function(e) { 81160 if (e.namespace && e.relatedTarget !== this) { 81161 this.suppress([ event ]); 81162 data[event].apply(this, [].slice.call(arguments, 1)); 81163 this.release([ event ]); 81164 } 81165 }, data)); 81166 }); 81167 } 81168 81169 if (typeof option == 'string' && option.charAt(0) !== '_') { 81170 data[option].apply(data, args); 81171 } 81172 }); 81173 }; 81174 81175 /** 81176 * The constructor for the jQuery Plugin 81177 * @public 81178 */ 81179 $.fn.owlCarousel.Constructor = Owl; 81180 81181})(window.Zepto || window.jQuery, window, document); 81182 81183/** 81184 * AutoRefresh Plugin 81185 * @version 2.1.0 81186 * @author Artus Kolanowski 81187 * @author Saurabh Sharma 81188 * @license The MIT License (MIT) 81189 */ 81190;(function($, window, document, undefined) { 81191 81192 /** 81193 * Creates the auto refresh plugin. 81194 * @class The Auto Refresh Plugin 81195 * @param {Owl} carousel - The Owl Carousel 81196 */ 81197 var AutoRefresh = function(carousel) { 81198 /** 81199 * Reference to the core. 81200 * @protected 81201 * @type {Owl} 81202 */ 81203 this._core = carousel; 81204 81205 /** 81206 * Refresh interval. 81207 * @protected 81208 * @type {number} 81209 */ 81210 this._interval = null; 81211 81212 /** 81213 * Whether the element is currently visible or not. 81214 * @protected 81215 * @type {Boolean} 81216 */ 81217 this._visible = null; 81218 81219 /** 81220 * All event handlers. 81221 * @protected 81222 * @type {Object} 81223 */ 81224 this._handlers = { 81225 'initialized.owl.carousel': $.proxy(function(e) { 81226 if (e.namespace && this._core.settings.autoRefresh) { 81227 this.watch(); 81228 } 81229 }, this) 81230 }; 81231 81232 // set default options 81233 this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options); 81234 81235 // register event handlers 81236 this._core.$element.on(this._handlers); 81237 }; 81238 81239 /** 81240 * Default options. 81241 * @public 81242 */ 81243 AutoRefresh.Defaults = { 81244 autoRefresh: true, 81245 autoRefreshInterval: 500 81246 }; 81247 81248 /** 81249 * Watches the element. 81250 */ 81251 AutoRefresh.prototype.watch = function() { 81252 if (this._interval) { 81253 return; 81254 } 81255 81256 this._visible = this._core.$element.is(':visible'); 81257 this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval); 81258 }; 81259 81260 /** 81261 * Refreshes the element. 81262 */ 81263 AutoRefresh.prototype.refresh = function() { 81264 if (this._core.$element.is(':visible') === this._visible) { 81265 return; 81266 } 81267 81268 this._visible = !this._visible; 81269 81270 this._core.$element.toggleClass('owl-hidden', !this._visible); 81271 81272 this._visible && (this._core.invalidate('width') && this._core.refresh()); 81273 }; 81274 81275 /** 81276 * Destroys the plugin. 81277 */ 81278 AutoRefresh.prototype.destroy = function() { 81279 var handler, property; 81280 81281 window.clearInterval(this._interval); 81282 81283 for (handler in this._handlers) { 81284 this._core.$element.off(handler, this._handlers[handler]); 81285 } 81286 for (property in Object.getOwnPropertyNames(this)) { 81287 typeof this[property] != 'function' && (this[property] = null); 81288 } 81289 }; 81290 81291 $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh; 81292 81293})(window.Zepto || window.jQuery, window, document); 81294 81295/** 81296 * Lazy Plugin 81297 * @version 2.1.0 81298 * @author Bartosz Wojciechowski 81299 * @author Saurabh Sharma 81300 * @license The MIT License (MIT) 81301 */ 81302;(function($, window, document, undefined) { 81303 81304 /** 81305 * Creates the lazy plugin. 81306 * @class The Lazy Plugin 81307 * @param {Owl} carousel - The Owl Carousel 81308 */ 81309 var Lazy = function(carousel) { 81310 81311 /** 81312 * Reference to the core. 81313 * @protected 81314 * @type {Owl} 81315 */ 81316 this._core = carousel; 81317 81318 /** 81319 * Already loaded items. 81320 * @protected 81321 * @type {Array.<jQuery>} 81322 */ 81323 this._loaded = []; 81324 81325 /** 81326 * Event handlers. 81327 * @protected 81328 * @type {Object} 81329 */ 81330 this._handlers = { 81331 'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function(e) { 81332 if (!e.namespace) { 81333 return; 81334 } 81335 81336 if (!this._core.settings || !this._core.settings.lazyLoad) { 81337 return; 81338 } 81339 81340 if ((e.property && e.property.name == 'position') || e.type == 'initialized') { 81341 var settings = this._core.settings, 81342 n = (settings.center && Math.ceil(settings.items / 2) || settings.items), 81343 i = ((settings.center && n * -1) || 0), 81344 position = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i, 81345 clones = this._core.clones().length, 81346 load = $.proxy(function(i, v) { this.load(v) }, this); 81347 81348 while (i++ < n) { 81349 this.load(clones / 2 + this._core.relative(position)); 81350 clones && $.each(this._core.clones(this._core.relative(position)), load); 81351 position++; 81352 } 81353 } 81354 }, this) 81355 }; 81356 81357 // set the default options 81358 this._core.options = $.extend({}, Lazy.Defaults, this._core.options); 81359 81360 // register event handler 81361 this._core.$element.on(this._handlers); 81362 }; 81363 81364 /** 81365 * Default options. 81366 * @public 81367 */ 81368 Lazy.Defaults = { 81369 lazyLoad: false 81370 }; 81371 81372 /** 81373 * Loads all resources of an item at the specified position. 81374 * @param {Number} position - The absolute position of the item. 81375 * @protected 81376 */ 81377 Lazy.prototype.load = function(position) { 81378 var $item = this._core.$stage.children().eq(position), 81379 $elements = $item && $item.find('.owl-lazy'); 81380 81381 if (!$elements || $.inArray($item.get(0), this._loaded) > -1) { 81382 return; 81383 } 81384 81385 $elements.each($.proxy(function(index, element) { 81386 var $element = $(element), image, 81387 url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src'); 81388 81389 this._core.trigger('load', { element: $element, url: url }, 'lazy'); 81390 81391 if ($element.is('img')) { 81392 $element.one('load.owl.lazy', $.proxy(function() { 81393 $element.css('opacity', 1); 81394 this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); 81395 }, this)).attr('src', url); 81396 } else { 81397 image = new Image(); 81398 image.onload = $.proxy(function() { 81399 $element.css({ 81400 'background-image': 'url("' + url + '")', 81401 'opacity': '1' 81402 }); 81403 this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); 81404 }, this); 81405 image.src = url; 81406 } 81407 }, this)); 81408 81409 this._loaded.push($item.get(0)); 81410 }; 81411 81412 /** 81413 * Destroys the plugin. 81414 * @public 81415 */ 81416 Lazy.prototype.destroy = function() { 81417 var handler, property; 81418 81419 for (handler in this.handlers) { 81420 this._core.$element.off(handler, this.handlers[handler]); 81421 } 81422 for (property in Object.getOwnPropertyNames(this)) { 81423 typeof this[property] != 'function' && (this[property] = null); 81424 } 81425 }; 81426 81427 $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy; 81428 81429})(window.Zepto || window.jQuery, window, document); 81430 81431/** 81432 * AutoHeight Plugin 81433 * @version 2.1.0 81434 * @author Bartosz Wojciechowski 81435 * @author Saurabh Sharma 81436 * @license The MIT License (MIT) 81437 */ 81438;(function($, window, document, undefined) { 81439 81440 /** 81441 * Creates the auto height plugin. 81442 * @class The Auto Height Plugin 81443 * @param {Owl} carousel - The Owl Carousel 81444 */ 81445 var AutoHeight = function(carousel) { 81446 /** 81447 * Reference to the core. 81448 * @protected 81449 * @type {Owl} 81450 */ 81451 this._core = carousel; 81452 81453 /** 81454 * All event handlers. 81455 * @protected 81456 * @type {Object} 81457 */ 81458 this._handlers = { 81459 'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) { 81460 if (e.namespace && this._core.settings.autoHeight) { 81461 this.update(); 81462 } 81463 }, this), 81464 'changed.owl.carousel': $.proxy(function(e) { 81465 if (e.namespace && this._core.settings.autoHeight && e.property.name == 'position'){ 81466 this.update(); 81467 } 81468 }, this), 81469 'loaded.owl.lazy': $.proxy(function(e) { 81470 if (e.namespace && this._core.settings.autoHeight 81471 && e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) { 81472 this.update(); 81473 } 81474 }, this) 81475 }; 81476 81477 // set default options 81478 this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options); 81479 81480 // register event handlers 81481 this._core.$element.on(this._handlers); 81482 }; 81483 81484 /** 81485 * Default options. 81486 * @public 81487 */ 81488 AutoHeight.Defaults = { 81489 autoHeight: false, 81490 autoHeightClass: 'owl-height' 81491 }; 81492 81493 /** 81494 * Updates the view. 81495 */ 81496 AutoHeight.prototype.update = function() { 81497 var start = this._core._current, 81498 end = start + this._core.settings.items, 81499 visible = this._core.$stage.children().toArray().slice(start, end), 81500 heights = [], 81501 maxheight = 0; 81502 81503 $.each(visible, function(index, item) { 81504 heights.push($(item).height()); 81505 }); 81506 81507 maxheight = Math.max.apply(null, heights); 81508 81509 this._core.$stage.parent() 81510 .height(maxheight) 81511 .addClass(this._core.settings.autoHeightClass); 81512 }; 81513 81514 AutoHeight.prototype.destroy = function() { 81515 var handler, property; 81516 81517 for (handler in this._handlers) { 81518 this._core.$element.off(handler, this._handlers[handler]); 81519 } 81520 for (property in Object.getOwnPropertyNames(this)) { 81521 typeof this[property] != 'function' && (this[property] = null); 81522 } 81523 }; 81524 81525 $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight; 81526 81527})(window.Zepto || window.jQuery, window, document); 81528 81529/** 81530 * Video Plugin 81531 * @version 2.1.0 81532 * @author Bartosz Wojciechowski 81533 * @author Saurabh Sharma 81534 * @license The MIT License (MIT) 81535 */ 81536;(function($, window, document, undefined) { 81537 81538 /** 81539 * Creates the video plugin. 81540 * @class The Video Plugin 81541 * @param {Owl} carousel - The Owl Carousel 81542 */ 81543 var Video = function(carousel) { 81544 /** 81545 * Reference to the core. 81546 * @protected 81547 * @type {Owl} 81548 */ 81549 this._core = carousel; 81550 81551 /** 81552 * Cache all video URLs. 81553 * @protected 81554 * @type {Object} 81555 */ 81556 this._videos = {}; 81557 81558 /** 81559 * Current playing item. 81560 * @protected 81561 * @type {jQuery} 81562 */ 81563 this._playing = null; 81564 81565 /** 81566 * All event handlers. 81567 * @todo The cloned content removale is too late 81568 * @protected 81569 * @type {Object} 81570 */ 81571 this._handlers = { 81572 'initialized.owl.carousel': $.proxy(function(e) { 81573 if (e.namespace) { 81574 this._core.register({ type: 'state', name: 'playing', tags: [ 'interacting' ] }); 81575 } 81576 }, this), 81577 'resize.owl.carousel': $.proxy(function(e) { 81578 if (e.namespace && this._core.settings.video && this.isInFullScreen()) { 81579 e.preventDefault(); 81580 } 81581 }, this), 81582 'refreshed.owl.carousel': $.proxy(function(e) { 81583 if (e.namespace && this._core.is('resizing')) { 81584 this._core.$stage.find('.cloned .owl-video-frame').remove(); 81585 } 81586 }, this), 81587 'changed.owl.carousel': $.proxy(function(e) { 81588 if (e.namespace && e.property.name === 'position' && this._playing) { 81589 this.stop(); 81590 } 81591 }, this), 81592 'prepared.owl.carousel': $.proxy(function(e) { 81593 if (!e.namespace) { 81594 return; 81595 } 81596 81597 var $element = $(e.content).find('.owl-video'); 81598 81599 if ($element.length) { 81600 $element.css('display', 'none'); 81601 this.fetch($element, $(e.content)); 81602 } 81603 }, this) 81604 }; 81605 81606 // set default options 81607 this._core.options = $.extend({}, Video.Defaults, this._core.options); 81608 81609 // register event handlers 81610 this._core.$element.on(this._handlers); 81611 81612 this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function(e) { 81613 this.play(e); 81614 }, this)); 81615 }; 81616 81617 /** 81618 * Default options. 81619 * @public 81620 */ 81621 Video.Defaults = { 81622 video: false, 81623 videoHeight: false, 81624 videoWidth: false 81625 }; 81626 81627 /** 81628 * Gets the video ID and the type (YouTube/Vimeo/vzaar only). 81629 * @protected 81630 * @param {jQuery} target - The target containing the video data. 81631 * @param {jQuery} item - The item containing the video. 81632 */ 81633 Video.prototype.fetch = function(target, item) { 81634 var type = (function() { 81635 if (target.attr('data-vimeo-id')) { 81636 return 'vimeo'; 81637 } else if (target.attr('data-vzaar-id')) { 81638 return 'vzaar' 81639 } else { 81640 return 'youtube'; 81641 } 81642 })(), 81643 id = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'), 81644 width = target.attr('data-width') || this._core.settings.videoWidth, 81645 height = target.attr('data-height') || this._core.settings.videoHeight, 81646 url = target.attr('href'); 81647 81648 if (url) { 81649 81650 /* 81651 Parses the id's out of the following urls (and probably more): 81652 https://www.youtube.com/watch?v=:id 81653 https://youtu.be/:id 81654 https://vimeo.com/:id 81655 https://vimeo.com/channels/:channel/:id 81656 https://vimeo.com/groups/:group/videos/:id 81657 https://app.vzaar.com/videos/:id 81658 81659 Visual example: https://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F 81660 */ 81661 81662 id = url.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/); 81663 81664 if (id[3].indexOf('youtu') > -1) { 81665 type = 'youtube'; 81666 } else if (id[3].indexOf('vimeo') > -1) { 81667 type = 'vimeo'; 81668 } else if (id[3].indexOf('vzaar') > -1) { 81669 type = 'vzaar'; 81670 } else { 81671 throw new Error('Video URL not supported.'); 81672 } 81673 id = id[6]; 81674 } else { 81675 throw new Error('Missing video URL.'); 81676 } 81677 81678 this._videos[url] = { 81679 type: type, 81680 id: id, 81681 width: width, 81682 height: height 81683 }; 81684 81685 item.attr('data-video', url); 81686 81687 this.thumbnail(target, this._videos[url]); 81688 }; 81689 81690 /** 81691 * Creates video thumbnail. 81692 * @protected 81693 * @param {jQuery} target - The target containing the video data. 81694 * @param {Object} info - The video info object. 81695 * @see `fetch` 81696 */ 81697 Video.prototype.thumbnail = function(target, video) { 81698 var tnLink, 81699 icon, 81700 path, 81701 dimensions = video.width && video.height ? 'style="width:' + video.width + 'px;height:' + video.height + 'px;"' : '', 81702 customTn = target.find('img'), 81703 srcType = 'src', 81704 lazyClass = '', 81705 settings = this._core.settings, 81706 create = function(path) { 81707 icon = '<div class="owl-video-play-icon"></div>'; 81708 81709 if (settings.lazyLoad) { 81710 tnLink = '<div class="owl-video-tn ' + lazyClass + '" ' + srcType + '="' + path + '"></div>'; 81711 } else { 81712 tnLink = '<div class="owl-video-tn" style="opacity:1;background-image:url(' + path + ')"></div>'; 81713 } 81714 target.after(tnLink); 81715 target.after(icon); 81716 }; 81717 81718 // wrap video content into owl-video-wrapper div 81719 target.wrap('<div class="owl-video-wrapper"' + dimensions + '></div>'); 81720 81721 if (this._core.settings.lazyLoad) { 81722 srcType = 'data-src'; 81723 lazyClass = 'owl-lazy'; 81724 } 81725 81726 // custom thumbnail 81727 if (customTn.length) { 81728 create(customTn.attr(srcType)); 81729 customTn.remove(); 81730 return false; 81731 } 81732 81733 if (video.type === 'youtube') { 81734 path = "//img.youtube.com/vi/" + video.id + "/hqdefault.jpg"; 81735 create(path); 81736 } else if (video.type === 'vimeo') { 81737 $.ajax({ 81738 type: 'GET', 81739 url: '//vimeo.com/api/v2/video/' + video.id + '.json', 81740 jsonp: 'callback', 81741 dataType: 'jsonp', 81742 success: function(data) { 81743 path = data[0].thumbnail_large; 81744 create(path); 81745 } 81746 }); 81747 } else if (video.type === 'vzaar') { 81748 $.ajax({ 81749 type: 'GET', 81750 url: '//vzaar.com/api/videos/' + video.id + '.json', 81751 jsonp: 'callback', 81752 dataType: 'jsonp', 81753 success: function(data) { 81754 path = data.framegrab_url; 81755 create(path); 81756 } 81757 }); 81758 } 81759 }; 81760 81761 /** 81762 * Stops the current video. 81763 * @public 81764 */ 81765 Video.prototype.stop = function() { 81766 this._core.trigger('stop', null, 'video'); 81767 this._playing.find('.owl-video-frame').remove(); 81768 this._playing.removeClass('owl-video-playing'); 81769 this._playing = null; 81770 this._core.leave('playing'); 81771 this._core.trigger('stopped', null, 'video'); 81772 }; 81773 81774 /** 81775 * Starts the current video. 81776 * @public 81777 * @param {Event} event - The event arguments. 81778 */ 81779 Video.prototype.play = function(event) { 81780 var target = $(event.target), 81781 item = target.closest('.' + this._core.settings.itemClass), 81782 video = this._videos[item.attr('data-video')], 81783 width = video.width || '100%', 81784 height = video.height || this._core.$stage.height(), 81785 html; 81786 81787 if (this._playing) { 81788 return; 81789 } 81790 81791 this._core.enter('playing'); 81792 this._core.trigger('play', null, 'video'); 81793 81794 item = this._core.items(this._core.relative(item.index())); 81795 81796 this._core.reset(item.index()); 81797 81798 if (video.type === 'youtube') { 81799 html = '<iframe width="' + width + '" height="' + height + '" src="//www.youtube.com/embed/' + 81800 video.id + '?autoplay=1&rel=0&v=' + video.id + '" frameborder="0" allowfullscreen></iframe>'; 81801 } else if (video.type === 'vimeo') { 81802 html = '<iframe src="//player.vimeo.com/video/' + video.id + 81803 '?autoplay=1" width="' + width + '" height="' + height + 81804 '" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'; 81805 } else if (video.type === 'vzaar') { 81806 html = '<iframe frameborder="0"' + 'height="' + height + '"' + 'width="' + width + 81807 '" allowfullscreen mozallowfullscreen webkitAllowFullScreen ' + 81808 'src="//view.vzaar.com/' + video.id + '/player?autoplay=true"></iframe>'; 81809 } 81810 81811 $('<div class="owl-video-frame">' + html + '</div>').insertAfter(item.find('.owl-video')); 81812 81813 this._playing = item.addClass('owl-video-playing'); 81814 }; 81815 81816 /** 81817 * Checks whether an video is currently in full screen mode or not. 81818 * @todo Bad style because looks like a readonly method but changes members. 81819 * @protected 81820 * @returns {Boolean} 81821 */ 81822 Video.prototype.isInFullScreen = function() { 81823 var element = document.fullscreenElement || document.mozFullScreenElement || 81824 document.webkitFullscreenElement; 81825 81826 return element && $(element).parent().hasClass('owl-video-frame'); 81827 }; 81828 81829 /** 81830 * Destroys the plugin. 81831 */ 81832 Video.prototype.destroy = function() { 81833 var handler, property; 81834 81835 this._core.$element.off('click.owl.video'); 81836 81837 for (handler in this._handlers) { 81838 this._core.$element.off(handler, this._handlers[handler]); 81839 } 81840 for (property in Object.getOwnPropertyNames(this)) { 81841 typeof this[property] != 'function' && (this[property] = null); 81842 } 81843 }; 81844 81845 $.fn.owlCarousel.Constructor.Plugins.Video = Video; 81846 81847})(window.Zepto || window.jQuery, window, document); 81848 81849/** 81850 * Animate Plugin 81851 * @version 2.1.0 81852 * @author Bartosz Wojciechowski 81853 * @author Saurabh Sharma 81854 * @license The MIT License (MIT) 81855 */ 81856;(function($, window, document, undefined) { 81857 81858 /** 81859 * Creates the animate plugin. 81860 * @class The Navigation Plugin 81861 * @param {Owl} scope - The Owl Carousel 81862 */ 81863 var Animate = function(scope) { 81864 this.core = scope; 81865 this.core.options = $.extend({}, Animate.Defaults, this.core.options); 81866 this.swapping = true; 81867 this.previous = undefined; 81868 this.next = undefined; 81869 81870 this.handlers = { 81871 'change.owl.carousel': $.proxy(function(e) { 81872 if (e.namespace && e.property.name == 'position') { 81873 this.previous = this.core.current(); 81874 this.next = e.property.value; 81875 } 81876 }, this), 81877 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) { 81878 if (e.namespace) { 81879 this.swapping = e.type == 'translated'; 81880 } 81881 }, this), 81882 'translate.owl.carousel': $.proxy(function(e) { 81883 if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) { 81884 this.swap(); 81885 } 81886 }, this) 81887 }; 81888 81889 this.core.$element.on(this.handlers); 81890 }; 81891 81892 /** 81893 * Default options. 81894 * @public 81895 */ 81896 Animate.Defaults = { 81897 animateOut: false, 81898 animateIn: false 81899 }; 81900 81901 /** 81902 * Toggles the animation classes whenever an translations starts. 81903 * @protected 81904 * @returns {Boolean|undefined} 81905 */ 81906 Animate.prototype.swap = function() { 81907 81908 if (this.core.settings.items !== 1) { 81909 return; 81910 } 81911 81912 if (!$.support.animation || !$.support.transition) { 81913 return; 81914 } 81915 81916 this.core.speed(0); 81917 81918 var left, 81919 clear = $.proxy(this.clear, this), 81920 previous = this.core.$stage.children().eq(this.previous), 81921 next = this.core.$stage.children().eq(this.next), 81922 incoming = this.core.settings.animateIn, 81923 outgoing = this.core.settings.animateOut; 81924 81925 if (this.core.current() === this.previous) { 81926 return; 81927 } 81928 81929 if (outgoing) { 81930 left = this.core.coordinates(this.previous) - this.core.coordinates(this.next); 81931 previous.one($.support.animation.end, clear) 81932 .css( { 'left': left + 'px' } ) 81933 .addClass('animated owl-animated-out') 81934 .addClass(outgoing); 81935 } 81936 81937 if (incoming) { 81938 next.one($.support.animation.end, clear) 81939 .addClass('animated owl-animated-in') 81940 .addClass(incoming); 81941 } 81942 }; 81943 81944 Animate.prototype.clear = function(e) { 81945 $(e.target).css( { 'left': '' } ) 81946 .removeClass('animated owl-animated-out owl-animated-in') 81947 .removeClass(this.core.settings.animateIn) 81948 .removeClass(this.core.settings.animateOut); 81949 this.core.onTransitionEnd(); 81950 }; 81951 81952 /** 81953 * Destroys the plugin. 81954 * @public 81955 */ 81956 Animate.prototype.destroy = function() { 81957 var handler, property; 81958 81959 for (handler in this.handlers) { 81960 this.core.$element.off(handler, this.handlers[handler]); 81961 } 81962 for (property in Object.getOwnPropertyNames(this)) { 81963 typeof this[property] != 'function' && (this[property] = null); 81964 } 81965 }; 81966 81967 $.fn.owlCarousel.Constructor.Plugins.Animate = Animate; 81968 81969})(window.Zepto || window.jQuery, window, document); 81970 81971/** 81972 * Autoplay Plugin 81973 * @version 2.1.0 81974 * @author Bartosz Wojciechowski 81975 * @author Artus Kolanowski 81976 * @author Saurabh Sharma 81977 * @license The MIT License (MIT) 81978 */ 81979;(function($, window, document, undefined) { 81980 81981 /** 81982 * Creates the autoplay plugin. 81983 * @class The Autoplay Plugin 81984 * @param {Owl} scope - The Owl Carousel 81985 */ 81986 var Autoplay = function(carousel) { 81987 /** 81988 * Reference to the core. 81989 * @protected 81990 * @type {Owl} 81991 */ 81992 this._core = carousel; 81993 81994 /** 81995 * The autoplay timeout. 81996 * @type {Timeout} 81997 */ 81998 this._timeout = null; 81999 82000 /** 82001 * Indicates whenever the autoplay is paused. 82002 * @type {Boolean} 82003 */ 82004 this._paused = false; 82005 82006 /** 82007 * All event handlers. 82008 * @protected 82009 * @type {Object} 82010 */ 82011 this._handlers = { 82012 'changed.owl.carousel': $.proxy(function(e) { 82013 if (e.namespace && e.property.name === 'settings') { 82014 if (this._core.settings.autoplay) { 82015 this.play(); 82016 } else { 82017 this.stop(); 82018 } 82019 } else if (e.namespace && e.property.name === 'position') { 82020 //console.log('play?', e); 82021 if (this._core.settings.autoplay) { 82022 this._setAutoPlayInterval(); 82023 } 82024 } 82025 }, this), 82026 'initialized.owl.carousel': $.proxy(function(e) { 82027 if (e.namespace && this._core.settings.autoplay) { 82028 this.play(); 82029 } 82030 }, this), 82031 'play.owl.autoplay': $.proxy(function(e, t, s) { 82032 if (e.namespace) { 82033 this.play(t, s); 82034 } 82035 }, this), 82036 'stop.owl.autoplay': $.proxy(function(e) { 82037 if (e.namespace) { 82038 this.stop(); 82039 } 82040 }, this), 82041 'mouseover.owl.autoplay': $.proxy(function() { 82042 if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { 82043 this.pause(); 82044 } 82045 }, this), 82046 'mouseleave.owl.autoplay': $.proxy(function() { 82047 if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { 82048 this.play(); 82049 } 82050 }, this), 82051 'touchstart.owl.core': $.proxy(function() { 82052 if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { 82053 this.pause(); 82054 } 82055 }, this), 82056 'touchend.owl.core': $.proxy(function() { 82057 if (this._core.settings.autoplayHoverPause) { 82058 this.play(); 82059 } 82060 }, this) 82061 }; 82062 82063 // register event handlers 82064 this._core.$element.on(this._handlers); 82065 82066 // set default options 82067 this._core.options = $.extend({}, Autoplay.Defaults, this._core.options); 82068 }; 82069 82070 /** 82071 * Default options. 82072 * @public 82073 */ 82074 Autoplay.Defaults = { 82075 autoplay: false, 82076 autoplayTimeout: 5000, 82077 autoplayHoverPause: false, 82078 autoplaySpeed: false 82079 }; 82080 82081 /** 82082 * Starts the autoplay. 82083 * @public 82084 * @param {Number} [timeout] - The interval before the next animation starts. 82085 * @param {Number} [speed] - The animation speed for the animations. 82086 */ 82087 Autoplay.prototype.play = function(timeout, speed) { 82088 this._paused = false; 82089 82090 if (this._core.is('rotating')) { 82091 return; 82092 } 82093 82094 this._core.enter('rotating'); 82095 82096 this._setAutoPlayInterval(); 82097 }; 82098 82099 /** 82100 * Gets a new timeout 82101 * @private 82102 * @param {Number} [timeout] - The interval before the next animation starts. 82103 * @param {Number} [speed] - The animation speed for the animations. 82104 * @return {Timeout} 82105 */ 82106 Autoplay.prototype._getNextTimeout = function(timeout, speed) { 82107 if ( this._timeout ) { 82108 window.clearTimeout(this._timeout); 82109 } 82110 return window.setTimeout($.proxy(function() { 82111 if (this._paused || this._core.is('busy') || this._core.is('interacting') || document.hidden) { 82112 return; 82113 } 82114 this._core.next(speed || this._core.settings.autoplaySpeed); 82115 }, this), timeout || this._core.settings.autoplayTimeout); 82116 }; 82117 82118 /** 82119 * Sets autoplay in motion. 82120 * @private 82121 */ 82122 Autoplay.prototype._setAutoPlayInterval = function() { 82123 this._timeout = this._getNextTimeout(); 82124 }; 82125 82126 /** 82127 * Stops the autoplay. 82128 * @public 82129 */ 82130 Autoplay.prototype.stop = function() { 82131 if (!this._core.is('rotating')) { 82132 return; 82133 } 82134 82135 window.clearTimeout(this._timeout); 82136 this._core.leave('rotating'); 82137 }; 82138 82139 /** 82140 * Stops the autoplay. 82141 * @public 82142 */ 82143 Autoplay.prototype.pause = function() { 82144 if (!this._core.is('rotating')) { 82145 return; 82146 } 82147 82148 this._paused = true; 82149 }; 82150 82151 /** 82152 * Destroys the plugin. 82153 */ 82154 Autoplay.prototype.destroy = function() { 82155 var handler, property; 82156 82157 this.stop(); 82158 82159 for (handler in this._handlers) { 82160 this._core.$element.off(handler, this._handlers[handler]); 82161 } 82162 for (property in Object.getOwnPropertyNames(this)) { 82163 typeof this[property] != 'function' && (this[property] = null); 82164 } 82165 }; 82166 82167 $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay; 82168 82169})(window.Zepto || window.jQuery, window, document); 82170 82171/** 82172 * Navigation Plugin 82173 * @version 2.1.0 82174 * @author Artus Kolanowski 82175 * @author Saurabh Sharma 82176 * @license The MIT License (MIT) 82177 */ 82178;(function($, window, document, undefined) { 82179 'use strict'; 82180 82181 /** 82182 * Creates the navigation plugin. 82183 * @class The Navigation Plugin 82184 * @param {Owl} carousel - The Owl Carousel. 82185 */ 82186 var Navigation = function(carousel) { 82187 /** 82188 * Reference to the core. 82189 * @protected 82190 * @type {Owl} 82191 */ 82192 this._core = carousel; 82193 82194 /** 82195 * Indicates whether the plugin is initialized or not. 82196 * @protected 82197 * @type {Boolean} 82198 */ 82199 this._initialized = false; 82200 82201 /** 82202 * The current paging indexes. 82203 * @protected 82204 * @type {Array} 82205 */ 82206 this._pages = []; 82207 82208 /** 82209 * All DOM elements of the user interface. 82210 * @protected 82211 * @type {Object} 82212 */ 82213 this._controls = {}; 82214 82215 /** 82216 * Markup for an indicator. 82217 * @protected 82218 * @type {Array.<String>} 82219 */ 82220 this._templates = []; 82221 82222 /** 82223 * The carousel element. 82224 * @type {jQuery} 82225 */ 82226 this.$element = this._core.$element; 82227 82228 /** 82229 * Overridden methods of the carousel. 82230 * @protected 82231 * @type {Object} 82232 */ 82233 this._overrides = { 82234 next: this._core.next, 82235 prev: this._core.prev, 82236 to: this._core.to 82237 }; 82238 82239 /** 82240 * All event handlers. 82241 * @protected 82242 * @type {Object} 82243 */ 82244 this._handlers = { 82245 'prepared.owl.carousel': $.proxy(function(e) { 82246 if (e.namespace && this._core.settings.dotsData) { 82247 this._templates.push('<div class="' + this._core.settings.dotClass + '">' + 82248 $(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '</div>'); 82249 } 82250 }, this), 82251 'added.owl.carousel': $.proxy(function(e) { 82252 if (e.namespace && this._core.settings.dotsData) { 82253 this._templates.splice(e.position, 0, this._templates.pop()); 82254 } 82255 }, this), 82256 'remove.owl.carousel': $.proxy(function(e) { 82257 if (e.namespace && this._core.settings.dotsData) { 82258 this._templates.splice(e.position, 1); 82259 } 82260 }, this), 82261 'changed.owl.carousel': $.proxy(function(e) { 82262 if (e.namespace && e.property.name == 'position') { 82263 this.draw(); 82264 } 82265 }, this), 82266 'initialized.owl.carousel': $.proxy(function(e) { 82267 if (e.namespace && !this._initialized) { 82268 this._core.trigger('initialize', null, 'navigation'); 82269 this.initialize(); 82270 this.update(); 82271 this.draw(); 82272 this._initialized = true; 82273 this._core.trigger('initialized', null, 'navigation'); 82274 } 82275 }, this), 82276 'refreshed.owl.carousel': $.proxy(function(e) { 82277 if (e.namespace && this._initialized) { 82278 this._core.trigger('refresh', null, 'navigation'); 82279 this.update(); 82280 this.draw(); 82281 this._core.trigger('refreshed', null, 'navigation'); 82282 } 82283 }, this) 82284 }; 82285 82286 // set default options 82287 this._core.options = $.extend({}, Navigation.Defaults, this._core.options); 82288 82289 // register event handlers 82290 this.$element.on(this._handlers); 82291 }; 82292 82293 /** 82294 * Default options. 82295 * @public 82296 * @todo Rename `slideBy` to `navBy` 82297 */ 82298 Navigation.Defaults = { 82299 nav: false, 82300 navText: [ 'prev', 'next' ], 82301 navSpeed: false, 82302 navElement: 'div', 82303 navContainer: false, 82304 navContainerClass: 'owl-nav', 82305 navClass: [ 'owl-prev', 'owl-next' ], 82306 slideBy: 1, 82307 dotClass: 'owl-dot', 82308 dotsClass: 'owl-dots', 82309 dots: true, 82310 dotsEach: false, 82311 dotsData: false, 82312 dotsSpeed: false, 82313 dotsContainer: false 82314 }; 82315 82316 /** 82317 * Initializes the layout of the plugin and extends the carousel. 82318 * @protected 82319 */ 82320 Navigation.prototype.initialize = function() { 82321 var override, 82322 settings = this._core.settings; 82323 82324 // create DOM structure for relative navigation 82325 this._controls.$relative = (settings.navContainer ? $(settings.navContainer) 82326 : $('<div>').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled'); 82327 82328 this._controls.$previous = $('<' + settings.navElement + '>') 82329 .addClass(settings.navClass[0]) 82330 .html(settings.navText[0]) 82331 .prependTo(this._controls.$relative) 82332 .on('click', $.proxy(function(e) { 82333 this.prev(settings.navSpeed); 82334 }, this)); 82335 this._controls.$next = $('<' + settings.navElement + '>') 82336 .addClass(settings.navClass[1]) 82337 .html(settings.navText[1]) 82338 .appendTo(this._controls.$relative) 82339 .on('click', $.proxy(function(e) { 82340 this.next(settings.navSpeed); 82341 }, this)); 82342 82343 // create DOM structure for absolute navigation 82344 if (!settings.dotsData) { 82345 this._templates = [ $('<div>') 82346 .addClass(settings.dotClass) 82347 .append($('<span>')) 82348 .prop('outerHTML') ]; 82349 } 82350 82351 this._controls.$absolute = (settings.dotsContainer ? $(settings.dotsContainer) 82352 : $('<div>').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled'); 82353 82354 this._controls.$absolute.on('click', 'div', $.proxy(function(e) { 82355 var index = $(e.target).parent().is(this._controls.$absolute) 82356 ? $(e.target).index() : $(e.target).parent().index(); 82357 82358 e.preventDefault(); 82359 82360 this.to(index, settings.dotsSpeed); 82361 }, this)); 82362 82363 // override public methods of the carousel 82364 for (override in this._overrides) { 82365 this._core[override] = $.proxy(this[override], this); 82366 } 82367 }; 82368 82369 /** 82370 * Destroys the plugin. 82371 * @protected 82372 */ 82373 Navigation.prototype.destroy = function() { 82374 var handler, control, property, override; 82375 82376 for (handler in this._handlers) { 82377 this.$element.off(handler, this._handlers[handler]); 82378 } 82379 for (control in this._controls) { 82380 this._controls[control].remove(); 82381 } 82382 for (override in this.overides) { 82383 this._core[override] = this._overrides[override]; 82384 } 82385 for (property in Object.getOwnPropertyNames(this)) { 82386 typeof this[property] != 'function' && (this[property] = null); 82387 } 82388 }; 82389 82390 /** 82391 * Updates the internal state. 82392 * @protected 82393 */ 82394 Navigation.prototype.update = function() { 82395 var i, j, k, 82396 lower = this._core.clones().length / 2, 82397 upper = lower + this._core.items().length, 82398 maximum = this._core.maximum(true), 82399 settings = this._core.settings, 82400 size = settings.center || settings.autoWidth || settings.dotsData 82401 ? 1 : settings.dotsEach || settings.items; 82402 82403 if (settings.slideBy !== 'page') { 82404 settings.slideBy = Math.min(settings.slideBy, settings.items); 82405 } 82406 82407 if (settings.dots || settings.slideBy == 'page') { 82408 this._pages = []; 82409 82410 for (i = lower, j = 0, k = 0; i < upper; i++) { 82411 if (j >= size || j === 0) { 82412 this._pages.push({ 82413 start: Math.min(maximum, i - lower), 82414 end: i - lower + size - 1 82415 }); 82416 if (Math.min(maximum, i - lower) === maximum) { 82417 break; 82418 } 82419 j = 0, ++k; 82420 } 82421 j += this._core.mergers(this._core.relative(i)); 82422 } 82423 } 82424 }; 82425 82426 /** 82427 * Draws the user interface. 82428 * @todo The option `dotsData` wont work. 82429 * @protected 82430 */ 82431 Navigation.prototype.draw = function() { 82432 var difference, 82433 settings = this._core.settings, 82434 disabled = this._core.items().length <= settings.items, 82435 index = this._core.relative(this._core.current()), 82436 loop = settings.loop || settings.rewind; 82437 82438 this._controls.$relative.toggleClass('disabled', !settings.nav || disabled); 82439 82440 if (settings.nav) { 82441 this._controls.$previous.toggleClass('disabled', !loop && index <= this._core.minimum(true)); 82442 this._controls.$next.toggleClass('disabled', !loop && index >= this._core.maximum(true)); 82443 } 82444 82445 this._controls.$absolute.toggleClass('disabled', !settings.dots || disabled); 82446 82447 if (settings.dots) { 82448 difference = this._pages.length - this._controls.$absolute.children().length; 82449 82450 if (settings.dotsData && difference !== 0) { 82451 this._controls.$absolute.html(this._templates.join('')); 82452 } else if (difference > 0) { 82453 this._controls.$absolute.append(new Array(difference + 1).join(this._templates[0])); 82454 } else if (difference < 0) { 82455 this._controls.$absolute.children().slice(difference).remove(); 82456 } 82457 82458 this._controls.$absolute.find('.active').removeClass('active'); 82459 this._controls.$absolute.children().eq($.inArray(this.current(), this._pages)).addClass('active'); 82460 } 82461 }; 82462 82463 /** 82464 * Extends event data. 82465 * @protected 82466 * @param {Event} event - The event object which gets thrown. 82467 */ 82468 Navigation.prototype.onTrigger = function(event) { 82469 var settings = this._core.settings; 82470 82471 event.page = { 82472 index: $.inArray(this.current(), this._pages), 82473 count: this._pages.length, 82474 size: settings && (settings.center || settings.autoWidth || settings.dotsData 82475 ? 1 : settings.dotsEach || settings.items) 82476 }; 82477 }; 82478 82479 /** 82480 * Gets the current page position of the carousel. 82481 * @protected 82482 * @returns {Number} 82483 */ 82484 Navigation.prototype.current = function() { 82485 var current = this._core.relative(this._core.current()); 82486 return $.grep(this._pages, $.proxy(function(page, index) { 82487 return page.start <= current && page.end >= current; 82488 }, this)).pop(); 82489 }; 82490 82491 /** 82492 * Gets the current succesor/predecessor position. 82493 * @protected 82494 * @returns {Number} 82495 */ 82496 Navigation.prototype.getPosition = function(successor) { 82497 var position, length, 82498 settings = this._core.settings; 82499 82500 if (settings.slideBy == 'page') { 82501 position = $.inArray(this.current(), this._pages); 82502 length = this._pages.length; 82503 successor ? ++position : --position; 82504 position = this._pages[((position % length) + length) % length].start; 82505 } else { 82506 position = this._core.relative(this._core.current()); 82507 length = this._core.items().length; 82508 successor ? position += settings.slideBy : position -= settings.slideBy; 82509 } 82510 82511 return position; 82512 }; 82513 82514 /** 82515 * Slides to the next item or page. 82516 * @public 82517 * @param {Number} [speed=false] - The time in milliseconds for the transition. 82518 */ 82519 Navigation.prototype.next = function(speed) { 82520 $.proxy(this._overrides.to, this._core)(this.getPosition(true), speed); 82521 }; 82522 82523 /** 82524 * Slides to the previous item or page. 82525 * @public 82526 * @param {Number} [speed=false] - The time in milliseconds for the transition. 82527 */ 82528 Navigation.prototype.prev = function(speed) { 82529 $.proxy(this._overrides.to, this._core)(this.getPosition(false), speed); 82530 }; 82531 82532 /** 82533 * Slides to the specified item or page. 82534 * @public 82535 * @param {Number} position - The position of the item or page. 82536 * @param {Number} [speed] - The time in milliseconds for the transition. 82537 * @param {Boolean} [standard=false] - Whether to use the standard behaviour or not. 82538 */ 82539 Navigation.prototype.to = function(position, speed, standard) { 82540 var length; 82541 82542 if (!standard && this._pages.length) { 82543 length = this._pages.length; 82544 $.proxy(this._overrides.to, this._core)(this._pages[((position % length) + length) % length].start, speed); 82545 } else { 82546 $.proxy(this._overrides.to, this._core)(position, speed); 82547 } 82548 }; 82549 82550 $.fn.owlCarousel.Constructor.Plugins.Navigation = Navigation; 82551 82552})(window.Zepto || window.jQuery, window, document); 82553 82554/** 82555 * Hash Plugin 82556 * @version 2.1.0 82557 * @author Artus Kolanowski 82558 * @author Saurabh Sharma 82559 * @license The MIT License (MIT) 82560 */ 82561;(function($, window, document, undefined) { 82562 'use strict'; 82563 82564 /** 82565 * Creates the hash plugin. 82566 * @class The Hash Plugin 82567 * @param {Owl} carousel - The Owl Carousel 82568 */ 82569 var Hash = function(carousel) { 82570 /** 82571 * Reference to the core. 82572 * @protected 82573 * @type {Owl} 82574 */ 82575 this._core = carousel; 82576 82577 /** 82578 * Hash index for the items. 82579 * @protected 82580 * @type {Object} 82581 */ 82582 this._hashes = {}; 82583 82584 /** 82585 * The carousel element. 82586 * @type {jQuery} 82587 */ 82588 this.$element = this._core.$element; 82589 82590 /** 82591 * All event handlers. 82592 * @protected 82593 * @type {Object} 82594 */ 82595 this._handlers = { 82596 'initialized.owl.carousel': $.proxy(function(e) { 82597 if (e.namespace && this._core.settings.startPosition === 'URLHash') { 82598 $(window).trigger('hashchange.owl.navigation'); 82599 } 82600 }, this), 82601 'prepared.owl.carousel': $.proxy(function(e) { 82602 if (e.namespace) { 82603 var hash = $(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash'); 82604 82605 if (!hash) { 82606 return; 82607 } 82608 82609 this._hashes[hash] = e.content; 82610 } 82611 }, this), 82612 'changed.owl.carousel': $.proxy(function(e) { 82613 if (e.namespace && e.property.name === 'position') { 82614 var current = this._core.items(this._core.relative(this._core.current())), 82615 hash = $.map(this._hashes, function(item, hash) { 82616 return item === current ? hash : null; 82617 }).join(); 82618 82619 if (!hash || window.location.hash.slice(1) === hash) { 82620 return; 82621 } 82622 82623 window.location.hash = hash; 82624 } 82625 }, this) 82626 }; 82627 82628 // set default options 82629 this._core.options = $.extend({}, Hash.Defaults, this._core.options); 82630 82631 // register the event handlers 82632 this.$element.on(this._handlers); 82633 82634 // register event listener for hash navigation 82635 $(window).on('hashchange.owl.navigation', $.proxy(function(e) { 82636 var hash = window.location.hash.substring(1), 82637 items = this._core.$stage.children(), 82638 position = this._hashes[hash] && items.index(this._hashes[hash]); 82639 82640 if (position === undefined || position === this._core.current()) { 82641 return; 82642 } 82643 82644 this._core.to(this._core.relative(position), false, true); 82645 }, this)); 82646 }; 82647 82648 /** 82649 * Default options. 82650 * @public 82651 */ 82652 Hash.Defaults = { 82653 URLhashListener: false 82654 }; 82655 82656 /** 82657 * Destroys the plugin. 82658 * @public 82659 */ 82660 Hash.prototype.destroy = function() { 82661 var handler, property; 82662 82663 $(window).off('hashchange.owl.navigation'); 82664 82665 for (handler in this._handlers) { 82666 this._core.$element.off(handler, this._handlers[handler]); 82667 } 82668 for (property in Object.getOwnPropertyNames(this)) { 82669 typeof this[property] != 'function' && (this[property] = null); 82670 } 82671 }; 82672 82673 $.fn.owlCarousel.Constructor.Plugins.Hash = Hash; 82674 82675})(window.Zepto || window.jQuery, window, document); 82676 82677/** 82678 * Support Plugin 82679 * 82680 * @version 2.1.0 82681 * @author Vivid Planet Software GmbH 82682 * @author Artus Kolanowski 82683 * @author Saurabh Sharma 82684 * @license The MIT License (MIT) 82685 */ 82686;(function($, window, document, undefined) { 82687 82688 var style = $('<support>').get(0).style, 82689 prefixes = 'Webkit Moz O ms'.split(' '), 82690 events = { 82691 transition: { 82692 end: { 82693 WebkitTransition: 'webkitTransitionEnd', 82694 MozTransition: 'transitionend', 82695 OTransition: 'oTransitionEnd', 82696 transition: 'transitionend' 82697 } 82698 }, 82699 animation: { 82700 end: { 82701 WebkitAnimation: 'webkitAnimationEnd', 82702 MozAnimation: 'animationend', 82703 OAnimation: 'oAnimationEnd', 82704 animation: 'animationend' 82705 } 82706 } 82707 }, 82708 tests = { 82709 csstransforms: function() { 82710 return !!test('transform'); 82711 }, 82712 csstransforms3d: function() { 82713 return !!test('perspective'); 82714 }, 82715 csstransitions: function() { 82716 return !!test('transition'); 82717 }, 82718 cssanimations: function() { 82719 return !!test('animation'); 82720 } 82721 }; 82722 82723 function test(property, prefixed) { 82724 var result = false, 82725 upper = property.charAt(0).toUpperCase() + property.slice(1); 82726 82727 $.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function(i, property) { 82728 if (style[property] !== undefined) { 82729 result = prefixed ? property : true; 82730 return false; 82731 } 82732 }); 82733 82734 return result; 82735 } 82736 82737 function prefixed(property) { 82738 return test(property, true); 82739 } 82740 82741 if (tests.csstransitions()) { 82742 /* jshint -W053 */ 82743 $.support.transition = new String(prefixed('transition')) 82744 $.support.transition.end = events.transition.end[ $.support.transition ]; 82745 } 82746 82747 if (tests.cssanimations()) { 82748 /* jshint -W053 */ 82749 $.support.animation = new String(prefixed('animation')) 82750 $.support.animation.end = events.animation.end[ $.support.animation ]; 82751 } 82752 82753 if (tests.csstransforms()) { 82754 /* jshint -W053 */ 82755 $.support.transform = new String(prefixed('transform')); 82756 $.support.transform3d = tests.csstransforms3d(); 82757 } 82758 82759})(window.Zepto || window.jQuery, window, document); 82760 82761 82762/***/ }), 82763
vendor: 5,636 bytes, lines 82764-82957
82764/***/ "./node_modules/process/browser.js": 82765/*!*****************************************!*\ 82766 !*** ./node_modules/process/browser.js ***! 82767 \*****************************************/ 82768/***/ ((module) => { 82769 82770// shim for using process in browser 82771var process = module.exports = {}; 82772 82773// cached from whatever global is present so that test runners that stub it 82774// don't break things. But we need to wrap it in a try catch in case it is 82775// wrapped in strict mode code which doesn't define any globals. It's inside a 82776// function because try/catches deoptimize in certain engines. 82777 82778var cachedSetTimeout; 82779var cachedClearTimeout; 82780 82781function defaultSetTimout() { 82782 throw new Error('setTimeout has not been defined'); 82783} 82784function defaultClearTimeout () { 82785 throw new Error('clearTimeout has not been defined'); 82786} 82787(function () { 82788 try { 82789 if (typeof setTimeout === 'function') { 82790 cachedSetTimeout = setTimeout; 82791 } else { 82792 cachedSetTimeout = defaultSetTimout; 82793 } 82794 } catch (e) { 82795 cachedSetTimeout = defaultSetTimout; 82796 } 82797 try { 82798 if (typeof clearTimeout === 'function') { 82799 cachedClearTimeout = clearTimeout; 82800 } else { 82801 cachedClearTimeout = defaultClearTimeout; 82802 } 82803 } catch (e) { 82804 cachedClearTimeout = defaultClearTimeout; 82805 } 82806} ()) 82807function runTimeout(fun) { 82808 if (cachedSetTimeout === setTimeout) { 82809 //normal enviroments in sane situations 82810 return setTimeout(fun, 0); 82811 } 82812 // if setTimeout wasn't available but was latter defined 82813 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { 82814 cachedSetTimeout = setTimeout; 82815 return setTimeout(fun, 0); 82816 } 82817 try { 82818 // when when somebody has screwed with setTimeout but no I.E. maddness 82819 return cachedSetTimeout(fun, 0); 82820 } catch(e){ 82821 try { 82822 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally 82823 return cachedSetTimeout.call(null, fun, 0); 82824 } catch(e){ 82825 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error 82826 return cachedSetTimeout.call(this, fun, 0); 82827 } 82828 } 82829 82830 82831} 82832function runClearTimeout(marker) { 82833 if (cachedClearTimeout === clearTimeout) { 82834 //normal enviroments in sane situations 82835 return clearTimeout(marker); 82836 } 82837 // if clearTimeout wasn't available but was latter defined 82838 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { 82839 cachedClearTimeout = clearTimeout; 82840 return clearTimeout(marker); 82841 } 82842 try { 82843 // when when somebody has screwed with setTimeout but no I.E. maddness 82844 return cachedClearTimeout(marker); 82845 } catch (e){ 82846 try { 82847 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally 82848 return cachedClearTimeout.call(null, marker); 82849 } catch (e){ 82850 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. 82851 // Some versions of I.E. have different rules for clearTimeout vs setTimeout 82852 return cachedClearTimeout.call(this, marker); 82853 } 82854 } 82855 82856 82857 82858} 82859var queue = []; 82860var draining = false; 82861var currentQueue; 82862var queueIndex = -1; 82863 82864function cleanUpNextTick() { 82865 if (!draining || !currentQueue) { 82866 return; 82867 } 82868 draining = false; 82869 if (currentQueue.length) { 82870 queue = currentQueue.concat(queue); 82871 } else { 82872 queueIndex = -1; 82873 } 82874 if (queue.length) { 82875 drainQueue(); 82876 } 82877} 82878 82879function drainQueue() { 82880 if (draining) { 82881 return; 82882 } 82883 var timeout = runTimeout(cleanUpNextTick); 82884 draining = true; 82885 82886 var len = queue.length; 82887 while(len) { 82888 currentQueue = queue; 82889 queue = []; 82890 while (++queueIndex < len) { 82891 if (currentQueue) { 82892 currentQueue[queueIndex].run(); 82893 } 82894 } 82895 queueIndex = -1; 82896 len = queue.length; 82897 } 82898 currentQueue = null; 82899 draining = false; 82900 runClearTimeout(timeout); 82901} 82902 82903process.nextTick = function (fun) { 82904 var args = new Array(arguments.length - 1); 82905 if (arguments.length > 1) { 82906 for (var i = 1; i < arguments.length; i++) { 82907 args[i - 1] = arguments[i]; 82908 } 82909 } 82910 queue.push(new Item(fun, args)); 82911 if (queue.length === 1 && !draining) { 82912 runTimeout(drainQueue); 82913 } 82914}; 82915 82916// v8 likes predictible objects 82917function Item(fun, array) { 82918 this.fun = fun; 82919 this.array = array; 82920} 82921Item.prototype.run = function () { 82922 this.fun.apply(null, this.array); 82923}; 82924process.title = 'browser'; 82925process.browser = true; 82926process.env = {}; 82927process.argv = []; 82928process.version = ''; // empty string to avoid regexp issues 82929process.versions = {}; 82930 82931function noop() {} 82932 82933process.on = noop; 82934process.addListener = noop; 82935process.once = noop; 82936process.off = noop; 82937process.removeListener = noop; 82938process.removeAllListeners = noop; 82939process.emit = noop; 82940process.prependListener = noop; 82941process.prependOnceListener = noop; 82942 82943process.listeners = function (name) { return [] } 82944 82945process.binding = function (name) { 82946 throw new Error('process.binding is not supported'); 82947}; 82948 82949process.cwd = function () { return '/' }; 82950process.chdir = function (dir) { 82951 throw new Error('process.chdir is not supported'); 82952}; 82953process.umask = function() { return 0; }; 82954 82955 82956/***/ }), 82957
vendor: 77,383 bytes, lines 82958-82971
82958/***/ "./node_modules/select2/dist/js/select2.full.min.js": 82959/*!**********************************************************!*\ 82960 !*** ./node_modules/select2/dist/js/select2.full.min.js ***! 82961 \**********************************************************/ 82962/***/ ((module, exports, __webpack_require__) => { 82963 82964var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! Select2 4.1.0-rc.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 82965!function(n){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (n), 82966 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 82967 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 82968 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0}(function(t){var e,n,p,o,r,h,f,g,m,v,y,s,i,_,a,a=((u=t&&t.fn&&t.fn.select2&&t.fn.select2.amd?t.fn.select2.amd:u)&&u.requirejs||(u?n=u:u={},g={},m={},v={},y={},s=Object.prototype.hasOwnProperty,i=[].slice,_=/\.js$/,h=function(e,t){var n,s,i=c(e),o=i[0],t=t[1];return e=i[1],o&&(n=x(o=l(o,t))),o?e=n&&n.normalize?n.normalize(e,(s=t,function(e){return l(e,s)})):l(e,t):(o=(i=c(e=l(e,t)))[0],e=i[1],o&&(n=x(o))),{f:o?o+"!"+e:e,n:e,pr:o,p:n}},f={require:function(e){return w(e)},exports:function(e){var t=g[e];return void 0!==t?t:g[e]={}},module:function(e){return{id:e,uri:"",exports:g[e],config:(t=e,function(){return v&&v.config&&v.config[t]||{}})};var t}},o=function(e,t,n,s){var i,o,r,a,l,c=[],u=typeof n,d=A(s=s||e);if("undefined"==u||"function"==u){for(t=!t.length&&n.length?["require","exports","module"]:t,a=0;a<t.length;a+=1)if("require"===(o=(r=h(t[a],d)).f))c[a]=f.require(e);else if("exports"===o)c[a]=f.exports(e),l=!0;else if("module"===o)i=c[a]=f.module(e);else if(b(g,o)||b(m,o)||b(y,o))c[a]=x(o);else{if(!r.p)throw new Error(e+" missing "+o);r.p.load(r.n,w(s,!0),function(t){return function(e){g[t]=e}}(o),{}),c[a]=g[o]}u=n?n.apply(g[e],c):void 0,e&&(i&&i.exports!==p&&i.exports!==g[e]?g[e]=i.exports:u===p&&l||(g[e]=u))}else e&&(g[e]=n)},e=n=r=function(e,t,n,s,i){if("string"==typeof e)return f[e]?f[e](t):x(h(e,A(t)).f);if(!e.splice){if((v=e).deps&&r(v.deps,v.callback),!t)return;t.splice?(e=t,t=n,n=null):e=p}return t=t||function(){},"function"==typeof n&&(n=s,s=i),s?o(p,e,t,n):setTimeout(function(){o(p,e,t,n)},4),r},r.config=function(e){return r(e)},e._defined=g,(a=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),b(g,e)||b(m,e)||(m[e]=[e,t,n])}).amd={jQuery:!0},u.requirejs=e,u.require=n,u.define=a),u.define("almond",function(){}),u.define("jquery",[],function(){var e=t||$;return null==e&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),e}),u.define("select2/utils",["jquery"],function(o){var s={};function c(e){var t,n=e.prototype,s=[];for(t in n)"function"==typeof n[t]&&"constructor"!==t&&s.push(t);return s}s.Extend=function(e,t){var n,s={}.hasOwnProperty;function i(){this.constructor=e}for(n in t)s.call(t,n)&&(e[n]=t[n]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},s.Decorate=function(s,i){var e=c(i),t=c(s);function o(){var e=Array.prototype.unshift,t=i.prototype.constructor.length,n=s.prototype.constructor;0<t&&(e.call(arguments,s.prototype.constructor),n=i.prototype.constructor),n.apply(this,arguments)}i.displayName=s.displayName,o.prototype=new function(){this.constructor=o};for(var n=0;n<t.length;n++){var r=t[n];o.prototype[r]=s.prototype[r]}for(var a=0;a<e.length;a++){var l=e[a];o.prototype[l]=function(e){var t=function(){};e in o.prototype&&(t=o.prototype[e]);var n=i.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}(l)}return o};function e(){this.listeners={}}e.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},e.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},0===(n=null==n?[]:n).length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},e.prototype.invoke=function(e,t){for(var n=0,s=e.length;n<s;n++)e[n].apply(this,t)},s.Observable=e,s.generateChars=function(e){for(var t="",n=0;n<e;n++)t+=Math.floor(36*Math.random()).toString(36);return t},s.bind=function(e,t){return function(){e.apply(t,arguments)}},s._convertData=function(e){for(var t in e){var n=t.split("-"),s=e;if(1!==n.length){for(var i=0;i<n.length;i++){var o=n[i];(o=o.substring(0,1).toLowerCase()+o.substring(1))in s||(s[o]={}),i==n.length-1&&(s[o]=e[t]),s=s[o]}delete e[t]}}return e},s.hasScroll=function(e,t){var n=o(t),s=t.style.overflowX,i=t.style.overflowY;return(s!==i||"hidden"!==i&&"visible"!==i)&&("scroll"===s||"scroll"===i||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},s.escapeMarkup=function(e){var t={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},s.__cache={};var n=0;return s.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null!=t||(t=e.id?"select2-data-"+e.id:"select2-data-"+(++n).toString()+"-"+s.generateChars(4),e.setAttribute("data-select2-id",t)),t},s.StoreData=function(e,t,n){e=s.GetUniqueElementId(e);s.__cache[e]||(s.__cache[e]={}),s.__cache[e][t]=n},s.GetData=function(e,t){var n=s.GetUniqueElementId(e);return t?s.__cache[n]&&null!=s.__cache[n][t]?s.__cache[n][t]:o(e).data(t):s.__cache[n]},s.RemoveData=function(e){var t=s.GetUniqueElementId(e);null!=s.__cache[t]&&delete s.__cache[t],e.removeAttribute("data-select2-id")},s.copyNonInternalCssClasses=function(e,t){var n=(n=e.getAttribute("class").trim().split(/\s+/)).filter(function(e){return 0===e.indexOf("select2-")}),t=(t=t.getAttribute("class").trim().split(/\s+/)).filter(function(e){return 0!==e.indexOf("select2-")}),t=n.concat(t);e.setAttribute("class",t.join(" "))},s}),u.define("select2/results",["jquery","./utils"],function(d,p){function s(e,t,n){this.$element=e,this.data=n,this.options=t,s.__super__.constructor.call(this)}return p.Extend(s,p.Observable),s.prototype.render=function(){var e=d('<ul class="select2-results__options" role="listbox"></ul>');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},s.prototype.clear=function(){this.$results.empty()},s.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=d('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),s=this.options.get("translations").get(e.message);n.append(t(s(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},s.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},s.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var s=e.results[n],s=this.option(s);t.push(s)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},s.prototype.position=function(e,t){t.find(".select2-results").append(e)},s.prototype.sort=function(e){return this.options.get("sorter")(e)},s.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option--selectable"),t=e.filter(".select2-results__option--selected");(0<t.length?t:e).first().trigger("mouseenter"),this.ensureHighlightVisible()},s.prototype.setClasses=function(){var t=this;this.data.current(function(e){var s=e.map(function(e){return e.id.toString()});t.$results.find(".select2-results__option--selectable").each(function(){var e=d(this),t=p.GetData(this,"data"),n=""+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<s.indexOf(n)?(this.classList.add("select2-results__option--selected"),e.attr("aria-selected","true")):(this.classList.remove("select2-results__option--selected"),e.attr("aria-selected","false"))})})},s.prototype.showLoading=function(e){this.hideLoading();e={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},e=this.option(e);e.className+=" loading-results",this.$results.prepend(e)},s.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},s.prototype.option=function(e){var t=document.createElement("li");t.classList.add("select2-results__option"),t.classList.add("select2-results__option--selectable");var n,s={role:"option"},i=window.Element.prototype.matches||window.Element.prototype.msMatchesSelector||window.Element.prototype.webkitMatchesSelector;for(n in(null!=e.element&&i.call(e.element,":disabled")||null==e.element&&e.disabled)&&(s["aria-disabled"]="true",t.classList.remove("select2-results__option--selectable"),t.classList.add("select2-results__option--disabled")),null==e.id&&t.classList.remove("select2-results__option--selectable"),null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(s.role="group",s["aria-label"]=e.text,t.classList.remove("select2-results__option--selectable"),t.classList.add("select2-results__option--group")),s){var o=s[n];t.setAttribute(n,o)}if(e.children){var r=d(t),a=document.createElement("strong");a.className="select2-results__group",this.template(e,a);for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],u=this.option(u);l.push(u)}i=d("<ul></ul>",{class:"select2-results__options select2-results__options--nested",role:"none"});i.append(l),r.append(a),r.append(i)}else this.template(e,t);return p.StoreData(t,"data",e),t},s.prototype.bind=function(t,e){var i=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){i.clear(),i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("results:append",function(e){i.append(e.data),t.isOpen()&&i.setClasses()}),t.on("query",function(e){i.hideMessages(),i.showLoading(e)}),t.on("select",function(){t.isOpen()&&(i.setClasses(),i.options.get("scrollAfterSelect")&&i.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(i.setClasses(),i.options.get("scrollAfterSelect")&&i.highlightFirstItem())}),t.on("open",function(){i.$results.attr("aria-expanded","true"),i.$results.attr("aria-hidden","false"),i.setClasses(),i.ensureHighlightVisible()}),t.on("close",function(){i.$results.attr("aria-expanded","false"),i.$results.attr("aria-hidden","true"),i.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=i.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e,t=i.getHighlightedResults();0!==t.length&&(e=p.GetData(t[0],"data"),t.hasClass("select2-results__option--selected")?i.trigger("close",{}):i.trigger("select",{data:e}))}),t.on("results:previous",function(){var e,t=i.getHighlightedResults(),n=i.$results.find(".select2-results__option--selectable"),s=n.index(t);s<=0||(e=s-1,0===t.length&&(e=0),(s=n.eq(e)).trigger("mouseenter"),t=i.$results.offset().top,n=s.offset().top,s=i.$results.scrollTop()+(n-t),0===e?i.$results.scrollTop(0):n-t<0&&i.$results.scrollTop(s))}),t.on("results:next",function(){var e,t=i.getHighlightedResults(),n=i.$results.find(".select2-results__option--selectable"),s=n.index(t)+1;s>=n.length||((e=n.eq(s)).trigger("mouseenter"),t=i.$results.offset().top+i.$results.outerHeight(!1),n=e.offset().top+e.outerHeight(!1),e=i.$results.scrollTop()+n-t,0===s?i.$results.scrollTop(0):t<n&&i.$results.scrollTop(e))}),t.on("results:focus",function(e){e.element[0].classList.add("select2-results__option--highlighted"),e.element[0].setAttribute("aria-selected","true")}),t.on("results:message",function(e){i.displayMessage(e)}),d.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=i.$results.scrollTop(),n=i.$results.get(0).scrollHeight-t+e.deltaY,t=0<e.deltaY&&t-e.deltaY<=0,n=e.deltaY<0&&n<=i.$results.height();t?(i.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):n&&(i.$results.scrollTop(i.$results.get(0).scrollHeight-i.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option--selectable",function(e){var t=d(this),n=p.GetData(this,"data");t.hasClass("select2-results__option--selected")?i.options.get("multiple")?i.trigger("unselect",{originalEvent:e,data:n}):i.trigger("close",{}):i.trigger("select",{originalEvent:e,data:n})}),this.$results.on("mouseenter",".select2-results__option--selectable",function(e){var t=p.GetData(this,"data");i.getHighlightedResults().removeClass("select2-results__option--highlighted").attr("aria-selected","false"),i.trigger("results:focus",{data:t,element:d(this)})})},s.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},s.prototype.destroy=function(){this.$results.remove()},s.prototype.ensureHighlightVisible=function(){var e,t,n,s,i=this.getHighlightedResults();0!==i.length&&(e=this.$results.find(".select2-results__option--selectable").index(i),s=this.$results.offset().top,t=i.offset().top,n=this.$results.scrollTop()+(t-s),s=t-s,n-=2*i.outerHeight(!1),e<=2?this.$results.scrollTop(0):(s>this.$results.outerHeight()||s<0)&&this.$results.scrollTop(n))},s.prototype.template=function(e,t){var n=this.options.get("templateResult"),s=this.options.get("escapeMarkup"),e=n(e,t);null==e?t.style.display="none":"string"==typeof e?t.innerHTML=s(e):d(t).append(e)},s}),u.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),u.define("select2/selection/base",["jquery","../utils","../keys"],function(n,s,i){function o(e,t){this.$element=e,this.options=t,o.__super__.constructor.call(this)}return s.Extend(o,s.Observable),o.prototype.render=function(){var e=n('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=s.GetData(this.$element[0],"old-tabindex")?this._tabindex=s.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},o.prototype.bind=function(e,t){var n=this,s=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===i.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",s),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},o.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},o.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&s.GetData(this,"element").select2("close")})})},o.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},o.prototype.position=function(e,t){t.find(".selection").append(e)},o.prototype.destroy=function(){this._detachCloseHandler(this.container)},o.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get("disabled")},o}),u.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,s){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e[0].classList.add("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var s=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",s).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",s),this.$selection.attr("aria-controls",s),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},i.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e("<span></span>")},i.prototype.update=function(e){var t,n;0!==e.length?(n=e[0],t=this.$selection.find(".select2-selection__rendered"),e=this.display(n,t),t.empty().append(e),(n=n.title||n.text)?t.attr("title",n):t.removeAttr("title")):this.clear()},i}),u.define("select2/selection/multiple",["jquery","./base","../utils"],function(i,e,c){function o(e,t){o.__super__.constructor.apply(this,arguments)}return c.Extend(o,e),o.prototype.render=function(){var e=o.__super__.render.call(this);return e[0].classList.add("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered"></ul>'),e},o.prototype.bind=function(e,t){var n=this;o.__super__.bind.apply(this,arguments);var s=e.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",s),this.$selection.on("click",function(e){n.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){var t;n.isDisabled()||(t=i(this).parent(),t=c.GetData(t[0],"data"),n.trigger("unselect",{originalEvent:e,data:t}))}),this.$selection.on("keydown",".select2-selection__choice__remove",function(e){n.isDisabled()||e.stopPropagation()})},o.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},o.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},o.prototype.selectionContainer=function(){return i('<li class="select2-selection__choice"><button type="button" class="select2-selection__choice__remove" tabindex="-1"><span aria-hidden="true">×</span></button><span class="select2-selection__choice__display"></span></li>')},o.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=this.$selection.find(".select2-selection__rendered").attr("id")+"-choice-",s=0;s<e.length;s++){var i=e[s],o=this.selectionContainer(),r=this.display(i,o),a=n+c.generateChars(4)+"-";i.id?a+=i.id:a+=c.generateChars(4),o.find(".select2-selection__choice__display").append(r).attr("id",a);var l=i.title||i.text;l&&o.attr("title",l);r=this.options.get("translations").get("removeItem"),l=o.find(".select2-selection__choice__remove");l.attr("title",r()),l.attr("aria-label",r()),l.attr("aria-describedby",a),c.StoreData(o[0],"data",i),t.push(o)}this.$selection.find(".select2-selection__rendered").append(t)}},o}),u.define("select2/selection/placeholder",[],function(){function e(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return e.prototype.normalizePlaceholder=function(e,t){return t="string"==typeof t?{id:"",text:t}:t},e.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();n.html(this.display(t)),n[0].classList.add("select2-selection__placeholder"),n[0].classList.remove("select2-selection__choice");t=t.title||t.text||n.text();return this.$selection.find(".select2-selection__rendered").attr("title",t),n},e.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();t=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(t)},e}),u.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(i,s,a){function e(){}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){s._handleClear(e)}),t.on("keypress",function(e){s._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.isDisabled()){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();var s=a.GetData(n[0],"data"),i=this.$element.val();this.$element.val(this.placeholder.id);var o={data:s};if(this.trigger("clear",o),o.prevented)this.$element.val(i);else{for(var r=0;r<s.length;r++)if(o={data:s[r]},this.trigger("unselect",o),o.prevented)return void this.$element.val(i);this.$element.trigger("input").trigger("change"),this.trigger("toggle",{})}}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=s.DELETE&&t.which!=s.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){var n,s;e.call(this,t),this.$selection.find(".select2-selection__clear").remove(),this.$selection[0].classList.remove("select2-selection--clearable"),0<this.$selection.find(".select2-selection__placeholder").length||0===t.length||(n=this.$selection.find(".select2-selection__rendered").attr("id"),s=this.options.get("translations").get("removeAllItems"),(e=i('<button type="button" class="select2-selection__clear" tabindex="-1"><span aria-hidden="true">×</span></button>')).attr("title",s()),e.attr("aria-label",s()),e.attr("aria-describedby",n),a.StoreData(e[0],"data",t),this.$selection.prepend(e),this.$selection[0].classList.add("select2-selection--clearable"))},e}),u.define("select2/selection/search",["jquery","../utils","../keys"],function(s,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=this.options.get("translations").get("search"),n=s('<span class="select2-search select2-search--inline"><textarea class="select2-search__field" type="search" tabindex="-1" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" ></textarea></span>');this.$searchContainer=n,this.$search=n.find("textarea"),this.$search.prop("autocomplete",this.options.get("autocomplete")),this.$search.attr("aria-label",t());e=e.call(this);return this._transferTabIndex(),e.append(this.$searchContainer),e},e.prototype.bind=function(e,t,n){var s=this,i=t.id+"-results",o=t.id+"-container";e.call(this,t,n),s.$search.attr("aria-describedby",o),t.on("open",function(){s.$search.attr("aria-controls",i),s.$search.trigger("focus")}),t.on("close",function(){s.$search.val(""),s.resizeSearch(),s.$search.removeAttr("aria-controls"),s.$search.removeAttr("aria-activedescendant"),s.$search.trigger("focus")}),t.on("enable",function(){s.$search.prop("disabled",!1),s._transferTabIndex()}),t.on("disable",function(){s.$search.prop("disabled",!0)}),t.on("focus",function(e){s.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?s.$search.attr("aria-activedescendant",e.data._resultId):s.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){s.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){s._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){var t;e.stopPropagation(),s.trigger("keypress",e),s._keyUpPrevented=e.isDefaultPrevented(),e.which!==l.BACKSPACE||""!==s.$search.val()||0<(t=s.$selection.find(".select2-selection__choice").last()).length&&(t=a.GetData(t[0],"data"),s.searchRemoveChoice(t),e.preventDefault())}),this.$selection.on("click",".select2-search--inline",function(e){s.$search.val()&&e.stopPropagation()});var t=document.documentMode,r=t&&t<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){r?s.$selection.off("input.search input.searchcheck"):s.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){var t;r&&"input"===e.type?s.$selection.off("input.search input.searchcheck"):(t=e.which)!=l.SHIFT&&t!=l.CTRL&&t!=l.ALT&&t!=l.TAB&&s.handleSearch(e)})},e.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},e.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.resizeSearch(),n&&this.$search.trigger("focus")},e.prototype.handleSearch=function(){var e;this.resizeSearch(),this._keyUpPrevented||(e=this.$search.val(),this.trigger("query",{term:e})),this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="100%";""===this.$search.attr("placeholder")&&(e=.75*(this.$search.val().length+1)+"em"),this.$search.css("width",e)},e}),u.define("select2/selection/selectionCss",["../utils"],function(n){function e(){}return e.prototype.render=function(e){var t=e.call(this),e=this.options.get("selectionCssClass")||"";return-1!==e.indexOf(":all:")&&(e=e.replace(":all:",""),n.copyNonInternalCssClasses(t[0],this.$element[0])),t.addClass(e),t},e}),u.define("select2/selection/eventRelay",["jquery"],function(r){function e(){}return e.prototype.bind=function(e,t,n){var s=this,i=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],o=["opening","closing","selecting","unselecting","clearing"];e.call(this,t,n),t.on("*",function(e,t){var n;-1!==i.indexOf(e)&&(t=t||{},n=r.Event("select2:"+e,{params:t}),s.$element.trigger(n),-1!==o.indexOf(e)&&(t.prevented=n.isDefaultPrevented()))})},e}),u.define("select2/translation",["jquery","require"],function(t,n){function s(e){this.dict=e||{}}return s.prototype.all=function(){return this.dict},s.prototype.get=function(e){return this.dict[e]},s.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},s._cache={},s.loadPath=function(e){var t;return e in s._cache||(t=n(e),s._cache[e]=t),new s(s._cache[e])},s}),u.define("select2/diacritics",[],function(){return{"â¶":"A","A":"A","Ã":"A","Ã":"A","Ã":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ä":"A","Ä":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ç ":"A","Ã":"A","Ç":"A","Ả":"A","à ":"A","Ǻ":"A","Ç":"A","È":"A","È":"A","Ạ":"A","Ậ":"A","Ặ":"A","á¸":"A","Ä":"A","Ⱥ":"A","Ɐ":"A","ê²":"AA","Ã":"AE","Ǽ":"AE","Ç¢":"AE","ê´":"AO","ê¶":"AU","ê¸":"AV","êº":"AV","ê¼":"AY","â·":"B","ï¼¢":"B","á¸":"B","á¸":"B","á¸":"B","É":"B","Æ":"B","Æ":"B","â¸":"C","ï¼£":"C","Ä":"C","Ä":"C","Ä":"C","Ä":"C","Ã":"C","á¸":"C","Æ":"C","È»":"C","ê¾":"C","â¹":"D","D":"D","á¸":"D","Ä":"D","á¸":"D","á¸":"D","á¸":"D","á¸":"D","Ä":"D","Æ":"D","Æ":"D","Æ":"D","ê¹":"D","DZ":"DZ","Ç":"DZ","Dz":"Dz","Ç ":"Dz","âº":"E","ï¼¥":"E","Ã":"E","Ã":"E","Ã":"E","á»":"E","Ế":"E","á»":"E","á»":"E","Ẽ":"E","Ä":"E","á¸":"E","á¸":"E","Ä":"E","Ä":"E","Ã":"E","Ẻ":"E","Ä":"E","È":"E","È":"E","Ẹ":"E","á»":"E","Ȩ":"E","á¸":"E","Ä":"E","á¸":"E","á¸":"E","Æ":"E","Æ":"E","â»":"F","F":"F","á¸":"F","Æ":"F","ê»":"F","â¼":"G","ï¼§":"G","Ç´":"G","Ä":"G","Ḡ":"G","Ä":"G","Ä ":"G","Ǧ":"G","Ä¢":"G","Ǥ":"G","Æ":"G","ê ":"G","ê½":"G","ê¾":"G","â½":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","È":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","â±§":"H","â±µ":"H","ê":"H","â¾":"I","I":"I","Ã":"I","Ã":"I","Ã":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ã":"I","Ḯ":"I","á»":"I","Ç":"I","È":"I","È":"I","á»":"I","Ä®":"I","Ḭ":"I","Æ":"I","â¿":"J","J":"J","Ä´":"J","É":"J","â":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Æ":"K","Ⱪ":"K","ê":"K","ê":"K","ê":"K","ê¢":"K","â":"L","L":"L","Ä¿":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ä»":"L","Ḽ":"L","Ḻ":"L","Å":"L","Ƚ":"L","â±¢":"L","â± ":"L","ê":"L","ê":"L","ê":"L","Ç":"LJ","Ç":"Lj","â":"M","ï¼":"M","Ḿ":"M","á¹":"M","á¹":"M","â±®":"M","Æ":"M","â":"N","ï¼®":"N","Ǹ":"N","Å":"N","Ã":"N","á¹":"N","Å":"N","á¹":"N","Å ":"N","á¹":"N","á¹":"N","È ":"N","Æ":"N","ê":"N","ê¤":"N","Ç":"NJ","Ç":"Nj","â":"O","O":"O","Ã":"O","Ã":"O","Ã":"O","á»":"O","á»":"O","á»":"O","á»":"O","Ã":"O","á¹":"O","Ȭ":"O","á¹":"O","Å":"O","á¹":"O","á¹":"O","Å":"O","È®":"O","Ȱ":"O","Ã":"O","Ȫ":"O","á»":"O","Å":"O","Ç":"O","È":"O","È":"O","Æ ":"O","á»":"O","á»":"O","á» ":"O","á»":"O","Ợ":"O","á»":"O","á»":"O","Ǫ":"O","Ǭ":"O","Ã":"O","Ǿ":"O","Æ":"O","Æ":"O","ê":"O","ê":"O","Å":"OE","Æ¢":"OI","ê":"OO","È¢":"OU","â ":"P","ï¼°":"P","á¹":"P","á¹":"P","Ƥ":"P","â±£":"P","ê":"P","ê":"P","ê":"P","â":"Q","ï¼±":"Q","ê":"Q","ê":"Q","É":"Q","â":"R","ï¼²":"R","Å":"R","á¹":"R","Å":"R","È":"R","È":"R","á¹":"R","á¹":"R","Å":"R","á¹":"R","É":"R","Ɽ":"R","ê":"R","ê¦":"R","ê":"R","â":"S","ï¼³":"S","áº":"S","Å":"S","Ṥ":"S","Å":"S","á¹ ":"S","Å ":"S","Ṧ":"S","á¹¢":"S","Ṩ":"S","È":"S","Å":"S","â±¾":"S","ê¨":"S","ê":"S","â":"T","ï¼´":"T","Ṫ":"T","Ť":"T","Ṭ":"T","È":"T","Å¢":"T","á¹°":"T","á¹®":"T","Ŧ":"T","Ƭ":"T","Æ®":"T","Ⱦ":"T","ê":"T","ê¨":"TZ","â":"U","ï¼µ":"U","Ã":"U","Ã":"U","Ã":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ã":"U","Ç":"U","Ç":"U","Ç":"U","Ç":"U","Ủ":"U","Å®":"U","Ű":"U","Ç":"U","È":"U","È":"U","Ư":"U","Ừ":"U","Ứ":"U","á»®":"U","Ử":"U","á»°":"U","Ụ":"U","á¹²":"U","Ų":"U","á¹¶":"U","á¹´":"U","É":"U","â":"V","ï¼¶":"V","á¹¼":"V","á¹¾":"V","Ʋ":"V","ê":"V","É ":"V","ê ":"VY","â":"W","ï¼·":"W","áº":"W","áº":"W","Å´":"W","áº":"W","áº":"W","áº":"W","â±²":"W","â":"X","X":"X","áº":"X","áº":"X","â":"Y","ï¼¹":"Y","Ỳ":"Y","Ã":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","áº":"Y","Ÿ":"Y","á»¶":"Y","á»´":"Y","Ƴ":"Y","É":"Y","Ỿ":"Y","â":"Z","Z":"Z","Ź":"Z","áº":"Z","Å»":"Z","Ž":"Z","áº":"Z","áº":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","ê¢":"Z","â":"a","ï½":"a","áº":"a","à ":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","Ä":"a","Ä":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","Ç¡":"a","ä":"a","Ç":"a","ả":"a","Ã¥":"a","Ç»":"a","Ç":"a","È":"a","È":"a","ạ":"a","áº":"a","ặ":"a","á¸":"a","Ä ":"a","â±¥":"a","É":"a","ê³":"aa","æ":"ae","ǽ":"ae","Ç£":"ae","êµ":"ao","ê·":"au","ê¹":"av","ê»":"av","ê½":"ay","â":"b","ï½":"b","á¸":"b","Ḡ":"b","á¸":"b","Æ":"b","Æ":"b","É":"b","â":"c","ï½":"c","Ä":"c","Ä":"c","Ä":"c","Ä":"c","ç":"c","á¸":"c","Æ":"c","ȼ":"c","ê¿":"c","â":"c","â":"d","ï½":"d","á¸":"d","Ä":"d","á¸":"d","á¸":"d","á¸":"d","á¸":"d","Ä":"d","Æ":"d","É":"d","É":"d","êº":"d","dz":"dz","Ç":"dz","â":"e","ï½ ":"e","è":"e","é":"e","ê":"e","á»":"e","ế":"e","á» ":"e","á»":"e","ẽ":"e","Ä":"e","á¸":"e","á¸":"e","Ä":"e","Ä":"e","ë":"e","ẻ":"e","Ä":"e","È ":"e","È":"e","ẹ":"e","á»":"e","È©":"e","á¸":"e","Ä":"e","á¸":"e","á¸":"e","É":"e","É":"e","Ç":"e","â":"f","ï½":"f","á¸":"f","Æ":"f","ê¼":"f","â":"g","ï½":"g","ǵ":"g","Ä":"g","ḡ":"g","Ä":"g","Ä¡":"g","ǧ":"g","Ä£":"g","Ç¥":"g","É ":"g","ê¡":"g","áµ¹":"g","ê¿":"g","â":"h","ï½":"h","Ä¥":"h","ḣ":"h","ḧ":"h","È":"h","ḥ":"h","ḩ":"h","ḫ":"h","áº":"h","ħ":"h","ⱨ":"h","â±¶":"h","É¥":"h","Æ":"hv","â":"i","ï½":"i","ì":"i","Ã":"i","î":"i","Ä©":"i","Ä«":"i","Ä":"i","ï":"i","ḯ":"i","á»":"i","Ç":"i","È":"i","È":"i","á»":"i","į":"i","á¸":"i","ɨ":"i","ı":"i","â":"j","ï½":"j","ĵ":"j","ǰ":"j","É":"j","â":"k","ï½":"k","ḱ":"k","Ç©":"k","ḳ":"k","Ä·":"k","ḵ":"k","Æ":"k","ⱪ":"k","ê":"k","ê":"k","ê ":"k","ê£":"k","â":"l","ï½":"l","Å":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","Å¿":"l","Å":"l","Æ":"l","É«":"l","ⱡ":"l","ê":"l","ê":"l","ê":"l","Ç":"lj","â":"m","ï½":"m","ḿ":"m","á¹":"m","á¹":"m","ɱ":"m","ɯ":"m","â":"n","ï½":"n","ǹ":"n","Å":"n","ñ":"n","á¹ ":"n","Å":"n","á¹":"n","Å":"n","á¹":"n","á¹":"n","Æ":"n","ɲ":"n","Å":"n","ê":"n","ê¥":"n","Ç":"nj","â":"o","ï½":"o","ò":"o","ó":"o","ô":"o","á»":"o","á»":"o","á»":"o","á»":"o","õ":"o","á¹":"o","È":"o","á¹":"o","Å":"o","á¹":"o","á¹":"o","Å":"o","ȯ":"o","ȱ":"o","ö":"o","È«":"o","á»":"o","Å":"o","Ç":"o","È":"o","È":"o","Æ¡":"o","á»":"o","á»":"o","ỡ":"o","á»":"o","ợ":"o","á»":"o","á»":"o","Ç«":"o","Ç":"o","ø":"o","Ç¿":"o","É":"o","ê":"o","ê":"o","ɵ":"o","Å":"oe","Æ£":"oi","È£":"ou","ê":"oo","â":"p","ï½":"p","á¹":"p","á¹":"p","Æ¥":"p","áµ½":"p","ê":"p","ê":"p","ê":"p","â ":"q","ï½":"q","É":"q","ê":"q","ê":"q","â¡":"r","ï½":"r","Å":"r","á¹":"r","Å":"r","È":"r","È":"r","á¹":"r","á¹":"r","Å":"r","á¹":"r","É":"r","ɽ":"r","ê":"r","ê§":"r","ê":"r","â¢":"s","ï½":"s","Ã":"s","Å":"s","á¹¥":"s","Å":"s","ṡ":"s","Å¡":"s","á¹§":"s","á¹£":"s","ṩ":"s","È":"s","Å":"s","È¿":"s","ê©":"s","ê ":"s","áº":"s","â£":"t","ï½":"t","ṫ":"t","áº":"t","Å¥":"t","á¹":"t","È":"t","Å£":"t","á¹±":"t","ṯ":"t","ŧ":"t","Æ":"t","Ê":"t","ⱦ":"t","ê":"t","ê©":"tz","â¤":"u","ï½":"u","ù":"u","ú":"u","û":"u","Å©":"u","á¹¹":"u","Å«":"u","á¹»":"u","Å":"u","ü":"u","Ç":"u","Ç":"u","Ç":"u","Ç":"u","á»§":"u","ů":"u","ű":"u","Ç":"u","È":"u","È":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","á»":"u","á»±":"u","ụ":"u","á¹³":"u","ų":"u","á¹·":"u","á¹µ":"u","Ê":"u","â¥":"v","ï½":"v","á¹½":"v","ṿ":"v","Ê":"v","ê":"v","Ê":"v","ê¡":"vy","â¦":"w","ï½":"w","áº":"w","áº":"w","ŵ":"w","áº":"w","Ạ":"w","áº":"w","áº":"w","â±³":"w","â§":"x","ï½":"x","áº":"x","áº":"x","â¨":"y","ï½":"y","ỳ":"y","ý":"y","Å·":"y","ỹ":"y","ȳ":"y","áº":"y","ÿ":"y","á»·":"y","áº":"y","ỵ":"y","Æ´":"y","É":"y","ỿ":"y","â©":"z","ï½":"z","ź":"z","áº":"z","ż":"z","ž":"z","áº":"z","áº":"z","ƶ":"z","È¥":"z","É":"z","ⱬ":"z","ê£":"z","Î":"Î","Î":"Î","Î":"Î","Î":"Î","Ϊ":"Î","Î":"Î","Î":"Î¥","Ϋ":"Î¥","Î":"Ω","ά":"α","Î":"ε","ή":"η","ί":"ι","Ï":"ι","Î":"ι","Ï":"ο","Ï":"Ï ","Ï":"Ï ","ΰ":"Ï ","Ï":"Ï","Ï":"Ï","â":"'"}}),u.define("select2/data/base",["../utils"],function(n){function s(e,t){s.__super__.constructor.call(this)}return n.Extend(s,n.Observable),s.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},s.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},s.prototype.bind=function(e,t){},s.prototype.destroy=function(){},s.prototype.generateResultId=function(e,t){e=e.id+"-result-";return e+=n.generateChars(4),null!=t.id?e+="-"+t.id.toString():e+="-"+n.generateChars(4),e},s}),u.define("select2/data/select",["./base","../utils","jquery"],function(e,a,l){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return a.Extend(n,e),n.prototype.current=function(e){var t=this;e(Array.prototype.map.call(this.$element[0].querySelectorAll(":checked"),function(e){return t.item(l(e))}))},n.prototype.select=function(i){var e,o=this;if(i.selected=!0,null!=i.element&&"option"===i.element.tagName.toLowerCase())return i.element.selected=!0,void this.$element.trigger("input").trigger("change");this.$element.prop("multiple")?this.current(function(e){var t=[];(i=[i]).push.apply(i,e);for(var n=0;n<i.length;n++){var s=i[n].id;-1===t.indexOf(s)&&t.push(s)}o.$element.val(t),o.$element.trigger("input").trigger("change")}):(e=i.id,this.$element.val(e),this.$element.trigger("input").trigger("change"))},n.prototype.unselect=function(i){var o=this;if(this.$element.prop("multiple")){if(i.selected=!1,null!=i.element&&"option"===i.element.tagName.toLowerCase())return i.element.selected=!1,void this.$element.trigger("input").trigger("change");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var s=e[n].id;s!==i.id&&-1===t.indexOf(s)&&t.push(s)}o.$element.val(t),o.$element.trigger("input").trigger("change")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find("*").each(function(){a.RemoveData(this)})},n.prototype.query=function(t,e){var n=[],s=this;this.$element.children().each(function(){var e;"option"!==this.tagName.toLowerCase()&&"optgroup"!==this.tagName.toLowerCase()||(e=l(this),e=s.item(e),null!==(e=s.matches(t,e))&&n.push(e))}),e({results:n})},n.prototype.addOptions=function(e){this.$element.append(e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);e=this._normalizeItem(e);return e.element=t,a.StoreData(t,"data",e),l(t)},n.prototype.item=function(e){var t={};if(null!=(t=a.GetData(e[0],"data")))return t;var n=e[0];if("option"===n.tagName.toLowerCase())t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if("optgroup"===n.tagName.toLowerCase()){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var s=e.children("option"),i=[],o=0;o<s.length;o++){var r=l(s[o]),r=this.item(r);i.push(r)}t.children=i}return(t=this._normalizeItem(t)).element=e[0],a.StoreData(e[0],"data",t),t},n.prototype._normalizeItem=function(e){e!==Object(e)&&(e={id:e,text:e});return null!=(e=l.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),l.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},n}),u.define("select2/data/array",["./select","../utils","jquery"],function(e,t,c){function s(e,t){this._dataToConvert=t.get("data")||[],s.__super__.constructor.call(this,e,t)}return t.Extend(s,e),s.prototype.bind=function(e,t){s.__super__.bind.call(this,e,t),this.addOptions(this.convertToOptions(this._dataToConvert))},s.prototype.select=function(n){var e=this.$element.find("option").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),s.__super__.select.call(this,n)},s.prototype.convertToOptions=function(e){var t=this,n=this.$element.find("option"),s=n.map(function(){return t.item(c(this)).id}).get(),i=[];for(var o=0;o<e.length;o++){var r,a,l=this._normalizeItem(e[o]);0<=s.indexOf(l.id)?(r=n.filter(function(e){return function(){return c(this).val()==e.id}}(l)),a=this.item(r),a=c.extend(!0,{},l,a),a=this.option(a),r.replaceWith(a)):(a=this.option(l),l.children&&(l=this.convertToOptions(l.children),a.append(l)),i.push(a))}return i},s}),u.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,o){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return o.extend({},e,{q:e.term})},transport:function(e,t,n){e=o.ajax(e);return e.then(t),e.fail(n),e}};return o.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(t,n){var s=this;null!=this._request&&("function"==typeof this._request.abort&&this._request.abort(),this._request=null);var i=o.extend({type:"GET"},this.ajaxOptions);function e(){var e=i.transport(i,function(e){e=s.processResults(e,t);s.options.get("debug")&&window.console&&console.error&&(e&&e.results&&Array.isArray(e.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),n(e)},function(){"status"in e&&(0===e.status||"0"===e.status)||s.trigger("results:message",{message:"errorLoading"})});s._request=e}"function"==typeof i.url&&(i.url=i.url.call(this.$element,t)),"function"==typeof i.data&&(i.data=i.data.call(this.$element,t)),this.ajaxOptions.delay&&null!=t.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),u.define("select2/data/tags",["jquery"],function(t){function e(e,t,n){var s=n.get("tags"),i=n.get("createTag");void 0!==i&&(this.createTag=i);i=n.get("insertTag");if(void 0!==i&&(this.insertTag=i),e.call(this,t,n),Array.isArray(s))for(var o=0;o<s.length;o++){var r=s[o],r=this._normalizeItem(r),r=this.option(r);this.$element.append(r)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var s=t.results,i=0;i<s.length;i++){var o=s[i],r=null!=o.children&&!e({results:o.children},!0);if((o.text||"").toUpperCase()===(c.term||"").toUpperCase()||r)return!n&&(t.data=s,void u(t))}if(n)return!0;var a,l=d.createTag(c);null!=l&&((a=d.option(l)).attr("data-select2-tag","true"),d.addOptions([a]),d.insertTag(s,l)),t.results=s,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){if(null==t.term)return null;t=t.term.trim();return""===t?null:{id:t,text:t}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this.$element.find("option[data-select2-tag]").each(function(){this.selected||t(this).remove()})},e}),u.define("select2/data/tokenizer",["jquery"],function(c){function e(e,t,n){var s=n.get("tokenizer");void 0!==s&&(this.tokenizer=s),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},e.prototype.query=function(e,t,n){var s=this;t.term=t.term||"";var i=this.tokenizer(t,this.options,function(e){var t,n=s._normalizeItem(e);s.$element.find("option").filter(function(){return c(this).val()===n.id}).length||((t=s.option(n)).attr("data-select2-tag",!0),s._removeOldTags(),s.addOptions([t])),t=n,s.trigger("select",{data:t})});i.term!==t.term&&(this.$search.length&&(this.$search.val(i.term),this.$search.trigger("focus")),t.term=i.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,s){for(var i=n.get("tokenSeparators")||[],o=t.term,r=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};r<o.length;){var l=o[r];-1!==i.indexOf(l)?(l=o.substr(0,r),null!=(l=a(c.extend({},t,{term:l})))?(s(l),o=o.substr(r+1)||"",r=0):r++):r++}return{term:o}},e}),u.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on("select",function(){s._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var s=this;this._checkIfMaximumSelected(function(){e.call(s,t,n)})},e.prototype._checkIfMaximumSelected=function(e,t){var n=this;this.current(function(e){e=null!=e?e.length:0;0<n.maximumSelectionLength&&e>=n.maximumSelectionLength?n.trigger("results:message",{message:"maximumSelected",args:{maximum:n.maximumSelectionLength}}):t&&t()})},e}),u.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class="select2-dropdown"><span class="select2-results"></span></span>');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),u.define("select2/dropdown/search",["jquery"],function(o){function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get("translations").get("search"),e=o('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');return this.$searchContainer=e,this.$search=e.find("input"),this.$search.prop("autocomplete",this.options.get("autocomplete")),this.$search.attr("aria-label",n()),t.prepend(e),t},e.prototype.bind=function(e,t,n){var s=this,i=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){s.trigger("keypress",e),s._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){o(this).off("keyup")}),this.$search.on("keyup input",function(e){s.handleSearch(e)}),t.on("open",function(){s.$search.attr("tabindex",0),s.$search.attr("aria-controls",i),s.$search.trigger("focus"),window.setTimeout(function(){s.$search.trigger("focus")},0)}),t.on("close",function(){s.$search.attr("tabindex",-1),s.$search.removeAttr("aria-controls"),s.$search.removeAttr("aria-activedescendant"),s.$search.val(""),s.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||s.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(s.showSearch(e)?s.$searchContainer[0].classList.remove("select2-search--hide"):s.$searchContainer[0].classList.add("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?s.$search.attr("aria-activedescendant",e.data._resultId):s.$search.removeAttr("aria-activedescendant")})},e.prototype.handleSearch=function(e){var t;this._keyUpPrevented||(t=this.$search.val(),this.trigger("query",{term:t})),this._keyUpPrevented=!1},e.prototype.showSearch=function(e,t){return!0},e}),u.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,s){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,s)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return t="string"==typeof t?{id:"",text:t}:t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),s=t.length-1;0<=s;s--){var i=t[s];this.placeholder.id===i.id&&n.splice(s,1)}return n},e}),u.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,s){this.lastParams={},e.call(this,t,n,s),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on("query",function(e){s.lastParams=e,s.loading=!0}),t.on("query:append",function(e){s.lastParams=e,s.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);!this.loading&&e&&(e=this.$results.offset().top+this.$results.outerHeight(!1),this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=e+50&&this.loadMore())},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),u.define("select2/dropdown/attachBody",["jquery","../utils"],function(u,r){function e(e,t,n){this.$dropdownParent=u(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on("open",function(){s._showDropdown(),s._attachPositioningHandler(t),s._bindContainerResultHandlers(t)}),t.on("close",function(){s._hideDropdown(),s._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t[0].classList.remove("select2"),t[0].classList.add("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=u("<span></span>"),e=e.call(this);return t.append(e),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){var n;this._containerResultsHandlersBound||(n=this,t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0)},e.prototype._attachPositioningHandler=function(e,t){var n=this,s="scroll.select2."+t.id,i="resize.select2."+t.id,o="orientationchange.select2."+t.id,t=this.$container.parents().filter(r.hasScroll);t.each(function(){r.StoreData(this,"select2-scroll-position",{x:u(this).scrollLeft(),y:u(this).scrollTop()})}),t.on(s,function(e){var t=r.GetData(this,"select2-scroll-position");u(this).scrollTop(t.y)}),u(window).on(s+" "+i+" "+o,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,s="resize.select2."+t.id,t="orientationchange.select2."+t.id;this.$container.parents().filter(r.hasScroll).off(n),u(window).off(n+" "+s+" "+t)},e.prototype._positionDropdown=function(){var e=u(window),t=this.$dropdown[0].classList.contains("select2-dropdown--above"),n=this.$dropdown[0].classList.contains("select2-dropdown--below"),s=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=i.top,o.bottom=i.top+o.height;var r=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=a<i.top-r,e=l>i.bottom+r,a={left:i.left,top:o.bottom},l=this.$dropdownParent;"static"===l.css("position")&&(l=l.offsetParent());i={top:0,left:0};(u.contains(document.body,l[0])||l[0].isConnected)&&(i=l.offset()),a.top-=i.top,a.left-=i.left,t||n||(s="below"),e||!c||t?!c&&e&&t&&(s="below"):s="above",("above"==s||t&&"below"!==s)&&(a.top=o.top-i.top-r),null!=s&&(this.$dropdown[0].classList.remove("select2-dropdown--below"),this.$dropdown[0].classList.remove("select2-dropdown--above"),this.$dropdown[0].classList.add("select2-dropdown--"+s),this.$container[0].classList.remove("select2-container--below"),this.$container[0].classList.remove("select2-container--above"),this.$container[0].classList.add("select2-container--"+s)),this.$dropdownContainer.css(a)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),u.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,s){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,s)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,s=0;s<t.length;s++){var i=t[s];i.children?n+=e(i.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),u.define("select2/dropdown/selectOnClose",["../utils"],function(s){function e(){}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on("close",function(e){s._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}n=this.getHighlightedResults();n.length<1||(null!=(n=s.GetData(n[0],"data")).element&&n.element.selected||null==n.element&&n.selected||this.trigger("select",{data:n}))},e}),u.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on("select",function(e){s._selectTriggered(e)}),t.on("unselect",function(e){s._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&(n.ctrlKey||n.metaKey)||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),u.define("select2/dropdown/dropdownCss",["../utils"],function(n){function e(){}return e.prototype.render=function(e){var t=e.call(this),e=this.options.get("dropdownCssClass")||"";return-1!==e.indexOf(":all:")&&(e=e.replace(":all:",""),n.copyNonInternalCssClasses(t[0],this.$element[0])),t.addClass(e),t},e}),u.define("select2/dropdown/tagsSearchHighlight",["../utils"],function(s){function e(){}return e.prototype.highlightFirstItem=function(e){var t=this.$results.find(".select2-results__option--selectable:not(.select2-results__option--selected)");if(0<t.length){var n=t.first(),t=s.GetData(n[0],"data").element;if(t&&t.getAttribute&&"true"===t.getAttribute("data-select2-tag"))return void n.trigger("mouseenter")}e.call(this)},e}),u.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,e="Please delete "+t+" character";return 1!=t&&(e+="s"),e},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more resultsâ¦"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searchingâ¦"},removeAllItems:function(){return"Remove all items"},removeItem:function(){return"Remove item"},search:function(){return"Search"}}}),u.define("select2/defaults",["jquery","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/selectionCss","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./dropdown/dropdownCss","./dropdown/tagsSearchHighlight","./i18n/en"],function(l,o,r,a,c,u,d,p,h,f,g,t,m,v,y,_,b,w,$,x,A,D,S,O,L,E,C,T,q,I,e){function n(){this.reset()}return n.prototype.apply=function(e){var t;null==(e=l.extend(!0,{},this.defaults,e)).dataAdapter&&(null!=e.ajax?e.dataAdapter=y:null!=e.data?e.dataAdapter=v:e.dataAdapter=m,0<e.minimumInputLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,w)),0<e.maximumInputLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,$)),0<e.maximumSelectionLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,x)),e.tags&&(e.dataAdapter=f.Decorate(e.dataAdapter,_)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=f.Decorate(e.dataAdapter,b))),null==e.resultsAdapter&&(e.resultsAdapter=o,null!=e.ajax&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,O)),null!=e.placeholder&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,S)),e.selectOnClose&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,C)),e.tags&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,I))),null==e.dropdownAdapter&&(e.multiple?e.dropdownAdapter=A:(t=f.Decorate(A,D),e.dropdownAdapter=t),0!==e.minimumResultsForSearch&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,E)),e.closeOnSelect&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,T)),null!=e.dropdownCssClass&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,q)),e.dropdownAdapter=f.Decorate(e.dropdownAdapter,L)),null==e.selectionAdapter&&(e.multiple?e.selectionAdapter=a:e.selectionAdapter=r,null!=e.placeholder&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,c)),e.allowClear&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,u)),e.multiple&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,d)),null!=e.selectionCssClass&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,p)),e.selectionAdapter=f.Decorate(e.selectionAdapter,h)),e.language=this._resolveLanguage(e.language),e.language.push("en");for(var n=[],s=0;s<e.language.length;s++){var i=e.language[s];-1===n.indexOf(i)&&n.push(i)}return e.language=n,e.translations=this._processTranslations(e.language,e.debug),e},n.prototype.reset=function(){function a(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return t[e]||e})}this.defaults={amdLanguageBase:"./i18n/",autocomplete:"off",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:f.escapeMarkup,language:{},matcher:function e(t,n){if(null==t.term||""===t.term.trim())return n;if(n.children&&0<n.children.length){for(var s=l.extend(!0,{},n),i=n.children.length-1;0<=i;i--)null==e(t,n.children[i])&&s.children.splice(i,1);return 0<s.children.length?s:e(t,s)}var o=a(n.text).toUpperCase(),r=a(t.term).toUpperCase();return-1<o.indexOf(r)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,scrollAfterSelect:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},n.prototype.applyFromElement=function(e,t){var n=e.language,s=this.defaults.language,i=t.prop("lang"),t=t.closest("[lang]").prop("lang"),t=Array.prototype.concat.call(this._resolveLanguage(i),this._resolveLanguage(n),this._resolveLanguage(s),this._resolveLanguage(t));return e.language=t,e},n.prototype._resolveLanguage=function(e){if(!e)return[];if(l.isEmptyObject(e))return[];if(l.isPlainObject(e))return[e];for(var t,n=Array.isArray(e)?e:[e],s=[],i=0;i<n.length;i++)s.push(n[i]),"string"==typeof n[i]&&0<n[i].indexOf("-")&&(t=n[i].split("-")[0],s.push(t));return s},n.prototype._processTranslations=function(e,t){for(var n=new g,s=0;s<e.length;s++){var i=new g,o=e[s];if("string"==typeof o)try{i=g.loadPath(o)}catch(e){try{o=this.defaults.amdLanguageBase+o,i=g.loadPath(o)}catch(e){t&&window.console&&console.warn&&console.warn('Select2: The language file for "'+o+'" could not be automatically loaded. A fallback will be used instead.')}}else i=l.isPlainObject(o)?new g(o):o;n.extend(i)}return n},n.prototype.set=function(e,t){var n={};n[l.camelCase(e)]=t;n=f._convertData(n);l.extend(!0,this.defaults,n)},new n}),u.define("select2/options",["jquery","./defaults","./utils"],function(c,n,u){function e(e,t){this.options=e,null!=t&&this.fromElement(t),null!=t&&(this.options=n.applyFromElement(this.options,t)),this.options=n.apply(this.options)}return e.prototype.fromElement=function(e){var t=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.autocomplete&&e.prop("autocomplete")&&(this.options.autocomplete=e.prop("autocomplete")),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),u.GetData(e[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),u.StoreData(e[0],"data",u.GetData(e[0],"select2Tags")),u.StoreData(e[0],"tags",!0)),u.GetData(e[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",u.GetData(e[0],"ajaxUrl")),u.StoreData(e[0],"ajax-Url",u.GetData(e[0],"ajaxUrl")));var n={};function s(e,t){return t.toUpperCase()}for(var i=0;i<e[0].attributes.length;i++){var o=e[0].attributes[i].name,r="data-";o.substr(0,r.length)==r&&(o=o.substring(r.length),r=u.GetData(e[0],o),n[o.replace(/-([a-z])/g,s)]=r)}c.fn.jquery&&"1."==c.fn.jquery.substr(0,2)&&e[0].dataset&&(n=c.extend(!0,{},e[0].dataset,n));var a,l=c.extend(!0,{},u.GetData(e[0]),n);for(a in l=u._convertData(l))-1<t.indexOf(a)||(c.isPlainObject(this.options[a])?c.extend(this.options[a],l[a]):this.options[a]=l[a]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),u.define("select2/core",["jquery","./options","./utils","./keys"],function(t,i,o,s){var r=function(e,t){null!=o.GetData(e[0],"select2")&&o.GetData(e[0],"select2").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new i(t,e),r.__super__.constructor.call(this);var n=e.attr("tabindex")||0;o.StoreData(e[0],"old-tabindex",n),e.attr("tabindex","-1");t=this.options.get("dataAdapter");this.dataAdapter=new t(e,this.options);n=this.render();this._placeContainer(n);t=this.options.get("selectionAdapter");this.selection=new t(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,n);t=this.options.get("dropdownAdapter");this.dropdown=new t(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,n);n=this.options.get("resultsAdapter");this.results=new n(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var s=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){s.trigger("selection:update",{data:e})}),e[0].classList.add("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),o.StoreData(e[0],"select2",this),e.data("select2",this)};return o.Extend(r,o.Observable),r.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+o.generateChars(2):o.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},r.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},r.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var s=this._resolveWidth(e,"style");return null!=s?s:this._resolveWidth(e,"element")}if("element"==t){s=e.outerWidth(!1);return s<=0?"auto":s+"px"}if("style"!=t)return"computedstyle"!=t?t:window.getComputedStyle(e[0]).width;e=e.attr("style");if("string"!=typeof e)return null;for(var i=e.split(";"),o=0,r=i.length;o<r;o+=1){var a=i[o].replace(/\s/g,"").match(n);if(null!==a&&1<=a.length)return a[1]}return null},r.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},r.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=o.bind(this._syncAttributes,this),this._syncS=o.bind(this._syncSubtree,this),this._observer=new window.MutationObserver(function(e){t._syncA(),t._syncS(e)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})},r.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on("*",function(e,t){n.trigger(e,t)})},r.prototype._registerSelectionEvents=function(){var n=this,s=["toggle","focus"];this.selection.on("toggle",function(){n.toggleDropdown()}),this.selection.on("focus",function(e){n.focus(e)}),this.selection.on("*",function(e,t){-1===s.indexOf(e)&&n.trigger(e,t)})},r.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on("*",function(e,t){n.trigger(e,t)})},r.prototype._registerResultsEvents=function(){var n=this;this.results.on("*",function(e,t){n.trigger(e,t)})},r.prototype._registerEvents=function(){var n=this;this.on("open",function(){n.$container[0].classList.add("select2-container--open")}),this.on("close",function(){n.$container[0].classList.remove("select2-container--open")}),this.on("enable",function(){n.$container[0].classList.remove("select2-container--disabled")}),this.on("disable",function(){n.$container[0].classList.add("select2-container--disabled")}),this.on("blur",function(){n.$container[0].classList.remove("select2-container--focus")}),this.on("query",function(t){n.isOpen()||n.trigger("open",{}),this.dataAdapter.query(t,function(e){n.trigger("results:all",{data:e,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(e){n.trigger("results:append",{data:e,query:t})})}),this.on("keypress",function(e){var t=e.which;n.isOpen()?t===s.ESC||t===s.UP&&e.altKey?(n.close(e),e.preventDefault()):t===s.ENTER||t===s.TAB?(n.trigger("results:select",{}),e.preventDefault()):t===s.SPACE&&e.ctrlKey?(n.trigger("results:toggle",{}),e.preventDefault()):t===s.UP?(n.trigger("results:previous",{}),e.preventDefault()):t===s.DOWN&&(n.trigger("results:next",{}),e.preventDefault()):(t===s.ENTER||t===s.SPACE||t===s.DOWN&&e.altKey)&&(n.open(),e.preventDefault())})},r.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.isDisabled()?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},r.prototype._isChangeMutation=function(e){var t=this;if(e.addedNodes&&0<e.addedNodes.length){for(var n=0;n<e.addedNodes.length;n++)if(e.addedNodes[n].selected)return!0}else{if(e.removedNodes&&0<e.removedNodes.length)return!0;if(Array.isArray(e))return e.some(function(e){return t._isChangeMutation(e)})}return!1},r.prototype._syncSubtree=function(e){var e=this._isChangeMutation(e),t=this;e&&this.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})},r.prototype.trigger=function(e,t){var n=r.__super__.trigger,s={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===t&&(t={}),e in s){var i=s[e],s={prevented:!1,name:e,args:t};if(n.call(this,i,s),s.prevented)return void(t.prevented=!0)}n.call(this,e,t)},r.prototype.toggleDropdown=function(){this.isDisabled()||(this.isOpen()?this.close():this.open())},r.prototype.open=function(){this.isOpen()||this.isDisabled()||this.trigger("query",{})},r.prototype.close=function(e){this.isOpen()&&this.trigger("close",{originalEvent:e})},r.prototype.isEnabled=function(){return!this.isDisabled()},r.prototype.isDisabled=function(){return this.options.get("disabled")},r.prototype.isOpen=function(){return this.$container[0].classList.contains("select2-container--open")},r.prototype.hasFocus=function(){return this.$container[0].classList.contains("select2-container--focus")},r.prototype.focus=function(e){this.hasFocus()||(this.$container[0].classList.add("select2-container--focus"),this.trigger("focus",{}))},r.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.');e=!(e=null==e||0===e.length?[!0]:e)[0];this.$element.prop("disabled",e)},r.prototype.data=function(){this.options.get("debug")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},r.prototype.val=function(e){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();e=e[0];Array.isArray(e)&&(e=e.map(function(e){return e.toString()})),this.$element.val(e).trigger("input").trigger("change")},r.prototype.destroy=function(){o.RemoveData(this.$container[0]),this.$container.remove(),this._observer.disconnect(),this._observer=null,this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",o.GetData(this.$element[0],"old-tabindex")),this.$element[0].classList.remove("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),o.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},r.prototype.render=function(){var e=t('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container[0].classList.add("select2-container--"+this.options.get("theme")),o.StoreData(e[0],"element",this.$element),e},r}),u.define("select2/dropdown/attachContainer",[],function(){function e(e,t,n){e.call(this,t,n)}return e.prototype.position=function(e,t,n){n.find(".dropdown-wrapper").append(t),t[0].classList.add("select2-dropdown--below"),n[0].classList.add("select2-container--below")},e}),u.define("select2/dropdown/stopPropagation",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$dropdown.on(["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"].join(" "),function(e){e.stopPropagation()})},e}),u.define("select2/selection/stopPropagation",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$selection.on(["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"].join(" "),function(e){e.stopPropagation()})},e}),a=function(u){var d,p,e=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],t="onwheel"in document||9<=document.documentMode?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],h=Array.prototype.slice;if(u.event.fixHooks)for(var n=e.length;n;)u.event.fixHooks[e[--n]]=u.event.mouseHooks;var f=u.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],s,!1);else this.onmousewheel=s;u.data(this,"mousewheel-line-height",f.getLineHeight(this)),u.data(this,"mousewheel-page-height",f.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],s,!1);else this.onmousewheel=null;u.removeData(this,"mousewheel-line-height"),u.removeData(this,"mousewheel-page-height")},getLineHeight:function(e){var t=u(e),e=t["offsetParent"in u.fn?"offsetParent":"parent"]();return e.length||(e=u("body")),parseInt(e.css("fontSize"),10)||parseInt(t.css("fontSize"),10)||16},getPageHeight:function(e){return u(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function s(e){var t,n=e||window.event,s=h.call(arguments,1),i=0,o=0,r=0,a=0,l=0,c=0;if(e=u.event.fix(n),e.type="mousewheel","detail"in n&&(r=-1*n.detail),"wheelDelta"in n&&(r=n.wheelDelta),"wheelDeltaY"in n&&(r=n.wheelDeltaY),"wheelDeltaX"in n&&(o=-1*n.wheelDeltaX),"axis"in n&&n.axis===n.HORIZONTAL_AXIS&&(o=-1*r,r=0),i=0===r?o:r,"deltaY"in n&&(i=r=-1*n.deltaY),"deltaX"in n&&(o=n.deltaX,0===r&&(i=-1*o)),0!==r||0!==o)return 1===n.deltaMode?(i*=t=u.data(this,"mousewheel-line-height"),r*=t,o*=t):2===n.deltaMode&&(i*=t=u.data(this,"mousewheel-page-height"),r*=t,o*=t),a=Math.max(Math.abs(r),Math.abs(o)),(!p||a<p)&&m(n,p=a)&&(p/=40),m(n,a)&&(i/=40,o/=40,r/=40),i=Math[1<=i?"floor":"ceil"](i/p),o=Math[1<=o?"floor":"ceil"](o/p),r=Math[1<=r?"floor":"ceil"](r/p),f.settings.normalizeOffset&&this.getBoundingClientRect&&(a=this.getBoundingClientRect(),l=e.clientX-a.left,c=e.clientY-a.top),e.deltaX=o,e.deltaY=r,e.deltaFactor=p,e.offsetX=l,e.offsetY=c,e.deltaMode=0,s.unshift(e,i,o,r),d&&clearTimeout(d),d=setTimeout(g,200),(u.event.dispatch||u.event.handle).apply(this,s)}function g(){p=null}function m(e,t){return f.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}u.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})},"function"==typeof u.define&&u.define.amd?u.define("jquery-mousewheel",["jquery"],a): true?module.exports=a:0,u.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(i,e,o,t,r){var a;return null==i.fn.select2&&(a=["open","close","destroy"],i.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new o(i(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,s=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=r.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,s)}),-1<a.indexOf(t)?this:n}),null==i.fn.select2.defaults&&(i.fn.select2.defaults=t),o}),{define:u.define,require:u.require});function b(e,t){return s.call(e,t)}function l(e,t){var n,s,i,o,r,a,l,c,u,d,p=t&&t.split("/"),h=v.map,f=h&&h["*"]||{};if(e){for(t=(e=e.split("/")).length-1,v.nodeIdCompat&&_.test(e[t])&&(e[t]=e[t].replace(_,"")),"."===e[0].charAt(0)&&p&&(e=p.slice(0,p.length-1).concat(e)),c=0;c<e.length;c++)"."===(d=e[c])?(e.splice(c,1),--c):".."===d&&(0===c||1===c&&".."===e[2]||".."===e[c-1]||0<c&&(e.splice(c-1,2),c-=2));e=e.join("/")}if((p||f)&&h){for(c=(n=e.split("/")).length;0<c;--c){if(s=n.slice(0,c).join("/"),p)for(u=p.length;0<u;--u)if(i=h[p.slice(0,u).join("/")],i=i&&i[s]){o=i,r=c;break}if(o)break;!a&&f&&f[s]&&(a=f[s],l=c)}!o&&a&&(o=a,r=l),o&&(n.splice(0,r,o),e=n.join("/"))}return e}function w(t,n){return function(){var e=i.call(arguments,0);return"string"!=typeof e[0]&&1===e.length&&e.push(null),r.apply(p,e.concat([t,n]))}}function x(e){var t;if(b(m,e)&&(t=m[e],delete m[e],y[e]=!0,o.apply(p,t)),!b(g,e)&&!b(y,e))throw new Error("No "+e);return g[e]}function c(e){var t,n=e?e.indexOf("!"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function A(e){return e?c(e):[]}var u=a.require("jquery.select2");return t.fn.select2.amd=a,u}); 82969 82970/***/ }), 82971
vendor: 20,056 bytes, lines 82972-83628
82972/***/ "./node_modules/smooth-scroll/dist/smooth-scroll.js": 82973/*!**********************************************************!*\ 82974 !*** ./node_modules/smooth-scroll/dist/smooth-scroll.js ***! 82975 \**********************************************************/ 82976/***/ (function(module, exports, __webpack_require__) { 82977 82978var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 82979 * smooth-scroll v16.1.3 82980 * Animate scrolling to anchor links 82981 * (c) 2020 Chris Ferdinandi 82982 * MIT License 82983 * http://github.com/cferdinandi/smooth-scroll 82984 */ 82985 82986(function (root, factory) { 82987 if (true) { 82988 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { 82989 return factory(root); 82990 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 82991 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 82992 } else {} 82993})(typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof window !== 'undefined' ? window : this, (function (window) { 82994 82995 'use strict'; 82996 82997 // 82998 // Default settings 82999 // 83000 83001 var defaults = { 83002 83003 // Selectors 83004 ignore: '[data-scroll-ignore]', 83005 header: null, 83006 topOnEmptyHash: true, 83007 83008 // Speed & Duration 83009 speed: 500, 83010 speedAsDuration: false, 83011 durationMax: null, 83012 durationMin: null, 83013 clip: true, 83014 offset: 0, 83015 83016 // Easing 83017 easing: 'easeInOutCubic', 83018 customEasing: null, 83019 83020 // History 83021 updateURL: true, 83022 popstate: true, 83023 83024 // Custom Events 83025 emitEvents: true 83026 83027 }; 83028 83029 83030 // 83031 // Utility Methods 83032 // 83033 83034 /** 83035 * Check if browser supports required methods 83036 * @return {Boolean} Returns true if all required methods are supported 83037 */ 83038 var supports = function () { 83039 return ( 83040 'querySelector' in document && 83041 'addEventListener' in window && 83042 'requestAnimationFrame' in window && 83043 'closest' in window.Element.prototype 83044 ); 83045 }; 83046 83047 /** 83048 * Merge two or more objects together. 83049 * @param {Object} objects The objects to merge together 83050 * @returns {Object} Merged values of defaults and options 83051 */ 83052 var extend = function () { 83053 var merged = {}; 83054 Array.prototype.forEach.call(arguments, (function (obj) { 83055 for (var key in obj) { 83056 if (!obj.hasOwnProperty(key)) return; 83057 merged[key] = obj[key]; 83058 } 83059 })); 83060 return merged; 83061 }; 83062 83063 /** 83064 * Check to see if user prefers reduced motion 83065 * @param {Object} settings Script settings 83066 */ 83067 var reduceMotion = function () { 83068 if ('matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches) { 83069 return true; 83070 } 83071 return false; 83072 }; 83073 83074 /** 83075 * Get the height of an element. 83076 * @param {Node} elem The element to get the height of 83077 * @return {Number} The element's height in pixels 83078 */ 83079 var getHeight = function (elem) { 83080 return parseInt(window.getComputedStyle(elem).height, 10); 83081 }; 83082 83083 /** 83084 * Escape special characters for use with querySelector 83085 * @author Mathias Bynens 83086 * @link https://github.com/mathiasbynens/CSS.escape 83087 * @param {String} id The anchor ID to escape 83088 */ 83089 var escapeCharacters = function (id) { 83090 83091 // Remove leading hash 83092 if (id.charAt(0) === '#') { 83093 id = id.substr(1); 83094 } 83095 83096 var string = String(id); 83097 var length = string.length; 83098 var index = -1; 83099 var codeUnit; 83100 var result = ''; 83101 var firstCodeUnit = string.charCodeAt(0); 83102 while (++index < length) { 83103 codeUnit = string.charCodeAt(index); 83104 // Note: thereâs no need to special-case astral symbols, surrogate 83105 // pairs, or lone surrogates. 83106 83107 // If the character is NULL (U+0000), then throw an 83108 // `InvalidCharacterError` exception and terminate these steps. 83109 if (codeUnit === 0x0000) { 83110 throw new InvalidCharacterError( 83111 'Invalid character: the input contains U+0000.' 83112 ); 83113 } 83114 83115 if ( 83116 // If the character is in the range [\1-\1F] (U+0001 to U+001F) or is 83117 // U+007F, [â¦] 83118 (codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F || 83119 // If the character is the first character and is in the range [0-9] 83120 // (U+0030 to U+0039), [â¦] 83121 (index === 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) || 83122 // If the character is the second character and is in the range [0-9] 83123 // (U+0030 to U+0039) and the first character is a `-` (U+002D), [â¦] 83124 ( 83125 index === 1 && 83126 codeUnit >= 0x0030 && codeUnit <= 0x0039 && 83127 firstCodeUnit === 0x002D 83128 ) 83129 ) { 83130 // http://dev.w3.org/csswg/cssom/#escape-a-character-as-code-point 83131 result += '\\' + codeUnit.toString(16) + ' '; 83132 continue; 83133 } 83134 83135 // If the character is not handled by one of the above rules and is 83136 // greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or 83137 // is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to 83138 // U+005A), or [a-z] (U+0061 to U+007A), [â¦] 83139 if ( 83140 codeUnit >= 0x0080 || 83141 codeUnit === 0x002D || 83142 codeUnit === 0x005F || 83143 codeUnit >= 0x0030 && codeUnit <= 0x0039 || 83144 codeUnit >= 0x0041 && codeUnit <= 0x005A || 83145 codeUnit >= 0x0061 && codeUnit <= 0x007A 83146 ) { 83147 // the character itself 83148 result += string.charAt(index); 83149 continue; 83150 } 83151 83152 // Otherwise, the escaped character. 83153 // http://dev.w3.org/csswg/cssom/#escape-a-character 83154 result += '\\' + string.charAt(index); 83155 83156 } 83157 83158 // Return sanitized hash 83159 return '#' + result; 83160 83161 }; 83162 83163 /** 83164 * Calculate the easing pattern 83165 * @link https://gist.github.com/gre/1650294 83166 * @param {String} type Easing pattern 83167 * @param {Number} time Time animation should take to complete 83168 * @returns {Number} 83169 */ 83170 var easingPattern = function (settings, time) { 83171 var pattern; 83172 83173 // Default Easing Patterns 83174 if (settings.easing === 'easeInQuad') pattern = time * time; // accelerating from zero velocity 83175 if (settings.easing === 'easeOutQuad') pattern = time * (2 - time); // decelerating to zero velocity 83176 if (settings.easing === 'easeInOutQuad') pattern = time < 0.5 ? 2 * time * time : -1 + (4 - 2 * time) * time; // acceleration until halfway, then deceleration 83177 if (settings.easing === 'easeInCubic') pattern = time * time * time; // accelerating from zero velocity 83178 if (settings.easing === 'easeOutCubic') pattern = (--time) * time * time + 1; // decelerating to zero velocity 83179 if (settings.easing === 'easeInOutCubic') pattern = time < 0.5 ? 4 * time * time * time : (time - 1) * (2 * time - 2) * (2 * time - 2) + 1; // acceleration until halfway, then deceleration 83180 if (settings.easing === 'easeInQuart') pattern = time * time * time * time; // accelerating from zero velocity 83181 if (settings.easing === 'easeOutQuart') pattern = 1 - (--time) * time * time * time; // decelerating to zero velocity 83182 if (settings.easing === 'easeInOutQuart') pattern = time < 0.5 ? 8 * time * time * time * time : 1 - 8 * (--time) * time * time * time; // acceleration until halfway, then deceleration 83183 if (settings.easing === 'easeInQuint') pattern = time * time * time * time * time; // accelerating from zero velocity 83184 if (settings.easing === 'easeOutQuint') pattern = 1 + (--time) * time * time * time * time; // decelerating to zero velocity 83185 if (settings.easing === 'easeInOutQuint') pattern = time < 0.5 ? 16 * time * time * time * time * time : 1 + 16 * (--time) * time * time * time * time; // acceleration until halfway, then deceleration 83186 83187 // Custom Easing Patterns 83188 if (!!settings.customEasing) pattern = settings.customEasing(time); 83189 83190 return pattern || time; // no easing, no acceleration 83191 }; 83192 83193 /** 83194 * Determine the document's height 83195 * @returns {Number} 83196 */ 83197 var getDocumentHeight = function () { 83198 return Math.max( 83199 document.body.scrollHeight, document.documentElement.scrollHeight, 83200 document.body.offsetHeight, document.documentElement.offsetHeight, 83201 document.body.clientHeight, document.documentElement.clientHeight 83202 ); 83203 }; 83204 83205 /** 83206 * Calculate how far to scroll 83207 * Clip support added by robjtede - https://github.com/cferdinandi/smooth-scroll/issues/405 83208 * @param {Element} anchor The anchor element to scroll to 83209 * @param {Number} headerHeight Height of a fixed header, if any 83210 * @param {Number} offset Number of pixels by which to offset scroll 83211 * @param {Boolean} clip If true, adjust scroll distance to prevent abrupt stops near the bottom of the page 83212 * @returns {Number} 83213 */ 83214 var getEndLocation = function (anchor, headerHeight, offset, clip) { 83215 var location = 0; 83216 if (anchor.offsetParent) { 83217 do { 83218 location += anchor.offsetTop; 83219 anchor = anchor.offsetParent; 83220 } while (anchor); 83221 } 83222 location = Math.max(location - headerHeight - offset, 0); 83223 if (clip) { 83224 location = Math.min(location, getDocumentHeight() - window.innerHeight); 83225 } 83226 return location; 83227 }; 83228 83229 /** 83230 * Get the height of the fixed header 83231 * @param {Node} header The header 83232 * @return {Number} The height of the header 83233 */ 83234 var getHeaderHeight = function (header) { 83235 return !header ? 0 : (getHeight(header) + header.offsetTop); 83236 }; 83237 83238 /** 83239 * Calculate the speed to use for the animation 83240 * @param {Number} distance The distance to travel 83241 * @param {Object} settings The plugin settings 83242 * @return {Number} How fast to animate 83243 */ 83244 var getSpeed = function (distance, settings) { 83245 var speed = settings.speedAsDuration ? settings.speed : Math.abs(distance / 1000 * settings.speed); 83246 if (settings.durationMax && speed > settings.durationMax) return settings.durationMax; 83247 if (settings.durationMin && speed < settings.durationMin) return settings.durationMin; 83248 return parseInt(speed, 10); 83249 }; 83250 83251 var setHistory = function (options) { 83252 83253 // Make sure this should run 83254 if (!history.replaceState || !options.updateURL || history.state) return; 83255 83256 // Get the hash to use 83257 var hash = window.location.hash; 83258 hash = hash ? hash : ''; 83259 83260 // Set a default history 83261 history.replaceState( 83262 { 83263 smoothScroll: JSON.stringify(options), 83264 anchor: hash ? hash : window.pageYOffset 83265 }, 83266 document.title, 83267 hash ? hash : window.location.href 83268 ); 83269 83270 }; 83271 83272 /** 83273 * Update the URL 83274 * @param {Node} anchor The anchor that was scrolled to 83275 * @param {Boolean} isNum If true, anchor is a number 83276 * @param {Object} options Settings for Smooth Scroll 83277 */ 83278 var updateURL = function (anchor, isNum, options) { 83279 83280 // Bail if the anchor is a number 83281 if (isNum) return; 83282 83283 // Verify that pushState is supported and the updateURL option is enabled 83284 if (!history.pushState || !options.updateURL) return; 83285 83286 // Update URL 83287 history.pushState( 83288 { 83289 smoothScroll: JSON.stringify(options), 83290 anchor: anchor.id 83291 }, 83292 document.title, 83293 anchor === document.documentElement ? '#top' : '#' + anchor.id 83294 ); 83295 83296 }; 83297 83298 /** 83299 * Bring the anchored element into focus 83300 * @param {Node} anchor The anchor element 83301 * @param {Number} endLocation The end location to scroll to 83302 * @param {Boolean} isNum If true, scroll is to a position rather than an element 83303 */ 83304 var adjustFocus = function (anchor, endLocation, isNum) { 83305 83306 // Is scrolling to top of page, blur 83307 if (anchor === 0) { 83308 document.body.focus(); 83309 } 83310 83311 // Don't run if scrolling to a number on the page 83312 if (isNum) return; 83313 83314 // Otherwise, bring anchor element into focus 83315 anchor.focus(); 83316 if (document.activeElement !== anchor) { 83317 anchor.setAttribute('tabindex', '-1'); 83318 anchor.focus(); 83319 anchor.style.outline = 'none'; 83320 } 83321 window.scrollTo(0 , endLocation); 83322 83323 }; 83324 83325 /** 83326 * Emit a custom event 83327 * @param {String} type The event type 83328 * @param {Object} options The settings object 83329 * @param {Node} anchor The anchor element 83330 * @param {Node} toggle The toggle element 83331 */ 83332 var emitEvent = function (type, options, anchor, toggle) { 83333 if (!options.emitEvents || typeof window.CustomEvent !== 'function') return; 83334 var event = new CustomEvent(type, { 83335 bubbles: true, 83336 detail: { 83337 anchor: anchor, 83338 toggle: toggle 83339 } 83340 }); 83341 document.dispatchEvent(event); 83342 }; 83343 83344 83345 // 83346 // SmoothScroll Constructor 83347 // 83348 83349 var SmoothScroll = function (selector, options) { 83350 83351 // 83352 // Variables 83353 // 83354 83355 var smoothScroll = {}; // Object for public APIs 83356 var settings, anchor, toggle, fixedHeader, eventTimeout, animationInterval; 83357 83358 83359 // 83360 // Methods 83361 // 83362 83363 /** 83364 * Cancel a scroll-in-progress 83365 */ 83366 smoothScroll.cancelScroll = function (noEvent) { 83367 cancelAnimationFrame(animationInterval); 83368 animationInterval = null; 83369 if (noEvent) return; 83370 emitEvent('scrollCancel', settings); 83371 }; 83372 83373 /** 83374 * Start/stop the scrolling animation 83375 * @param {Node|Number} anchor The element or position to scroll to 83376 * @param {Element} toggle The element that toggled the scroll event 83377 * @param {Object} options 83378 */ 83379 smoothScroll.animateScroll = function (anchor, toggle, options) { 83380 83381 // Cancel any in progress scrolls 83382 smoothScroll.cancelScroll(); 83383 83384 // Local settings 83385 var _settings = extend(settings || defaults, options || {}); // Merge user options with defaults 83386 83387 // Selectors and variables 83388 var isNum = Object.prototype.toString.call(anchor) === '[object Number]' ? true : false; 83389 var anchorElem = isNum || !anchor.tagName ? null : anchor; 83390 if (!isNum && !anchorElem) return; 83391 var startLocation = window.pageYOffset; // Current location on the page 83392 if (_settings.header && !fixedHeader) { 83393 // Get the fixed header if not already set 83394 fixedHeader = document.querySelector(_settings.header); 83395 } 83396 var headerHeight = getHeaderHeight(fixedHeader); 83397 var endLocation = isNum ? anchor : getEndLocation(anchorElem, headerHeight, parseInt((typeof _settings.offset === 'function' ? _settings.offset(anchor, toggle) : _settings.offset), 10), _settings.clip); // Location to scroll to 83398 var distance = endLocation - startLocation; // distance to travel 83399 var documentHeight = getDocumentHeight(); 83400 var timeLapsed = 0; 83401 var speed = getSpeed(distance, _settings); 83402 var start, percentage, position; 83403 83404 /** 83405 * Stop the scroll animation when it reaches its target (or the bottom/top of page) 83406 * @param {Number} position Current position on the page 83407 * @param {Number} endLocation Scroll to location 83408 * @param {Number} animationInterval How much to scroll on this loop 83409 */ 83410 var stopAnimateScroll = function (position, endLocation) { 83411 83412 // Get the current location 83413 var currentLocation = window.pageYOffset; 83414 83415 // Check if the end location has been reached yet (or we've hit the end of the document) 83416 if (position == endLocation || currentLocation == endLocation || ((startLocation < endLocation && window.innerHeight + currentLocation) >= documentHeight)) { 83417 83418 // Clear the animation timer 83419 smoothScroll.cancelScroll(true); 83420 83421 // Bring the anchored element into focus 83422 adjustFocus(anchor, endLocation, isNum); 83423 83424 // Emit a custom event 83425 emitEvent('scrollStop', _settings, anchor, toggle); 83426 83427 // Reset start 83428 start = null; 83429 animationInterval = null; 83430 83431 return true; 83432 83433 } 83434 }; 83435 83436 /** 83437 * Loop scrolling animation 83438 */ 83439 var loopAnimateScroll = function (timestamp) { 83440 if (!start) { start = timestamp; } 83441 timeLapsed += timestamp - start; 83442 percentage = speed === 0 ? 0 : (timeLapsed / speed); 83443 percentage = (percentage > 1) ? 1 : percentage; 83444 position = startLocation + (distance * easingPattern(_settings, percentage)); 83445 window.scrollTo(0, Math.floor(position)); 83446 if (!stopAnimateScroll(position, endLocation)) { 83447 animationInterval = window.requestAnimationFrame(loopAnimateScroll); 83448 start = timestamp; 83449 } 83450 }; 83451 83452 /** 83453 * Reset position to fix weird iOS bug 83454 * @link https://github.com/cferdinandi/smooth-scroll/issues/45 83455 */ 83456 if (window.pageYOffset === 0) { 83457 window.scrollTo(0, 0); 83458 } 83459 83460 // Update the URL 83461 updateURL(anchor, isNum, _settings); 83462 83463 // If the user prefers reduced motion, jump to location 83464 if (reduceMotion()) { 83465 adjustFocus(anchor, Math.floor(endLocation), false); 83466 return; 83467 } 83468 83469 // Emit a custom event 83470 emitEvent('scrollStart', _settings, anchor, toggle); 83471 83472 // Start scrolling animation 83473 smoothScroll.cancelScroll(true); 83474 window.requestAnimationFrame(loopAnimateScroll); 83475 83476 }; 83477 83478 /** 83479 * If smooth scroll element clicked, animate scroll 83480 */ 83481 var clickHandler = function (event) { 83482 83483 // Don't run if event was canceled but still bubbled up 83484 // By @mgreter - https://github.com/cferdinandi/smooth-scroll/pull/462/ 83485 if (event.defaultPrevented) return; 83486 83487 // Don't run if right-click or command/control + click or shift + click 83488 if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey) return; 83489 83490 // Check if event.target has closest() method 83491 // By @totegi - https://github.com/cferdinandi/smooth-scroll/pull/401/ 83492 if (!('closest' in event.target)) return; 83493 83494 // Check if a smooth scroll link was clicked 83495 toggle = event.target.closest(selector); 83496 if (!toggle || toggle.tagName.toLowerCase() !== 'a' || event.target.closest(settings.ignore)) return; 83497 83498 // Only run if link is an anchor and points to the current page 83499 if (toggle.hostname !== window.location.hostname || toggle.pathname !== window.location.pathname || !/#/.test(toggle.href)) return; 83500 83501 // Get an escaped version of the hash 83502 var hash; 83503 try { 83504 hash = escapeCharacters(decodeURIComponent(toggle.hash)); 83505 } catch(e) { 83506 hash = escapeCharacters(toggle.hash); 83507 } 83508 83509 // Get the anchored element 83510 var anchor; 83511 if (hash === '#') { 83512 if (!settings.topOnEmptyHash) return; 83513 anchor = document.documentElement; 83514 } else { 83515 anchor = document.querySelector(hash); 83516 } 83517 anchor = !anchor && hash === '#top' ? document.documentElement : anchor; 83518 83519 // If anchored element exists, scroll to it 83520 if (!anchor) return; 83521 event.preventDefault(); 83522 setHistory(settings); 83523 smoothScroll.animateScroll(anchor, toggle); 83524 83525 }; 83526 83527 /** 83528 * Animate scroll on popstate events 83529 */ 83530 var popstateHandler = function (event) { 83531 83532 // Stop if history.state doesn't exist (ex. if clicking on a broken anchor link). 83533 // fixes `Cannot read property 'smoothScroll' of null` error getting thrown. 83534 if (history.state === null) return; 83535 83536 // Only run if state is a popstate record for this instantiation 83537 if (!history.state.smoothScroll || history.state.smoothScroll !== JSON.stringify(settings)) return; 83538 83539 // Only run if state includes an anchor 83540 83541 // if (!history.state.anchor && history.state.anchor !== 0) return; 83542 83543 // Get the anchor 83544 var anchor = history.state.anchor; 83545 if (typeof anchor === 'string' && anchor) { 83546 anchor = document.querySelector(escapeCharacters(history.state.anchor)); 83547 if (!anchor) return; 83548 } 83549 83550 // Animate scroll to anchor link 83551 smoothScroll.animateScroll(anchor, null, {updateURL: false}); 83552 83553 }; 83554 83555 /** 83556 * Destroy the current initialization. 83557 */ 83558 smoothScroll.destroy = function () { 83559 83560 // If plugin isn't already initialized, stop 83561 if (!settings) return; 83562 83563 // Remove event listeners 83564 document.removeEventListener('click', clickHandler, false); 83565 window.removeEventListener('popstate', popstateHandler, false); 83566 83567 // Cancel any scrolls-in-progress 83568 smoothScroll.cancelScroll(); 83569 83570 // Reset variables 83571 settings = null; 83572 anchor = null; 83573 toggle = null; 83574 fixedHeader = null; 83575 eventTimeout = null; 83576 animationInterval = null; 83577 83578 }; 83579 83580 /** 83581 * Initialize Smooth Scroll 83582 * @param {Object} options User settings 83583 */ 83584 var init = function () { 83585 83586 // feature test 83587 if (!supports()) throw 'Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.'; 83588 83589 // Destroy any existing initializations 83590 smoothScroll.destroy(); 83591 83592 // Selectors and variables 83593 settings = extend(defaults, options || {}); // Merge user options with defaults 83594 fixedHeader = settings.header ? document.querySelector(settings.header) : null; // Get the fixed header 83595 83596 // When a toggle is clicked, run the click handler 83597 document.addEventListener('click', clickHandler, false); 83598 83599 // If updateURL and popState are enabled, listen for pop events 83600 if (settings.updateURL && settings.popstate) { 83601 window.addEventListener('popstate', popstateHandler, false); 83602 } 83603 83604 }; 83605 83606 83607 // 83608 // Initialize plugin 83609 // 83610 83611 init(); 83612 83613 83614 // 83615 // Public APIs 83616 // 83617 83618 return smoothScroll; 83619 83620 }; 83621 83622 return SmoothScroll; 83623 83624})); 83625 83626 83627/***/ }), 83628
vendor: 52,365 bytes, lines 83629-83643
83629/***/ "./node_modules/sweetalert2/dist/sweetalert2.min.js": 83630/*!**********************************************************!*\ 83631 !*** ./node_modules/sweetalert2/dist/sweetalert2.min.js ***! 83632 \**********************************************************/ 83633/***/ (function(module) { 83634 83635/*! 83636* sweetalert2 v11.10.8 83637* Released under the MIT License. 83638*/ 83639!function(t,e){ true?module.exports=e():0}(this,(function(){"use strict";function t(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}function e(t,e,n){return e=s(e),function(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,o()?Reflect.construct(e,n||[],s(t).constructor):e.apply(t,n))}function n(e,n){return e.get(t(e,n))}function o(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(o=function(){return!!t})()}function i(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,e||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,i(o.key),o)}}function u(t,e,n){return e&&c(t.prototype,e),n&&c(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function s(t){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},s(t)}function l(t,e){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},l(t,e)}function d(){return d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,n){var o=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=s(t)););return t}(t,e);if(o){var i=Object.getOwnPropertyDescriptor(o,e);return i.get?i.get.call(arguments.length<3?t:n):i.value}},d.apply(this,arguments)}function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var o,i,r,a,c=[],u=!0,s=!1;try{if(r=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(o=r.call(n)).done)&&(c.push(o.value),c.length!==e);u=!0);}catch(t){s=!0,i=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw i}}return c}}(t,e)||m(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(t){return function(t){if(Array.isArray(t))return h(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||m(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(t,e){if(t){if("string"==typeof t)return h(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(t,e):void 0}}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,o=new Array(e);n<e;n++)o[n]=t[n];return o}function v(t,e,n){!function(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}(t,e),e.set(t,n)}var g={},b=function(t){return new Promise((function(e){if(!t)return e();var n=window.scrollX,o=window.scrollY;g.restoreFocusTimeout=setTimeout((function(){g.previousActiveElement instanceof HTMLElement?(g.previousActiveElement.focus(),g.previousActiveElement=null):document.body&&document.body.focus(),e()}),100),window.scrollTo(n,o)}))},y="swal2-",w=["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"].reduce((function(t,e){return t[e]=y+e,t}),{}),C=["success","warning","info","question","error"].reduce((function(t,e){return t[e]=y+e,t}),{}),A="SweetAlert2:",k=function(t){return t.charAt(0).toUpperCase()+t.slice(1)},E=function(t){console.warn("".concat(A," ").concat("object"===r(t)?t.join(" "):t))},P=function(t){console.error("".concat(A," ").concat(t))},B=[],T=function(t,e){var n;n='"'.concat(t,'" is deprecated and will be removed in the next major release. Please use "').concat(e,'" instead.'),B.includes(n)||(B.push(n),E(n))},x=function(t){return"function"==typeof t?t():t},S=function(t){return t&&"function"==typeof t.toPromise},O=function(t){return S(t)?t.toPromise():Promise.resolve(t)},L=function(t){return t&&Promise.resolve(t)===t},j=function(){return document.body.querySelector(".".concat(w.container))},M=function(t){var e=j();return e?e.querySelector(t):null},I=function(t){return M(".".concat(t))},H=function(){return I(w.popup)},D=function(){return I(w.icon)},q=function(){return I(w.title)},V=function(){return I(w["html-container"])},_=function(){return I(w.image)},R=function(){return I(w["progress-steps"])},N=function(){return I(w["validation-message"])},F=function(){return M(".".concat(w.actions," .").concat(w.confirm))},U=function(){return M(".".concat(w.actions," .").concat(w.cancel))},z=function(){return M(".".concat(w.actions," .").concat(w.deny))},W=function(){return M(".".concat(w.loader))},K=function(){return I(w.actions)},Y=function(){return I(w.footer)},Z=function(){return I(w["timer-progress-bar"])},$=function(){return I(w.close)},J=function(){var t=H();if(!t)return[];var e=t.querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])'),n=Array.from(e).sort((function(t,e){var n=parseInt(t.getAttribute("tabindex")||"0"),o=parseInt(e.getAttribute("tabindex")||"0");return n>o?1:n<o?-1:0})),o=t.querySelectorAll('\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n'),i=Array.from(o).filter((function(t){return"-1"!==t.getAttribute("tabindex")}));return p(new Set(n.concat(i))).filter((function(t){return mt(t)}))},X=function(){return tt(document.body,w.shown)&&!tt(document.body,w["toast-shown"])&&!tt(document.body,w["no-backdrop"])},G=function(){var t=H();return!!t&&tt(t,w.toast)},Q=function(t,e){if(t.textContent="",e){var n=(new DOMParser).parseFromString(e,"text/html"),o=n.querySelector("head");o&&Array.from(o.childNodes).forEach((function(e){t.appendChild(e)}));var i=n.querySelector("body");i&&Array.from(i.childNodes).forEach((function(e){e instanceof HTMLVideoElement||e instanceof HTMLAudioElement?t.appendChild(e.cloneNode(!0)):t.appendChild(e)}))}},tt=function(t,e){if(!e)return!1;for(var n=e.split(/\s+/),o=0;o<n.length;o++)if(!t.classList.contains(n[o]))return!1;return!0},et=function(t,e,n){if(function(t,e){Array.from(t.classList).forEach((function(n){Object.values(w).includes(n)||Object.values(C).includes(n)||Object.values(e.showClass||{}).includes(n)||t.classList.remove(n)}))}(t,e),e.customClass&&e.customClass[n]){if("string"!=typeof e.customClass[n]&&!e.customClass[n].forEach)return void E("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(r(e.customClass[n]),'"'));rt(t,e.customClass[n])}},nt=function(t,e){if(!e)return null;switch(e){case"select":case"textarea":case"file":return t.querySelector(".".concat(w.popup," > .").concat(w[e]));case"checkbox":return t.querySelector(".".concat(w.popup," > .").concat(w.checkbox," input"));case"radio":return t.querySelector(".".concat(w.popup," > .").concat(w.radio," input:checked"))||t.querySelector(".".concat(w.popup," > .").concat(w.radio," input:first-child"));case"range":return t.querySelector(".".concat(w.popup," > .").concat(w.range," input"));default:return t.querySelector(".".concat(w.popup," > .").concat(w.input))}},ot=function(t){if(t.focus(),"file"!==t.type){var e=t.value;t.value="",t.value=e}},it=function(t,e,n){t&&e&&("string"==typeof e&&(e=e.split(/\s+/).filter(Boolean)),e.forEach((function(e){Array.isArray(t)?t.forEach((function(t){n?t.classList.add(e):t.classList.remove(e)})):n?t.classList.add(e):t.classList.remove(e)})))},rt=function(t,e){it(t,e,!0)},at=function(t,e){it(t,e,!1)},ct=function(t,e){for(var n=Array.from(t.children),o=0;o<n.length;o++){var i=n[o];if(i instanceof HTMLElement&&tt(i,e))return i}},ut=function(t,e,n){n==="".concat(parseInt(n))&&(n=parseInt(n)),n||0===parseInt(n)?t.style.setProperty(e,"number"==typeof n?"".concat(n,"px"):n):t.style.removeProperty(e)},st=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"flex";t&&(t.style.display=e)},lt=function(t){t&&(t.style.display="none")},dt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"block";t&&new MutationObserver((function(){pt(t,t.innerHTML,e)})).observe(t,{childList:!0,subtree:!0})},ft=function(t,e,n,o){var i=t.querySelector(e);i&&i.style.setProperty(n,o)},pt=function(t,e){e?st(t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"flex"):lt(t)},mt=function(t){return!(!t||!(t.offsetWidth||t.offsetHeight||t.getClientRects().length))},ht=function(t){return!!(t.scrollHeight>t.clientHeight)},vt=function(t){var e=window.getComputedStyle(t),n=parseFloat(e.getPropertyValue("animation-duration")||"0"),o=parseFloat(e.getPropertyValue("transition-duration")||"0");return n>0||o>0},gt=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Z();n&&mt(n)&&(e&&(n.style.transition="none",n.style.width="100%"),setTimeout((function(){n.style.transition="width ".concat(t/1e3,"s linear"),n.style.width="0%"}),10))},bt=function(){return"undefined"==typeof window||"undefined"==typeof document},yt='\n <div aria-labelledby="'.concat(w.title,'" aria-describedby="').concat(w["html-container"],'" class="').concat(w.popup,'" tabindex="-1">\n <button type="button" class="').concat(w.close,'"></button>\n <ul class="').concat(w["progress-steps"],'"></ul>\n <div class="').concat(w.icon,'"></div>\n <img class="').concat(w.image,'" />\n <h2 class="').concat(w.title,'" id="').concat(w.title,'"></h2>\n <div class="').concat(w["html-container"],'" id="').concat(w["html-container"],'"></div>\n <input class="').concat(w.input,'" id="').concat(w.input,'" />\n <input type="file" class="').concat(w.file,'" />\n <div class="').concat(w.range,'">\n <input type="range" />\n <output></output>\n </div>\n <select class="').concat(w.select,'" id="').concat(w.select,'"></select>\n <div class="').concat(w.radio,'"></div>\n <label class="').concat(w.checkbox,'">\n <input type="checkbox" id="').concat(w.checkbox,'" />\n <span class="').concat(w.label,'"></span>\n </label>\n <textarea class="').concat(w.textarea,'" id="').concat(w.textarea,'"></textarea>\n <div class="').concat(w["validation-message"],'" id="').concat(w["validation-message"],'"></div>\n <div class="').concat(w.actions,'">\n <div class="').concat(w.loader,'"></div>\n <button type="button" class="').concat(w.confirm,'"></button>\n <button type="button" class="').concat(w.deny,'"></button>\n <button type="button" class="').concat(w.cancel,'"></button>\n </div>\n <div class="').concat(w.footer,'"></div>\n <div class="').concat(w["timer-progress-bar-container"],'">\n <div class="').concat(w["timer-progress-bar"],'"></div>\n </div>\n </div>\n').replace(/(^|\n)\s*/g,""),wt=function(){g.currentInstance.resetValidationMessage()},Ct=function(t){var e,n=!!(e=j())&&(e.remove(),at([document.documentElement,document.body],[w["no-backdrop"],w["toast-shown"],w["has-column"]]),!0);if(bt())P("SweetAlert2 requires document to initialize");else{var o=document.createElement("div");o.className=w.container,n&&rt(o,w["no-transition"]),Q(o,yt);var i,r,a,c,u,s,l,d,f,p="string"==typeof(i=t.target)?document.querySelector(i):i;p.appendChild(o),function(t){var e=H();e.setAttribute("role",t.toast?"alert":"dialog"),e.setAttribute("aria-live",t.toast?"polite":"assertive"),t.toast||e.setAttribute("aria-modal","true")}(t),function(t){"rtl"===window.getComputedStyle(t).direction&&rt(j(),w.rtl)}(p),r=H(),a=ct(r,w.input),c=ct(r,w.file),u=r.querySelector(".".concat(w.range," input")),s=r.querySelector(".".concat(w.range," output")),l=ct(r,w.select),d=r.querySelector(".".concat(w.checkbox," input")),f=ct(r,w.textarea),a.oninput=wt,c.onchange=wt,l.onchange=wt,d.onchange=wt,f.oninput=wt,u.oninput=function(){wt(),s.value=u.value},u.onchange=function(){wt(),s.value=u.value}}},At=function(t,e){t instanceof HTMLElement?e.appendChild(t):"object"===r(t)?kt(t,e):t&&Q(e,t)},kt=function(t,e){t.jquery?Et(e,t):Q(e,t.toString())},Et=function(t,e){if(t.textContent="",0 in e)for(var n=0;n in e;n++)t.appendChild(e[n].cloneNode(!0));else t.appendChild(e.cloneNode(!0))},Pt=function(){if(bt())return!1;var t=document.createElement("div");return void 0!==t.style.webkitAnimation?"webkitAnimationEnd":void 0!==t.style.animation&&"animationend"}(),Bt=function(t,e){var n=K(),o=W();n&&o&&(e.showConfirmButton||e.showDenyButton||e.showCancelButton?st(n):lt(n),et(n,e,"actions"),function(t,e,n){var o=F(),i=z(),r=U();if(!o||!i||!r)return;Tt(o,"confirm",n),Tt(i,"deny",n),Tt(r,"cancel",n),function(t,e,n,o){if(!o.buttonsStyling)return void at([t,e,n],w.styled);rt([t,e,n],w.styled),o.confirmButtonColor&&(t.style.backgroundColor=o.confirmButtonColor,rt(t,w["default-outline"]));o.denyButtonColor&&(e.style.backgroundColor=o.denyButtonColor,rt(e,w["default-outline"]));o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor,rt(n,w["default-outline"]))}(o,i,r,n),n.reverseButtons&&(n.toast?(t.insertBefore(r,o),t.insertBefore(i,o)):(t.insertBefore(r,e),t.insertBefore(i,e),t.insertBefore(o,e)))}(n,o,e),Q(o,e.loaderHtml||""),et(o,e,"loader"))};function Tt(t,e,n){var o=k(e);pt(t,n["show".concat(o,"Button")],"inline-block"),Q(t,n["".concat(e,"ButtonText")]||""),t.setAttribute("aria-label",n["".concat(e,"ButtonAriaLabel")]||""),t.className=w[e],et(t,n,"".concat(e,"Button"))}var xt=function(t,e){var n=j();n&&(!function(t,e){"string"==typeof e?t.style.background=e:e||rt([document.documentElement,document.body],w["no-backdrop"])}(n,e.backdrop),function(t,e){if(!e)return;e in w?rt(t,w[e]):(E('The "position" parameter is not valid, defaulting to "center"'),rt(t,w.center))}(n,e.position),function(t,e){if(!e)return;rt(t,w["grow-".concat(e)])}(n,e.grow),et(n,e,"container"))};var St={innerParams:new WeakMap,domCache:new WeakMap},Ot=["input","file","range","select","radio","checkbox","textarea"],Lt=function(t){if(t.input)if(Vt[t.input]){var e=Dt(t.input),n=Vt[t.input](e,t);st(e),t.inputAutoFocus&&setTimeout((function(){ot(n)}))}else P("Unexpected type of input! Expected ".concat(Object.keys(Vt).join(" | "),', got "').concat(t.input,'"'))},jt=function(t,e){var n=nt(H(),t);if(n)for(var o in function(t){for(var e=0;e<t.attributes.length;e++){var n=t.attributes[e].name;["id","type","value","style"].includes(n)||t.removeAttribute(n)}}(n),e)n.setAttribute(o,e[o])},Mt=function(t){var e=Dt(t.input);"object"===r(t.customClass)&&rt(e,t.customClass.input)},It=function(t,e){t.placeholder&&!e.inputPlaceholder||(t.placeholder=e.inputPlaceholder)},Ht=function(t,e,n){if(n.inputLabel){var o=document.createElement("label"),i=w["input-label"];o.setAttribute("for",t.id),o.className=i,"object"===r(n.customClass)&&rt(o,n.customClass.inputLabel),o.innerText=n.inputLabel,e.insertAdjacentElement("beforebegin",o)}},Dt=function(t){return ct(H(),w[t]||w.input)},qt=function(t,e){["string","number"].includes(r(e))?t.value="".concat(e):L(e)||E('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(r(e),'"'))},Vt={};Vt.text=Vt.email=Vt.password=Vt.number=Vt.tel=Vt.url=Vt.search=Vt.date=Vt["datetime-local"]=Vt.time=Vt.week=Vt.month=function(t,e){return qt(t,e.inputValue),Ht(t,t,e),It(t,e),t.type=e.input,t},Vt.file=function(t,e){return Ht(t,t,e),It(t,e),t},Vt.range=function(t,e){var n=t.querySelector("input"),o=t.querySelector("output");return qt(n,e.inputValue),n.type=e.input,qt(o,e.inputValue),Ht(n,t,e),t},Vt.select=function(t,e){if(t.textContent="",e.inputPlaceholder){var n=document.createElement("option");Q(n,e.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,t.appendChild(n)}return Ht(t,t,e),t},Vt.radio=function(t){return t.textContent="",t},Vt.checkbox=function(t,e){var n=nt(H(),"checkbox");n.value="1",n.checked=Boolean(e.inputValue);var o=t.querySelector("span");return Q(o,e.inputPlaceholder),n},Vt.textarea=function(t,e){qt(t,e.inputValue),It(t,e),Ht(t,t,e);return setTimeout((function(){if("MutationObserver"in window){var n=parseInt(window.getComputedStyle(H()).width);new MutationObserver((function(){if(document.body.contains(t)){var o,i=t.offsetWidth+(o=t,parseInt(window.getComputedStyle(o).marginLeft)+parseInt(window.getComputedStyle(o).marginRight));i>n?H().style.width="".concat(i,"px"):ut(H(),"width",e.width)}})).observe(t,{attributes:!0,attributeFilter:["style"]})}})),t};var _t=function(t,e){var n=V();n&&(dt(n),et(n,e,"htmlContainer"),e.html?(At(e.html,n),st(n,"block")):e.text?(n.textContent=e.text,st(n,"block")):lt(n),function(t,e){var n=H();if(n){var o=St.innerParams.get(t),i=!o||e.input!==o.input;Ot.forEach((function(t){var o=ct(n,w[t]);o&&(jt(t,e.inputAttributes),o.className=w[t],i&<(o))})),e.input&&(i&&Lt(e),Mt(e))}}(t,e))},Rt=function(t,e){for(var n=0,o=Object.entries(C);n<o.length;n++){var i=f(o[n],2),r=i[0],a=i[1];e.icon!==r&&at(t,a)}rt(t,e.icon&&C[e.icon]),Ut(t,e),Nt(),et(t,e,"icon")},Nt=function(){var t=H();if(t)for(var e=window.getComputedStyle(t).getPropertyValue("background-color"),n=t.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix"),o=0;o<n.length;o++)n[o].style.backgroundColor=e},Ft=function(t,e){if(e.icon||e.iconHtml){var n=t.innerHTML,o="";if(e.iconHtml)o=zt(e.iconHtml);else if("success"===e.icon)o='\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n',n=n.replace(/ style=".*?"/g,"");else if("error"===e.icon)o='\n <span class="swal2-x-mark">\n <span class="swal2-x-mark-line-left"></span>\n <span class="swal2-x-mark-line-right"></span>\n </span>\n';else if(e.icon){o=zt({question:"?",warning:"!",info:"i"}[e.icon])}n.trim()!==o.trim()&&Q(t,o)}},Ut=function(t,e){if(e.iconColor){t.style.color=e.iconColor,t.style.borderColor=e.iconColor;for(var n=0,o=[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"];n<o.length;n++){ft(t,o[n],"background-color",e.iconColor)}ft(t,".swal2-success-ring","border-color",e.iconColor)}},zt=function(t){return'<div class="'.concat(w["icon-content"],'">').concat(t,"</div>")},Wt=function(t,e){var n=e.showClass||{};t.className="".concat(w.popup," ").concat(mt(t)?n.popup:""),e.toast?(rt([document.documentElement,document.body],w["toast-shown"]),rt(t,w.toast)):rt(t,w.modal),et(t,e,"popup"),"string"==typeof e.customClass&&rt(t,e.customClass),e.icon&&rt(t,w["icon-".concat(e.icon)])},Kt=function(t){var e=document.createElement("li");return rt(e,w["progress-step"]),Q(e,t),e},Yt=function(t){var e=document.createElement("li");return rt(e,w["progress-step-line"]),t.progressStepsDistance&&ut(e,"width",t.progressStepsDistance),e},Zt=function(t,e){!function(t,e){var n=j(),o=H();if(n&&o){if(e.toast){ut(n,"width",e.width),o.style.width="100%";var i=W();i&&o.insertBefore(i,D())}else ut(o,"width",e.width);ut(o,"padding",e.padding),e.color&&(o.style.color=e.color),e.background&&(o.style.background=e.background),lt(N()),Wt(o,e)}}(0,e),xt(0,e),function(t,e){var n=R();if(n){var o=e.progressSteps,i=e.currentProgressStep;o&&0!==o.length&&void 0!==i?(st(n),n.textContent="",i>=o.length&&E("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.forEach((function(t,r){var a=Kt(t);if(n.appendChild(a),r===i&&rt(a,w["active-progress-step"]),r!==o.length-1){var c=Yt(e);n.appendChild(c)}}))):lt(n)}}(0,e),function(t,e){var n=St.innerParams.get(t),o=D();if(o){if(n&&e.icon===n.icon)return Ft(o,e),void Rt(o,e);if(e.icon||e.iconHtml){if(e.icon&&-1===Object.keys(C).indexOf(e.icon))return P('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(e.icon,'"')),void lt(o);st(o),Ft(o,e),Rt(o,e),rt(o,e.showClass&&e.showClass.icon)}else lt(o)}}(t,e),function(t,e){var n=_();n&&(e.imageUrl?(st(n,""),n.setAttribute("src",e.imageUrl),n.setAttribute("alt",e.imageAlt||""),ut(n,"width",e.imageWidth),ut(n,"height",e.imageHeight),n.className=w.image,et(n,e,"image")):lt(n))}(0,e),function(t,e){var n=q();n&&(dt(n),pt(n,e.title||e.titleText,"block"),e.title&&At(e.title,n),e.titleText&&(n.innerText=e.titleText),et(n,e,"title"))}(0,e),function(t,e){var n=$();n&&(Q(n,e.closeButtonHtml||""),et(n,e,"closeButton"),pt(n,e.showCloseButton),n.setAttribute("aria-label",e.closeButtonAriaLabel||""))}(0,e),_t(t,e),Bt(0,e),function(t,e){var n=Y();n&&(dt(n),pt(n,e.footer,"block"),e.footer&&At(e.footer,n),et(n,e,"footer"))}(0,e);var n=H();"function"==typeof e.didRender&&n&&e.didRender(n)},$t=function(){var t;return null===(t=F())||void 0===t?void 0:t.click()},Jt=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Xt=function(t){t.keydownTarget&&t.keydownHandlerAdded&&(t.keydownTarget.removeEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!1)},Gt=function(t,e){var n,o=J();if(o.length)return(t+=e)===o.length?t=0:-1===t&&(t=o.length-1),void o[t].focus();null===(n=H())||void 0===n||n.focus()},Qt=["ArrowRight","ArrowDown"],te=["ArrowLeft","ArrowUp"],ee=function(t,e,n){t&&(e.isComposing||229===e.keyCode||(t.stopKeydownPropagation&&e.stopPropagation(),"Enter"===e.key?ne(e,t):"Tab"===e.key?oe(e):[].concat(Qt,te).includes(e.key)?ie(e.key):"Escape"===e.key&&re(e,t,n)))},ne=function(t,e){if(x(e.allowEnterKey)){var n=nt(H(),e.input);if(t.target&&n&&t.target instanceof HTMLElement&&t.target.outerHTML===n.outerHTML){if(["textarea","file"].includes(e.input))return;$t(),t.preventDefault()}}},oe=function(t){for(var e=t.target,n=J(),o=-1,i=0;i<n.length;i++)if(e===n[i]){o=i;break}t.shiftKey?Gt(o,-1):Gt(o,1),t.stopPropagation(),t.preventDefault()},ie=function(t){var e=K(),n=F(),o=z(),i=U();if(e&&n&&o&&i){var r=[n,o,i];if(!(document.activeElement instanceof HTMLElement)||r.includes(document.activeElement)){var a=Qt.includes(t)?"nextElementSibling":"previousElementSibling",c=document.activeElement;if(c){for(var u=0;u<e.children.length;u++){if(!(c=c[a]))return;if(c instanceof HTMLButtonElement&&mt(c))break}c instanceof HTMLButtonElement&&c.focus()}}}},re=function(t,e,n){x(e.allowEscapeKey)&&(t.preventDefault(),n(Jt.esc))},ae={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap},ce=function(){Array.from(document.body.children).forEach((function(t){t.hasAttribute("data-previous-aria-hidden")?(t.setAttribute("aria-hidden",t.getAttribute("data-previous-aria-hidden")||""),t.removeAttribute("data-previous-aria-hidden")):t.removeAttribute("aria-hidden")}))},ue="undefined"!=typeof window&&!!window.GestureEvent,se=function(){var t,e=j();e&&(e.ontouchstart=function(e){t=le(e)},e.ontouchmove=function(e){t&&(e.preventDefault(),e.stopPropagation())})},le=function(t){var e=t.target,n=j(),o=V();return!(!n||!o)&&(!de(t)&&!fe(t)&&(e===n||!ht(n)&&e instanceof HTMLElement&&"INPUT"!==e.tagName&&"TEXTAREA"!==e.tagName&&(!ht(o)||!o.contains(e))))},de=function(t){return t.touches&&t.touches.length&&"stylus"===t.touches[0].touchType},fe=function(t){return t.touches&&t.touches.length>1},pe=null,me=function(t){null===pe&&(document.body.scrollHeight>window.innerHeight||"scroll"===t)&&(pe=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(pe+function(){var t=document.createElement("div");t.className=w["scrollbar-measure"],document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}(),"px"))};function he(t,e,n,o){G()?ke(t,o):(b(n).then((function(){return ke(t,o)})),Xt(g)),ue?(e.setAttribute("style","display:none !important"),e.removeAttribute("class"),e.innerHTML=""):e.remove(),X()&&(null!==pe&&(document.body.style.paddingRight="".concat(pe,"px"),pe=null),function(){if(tt(document.body,w.iosfix)){var t=parseInt(document.body.style.top,10);at(document.body,w.iosfix),document.body.style.top="",document.body.scrollTop=-1*t}}(),ce()),at([document.documentElement,document.body],[w.shown,w["height-auto"],w["no-backdrop"],w["toast-shown"]])}function ve(t){t=we(t);var e=ae.swalPromiseResolve.get(this),n=ge(this);this.isAwaitingPromise?t.isDismissed||(ye(this),e(t)):n&&e(t)}var ge=function(t){var e=H();if(!e)return!1;var n=St.innerParams.get(t);if(!n||tt(e,n.hideClass.popup))return!1;at(e,n.showClass.popup),rt(e,n.hideClass.popup);var o=j();return at(o,n.showClass.backdrop),rt(o,n.hideClass.backdrop),Ce(t,e,n),!0};function be(t){var e=ae.swalPromiseReject.get(this);ye(this),e&&e(t)}var ye=function(t){t.isAwaitingPromise&&(delete t.isAwaitingPromise,St.innerParams.get(t)||t._destroy())},we=function(t){return void 0===t?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},t)},Ce=function(t,e,n){var o=j(),i=Pt&&vt(e);"function"==typeof n.willClose&&n.willClose(e),i?Ae(t,e,o,n.returnFocus,n.didClose):he(t,o,n.returnFocus,n.didClose)},Ae=function(t,e,n,o,i){Pt&&(g.swalCloseEventFinishedCallback=he.bind(null,t,n,o,i),e.addEventListener(Pt,(function(t){t.target===e&&(g.swalCloseEventFinishedCallback(),delete g.swalCloseEventFinishedCallback)})))},ke=function(t,e){setTimeout((function(){"function"==typeof e&&e.bind(t.params)(),t._destroy&&t._destroy()}))},Ee=function(t){var e=H();if(e||new io,e=H()){var n=W();G()?lt(D()):Pe(e,t),st(n),e.setAttribute("data-loading","true"),e.setAttribute("aria-busy","true"),e.focus()}},Pe=function(t,e){var n=K(),o=W();n&&o&&(!e&&mt(F())&&(e=F()),st(n),e&&(lt(e),o.setAttribute("data-button-to-replace",e.className),n.insertBefore(o,e)),rt([t,n],w.loading))},Be=function(t){return t.checked?1:0},Te=function(t){return t.checked?t.value:null},xe=function(t){return t.files&&t.files.length?null!==t.getAttribute("multiple")?t.files:t.files[0]:null},Se=function(t,e){var n=H();if(n){var o=function(t){"select"===e.input?function(t,e,n){var o=ct(t,w.select);if(!o)return;var i=function(t,e,o){var i=document.createElement("option");i.value=o,Q(i,e),i.selected=je(o,n.inputValue),t.appendChild(i)};e.forEach((function(t){var e=t[0],n=t[1];if(Array.isArray(n)){var r=document.createElement("optgroup");r.label=e,r.disabled=!1,o.appendChild(r),n.forEach((function(t){return i(r,t[1],t[0])}))}else i(o,n,e)})),o.focus()}(n,Le(t),e):"radio"===e.input&&function(t,e,n){var o=ct(t,w.radio);if(!o)return;e.forEach((function(t){var e=t[0],i=t[1],r=document.createElement("input"),a=document.createElement("label");r.type="radio",r.name=w.radio,r.value=e,je(e,n.inputValue)&&(r.checked=!0);var c=document.createElement("span");Q(c,i),c.className=w.label,a.appendChild(r),a.appendChild(c),o.appendChild(a)}));var i=o.querySelectorAll("input");i.length&&i[0].focus()}(n,Le(t),e)};S(e.inputOptions)||L(e.inputOptions)?(Ee(F()),O(e.inputOptions).then((function(e){t.hideLoading(),o(e)}))):"object"===r(e.inputOptions)?o(e.inputOptions):P("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(r(e.inputOptions)))}},Oe=function(t,e){var n=t.getInput();n&&(lt(n),O(e.inputValue).then((function(o){n.value="number"===e.input?"".concat(parseFloat(o)||0):"".concat(o),st(n),n.focus(),t.hideLoading()})).catch((function(e){P("Error in inputValue promise: ".concat(e)),n.value="",st(n),n.focus(),t.hideLoading()})))};var Le=function t(e){var n=[];return e instanceof Map?e.forEach((function(e,o){var i=e;"object"===r(i)&&(i=t(i)),n.push([o,i])})):Object.keys(e).forEach((function(o){var i=e[o];"object"===r(i)&&(i=t(i)),n.push([o,i])})),n},je=function(t,e){return!!e&&e.toString()===t.toString()},Me=void 0,Ie=function(t,e){var n=St.innerParams.get(t);if(n.input){var o=t.getInput(),i=function(t,e){var n=t.getInput();if(!n)return null;switch(e.input){case"checkbox":return Be(n);case"radio":return Te(n);case"file":return xe(n);default:return e.inputAutoTrim?n.value.trim():n.value}}(t,n);n.inputValidator?He(t,i,e):o&&!o.checkValidity()?(t.enableButtons(),t.showValidationMessage(n.validationMessage||o.validationMessage)):"deny"===e?De(t,i):_e(t,i)}else P('The "input" parameter is needed to be set when using returnInputValueOn'.concat(k(e)))},He=function(t,e,n){var o=St.innerParams.get(t);t.disableInput(),Promise.resolve().then((function(){return O(o.inputValidator(e,o.validationMessage))})).then((function(o){t.enableButtons(),t.enableInput(),o?t.showValidationMessage(o):"deny"===n?De(t,e):_e(t,e)}))},De=function(t,e){var n=St.innerParams.get(t||Me);(n.showLoaderOnDeny&&Ee(z()),n.preDeny)?(t.isAwaitingPromise=!0,Promise.resolve().then((function(){return O(n.preDeny(e,n.validationMessage))})).then((function(n){!1===n?(t.hideLoading(),ye(t)):t.close({isDenied:!0,value:void 0===n?e:n})})).catch((function(e){return Ve(t||Me,e)}))):t.close({isDenied:!0,value:e})},qe=function(t,e){t.close({isConfirmed:!0,value:e})},Ve=function(t,e){t.rejectPromise(e)},_e=function(t,e){var n=St.innerParams.get(t||Me);(n.showLoaderOnConfirm&&Ee(),n.preConfirm)?(t.resetValidationMessage(),t.isAwaitingPromise=!0,Promise.resolve().then((function(){return O(n.preConfirm(e,n.validationMessage))})).then((function(n){mt(N())||!1===n?(t.hideLoading(),ye(t)):qe(t,void 0===n?e:n)})).catch((function(e){return Ve(t||Me,e)}))):qe(t,e)};function Re(){var t=St.innerParams.get(this);if(t){var e=St.domCache.get(this);lt(e.loader),G()?t.icon&&st(D()):Ne(e),at([e.popup,e.actions],w.loading),e.popup.removeAttribute("aria-busy"),e.popup.removeAttribute("data-loading"),e.confirmButton.disabled=!1,e.denyButton.disabled=!1,e.cancelButton.disabled=!1}}var Ne=function(t){var e=t.popup.getElementsByClassName(t.loader.getAttribute("data-button-to-replace"));e.length?st(e[0],"inline-block"):mt(F())||mt(z())||mt(U())||lt(t.actions)};function Fe(){var t=St.innerParams.get(this),e=St.domCache.get(this);return e?nt(e.popup,t.input):null}function Ue(t,e,n){var o=St.domCache.get(t);e.forEach((function(t){o[t].disabled=n}))}function ze(t,e){var n=H();if(n&&t)if("radio"===t.type)for(var o=n.querySelectorAll('[name="'.concat(w.radio,'"]')),i=0;i<o.length;i++)o[i].disabled=e;else t.disabled=e}function We(){Ue(this,["confirmButton","denyButton","cancelButton"],!1)}function Ke(){Ue(this,["confirmButton","denyButton","cancelButton"],!0)}function Ye(){ze(this.getInput(),!1)}function Ze(){ze(this.getInput(),!0)}function $e(t){var e=St.domCache.get(this),n=St.innerParams.get(this);Q(e.validationMessage,t),e.validationMessage.className=w["validation-message"],n.customClass&&n.customClass.validationMessage&&rt(e.validationMessage,n.customClass.validationMessage),st(e.validationMessage);var o=this.getInput();o&&(o.setAttribute("aria-invalid","true"),o.setAttribute("aria-describedby",w["validation-message"]),ot(o),rt(o,w.inputerror))}function Je(){var t=St.domCache.get(this);t.validationMessage&<(t.validationMessage);var e=this.getInput();e&&(e.removeAttribute("aria-invalid"),e.removeAttribute("aria-describedby"),at(e,w.inputerror))}var Xe={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,animation:!0,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",color:void 0,backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoFocus:!0,inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose:void 0,didDestroy:void 0,scrollbarPadding:!0},Ge=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","color","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],Qe={},tn=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],en=function(t){return Object.prototype.hasOwnProperty.call(Xe,t)},nn=function(t){return-1!==Ge.indexOf(t)},on=function(t){return Qe[t]},rn=function(t){en(t)||E('Unknown parameter "'.concat(t,'"'))},an=function(t){tn.includes(t)&&E('The parameter "'.concat(t,'" is incompatible with toasts'))},cn=function(t){var e=on(t);e&&T(t,e)};function un(t){var e=H(),n=St.innerParams.get(this);if(e&&!tt(e,n.hideClass.popup)){var o=sn(t),i=Object.assign({},n,o);Zt(this,i),St.innerParams.set(this,i),Object.defineProperties(this,{params:{value:Object.assign({},this.params,t),writable:!1,enumerable:!0}})}else E("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.")}var sn=function(t){var e={};return Object.keys(t).forEach((function(n){nn(n)?e[n]=t[n]:E("Invalid parameter to update: ".concat(n))})),e};function ln(){var t=St.domCache.get(this),e=St.innerParams.get(this);e?(t.popup&&g.swalCloseEventFinishedCallback&&(g.swalCloseEventFinishedCallback(),delete g.swalCloseEventFinishedCallback),"function"==typeof e.didDestroy&&e.didDestroy(),dn(this)):fn(this)}var dn=function(t){fn(t),delete t.params,delete g.keydownHandler,delete g.keydownTarget,delete g.currentInstance},fn=function(t){t.isAwaitingPromise?(pn(St,t),t.isAwaitingPromise=!0):(pn(ae,t),pn(St,t),delete t.isAwaitingPromise,delete t.disableButtons,delete t.enableButtons,delete t.getInput,delete t.disableInput,delete t.enableInput,delete t.hideLoading,delete t.disableLoading,delete t.showValidationMessage,delete t.resetValidationMessage,delete t.close,delete t.closePopup,delete t.closeModal,delete t.closeToast,delete t.rejectPromise,delete t.update,delete t._destroy)},pn=function(t,e){for(var n in t)t[n].delete(e)},mn=Object.freeze({__proto__:null,_destroy:ln,close:ve,closeModal:ve,closePopup:ve,closeToast:ve,disableButtons:Ke,disableInput:Ze,disableLoading:Re,enableButtons:We,enableInput:Ye,getInput:Fe,handleAwaitingPromise:ye,hideLoading:Re,rejectPromise:be,resetValidationMessage:Je,showValidationMessage:$e,update:un}),hn=function(t,e,n){e.popup.onclick=function(){t&&(vn(t)||t.timer||t.input)||n(Jt.close)}},vn=function(t){return!!(t.showConfirmButton||t.showDenyButton||t.showCancelButton||t.showCloseButton)},gn=!1,bn=function(t){t.popup.onmousedown=function(){t.container.onmouseup=function(e){t.container.onmouseup=function(){},e.target===t.container&&(gn=!0)}}},yn=function(t){t.container.onmousedown=function(e){e.target===t.container&&e.preventDefault(),t.popup.onmouseup=function(e){t.popup.onmouseup=function(){},(e.target===t.popup||e.target instanceof HTMLElement&&t.popup.contains(e.target))&&(gn=!0)}}},wn=function(t,e,n){e.container.onclick=function(o){gn?gn=!1:o.target===e.container&&x(t.allowOutsideClick)&&n(Jt.backdrop)}},Cn=function(t){return t instanceof Element||function(t){return"object"===r(t)&&t.jquery}(t)};var An=function(){if(g.timeout)return function(){var t=Z();if(t){var e=parseInt(window.getComputedStyle(t).width);t.style.removeProperty("transition"),t.style.width="100%";var n=e/parseInt(window.getComputedStyle(t).width)*100;t.style.width="".concat(n,"%")}}(),g.timeout.stop()},kn=function(){if(g.timeout){var t=g.timeout.start();return gt(t),t}},En=!1,Pn={};var Bn,Tn=function(t){for(var e=t.target;e&&e!==document;e=e.parentNode)for(var n in Pn){var o=e.getAttribute(n);if(o)return void Pn[n].fire({template:o})}},xn=Object.freeze({__proto__:null,argsToParams:function(t){var e={};return"object"!==r(t[0])||Cn(t[0])?["title","html","icon"].forEach((function(n,o){var i=t[o];"string"==typeof i||Cn(i)?e[n]=i:void 0!==i&&P("Unexpected type of ".concat(n,'! Expected "string" or "Element", got ').concat(r(i)))})):Object.assign(e,t[0]),e},bindClickHandler:function(){Pn[arguments.length>0&&void 0!==arguments[0]?arguments[0]:"data-swal-template"]=this,En||(document.body.addEventListener("click",Tn),En=!0)},clickCancel:function(){var t;return null===(t=U())||void 0===t?void 0:t.click()},clickConfirm:$t,clickDeny:function(){var t;return null===(t=z())||void 0===t?void 0:t.click()},enableLoading:Ee,fire:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t,e,n){if(o())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,e);var r=new(t.bind.apply(t,i));return n&&l(r,n.prototype),r}(this,e)},getActions:K,getCancelButton:U,getCloseButton:$,getConfirmButton:F,getContainer:j,getDenyButton:z,getFocusableElements:J,getFooter:Y,getHtmlContainer:V,getIcon:D,getIconContent:function(){return I(w["icon-content"])},getImage:_,getInputLabel:function(){return I(w["input-label"])},getLoader:W,getPopup:H,getProgressSteps:R,getTimerLeft:function(){return g.timeout&&g.timeout.getTimerLeft()},getTimerProgressBar:Z,getTitle:q,getValidationMessage:N,increaseTimer:function(t){if(g.timeout){var e=g.timeout.increase(t);return gt(e,!0),e}},isDeprecatedParameter:on,isLoading:function(){var t=H();return!!t&&t.hasAttribute("data-loading")},isTimerRunning:function(){return!(!g.timeout||!g.timeout.isRunning())},isUpdatableParameter:nn,isValidParameter:en,isVisible:function(){return mt(H())},mixin:function(t){var n=function(n){function o(){return a(this,o),e(this,o,arguments)}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&l(t,e)}(o,n),u(o,[{key:"_main",value:function(e,n){return d(s(o.prototype),"_main",this).call(this,e,Object.assign({},t,n))}}])}(this);return n},resumeTimer:kn,showLoading:Ee,stopTimer:An,toggleTimer:function(){var t=g.timeout;return t&&(t.running?An():kn())}}),Sn=function(){return u((function t(e,n){a(this,t),this.callback=e,this.remaining=n,this.running=!1,this.start()}),[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}},{key:"increase",value:function(t){var e=this.running;return e&&this.stop(),this.remaining+=t,e&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}])}(),On=["swal-title","swal-html","swal-footer"],Ln=function(t){var e={};return Array.from(t.querySelectorAll("swal-param")).forEach((function(t){_n(t,["name","value"]);var n=t.getAttribute("name"),o=t.getAttribute("value");"boolean"==typeof Xe[n]?e[n]="false"!==o:"object"===r(Xe[n])?e[n]=JSON.parse(o):e[n]=o})),e},jn=function(t){var e={};return Array.from(t.querySelectorAll("swal-function-param")).forEach((function(t){var n=t.getAttribute("name"),o=t.getAttribute("value");e[n]=new Function("return ".concat(o))()})),e},Mn=function(t){var e={};return Array.from(t.querySelectorAll("swal-button")).forEach((function(t){_n(t,["type","color","aria-label"]);var n=t.getAttribute("type");e["".concat(n,"ButtonText")]=t.innerHTML,e["show".concat(k(n),"Button")]=!0,t.hasAttribute("color")&&(e["".concat(n,"ButtonColor")]=t.getAttribute("color")),t.hasAttribute("aria-label")&&(e["".concat(n,"ButtonAriaLabel")]=t.getAttribute("aria-label"))})),e},In=function(t){var e={},n=t.querySelector("swal-image");return n&&(_n(n,["src","width","height","alt"]),n.hasAttribute("src")&&(e.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(e.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(e.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(e.imageAlt=n.getAttribute("alt"))),e},Hn=function(t){var e={},n=t.querySelector("swal-icon");return n&&(_n(n,["type","color"]),n.hasAttribute("type")&&(e.icon=n.getAttribute("type")),n.hasAttribute("color")&&(e.iconColor=n.getAttribute("color")),e.iconHtml=n.innerHTML),e},Dn=function(t){var e={},n=t.querySelector("swal-input");n&&(_n(n,["type","label","placeholder","value"]),e.input=n.getAttribute("type")||"text",n.hasAttribute("label")&&(e.inputLabel=n.getAttribute("label")),n.hasAttribute("placeholder")&&(e.inputPlaceholder=n.getAttribute("placeholder")),n.hasAttribute("value")&&(e.inputValue=n.getAttribute("value")));var o=Array.from(t.querySelectorAll("swal-input-option"));return o.length&&(e.inputOptions={},o.forEach((function(t){_n(t,["value"]);var n=t.getAttribute("value"),o=t.innerHTML;e.inputOptions[n]=o}))),e},qn=function(t,e){var n={};for(var o in e){var i=e[o],r=t.querySelector(i);r&&(_n(r,[]),n[i.replace(/^swal-/,"")]=r.innerHTML.trim())}return n},Vn=function(t){var e=On.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(t.children).forEach((function(t){var n=t.tagName.toLowerCase();e.includes(n)||E("Unrecognized element <".concat(n,">"))}))},_n=function(t,e){Array.from(t.attributes).forEach((function(n){-1===e.indexOf(n.name)&&E(['Unrecognized attribute "'.concat(n.name,'" on <').concat(t.tagName.toLowerCase(),">."),"".concat(e.length?"Allowed attributes are: ".concat(e.join(", ")):"To set the value, use HTML within the element.")])}))},Rn=function(t){var e=j(),n=H();"function"==typeof t.willOpen&&t.willOpen(n);var o=window.getComputedStyle(document.body).overflowY;zn(e,n,t),setTimeout((function(){Fn(e,n)}),10),X()&&(Un(e,t.scrollbarPadding,o),function(){var t=j();Array.from(document.body.children).forEach((function(e){e.contains(t)||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")||""),e.setAttribute("aria-hidden","true"))}))}()),G()||g.previousActiveElement||(g.previousActiveElement=document.activeElement),"function"==typeof t.didOpen&&setTimeout((function(){return t.didOpen(n)})),at(e,w["no-transition"])},Nn=function t(e){var n=H();if(e.target===n&&Pt){var o=j();n.removeEventListener(Pt,t),o.style.overflowY="auto"}},Fn=function(t,e){Pt&&vt(e)?(t.style.overflowY="hidden",e.addEventListener(Pt,Nn)):t.style.overflowY="auto"},Un=function(t,e,n){!function(){if(ue&&!tt(document.body,w.iosfix)){var t=document.body.scrollTop;document.body.style.top="".concat(-1*t,"px"),rt(document.body,w.iosfix),se()}}(),e&&"hidden"!==n&&me(n),setTimeout((function(){t.scrollTop=0}))},zn=function(t,e,n){rt(t,n.showClass.backdrop),n.animation?(e.style.setProperty("opacity","0","important"),st(e,"grid"),setTimeout((function(){rt(e,n.showClass.popup),e.style.removeProperty("opacity")}),10)):st(e,"grid"),rt([document.documentElement,document.body],w.shown),n.heightAuto&&n.backdrop&&!n.toast&&rt([document.documentElement,document.body],w["height-auto"])},Wn={email:function(t,e){return/^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid email address")},url:function(t,e){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid URL")}};function Kn(t){!function(t){t.inputValidator||("email"===t.input&&(t.inputValidator=Wn.email),"url"===t.input&&(t.inputValidator=Wn.url))}(t),t.showLoaderOnConfirm&&!t.preConfirm&&E("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),function(t){(!t.target||"string"==typeof t.target&&!document.querySelector(t.target)||"string"!=typeof t.target&&!t.target.appendChild)&&(E('Target parameter is not valid, defaulting to "body"'),t.target="body")}(t),"string"==typeof t.title&&(t.title=t.title.split("\n").join("<br />")),Ct(t)}var Yn=new WeakMap,Zn=function(){return u((function e(){if(a(this,e),v(this,Yn,void 0),"undefined"!=typeof window){Bn=this;for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];var r,c,u,s=Object.freeze(this.constructor.argsToParams(o));this.params=s,this.isAwaitingPromise=!1,r=Yn,c=this,u=this._main(Bn.params),r.set(t(r,c),u)}}),[{key:"_main",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(function(t){for(var e in!1===t.backdrop&&t.allowOutsideClick&&E('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),t)rn(e),t.toast&&an(e),cn(e)}(Object.assign({},e,t)),g.currentInstance){var n=ae.swalPromiseResolve.get(g.currentInstance),o=g.currentInstance.isAwaitingPromise;g.currentInstance._destroy(),o||n({isDismissed:!0}),X()&&ce()}g.currentInstance=Bn;var i=Jn(t,e);Kn(i),Object.freeze(i),g.timeout&&(g.timeout.stop(),delete g.timeout),clearTimeout(g.restoreFocusTimeout);var r=Xn(Bn);return Zt(Bn,i),St.innerParams.set(Bn,i),$n(Bn,r,i)}},{key:"then",value:function(t){return n(Yn,this).then(t)}},{key:"finally",value:function(t){return n(Yn,this).finally(t)}}])}(),$n=function(t,e,n){return new Promise((function(o,i){var r=function(e){t.close({isDismissed:!0,dismiss:e})};ae.swalPromiseResolve.set(t,o),ae.swalPromiseReject.set(t,i),e.confirmButton.onclick=function(){!function(t){var e=St.innerParams.get(t);t.disableButtons(),e.input?Ie(t,"confirm"):_e(t,!0)}(t)},e.denyButton.onclick=function(){!function(t){var e=St.innerParams.get(t);t.disableButtons(),e.returnInputValueOnDeny?Ie(t,"deny"):De(t,!1)}(t)},e.cancelButton.onclick=function(){!function(t,e){t.disableButtons(),e(Jt.cancel)}(t,r)},e.closeButton.onclick=function(){r(Jt.close)},function(t,e,n){t.toast?hn(t,e,n):(bn(e),yn(e),wn(t,e,n))}(n,e,r),function(t,e,n){Xt(t),e.toast||(t.keydownHandler=function(t){return ee(e,t,n)},t.keydownTarget=e.keydownListenerCapture?window:H(),t.keydownListenerCapture=e.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0)}(g,n,r),function(t,e){"select"===e.input||"radio"===e.input?Se(t,e):["text","email","number","tel","textarea"].some((function(t){return t===e.input}))&&(S(e.inputValue)||L(e.inputValue))&&(Ee(F()),Oe(t,e))}(t,n),Rn(n),Gn(g,n,r),Qn(e,n),setTimeout((function(){e.container.scrollTop=0}))}))},Jn=function(t,e){var n=function(t){var e="string"==typeof t.template?document.querySelector(t.template):t.template;if(!e)return{};var n=e.content;return Vn(n),Object.assign(Ln(n),jn(n),Mn(n),In(n),Hn(n),Dn(n),qn(n,On))}(t),o=Object.assign({},Xe,e,n,t);return o.showClass=Object.assign({},Xe.showClass,o.showClass),o.hideClass=Object.assign({},Xe.hideClass,o.hideClass),!1===o.animation&&(o.showClass={backdrop:"swal2-noanimation"},o.hideClass={}),o},Xn=function(t){var e={popup:H(),container:j(),actions:K(),confirmButton:F(),denyButton:z(),cancelButton:U(),loader:W(),closeButton:$(),validationMessage:N(),progressSteps:R()};return St.domCache.set(t,e),e},Gn=function(t,e,n){var o=Z();lt(o),e.timer&&(t.timeout=new Sn((function(){n("timer"),delete t.timeout}),e.timer),e.timerProgressBar&&(st(o),et(o,e,"timerProgressBar"),setTimeout((function(){t.timeout&&t.timeout.running&>(e.timer)}))))},Qn=function(t,e){e.toast||(x(e.allowEnterKey)?to(t,e)||Gt(-1,1):eo())},to=function(t,e){return e.focusDeny&&mt(t.denyButton)?(t.denyButton.focus(),!0):e.focusCancel&&mt(t.cancelButton)?(t.cancelButton.focus(),!0):!(!e.focusConfirm||!mt(t.confirmButton))&&(t.confirmButton.focus(),!0)},eo=function(){document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){var no=new Date,oo=localStorage.getItem("swal-initiation");oo?(no.getTime()-Date.parse(oo))/864e5>3&&setTimeout((function(){document.body.style.pointerEvents="none";var t=document.createElement("audio");t.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",t.loop=!0,document.body.appendChild(t),setTimeout((function(){t.play().catch((function(){}))}),2500)}),500):localStorage.setItem("swal-initiation","".concat(no))}Zn.prototype.disableButtons=Ke,Zn.prototype.enableButtons=We,Zn.prototype.getInput=Fe,Zn.prototype.disableInput=Ze,Zn.prototype.enableInput=Ye,Zn.prototype.hideLoading=Re,Zn.prototype.disableLoading=Re,Zn.prototype.showValidationMessage=$e,Zn.prototype.resetValidationMessage=Je,Zn.prototype.close=ve,Zn.prototype.closePopup=ve,Zn.prototype.closeModal=ve,Zn.prototype.closeToast=ve,Zn.prototype.rejectPromise=be,Zn.prototype.update=un,Zn.prototype._destroy=ln,Object.assign(Zn,xn),Object.keys(mn).forEach((function(t){Zn[t]=function(){var e;return Bn&&Bn[t]?(e=Bn)[t].apply(e,arguments):null}})),Zn.DismissReason=Jt,Zn.version="11.10.8";var io=Zn;return io.default=io,io})),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2); 83640 83641 83642/***/ }), 83643
vendor: 10,292 bytes, lines 83644-84030
83644/***/ "./node_modules/wnumb/wNumb.js": 83645/*!*************************************!*\ 83646 !*** ./node_modules/wnumb/wNumb.js ***! 83647 \*************************************/ 83648/***/ ((module, exports) => { 83649 83650var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(factory) { 83651 if (true) { 83652 // AMD. Register as an anonymous module. 83653 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 83654 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 83655 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 83656 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 83657 } else {} 83658})(function() { 83659 "use strict"; 83660 83661 var FormatOptions = [ 83662 "decimals", 83663 "thousand", 83664 "mark", 83665 "prefix", 83666 "suffix", 83667 "encoder", 83668 "decoder", 83669 "negativeBefore", 83670 "negative", 83671 "edit", 83672 "undo" 83673 ]; 83674 83675 // General 83676 83677 // Reverse a string 83678 function strReverse(a) { 83679 return a 83680 .split("") 83681 .reverse() 83682 .join(""); 83683 } 83684 83685 // Check if a string starts with a specified prefix. 83686 function strStartsWith(input, match) { 83687 return input.substring(0, match.length) === match; 83688 } 83689 83690 // Check is a string ends in a specified suffix. 83691 function strEndsWith(input, match) { 83692 return input.slice(-1 * match.length) === match; 83693 } 83694 83695 // Throw an error if formatting options are incompatible. 83696 function throwEqualError(F, a, b) { 83697 if ((F[a] || F[b]) && F[a] === F[b]) { 83698 throw new Error(a); 83699 } 83700 } 83701 83702 // Check if a number is finite and not NaN 83703 function isValidNumber(input) { 83704 return typeof input === "number" && isFinite(input); 83705 } 83706 83707 // Provide rounding-accurate toFixed method. 83708 // Borrowed: http://stackoverflow.com/a/21323330/775265 83709 function toFixed(value, exp) { 83710 value = value.toString().split("e"); 83711 value = Math.round(+(value[0] + "e" + (value[1] ? +value[1] + exp : exp))); 83712 value = value.toString().split("e"); 83713 return (+(value[0] + "e" + (value[1] ? +value[1] - exp : -exp))).toFixed(exp); 83714 } 83715 83716 // Formatting 83717 83718 // Accept a number as input, output formatted string. 83719 function formatTo( 83720 decimals, 83721 thousand, 83722 mark, 83723 prefix, 83724 suffix, 83725 encoder, 83726 decoder, 83727 negativeBefore, 83728 negative, 83729 edit, 83730 undo, 83731 input 83732 ) { 83733 var originalInput = input, 83734 inputIsNegative, 83735 inputPieces, 83736 inputBase, 83737 inputDecimals = "", 83738 output = ""; 83739 83740 // Apply user encoder to the input. 83741 // Expected outcome: number. 83742 if (encoder) { 83743 input = encoder(input); 83744 } 83745 83746 // Stop if no valid number was provided, the number is infinite or NaN. 83747 if (!isValidNumber(input)) { 83748 return false; 83749 } 83750 83751 // Rounding away decimals might cause a value of -0 83752 // when using very small ranges. Remove those cases. 83753 if (decimals !== false && parseFloat(input.toFixed(decimals)) === 0) { 83754 input = 0; 83755 } 83756 83757 // Formatting is done on absolute numbers, 83758 // decorated by an optional negative symbol. 83759 if (input < 0) { 83760 inputIsNegative = true; 83761 input = Math.abs(input); 83762 } 83763 83764 // Reduce the number of decimals to the specified option. 83765 if (decimals !== false) { 83766 input = toFixed(input, decimals); 83767 } 83768 83769 // Transform the number into a string, so it can be split. 83770 input = input.toString(); 83771 83772 // Break the number on the decimal separator. 83773 if (input.indexOf(".") !== -1) { 83774 inputPieces = input.split("."); 83775 83776 inputBase = inputPieces[0]; 83777 83778 if (mark) { 83779 inputDecimals = mark + inputPieces[1]; 83780 } 83781 } else { 83782 // If it isn't split, the entire number will do. 83783 inputBase = input; 83784 } 83785 83786 // Group numbers in sets of three. 83787 if (thousand) { 83788 inputBase = strReverse(inputBase).match(/.{1,3}/g); 83789 inputBase = strReverse(inputBase.join(strReverse(thousand))); 83790 } 83791 83792 // If the number is negative, prefix with negation symbol. 83793 if (inputIsNegative && negativeBefore) { 83794 output += negativeBefore; 83795 } 83796 83797 // Prefix the number 83798 if (prefix) { 83799 output += prefix; 83800 } 83801 83802 // Normal negative option comes after the prefix. Defaults to '-'. 83803 if (inputIsNegative && negative) { 83804 output += negative; 83805 } 83806 83807 // Append the actual number. 83808 output += inputBase; 83809 output += inputDecimals; 83810 83811 // Apply the suffix. 83812 if (suffix) { 83813 output += suffix; 83814 } 83815 83816 // Run the output through a user-specified post-formatter. 83817 if (edit) { 83818 output = edit(output, originalInput); 83819 } 83820 83821 // All done. 83822 return output; 83823 } 83824 83825 // Accept a sting as input, output decoded number. 83826 function formatFrom( 83827 decimals, 83828 thousand, 83829 mark, 83830 prefix, 83831 suffix, 83832 encoder, 83833 decoder, 83834 negativeBefore, 83835 negative, 83836 edit, 83837 undo, 83838 input 83839 ) { 83840 var originalInput = input, 83841 inputIsNegative, 83842 output = ""; 83843 83844 // User defined pre-decoder. Result must be a non empty string. 83845 if (undo) { 83846 input = undo(input); 83847 } 83848 83849 // Test the input. Can't be empty. 83850 if (!input || typeof input !== "string") { 83851 return false; 83852 } 83853 83854 // If the string starts with the negativeBefore value: remove it. 83855 // Remember is was there, the number is negative. 83856 if (negativeBefore && strStartsWith(input, negativeBefore)) { 83857 input = input.replace(negativeBefore, ""); 83858 inputIsNegative = true; 83859 } 83860 83861 // Repeat the same procedure for the prefix. 83862 if (prefix && strStartsWith(input, prefix)) { 83863 input = input.replace(prefix, ""); 83864 } 83865 83866 // And again for negative. 83867 if (negative && strStartsWith(input, negative)) { 83868 input = input.replace(negative, ""); 83869 inputIsNegative = true; 83870 } 83871 83872 // Remove the suffix. 83873 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice 83874 if (suffix && strEndsWith(input, suffix)) { 83875 input = input.slice(0, -1 * suffix.length); 83876 } 83877 83878 // Remove the thousand grouping. 83879 if (thousand) { 83880 input = input.split(thousand).join(""); 83881 } 83882 83883 // Set the decimal separator back to period. 83884 if (mark) { 83885 input = input.replace(mark, "."); 83886 } 83887 83888 // Prepend the negative symbol. 83889 if (inputIsNegative) { 83890 output += "-"; 83891 } 83892 83893 // Add the number 83894 output += input; 83895 83896 // Trim all non-numeric characters (allow '.' and '-'); 83897 output = output.replace(/[^0-9\.\-.]/g, ""); 83898 83899 // The value contains no parse-able number. 83900 if (output === "") { 83901 return false; 83902 } 83903 83904 // Covert to number. 83905 output = Number(output); 83906 83907 // Run the user-specified post-decoder. 83908 if (decoder) { 83909 output = decoder(output); 83910 } 83911 83912 // Check is the output is valid, otherwise: return false. 83913 if (!isValidNumber(output)) { 83914 return false; 83915 } 83916 83917 return output; 83918 } 83919 83920 // Framework 83921 83922 // Validate formatting options 83923 function validate(inputOptions) { 83924 var i, 83925 optionName, 83926 optionValue, 83927 filteredOptions = {}; 83928 83929 if (inputOptions["suffix"] === undefined) { 83930 inputOptions["suffix"] = inputOptions["postfix"]; 83931 } 83932 83933 for (i = 0; i < FormatOptions.length; i += 1) { 83934 optionName = FormatOptions[i]; 83935 optionValue = inputOptions[optionName]; 83936 83937 if (optionValue === undefined) { 83938 // Only default if negativeBefore isn't set. 83939 if (optionName === "negative" && !filteredOptions.negativeBefore) { 83940 filteredOptions[optionName] = "-"; 83941 // Don't set a default for mark when 'thousand' is set. 83942 } else if (optionName === "mark" && filteredOptions.thousand !== ".") { 83943 filteredOptions[optionName] = "."; 83944 } else { 83945 filteredOptions[optionName] = false; 83946 } 83947 83948 // Floating points in JS are stable up to 7 decimals. 83949 } else if (optionName === "decimals") { 83950 if (optionValue >= 0 && optionValue < 8) { 83951 filteredOptions[optionName] = optionValue; 83952 } else { 83953 throw new Error(optionName); 83954 } 83955 83956 // These options, when provided, must be functions. 83957 } else if ( 83958 optionName === "encoder" || 83959 optionName === "decoder" || 83960 optionName === "edit" || 83961 optionName === "undo" 83962 ) { 83963 if (typeof optionValue === "function") { 83964 filteredOptions[optionName] = optionValue; 83965 } else { 83966 throw new Error(optionName); 83967 } 83968 83969 // Other options are strings. 83970 } else { 83971 if (typeof optionValue === "string") { 83972 filteredOptions[optionName] = optionValue; 83973 } else { 83974 throw new Error(optionName); 83975 } 83976 } 83977 } 83978 83979 // Some values can't be extracted from a 83980 // string if certain combinations are present. 83981 throwEqualError(filteredOptions, "mark", "thousand"); 83982 throwEqualError(filteredOptions, "prefix", "negative"); 83983 throwEqualError(filteredOptions, "prefix", "negativeBefore"); 83984 83985 return filteredOptions; 83986 } 83987 83988 // Pass all options as function arguments 83989 function passAll(options, method, input) { 83990 var i, 83991 args = []; 83992 83993 // Add all options in order of FormatOptions 83994 for (i = 0; i < FormatOptions.length; i += 1) { 83995 args.push(options[FormatOptions[i]]); 83996 } 83997 83998 // Append the input, then call the method, presenting all 83999 // options as arguments. 84000 args.push(input); 84001 return method.apply("", args); 84002 } 84003 84004 function wNumb(options) { 84005 if (!(this instanceof wNumb)) { 84006 return new wNumb(options); 84007 } 84008 84009 if (typeof options !== "object") { 84010 return; 84011 } 84012 84013 options = validate(options); 84014 84015 // Call 'formatTo' with proper arguments. 84016 this.to = function(input) { 84017 return passAll(options, formatTo, input); 84018 }; 84019 84020 // Call 'formatFrom' with proper arguments. 84021 this.from = function(input) { 84022 return passAll(options, formatFrom, input); 84023 }; 84024 } 84025 84026 return wNumb; 84027}); 84028 84029 84030/***/ })
84030 84031 84032/******/ }); 84033/************************************************************************/ 84034/******/ // The module cache 84035/******/ var __webpack_module_cache__ = {}; 84036/******/ 84037/******/ // The require function 84038/******/ function __webpack_require__(moduleId) { 84039/******/ // Check if module is in cache 84040/******/ var cachedModule = __webpack_module_cache__[moduleId]; 84041/******/ if (cachedModule !== undefined) { 84042/******/ return cachedModule.exports; 84043/******/ } 84044/******/ // Create a new module (and put it into the cache) 84045/******/ var module = __webpack_module_cache__[moduleId] = { 84046/******/ id: moduleId, 84047/******/ loaded: false, 84048/******/ exports: {} 84049/******/ }; 84050/******/ 84051/******/ // Execute the module function 84052/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); 84053/******/ 84054/******/ // Flag the module as loaded 84055/******/ module.loaded = true; 84056/******/ 84057/******/ // Return the exports of the module 84058/******/ return module.exports; 84059/******/ } 84060/******/ 84061/************************************************************************/ 84062/******/ /* webpack/runtime/amd define */ 84063/******/ (() => { 84064/******/ __webpack_require__.amdD = function () { 84065/******/ throw new Error('define cannot be used indirect'); 84066/******/ }; 84067/******/ })(); 84068/******/ 84069/******/ /* webpack/runtime/define property getters */ 84070/******/ (() => { 84071/******/ // define getter functions for harmony exports 84072/******/ __webpack_require__.d = (exports, definition) => { 84073/******/ for(var key in definition) { 84074/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 84075/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 84076/******/ } 84077/******/ } 84078/******/ }; 84079/******/ })(); 84080/******/ 84081/******/ /* webpack/runtime/global */ 84082/******/ (() => { 84083/******/ __webpack_require__.g = (function() { 84084/******/ if (typeof globalThis === 'object') return globalThis; 84085/******/ try { 84086/******/ return this || new Function('return this')(); 84087/******/ } catch (e) { 84088/******/ if (typeof window === 'object') return window; 84089/******/ } 84090/******/ })(); 84091/******/ })(); 84092/******/ 84093/******/ /* webpack/runtime/hasOwnProperty shorthand */ 84094/******/ (() => { 84095/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 84096/******/ })(); 84097/******/ 84098/******/ /* webpack/runtime/make namespace object */ 84099/******/ (() => { 84100/******/ // define __esModule on exports 84101/******/ __webpack_require__.r = (exports) => { 84102/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 84103/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 84104/******/ } 84105/******/ Object.defineProperty(exports, '__esModule', { value: true }); 84106/******/ }; 84107/******/ })(); 84108/******/ 84109/******/ /* webpack/runtime/node module decorator */ 84110/******/ (() => { 84111/******/ __webpack_require__.nmd = (module) => { 84112/******/ module.paths = []; 84113/******/ if (!module.children) module.children = []; 84114/******/ return module; 84115/******/ }; 84116/******/ })(); 84117/******/ 84118/************************************************************************/ 84119var __webpack_exports__ = {}; 84120// This entry need to be wrapped in an IIFE because it need to be in strict mode. 84121(() => { 84122"use strict"; 84123/*!***********************************************!*\ 84124 !*** ./resources/js/web/products/ipixCart.js ***! 84125 \***********************************************/ 84126 84127 84128__webpack_require__(/*! ../../layouts/web */ "./resources/js/layouts/web.js"); 84129$(document).ready(function () { 84130 $('.product-page').owlCarousel({ 84131 loop: true, 84132 margin: 20, 84133 items: 1, 84134 dots: false, 84135 autoplay: true, 84136 nav: true, 84137 navText: ["<i class='fa-solid fa-arrow-left'></i>", "<i class='fa-solid fa-arrow-right'></i>"], 84138 responsiveClass: true, 84139 responsive: { 84140 0: { 84141 items: 1 84142 } 84143 } 84144 }); 84145 $('.product-features').owlCarousel({ 84146 loop: true, 84147 margin: 20, 84148 items: 1, 84149 dots: false, 84150 autoplay: true, 84151 responsiveClass: true, 84152 responsive: { 84153 0: { 84154 items: 1 84155 }, 84156 600: { 84157 items: 3 84158 }, 84159 800: { 84160 items: 4 84161 }, 84162 1000: { 84163 items: 5 84164 } 84165 } 84166 }); 84167 $('.owl-cart').owlCarousel({ 84168 loop: true, 84169 margin: 20, 84170 items: 1, 84171 dots: false, 84172 autoplay: false, 84173 responsiveClass: true 84174 }); 84175 $('.banner-slider').owlCarousel({ 84176 loop: true, 84177 margin: 20, 84178 items: 1, 84179 dots: false, 84180 autoplay: true, 84181 responsiveClass: true, 84182 responsive: { 84183 0: { 84184 items: 1 84185 }, 84186 600: { 84187 items: 3 84188 }, 84189 800: { 84190 items: 4 84191 }, 84192 1000: { 84193 items: 5 84194 }, 84195 1300: { 84196 items: 6 84197 } 84198 } 84199 }); 84200 var accordionButtonAdmin = $('.admin-button'); 84201 var accordionButtonVendor = $('.vendor-button'); 84202 var adminCarousel = $('#adminCarousel'); 84203 var vendorCarousel = $('#vendorCarousel'); 84204 accordionButtonAdmin.on('click', function () { 84205 var buttonIndex = $(this).closest('.accordion-item').index(); 84206 adminCarousel.trigger('to.owl.carousel', buttonIndex); 84207 // vendorCarousel.trigger('to.owl.carousel', buttonIndex); 84208 }); 84209 accordionButtonVendor.on('click', function () { 84210 var buttonIndex = $(this).closest('.accordion-item').index(); 84211 84212 // adminCarousel.trigger('to.owl.carousel', buttonIndex); 84213 vendorCarousel.trigger('to.owl.carousel', buttonIndex); 84214 }); 84215 var slideDwellTime = 4000; 84216 var transitionTime = slideDwellTime / 1000; 84217 injectStyles('.progress-bar {transition: width ' + transitionTime + 's ease-in }'); 84218 $(".card").eq(0).find(".progress-bar").addClass("animate-bar"); 84219}); 84220function injectStyles(rule) { 84221 var div = $("<div />", { 84222 html: '­<style>' + rule + '</style>' 84223 }).appendTo("body"); 84224} 84225}
84225)(); 84226 84227/******/ })() 84228; 84229//# sourceMappingURL=ipixCart.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.