vendor: 3,686 bytes, lines 1-88
1/******/ (function(modules) { // webpackBootstrap 2/******/ // The module cache 3/******/ var installedModules = {}; 4/******/ 5/******/ // The require function 6/******/ function __webpack_require__(moduleId) { 7/******/ 8/******/ // Check if module is in cache 9/******/ if(installedModules[moduleId]) { 10/******/ return installedModules[moduleId].exports; 11/******/ } 12/******/ // Create a new module (and put it into the cache) 13/******/ var module = installedModules[moduleId] = { 14/******/ i: moduleId, 15/******/ l: false, 16/******/ exports: {} 17/******/ }; 18/******/ 19/******/ // Execute the module function 20/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 21/******/ 22/******/ // Flag the module as loaded 23/******/ module.l = true; 24/******/ 25/******/ // Return the exports of the module 26/******/ return module.exports; 27/******/ } 28/******/ 29/******/ 30/******/ // expose the modules object (__webpack_modules__) 31/******/ __webpack_require__.m = modules; 32/******/ 33/******/ // expose the module cache 34/******/ __webpack_require__.c = installedModules; 35/******/ 36/******/ // define getter function for harmony exports 37/******/ __webpack_require__.d = function(exports, name, getter) { 38/******/ if(!__webpack_require__.o(exports, name)) { 39/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 40/******/ } 41/******/ }; 42/******/ 43/******/ // define __esModule on exports 44/******/ __webpack_require__.r = function(exports) { 45/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 46/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 47/******/ } 48/******/ Object.defineProperty(exports, '__esModule', { value: true }); 49/******/ }; 50/******/ 51/******/ // create a fake namespace object 52/******/ // mode & 1: value is a module id, require it 53/******/ // mode & 2: merge all properties of value into the ns 54/******/ // mode & 4: return value when already ns object 55/******/ // mode & 8|1: behave like require 56/******/ __webpack_require__.t = function(value, mode) { 57/******/ if(mode & 1) value = __webpack_require__(value); 58/******/ if(mode & 8) return value; 59/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 60/******/ var ns = Object.create(null); 61/******/ __webpack_require__.r(ns); 62/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 63/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 64/******/ return ns; 65/******/ }; 66/******/ 67/******/ // getDefaultExport function for compatibility with non-harmony modules 68/******/ __webpack_require__.n = function(module) { 69/******/ var getter = module && module.__esModule ? 70/******/ function getDefault() { return module['default']; } : 71/******/ function getModuleExports() { return module; }; 72/******/ __webpack_require__.d(getter, 'a', getter); 73/******/ return getter; 74/******/ }; 75/******/ 76/******/ // Object.prototype.hasOwnProperty.call 77/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 78/******/ 79/******/ // __webpack_public_path__ 80/******/ __webpack_require__.p = ""; 81/******/ 82/******/ 83/******/ // Load entry module and return exports 84/******/ return __webpack_require__(__webpack_require__.s = "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/main.js"); 85/******/ }) 86/************************************************************************/ 87/******/ ({ 88
89/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/backstage/backstage.js": 90/*!******************************************************************************************************************!*\ 91 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/backstage/backstage.js ***! 92 \******************************************************************************************************************/ 93/*! no static exports found */ 94/***/ (function(module, exports) { 95 96module.exports = function () { 97 $('body').on('click', '.backstage-add-premium-to-cart', function (e) { 98 e.preventDefault(); // Serialize form, grab AJAX URL 99 100 var url = window.CachedData.premiumSignupSubmit; // Make AJAX call 101 102 $.ajax({ 103 url: url, 104 success: function success(data) { 105 if (data.successMessage) { 106 successModal(data.redirectUrl); 107 } else if (data.success) { 108 var _window$CachedData; 109 110 if ((_window$CachedData = window.CachedData) !== null && _window$CachedData !== void 0 && _window$CachedData.flyoutFlyoutCreateAccountUrl && data.redirectUrl.startsWith(window.CachedData.flyoutLoginShowUrl)) { 111 $('#backstage-modal').modal('hide'); 112 $('body').trigger('initFlyout', { 113 url: window.CachedData.flyoutFlyoutCreateAccountUrl 114 }); 115 } else { 116 window.location = data.redirectUrl; 117 } 118 } else { 119 console.log(data.errors); 120 } 121 } 122 }); 123 }); 124}; 125 126function successModal(redirectUrl) { 127 $('#backstage-modal .success-message').removeClass('d-none'); 128 $('#backstage-modal .survey-content').html(''); 129 $('#backstage-modal').on('hidden.bs.modal', function () { 130 if (redirectUrl) { 131 window.location = redirectUrl; 132 } 133 }); 134} 135 136/***/ }), 137
138/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/antavo.js": 139/*!****************************************************************************************************************!*\ 140 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/antavo.js ***! 141 \****************************************************************************************************************/ 142/*! no static exports found */ 143/***/ (function(module, exports, __webpack_require__) { 144 145"use strict"; 146 147/** 148 * Antavo loyalty client-side wiring. 149 * 150 * The vendor cartridge ships its client logic as full reimplementations of the 151 * base cart/checkout files; importing those wholesale would shadow this 152 * project's customizations, so this module extracts only the Antavo-specific 153 * behavior as processInclude-d setup methods. 154 * 155 * Anything that participates in the checkout state machine lives in 156 * js/checkout.js instead â each webpack entry is a separate bundle with its own 157 * module cache, so wraps made here would be invisible to the state machine. 158 */ 159 160function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 161 162var toast = __webpack_require__(/*! core/components/toast */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/toast.js"); 163/** 164 * PayPal and Affirm cannot combine with the LOYALTY_PAY tender: hide their 165 * billing tabs and panes while points are applied. Elements the server already 166 * suppressed at render are absent from the DOM, so restoring is a no-op there. 167 * @param {boolean} suppressed - true while points are applied 168 */ 169 170 171function setAlternateTendersSuppressed(suppressed) { 172 var $tabs = $('.payment-options .nav-item[data-method-id="PayPal"], .payment-options .nav-item[data-method-id="Affirm"]'); 173 $tabs.toggleClass('d-none', suppressed); 174 $('#paypal-content, #affirm-payment-content').toggleClass('d-none', suppressed); // If the suppressed tab was active, fall back to the credit card tab so the 175 // active pane (which supplies dwfrm_billing_paymentMethod) stays consistent. 176 177 if (suppressed && $tabs.find('.nav-link.active').length) { 178 $('.payment-options .nav-item[data-method-id="CREDIT_CARD"] .nav-link').trigger('click'); 179 } 180} 181/** 182 * Format a points value as the currency amount it redeems for. Preview-only: 183 * applied-state money always comes back server-formatted. 184 * @param {jQuery} $form - the .loyalty-form element 185 * @param {number} points - points to convert 186 * @returns {string} formatted currency amount 187 */ 188 189 190function formatPointsValue($form, points) { 191 var burnPoints = parseFloat($form.attr('data-burn-points')); 192 var burnAmount = parseFloat($form.attr('data-burn-amount')); 193 var amount = burnPoints > 0 ? points * (burnAmount / burnPoints) : 0; 194 return new Intl.NumberFormat(undefined, { 195 style: 'currency', 196 currency: $form.attr('data-currency-code') 197 }).format(amount); 198} 199/** 200 * Recompute data-redeem-all-points, the redemption ceiling in points: 201 * min(spendable balance, points needed to cover the redeemable amount). The 202 * server renders the initial value, but the basket can move afterwards 203 * (shipping method, tax, promotions), so recompute on every broadcast. The 204 * basis is the merchandise subtotal, not the gross total, so points never 205 * stretch over tax and shipping; LOYALTY_PAY is a tender and does not reduce 206 * it, so the ceiling is the same whether or not points are applied. 207 * @param {jQuery} $form - the .loyalty-form element 208 * @param {number} redeemableAmount - order totals.antavoRedeemableAmount 209 */ 210 211 212function syncRedeemAll($form, redeemableAmount) { 213 var burnPoints = parseFloat($form.attr('data-burn-points')); 214 var burnAmount = parseFloat($form.attr('data-burn-amount')); 215 var spendable = parseInt($form.attr('data-spendable'), 10) || 0; 216
217 if (!(redeemableAmount > 0) || !(burnAmount > 0) || !(burnPoints > 0)) { 218 return; 219 } 220 221 var requiredPoints = Math.ceil(redeemableAmount / burnAmount * burnPoints); 222 $form.attr('data-redeem-all-points', Math.min(spendable, requiredPoints)); 223} 224/** 225 * Read the manual input once and derive every figure the control needs. The 226 * posted value is clamped to the spendable balance because the route errors â 227 * not clamps â past it; the redemption ceiling bounds the preview. 228 * @param {jQuery} $form - the .loyalty-form element 229 * @returns {Object} typed points, spendable balance, postPoints 230 * (balance-clamped value safe to POST), previewPoints (fully clamped value 231 * to preview), and the overBalance / overCeiling flags 232 */ 233 234 235function getInputState($form) { 236 var typed = parseInt($form.find('.antavo-points-input').val(), 10) || 0; 237 var spendable = parseInt($form.attr('data-spendable'), 10) || 0; 238 var redeemAllPoints = parseInt($form.attr('data-redeem-all-points'), 10) || 0; 239 return { 240 typed: typed, 241 spendable: spendable, 242 postPoints: Math.min(typed, spendable), 243 previewPoints: Math.min(typed, redeemAllPoints), 244 overBalance: typed > spendable, 245 overCeiling: typed > redeemAllPoints 246 }; 247} 248/** 249 * Sync the default body with what's typed: enable Apply only for a usable 250 * amount, show the live discount preview, and explain whichever cap the typed 251 * amount ran into. One note element carries both messages; the balance note 252 * wins because it is the more fundamental limit. 253 * @param {jQuery} $form - the .loyalty-form element 254 */ 255 256 257function updatePreview($form) { 258 var state = getInputState($form); 259 var hasInput = $form.find('.antavo-points-input').val() !== ''; 260 var applied = $('.antavo-payment-form').attr('data-applied') === 'true'; 261 $form.find('.antavo-redeem-btn').prop('disabled', state.previewPoints < 1); 262 var showPreview = hasInput && state.previewPoints >= 1 && !applied; 263 $form.find('.antavo-redeem-preview').toggleClass('d-none', !showPreview).text(showPreview ? $form.attr('data-msg-discount').replace('{0}', formatPointsValue($form, state.previewPoints)) : ''); 264 var note = ''; 265 266 if (state.overBalance) { 267 note = $form.attr('data-msg-clamp').replace('{0}', state.spendable).replace('{1}', state.previewPoints); 268 } else if (state.overCeiling && state.previewPoints >= 1) { 269 note = $form.attr('data-msg-cap').replace('{0}', state.previewPoints); 270 } 271 272 $form.find('.antavo-redeem-clamp-note').toggleClass('d-none', note === '').text(note); 273} 274/** 275 * Flip the control between its default (input) and applied (success bar) 276 * bodies. data-applied is the single state flag the rest of the module keys off. 277 * @param {boolean} applied - true to show the applied body 278 */ 279 280 281function setRedemptionBody(applied) { 282 $('.antavo-payment-form').attr('data-applied', applied ? 'true' : 'false'); 283 $('.antavo-redeem-default').toggleClass('d-none', applied); 284 $('.antavo-redeem-applied').toggleClass('d-none', !applied); 285} 286/** 287 * Write an apply result into the applied body. 288 * @param {jQuery} $form - the .loyalty-form element 289 * @param {number} applied - points the server actually redeemed 290 * @param {string} discount - server-formatted discount amount 291 */ 292 293 294function fillAppliedState($form, applied, discount) { 295 $form.find('.antavo-applied-points-value').text(applied); 296 $form.find('.antavo-applied-discount').text($form.attr('data-msg-discount').replace('{0}', discount)); 297} 298/** 299 * Reset the loyalty-owned checkout UI to the no-redemption state. This module 300 * toggles only what no checkout listener manages; everything else (totals, 301 * payment regions, billing fields, summaries) belongs to the 302 * checkout:updateCheckoutView listeners, so both callers pair this with that 303 * broadcast. 304 */ 305 306 307function resetRedemptionUI() { 308 var $form = $('.loyalty-form'); 309 setRedemptionBody(false); 310 $form.find('.antavo-points-input').val(''); 311 $form.find('.antavo-redeem-btn').prop('disabled', true); 312 $form.find('.antavo-redeem-preview, .antavo-redeem-clamp-note').addClass('d-none').text(''); 313 $form.find('.antavo-applied-points-value, .antavo-applied-discount').text(''); 314 $('.order-total-summary .antavo-item').addClass('d-none'); // Revert the loyalty-owned pieces of the full-coverage UX. 315 316 $('.payment-options-block').removeClass('d-none'); 317 $('.antavo-submit-payment').addClass('d-none').attr('data-loyalty-enabled', 'false'); 318 $('.submit-payment').removeClass('d-none'); 319 setAlternateTendersSuppressed(false); 320} 321/** 322 * POST the loyalty form to Antavo-SubmitPayment with an explicit points value. 323 * The form is serialized so the CSRF token rides along; the points field is 324 * overridden because Apply Maximum posts the full spendable balance regardless 325 * of what the input holds. 326 * @param {jQuery} $form - the .loyalty-form element 327 * @param {number} points - points to redeem 328 */ 329 330 331function applyPoints($form, points) { 332 $.spinner().start(); 333 var pointsFieldName = $form.find('.antavo-points-input').attr('name'); 334 var params = $form.serializeArray().map(function (param) { 335 return param.name === pointsFieldName ? { 336 name: param.name, 337 value: points 338 } : param; 339 }); 340 $.ajax({ 341 url: $form.attr('action'), 342 type: 'POST', 343 dataType: 'json', 344 data: $.param(params), 345 success: function success(data) { 346 $.spinner().stop();
347 $form.find('.invalid-feedback').hide().text(''); 348 349 if (!data.resultObj || data.resultObj.error) { 350 $form.find('.invalid-feedback').text(data.resultObj && data.resultObj.message || '').show(); 351 return; 352 } 353 354 var applied = data.resultObj.totalPointsSpent; 355 var discount = data.order && data.order.totals ? data.order.totals.burnedAntavoPoints : ''; 356 setAlternateTendersSuppressed(true); // The route may have applied fewer points than posted; the ceiling 357 // self-heals via loyaltyRedeemAllSync off the broadcast below. 358 359 fillAppliedState($form, applied, discount); 360 setRedemptionBody(true); 361 $form.find('.antavo-redeem-preview, .antavo-redeem-clamp-note').addClass('d-none').text(''); // Loyalty-owned summary row (no checkout listener manages it). 362 363 $('.order-total-summary .antavo-item .antavo-total').text('-' + discount); 364 $('.order-total-summary .antavo-item').removeClass('d-none'); // Full coverage: no payment is required, so hide the payment 365 // options and swap the submit buttons. The swapped button's click 366 // flows through the state machine into the handlePaymentStage wrap 367 // (js/checkout.js), which branches on data-loyalty-enabled and 368 // submits paymentMethod=LOYALTY_PAY. 369 370 if (data.resultObj.antavoPointsEnough) { 371 $('.payment-options-block').addClass('d-none'); 372 $('.submit-payment').addClass('d-none'); 373 $('.antavo-submit-payment').removeClass('d-none'); // data-loyalty-enabled renders server-side; keep it in sync 374 // with the live loyalty state. 375 376 $('.antavo-submit-payment').attr('data-loyalty-enabled', 'true'); 377 } else { 378 $('.payment-options-block').removeClass('d-none'); 379 $('.antavo-submit-payment').addClass('d-none').attr('data-loyalty-enabled', 'false'); 380 $('.submit-payment').removeClass('d-none'); 381 } // Applying points is a basket mutation like any other: broadcast 382 // the canonical resync event so the checkout listeners (totals, 383 // zero-due payment regions, billing info) update themselves â 384 // hand-patching subsets of that UI here drifts out of sync. 385 386 387 $('body').trigger('checkout:updateCheckoutView', { 388 order: data.order, 389 customer: data.customer 390 }); 391 }, 392 error: function error() { 393 $.spinner().stop(); 394 } 395 }); 396} 397/** 398 * POST to Antavo-RemovePoints and reset the control and checkout UI to the 399 * no-redemption state. 400 * @param {jQuery} $form - the .loyalty-form element 401 */ 402 403 404function removePoints($form) { 405 $.spinner().start(); 406 $.ajax({ 407 url: $form.attr('data-remove-url'), 408 type: 'POST', 409 dataType: 'json', 410 data: {}, 411 success: function success(data) { 412 $.spinner().stop(); 413 $form.find('.invalid-feedback').hide().text(''); 414 415 if (data.error) { 416 $form.find('.invalid-feedback').text(data.message || '').show(); 417 return; 418 } 419 420 resetRedemptionUI(); // Broadcast the canonical resync event (see the applyPoints note); 421 // without it the zero-due listeners never hear about the removal 422 // and the billing-address fields stay hidden. 423 424 $('body').trigger('checkout:updateCheckoutView', { 425 order: data.order, 426 customer: data.customer 427 }); 428 }, 429 error: function error() { 430 $.spinner().stop(); 431 } 432 }); 433} 434 435module.exports = { 436 /** 437 * Refresh the cart-page earn-points value on every cart:update, which 438 * fires with the fresh cart model after every cart mutation. Only the 439 * number inside the server-rendered totals row is updated, leaving the 440 * enrollment-aware message untouched. 441 */ 442 cartPoints: function cartPoints() { 443 $('body').on('cart:update', function (e, data) { 444 if (!data || !data.antavoRewardPoints) return; 445 var points = data.antavoRewardPoints.points; 446 if (points === undefined || points === null) return; // The localized unit rides in data-points-unit so no copy is 447 // hard-coded here. 448 449 var $value = $('.antavo-cart-points .antavo-points-value'); 450 $value.text(points + ' ' + ($value.attr('data-points-unit') || '')); 451 }); 452 }, 453 454 /** 455 * Explicit Rewards Points redemption. Typing only updates the preview;
456 * nothing commits until Apply Points (the form's submit, so Enter works 457 * too) or Apply Maximum is clicked. The posted value is clamped to the 458 * member's balance client-side because the route errors â not clamps â 459 * past it; the route caps to the merchandise subtotal, which is why Apply 460 * Maximum can safely post the whole balance. 461 */ 462 loyaltySubmit: function loyaltySubmit() { 463 $(document).on('input', '.loyalty-form .antavo-points-input', function () { 464 // Whole positive numbers only â strip anything parseInt could 465 // misread ("-", ".", "e", pasted text). 466 var digits = this.value.replace(/\D/g, ''); 467 468 if (this.value !== digits) { 469 this.value = digits; 470 } 471 472 updatePreview($(this).closest('.loyalty-form')); 473 }); 474 $(document).on('submit', '.loyalty-form', function (e) { 475 e.preventDefault(); 476 var $form = $(this); 477 var state = getInputState($form); // Enter submits the form even while the Apply button is disabled. 478 479 if (state.postPoints >= 1) { 480 applyPoints($form, state.postPoints); 481 } 482 }); 483 $(document).on('click', '.antavo-redeem-all-btn', function () { 484 var $form = $(this).closest('.loyalty-form'); 485 applyPoints($form, parseInt($form.attr('data-spendable'), 10) || 0); 486 }); 487 }, 488 489 /** 490 * The applied body's Remove action (adjusting an amount is remove + redeem 491 * again). The legacy .remove-points-spent selector stays wired in case 492 * another surface still renders it. 493 */ 494 loyaltyRemove: function loyaltyRemove() { 495 $(document).on('click', '.antavo-remove-points, .remove-points-spent', function (e) { 496 e.preventDefault(); 497 removePoints($('.loyalty-form')); 498 }); 499 }, 500 501 /** 502 * The server strips the LOYALTY_PAY instrument whenever a basket change 503 * alters the total (e.g. a shipping edit changes taxes). If a broadcast 504 * order model no longer carries LOYALTY_PAY while the control still shows 505 * an applied state, reset it and restore the payment UI. 506 */ 507 loyaltyBasketSync: function loyaltyBasketSync() { 508 $('body').on('checkout:updateCheckoutView', function (e, data) { 509 var $control = $('.antavo-payment-form'); 510 511 if (!$control.length || $control.attr('data-applied') !== 'true' || !data || !data.order || !data.order.billing || !data.order.billing.payment) { 512 return; 513 } 514 515 var instruments = data.order.billing.payment.selectedPaymentInstruments || []; 516 var hasLoyaltyPay = instruments.some(function (instrument) { 517 return instrument.paymentMethod === 'LOYALTY_PAY'; 518 }); 519 520 if (!hasLoyaltyPay) { 521 resetRedemptionUI(); 522 } 523 }); 524 }, 525 526 /** 527 * The redemption ceiling moves when the basket moves (shipping method, 528 * tax, promotions, cart edits). Recompute it from every broadcast order 529 * model so the control never lets more points on than the route accepts. 530 */ 531 loyaltyRedeemAllSync: function loyaltyRedeemAllSync() { 532 $('body').on('checkout:updateCheckoutView', function (e, data) { 533 var $form = $('.loyalty-form'); 534 535 if (!$form.length || !data || !data.order || !data.order.totals) { 536 return; 537 } 538 539 syncRedeemAll($form, data.order.totals.antavoRedeemableAmount); 540 }); 541 }, 542 543 /** 544 * The checkout points-to-earn card is server-rendered once, but its earn 545 * basis is net of applied points, so the number has to fall as points go 546 * on and recover when they come off; totals.antavoEarnPoints carries the 547 * recomputed value on every broadcast. A null or zero value hides the whole 548 * card rather than showing "0 Points", matching the server render. Only 549 * the value span is rewritten so the enrollment-aware message and tooltip 550 * are left alone. 551 */ 552 checkoutPointsSync: function checkoutPointsSync() { 553 $('body').on('checkout:updateCheckoutView', function (e, data) { 554 var $card = $('.antavo-checkout-points'); 555 556 if (!$card.length || !data || !data.order || !data.order.totals) { 557 return; 558 } 559 560 var points = data.order.totals.antavoEarnPoints; 561 var earns = points !== undefined && points !== null && points > 0; 562 $card.toggleClass('d-none', !earns); 563 564 if (earns) { 565 var $value = $card.find('.antavo-points-value'); 566 $value.text(points + ' ' + ($value.attr('data-points-unit') || '')); 567 } 568 }); 569 }, 570 571 /** 572 * Hide the whole Payment card while applied points cover the entire 573 * basket â no payment is collected in that state. The server renders the 574 * initial state; this keys the same rule off every broadcast. Digital-only 575 * orders are exempt: they skip the shipping address, so the billing block 576 * is the only source of the member's name and phone. The has-LOYALTY_PAY 577 * condition keeps the gift-certificate zero-due flow untouched. 578 */ 579 fullCoveragePaymentSection: function fullCoveragePaymentSection() { 580 $('body').on('checkout:updateCheckoutView', function (e, data) { 581 var $card = $('.card.payment-form'); 582 583 if (!$card.length || $card.attr('data-digital-only') === 'true' || !data || !data.order || !data.order.totals || !data.order.billing || !data.order.billing.payment) { 584 return; 585 } 586 587 var instruments = data.order.billing.payment.selectedPaymentInstruments || []; 588 var hasLoyaltyPay = instruments.some(function (instrument) { 589 return instrument.paymentMethod === 'LOYALTY_PAY'; 590 }); 591 var isFullCoverage = hasLoyaltyPay && !data.order.totals.grandTotalLessGiftCertificatePaymentInstrumentsValue;
592 $card.toggleClass('d-none', isFullCoverage); 593 }); 594 }, 595 596 /** 597 * Modular "Join Backstage" enrollment button: delegated handler for any 598 * element carrying [data-component-loyalty-enroll] (Page Designer button 599 * or hand-authored content asset). The route returns a redirectUrl for 600 * both outcomes: an authenticated customer is enrolled, a guest is sent 601 * to registration to complete joining from there. 602 * 603 * Authored content links straight to the route instead of carrying the 604 * attribute, so whoever edits the page sees a real target in the link 605 * dialog rather than a bare "#". Those links are adopted here. The route 606 * is POST-only, so a prefetch or a no-JS click cannot enroll anyone. 607 */ 608 loyaltyEnroll: function loyaltyEnroll() { 609 $('a[href*="Account-OptIn"]').attr('data-component-loyalty-enroll', ''); 610 $('body').on('click', '[data-component-loyalty-enroll]', function (e) { 611 e.preventDefault(); 612 var $btn = $(this); 613 var url = $btn.attr('data-url') || window.CachedData && window.CachedData.loyaltyEnrollUrl; // Often an authored link rather than a button, where the disabled 614 // property does nothing, so in-flight state is tracked by hand. 615 616 if (!url || $btn.data('loyaltyEnrollBusy')) return; 617 $.spinner().start(); 618 $btn.data('loyaltyEnrollBusy', true).prop('disabled', true); 619 $.ajax({ 620 url: url, 621 method: 'POST', 622 dataType: 'json', 623 // Enrollment lands back on the page the button was clicked 624 // from, so the content around it re-renders for a member. 625 data: { 626 returnUrl: $btn.attr('data-return-url') || window.location.pathname + window.location.search 627 }, 628 success: function success(data) { 629 $.spinner().stop(); // Guest with the login flyout enabled: open it in place 630 // instead of navigating to the full login page. 631 632 if (data && data.requiresLogin && data.flyoutUrl) { 633 $btn.data('loyaltyEnrollBusy', false).prop('disabled', false); 634 $('body').trigger('initFlyout', { 635 url: data.flyoutUrl 636 }); 637 return; 638 } 639 640 if (data && data.redirectUrl) { 641 window.location.href = data.redirectUrl; 642 return; 643 } 644 645 $btn.data('loyaltyEnrollBusy', false).prop('disabled', false); 646 }, 647 error: function error() { 648 $.spinner().stop(); 649 $btn.data('loyaltyEnrollBusy', false).prop('disabled', false); 650 toast.methods.show('danger', 'We could not complete your request. Please try again.'); 651 } 652 }); 653 }); 654 }, 655 656 /** 657 * Modular "Leave Backstage" opt-out button. The button lives on cached 658 * content pages, so user state is checked fresh on click: the GET returns 659 * the opt-out modal HTML for an enrolled member, or a JSON message for a 660 * guest / signed-in non-member. 661 */ 662 loyaltyUnenroll: function loyaltyUnenroll() { 663 $('body').on('click', '[data-component-loyalty-unenroll]', function (e) { 664 e.preventDefault(); 665 var $btn = $(this); 666 var url = $btn.attr('data-url'); 667 if (!url) return; 668 $.spinner().start(); 669 $.ajax({ 670 url: url, 671 method: 'GET', 672 success: function success(data) { 673 $.spinner().stop(); // JSON means guest or signed-in non-member: info toast only. 674 675 if (_typeof(data) === 'object') { 676 if (data && data.message) { 677 toast.methods.show('info', data.message); 678 } 679 680 return; 681 } // HTML means the opt-out modal: inject into a body container and open it. 682 683 684 var $container = $('#loyalty-optout-modal-container'); 685 686 if (!$container.length) {
687 $container = $('<div id="loyalty-optout-modal-container"></div>').appendTo('body'); 688 } 689 690 $container.html(data); // Klaviyo's promo bar sits at z-index 90000, above Bootstrap's 691 // default backdrop. Tag this modal's backdrop so _integrations.scss 692 // can lift it above the Klaviyo layer; Bootstrap appends the 693 // backdrop node on show, so it can only be reached once shown. 694 695 $('#optOutModal').one('shown.bs.modal', function () { 696 $('.modal-backdrop').addClass('optout-modal-backdrop'); 697 }).modal('show'); 698 }, 699 error: function error() { 700 $.spinner().stop(); 701 toast.methods.show('danger', 'We could not complete your request. Please try again.'); 702 } 703 }); 704 }); 705 $('body').on('submit', 'form.optout', function (e) { 706 e.preventDefault(); 707 var $form = $(this); 708 var $feedback = $form.find('.invalid-feedback'); 709 $feedback.hide().text(''); 710 $.spinner().start(); 711 $.ajax({ 712 url: $form.attr('action'), 713 method: 'POST', 714 dataType: 'json', 715 data: $form.serialize(), 716 success: function success(data) { 717 $.spinner().stop(); 718 719 if (data && data.success && data.redirectUrl) { 720 window.location.href = data.redirectUrl; 721 return; 722 } 723 724 $feedback.text(data && data.message || 'We could not complete your request. Please try again.').show(); 725 }, 726 error: function error() { 727 $.spinner().stop(); 728 $feedback.text('We could not complete your request. Please try again.').show(); 729 } 730 }); 731 }); 732 }, 733 734 /** 735 * Load more of the activity history in place. The rows arrive as 736 * server-rendered HTML so no date or points formatting is reimplemented in 737 * the browser. 738 * 739 * data-offset is a raw event cursor, not a page number: the feed filters 740 * out events belonging to the second points account, so a page of rows can 741 * consume any number of raw events. The server reports where it stopped 742 * and that value is written back onto the button for the next click. The 743 * control removes itself when the feed reports no more. 744 */ 745 loyaltyActivityLoadMore: function loyaltyActivityLoadMore() { 746 $('body').on('click', '[data-component-loyalty-activity-more]', function (e) { 747 e.preventDefault(); 748 var $btn = $(this); 749 var url = $btn.attr('data-url'); 750 if (!url) return; 751 var $rows = $btn.closest('.backstage-activity').find('[data-loyalty-activity-rows]'); 752 if (!$rows.length) return; 753 $.spinner().start(); 754 $btn.prop('disabled', true); 755 $.ajax({ 756 url: url, 757 method: 'GET', 758 dataType: 'json', 759 data: { 760 offset: $btn.attr('data-offset') || 0, 761 pageSize: $btn.attr('data-page-size') || 5, 762 // Echoed back so every page hides the same event types as 763 // the first one. 764 excludedActions: $btn.attr('data-excluded-actions') || '' 765 }, 766 success: function success(data) { 767 $.spinner().stop(); 768 769 if (!data || data.error) { 770 // Leave what is on screen and stop offering more rather 771 // than showing an error over a readable list. 772 $btn.remove(); 773 return; 774 } 775 776 if (data.html) { 777 $rows.append(data.html); 778 } 779 780 $btn.attr('data-offset', data.nextOffset); 781 782 if (data.hasMore) { 783 $btn.prop('disabled', false); 784 } else { 785 $btn.remove(); 786 } 787 }, 788 error: function error() { 789 $.spinner().stop(); 790 $btn.remove(); 791 } 792 }); 793 }); 794 } 795}; 796 797/***/ }), 798
799/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/clientSideValidation.js": 800/*!******************************************************************************************************************************!*\ 801 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/clientSideValidation.js ***! 802 \******************************************************************************************************************************/ 803/*! no static exports found */ 804/***/ (function(module, exports, __webpack_require__) { 805 806"use strict"; 807 // Copied from core to wrap password logic in a function & trigger on login:reinit event (for login flyout - account creation screen) 808 809var base = __webpack_require__(/*! base/components/clientSideValidation */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/clientSideValidation.js"); 810/** 811 * Validate whole form. Requires `this` to be set to form object 812 * @param {jQuery.event} event - Event to be canceled if form is invalid. 813 * @returns {boolean} - Flag to indicate if form is valid 814 */ 815 816 817base.validateForm = function (event) { 818 var valid = true, 819 $this = $(this);
819 // Add check for contact us form recaptcha since it is using v2 820 821 if (document.querySelector('form#contact-us')) { 822 document.querySelector("form#contact-us").addEventListener("submit", function (event) { 823 var response = grecaptcha.getResponse(); 824 825 if (response.length === 0) { 826 // reCAPTCHA is not checked, form will not submit 827 document.querySelector('.recaptcha-container').scrollIntoView({ 828 behavior: "smooth" 829 }); 830 $('.recaptcha-container .invalid-feedback').addClass('d-block'); 831 event.preventDefault(); 832 return false; 833 } else { 834 // reCAPTCHA is checked, form will submit 835 $('.recaptcha-container .invalid-feedback').removeClass('d-block'); 836 } 837 }); 838 } 839 840 if (this.checkValidity && !this.checkValidity()) { 841 valid = false; 842 843 if (event) { 844 event.preventDefault(); 845 event.stopPropagation(); 846 event.stopImmediatePropagation(); 847 } 848 849 if (!this.validity.valid) { 850 if ($this.is('input, select')) { 851 // handle where 'this' is a form field 852 $this.trigger('invalid', this.validity); 853 } else { 854 $this.find('input, select').each(function () { 855 // handle where 'this' is a form 856 $this.trigger('invalid', this.validity); 857 }); 858 } 859 } 860 } 861 862 return valid; 863}; 864/** 865 * Password Messaging Helper Functions 866 */ 867 868 869function initPasswordMessaging() { 870 $('form:has(input[type^=password])').each(function (i, form) { 871 var $form = $(form), 872 $passwordFields = $form.find('input:password'), 873 $passwordInput = $form.find('.password-validate'), 874 $passwordHelper = $form.find('.password-validation-helper li'), 875 //multiple 876 $showPassword = $form.find("#show-password"); // change the border of the input field to alert the user of acceptance|error 877 878 $passwordInput.on('validatepassword', function (e) { 879 if ($passwordHelper.hasClass("error") || $passwordHelper.hasClass("empty")) { 880 $passwordInput.removeClass("is-valid").addClass("is-invalid"); 881 $passwordHelper.not(".valid").addClass("error").removeClass("empty"); 882 } else { 883 $passwordInput.addClass("is-valid").removeClass("is-invalid"); 884 } 885 }); 886 $passwordInput.on("keyup", function (e) { 887 var $this = $(this); 888 var value = $this.val(); // first check if the form is in error state, then re-eval 889 890 if ($this.hasClass("is-invalid")) { 891 // leave the "error" states until valid 892 $passwordHelper.trigger('checkrequirement', [value, 'valid empty']); 893 $this.trigger('validatepassword'); 894 } else { 895 $passwordHelper.trigger('checkrequirement', [value, 'error valid empty']); 896 } 897 898 ; 899 }); // change input decoration when user leaves, attach event only once 900 901 $passwordInput.one("change", function (e) { 902 var $this = $(this); 903 $this.on("blur", function (e) { 904 $this.trigger('validatepassword'); 905 }); 906 }); 907 /** 908 * Display validation messages and highlight 909 * each one of the requirements for the password 910 * @param {string} clearClasses - which classes to clear 911 */ 912 913 $passwordHelper.on('checkrequirement', function (e, value, clearClasses) { 914 var $this = $(this).removeClass(clearClasses).removeClass('valid error empty'); 915 var regex = new RegExp($this.data('val-regex')); 916 917 if (regex.test(value)) { 918 $this.addClass("valid"); 919 } else if (!regex.test(value) && $passwordInput.focus) { 920 $this.addClass("empty error"); 921 } else { 922 $this.addClass("error"); 923 } 924 }); //show password checkbox 925 926 $showPassword.on('click', function (event) { 927 var $checkbox = $(event.target); 928 $passwordFields.each(function (index, element) { 929 $(element).attr('type', $checkbox.prop('checked') ? 'text' : 'password'); 930 }); 931 }); 932 }); 933} 934 935initPasswordMessaging(); 936$('body').on('login:reinit', function () { 937 return initPasswordMessaging(); 938}); 939 940function validateFormFix(form, event) { 941 base.validateForm.call(form, event || null); 942} 943 944base.functions.validateForm = validateFormFix; 945module.exports = base; 946 947/***/ }), 948
949/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/consentTracking.js": 950/*!*************************************************************************************************************************!*\ 951 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/consentTracking.js ***! 952 \*************************************************************************************************************************/ 953/*! no static exports found */ 954/***/ (function(module, exports, __webpack_require__) { 955 956"use strict"; 957 958 959var base = __webpack_require__(/*! core/components/consentTracking */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/consentTracking.js"); 960 961base.getString = function (urlAccept, textAccept) { 962 return "<div class=\"consent-drawer\" id=\"consent-tracking\" role=\"dialog\">\n <div class=\"consent-text-wrapper\"></div>\n <div class=\"consent-button-wrapper ml-auto\">\n <button class=\"affirm btn btn-primary\" data-url=\"".concat(urlAccept, "\" autofocus>\n ").concat(textAccept, "\n </button>\n </div>\n </div>"); 963}; 964 965module.exports = base; 966 967/***/ }), 968
969/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/flyout.js": 970/*!****************************************************************************************************************!*\ 971 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/flyout.js ***! 972 \****************************************************************************************************************/ 973/*! no static exports found */ 974/***/ (function(module, exports, __webpack_require__) { 975 976"use strict"; 977 978 979function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 980 981var createErrorNotification = __webpack_require__(/*! base/components/errorNotification */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/errorNotification.js"); 982 983var formValidation = __webpack_require__(/*! base/components/formValidation */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/formValidation.js"); 984 985var recaptcha = __webpack_require__(/*! core/components/recaptcha */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/recaptcha.js"); 986 987function setupLoginLinkOverride() { 988 var _window$CachedData; 989 990 if (!((_window$CachedData = window.CachedData) !== null && _window$CachedData !== void 0 && _window$CachedData.flyoutLoginShowUrl)) { 991 return; 992 } 993 994 var flyoutLoginShowUrl = window.CachedData.flyoutLoginShowUrl; 995 var flyoutFlyoutLoginUrl = window.CachedData.flyoutFlyoutLoginUrl; 996 var flyoutFlyoutCreateAccountUrl = window.CachedData.flyoutFlyoutCreateAccountUrl; // Find all <a> elements where href starts with the value of loginShowUrl 997 998 var selector = 'a[href^="' + flyoutLoginShowUrl + '"]'; 999 $(selector).each(function () { 1000 var $this = $(this); 1001 1002 if (!$this.data('url')) { 1003 if ($this.attr('href').indexOf('action=register') > -1) { 1004 $this.attr('data-url', flyoutFlyoutCreateAccountUrl); 1005 } else { 1006 $this.attr('data-url', flyoutFlyoutLoginUrl); 1007 } 1008 } 1009 }).attr('data-target', '#flyout-login').addClass('flyout-login-toggler'); 1010} 1011 1012function setupRecaptcha() { 1013 var _window$CachedData2; 1014 1015 // If the recaptchaSiteKey is missing, then recaptcha is disabled 1016 if (!((_window$CachedData2 = window.CachedData) !== null && _window$CachedData2 !== void 0 && _window$CachedData2.recaptchaSiteKey)) { 1017 return; 1018 } // Check if the script is already added to avoid duplicate loading 1019 1020 1021 if (document.querySelector('script[src*="recaptcha/api.js"]')) { 1022 console.log('Recaptcha script already loaded.'); 1023 return; 1024 } 1025 1026 var recaptchaScript = document.createElement('script'); 1027 recaptchaScript.src = "https://www.google.com/recaptcha/api.js?render=".concat(window.CachedData.recaptchaSiteKey); 1028 recaptchaScript.async = true; 1029 recaptchaScript.defer = true; 1030 document.head.appendChild(recaptchaScript); 1031} 1032 1033module.exports = { 1034 setupFlyout: function setupFlyout() { 1035 console.log('Flyout setup initialized.'); 1036 var body = $('body'); 1037 var flyoutSelector = '.flyout'; 1038 var backdropClass = 'flyout-backdrop'; 1039 var openClass = 'flyout-open'; 1040 var showClass = 'show'; // Function to hide the flyout 1041 1042 var hideFlyout = function hideFlyout() { 1043 var $flyout = $(this); 1044 var $backdrop = $('.' + backdropClass); 1045 body.removeClass(openClass); 1046 $flyout.removeClass(showClass); 1047 $backdrop.removeClass(showClass).one('transitionend', function () { 1048 $(this).remove(); 1049 }); 1050 }; // Function to show the flyout 1051 1052 1053 var showFlyout = function showFlyout() { 1054 var $flyout = $(this); 1055 var $backdrop = $('<div>', { 1056 "class": backdropClass 1057 }); 1058 body.append($backdrop); 1059 body.addClass(openClass); // Force reflow to enable CSS transitions 1060 1061 $backdrop[0].offsetWidth; 1062 $backdrop.addClass(showClass); // Event listener to hide flyout when backdrop is clicked 1063 1064 $backdrop.on('click', function () { 1065 hideFlyout.call($flyout); 1066 }); // Show the flyout 1067 1068 $flyout.addClass(showClass); 1069 }; // Function to toggle the flyout 1070 1071 1072 var toggleFlyout = function toggleFlyout() { 1073 var $flyout = $(this); 1074 1075 if ($flyout.hasClass(showClass)) { 1076 hideFlyout.call($flyout); 1077 } else { 1078 showFlyout.call($flyout); 1079 } 1080 }; // jQuery plugin for flyout actions 1081 1082 1083 $.fn.flyout = function (action) { 1084 return this.each(function () { 1085 var $this = $(this); 1086 1087 switch (action) { 1088 case 'show': 1089 showFlyout.call($this); 1090 break; 1091 1092 case 'hide': 1093 hideFlyout.call($this); 1094 break; 1095 1096 case 'toggle': 1097 toggleFlyout.call($this); 1098 break; 1099 1100 default: 1101 console.warn("Unknown flyout action: ".concat(action)); 1102 } 1103 }); 1104 }; 1105 1106 $(document).on('click', '[data-toggle="flyout"]', function (event) { 1107 event.preventDefault(); 1108 var target = $(this).data('target'); 1109 var $target = $(target); 1110 $target.flyout('show'); 1111 }); // Set up login link overrides 1112 1113 setupLoginLinkOverride(); // Event delegation for toggling flyout 1114 1115 var handleLoginFlyout = function handleLoginFlyout(event, data) { 1116 event.preventDefault(); 1117 var targetSelector = $(this).data('target') || '#flyout-login'; 1118 var $flyout = $(targetSelector); 1119 var $flyoutContent = $flyout.find('.flyout-content'); // Clear any existing content in the flyout 1120 1121 $flyoutContent.empty(); // Toggle flyout visibility 1122 1123 $flyout.flyout('toggle'); 1124 $flyout.spinner().start(); // Load login form via AJAX 1125 1126 var url = $(this).data('url') || data.url; 1127 var loginMessage = $(this).data('login-message'); // Create a URL object 1128 1129 var urlObj = new URL(url, window.location.origin); // Check if this is a link override that has a redirect query string parameter... 1130 1131 var href = $(this).attr('href');
1132 var hrefUrlObj = new URL(href, window.location.origin); 1133 var redirectParam = hrefUrlObj.searchParams.get('redirect'); 1134 1135 if (redirectParam) { 1136 // Append the 'redirect' query parameter to urlObj 1137 urlObj.searchParams.append('redirect', redirectParam); 1138 } 1139 1140 if (loginMessage) { 1141 // Append the 'loginMessage' query parameter 1142 urlObj.searchParams.append('loginMessage', loginMessage); 1143 } 1144 1145 $.ajax({ 1146 url: urlObj.toString(), 1147 method: 'GET', 1148 success: function success(data) { 1149 if (_typeof(data) === 'object') { 1150 if (data.redirectUrl) { 1151 window.location = data.redirectUrl; 1152 } 1153 } else { 1154 $flyout.spinner().stop(); 1155 $flyoutContent.html(data); 1156 body.trigger('login:reinit'); 1157 setupRecaptcha(); 1158 } 1159 }, 1160 error: function error(xhr, status, _error) { 1161 console.error("Failed to load login form: ".concat(_error)); 1162 $flyout.spinner().stop(); 1163 createErrorNotification($('.error-messaging'), 'Failed to load login form. Please try again.'); 1164 } 1165 }); 1166 }; 1167 1168 $(document).on('click', '.flyout-login-toggler', handleLoginFlyout); 1169 $('body').on('initFlyout', handleLoginFlyout); 1170 1171 if (window.showLoginFlyout) { 1172 $('body').trigger('initFlyout', { 1173 url: window.showLoginFlyout 1174 }); 1175 } // Event delegation for creating an account 1176 1177 1178 $(document).on('click', '.flyout-create-account', function (event) { 1179 event.preventDefault(); 1180 var $flyout = $('.flyout'); 1181 var $flyoutContent = $flyout.find('.flyout-content'); 1182 $flyout.spinner().start(); 1183 var url = $(this).is('button') ? $(this).data('url') : $(this).find('a').attr('href'); 1184 $.ajax({ 1185 url: url, 1186 method: 'GET', 1187 success: function success(data) { 1188 $flyout.spinner().stop(); 1189 $flyoutContent.html(data); 1190 $('body').trigger('login:reinit'); 1191 }, 1192 error: function error(xhr, status, _error2) { 1193 console.error("Failed to load create account form: ".concat(_error2)); 1194 $flyout.spinner().stop(); 1195 createErrorNotification($('.error-messaging'), 'Failed to load create account form. Please try again.'); 1196 } 1197 }); 1198 }); // Event delegation for dismissing flyout via close button 1199 1200 $(document).on('click', '.flyout-toggler-dismiss', function (event) { 1201 event.preventDefault(); 1202 var $flyout = $(this).closest(flyoutSelector); 1203 $flyout.flyout('hide'); 1204 }); // Event delegation for forgot password 1205 1206 $(document).on('click', '.flyout-forgot-password', function (event) { 1207 event.preventDefault(); 1208 var $flyout = $('.flyout'); 1209 var $flyoutContent = $flyout.find('.flyout-content'); 1210 $flyout.spinner().start(); 1211 var url = $(this).find('a').attr('href'); 1212 $.ajax({ 1213 url: url, 1214 method: 'GET', 1215 success: function success(data) { 1216 $flyout.spinner().stop(); 1217 $flyoutContent.html(data); 1218 body.trigger('password-reset:reinit'); 1219 }, 1220 error: function error(xhr, status, _error3) { 1221 console.error("Failed to load forgot password form: ".concat(_error3)); 1222 $flyout.spinner().stop(); 1223 createErrorNotification($('.error-messaging'), 'Failed to load forgot password form. Please try again.'); 1224 } 1225 }); 1226 }); // Submit forgot password form 1227 1228 $(document).on('submit', "".concat(flyoutSelector, " .reset-password-form"), function (event) { 1229 event.preventDefault(); 1230 $('.flyout-forgot-password-email-doesnt-exist').addClass('d-none'); 1231 var $form = $(this); 1232 var actionUrl = $form.attr('action'); 1233 var formData = $form.serialize(); 1234 var $flyout = $form.closest(flyoutSelector); 1235 var $spinner = $flyout.spinner(); 1236 $spinner.start(); 1237 recaptcha.check(event, { 1238 method: 'POST', 1239 url: actionUrl, 1240 data: formData, 1241 dataType: 'json', 1242 success: function success(response) { 1243 $spinner.stop(); 1244 1245 if (response.showEmailDoesntExistError) { 1246 $('.flyout-forgot-password-email-doesnt-exist').removeClass('d-none'); 1247 $('.reset-password-form [type="submit"]').addClass('disabled'); 1248 $('.reset-password-form #reset-password-email').one('input', function () { 1249 $('.flyout-forgot-password-email-doesnt-exist').addClass('d-none'); 1250 $('.reset-password-form [type="submit"]').removeClass('disabled'); 1251 }); 1252 } else { 1253 // Handle success (e.g., display confirmation message) 1254 console.log('Password reset successful:', response); 1255 $flyout.find('.flyout-login-page').addClass('d-none'); 1256 $flyout.find('.flyout-success-email').text($form.find('#reset-password-email').val()); 1257 $flyout.find('.flyout-forgot-password-success').removeClass('d-none'); 1258 } 1259 }, 1260 error: function error(xhr, status, _error4) { 1261 $spinner.stop(); 1262 console.error("Password reset failed: ".concat(_error4)); 1263 createErrorNotification($('.error-messaging'), 'Password reset failed. Please try again.'); 1264 } 1265 }); 1266 }); // Submit create account form 1267 1268 $(document).on('submit', 'form.registration', function (event) { 1269 event.preventDefault(); 1270 var $form = $(this); 1271 var actionUrl = $form.attr('action'); 1272 var formData = $form.serialize(); 1273 var $flyout = $('.flyout'); 1274 var $spinner = $flyout.spinner(); 1275 $spinner.start();
1275 // Trigger pre-validation event 1276 1277 $form.trigger('login:register', event); // Perform reCAPTCHA verification 1278 1279 recaptcha.check(event, { 1280 url: actionUrl, 1281 type: 'post', 1282 dataType: 'json', 1283 data: formData, 1284 success: function success(data) { 1285 $spinner.stop(); 1286 1287 if (!data.success) { 1288 // Trigger error event and perform form validation 1289 $form.trigger('login:register:error', data); 1290 formValidation($form, data); 1291 } else { 1292 // Trigger success event and redirect 1293 $form.trigger('login:register:success', data); 1294 window.location.href = data.redirectUrl; 1295 } 1296 }, 1297 error: function error(err) { 1298 $spinner.stop(); 1299 1300 if (err.responseJSON && err.responseJSON.redirectUrl) { 1301 window.location.href = err.responseJSON.redirectUrl; 1302 } else if (err.responseJSON && err.responseJSON.errorMessage) { 1303 createErrorNotification($('.error-messaging'), err.responseJSON.errorMessage); 1304 } else { 1305 createErrorNotification($('.error-messaging'), 'An unexpected error occurred. Please try again.'); 1306 } 1307 } 1308 }); 1309 }); // Event delegation for back button 1310 1311 $(document).on('click', '.flyout-back-btn, .js-flyout-back-btn', function (event) { 1312 event.preventDefault(); 1313 var $flyout = $('.flyout'); 1314 var $flyoutContent = $flyout.find('.flyout-content'); 1315 var $backBtn = $(this); 1316 var url = $backBtn.attr('href'); 1317 $flyout.spinner().start(); 1318 $.ajax({ 1319 method: 'GET', 1320 url: url, 1321 success: function success(response) { 1322 $flyout.spinner().stop(); 1323 $flyoutContent.empty().html(response); 1324 $('body').trigger('login:reinit'); 1325 }, 1326 error: function error(xhr, status, _error5) { 1327 $flyout.spinner().stop(); 1328 console.error("Back button action failed: ".concat(_error5)); 1329 createErrorNotification($('.error-messaging'), 'Failed to load the previous content. Please try again.'); 1330 } 1331 }); 1332 }); 1333 } 1334}; 1335 1336/***/ }), 1337
1338/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/helpers.js": 1339/*!*****************************************************************************************************************!*\ 1340 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/helpers.js ***! 1341 \*****************************************************************************************************************/ 1342/*! no static exports found */ 1343/***/ (function(module, exports) { 1344 1345function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 1346 1347/** 1348 * 1349 * @param {Object} $select A jQuery Select object that corresponds to a country select 1350 * @param {string} context 1351 * 1352 * stateSelectObject should look like = 1353 * object = { 1354 * 'US': '[selector for the state select]', 1355 * 'CA': '[selector for the state select]' 1356 * }; 1357 */ 1358function handleCountrySelect($select, context) { 1359 // fetch the data 1360 var stateSelectData = $select.data('state-selects'); 1361 1362 if (stateSelectData) { 1363 var stateSelectObject = _typeof(stateSelectData) === 'object' ? stateSelectData : JSON.parse(stateSelectData); 1364 $select.on('change', function () { 1365 var selectValue = $(this).val(); 1366 1367 if (typeof stateSelectObject[selectValue] === 'string') { 1368 var stateSelect = $(stateSelectObject[selectValue]); // hide all the ones but selected one 1369 1370 Object.keys(stateSelectObject).forEach(function (key) { 1371 if (key !== selectValue) { 1372 var otherSelect = $(stateSelectObject[key]); 1373 1374 var _$parent = otherSelect.parent(); 1375 1376 if (!_$parent.hasClass('d-none')) { 1377 _$parent.addClass('d-none'); // move it outside the form 1378 1379 1380 _$parent.detach().appendTo('.hidden-formfields'); 1381 } 1382 } 1383 }); 1384 var $parent = stateSelect.parent(); 1385 1386 if ($parent.hasClass('d-none')) { 1387 var selector = getStateTarget({ 1388 context: context, 1389 stateSelect: stateSelect 1390 }); 1391 $parent.removeClass('d-none'); 1392 $parent.detach().appendTo(selector); 1393 } 1394 } else { 1395 // this means a country code was selected that doesn't have a corresponding state/province select, so hide all of them 1396 // with exception to the first value - so confirm that the selectValue is not blank / empty 1397 Object.keys(stateSelectObject).forEach(function (key) { 1398 var otherSelect = $(stateSelectObject[key]); 1399 var $parent = otherSelect.parent(); 1400 1401 if (!$parent.hasClass('d-none')) { 1402 $parent.addClass('d-none'); // move it outside the form 1403 1404 $parent.detach().appendTo('.hidden-formfields'); 1405 } 1406 }); 1407 } 1408 }); // look through the state select data for the country Select and move the hidden ones 1409 1410 Object.keys(stateSelectObject).forEach(function (key) { 1411 var stateSelect = $(stateSelectObject[key]); 1412 var $parent = stateSelect.parent(); 1413 1414 if ($parent.hasClass('d-none')) { 1415 $parent.detach().appendTo('.hidden-formfields'); 1416 } 1417 }); 1418 } 1419} 1420/** 1421 * Find the target selector provided a context 1422 * 1423 * @param data 1424 * @returns {string} 1425 */ 1426 1427 1428function getStateTarget(data) { 1429 switch (data.context) { 1430 case 'warranty': 1431 var targetSelector = '.dealer-block .states'; 1432 1433 if (data.stateSelect.hasClass('ownerState')) { 1434 targetSelector = '.owner-address-block .states'; 1435 } 1436 1437 return targetSelector; 1438 1439 default: 1440 return '.states'; 1441 } 1442} 1443 1444module.exports = { 1445 methods: { 1446 handleCountrySelect: handleCountrySelect 1447 } 1448}; 1449 1450/***/ }), 1451
1452/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/menu.js": 1453/*!**************************************************************************************************************!*\ 1454 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/menu.js ***! 1455 \**************************************************************************************************************/ 1456/*! no static exports found */ 1457/***/ (function(module, exports, __webpack_require__) { 1458 1459var base = __webpack_require__(/*! core/components/menu */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/menu.js"); 1460 1461var SiteConstants = __webpack_require__(/*! constants/SiteConstants */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/scripts/constants/SiteConstants.js"); 1462 1463var ogDropdownMenu = base.dropdownMenu; 1464var ogClearSelection = base.clearSelection; 1465var ogToggleDrawer = base.toggleDrawer; 1466 1467function toggleDrawer(status) { 1468 ogToggleDrawer.call(this, status); 1469 1470 if (status !== 'open') { 1471 $('header .main-menu .navbar-nav .primary-category').detach(); 1472 } 1473} 1474 1475function dropdownMenu() { 1476 ogDropdownMenu.apply(this, arguments); // Custom dropdown behaviors for top menu 1477 1478 var $dropdownMenu = $('.custom-dropdown:not(.disabled) [data-toggle="dropdown"]'); 1479 $dropdownMenu.on('click', function (event) { 1480 event.stopPropagation(); 1481 1482 if (window.isMobile()) { 1483 // Drawer behavior on mobile 1484 event.preventDefault(); 1485 var $dropdownLink = $(event.target); 1486 var $dropdown = $dropdownLink.closest('.custom-dropdown'); 1487 var $primaryCategory = $dropdown.closest('.dropdown-menu').find('.dropdown-item.primary-category'); 1488 1489 if ($primaryCategory.length === 1) { 1490 $primaryCategory.clone().insertAfter($dropdown.children('.dropdown-menu').find('.nav-menu')); 1491 } else if ($dropdown.hasClass('megamenu')) { 1492 var $li = $('<li class="dropdown-item primary-category d-lg-none" role="button"></li>'); 1493 var link = $dropdownLink.clone().removeClass('dropdown-toggle').removeAttr('data-toggle').removeAttr('aria-expanded').attr('aria-haspopup', 'false'); 1494 $li.append(link); 1495 var $target = $dropdown.children('.dropdown-menu'); 1496 1497 if ($target.find('.megamenu-asset-only:last-child').length === 0) { 1498 $li.insertAfter($target.find('.nav-menu')); 1499 } 1500 } 1501 } 1502 }); 1503} 1504 1505function clearSelection(element) { 1506 var $currentPane = $(element).closest('.custom-dropdown.show'); 1507 setTimeout(function () { 1508 $currentPane.find('.primary-category').detach(); 1509 }, SiteConstants.TransitionSpeed); 1510 ogClearSelection.call(this, element); 1511} 1512 1513base.dropdownMenu = dropdownMenu; 1514base.clearSelection = clearSelection; 1515base.toggleDrawer = toggleDrawer; 1516module.exports = base; 1517 1518/***/ }), 1519
1520/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/slider.js": 1521/*!****************************************************************************************************************!*\ 1522 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/slider.js ***! 1523 \****************************************************************************************************************/ 1524/*! no static exports found */ 1525/***/ (function(module, exports, __webpack_require__) { 1526 1527"use strict"; 1528 1529 1530var base = __webpack_require__(/*! core/components/slider */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/slider.js"); 1531 1532function getUpdatedSlideItems(images, assets, videos, isThumbnail) { 1533 var zoom = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; 1534 var slideItems = []; 1535 images['large'].forEach(function (image) { 1536 var $slideElement = $('<div></div>').attr('class', 'slide'); 1537 var $imageElement = $('<img/>'); 1538 1539 if (!isThumbnail) { 1540 $slideElement.attr('data-zoom-image', images['hi-res'].length ? images['hi-res'][image.index].url : images['large'][image.index].url); 1541 } 1542 1543 $imageElement.attr({ 1544 'src': image.url, 1545 'alt': image.alt + ' image number ' + (parseInt(image.index) + 1).toFixed(0), 1546 'class': 'd-block img-fluid', 1547 'itemprop': 'image' 1548 }); 1549 $slideElement.append($imageElement); 1550 slideItems.push($slideElement[0]); 1551 }); // base.getPDPGalleryAssetSlides(slideItems, assets, isThumbnail); 1552 1553 if (videos) { 1554 getVideoSlides(slideItems, videos, isThumbnail); 1555 } 1556 1557 if (!zoom) { 1558 slideItems.forEach(function (slide) { 1559 $(slide).addClass('no-zoom'); 1560 }); 1561 } 1562 1563 return slideItems; 1564} 1565 1566function getVideoSlides(slideItems, videos, isThumbnail) { 1567 if (isThumbnail) { 1568 videos.thumbnails.forEach(function (thumbnail, idx) { 1569 if (videos.URLs[idx]) { 1570 var $slideElement = $('<div></div>').attr('class', 'slide video-container'); 1571 var $imageElement = $('<img/>'); 1572 var $videoButton = $('<span class="video-thumbnail-button"></span>'); 1573 $imageElement.attr({ 1574 'src': thumbnail, 1575 'alt': 'Image number ' + (parseInt(thumbnail.index) + 1).toFixed(0), 1576 'class': 'd-block img-fluid', 1577 'itemprop': 'image' 1578 }); 1579 $slideElement.append($imageElement); 1580 $slideElement.append($videoButton); 1581 slideItems.push($slideElement[0]); 1582 } 1583 }); 1584 } else { 1585 videos.URLs.forEach(function (videoURL, idx) { 1586 if (videos.thumbnails[idx]) { 1587 var $slideElement = $('<div></div>').attr('class', 'slide no-zoom'); 1588 var videoElement = $(videoURL);
1589 var videoContainer = $('<div></div>').attr('class', 'video-container aspect-ratio-16-9'); 1590 var videoPlayer = $('<div></div>').attr('class', 'video-player'); 1591 videoPlayer.append(videoElement); 1592 videoContainer.append(videoPlayer); 1593 $slideElement.append(videoContainer); 1594 slideItems.push($slideElement[0]); 1595 } 1596 }); 1597 } 1598 1599 return slideItems; 1600} 1601 1602base.getUpdatedSlideItems = getUpdatedSlideItems; 1603module.exports = base; 1604 1605/***/ }), 1606
1607/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/timer.js": 1608/*!***************************************************************************************************************!*\ 1609 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/timer.js ***! 1610 \***************************************************************************************************************/ 1611/*! no static exports found */ 1612/***/ (function(module, exports, __webpack_require__) { 1613 1614"use strict"; 1615 1616 1617function pad2(n) { 1618 if (n <= 9) { 1619 n = "0" + n; 1620 } 1621 1622 return n; 1623} 1624 1625function startTimer() { 1626 var reservationContainer = document.querySelector('.reservation-copy'); 1627 var countdownTimerElement = document.querySelector('.countdown-timer'); 1628 1629 if (reservationContainer && countdownTimerElement) { 1630 var setCartExpiration = function setCartExpiration() { 1631 var now = new Date().getTime(); 1632 var distance = atcTime - now; 1633 var hours = pad2(Math.floor(distance % (1000 * 60 * 60 * 24) / (1000 * 60 * 60))); 1634 var minutes = pad2(Math.floor(distance % (1000 * 60 * 60) / (1000 * 60))); 1635 var seconds = pad2(Math.floor(distance % (1000 * 60) / 1000)); 1636 var countdownDisplay = hours + ':' + minutes + ":" + seconds.toString(); 1637 1638 if (distance <= 0) { 1639 clearInterval(interval); 1640 countdownTimerElement.innerHTML = '00:00:00'; 1641 $('#timeout-modal').modal('show'); 1642 var action = document.querySelector('.page').dataset.action; 1643 var clearBasketURL = document.querySelector('.reservation-copy').dataset.clearbasketurl; 1644 $.ajax({ 1645 url: clearBasketURL 1646 }); 1647 $('#timeout-modal').on('hidden.bs.modal', function (e) { 1648 if (action == 'Cart-Show' || action == 'Checkout-Begin') { 1649 var redirectURL = document.querySelector('.reservation-copy').dataset.redirecturl; 1650 window.location.replace(redirectURL); 1651 } else { 1652 $('.minicart').trigger('count:update', { 1653 quantityTotal: 0, 1654 minicartCountOfItems: 'Cart 0 Items' 1655 }); 1656 $('.notification-banner').remove(); 1657 } 1658 }); 1659 } else { 1660 countdownTimerElement.innerHTML = countdownDisplay; 1661 } 1662 }; 1663 1664 ; 1665 var atcTime = document.querySelector('.reservation-copy').dataset.expiration; 1666 var interval = null; 1667 interval = setInterval(setCartExpiration, 1000); 1668 setCartExpiration(); 1669 } 1670 1671 ; 1672} 1673 1674startTimer(); 1675$('body').on('product:afterAddToCart', function (event, data) { 1676 if ($('.reservation-copy').length == 0) { 1677 setTimeout(function () { 1678 $('.notification-banner').hide().empty().append(data.cartExpirationHTML).fadeIn(1000); 1679 startTimer(); 1680 }, 5000); 1681 } 1682}); 1683$('body').on('cart:update', function (event, data) { 1684 if (!data.hasReservation) { 1685 $('.notification-banner .reservation-copy').remove(); 1686 } 1687}); 1688 1689/***/ }), 1690
1691/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/warranty.js": 1692/*!******************************************************************************************************************!*\ 1693 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/warranty.js ***! 1694 \******************************************************************************************************************/ 1695/*! no static exports found */ 1696/***/ (function(module, exports, __webpack_require__) { 1697 1698var formValidation = __webpack_require__(/*! base/components/formValidation */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/formValidation.js"); 1699 1700var handleCountrySelect = __webpack_require__(/*! ./helpers */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/helpers.js").methods.handleCountrySelect; 1701 1702function init() { 1703 var countrySelects = $('select[data-state-selects]'); 1704 countrySelects.each(function () { 1705 handleCountrySelect($(this), 'warranty'); 1706 }); 1707} 1708 1709function submitForm() { 1710 $('form.warranty-form').submit(function (e) { 1711 e.preventDefault(); 1712 var $form = $(this); 1713 var $formAlert = $form.siblings('.alert'); 1714 $formAlert.addClass('d-none'); 1715 $formAlert.removeClass('alert-danger'); 1716 $formAlert.removeClass('alert-success'); 1717 $form.spinner().start(); 1718 $.ajax({ 1719 url: $form.attr('action'), 1720 type: 'post', 1721 dataType: 'json', 1722 data: $form.serialize() 1723 }).then(function (data) { 1724 if (!data.success) { 1725 $formAlert.find('p').html(data.message); 1726 $formAlert.addClass('alert-danger').removeClass('d-none'); 1727 formValidation($form, data); 1728 } else { 1729 $formAlert.find('p').html(data.message); 1730 $formAlert.addClass('alert-success').removeClass('d-none'); 1731 $form.find('.card, .form-actions').addClass('d-none'); 1732 $form.find('.reload-action').removeClass('d-none'); 1733 } 1734 1735 $form.spinner().stop(); 1736 })["catch"](function (err) { 1737 if (err.responseJSON.redirectUrl) { 1738 window.location.href = err.responseJSON.redirectUrl; 1739 } else { 1740 $form.spinner().stop(); 1741 } 1742 }); 1743 }); 1744} 1745 1746module.exports = { 1747 init: init, 1748 submitForm: submitForm 1749}; 1750 1751/***/ }), 1752
1753/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/yotpo.js": 1754/*!***************************************************************************************************************!*\ 1755 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/yotpo.js ***! 1756 \***************************************************************************************************************/ 1757/*! no static exports found */ 1758/***/ (function(module, exports, __webpack_require__) { 1759 1760function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } 1761 1762function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } 1763 1764var moment = __webpack_require__(/*! moment */ "../autobahn_client_core/node_modules/moment/moment.js"); 1765 1766var Cookies = __webpack_require__(/*! js-cookie */ "../autobahn_client_core/node_modules/js-cookie/dist/js.cookie.js"); 1767 1768function setVoteCount($el, diff) { 1769 var voteCount = parseInt($el.text()); 1770 var newCount = voteCount + diff; 1771 if (newCount < 0) newCount = 0; 1772 $el.text(newCount); 1773} 1774 1775module.exports = { 1776 methods: { 1777 initYotpoPDP: function () { 1778 var _initYotpoPDP = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { 1779 var $container, url, response, $response, $reviews; 1780 return regeneratorRuntime.wrap(function _callee$(_context) { 1781 while (1) { 1782 switch (_context.prev = _context.next) { 1783 case 0: 1784 $container = $('.yotpo-reviews-container'); 1785 1786 if ($container.length) { 1787 _context.next = 4; 1788 break; 1789 } 1790 1791 $('.product-number-rating').detach(); 1792 return _context.abrupt("return"); 1793 1794 case 4: 1795 url = $container.data('url'); 1796 _context.next = 7; 1797 return $.ajax({ 1798 url: url, 1799 dataType: 'html' 1800 }); 1801 1802 case 7: 1803 response = _context.sent; 1804 $response = $(response); // because sfcc dev boxes inject comments 1805 1806 if ($response.length > 1) { 1807 $response = $($response.get(0)); 1808 } 1809 1810 $reviews = $response.find('.yotpo-review'); // remove the reviews container if we have none to show 1811 1812 if (!($reviews.length === 0)) { 1813 _context.next = 17; 1814 break; 1815 } 1816 1817 $('.yotpo-flyout-launcher').addClass('d-none'); 1818 $container.detach(); 1819 return _context.abrupt("return"); 1820 1821 case 17: 1822 $('.yotpo-flyout-launcher').removeClass('d-none'); 1823 1824 case 18: 1825 // set the human-readable timestamp when the review was posted 1826 $reviews.each(function () { 1827 var $when = $(this).find('.when'); 1828 $when.text(moment($when.text()).fromNow()).addClass('dateset'); 1829 }); // insert the reviews onto the page 1830 1831 $container.empty(); 1832 $container.append($response); // make sure the stars at the top will scroll to reviews when clicked 1833 1834 $('body').on('click', '.star-clickable', function () { 1835 $('html, body').animate({ 1836 scrollTop: $container.offset().top 1837 }, 1000); 1838 }); // register vote behavior on each review 1839 1840 $response.find('.yotpo-review').each(function () { 1841 var $review = $(this); 1842 var $voteBtns = $review.find('.js-vote'); 1843 var reviewId = $review.data('reviewId'); 1844 $voteBtns.click(function (e) { 1845 e.preventDefault(); // cookie tracks which direction they have voted (if at all) 1846 1847 var voted = Cookies.get("voted-".concat(reviewId)); 1848 var $btn = $(this); // the current vote action direction 1849 1850 var voteDirection = $btn.data('voteDirection'); 1851 var url = "https://api.yotpo.com/reviews/".concat(reviewId, "/vote/").concat(voteDirection);
1852 var undo = Promise.resolve(); // remove previous vote 1853 1854 if (voted) { 1855 var _$btn = $voteBtns.filter("a[data-vote-direction=\"".concat(voted, "\"]")); 1856 1857 undo = $.ajax({ 1858 url: "".concat(url, "/true"), 1859 method: 'post' 1860 }); 1861 setVoteCount(_$btn.find('.js-vote-count'), -1); 1862 } // clear cookie if no current votes cast 1863 1864 1865 if (voted === voteDirection) { 1866 Cookies.remove("voted-".concat(reviewId)); 1867 } else { 1868 // increment the vote count 1869 setVoteCount($btn.find('.js-vote-count'), 1); // track the vote direction with a cookie 1870 1871 Cookies.set("voted-".concat(reviewId), voteDirection); // cast the vote 1872 1873 undo.then(function () { 1874 $.ajax({ 1875 url: url, 1876 method: 'post' 1877 }); 1878 }); 1879 } 1880 }); 1881 }); // event handler for load more button 1882 1883 $('body').on('click', '.yotpo-reviews .loadmore .btn', function () { 1884 $.spinner().start(); 1885 var loadMoreURL = $(this).data('url'); 1886 $.ajax({ 1887 url: loadMoreURL, 1888 dataType: 'json', 1889 success: function success(data) { 1890 $('.loadmore').replaceWith(data.renderedTemplate); 1891 $('.yotpo-review').each(function () { 1892 var $when = $(this).find('.when:not(.dateset)'); 1893 $when.text(moment($when.text()).fromNow()).addClass('dateset'); 1894 }); 1895 } 1896 }).done(function () { 1897 $.spinner().stop(); 1898 }); 1899 }); 1900 1901 case 24: 1902 case "end": 1903 return _context.stop(); 1904 } 1905 } 1906 }, _callee); 1907 })); 1908 1909 function initYotpoPDP() { 1910 return _initYotpoPDP.apply(this, arguments); 1911 } 1912 1913 return initYotpoPDP; 1914 }() 1915 } 1916}; 1917 1918/***/ }), 1919
1920/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/_loyaltyActivities.js": 1921/*!*************************************************************************************************************************!*\ 1922 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/_loyaltyActivities.js ***! 1923 \*************************************************************************************************************************/ 1924/*! no static exports found */ 1925/***/ (function(module, exports, __webpack_require__) { 1926 1927"use strict"; 1928 1929/** 1930 * Antavo activity grid, client wiring. 1931 * 1932 * Loaded globally from main.js, NOT by the grid template: the grid's Page 1933 * Designer shell is page-cached and a cached component's render script does 1934 * not re-execute, so an `assets.addJs` inside it never reaches the browser; 1935 * an AJAX-rendered region includes no scripts at all. Loading here makes the 1936 * flows work wherever the grid is dropped. The card styles ride along in 1937 * global.css for the same reason. 1938 * 1939 * The grid itself is server-rendered per member via remote include; the 1940 * browser only handles the in-card flows (opening a survey or quiz, 1941 * answering, swapping in the next server-rendered fragment). 1942 * 1943 * The underscore prefix is mandatory: the builder emits every non-underscore 1944 * file under client/default/js/ as its own standalone bundle, so without it 1945 * this module ships twice. 1946 */ 1947 1948var quiz = __webpack_require__(/*! ./activities/_quiz */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/activities/_quiz.js"); 1949 1950var survey = __webpack_require__(/*! ./activities/_survey */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/activities/_survey.js"); 1951 1952module.exports = { 1953 /** 1954 * Delegated from `body`, so a grid that arrives later in an AJAX-rendered 1955 * region is covered without re-initializing. 1956 */ 1957 loyaltyActivityFlows: function loyaltyActivityFlows() { 1958 survey.init(); 1959 quiz.init(); 1960 } 1961}; 1962 1963/***/ }), 1964
1965/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/activities/_flowAjax.js": 1966/*!***************************************************************************************************************************!*\ 1967 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/activities/_flowAjax.js ***! 1968 \***************************************************************************************************************************/ 1969/*! no static exports found */ 1970/***/ (function(module, exports, __webpack_require__) { 1971 1972"use strict"; 1973 1974/** 1975 * Shared plumbing for the in-card activity flows: the CSRF field, the 1976 * post-and-swap round trip, and the state animation. The underscore prefix 1977 * keeps the builder from emitting this shared module as its own standalone 1978 * bundle. 1979 */ 1980 1981var toast = __webpack_require__(/*! core/components/toast */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/toast.js"); 1982/** 1983 * How long the outgoing fragment is given to fade before it is replaced, 1984 * and how long the card then takes to resize to the incoming one. Both must 1985 * stay in step with the --leaving and --resizing rules in 1986 * scss/components/_loyaltyActivities.scss. 1987 */ 1988 1989 1990var LEAVE_DURATION = 140; 1991var RESIZE_DURATION = 220; 1992/** 1993 * @returns {boolean} - True when the visitor asked for reduced motion 1994 */ 1995 1996function prefersReducedMotion() { 1997 return !!(window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches); 1998} 1999/** 2000 * Replaces a card's contents, fading the outgoing fragment and gliding the 2001 * card between the two heights â swapping in a single frame resizes the card 2002 * abruptly, which reads as a glitch mid-fade. The resting height is measured 2003 * by clearing the inline height rather than forcing `auto`, because the card 2004 * may be stretched by its grid item. Under a reduced-motion preference the 2005 * swap is immediate rather than merely still, so the step never feels like 2006 * lag. 2007 * 2008 * @param {jQuery} $card - The card whose contents are being replaced 2009 * @param {string} html - The fragment to swap in 2010 * @param {Function} [done] - Runs once the new fragment is in the DOM 2011 */ 2012 2013 2014function swapCard($card, html, done) { 2015 if (prefersReducedMotion()) { 2016 $card.html(html); 2017 2018 if (done) { 2019 done(); 2020 } 2021 2022 return; 2023 } 2024 2025 var startHeight = $card.outerHeight(); 2026 $card.addClass('loyalty-activity-card--leaving'); 2027 setTimeout(function () { 2028 $card.removeClass('loyalty-activity-card--leaving').html(html); 2029 $card.css('height', ''); 2030 var endHeight = $card.outerHeight(); 2031 2032 if (endHeight === startHeight) { 2033 if (done) { 2034 done(); 2035 } 2036 2037 return; 2038 } 2039 2040 $card.css('height', startHeight + 'px'); // Flush the start height so the transition has something to run 2041 // from; without this the browser coalesces both writes. 2042 2043 $card[0].getBoundingClientRect(); 2044 $card.addClass('loyalty-activity-card--resizing').css('height', endHeight + 'px'); 2045 setTimeout(function () { 2046 $card.removeClass('loyalty-activity-card--resizing').css('height', ''); 2047 2048 if (done) { 2049 done(); 2050 } 2051 }, RESIZE_DURATION); 2052 }, LEAVE_DURATION); 2053} 2054/** 2055 * The card skeleton ships the localized flow-error copy in a data 2056 * attribute (attributes on the card root survive fragment swaps); the 2057 * literal is the last-resort fallback for a detached context. 2058 * 2059 * @param {jQuery} $card - The card root 2060 * @returns {string} - The member-facing generic error copy 2061 */ 2062 2063 2064function genericError($card) { 2065 return $card && $card.attr('data-flow-error') || 'We could not complete your request. Please try again.'; 2066} 2067/** 2068 * Antavo-sourced messages are HTML-encoded before they reach the toast, which 2069 * string-concatenates its markup. 2070 * 2071 * @param {string} text - Untrusted message text 2072 * @returns {string} - The HTML-encoded text 2073 */ 2074 2075 2076function escapeHtml(text) { 2077 return $('<div/>').text(text).html(); 2078} 2079 2080module.exports = { 2081 escapeHtml: escapeHtml, 2082 2083 /** 2084 * Adds the grid's CSRF token to a POST body. The token is rendered into 2085 * the grid fragment by a remote include, so it is never baked into the 2086 * page-cached shell; it is read from the DOM because the fragment is the 2087 * only thing that knows the current token, and a page may carry more than 2088 * one grid. 2089 * 2090 * @param {jQuery} $card - The card the flow is running in 2091 * @param {Object} data - The POST body fields 2092 * @returns {Object} - The body with the token field added 2093 */ 2094 withCsrf: function withCsrf($card, data) { 2095 var $token = $card.closest('.js-loyalty-activity-grid').find('.js-loyalty-activity-csrf'); 2096 2097 if (!$token.length) { 2098 // A card rendered outside a grid should not happen, but fall back 2099 // to the page rather than posting a request the route will reject. 2100 $token = $('.js-loyalty-activity-csrf').first(); 2101 } 2102 2103 if ($token.length && $token.attr('name')) { 2104 data[$token.attr('name')] = $token.val(); 2105 } 2106 2107 return data; 2108 }, 2109 2110 /** 2111 * Posts a flow action and swaps the card to the returned fragment. An 2112 * app-level error ({error: true}) or a transport error keeps the 2113 * current fragment, re-enables the triggering control, and shows a 2114 * toast. 2115 * 2116 * @param {Object} options - {url, data, $card, $restore, onSwapped} 2117 * where $restore is re-enabled on error and onSwapped(data) runs 2118 * after a successful swap 2119 */
2120 post: function post(options) { 2121 $.spinner().start(); 2122 $.ajax({ 2123 url: options.url, 2124 type: 'POST', 2125 dataType: 'json', 2126 data: options.data, 2127 success: function success(data) { 2128 $.spinner().stop(); 2129 2130 if (!data || data.error || !data.html) { 2131 if (options.$restore) { 2132 options.$restore.prop('disabled', false); 2133 } // The route decides what the member should read (Antavo's 2134 // wording vs. authored copy) and sends it as data.message; 2135 // this only needs a fallback for a response with no body. 2136 // The card deliberately stays on its current fragment, so 2137 // the toast is the only place the error appears. 2138 2139 2140 toast.methods.show('danger', escapeHtml(data && data.message || genericError(options.$card))); 2141 return; 2142 } 2143 2144 swapCard(options.$card, data.html, function () { 2145 if (options.onSwapped) { 2146 options.onSwapped(data); 2147 } 2148 }); 2149 }, 2150 error: function error() { 2151 $.spinner().stop(); 2152 2153 if (options.$restore) { 2154 options.$restore.prop('disabled', false); 2155 } 2156 2157 toast.methods.show('danger', escapeHtml(genericError(options.$card))); 2158 } 2159 }); 2160 } 2161}; 2162 2163/***/ }), 2164
2165/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/activities/_quiz.js": 2166/*!***********************************************************************************************************************!*\ 2167 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/activities/_quiz.js ***! 2168 \***********************************************************************************************************************/ 2169/*! no static exports found */ 2170/***/ (function(module, exports, __webpack_require__) { 2171 2172"use strict"; 2173 2174/** 2175 * Quiz in-card flow. An Antavo quiz is a single question: the card CTA 2176 * fetches the question, one answer is submitted, and the response is the 2177 * graded result. All markup arrives server-rendered, so this module only 2178 * swaps fragments and posts the answer. 2179 * 2180 * The submitted answer is the option's ZERO-BASED INDEX, read from 2181 * data-value, not its text â Antavo's quiz answers are a flat array of plain 2182 * strings with no IDs, so the earn endpoint takes the position in that array. 2183 * The correct answer is never present in the DOM: the server strips it from 2184 * the quiz detail before rendering the question. 2185 */ 2186 2187var flowAjax = __webpack_require__(/*! ./_flowAjax */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/activities/_flowAjax.js"); 2188/** 2189 * @param {jQuery} $flow - The flow container 2190 * @returns {string|null} - The selected option's index as a string, or null 2191 */ 2192 2193 2194function currentAnswer($flow) { 2195 var $selected = $flow.find('.js-quiz-option.selected'); 2196 return $selected.length ? $selected.attr('data-value') : null; 2197} 2198 2199module.exports = { 2200 /** 2201 * Wires the delegated quiz-flow events. 2202 */ 2203 init: function init() { 2204 // Card CTA: fetch the question. The options are not in the card, so 2205 // this round trip is what reveals them â see quizCard.isml for why 2206 // they are not rendered with the grid. 2207 $('body').on('click', '.js-quiz-start', function (e) { 2208 e.preventDefault(); 2209 var $btn = $(this); 2210 var $card = $btn.closest('.js-loyalty-activity-card'); 2211 $btn.prop('disabled', true); 2212 flowAjax.post({ 2213 url: $btn.attr('data-url'), 2214 data: flowAjax.withCsrf($card, { 2215 quizId: $btn.attr('data-quiz-id') 2216 }), 2217 $card: $card, 2218 $restore: $btn 2219 }); 2220 }); // Option select: a quiz takes exactly one answer, so selecting 2221 // replaces rather than toggles. aria-pressed mirrors the selected 2222 // class for assistive tech. 2223 2224 $('body').on('click', '.js-quiz-flow .js-quiz-option', function (e) { 2225 e.preventDefault(); 2226 var $option = $(this); 2227 var $flow = $option.closest('.js-quiz-flow'); 2228 $flow.find('.js-quiz-option').removeClass('selected').attr('aria-pressed', 'false'); 2229 $option.addClass('selected').attr('aria-pressed', 'true'); 2230 $flow.find('.js-quiz-submit').prop('disabled', false); 2231 }); // Submit the answer; the response is the graded result. 2232 2233 $('body').on('click', '.js-quiz-flow .js-quiz-submit', function (e) { 2234 e.preventDefault(); 2235 var $btn = $(this); 2236 var $flow = $btn.closest('.js-quiz-flow'); 2237 var $card = $flow.closest('.js-loyalty-activity-card'); 2238 var answer = currentAnswer($flow); 2239 2240 if (answer === null) { 2241 return; 2242 } 2243 2244 $btn.prop('disabled', true); 2245 flowAjax.post({ 2246 url: $flow.attr('data-answer-url'), 2247 data: flowAjax.withCsrf($card, { 2248 quizId: $flow.attr('data-quiz-id'), 2249 answer: answer, 2250 // Lets the route reject an obviously malformed index 2251 // without a round trip to Antavo. A hint, not a bound â 2252 // Antavo grades the answer either way. 2253 answerCount: $flow.attr('data-answer-count') 2254 }), 2255 $card: $card, 2256 $restore: $btn // No success toast. The result fragment that replaces the card 2257 // already carries Antavo's own message, so announcing it again 2258 // in a toast said the same thing twice. 2259 2260 }); 2261 }); 2262 } 2263}; 2264 2265/***/ }), 2266
2267/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/activities/_survey.js": 2268/*!*************************************************************************************************************************!*\ 2269 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/activities/_survey.js ***! 2270 \*************************************************************************************************************************/ 2271/*! no static exports found */ 2272/***/ (function(module, exports, __webpack_require__) { 2273 2274"use strict"; 2275 2276/** 2277 * Survey (Antavo profiling flow) in-card step machine. 2278 * 2279 * The card CTA requests the flow's next question; every submitted answer 2280 * returns either the following question or the completion state. All markup 2281 * arrives server-rendered, so this module only swaps fragments and posts the 2282 * answer. The answer is derived from the rendered inputs at submit time, so 2283 * swapping in the next fragment resets the state naturally. The display-only 2284 * question count rides from the card through every post so the fragments can 2285 * show "Question N of M". 2286 */ 2287 2288var flowAjax = __webpack_require__(/*! ./_flowAjax */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/activities/_flowAjax.js"); 2289/** 2290 * Reads the flow's current answer from the rendered inputs. 2291 * 2292 * @param {jQuery} $flow - The flow container 2293 * @returns {string|Array|null} - The single value, the multi-choice array, 2294 * or null when nothing is answered yet 2295 */ 2296 2297 2298function currentAnswer($flow) { 2299 var $selected = $flow.find('.js-survey-option.selected'); 2300 2301 if ($selected.length) { 2302 var values = $selected.map(function () { 2303 return $(this).attr('data-value'); 2304 }).get(); 2305 return $flow.attr('data-multi-choice') === 'true' ? values : values[0]; 2306 } 2307 2308 var $input = $flow.find('.js-survey-value'); 2309 2310 if ($input.length && $input.val()) { 2311 return $input.val(); 2312 } 2313 2314 return null; 2315} 2316/** 2317 * @param {jQuery} $flow - The flow container 2318 */ 2319 2320 2321function syncSubmitState($flow) { 2322 var answer = currentAnswer($flow); 2323 $flow.find('.js-survey-submit').prop('disabled', answer === null); 2324} 2325/** 2326 * A freshly swapped-in question may already carry an answerable value (the 2327 * slider renders pre-filled with its minimum); sync the submit button so 2328 * the default is submittable without touching the control. 2329 * 2330 * @param {jQuery} $card - The card that just received a fragment 2331 */ 2332 2333 2334function onFragmentSwapped($card) { 2335 var $flow = $card.find('.js-survey-flow'); 2336 2337 if ($flow.length) { 2338 syncSubmitState($flow); 2339 } 2340} 2341 2342module.exports = { 2343 /** 2344 * Wires the delegated survey-flow events. 2345 */ 2346 init: function init() { 2347 // Card CTA: open the flow with its first unanswered question. 2348 $('body').on('click', '.js-survey-start', function (e) { 2349 e.preventDefault(); 2350 var $btn = $(this); 2351 var $card = $btn.closest('.js-loyalty-activity-card'); 2352 var data = { 2353 flowId: $btn.attr('data-flow-id') 2354 }; 2355 2356 if ($btn.attr('data-question-count')) { 2357 data.questionCount = $btn.attr('data-question-count'); 2358 } 2359 2360 $btn.prop('disabled', true); 2361 flowAjax.post({ 2362 url: $btn.attr('data-url'), 2363 data: flowAjax.withCsrf($card, data), 2364 $card: $card, 2365 $restore: $btn, 2366 onSwapped: function onSwapped() { 2367 onFragmentSwapped($card); 2368 } 2369 }); 2370 }); // Option select: single-select replaces the selection; a 2371 // multi-choice question toggles each option. aria-pressed mirrors 2372 // the selected class for assistive tech. 2373 2374 $('body').on('click', '.js-survey-flow .js-survey-option', function (e) { 2375 e.preventDefault(); 2376 var $option = $(this); 2377 var $flow = $option.closest('.js-survey-flow'); 2378 2379 if ($flow.attr('data-multi-choice') === 'true') { 2380 $option.toggleClass('selected'); 2381 $option.attr('aria-pressed', String($option.hasClass('selected'))); 2382 } else { 2383 $flow.find('.js-survey-option').removeClass('selected').attr('aria-pressed', 'false'); 2384 $option.addClass('selected').attr('aria-pressed', 'true'); 2385 } 2386 2387 syncSubmitState($flow); 2388 }); // Value inputs: numeric slider, date picker, and free text. 2389 2390 $('body').on('input change', '.js-survey-flow .js-survey-value', function () { 2391 var $input = $(this); 2392 var $flow = $input.closest('.js-survey-flow'); 2393 $flow.find('.js-survey-slider-value').text($input.val()); 2394 syncSubmitState($flow); 2395 }); // Submit the current answer; the response is the next question or 2396 // the completion state. 2397 2398 $('body').on('click', '.js-survey-flow .js-survey-submit', function (e) { 2399 e.preventDefault(); 2400 var $btn = $(this); 2401 var $flow = $btn.closest('.js-survey-flow'); 2402 var $card = $flow.closest('.js-loyalty-activity-card'); 2403 var answer = currentAnswer($flow); 2404 2405 if (answer === null || Array.isArray(answer) && !answer.length) { 2406 return; 2407 } 2408 2409 var data = { 2410 flowId: $flow.attr('data-flow-id'), 2411 questionId: $flow.attr('data-question-id'), 2412 // Decides how the answer is typed on the wire: Antavo 500s 2413 // on a numeric_slider answer sent as a quoted string. 2414 questionType: $flow.attr('data-question-type') 2415 }; 2416 2417 if ($flow.attr('data-question-count')) { 2418 data.questionCount = $flow.attr('data-question-count'); 2419 } 2420 2421 if (Array.isArray(answer)) { 2422 data.answer = JSON.stringify(answer); 2423 data.multiChoice = 'true'; 2424 } else { 2425 data.answer = String(answer); 2426 } 2427 2428 $btn.prop('disabled', true); 2429 flowAjax.post({ 2430 url: $flow.attr('data-answer-url'), 2431 data: flowAjax.withCsrf($card, data), 2432 $card: $card, 2433 $restore: $btn, 2434 // No success toast: the completion fragment that replaces the 2435 // card already carries Antavo's own message, so a toast said 2436 // the same thing twice. 2437 onSwapped: function onSwapped() { 2438 onFragmentSwapped($card); 2439 } 2440 }); 2441 }); 2442 } 2443}; 2444 2445/***/ }), 2446
2447/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/main.js": 2448/*!***************************************************************************************************!*\ 2449 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/main.js ***! 2450 \***************************************************************************************************/ 2451/*! no static exports found */ 2452/***/ (function(module, exports, __webpack_require__) { 2453 2454"use strict"; 2455 2456 2457__webpack_require__(/*! regenerator-runtime/runtime */ "../autobahn_client_core/node_modules/regenerator-runtime/runtime.js"); 2458 2459var main = __webpack_require__(/*! integrations/main */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/main.js"); 2460 2461main.baseFiles.menu = __webpack_require__(/*! ./components/menu */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/menu.js"); 2462main.baseFiles.yotpo = __webpack_require__(/*! ./components/yotpo */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/yotpo.js"); 2463main.baseFiles.consentTracking = __webpack_require__(/*! ./components/consentTracking */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/consentTracking.js"); 2464main.baseFiles.warranty = __webpack_require__(/*! ./components/warranty */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/warranty.js"); 2465main.baseFiles.slider = __webpack_require__(/*! ./components/slider */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/slider.js").init; 2466main.baseFiles.base = __webpack_require__(/*! ./product/base */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/product/base.js"); 2467main.baseFiles.timer = __webpack_require__(/*! ./components/timer */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/timer.js"); 2468main.baseFiles.search = __webpack_require__(/*! ./search/search */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/search/search.js"); 2469main.baseFiles.flyout = __webpack_require__(/*! ./components/flyout */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/flyout.js"); 2470main.baseFiles.clientSideValidation = __webpack_require__(/*! ./components/clientSideValidation */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/clientSideValidation.js"); 2471main.baseFiles.backstage = __webpack_require__(/*! ./backstage/backstage */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/backstage/backstage.js"); 2472main.baseFiles.antavo = __webpack_require__(/*! ./components/antavo */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/components/antavo.js"); // Global because the activity grid's Page Designer shell is page-cached (a 2473// cached render script never re-runs, so its assets.addJs never ships) and the 2474// grid can sit in an AJAX-rendered region that includes no scripts at all. The 2475// underscore prefix keeps the builder from also emitting this as its own 2476// standalone bundle. 2477 2478main.baseFiles.loyaltyActivities = __webpack_require__(/*! ./loyalty/_loyaltyActivities */ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/loyalty/_loyaltyActivities.js"); // add class to iframe for mobile video display 2479 2480window.focus(); 2481window.addEventListener("blur", function () { 2482 setTimeout(function () { 2483 if (document.activeElement.tagName === "IFRAME") { 2484 var videoFrameClassList = document.activeElement.classList; 2485 document.activeElement.classList.toggle("active-iframe"); 2486 } 2487 }); 2488}); 2489var interval = window.setInterval(trackClick, 100); 2490var inc = 0; 2491 2492function trackClick() { 2493 if (document.activeElement == document.querySelector("iframe[title='vimeo-player']")) { 2494 i++; 2495 window.focus(); 2496 } 2497} 2498 2499function initVideoCloseEvent() { 2500 var theVideoCloseButton = document.querySelector(".product-media-body button.close[data-dismiss='modal']"); 2501 2502 if (theVideoCloseButton) { 2503 theVideoCloseButton.addEventListener("click", function () { 2504 var videoFrame = document.querySelector("iframe[title='vimeo-player'].active-iframe"); 2505 2506 if (videoFrame) { 2507 videoFrame.classList.remove("active-iframe"); 2508 videoFrame.src = videoFrame.src; // reload iframe to stop video 2509 } 2510 }); 2511 } 2512} 2513 2514function fixBlogTitle() { 2515 var thePageTitle = document.title; 2516 2517 if (thePageTitle.includes("Blog Landing Page")) { 2518 var newTitle = thePageTitle.replace("Blog Landing Page", "The Martin Blog"); 2519 document.title = newTitle; 2520 } 2521} 2522 2523function isHidden(el) { 2524 return el.offsetParent === null; 2525} // remove all mention of affirm on retired product PDPs 2526 2527
2528function removeMentionOfAffirmRetired() { 2529 var retiredBadge = document.querySelector('.primary-images span.badge-product'); 2530 2531 if (retiredBadge && retiredBadge.innerHTML == "RETIRED") { 2532 var affirmElements = document.querySelectorAll('.affirm-as-low-as, .checkout-continue .affirm-as-low-as'); 2533 affirmElements.forEach(function (elem) { 2534 elem.remove(); 2535 }); 2536 } 2537} // remove affirm messaging if add to cart button is hidden 2538 2539 2540function removeAffirmMessagingCart() { 2541 var addToCartButton = document.querySelector(".btn.add-to-cart"); 2542 2543 if (addToCartButton && isHidden(addToCartButton)) { 2544 var affirmMessaging = document.querySelectorAll('.affirm-as-low-as, .checkout-continue .affirm-as-low-as'); 2545 affirmMessaging.forEach(function (el) { 2546 el.style.visibility = "hidden"; 2547 }); 2548 } 2549} 2550 2551function updateAffirmVisibilityVariant() { 2552 var allAffirmMessaging = document.querySelectorAll('.affirm-as-low-as, .checkout-continue .affirm-as-low-as'); 2553 var HandednessButtons = document.querySelectorAll('button.guitar_Handedness-attribute,button.guitar_Electronics-attribute'); 2554 HandednessButtons.forEach(function (elem) { 2555 elem.addEventListener('click', function () { 2556 setTimeout(function () { 2557 if (document.querySelector("button.add-to-cart") && document.querySelector(".col-auto.addtocartbutton").classList.contains("d-none")) { 2558 allAffirmMessaging.forEach(function (el) { 2559 el.style.visibility = "hidden"; 2560 }); 2561 } else { 2562 allAffirmMessaging.forEach(function (el) { 2563 el.style.visibility = "visible"; 2564 }); 2565 } 2566 }, 500); 2567 }); 2568 }); 2569} // remove dark mode on backstage - RW 2570 2571 2572var removeClassFromBlogs = function removeClassFromBlogs() { 2573 var blogContainer = document.querySelector('.blog.page-designer'); 2574 2575 if (blogContainer && blogContainer.classList.contains("text--white")) { 2576 blogContainer.classList.remove("text--white"); 2577 } 2578 2579 var blogContainerHome = document.querySelector('div.experience-component.experience-commerce_assets-wysiwyg > div.col-12.py-5'); 2580 2581 if (blogContainerHome) { 2582 blogContainerHome.classList.remove("text--white"); 2583 } 2584 2585 var blogHeadline = document.querySelector('div.experience-component.experience-commerce_assets-wysiwyg > div.px-5.text--white'); 2586 2587 if (blogHeadline) { 2588 blogHeadline.classList.remove("text--white"); 2589 } 2590}; 2591 2592function addReadMoreToShortDescriptions() { 2593 var shortDescriptions = document.querySelectorAll('.container.product-detail div.mt-3 > p'); 2594 var descButton = document.querySelector("a[data-target='#pdp-flyout-headline-description']"); 2595 2596 if (shortDescriptions.innerHTML !== "") { 2597 shortDescriptions.forEach(function (desc) { 2598 var readMore = document.createElement('a'); 2599 readMore.href = '#'; 2600 readMore.textContent = 'Read More'; 2601 readMore.style.display = 'inline-block'; 2602 readMore.style.marginTop = '10px'; 2603 readMore.addEventListener('click', function (e) { 2604 e.preventDefault(); 2605 descButton.click(); 2606 }); 2607 desc.parentNode.insertBefore(readMore, desc.nextSibling); 2608 }); 2609 } 2610} 2611 2612document.addEventListener("DOMContentLoaded", function (e) { 2613 removeClassFromBlogs(); 2614 removeMentionOfAffirmRetired(); 2615 removeAffirmMessagingCart(); 2616 updateAffirmVisibilityVariant(); 2617 fixBlogTitle(); 2618 addReadMoreToShortDescriptions(); 2619 initVideoCloseEvent(); 2620}); 2621module.exports = main; 2622 2623/***/ }), 2624
2625/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/product/base.js": 2626/*!***********************************************************************************************************!*\ 2627 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/product/base.js ***! 2628 \***********************************************************************************************************/ 2629/*! no static exports found */ 2630/***/ (function(module, exports, __webpack_require__) { 2631 2632"use strict"; 2633 2634 2635var baseCore = __webpack_require__(/*! integrations/product/base */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/product/base.js"); 2636 2637baseCore.sizeChart = function () { 2638 $('body').on('click', '.size-chart .size-chart-launcher', function (event) { 2639 event.preventDefault(); 2640 var url = $(event.target).attr('href'); 2641 var productId = $(event.target).closest('.product-detail').attr('data-pid'); 2642 var $sizeChartModal = $('.modal[data-product=' + productId + ']'); 2643 var $modalBody = $sizeChartModal.find('.modal-body .size-chart-content'); 2644 $.ajax({ 2645 url: url, 2646 type: 'get', 2647 dataType: 'html', 2648 success: function success(data) { 2649 $modalBody.html(data); 2650 } 2651 }); //if the sizechart is from a quickview append after all the modal-backdrops 2652 2653 if ($(event.target).parents('.product-quickview').length) { 2654 var $sizeChartContainer = $(event.target).closest('.size-chart'); 2655 $sizeChartModal.appendTo('body'); 2656 $sizeChartModal.on('hide.bs.modal', function (event) { 2657 $sizeChartModal.appendTo($sizeChartContainer); 2658 }); 2659 } 2660 2661 $sizeChartModal.modal('show'); 2662 }); 2663 $('body').on('click', '#sizeChartModal .close', function (event) { 2664 $(event.target).closest('#sizeChartModal').modal('hide'); 2665 }); 2666}; 2667 2668baseCore.updateAttribute = function () { 2669 $('body').on('product:afterAttributeSelect', function (e, response) { 2670 // CLIENT MOD: Don't update the size chart modal after selecting variant because the size chart is linked to the master product 2671 // response.container.find('#sizeChartModal').attr('data-product', response.data.product.id); 2672 //Quickview 2673 if ($('.modal.show .product-quickview>.bundle-items').length) { 2674 $('.modal.show').find(response.container).data('pid', response.data.product.id); 2675 $('.modal.show').find(response.container).find('.product-id').text(response.data.product.id); 2676 } else if ($('.set-items').length) { 2677 response.container.find('.product-id').text(response.data.product.id); 2678 } else if ($('.modal.show .product-quickview').length) { 2679 $('.modal.show .product-quickview').data('pid', response.data.product.id); 2680 $('.modal.show .full-pdp-link').attr('href', response.data.product.selectedProductUrl); 2681 $('.modal.show').find(response.container).find('.product-id').text(response.data.product.id); //Main PDP 2682 } else if ($('.product-detail>.bundle-items').length) { 2683 response.container.data('pid', response.data.product.id); 2684 response.container.find('.product-id').text(response.data.product.id); 2685 } else if ($('.product-set-detail').eq(0)) { 2686 response.container.data('pid', response.data.product.id); 2687 response.container.find('.product-id').text(response.data.product.id); 2688 response.container.find('.add-to-cart').data('pid', response.data.product.id); 2689 } else { 2690 $('.product-detail .add-to-cart').data('pid', response.data.product.id); 2691 $('.product-id').text(response.data.product.id); 2692 $('.product-detail:not(".bundle-item")').data('pid', response.data.product.id); 2693 } 2694 }); 2695}; // Modified to add classes for availability messages 2696 2697 2698baseCore.methods.updateAvailabilityProcess = function (response, $productContainer) { 2699 var availabilityValue = ''; 2700 var availabilityMessages = response.product.availability.messages; 2701 2702 if (!response.product.readyToOrder) { 2703 availabilityValue = '<li><div class="' + response.resources.info_selectforstock.toLowerCase().replace(/ /g, '-') + '">' + response.resources.info_selectforstock + '</div></li>'; 2704 } else {
2705 availabilityMessages.forEach(function (message) { 2706 availabilityValue += '<li><div class="' + message.toLowerCase().replace(/ /g, '-') + '">' + message + '</div></li>'; 2707 }); 2708 } 2709 2710 $($productContainer).trigger('product:updateAvailability', { 2711 product: response.product, 2712 $productContainer: $productContainer, 2713 message: availabilityValue, 2714 resources: response.resources 2715 }); 2716}; 2717/** 2718 * Updates media modal with PDP main images and videos from response 2719 * @param {Object[]} images - Array of large product images,along with related information 2720 * @param {jQuery} videos - Array of videos for the product 2721 */ 2722 2723 2724baseCore.methods.updateMediaModal = function (images, videos) { 2725 var mediaModal = $('#productMediaModal'); 2726 var photoContainer = mediaModal.find('.photo-container'); 2727 var videoContainer = mediaModal.find('.videos-container'); 2728 var videoTab = mediaModal.find('.video-tab'); 2729 2730 if (!videos || videos.URLs.length === 0) { 2731 videoTab.addClass('d-none'); 2732 videoContainer.addClass('d-none'); 2733 } else { 2734 videoContainer.removeClass('d-none'); 2735 videoTab.removeClass('d-none'); 2736 videoContainer.empty(); 2737 videos.URLs.forEach(function (URL) {
2738 var $videoContainer = $('<div></div>'); 2739 var $videoElement = $(URL); 2740 $videoContainer.attr({ 2741 'class': 'position-relative video-container d-flex justify-content-center' 2742 }); 2743 $videoContainer.append($videoElement[0]); 2744 videoContainer.append($videoContainer[0]); 2745 }); 2746 } 2747 2748 if (images) { 2749 photoContainer.empty(); 2750 images.large.forEach(function (image) { 2751 var $imageElement = $('<img/>'); 2752 $imageElement.attr({ 2753 'src': image.absURL, 2754 'alt': image.alt + 'image number ' + (parseInt(image.index) + 1).toFixed(0), 2755 'class': 'd-block img-fluid zoomImg', 2756 'itemprop': 'image', 2757 'role': 'presentation' 2758 }); 2759 photoContainer.append($imageElement[0]); 2760 }); 2761 } 2762}; 2763/** 2764 * Updates slider for PDP main images and thumbnails from response containing images 2765 * @param {Object[]} imgs - Array of large product images,along with related information 2766 * @param {jQuery} $productContainer - DOM element for a given product 2767 */ 2768 2769 2770baseCore.methods.createSlider = function (images, assets, videos, $productContainer) { 2771 var $sliderContainers = $productContainer.find('.slider-container'); 2772 var data = images !== null ? { 2773 images: images 2774 } : null; 2775 data.assets = assets || null; 2776 data.videos = videos; // Reversing order in which to update sliders so that thumbnails get initialized first 2777 2778 $($sliderContainers.get().reverse()).each(function (index, sliderContainer) { 2779 var $slider = $(sliderContainer).find('.slider'); // MARTIN MOD : carry through the no-zoom behavior from the previous variation 2780 2781 data.zoom = $slider.find('.no-zoom').length === 0; 2782 $slider.trigger('slider:update', data); 2783 }); 2784}; 2785/** 2786 * Parses JSON from Ajax call made whenever an attribute value is [de]selected 2787 * @param {Object} response - response from Ajax call 2788 * @param {Object} response.product - Product object 2789 * @param {string} response.product.id - Product ID 2790 * @param {Object[]} response.product.variationAttributes - Product attributes 2791 * @param {Object[]} response.product.images - Product images 2792 * @param {boolean} response.product.hasRequiredAttrsSelected - Flag as to whether all required 2793 * attributes have been selected. Used partially to 2794 * determine whether the Add to Cart button can be enabled 2795 * @param {jQuery} $productContainer - DOM element for a given product. 2796 */ 2797 2798 2799baseCore.methods.handleVariantResponse = function (response, $productContainer) { 2800 var isChoiceOfBonusProducts = $productContainer.parents('.choose-bonus-product-dialog').length > 0; 2801 var isVariant; 2802 var isSetItem = $productContainer.hasClass('product-set-item-detail') ? true : false; 2803 2804 if (response.product.variationAttributes) { 2805 baseCore.methods.updateAttrs(response.product.variationAttributes, $productContainer, response.resources); 2806 isVariant = response.product.productType === 'variant'; 2807 2808 if (isChoiceOfBonusProducts && isVariant) { 2809 $productContainer.parent('.bonus-product-item').data('pid', response.product.id); 2810 $productContainer.parent('.bonus-product-item').data('ready-to-order', response.product.readyToOrder); 2811 } 2812 } 2813 2814 var videos = null; 2815 var videoThumbnails = []; 2816 2817 if (response.product.videoURLs) { 2818 response.product.videoThumbnail1 ? videoThumbnails.push(response.product.videoThumbnail1) : ''; 2819 response.product.videoThumbnail2 ? videoThumbnails.push(response.product.videoThumbnail2) : ''; 2820 response.product.videoThumbnail3 ? videoThumbnails.push(response.product.videoThumbnail3) : ''; 2821 response.product.videoThumbnail4 ? videoThumbnails.push(response.product.videoThumbnail4) : ''; 2822 var videos = { 2823 URLs: response.product.videoURLs, 2824 thumbnails: videoThumbnails 2825 }; 2826 } // Update primary images 2827 2828 2829 var primaryImages = response.product.images; 2830 var pdpGalleryAssets = response.product.pdpGalleryAssets; 2831 var $oldWishlistIcon = $productContainer.find('div.slide .wishlist-toggle-product').first().clone(true); 2832 baseCore.methods.createSlider(primaryImages, pdpGalleryAssets, videos, $productContainer); 2833 baseCore.methods.updateMediaModal(primaryImages, videos); // if variant is a product set item, update the sample image 2834 2835 if (isSetItem) {
2836 $productContainer.find('.product-set-item-main-image').attr('src', primaryImages.large[0].url).attr('alt', primaryImages.large[0].alt); 2837 } // Update pricing 2838 2839 2840 if (!isChoiceOfBonusProducts) { 2841 var $priceSelector = $('.prices .price', $productContainer).length ? $('.prices .price', $productContainer) : $('.prices .price'); 2842 $priceSelector.replaceWith(response.product.price.html); 2843 } // Update promotions 2844 2845 2846 $productContainer.find('.promotions').empty().html(response.product.promotionsHtml); 2847 baseCore.methods.updateAvailabilityProcess(response, $productContainer); 2848 2849 if (isChoiceOfBonusProducts) { 2850 var $selectButton = $productContainer.find('.select-bonus-product'); 2851 $selectButton.trigger('bonusproduct:updateSelectButton', { 2852 product: response.product, 2853 $productContainer: $productContainer 2854 }); 2855 } else { 2856 // Enable "Add to Cart" button if all required attributes have been selected 2857 $('button.add-to-cart, button.add-to-cart-global, button.update-cart-product-global').trigger('product:updateAddToCart', { 2858 product: response.product, 2859 $productContainer: $productContainer 2860 }).trigger('product:statusUpdate', response.product); 2861 } // Update attributes 2862 2863 2864 $productContainer.find('.main-attributes').empty().html(baseCore.methods.getAttributesHtml(response.product.attributes)); // Update wishlist 2865 2866 if ($oldWishlistIcon && $oldWishlistIcon.length) { 2867 var $newWishlistIcon = $oldWishlistIcon; 2868 $newWishlistIcon.attr('data-wishlistpid', response.product.wishlistpid); //Make heart icon accurate 2869 2870 var wishlist = __webpack_require__(/*! core/wishlist/components/helpers.js */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/helpers.js"); 2871 2872 wishlist.updateLinkData($newWishlistIcon); 2873 var $newSliderMainImages = $productContainer.find('div.primary-images-main div.slide img'); 2874 $newSliderMainImages.each(function (_i, newImage) { 2875 var $newImage = $(newImage); 2876 $newImage.after($newWishlistIcon.clone(true)); 2877 }); 2878 } 2879}; 2880 2881module.exports = baseCore; 2882 2883/***/ }), 2884
2885/***/ "../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/search/search.js": 2886/*!************************************************************************************************************!*\ 2887 !*** ../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/search/search.js ***! 2888 \************************************************************************************************************/ 2889/*! no static exports found */ 2890/***/ (function(module, exports, __webpack_require__) { 2891 2892"use strict"; 2893 2894 2895$(document).ready(function () { 2896 $("body").on("click", "a.product-tile-image-link", function (e) { 2897 if ($('.permalink').length) { 2898 // Stop propagation, prevent link from redirecting 2899 e.stopPropagation(); 2900 e.preventDefault(); // Retrieve the pid from the product tile, add it to our current URL 2901 2902 var pid = $(this).parents(".product-tile").data("pid"); 2903 var url = new URL($(".permalink").val()); 2904 url.searchParams.set("clickedpid", pid); 2905 history.pushState(null, document.title, url.toString()); // Follow the link 2906 2907 window.location = $(this).attr('href'); 2908 return false; 2909 } 2910 }); // Check for 'clickedpid' in the URL, scroll to it after .5s if it exists 2911 2912 var urlParams = new URLSearchParams(window.location.search); 2913 var clickedpid = urlParams.get("clickedpid"); 2914 2915 if (clickedpid) { 2916 setTimeout(function () { 2917 $("[data-pid=" + clickedpid + "]")[0].scrollIntoView(); 2918 }, 500); 2919 } 2920}); 2921 2922var searchCore = __webpack_require__(/*! core/components/search */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/search.js").init; // Modified to add classes for availability messages 2923 2924 2925searchCore.showMore = function () { 2926 // Show more products 2927 $(".container").on("click", ".show-more button", function (e) { 2928 e.stopPropagation(); 2929 e.preventDefault(); 2930 var showMoreUrl = $(this).data("url"); 2931 var $showMoreButton = $(e.target); 2932 $.spinner().start(); 2933 $(this).trigger("search:showMore", e); 2934 $.ajax({ 2935 url: showMoreUrl, 2936 data: { 2937 selectedUrl: showMoreUrl 2938 }, 2939 method: "GET", 2940 success: function success(response) { 2941 var promoTileCount = $showMoreButton.closest(".product-grid").find('[class*="experience-promoTile"]').length; 2942 $(".grid-footer").replaceWith(response); 2943 $("body").trigger("search:showMore--success"); 2944 $.spinner().stop(); 2945 }, 2946 error: function error() { 2947 $.spinner().stop(); 2948 } 2949 }); 2950 }); 2951}; 2952 2953searchCore.updateHistory = function () { 2954 $("body").on("search:showMore--success", function () { 2955 history.replaceState(null, document.title, $(".permalink").val()); 2956 }); 2957}; 2958 2959module.exports = searchCore; 2960 2961/***/ }), 2962
vendor: 25,677 bytes, lines 2963-3422
2963/***/ "../autobahn_client_core/node_modules/js-cookie/dist/js.cookie.js": 2964/*!************************************************************************!*\ 2965 !*** ../autobahn_client_core/node_modules/js-cookie/dist/js.cookie.js ***! 2966 \************************************************************************/ 2967/*! no static exports found */ 2968/***/ (function(module, exports, __webpack_require__) { 2969 2970var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 2971 2972/*! js-cookie v3.0.1 | MIT */ 2973; 2974 2975(function (global, factory) { 2976 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 2977 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 2978 (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : 2979 __WEBPACK_AMD_DEFINE_FACTORY__), 2980 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : (undefined); 2981})(this, function () { 2982 'use strict'; 2983 /* eslint-disable no-var */ 2984 2985 function assign(target) { 2986 for (var i = 1; i < arguments.length; i++) { 2987 var source = arguments[i]; 2988 2989 for (var key in source) { 2990 target[key] = source[key]; 2991 } 2992 } 2993 2994 return target; 2995 } 2996 /* eslint-enable no-var */ 2997 2998 /* eslint-disable no-var */ 2999 3000 3001 var defaultConverter = { 3002 read: function read(value) { 3003 if (value[0] === '"') { 3004 value = value.slice(1, -1); 3005 } 3006 3007 return value.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent); 3008 }, 3009 write: function write(value) { 3010 return encodeURIComponent(value).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent); 3011 } 3012 }; 3013 /* eslint-enable no-var */ 3014 3015 /* eslint-disable no-var */ 3016 3017 function init(converter, defaultAttributes) { 3018 function set(key, value, attributes) { 3019 if (typeof document === 'undefined') { 3020 return; 3021 } 3022 3023 attributes = assign({}, defaultAttributes, attributes); 3024 3025 if (typeof attributes.expires === 'number') { 3026 attributes.expires = new Date(Date.now() + attributes.expires * 864e5); 3027 } 3028 3029 if (attributes.expires) { 3030 attributes.expires = attributes.expires.toUTCString(); 3031 } 3032 3033 key = encodeURIComponent(key).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape); 3034 var stringifiedAttributes = ''; 3035 3036 for (var attributeName in attributes) { 3037 if (!attributes[attributeName]) { 3038 continue; 3039 } 3040 3041 stringifiedAttributes += '; ' + attributeName; 3042 3043 if (attributes[attributeName] === true) { 3044 continue; 3045 } // Considers RFC 6265 section 5.2: 3046 // ... 3047 // 3. If the remaining unparsed-attributes contains a %x3B (";") 3048 // character: 3049 // Consume the characters of the unparsed-attributes up to, 3050 // not including, the first %x3B (";") character. 3051 // ... 3052 3053 3054 stringifiedAttributes += '=' + attributes[attributeName].split(';')[0]; 3055 } 3056 3057 return document.cookie = key + '=' + converter.write(value, key) + stringifiedAttributes; 3058 } 3059 3060 function get(key) { 3061 if (typeof document === 'undefined' || arguments.length && !key) { 3062 return; 3063 } // To prevent the for loop in the first place assign an empty array 3064 // in case there are no cookies at all. 3065 3066 3067 var cookies = document.cookie ? document.cookie.split('; ') : []; 3068 var jar = {}; 3069 3070 for (var i = 0; i < cookies.length; i++) { 3071 var parts = cookies[i].split('='); 3072 var value = parts.slice(1).join('='); 3073 3074 try { 3075 var foundKey = decodeURIComponent(parts[0]); 3076 jar[foundKey] = converter.read(value, foundKey); 3077 3078 if (key === foundKey) { 3079 break; 3080 } 3081 } catch (e) {} 3082 } 3083 3084 return key ? jar[key] : jar; 3085 } 3086 3087 return Object.create({ 3088 set: set, 3089 get: get, 3090 remove: function remove(key, attributes) { 3091 set(key, '', assign({}, attributes, { 3092 expires: -1 3093 })); 3094 }, 3095 withAttributes: function withAttributes(attributes) { 3096 return init(this.converter, assign({}, this.attributes, attributes)); 3097 }, 3098 withConverter: function withConverter(converter) { 3099 return init(assign({}, this.converter, converter), this.attributes); 3100 } 3101 }, { 3102 attributes: { 3103 value: Object.freeze(defaultAttributes) 3104 }, 3105 converter: { 3106 value: Object.freeze(converter) 3107 } 3108 }); 3109 } 3110 3111 var api = init(defaultConverter, { 3112 path: '/' 3113 }); 3114 /* eslint-enable no-var */ 3115 3116 return api; 3117}); 3118 3119/***/ }), 3120 3121/***/ "../autobahn_client_core/node_modules/moment/locale sync recursive ^\\.\\/.*$": 3122/*!************************************************************************!*\ 3123 !*** ../autobahn_client_core/node_modules/moment/locale sync ^\.\/.*$ ***! 3124 \************************************************************************/ 3125/*! no static exports found */ 3126/***/ (function(module, exports, __webpack_require__) { 3127 3128var map = { 3129 "./af": "../autobahn_client_core/node_modules/moment/locale/af.js", 3130 "./af.js": "../autobahn_client_core/node_modules/moment/locale/af.js", 3131 "./ar": "../autobahn_client_core/node_modules/moment/locale/ar.js", 3132 "./ar-dz": "../autobahn_client_core/node_modules/moment/locale/ar-dz.js", 3133 "./ar-dz.js": "../autobahn_client_core/node_modules/moment/locale/ar-dz.js", 3134 "./ar-kw": "../autobahn_client_core/node_modules/moment/locale/ar-kw.js", 3135 "./ar-kw.js": "../autobahn_client_core/node_modules/moment/locale/ar-kw.js", 3136 "./ar-ly": "../autobahn_client_core/node_modules/moment/locale/ar-ly.js", 3137 "./ar-ly.js": "../autobahn_client_core/node_modules/moment/locale/ar-ly.js", 3138 "./ar-ma": "../autobahn_client_core/node_modules/moment/locale/ar-ma.js", 3139 "./ar-ma.js": "../autobahn_client_core/node_modules/moment/locale/ar-ma.js", 3140 "./ar-sa": "../autobahn_client_core/node_modules/moment/locale/ar-sa.js", 3141 "./ar-sa.js": "../autobahn_client_core/node_modules/moment/locale/ar-sa.js", 3142 "./ar-tn": "../autobahn_client_core/node_modules/moment/locale/ar-tn.js", 3143 "./ar-tn.js": "../autobahn_client_core/node_modules/moment/locale/ar-tn.js", 3144 "./ar.js": "../autobahn_client_core/node_modules/moment/locale/ar.js", 3145 "./az": "../autobahn_client_core/node_modules/moment/locale/az.js", 3146 "./az.js": "../autobahn_client_core/node_modules/moment/locale/az.js", 3147 "./be": "../autobahn_client_core/node_modules/moment/locale/be.js", 3148 "./be.js": "../autobahn_client_core/node_modules/moment/locale/be.js", 3149 "./bg": "../autobahn_client_core/node_modules/moment/locale/bg.js", 3150 "./bg.js": "../autobahn_client_core/node_modules/moment/locale/bg.js", 3151 "./bm": "../autobahn_client_core/node_modules/moment/locale/bm.js", 3152 "./bm.js": "../autobahn_client_core/node_modules/moment/locale/bm.js", 3153 "./bn": "../autobahn_client_core/node_modules/moment/locale/bn.js", 3154 "./bn-bd": "../autobahn_client_core/node_modules/moment/locale/bn-bd.js", 3155 "./bn-bd.js": "../autobahn_client_core/node_modules/moment/locale/bn-bd.js", 3156 "./bn.js": "../autobahn_client_core/node_modules/moment/locale/bn.js", 3157 "./bo": "../autobahn_client_core/node_modules/moment/locale/bo.js", 3158 "./bo.js": "../autobahn_client_core/node_modules/moment/locale/bo.js", 3159 "./br": "../autobahn_client_core/node_modules/moment/locale/br.js", 3160 "./br.js": "../autobahn_client_core/node_modules/moment/locale/br.js", 3161 "./bs": "../autobahn_client_core/node_modules/moment/locale/bs.js", 3162 "./bs.js": "../autobahn_client_core/node_modules/moment/locale/bs.js", 3163 "./ca": "../autobahn_client_core/node_modules/moment/locale/ca.js", 3164 "./ca.js": "../autobahn_client_core/node_modules/moment/locale/ca.js", 3165 "./cs": "../autobahn_client_core/node_modules/moment/locale/cs.js", 3166 "./cs.js": "../autobahn_client_core/node_modules/moment/locale/cs.js", 3167 "./cv": "../autobahn_client_core/node_modules/moment/locale/cv.js", 3168 "./cv.js": "../autobahn_client_core/node_modules/moment/locale/cv.js", 3169 "./cy": "../autobahn_client_core/node_modules/moment/locale/cy.js", 3170 "./cy.js": "../autobahn_client_core/node_modules/moment/locale/cy.js", 3171 "./da": "../autobahn_client_core/node_modules/moment/locale/da.js", 3172 "./da.js": "../autobahn_client_core/node_modules/moment/locale/da.js", 3173 "./de": "../autobahn_client_core/node_modules/moment/locale/de.js", 3174 "./de-at": "../autobahn_client_core/node_modules/moment/locale/de-at.js", 3175 "./de-at.js": "../autobahn_client_core/node_modules/moment/locale/de-at.js", 3176 "./de-ch": "../autobahn_client_core/node_modules/moment/locale/de-ch.js", 3177 "./de-ch.js": "../autobahn_client_core/node_modules/moment/locale/de-ch.js", 3178 "./de.js": "../autobahn_client_core/node_modules/moment/locale/de.js", 3179 "./dv": "../autobahn_client_core/node_modules/moment/locale/dv.js", 3180 "./dv.js": "../autobahn_client_core/node_modules/moment/locale/dv.js", 3181 "./el": "../autobahn_client_core/node_modules/moment/locale/el.js", 3182 "./el.js": "../autobahn_client_core/node_modules/moment/locale/el.js", 3183 "./en-au": "../autobahn_client_core/node_modules/moment/locale/en-au.js", 3184 "./en-au.js": "../autobahn_client_core/node_modules/moment/locale/en-au.js", 3185 "./en-ca": "../autobahn_client_core/node_modules/moment/locale/en-ca.js", 3186 "./en-ca.js": "../autobahn_client_core/node_modules/moment/locale/en-ca.js", 3187 "./en-gb": "../autobahn_client_core/node_modules/moment/locale/en-gb.js", 3188 "./en-gb.js": "../autobahn_client_core/node_modules/moment/locale/en-gb.js", 3189 "./en-ie": "../autobahn_client_core/node_modules/moment/locale/en-ie.js", 3190 "./en-ie.js": "../autobahn_client_core/node_modules/moment/locale/en-ie.js", 3191 "./en-il": "../autobahn_client_core/node_modules/moment/locale/en-il.js", 3192 "./en-il.js": "../autobahn_client_core/node_modules/moment/locale/en-il.js", 3193 "./en-in": "../autobahn_client_core/node_modules/moment/locale/en-in.js", 3194 "./en-in.js": "../autobahn_client_core/node_modules/moment/locale/en-in.js", 3195 "./en-nz": "../autobahn_client_core/node_modules/moment/locale/en-nz.js", 3196 "./en-nz.js": "../autobahn_client_core/node_modules/moment/locale/en-nz.js", 3197 "./en-sg": "../autobahn_client_core/node_modules/moment/locale/en-sg.js", 3198 "./en-sg.js": "../autobahn_client_core/node_modules/moment/locale/en-sg.js", 3199 "./eo": "../autobahn_client_core/node_modules/moment/locale/eo.js", 3200 "./eo.js": "../autobahn_client_core/node_modules/moment/locale/eo.js", 3201 "./es": "../autobahn_client_core/node_modules/moment/locale/es.js", 3202 "./es-do": "../autobahn_client_core/node_modules/moment/locale/es-do.js", 3203 "./es-do.js": "../autobahn_client_core/node_modules/moment/locale/es-do.js", 3204 "./es-mx": "../autobahn_client_core/node_modules/moment/locale/es-mx.js", 3205 "./es-mx.js": "../autobahn_client_core/node_modules/moment/locale/es-mx.js", 3206 "./es-us": "../autobahn_client_core/node_modules/moment/locale/es-us.js", 3207 "./es-us.js": "../autobahn_client_core/node_modules/moment/locale/es-us.js", 3208 "./es.js": "../autobahn_client_core/node_modules/moment/locale/es.js", 3209 "./et": "../autobahn_client_core/node_modules/moment/locale/et.js", 3210 "./et.js": "../autobahn_client_core/node_modules/moment/locale/et.js", 3211 "./eu": "../autobahn_client_core/node_modules/moment/locale/eu.js", 3212 "./eu.js": "../autobahn_client_core/node_modules/moment/locale/eu.js", 3213 "./fa": "../autobahn_client_core/node_modules/moment/locale/fa.js", 3214 "./fa.js": "../autobahn_client_core/node_modules/moment/locale/fa.js", 3215 "./fi": "../autobahn_client_core/node_modules/moment/locale/fi.js", 3216 "./fi.js": "../autobahn_client_core/node_modules/moment/locale/fi.js", 3217 "./fil": "../autobahn_client_core/node_modules/moment/locale/fil.js", 3218 "./fil.js": "../autobahn_client_core/node_modules/moment/locale/fil.js", 3219 "./fo": "../autobahn_client_core/node_modules/moment/locale/fo.js", 3220 "./fo.js": "../autobahn_client_core/node_modules/moment/locale/fo.js", 3221 "./fr": "../autobahn_client_core/node_modules/moment/locale/fr.js", 3222 "./fr-ca": "../autobahn_client_core/node_modules/moment/locale/fr-ca.js", 3223 "./fr-ca.js": "../autobahn_client_core/node_modules/moment/locale/fr-ca.js", 3224 "./fr-ch": "../autobahn_client_core/node_modules/moment/locale/fr-ch.js", 3225 "./fr-ch.js": "../autobahn_client_core/node_modules/moment/locale/fr-ch.js", 3226 "./fr.js": "../autobahn_client_core/node_modules/moment/locale/fr.js", 3227 "./fy": "../autobahn_client_core/node_modules/moment/locale/fy.js", 3228 "./fy.js": "../autobahn_client_core/node_modules/moment/locale/fy.js", 3229 "./ga": "../autobahn_client_core/node_modules/moment/locale/ga.js", 3230 "./ga.js": "../autobahn_client_core/node_modules/moment/locale/ga.js", 3231 "./gd": "../autobahn_client_core/node_modules/moment/locale/gd.js", 3232 "./gd.js": "../autobahn_client_core/node_modules/moment/locale/gd.js", 3233 "./gl": "../autobahn_client_core/node_modules/moment/locale/gl.js", 3234 "./gl.js": "../autobahn_client_core/node_modules/moment/locale/gl.js", 3235 "./gom-deva": "../autobahn_client_core/node_modules/moment/locale/gom-deva.js", 3236 "./gom-deva.js": "../autobahn_client_core/node_modules/moment/locale/gom-deva.js", 3237 "./gom-latn": "../autobahn_client_core/node_modules/moment/locale/gom-latn.js", 3238 "./gom-latn.js": "../autobahn_client_core/node_modules/moment/locale/gom-latn.js", 3239 "./gu": "../autobahn_client_core/node_modules/moment/locale/gu.js", 3240 "./gu.js": "../autobahn_client_core/node_modules/moment/locale/gu.js", 3241 "./he": "../autobahn_client_core/node_modules/moment/locale/he.js", 3242 "./he.js": "../autobahn_client_core/node_modules/moment/locale/he.js", 3243 "./hi": "../autobahn_client_core/node_modules/moment/locale/hi.js", 3244 "./hi.js": "../autobahn_client_core/node_modules/moment/locale/hi.js", 3245 "./hr": "../autobahn_client_core/node_modules/moment/locale/hr.js", 3246 "./hr.js": "../autobahn_client_core/node_modules/moment/locale/hr.js", 3247 "./hu": "../autobahn_client_core/node_modules/moment/locale/hu.js", 3248 "./hu.js": "../autobahn_client_core/node_modules/moment/locale/hu.js", 3249 "./hy-am": "../autobahn_client_core/node_modules/moment/locale/hy-am.js", 3250 "./hy-am.js": "../autobahn_client_core/node_modules/moment/locale/hy-am.js", 3251 "./id": "../autobahn_client_core/node_modules/moment/locale/id.js", 3252 "./id.js": "../autobahn_client_core/node_modules/moment/locale/id.js", 3253 "./is": "../autobahn_client_core/node_modules/moment/locale/is.js", 3254 "./is.js": "../autobahn_client_core/node_modules/moment/locale/is.js", 3255 "./it": "../autobahn_client_core/node_modules/moment/locale/it.js", 3256 "./it-ch": "../autobahn_client_core/node_modules/moment/locale/it-ch.js", 3257 "./it-ch.js": "../autobahn_client_core/node_modules/moment/locale/it-ch.js", 3258 "./it.js": "../autobahn_client_core/node_modules/moment/locale/it.js", 3259 "./ja": "../autobahn_client_core/node_modules/moment/locale/ja.js", 3260 "./ja.js": "../autobahn_client_core/node_modules/moment/locale/ja.js", 3261 "./jv": "../autobahn_client_core/node_modules/moment/locale/jv.js", 3262 "./jv.js": "../autobahn_client_core/node_modules/moment/locale/jv.js", 3263 "./ka": "../autobahn_client_core/node_modules/moment/locale/ka.js", 3264 "./ka.js": "../autobahn_client_core/node_modules/moment/locale/ka.js", 3265 "./kk": "../autobahn_client_core/node_modules/moment/locale/kk.js", 3266 "./kk.js": "../autobahn_client_core/node_modules/moment/locale/kk.js", 3267 "./km": "../autobahn_client_core/node_modules/moment/locale/km.js", 3268 "./km.js": "../autobahn_client_core/node_modules/moment/locale/km.js", 3269 "./kn": "../autobahn_client_core/node_modules/moment/locale/kn.js", 3270 "./kn.js": "../autobahn_client_core/node_modules/moment/locale/kn.js", 3271 "./ko": "../autobahn_client_core/node_modules/moment/locale/ko.js", 3272 "./ko.js": "../autobahn_client_core/node_modules/moment/locale/ko.js", 3273 "./ku": "../autobahn_client_core/node_modules/moment/locale/ku.js", 3274 "./ku.js": "../autobahn_client_core/node_modules/moment/locale/ku.js", 3275 "./ky": "../autobahn_client_core/node_modules/moment/locale/ky.js", 3276 "./ky.js": "../autobahn_client_core/node_modules/moment/locale/ky.js", 3277 "./lb": "../autobahn_client_core/node_modules/moment/locale/lb.js", 3278 "./lb.js": "../autobahn_client_core/node_modules/moment/locale/lb.js", 3279 "./lo": "../autobahn_client_core/node_modules/moment/locale/lo.js", 3280 "./lo.js": "../autobahn_client_core/node_modules/moment/locale/lo.js", 3281 "./lt": "../autobahn_client_core/node_modules/moment/locale/lt.js", 3282 "./lt.js": "../autobahn_client_core/node_modules/moment/locale/lt.js", 3283 "./lv": "../autobahn_client_core/node_modules/moment/locale/lv.js", 3284 "./lv.js": "../autobahn_client_core/node_modules/moment/locale/lv.js", 3285 "./me": "../autobahn_client_core/node_modules/moment/locale/me.js", 3286 "./me.js": "../autobahn_client_core/node_modules/moment/locale/me.js", 3287 "./mi": "../autobahn_client_core/node_modules/moment/locale/mi.js", 3288 "./mi.js": "../autobahn_client_core/node_modules/moment/locale/mi.js", 3289 "./mk": "../autobahn_client_core/node_modules/moment/locale/mk.js", 3290 "./mk.js": "../autobahn_client_core/node_modules/moment/locale/mk.js", 3291 "./ml": "../autobahn_client_core/node_modules/moment/locale/ml.js", 3292 "./ml.js": "../autobahn_client_core/node_modules/moment/locale/ml.js", 3293 "./mn": "../autobahn_client_core/node_modules/moment/locale/mn.js", 3294 "./mn.js": "../autobahn_client_core/node_modules/moment/locale/mn.js", 3295 "./mr": "../autobahn_client_core/node_modules/moment/locale/mr.js", 3296 "./mr.js": "../autobahn_client_core/node_modules/moment/locale/mr.js", 3297 "./ms": "../autobahn_client_core/node_modules/moment/locale/ms.js", 3298 "./ms-my": "../autobahn_client_core/node_modules/moment/locale/ms-my.js", 3299 "./ms-my.js": "../autobahn_client_core/node_modules/moment/locale/ms-my.js", 3300 "./ms.js": "../autobahn_client_core/node_modules/moment/locale/ms.js", 3301 "./mt": "../autobahn_client_core/node_modules/moment/locale/mt.js", 3302 "./mt.js": "../autobahn_client_core/node_modules/moment/locale/mt.js", 3303 "./my": "../autobahn_client_core/node_modules/moment/locale/my.js", 3304 "./my.js": "../autobahn_client_core/node_modules/moment/locale/my.js", 3305 "./nb": "../autobahn_client_core/node_modules/moment/locale/nb.js", 3306 "./nb.js": "../autobahn_client_core/node_modules/moment/locale/nb.js", 3307 "./ne": "../autobahn_client_core/node_modules/moment/locale/ne.js", 3308 "./ne.js": "../autobahn_client_core/node_modules/moment/locale/ne.js", 3309 "./nl": "../autobahn_client_core/node_modules/moment/locale/nl.js", 3310 "./nl-be": "../autobahn_client_core/node_modules/moment/locale/nl-be.js", 3311 "./nl-be.js": "../autobahn_client_core/node_modules/moment/locale/nl-be.js", 3312 "./nl.js": "../autobahn_client_core/node_modules/moment/locale/nl.js", 3313 "./nn": "../autobahn_client_core/node_modules/moment/locale/nn.js", 3314 "./nn.js": "../autobahn_client_core/node_modules/moment/locale/nn.js", 3315 "./oc-lnc": "../autobahn_client_core/node_modules/moment/locale/oc-lnc.js", 3316 "./oc-lnc.js": "../autobahn_client_core/node_modules/moment/locale/oc-lnc.js", 3317 "./pa-in": "../autobahn_client_core/node_modules/moment/locale/pa-in.js", 3318 "./pa-in.js": "../autobahn_client_core/node_modules/moment/locale/pa-in.js", 3319 "./pl": "../autobahn_client_core/node_modules/moment/locale/pl.js", 3320 "./pl.js": "../autobahn_client_core/node_modules/moment/locale/pl.js", 3321 "./pt": "../autobahn_client_core/node_modules/moment/locale/pt.js", 3322 "./pt-br": "../autobahn_client_core/node_modules/moment/locale/pt-br.js", 3323 "./pt-br.js": "../autobahn_client_core/node_modules/moment/locale/pt-br.js", 3324 "./pt.js": "../autobahn_client_core/node_modules/moment/locale/pt.js", 3325 "./ro": "../autobahn_client_core/node_modules/moment/locale/ro.js", 3326 "./ro.js": "../autobahn_client_core/node_modules/moment/locale/ro.js", 3327 "./ru": "../autobahn_client_core/node_modules/moment/locale/ru.js", 3328 "./ru.js": "../autobahn_client_core/node_modules/moment/locale/ru.js", 3329 "./sd": "../autobahn_client_core/node_modules/moment/locale/sd.js", 3330 "./sd.js": "../autobahn_client_core/node_modules/moment/locale/sd.js", 3331 "./se": "../autobahn_client_core/node_modules/moment/locale/se.js", 3332 "./se.js": "../autobahn_client_core/node_modules/moment/locale/se.js", 3333 "./si": "../autobahn_client_core/node_modules/moment/locale/si.js", 3334 "./si.js": "../autobahn_client_core/node_modules/moment/locale/si.js", 3335 "./sk": "../autobahn_client_core/node_modules/moment/locale/sk.js", 3336 "./sk.js": "../autobahn_client_core/node_modules/moment/locale/sk.js", 3337 "./sl": "../autobahn_client_core/node_modules/moment/locale/sl.js", 3338 "./sl.js": "../autobahn_client_core/node_modules/moment/locale/sl.js", 3339 "./sq": "../autobahn_client_core/node_modules/moment/locale/sq.js", 3340 "./sq.js": "../autobahn_client_core/node_modules/moment/locale/sq.js", 3341 "./sr": "../autobahn_client_core/node_modules/moment/locale/sr.js", 3342 "./sr-cyrl": "../autobahn_client_core/node_modules/moment/locale/sr-cyrl.js", 3343 "./sr-cyrl.js": "../autobahn_client_core/node_modules/moment/locale/sr-cyrl.js", 3344 "./sr.js": "../autobahn_client_core/node_modules/moment/locale/sr.js", 3345 "./ss": "../autobahn_client_core/node_modules/moment/locale/ss.js", 3346 "./ss.js": "../autobahn_client_core/node_modules/moment/locale/ss.js", 3347 "./sv": "../autobahn_client_core/node_modules/moment/locale/sv.js", 3348 "./sv.js": "../autobahn_client_core/node_modules/moment/locale/sv.js", 3349 "./sw": "../autobahn_client_core/node_modules/moment/locale/sw.js", 3350 "./sw.js": "../autobahn_client_core/node_modules/moment/locale/sw.js", 3351 "./ta": "../autobahn_client_core/node_modules/moment/locale/ta.js", 3352 "./ta.js": "../autobahn_client_core/node_modules/moment/locale/ta.js", 3353 "./te": "../autobahn_client_core/node_modules/moment/locale/te.js", 3354 "./te.js": "../autobahn_client_core/node_modules/moment/locale/te.js", 3355 "./tet": "../autobahn_client_core/node_modules/moment/locale/tet.js", 3356 "./tet.js": "../autobahn_client_core/node_modules/moment/locale/tet.js", 3357 "./tg": "../autobahn_client_core/node_modules/moment/locale/tg.js", 3358 "./tg.js": "../autobahn_client_core/node_modules/moment/locale/tg.js", 3359 "./th": "../autobahn_client_core/node_modules/moment/locale/th.js", 3360 "./th.js": "../autobahn_client_core/node_modules/moment/locale/th.js", 3361 "./tk": "../autobahn_client_core/node_modules/moment/locale/tk.js", 3362 "./tk.js": "../autobahn_client_core/node_modules/moment/locale/tk.js", 3363 "./tl-ph": "../autobahn_client_core/node_modules/moment/locale/tl-ph.js", 3364 "./tl-ph.js": "../autobahn_client_core/node_modules/moment/locale/tl-ph.js", 3365 "./tlh": "../autobahn_client_core/node_modules/moment/locale/tlh.js", 3366 "./tlh.js": "../autobahn_client_core/node_modules/moment/locale/tlh.js", 3367 "./tr": "../autobahn_client_core/node_modules/moment/locale/tr.js", 3368 "./tr.js": "../autobahn_client_core/node_modules/moment/locale/tr.js", 3369 "./tzl": "../autobahn_client_core/node_modules/moment/locale/tzl.js", 3370 "./tzl.js": "../autobahn_client_core/node_modules/moment/locale/tzl.js", 3371 "./tzm": "../autobahn_client_core/node_modules/moment/locale/tzm.js", 3372 "./tzm-latn": "../autobahn_client_core/node_modules/moment/locale/tzm-latn.js", 3373 "./tzm-latn.js": "../autobahn_client_core/node_modules/moment/locale/tzm-latn.js", 3374 "./tzm.js": "../autobahn_client_core/node_modules/moment/locale/tzm.js", 3375 "./ug-cn": "../autobahn_client_core/node_modules/moment/locale/ug-cn.js", 3376 "./ug-cn.js": "../autobahn_client_core/node_modules/moment/locale/ug-cn.js", 3377 "./uk": "../autobahn_client_core/node_modules/moment/locale/uk.js", 3378 "./uk.js": "../autobahn_client_core/node_modules/moment/locale/uk.js", 3379 "./ur": "../autobahn_client_core/node_modules/moment/locale/ur.js", 3380 "./ur.js": "../autobahn_client_core/node_modules/moment/locale/ur.js", 3381 "./uz": "../autobahn_client_core/node_modules/moment/locale/uz.js", 3382 "./uz-latn": "../autobahn_client_core/node_modules/moment/locale/uz-latn.js", 3383 "./uz-latn.js": "../autobahn_client_core/node_modules/moment/locale/uz-latn.js", 3384 "./uz.js": "../autobahn_client_core/node_modules/moment/locale/uz.js", 3385 "./vi": "../autobahn_client_core/node_modules/moment/locale/vi.js", 3386 "./vi.js": "../autobahn_client_core/node_modules/moment/locale/vi.js", 3387 "./x-pseudo": "../autobahn_client_core/node_modules/moment/locale/x-pseudo.js", 3388 "./x-pseudo.js": "../autobahn_client_core/node_modules/moment/locale/x-pseudo.js", 3389 "./yo": "../autobahn_client_core/node_modules/moment/locale/yo.js", 3390 "./yo.js": "../autobahn_client_core/node_modules/moment/locale/yo.js", 3391 "./zh-cn": "../autobahn_client_core/node_modules/moment/locale/zh-cn.js", 3392 "./zh-cn.js": "../autobahn_client_core/node_modules/moment/locale/zh-cn.js", 3393 "./zh-hk": "../autobahn_client_core/node_modules/moment/locale/zh-hk.js", 3394 "./zh-hk.js": "../autobahn_client_core/node_modules/moment/locale/zh-hk.js", 3395 "./zh-mo": "../autobahn_client_core/node_modules/moment/locale/zh-mo.js", 3396 "./zh-mo.js": "../autobahn_client_core/node_modules/moment/locale/zh-mo.js", 3397 "./zh-tw": "../autobahn_client_core/node_modules/moment/locale/zh-tw.js", 3398 "./zh-tw.js": "../autobahn_client_core/node_modules/moment/locale/zh-tw.js" 3399}; 3400 3401 3402function webpackContext(req) { 3403 var id = webpackContextResolve(req); 3404 return __webpack_require__(id); 3405} 3406function webpackContextResolve(req) { 3407 if(!__webpack_require__.o(map, req)) { 3408 var e = new Error("Cannot find module '" + req + "'"); 3409 e.code = 'MODULE_NOT_FOUND'; 3410 throw e; 3411 } 3412 return map[req]; 3413} 3414webpackContext.keys = function webpackContextKeys() { 3415 return Object.keys(map); 3416}; 3417webpackContext.resolve = webpackContextResolve; 3418module.exports = webpackContext; 3419webpackContext.id = "../autobahn_client_core/node_modules/moment/locale sync recursive ^\\.\\/.*$"; 3420 3421/***/ }), 3422
vendor: 3,707 bytes, lines 3423-3509
3423/***/ "../autobahn_client_core/node_modules/moment/locale/af.js": 3424/*!****************************************************************!*\ 3425 !*** ../autobahn_client_core/node_modules/moment/locale/af.js ***! 3426 \****************************************************************/ 3427/*! no static exports found */ 3428/***/ (function(module, exports, __webpack_require__) { 3429 3430var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 3431 3432//! moment.js locale configuration 3433//! locale : Afrikaans [af] 3434//! author : Werner Mollentze : https://github.com/wernerm 3435; 3436 3437(function (global, factory) { 3438 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 3439 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 3440 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 3441 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 3442})(this, function (moment) { 3443 'use strict'; //! moment.js locale configuration 3444 3445 var af = moment.defineLocale('af', { 3446 months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'), 3447 monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), 3448 weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'), 3449 weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), 3450 weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), 3451 meridiemParse: /vm|nm/i, 3452 isPM: function isPM(input) { 3453 return /^nm$/i.test(input); 3454 }, 3455 meridiem: function meridiem(hours, minutes, isLower) { 3456 if (hours < 12) { 3457 return isLower ? 'vm' : 'VM'; 3458 } else { 3459 return isLower ? 'nm' : 'NM'; 3460 } 3461 }, 3462 longDateFormat: { 3463 LT: 'HH:mm', 3464 LTS: 'HH:mm:ss', 3465 L: 'DD/MM/YYYY', 3466 LL: 'D MMMM YYYY', 3467 LLL: 'D MMMM YYYY HH:mm', 3468 LLLL: 'dddd, D MMMM YYYY HH:mm' 3469 }, 3470 calendar: { 3471 sameDay: '[Vandag om] LT', 3472 nextDay: '[Môre om] LT', 3473 nextWeek: 'dddd [om] LT', 3474 lastDay: '[Gister om] LT', 3475 lastWeek: '[Laas] dddd [om] LT', 3476 sameElse: 'L' 3477 }, 3478 relativeTime: { 3479 future: 'oor %s', 3480 past: '%s gelede', 3481 s: "'n paar sekondes", 3482 ss: '%d sekondes', 3483 m: "'n minuut", 3484 mm: '%d minute', 3485 h: "'n uur", 3486 hh: '%d ure', 3487 d: "'n dag", 3488 dd: '%d dae', 3489 M: "'n maand", 3490 MM: '%d maande', 3491 y: "'n jaar", 3492 yy: '%d jaar' 3493 }, 3494 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 3495 ordinal: function ordinal(number) { 3496 return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter 3497 }, 3498 week: { 3499 dow: 1, 3500 // Maandag is die eerste dag van die week. 3501 doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. 3502 3503 } 3504 }); 3505 return af; 3506}); 3507 3508/***/ }), 3509
vendor: 5,317 bytes, lines 3510-3625
3510/***/ "../autobahn_client_core/node_modules/moment/locale/ar-dz.js": 3511/*!*******************************************************************!*\ 3512 !*** ../autobahn_client_core/node_modules/moment/locale/ar-dz.js ***! 3513 \*******************************************************************/ 3514/*! no static exports found */ 3515/***/ (function(module, exports, __webpack_require__) { 3516 3517var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 3518 3519//! moment.js locale configuration 3520//! locale : Arabic (Algeria) [ar-dz] 3521//! author : Amine Roukh: https://github.com/Amine27 3522//! author : Abdel Said: https://github.com/abdelsaid 3523//! author : Ahmed Elkhatib 3524//! author : forabi https://github.com/forabi 3525//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem 3526; 3527 3528(function (global, factory) { 3529 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 3530 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 3531 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 3532 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 3533})(this, function (moment) { 3534 'use strict'; //! moment.js locale configuration 3535 3536 var pluralForm = function pluralForm(n) { 3537 return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; 3538 }, 3539 plurals = { 3540 s: ['Ø£Ù٠٠٠ثاÙÙØ©', 'ثاÙÙØ© ÙØ§ØØ¯Ø©', ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], '%d Ø«ÙØ§Ù', '%d ثاÙÙØ©', '%d ثاÙÙØ©'], 3541 m: ['Ø£Ù٠٠٠دÙÙÙØ©', 'دÙÙÙØ© ÙØ§ØØ¯Ø©', ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], '%d Ø¯ÙØ§Ø¦Ù', '%d دÙÙÙØ©', '%d دÙÙÙØ©'], 3542 h: ['Ø£Ù٠٠٠ساعة', 'ساعة ÙØ§ØØ¯Ø©', ['ساعتاÙ', 'ساعتÙÙ'], '%d ساعات', '%d ساعة', '%d ساعة'], 3543 d: ['Ø£ÙÙ Ù Ù ÙÙÙ ', 'ÙÙÙ ÙØ§ØØ¯', ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], '%d Ø£ÙØ§Ù ', '%d ÙÙÙ ÙØ§', '%d ÙÙÙ '], 3544 M: ['Ø£ÙÙ Ù Ù Ø´ÙØ±', 'Ø´ÙØ± ÙØ§ØØ¯', ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], '%d Ø£Ø´ÙØ±', '%d Ø´ÙØ±Ø§', '%d Ø´ÙØ±'], 3545 y: ['Ø£Ù٠٠٠عا٠', 'Ø¹Ø§Ù ÙØ§ØØ¯', ['عا٠اÙ', 'عا٠ÙÙ'], '%d Ø£Ø¹ÙØ§Ù ', '%d Ø¹Ø§Ù ÙØ§', '%d عا٠'] 3546 }, 3547 pluralize = function pluralize(u) { 3548 return function (number, withoutSuffix, string, isFuture) { 3549 var f = pluralForm(number), 3550 str = plurals[u][pluralForm(number)]; 3551 3552 if (f === 2) { 3553 str = str[withoutSuffix ? 0 : 1]; 3554 } 3555 3556 return str.replace(/%d/i, number); 3557 }; 3558 }, 3559 months = ['جاÙÙÙ', 'ÙÙÙØ±Ù', '٠ارس', 'Ø£ÙØ±ÙÙ', '٠اÙ', 'Ø¬ÙØ§Ù', 'جÙÙÙÙØ©', 'Ø£ÙØª', 'سبت٠بر', 'Ø£ÙØªÙبر', 'ÙÙÙ٠بر', 'Ø¯ÙØ³Ù بر']; 3560 3561 var arDz = moment.defineLocale('ar-dz', { 3562 months: months, 3563 monthsShort: months, 3564 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 3565 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 3566 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 3567 weekdaysParseExact: true, 3568 longDateFormat: { 3569 LT: 'HH:mm', 3570 LTS: 'HH:mm:ss', 3571 L: "D/\u200FM/\u200FYYYY", 3572 LL: 'D MMMM YYYY', 3573 LLL: 'D MMMM YYYY HH:mm', 3574 LLLL: 'dddd D MMMM YYYY HH:mm' 3575 }, 3576 meridiemParse: /ص|Ù /, 3577 isPM: function isPM(input) { 3578 return 'Ù ' === input; 3579 }, 3580 meridiem: function meridiem(hour, minute, isLower) { 3581 if (hour < 12) { 3582 return 'ص'; 3583 } else { 3584 return 'Ù '; 3585 } 3586 }, 3587 calendar: { 3588 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3589 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3590 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3591 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3592 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3593 sameElse: 'L' 3594 }, 3595 relativeTime: { 3596 future: 'بعد %s', 3597 past: 'Ù ÙØ° %s', 3598 s: pluralize('s'), 3599 ss: pluralize('s'), 3600 m: pluralize('m'), 3601 mm: pluralize('m'), 3602 h: pluralize('h'), 3603 hh: pluralize('h'), 3604 d: pluralize('d'), 3605 dd: pluralize('d'), 3606 M: pluralize('M'), 3607 MM: pluralize('M'), 3608 y: pluralize('y'), 3609 yy: pluralize('y') 3610 }, 3611 postformat: function postformat(string) { 3612 return string.replace(/,/g, 'Ø'); 3613 }, 3614 week: { 3615 dow: 0, 3616 // Sunday is the first day of the week. 3617 doy: 4 // The week that contains Jan 4th is the first week of the year. 3618 3619 } 3620 }); 3621 return arDz; 3622}); 3623 3624/***/ }), 3625
vendor: 3,527 bytes, lines 3626-3698
3626/***/ "../autobahn_client_core/node_modules/moment/locale/ar-kw.js": 3627/*!*******************************************************************!*\ 3628 !*** ../autobahn_client_core/node_modules/moment/locale/ar-kw.js ***! 3629 \*******************************************************************/ 3630/*! no static exports found */ 3631/***/ (function(module, exports, __webpack_require__) { 3632 3633var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 3634 3635//! moment.js locale configuration 3636//! locale : Arabic (Kuwait) [ar-kw] 3637//! author : Nusret Parlak: https://github.com/nusretparlak 3638; 3639 3640(function (global, factory) { 3641 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 3642 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 3643 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 3644 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 3645})(this, function (moment) { 3646 'use strict'; //! moment.js locale configuration 3647 3648 var arKw = moment.defineLocale('ar-kw', { 3649 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split('_'), 3650 monthsShort: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split('_'), 3651 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥ØªÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 3652 weekdaysShort: 'Ø§ØØ¯_اتÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_اربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 3653 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 3654 weekdaysParseExact: true, 3655 longDateFormat: { 3656 LT: 'HH:mm', 3657 LTS: 'HH:mm:ss', 3658 L: 'DD/MM/YYYY', 3659 LL: 'D MMMM YYYY', 3660 LLL: 'D MMMM YYYY HH:mm', 3661 LLLL: 'dddd D MMMM YYYY HH:mm' 3662 }, 3663 calendar: { 3664 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3665 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3666 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3667 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3668 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3669 sameElse: 'L' 3670 }, 3671 relativeTime: { 3672 future: 'ÙÙ %s', 3673 past: 'Ù ÙØ° %s', 3674 s: 'Ø«ÙØ§Ù', 3675 ss: '%d ثاÙÙØ©', 3676 m: 'دÙÙÙØ©', 3677 mm: '%d Ø¯ÙØ§Ø¦Ù', 3678 h: 'ساعة', 3679 hh: '%d ساعات', 3680 d: 'ÙÙÙ ', 3681 dd: '%d Ø£ÙØ§Ù ', 3682 M: 'Ø´ÙØ±', 3683 MM: '%d Ø£Ø´ÙØ±', 3684 y: 'Ø³ÙØ©', 3685 yy: '%d سÙÙØ§Øª' 3686 }, 3687 week: { 3688 dow: 0, 3689 // Sunday is the first day of the week. 3690 doy: 12 // The week that contains Jan 12th is the first week of the year. 3691 3692 } 3693 }); 3694 return arKw; 3695}); 3696 3697/***/ }), 3698
vendor: 5,441 bytes, lines 3699-3827
3699/***/ "../autobahn_client_core/node_modules/moment/locale/ar-ly.js": 3700/*!*******************************************************************!*\ 3701 !*** ../autobahn_client_core/node_modules/moment/locale/ar-ly.js ***! 3702 \*******************************************************************/ 3703/*! no static exports found */ 3704/***/ (function(module, exports, __webpack_require__) { 3705 3706var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 3707 3708//! moment.js locale configuration 3709//! locale : Arabic (Libya) [ar-ly] 3710//! author : Ali Hmer: https://github.com/kikoanis 3711; 3712 3713(function (global, factory) { 3714 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 3715 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 3716 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 3717 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 3718})(this, function (moment) { 3719 'use strict'; //! moment.js locale configuration 3720 3721 var symbolMap = { 3722 1: '1', 3723 2: '2', 3724 3: '3', 3725 4: '4', 3726 5: '5', 3727 6: '6', 3728 7: '7', 3729 8: '8', 3730 9: '9', 3731 0: '0' 3732 }, 3733 pluralForm = function pluralForm(n) { 3734 return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; 3735 }, 3736 plurals = { 3737 s: ['Ø£Ù٠٠٠ثاÙÙØ©', 'ثاÙÙØ© ÙØ§ØØ¯Ø©', ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], '%d Ø«ÙØ§Ù', '%d ثاÙÙØ©', '%d ثاÙÙØ©'], 3738 m: ['Ø£Ù٠٠٠دÙÙÙØ©', 'دÙÙÙØ© ÙØ§ØØ¯Ø©', ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], '%d Ø¯ÙØ§Ø¦Ù', '%d دÙÙÙØ©', '%d دÙÙÙØ©'], 3739 h: ['Ø£Ù٠٠٠ساعة', 'ساعة ÙØ§ØØ¯Ø©', ['ساعتاÙ', 'ساعتÙÙ'], '%d ساعات', '%d ساعة', '%d ساعة'], 3740 d: ['Ø£ÙÙ Ù Ù ÙÙÙ ', 'ÙÙÙ ÙØ§ØØ¯', ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], '%d Ø£ÙØ§Ù ', '%d ÙÙÙ ÙØ§', '%d ÙÙÙ '], 3741 M: ['Ø£ÙÙ Ù Ù Ø´ÙØ±', 'Ø´ÙØ± ÙØ§ØØ¯', ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], '%d Ø£Ø´ÙØ±', '%d Ø´ÙØ±Ø§', '%d Ø´ÙØ±'], 3742 y: ['Ø£Ù٠٠٠عا٠', 'Ø¹Ø§Ù ÙØ§ØØ¯', ['عا٠اÙ', 'عا٠ÙÙ'], '%d Ø£Ø¹ÙØ§Ù ', '%d Ø¹Ø§Ù ÙØ§', '%d عا٠'] 3743 }, 3744 pluralize = function pluralize(u) { 3745 return function (number, withoutSuffix, string, isFuture) { 3746 var f = pluralForm(number), 3747 str = plurals[u][pluralForm(number)]; 3748 3749 if (f === 2) { 3750 str = str[withoutSuffix ? 0 : 1]; 3751 } 3752 3753 return str.replace(/%d/i, number); 3754 }; 3755 }, 3756 months = ['ÙÙØ§Ùر', 'ÙØ¨Ø±Ø§Ùر', '٠ارس', 'أبرÙÙ', '٠اÙÙ', 'ÙÙÙÙÙ', 'ÙÙÙÙÙ', 'أغسطس', 'سبت٠بر', 'Ø£ÙØªÙبر', 'ÙÙÙ٠بر', 'Ø¯ÙØ³Ù بر']; 3757 3758 var arLy = moment.defineLocale('ar-ly', { 3759 months: months, 3760 monthsShort: months, 3761 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 3762 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 3763 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 3764 weekdaysParseExact: true, 3765 longDateFormat: { 3766 LT: 'HH:mm', 3767 LTS: 'HH:mm:ss', 3768 L: "D/\u200FM/\u200FYYYY", 3769 LL: 'D MMMM YYYY', 3770 LLL: 'D MMMM YYYY HH:mm', 3771 LLLL: 'dddd D MMMM YYYY HH:mm' 3772 }, 3773 meridiemParse: /ص|Ù /, 3774 isPM: function isPM(input) { 3775 return 'Ù ' === input; 3776 }, 3777 meridiem: function meridiem(hour, minute, isLower) { 3778 if (hour < 12) { 3779 return 'ص'; 3780 } else { 3781 return 'Ù '; 3782 } 3783 }, 3784 calendar: { 3785 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3786 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3787 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3788 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3789 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3790 sameElse: 'L' 3791 }, 3792 relativeTime: { 3793 future: 'بعد %s', 3794 past: 'Ù ÙØ° %s', 3795 s: pluralize('s'), 3796 ss: pluralize('s'), 3797 m: pluralize('m'), 3798 mm: pluralize('m'), 3799 h: pluralize('h'), 3800 hh: pluralize('h'), 3801 d: pluralize('d'), 3802 dd: pluralize('d'), 3803 M: pluralize('M'), 3804 MM: pluralize('M'), 3805 y: pluralize('y'), 3806 yy: pluralize('y') 3807 }, 3808 preparse: function preparse(string) { 3809 return string.replace(/Ø/g, ','); 3810 }, 3811 postformat: function postformat(string) { 3812 return string.replace(/\d/g, function (match) { 3813 return symbolMap[match]; 3814 }).replace(/,/g, 'Ø'); 3815 }, 3816 week: { 3817 dow: 6, 3818 // Saturday is the first day of the week. 3819 doy: 12 // The week that contains Jan 12th is the first week of the year. 3820 3821 } 3822 }); 3823 return arLy; 3824}); 3825 3826/***/ }), 3827
vendor: 3,582 bytes, lines 3828-3901
3828/***/ "../autobahn_client_core/node_modules/moment/locale/ar-ma.js": 3829/*!*******************************************************************!*\ 3830 !*** ../autobahn_client_core/node_modules/moment/locale/ar-ma.js ***! 3831 \*******************************************************************/ 3832/*! no static exports found */ 3833/***/ (function(module, exports, __webpack_require__) { 3834 3835var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 3836 3837//! moment.js locale configuration 3838//! locale : Arabic (Morocco) [ar-ma] 3839//! author : ElFadili Yassine : https://github.com/ElFadiliY 3840//! author : Abdel Said : https://github.com/abdelsaid 3841; 3842 3843(function (global, factory) { 3844 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 3845 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 3846 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 3847 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 3848})(this, function (moment) { 3849 'use strict'; //! moment.js locale configuration 3850 3851 var arMa = moment.defineLocale('ar-ma', { 3852 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split('_'), 3853 monthsShort: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split('_'), 3854 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 3855 weekdaysShort: 'Ø§ØØ¯_اثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_اربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 3856 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 3857 weekdaysParseExact: true, 3858 longDateFormat: { 3859 LT: 'HH:mm', 3860 LTS: 'HH:mm:ss', 3861 L: 'DD/MM/YYYY', 3862 LL: 'D MMMM YYYY', 3863 LLL: 'D MMMM YYYY HH:mm', 3864 LLLL: 'dddd D MMMM YYYY HH:mm' 3865 }, 3866 calendar: { 3867 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3868 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3869 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3870 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3871 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3872 sameElse: 'L' 3873 }, 3874 relativeTime: { 3875 future: 'ÙÙ %s', 3876 past: 'Ù ÙØ° %s', 3877 s: 'Ø«ÙØ§Ù', 3878 ss: '%d ثاÙÙØ©', 3879 m: 'دÙÙÙØ©', 3880 mm: '%d Ø¯ÙØ§Ø¦Ù', 3881 h: 'ساعة', 3882 hh: '%d ساعات', 3883 d: 'ÙÙÙ ', 3884 dd: '%d Ø£ÙØ§Ù ', 3885 M: 'Ø´ÙØ±', 3886 MM: '%d Ø£Ø´ÙØ±', 3887 y: 'Ø³ÙØ©', 3888 yy: '%d سÙÙØ§Øª' 3889 }, 3890 week: { 3891 dow: 1, 3892 // Monday is the first day of the week. 3893 doy: 4 // The week that contains Jan 4th is the first week of the year. 3894 3895 } 3896 }); 3897 return arMa; 3898}); 3899 3900/***/ }), 3901
vendor: 4,482 bytes, lines 3902-4019
3902/***/ "../autobahn_client_core/node_modules/moment/locale/ar-sa.js": 3903/*!*******************************************************************!*\ 3904 !*** ../autobahn_client_core/node_modules/moment/locale/ar-sa.js ***! 3905 \*******************************************************************/ 3906/*! no static exports found */ 3907/***/ (function(module, exports, __webpack_require__) { 3908 3909var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 3910 3911//! moment.js locale configuration 3912//! locale : Arabic (Saudi Arabia) [ar-sa] 3913//! author : Suhail Alkowaileet : https://github.com/xsoh 3914; 3915 3916(function (global, factory) { 3917 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 3918 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 3919 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 3920 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 3921})(this, function (moment) { 3922 'use strict'; //! moment.js locale configuration 3923 3924 var symbolMap = { 3925 1: 'Ù¡', 3926 2: 'Ù¢', 3927 3: 'Ù£', 3928 4: 'Ù¤', 3929 5: 'Ù¥', 3930 6: 'Ù¦', 3931 7: 'Ù§', 3932 8: 'Ù¨', 3933 9: 'Ù©', 3934 0: 'Ù ' 3935 }, 3936 numberMap = { 3937 'Ù¡': '1', 3938 'Ù¢': '2', 3939 'Ù£': '3', 3940 'Ù¤': '4', 3941 'Ù¥': '5', 3942 'Ù¦': '6', 3943 'Ù§': '7', 3944 'Ù¨': '8', 3945 'Ù©': '9', 3946 'Ù ': '0' 3947 }; 3948 var arSa = moment.defineLocale('ar-sa', { 3949 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙÙ_ÙÙÙÙÙ_ÙÙÙÙÙ_أغسطس_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split('_'), 3950 monthsShort: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙÙ_ÙÙÙÙÙ_ÙÙÙÙÙ_أغسطس_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split('_'), 3951 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 3952 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 3953 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 3954 weekdaysParseExact: true, 3955 longDateFormat: { 3956 LT: 'HH:mm', 3957 LTS: 'HH:mm:ss', 3958 L: 'DD/MM/YYYY', 3959 LL: 'D MMMM YYYY', 3960 LLL: 'D MMMM YYYY HH:mm', 3961 LLLL: 'dddd D MMMM YYYY HH:mm' 3962 }, 3963 meridiemParse: /ص|Ù /, 3964 isPM: function isPM(input) { 3965 return 'Ù ' === input; 3966 }, 3967 meridiem: function meridiem(hour, minute, isLower) { 3968 if (hour < 12) { 3969 return 'ص'; 3970 } else { 3971 return 'Ù '; 3972 } 3973 }, 3974 calendar: { 3975 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3976 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3977 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3978 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3979 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 3980 sameElse: 'L' 3981 }, 3982 relativeTime: { 3983 future: 'ÙÙ %s', 3984 past: 'Ù ÙØ° %s', 3985 s: 'Ø«ÙØ§Ù', 3986 ss: '%d ثاÙÙØ©', 3987 m: 'دÙÙÙØ©', 3988 mm: '%d Ø¯ÙØ§Ø¦Ù', 3989 h: 'ساعة', 3990 hh: '%d ساعات', 3991 d: 'ÙÙÙ ', 3992 dd: '%d Ø£ÙØ§Ù ', 3993 M: 'Ø´ÙØ±', 3994 MM: '%d Ø£Ø´ÙØ±', 3995 y: 'Ø³ÙØ©', 3996 yy: '%d سÙÙØ§Øª' 3997 }, 3998 preparse: function preparse(string) { 3999 return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 4000 return numberMap[match]; 4001 }).replace(/Ø/g, ','); 4002 }, 4003 postformat: function postformat(string) { 4004 return string.replace(/\d/g, function (match) { 4005 return symbolMap[match]; 4006 }).replace(/,/g, 'Ø'); 4007 }, 4008 week: { 4009 dow: 0, 4010 // Sunday is the first day of the week. 4011 doy: 6 // The week that contains Jan 6th is the first week of the year. 4012 4013 } 4014 }); 4015 return arSa; 4016}); 4017 4018/***/ }), 4019
vendor: 3,529 bytes, lines 4020-4092
4020/***/ "../autobahn_client_core/node_modules/moment/locale/ar-tn.js": 4021/*!*******************************************************************!*\ 4022 !*** ../autobahn_client_core/node_modules/moment/locale/ar-tn.js ***! 4023 \*******************************************************************/ 4024/*! no static exports found */ 4025/***/ (function(module, exports, __webpack_require__) { 4026 4027var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4028 4029//! moment.js locale configuration 4030//! locale : Arabic (Tunisia) [ar-tn] 4031//! author : Nader Toukabri : https://github.com/naderio 4032; 4033 4034(function (global, factory) { 4035 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 4036 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 4037 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 4038 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 4039})(this, function (moment) { 4040 'use strict'; //! moment.js locale configuration 4041 4042 var arTn = moment.defineLocale('ar-tn', { 4043 months: 'جاÙÙÙ_ÙÙÙØ±Ù_٠ارس_Ø£ÙØ±ÙÙ_٠اÙ_Ø¬ÙØ§Ù_جÙÙÙÙØ©_Ø£ÙØª_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split('_'), 4044 monthsShort: 'جاÙÙÙ_ÙÙÙØ±Ù_٠ارس_Ø£ÙØ±ÙÙ_٠اÙ_Ø¬ÙØ§Ù_جÙÙÙÙØ©_Ø£ÙØª_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split('_'), 4045 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 4046 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 4047 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 4048 weekdaysParseExact: true, 4049 longDateFormat: { 4050 LT: 'HH:mm', 4051 LTS: 'HH:mm:ss', 4052 L: 'DD/MM/YYYY', 4053 LL: 'D MMMM YYYY', 4054 LLL: 'D MMMM YYYY HH:mm', 4055 LLLL: 'dddd D MMMM YYYY HH:mm' 4056 }, 4057 calendar: { 4058 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 4059 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 4060 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 4061 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 4062 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 4063 sameElse: 'L' 4064 }, 4065 relativeTime: { 4066 future: 'ÙÙ %s', 4067 past: 'Ù ÙØ° %s', 4068 s: 'Ø«ÙØ§Ù', 4069 ss: '%d ثاÙÙØ©', 4070 m: 'دÙÙÙØ©', 4071 mm: '%d Ø¯ÙØ§Ø¦Ù', 4072 h: 'ساعة', 4073 hh: '%d ساعات', 4074 d: 'ÙÙÙ ', 4075 dd: '%d Ø£ÙØ§Ù ', 4076 M: 'Ø´ÙØ±', 4077 MM: '%d Ø£Ø´ÙØ±', 4078 y: 'Ø³ÙØ©', 4079 yy: '%d سÙÙØ§Øª' 4080 }, 4081 week: { 4082 dow: 1, 4083 // Monday is the first day of the week. 4084 doy: 4 // The week that contains Jan 4th is the first week of the year. 4085 4086 } 4087 }); 4088 return arTn; 4089}); 4090 4091/***/ }), 4092
vendor: 5,768 bytes, lines 4093-4237
4093/***/ "../autobahn_client_core/node_modules/moment/locale/ar.js": 4094/*!****************************************************************!*\ 4095 !*** ../autobahn_client_core/node_modules/moment/locale/ar.js ***! 4096 \****************************************************************/ 4097/*! no static exports found */ 4098/***/ (function(module, exports, __webpack_require__) { 4099 4100var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4101 4102//! moment.js locale configuration 4103//! locale : Arabic [ar] 4104//! author : Abdel Said: https://github.com/abdelsaid 4105//! author : Ahmed Elkhatib 4106//! author : forabi https://github.com/forabi 4107; 4108 4109(function (global, factory) { 4110 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 4111 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 4112 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 4113 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 4114})(this, function (moment) { 4115 'use strict'; //! moment.js locale configuration 4116 4117 var symbolMap = { 4118 1: 'Ù¡', 4119 2: 'Ù¢', 4120 3: 'Ù£', 4121 4: 'Ù¤', 4122 5: 'Ù¥', 4123 6: 'Ù¦', 4124 7: 'Ù§', 4125 8: 'Ù¨', 4126 9: 'Ù©', 4127 0: 'Ù ' 4128 }, 4129 numberMap = { 4130 'Ù¡': '1', 4131 'Ù¢': '2', 4132 'Ù£': '3', 4133 'Ù¤': '4', 4134 'Ù¥': '5', 4135 'Ù¦': '6', 4136 'Ù§': '7', 4137 'Ù¨': '8', 4138 'Ù©': '9', 4139 'Ù ': '0' 4140 }, 4141 pluralForm = function pluralForm(n) { 4142 return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; 4143 }, 4144 plurals = { 4145 s: ['Ø£Ù٠٠٠ثاÙÙØ©', 'ثاÙÙØ© ÙØ§ØØ¯Ø©', ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], '%d Ø«ÙØ§Ù', '%d ثاÙÙØ©', '%d ثاÙÙØ©'], 4146 m: ['Ø£Ù٠٠٠دÙÙÙØ©', 'دÙÙÙØ© ÙØ§ØØ¯Ø©', ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], '%d Ø¯ÙØ§Ø¦Ù', '%d دÙÙÙØ©', '%d دÙÙÙØ©'], 4147 h: ['Ø£Ù٠٠٠ساعة', 'ساعة ÙØ§ØØ¯Ø©', ['ساعتاÙ', 'ساعتÙÙ'], '%d ساعات', '%d ساعة', '%d ساعة'], 4148 d: ['Ø£ÙÙ Ù Ù ÙÙÙ ', 'ÙÙÙ ÙØ§ØØ¯', ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], '%d Ø£ÙØ§Ù ', '%d ÙÙÙ ÙØ§', '%d ÙÙÙ '], 4149 M: ['Ø£ÙÙ Ù Ù Ø´ÙØ±', 'Ø´ÙØ± ÙØ§ØØ¯', ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], '%d Ø£Ø´ÙØ±', '%d Ø´ÙØ±Ø§', '%d Ø´ÙØ±'], 4150 y: ['Ø£Ù٠٠٠عا٠', 'Ø¹Ø§Ù ÙØ§ØØ¯', ['عا٠اÙ', 'عا٠ÙÙ'], '%d Ø£Ø¹ÙØ§Ù ', '%d Ø¹Ø§Ù ÙØ§', '%d عا٠'] 4151 }, 4152 pluralize = function pluralize(u) { 4153 return function (number, withoutSuffix, string, isFuture) { 4154 var f = pluralForm(number), 4155 str = plurals[u][pluralForm(number)]; 4156 4157 if (f === 2) { 4158 str = str[withoutSuffix ? 0 : 1]; 4159 } 4160 4161 return str.replace(/%d/i, number); 4162 }; 4163 }, 4164 months = ['ÙÙØ§Ùر', 'ÙØ¨Ø±Ø§Ùر', '٠ارس', 'أبرÙÙ', '٠اÙÙ', 'ÙÙÙÙÙ', 'ÙÙÙÙÙ', 'أغسطس', 'سبت٠بر', 'Ø£ÙØªÙبر', 'ÙÙÙ٠بر', 'Ø¯ÙØ³Ù بر']; 4165 4166 var ar = moment.defineLocale('ar', { 4167 months: months, 4168 monthsShort: months, 4169 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 4170 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 4171 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 4172 weekdaysParseExact: true, 4173 longDateFormat: { 4174 LT: 'HH:mm', 4175 LTS: 'HH:mm:ss', 4176 L: "D/\u200FM/\u200FYYYY", 4177 LL: 'D MMMM YYYY', 4178 LLL: 'D MMMM YYYY HH:mm', 4179 LLLL: 'dddd D MMMM YYYY HH:mm' 4180 }, 4181 meridiemParse: /ص|Ù /, 4182 isPM: function isPM(input) { 4183 return 'Ù ' === input; 4184 }, 4185 meridiem: function meridiem(hour, minute, isLower) { 4186 if (hour < 12) { 4187 return 'ص'; 4188 } else { 4189 return 'Ù '; 4190 } 4191 }, 4192 calendar: { 4193 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 4194 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 4195 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 4196 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 4197 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 4198 sameElse: 'L' 4199 }, 4200 relativeTime: { 4201 future: 'بعد %s', 4202 past: 'Ù ÙØ° %s', 4203 s: pluralize('s'), 4204 ss: pluralize('s'), 4205 m: pluralize('m'), 4206 mm: pluralize('m'), 4207 h: pluralize('h'), 4208 hh: pluralize('h'), 4209 d: pluralize('d'), 4210 dd: pluralize('d'), 4211 M: pluralize('M'), 4212 MM: pluralize('M'), 4213 y: pluralize('y'), 4214 yy: pluralize('y') 4215 }, 4216 preparse: function preparse(string) { 4217 return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 4218 return numberMap[match]; 4219 }).replace(/Ø/g, ','); 4220 }, 4221 postformat: function postformat(string) { 4222 return string.replace(/\d/g, function (match) { 4223 return symbolMap[match]; 4224 }).replace(/,/g, 'Ø'); 4225 }, 4226 week: { 4227 dow: 6, 4228 // Saturday is the first day of the week. 4229 doy: 12 // The week that contains Jan 12th is the first week of the year. 4230 4231 } 4232 }); 4233 return ar; 4234}); 4235 4236/***/ }), 4237
vendor: 4,395 bytes, lines 4238-4357
4238/***/ "../autobahn_client_core/node_modules/moment/locale/az.js": 4239/*!****************************************************************!*\ 4240 !*** ../autobahn_client_core/node_modules/moment/locale/az.js ***! 4241 \****************************************************************/ 4242/*! no static exports found */ 4243/***/ (function(module, exports, __webpack_require__) { 4244 4245var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4246 4247//! moment.js locale configuration 4248//! locale : Azerbaijani [az] 4249//! author : topchiyev : https://github.com/topchiyev 4250; 4251 4252(function (global, factory) { 4253 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 4254 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 4255 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 4256 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 4257})(this, function (moment) { 4258 'use strict'; //! moment.js locale configuration 4259 4260 var suffixes = { 4261 1: '-inci', 4262 5: '-inci', 4263 8: '-inci', 4264 70: '-inci', 4265 80: '-inci', 4266 2: '-nci', 4267 7: '-nci', 4268 20: '-nci', 4269 50: '-nci', 4270 3: '-üncü', 4271 4: '-üncü', 4272 100: '-üncü', 4273 6: '-ncı', 4274 9: '-uncu', 4275 10: '-uncu', 4276 30: '-uncu', 4277 60: '-ıncı', 4278 90: '-ıncı' 4279 }; 4280 var az = moment.defineLocale('az', { 4281 months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'), 4282 monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), 4283 weekdays: 'Bazar_Bazar ertÉsi_ÃÉrÅÉnbÉ axÅamı_ÃÉrÅÉnbÉ_CümÉ axÅamı_CümÉ_ÅÉnbÉ'.split('_'), 4284 weekdaysShort: 'Baz_BzE_ÃAx_ÃÉr_CAx_Cüm_ÅÉn'.split('_'), 4285 weekdaysMin: 'Bz_BE_ÃA_ÃÉ_CA_Cü_ÅÉ'.split('_'), 4286 weekdaysParseExact: true, 4287 longDateFormat: { 4288 LT: 'HH:mm', 4289 LTS: 'HH:mm:ss', 4290 L: 'DD.MM.YYYY', 4291 LL: 'D MMMM YYYY', 4292 LLL: 'D MMMM YYYY HH:mm', 4293 LLLL: 'dddd, D MMMM YYYY HH:mm' 4294 }, 4295 calendar: { 4296 sameDay: '[bugün saat] LT', 4297 nextDay: '[sabah saat] LT', 4298 nextWeek: '[gÉlÉn hÉftÉ] dddd [saat] LT', 4299 lastDay: '[dünÉn] LT', 4300 lastWeek: '[keçÉn hÉftÉ] dddd [saat] LT', 4301 sameElse: 'L' 4302 }, 4303 relativeTime: { 4304 future: '%s sonra', 4305 past: '%s ÉvvÉl', 4306 s: 'bir neÃ§É saniyÉ', 4307 ss: '%d saniyÉ', 4308 m: 'bir dÉqiqÉ', 4309 mm: '%d dÉqiqÉ', 4310 h: 'bir saat', 4311 hh: '%d saat', 4312 d: 'bir gün', 4313 dd: '%d gün', 4314 M: 'bir ay', 4315 MM: '%d ay', 4316 y: 'bir il', 4317 yy: '%d il' 4318 }, 4319 meridiemParse: /gecÉ|sÉhÉr|gündüz|axÅam/, 4320 isPM: function isPM(input) { 4321 return /^(gündüz|axÅam)$/.test(input); 4322 }, 4323 meridiem: function meridiem(hour, minute, isLower) { 4324 if (hour < 4) { 4325 return 'gecÉ'; 4326 } else if (hour < 12) { 4327 return 'sÉhÉr'; 4328 } else if (hour < 17) { 4329 return 'gündüz'; 4330 } else { 4331 return 'axÅam'; 4332 } 4333 }, 4334 dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, 4335 ordinal: function ordinal(number) { 4336 if (number === 0) { 4337 // special case for zero 4338 return number + '-ıncı'; 4339 } 4340 4341 var a = number % 10, 4342 b = number % 100 - a, 4343 c = number >= 100 ? 100 : null; 4344 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 4345 }, 4346 week: { 4347 dow: 1, 4348 // Monday is the first day of the week. 4349 doy: 7 // The week that contains Jan 7th is the first week of the year. 4350 4351 } 4352 }); 4353 return az; 4354}); 4355 4356/***/ }), 4357
vendor: 6,394 bytes, lines 4358-4508
4358/***/ "../autobahn_client_core/node_modules/moment/locale/be.js": 4359/*!****************************************************************!*\ 4360 !*** ../autobahn_client_core/node_modules/moment/locale/be.js ***! 4361 \****************************************************************/ 4362/*! no static exports found */ 4363/***/ (function(module, exports, __webpack_require__) { 4364 4365var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4366 4367//! moment.js locale configuration 4368//! locale : Belarusian [be] 4369//! author : Dmitry Demidov : https://github.com/demidov91 4370//! author: Praleska: http://praleska.pro/ 4371//! Author : Menelion Elensúle : https://github.com/Oire 4372; 4373 4374(function (global, factory) { 4375 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 4376 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 4377 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 4378 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 4379})(this, function (moment) { 4380 'use strict'; //! moment.js locale configuration 4381 4382 function plural(word, num) { 4383 var forms = word.split('_'); 4384 return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]; 4385 } 4386 4387 function relativeTimeWithPlural(number, withoutSuffix, key) { 4388 var format = { 4389 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑндÑ_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑндÑ_ÑекÑнд', 4390 mm: withoutSuffix ? 'Ñ Ð²ÑлÑна_Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑн' : 'Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑн', 4391 hh: withoutSuffix ? 'гадзÑна_гадзÑнÑ_гадзÑн' : 'гадзÑнÑ_гадзÑнÑ_гадзÑн', 4392 dd: 'дзенÑ_днÑ_дзÑн', 4393 MM: 'меÑÑÑ_меÑÑÑÑ_меÑÑÑаÑ', 4394 yy: 'год_гадÑ_гадоÑ' 4395 }; 4396 4397 if (key === 'm') { 4398 return withoutSuffix ? 'Ñ Ð²ÑлÑна' : 'Ñ Ð²ÑлÑнÑ'; 4399 } else if (key === 'h') { 4400 return withoutSuffix ? 'гадзÑна' : 'гадзÑнÑ'; 4401 } else { 4402 return number + ' ' + plural(format[key], +number); 4403 } 4404 } 4405 4406 var be = moment.defineLocale('be', { 4407 months: { 4408 format: 'ÑÑÑдзенÑ_лÑÑага_ÑакавÑка_кÑаÑавÑка_ÑÑаÑнÑ_ÑÑÑвенÑ_лÑпенÑ_жнÑÑнÑ_веÑаÑнÑ_каÑÑÑÑÑнÑка_лÑÑÑапада_ÑнежнÑ'.split('_'), 4409 standalone: 'ÑÑÑдзенÑ_лÑÑÑ_ÑакавÑк_кÑаÑавÑк_ÑÑавенÑ_ÑÑÑвенÑ_лÑпенÑ_жнÑвенÑ_веÑаÑенÑ_каÑÑÑÑÑнÑк_лÑÑÑапад_ÑнежанÑ'.split('_') 4410 }, 4411 monthsShort: 'ÑÑÑд_лÑÑ_Ñак_кÑаÑ_ÑÑав_ÑÑÑв_лÑп_жнÑв_веÑ_каÑÑ_лÑÑÑ_Ñнеж'.split('_'), 4412 weekdays: { 4413 format: 'нÑдзелÑ_панÑдзелак_аÑÑоÑак_ÑеÑадÑ_ÑаÑвеÑ_пÑÑнÑÑÑ_ÑÑбоÑÑ'.split('_'), 4414 standalone: 'нÑдзелÑ_панÑдзелак_аÑÑоÑак_ÑеÑада_ÑаÑвеÑ_пÑÑнÑÑа_ÑÑбоÑа'.split('_'), 4415 isFormat: /\[ ?[УÑÑ] ?(?:мÑнÑлÑÑ|наÑÑÑпнÑÑ)? ?\] ?dddd/ 4416 }, 4417 weekdaysShort: 'нд_пн_аÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 4418 weekdaysMin: 'нд_пн_аÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 4419 longDateFormat: { 4420 LT: 'HH:mm', 4421 LTS: 'HH:mm:ss', 4422 L: 'DD.MM.YYYY', 4423 LL: 'D MMMM YYYY г.', 4424 LLL: 'D MMMM YYYY г., HH:mm', 4425 LLLL: 'dddd, D MMMM YYYY г., HH:mm' 4426 }, 4427 calendar: { 4428 sameDay: '[СÑÐ½Ð½Ñ Ñ] LT', 4429 nextDay: '[ÐаÑÑÑа Ñ] LT', 4430 lastDay: '[УÑоÑа Ñ] LT', 4431 nextWeek: function nextWeek() { 4432 return '[У] dddd [Ñ] LT'; 4433 }, 4434 lastWeek: function lastWeek() { 4435 switch (this.day()) { 4436 case 0: 4437 case 3: 4438 case 5: 4439 case 6: 4440 return '[У мÑнÑлÑÑ] dddd [Ñ] LT'; 4441 4442 case 1: 4443 case 2: 4444 case 4: 4445 return '[У мÑнÑлÑ] dddd [Ñ] LT'; 4446 } 4447 }, 4448 sameElse: 'L' 4449 }, 4450 relativeTime: { 4451 future: 'пÑаз %s', 4452 past: '%s ÑамÑ', 4453 s: 'некалÑÐºÑ ÑекÑнд', 4454 m: relativeTimeWithPlural, 4455 mm: relativeTimeWithPlural, 4456 h: relativeTimeWithPlural, 4457 hh: relativeTimeWithPlural, 4458 d: 'дзенÑ', 4459 dd: relativeTimeWithPlural, 4460 M: 'меÑÑÑ', 4461 MM: relativeTimeWithPlural, 4462 y: 'год', 4463 yy: relativeTimeWithPlural 4464 }, 4465 meridiemParse: /ноÑÑ|ÑанÑÑÑ|днÑ|веÑаÑа/, 4466 isPM: function isPM(input) { 4467 return /^(днÑ|веÑаÑа)$/.test(input); 4468 }, 4469 meridiem: function meridiem(hour, minute, isLower) { 4470 if (hour < 4) { 4471 return 'ноÑÑ'; 4472 } else if (hour < 12) { 4473 return 'ÑанÑÑÑ'; 4474 } else if (hour < 17) { 4475 return 'днÑ'; 4476 } else { 4477 return 'веÑаÑа'; 4478 } 4479 }, 4480 dayOfMonthOrdinalParse: /\d{1,2}-(Ñ|Ñ|га)/, 4481 ordinal: function ordinal(number, period) { 4482 switch (period) { 4483 case 'M': 4484 case 'd': 4485 case 'DDD': 4486 case 'w': 4487 case 'W': 4488 return (number % 10 === 2 || number % 10 === 3) && number % 100 !== 12 && number % 100 !== 13 ? number + '-Ñ' : number + '-Ñ'; 4489 4490 case 'D': 4491 return number + '-га'; 4492 4493 default: 4494 return number; 4495 } 4496 }, 4497 week: { 4498 dow: 1, 4499 // Monday is the first day of the week. 4500 doy: 7 // The week that contains Jan 7th is the first week of the year. 4501 4502 } 4503 }); 4504 return be; 4505}); 4506 4507/***/ }), 4508
vendor: 4,445 bytes, lines 4509-4616
4509/***/ "../autobahn_client_core/node_modules/moment/locale/bg.js": 4510/*!****************************************************************!*\ 4511 !*** ../autobahn_client_core/node_modules/moment/locale/bg.js ***! 4512 \****************************************************************/ 4513/*! no static exports found */ 4514/***/ (function(module, exports, __webpack_require__) { 4515 4516var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4517 4518//! moment.js locale configuration 4519//! locale : Bulgarian [bg] 4520//! author : Krasen Borisov : https://github.com/kraz 4521; 4522 4523(function (global, factory) { 4524 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 4525 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 4526 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 4527 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 4528})(this, function (moment) { 4529 'use strict'; //! moment.js locale configuration 4530 4531 var bg = moment.defineLocale('bg', { 4532 months: 'ÑнÑаÑи_ÑевÑÑаÑи_маÑÑ_апÑил_май_Ñни_Ñли_авгÑÑÑ_ÑепÑемвÑи_окÑомвÑи_ноемвÑи_декемвÑи'.split('_'), 4533 monthsShort: 'ÑнÑ_Ñев_маÑ_апÑ_май_Ñни_Ñли_авг_Ñеп_окÑ_ное_дек'.split('_'), 4534 weekdays: 'неделÑ_понеделник_вÑоÑник_ÑÑÑда_ÑеÑвÑÑÑÑк_пеÑÑк_ÑÑбоÑа'.split('_'), 4535 weekdaysShort: 'нед_пон_вÑо_ÑÑÑ_ÑеÑ_пеÑ_ÑÑб'.split('_'), 4536 weekdaysMin: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 4537 longDateFormat: { 4538 LT: 'H:mm', 4539 LTS: 'H:mm:ss', 4540 L: 'D.MM.YYYY', 4541 LL: 'D MMMM YYYY', 4542 LLL: 'D MMMM YYYY H:mm', 4543 LLLL: 'dddd, D MMMM YYYY H:mm' 4544 }, 4545 calendar: { 4546 sameDay: '[ÐÐ½ÐµÑ Ð²] LT', 4547 nextDay: '[УÑÑе в] LT', 4548 nextWeek: 'dddd [в] LT', 4549 lastDay: '[ÐÑеÑа в] LT', 4550 lastWeek: function lastWeek() { 4551 switch (this.day()) { 4552 case 0: 4553 case 3: 4554 case 6: 4555 return '[ÐиналаÑа] dddd [в] LT'; 4556 4557 case 1: 4558 case 2: 4559 case 4: 4560 case 5: 4561 return '[ÐиналиÑ] dddd [в] LT'; 4562 } 4563 }, 4564 sameElse: 'L' 4565 }, 4566 relativeTime: { 4567 future: 'Ñлед %s', 4568 past: 'пÑеди %s', 4569 s: 'нÑколко ÑекÑнди', 4570 ss: '%d ÑекÑнди', 4571 m: 'минÑÑа', 4572 mm: '%d минÑÑи', 4573 h: 'ÑаÑ', 4574 hh: '%d ÑаÑа', 4575 d: 'ден', 4576 dd: '%d дена', 4577 w: 'ÑедмиÑа', 4578 ww: '%d ÑедмиÑи', 4579 M: 'меÑеÑ', 4580 MM: '%d меÑеÑа', 4581 y: 'година', 4582 yy: '%d години' 4583 }, 4584 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|Ñи|ви|Ñи|ми)/, 4585 ordinal: function ordinal(number) { 4586 var lastDigit = number % 10, 4587 last2Digits = number % 100; 4588 4589 if (number === 0) { 4590 return number + '-ев'; 4591 } else if (last2Digits === 0) { 4592 return number + '-ен'; 4593 } else if (last2Digits > 10 && last2Digits < 20) { 4594 return number + '-Ñи'; 4595 } else if (lastDigit === 1) { 4596 return number + '-ви'; 4597 } else if (lastDigit === 2) { 4598 return number + '-Ñи'; 4599 } else if (lastDigit === 7 || lastDigit === 8) { 4600 return number + '-ми'; 4601 } else { 4602 return number + '-Ñи'; 4603 } 4604 }, 4605 week: { 4606 dow: 1, 4607 // Monday is the first day of the week. 4608 doy: 7 // The week that contains Jan 7th is the first week of the year. 4609 4610 } 4611 }); 4612 return bg; 4613}); 4614 4615/***/ }), 4616
vendor: 3,316 bytes, lines 4617-4688
4617/***/ "../autobahn_client_core/node_modules/moment/locale/bm.js": 4618/*!****************************************************************!*\ 4619 !*** ../autobahn_client_core/node_modules/moment/locale/bm.js ***! 4620 \****************************************************************/ 4621/*! no static exports found */ 4622/***/ (function(module, exports, __webpack_require__) { 4623 4624var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4625 4626//! moment.js locale configuration 4627//! locale : Bambara [bm] 4628//! author : Estelle Comment : https://github.com/estellecomment 4629; 4630 4631(function (global, factory) { 4632 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 4633 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 4634 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 4635 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 4636})(this, function (moment) { 4637 'use strict'; //! moment.js locale configuration 4638 4639 var bm = moment.defineLocale('bm', { 4640 months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_MÉkalo_ZuwÉnkalo_Zuluyekalo_Utikalo_SÉtanburukalo_ÉkutÉburukalo_Nowanburukalo_Desanburukalo'.split('_'), 4641 monthsShort: 'Zan_Few_Mar_Awi_MÉ_Zuw_Zul_Uti_SÉt_Éku_Now_Des'.split('_'), 4642 weekdays: 'Kari_NtÉnÉn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), 4643 weekdaysShort: 'Kar_NtÉ_Tar_Ara_Ala_Jum_Sib'.split('_'), 4644 weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), 4645 longDateFormat: { 4646 LT: 'HH:mm', 4647 LTS: 'HH:mm:ss', 4648 L: 'DD/MM/YYYY', 4649 LL: 'MMMM [tile] D [san] YYYY', 4650 LLL: 'MMMM [tile] D [san] YYYY [lÉrÉ] HH:mm', 4651 LLLL: 'dddd MMMM [tile] D [san] YYYY [lÉrÉ] HH:mm' 4652 }, 4653 calendar: { 4654 sameDay: '[Bi lÉrÉ] LT', 4655 nextDay: '[Sini lÉrÉ] LT', 4656 nextWeek: 'dddd [don lÉrÉ] LT', 4657 lastDay: '[Kunu lÉrÉ] LT', 4658 lastWeek: 'dddd [tÉmÉnen lÉrÉ] LT', 4659 sameElse: 'L' 4660 }, 4661 relativeTime: { 4662 future: '%s kÉnÉ', 4663 past: 'a bÉ %s bÉ', 4664 s: 'sanga dama dama', 4665 ss: 'sekondi %d', 4666 m: 'miniti kelen', 4667 mm: 'miniti %d', 4668 h: 'lÉrÉ kelen', 4669 hh: 'lÉrÉ %d', 4670 d: 'tile kelen', 4671 dd: 'tile %d', 4672 M: 'kalo kelen', 4673 MM: 'kalo %d', 4674 y: 'san kelen', 4675 yy: 'san %d' 4676 }, 4677 week: { 4678 dow: 1, 4679 // Monday is the first day of the week. 4680 doy: 4 // The week that contains Jan 4th is the first week of the year. 4681 4682 } 4683 }); 4684 return bm; 4685}); 4686 4687/***/ }), 4688
vendor: 5,776 bytes, lines 4689-4831
4689/***/ "../autobahn_client_core/node_modules/moment/locale/bn-bd.js": 4690/*!*******************************************************************!*\ 4691 !*** ../autobahn_client_core/node_modules/moment/locale/bn-bd.js ***! 4692 \*******************************************************************/ 4693/*! no static exports found */ 4694/***/ (function(module, exports, __webpack_require__) { 4695 4696var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4697 4698//! moment.js locale configuration 4699//! locale : Bengali (Bangladesh) [bn-bd] 4700//! author : Asraf Hossain Patoary : https://github.com/ashwoolford 4701; 4702 4703(function (global, factory) { 4704 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 4705 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 4706 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 4707 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 4708})(this, function (moment) { 4709 'use strict'; //! moment.js locale configuration 4710 4711 var symbolMap = { 4712 1: 'à§§', 4713 2: '২', 4714 3: 'à§©', 4715 4: '৪', 4716 5: 'à§«', 4717 6: '৬', 4718 7: 'à§', 4719 8: 'à§®', 4720 9: '৯', 4721 0: '০' 4722 }, 4723 numberMap = { 4724 'à§§': '1', 4725 '২': '2', 4726 'à§©': '3', 4727 '৪': '4', 4728 'à§«': '5', 4729 '৬': '6', 4730 'à§': '7', 4731 'à§®': '8', 4732 '৯': '9', 4733 '০': '0' 4734 }; 4735 var bnBd = moment.defineLocale('bn-bd', { 4736 months: 'à¦à¦¾à¦¨à§à§à¦¾à¦°à¦¿_ফà§à¦¬à§à¦°à§à§à¦¾à¦°à¦¿_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦à§à¦®à§à¦¬à¦°_ঠà¦à§à¦à§à¦¬à¦°_নà¦à§à¦®à§à¦¬à¦°_ডিসà§à¦®à§à¦¬à¦°'.split('_'), 4737 monthsShort: 'à¦à¦¾à¦¨à§_ফà§à¦¬à§à¦°à§_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦_ঠà¦à§à¦à§_নà¦à§_ডিসà§'.split('_'), 4738 weekdays: 'রবিবার_সà§à¦®à¦¬à¦¾à¦°_মà¦à§à¦à¦²à¦¬à¦¾à¦°_বà§à¦§à¦¬à¦¾à¦°_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦à§à¦°à¦¬à¦¾à¦°_শনিবার'.split('_'), 4739 weekdaysShort: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿_শà§à¦à§à¦°_শনি'.split('_'), 4740 weekdaysMin: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹_শà§à¦à§à¦°_শনি'.split('_'), 4741 longDateFormat: { 4742 LT: 'A h:mm সমà§', 4743 LTS: 'A h:mm:ss সমà§', 4744 L: 'DD/MM/YYYY', 4745 LL: 'D MMMM YYYY', 4746 LLL: 'D MMMM YYYY, A h:mm সমà§', 4747 LLLL: 'dddd, D MMMM YYYY, A h:mm সমà§' 4748 }, 4749 calendar: { 4750 sameDay: '[à¦à¦] LT', 4751 nextDay: '[à¦à¦à¦¾à¦®à§à¦à¦¾à¦²] LT', 4752 nextWeek: 'dddd, LT', 4753 lastDay: '[à¦à¦¤à¦à¦¾à¦²] LT', 4754 lastWeek: '[à¦à¦¤] dddd, LT', 4755 sameElse: 'L' 4756 }, 4757 relativeTime: { 4758 future: '%s পরà§', 4759 past: '%s à¦à¦à§', 4760 s: 'à¦à§à§à¦ সà§à¦à§à¦¨à§à¦¡', 4761 ss: '%d সà§à¦à§à¦¨à§à¦¡', 4762 m: 'à¦à¦ মিনিà¦', 4763 mm: '%d মিনিà¦', 4764 h: 'à¦à¦ à¦à¦¨à§à¦à¦¾', 4765 hh: '%d à¦à¦¨à§à¦à¦¾', 4766 d: 'à¦à¦ দিন', 4767 dd: '%d দিন', 4768 M: 'à¦à¦ মাস', 4769 MM: '%d মাস', 4770 y: 'à¦à¦ বà¦à¦°', 4771 yy: '%d বà¦à¦°' 4772 }, 4773 preparse: function preparse(string) { 4774 return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) { 4775 return numberMap[match]; 4776 }); 4777 }, 4778 postformat: function postformat(string) { 4779 return string.replace(/\d/g, function (match) { 4780 return symbolMap[match]; 4781 }); 4782 }, 4783 meridiemParse: /রাত|à¦à§à¦°|সà¦à¦¾à¦²|দà§à¦ªà§à¦°|বিà¦à¦¾à¦²|সনà§à¦§à§à¦¯à¦¾|রাত/, 4784 meridiemHour: function meridiemHour(hour, meridiem) { 4785 if (hour === 12) { 4786 hour = 0; 4787 } 4788 4789 if (meridiem === 'রাত') { 4790 return hour < 4 ? hour : hour + 12; 4791 } else if (meridiem === 'à¦à§à¦°') { 4792 return hour; 4793 } else if (meridiem === 'সà¦à¦¾à¦²') { 4794 return hour; 4795 } else if (meridiem === 'দà§à¦ªà§à¦°') { 4796 return hour >= 3 ? hour : hour + 12; 4797 } else if (meridiem === 'বিà¦à¦¾à¦²') { 4798 return hour + 12; 4799 } else if (meridiem === 'সনà§à¦§à§à¦¯à¦¾') { 4800 return hour + 12; 4801 } 4802 }, 4803 meridiem: function meridiem(hour, minute, isLower) { 4804 if (hour < 4) { 4805 return 'রাত'; 4806 } else if (hour < 6) { 4807 return 'à¦à§à¦°'; 4808 } else if (hour < 12) { 4809 return 'সà¦à¦¾à¦²'; 4810 } else if (hour < 15) { 4811 return 'দà§à¦ªà§à¦°'; 4812 } else if (hour < 18) { 4813 return 'বিà¦à¦¾à¦²'; 4814 } else if (hour < 20) { 4815 return 'সনà§à¦§à§à¦¯à¦¾'; 4816 } else { 4817 return 'রাত'; 4818 } 4819 }, 4820 week: { 4821 dow: 0, 4822 // Sunday is the first day of the week. 4823 doy: 6 // The week that contains Jan 6th is the first week of the year. 4824 4825 } 4826 }); 4827 return bnBd; 4828}); 4829 4830/***/ }), 4831
vendor: 5,297 bytes, lines 4832-4962
4832/***/ "../autobahn_client_core/node_modules/moment/locale/bn.js": 4833/*!****************************************************************!*\ 4834 !*** ../autobahn_client_core/node_modules/moment/locale/bn.js ***! 4835 \****************************************************************/ 4836/*! no static exports found */ 4837/***/ (function(module, exports, __webpack_require__) { 4838 4839var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4840 4841//! moment.js locale configuration 4842//! locale : Bengali [bn] 4843//! author : Kaushik Gandhi : https://github.com/kaushikgandhi 4844; 4845 4846(function (global, factory) { 4847 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 4848 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 4849 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 4850 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 4851})(this, function (moment) { 4852 'use strict'; //! moment.js locale configuration 4853 4854 var symbolMap = { 4855 1: 'à§§', 4856 2: '২', 4857 3: 'à§©', 4858 4: '৪', 4859 5: 'à§«', 4860 6: '৬', 4861 7: 'à§', 4862 8: 'à§®', 4863 9: '৯', 4864 0: '০' 4865 }, 4866 numberMap = { 4867 'à§§': '1', 4868 '২': '2', 4869 'à§©': '3', 4870 '৪': '4', 4871 'à§«': '5', 4872 '৬': '6', 4873 'à§': '7', 4874 'à§®': '8', 4875 '৯': '9', 4876 '০': '0' 4877 }; 4878 var bn = moment.defineLocale('bn', { 4879 months: 'à¦à¦¾à¦¨à§à§à¦¾à¦°à¦¿_ফà§à¦¬à§à¦°à§à§à¦¾à¦°à¦¿_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦à§à¦®à§à¦¬à¦°_ঠà¦à§à¦à§à¦¬à¦°_নà¦à§à¦®à§à¦¬à¦°_ডিসà§à¦®à§à¦¬à¦°'.split('_'), 4880 monthsShort: 'à¦à¦¾à¦¨à§_ফà§à¦¬à§à¦°à§_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦_ঠà¦à§à¦à§_নà¦à§_ডিসà§'.split('_'), 4881 weekdays: 'রবিবার_সà§à¦®à¦¬à¦¾à¦°_মà¦à§à¦à¦²à¦¬à¦¾à¦°_বà§à¦§à¦¬à¦¾à¦°_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦à§à¦°à¦¬à¦¾à¦°_শনিবার'.split('_'), 4882 weekdaysShort: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿_শà§à¦à§à¦°_শনি'.split('_'), 4883 weekdaysMin: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹_শà§à¦à§à¦°_শনি'.split('_'), 4884 longDateFormat: { 4885 LT: 'A h:mm সমà§', 4886 LTS: 'A h:mm:ss সমà§', 4887 L: 'DD/MM/YYYY', 4888 LL: 'D MMMM YYYY', 4889 LLL: 'D MMMM YYYY, A h:mm সমà§', 4890 LLLL: 'dddd, D MMMM YYYY, A h:mm সমà§' 4891 }, 4892 calendar: { 4893 sameDay: '[à¦à¦] LT', 4894 nextDay: '[à¦à¦à¦¾à¦®à§à¦à¦¾à¦²] LT', 4895 nextWeek: 'dddd, LT', 4896 lastDay: '[à¦à¦¤à¦à¦¾à¦²] LT', 4897 lastWeek: '[à¦à¦¤] dddd, LT', 4898 sameElse: 'L' 4899 }, 4900 relativeTime: { 4901 future: '%s পরà§', 4902 past: '%s à¦à¦à§', 4903 s: 'à¦à§à§à¦ সà§à¦à§à¦¨à§à¦¡', 4904 ss: '%d সà§à¦à§à¦¨à§à¦¡', 4905 m: 'à¦à¦ মিনিà¦', 4906 mm: '%d মিনিà¦', 4907 h: 'à¦à¦ à¦à¦¨à§à¦à¦¾', 4908 hh: '%d à¦à¦¨à§à¦à¦¾', 4909 d: 'à¦à¦ দিন', 4910 dd: '%d দিন', 4911 M: 'à¦à¦ মাস', 4912 MM: '%d মাস', 4913 y: 'à¦à¦ বà¦à¦°', 4914 yy: '%d বà¦à¦°' 4915 }, 4916 preparse: function preparse(string) { 4917 return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) { 4918 return numberMap[match]; 4919 }); 4920 }, 4921 postformat: function postformat(string) { 4922 return string.replace(/\d/g, function (match) { 4923 return symbolMap[match]; 4924 }); 4925 }, 4926 meridiemParse: /রাত|সà¦à¦¾à¦²|দà§à¦ªà§à¦°|বিà¦à¦¾à¦²|রাত/, 4927 meridiemHour: function meridiemHour(hour, meridiem) { 4928 if (hour === 12) { 4929 hour = 0; 4930 } 4931 4932 if (meridiem === 'রাত' && hour >= 4 || meridiem === 'দà§à¦ªà§à¦°' && hour < 5 || meridiem === 'বিà¦à¦¾à¦²') { 4933 return hour + 12; 4934 } else { 4935 return hour; 4936 } 4937 }, 4938 meridiem: function meridiem(hour, minute, isLower) { 4939 if (hour < 4) { 4940 return 'রাত'; 4941 } else if (hour < 10) { 4942 return 'সà¦à¦¾à¦²'; 4943 } else if (hour < 17) { 4944 return 'দà§à¦ªà§à¦°'; 4945 } else if (hour < 20) { 4946 return 'বিà¦à¦¾à¦²'; 4947 } else { 4948 return 'রাত'; 4949 } 4950 }, 4951 week: { 4952 dow: 0, 4953 // Sunday is the first day of the week. 4954 doy: 6 // The week that contains Jan 6th is the first week of the year. 4955 4956 } 4957 }); 4958 return bn; 4959}); 4960 4961/***/ }), 4962
vendor: 5,768 bytes, lines 4963-5095
4963/***/ "../autobahn_client_core/node_modules/moment/locale/bo.js": 4964/*!****************************************************************!*\ 4965 !*** ../autobahn_client_core/node_modules/moment/locale/bo.js ***! 4966 \****************************************************************/ 4967/*! no static exports found */ 4968/***/ (function(module, exports, __webpack_require__) { 4969 4970var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4971 4972//! moment.js locale configuration 4973//! locale : Tibetan [bo] 4974//! author : Thupten N. Chakrishar : https://github.com/vajradog 4975; 4976 4977(function (global, factory) { 4978 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 4979 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 4980 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 4981 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 4982})(this, function (moment) { 4983 'use strict'; //! moment.js locale configuration 4984 4985 var symbolMap = { 4986 1: '༡', 4987 2: '༢', 4988 3: '༣', 4989 4: '༤', 4990 5: '༥', 4991 6: '༦', 4992 7: '༧', 4993 8: '༨', 4994 9: '༩', 4995 0: '༠' 4996 }, 4997 numberMap = { 4998 '༡': '1', 4999 '༢': '2', 5000 '༣': '3', 5001 '༤': '4', 5002 '༥': '5', 5003 '༦': '6', 5004 '༧': '7', 5005 '༨': '8', 5006 '༩': '9', 5007 '༠': '0' 5008 }; 5009 var bo = moment.defineLocale('bo', { 5010 months: 'à½à¾³à¼à½à¼à½à½à¼à½à½¼_à½à¾³à¼à½à¼à½à½à½²à½¦à¼à½_à½à¾³à¼à½à¼à½à½¦à½´à½à¼à½_à½à¾³à¼à½à¼à½à½à½²à¼à½_à½à¾³à¼à½à¼à½£à¾à¼à½_à½à¾³à¼à½à¼à½à¾²à½´à½à¼à½_à½à¾³à¼à½à¼à½à½à½´à½à¼à½_à½à¾³à¼à½à¼à½à½¢à¾à¾±à½à¼à½_à½à¾³à¼à½à¼à½à½à½´à¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½à½ ིà½à¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½à½à½²à½¦à¼à½'.split('_'), 5011 monthsShort: 'à½à¾³à¼1_à½à¾³à¼2_à½à¾³à¼3_à½à¾³à¼4_à½à¾³à¼5_à½à¾³à¼6_à½à¾³à¼7_à½à¾³à¼8_à½à¾³à¼9_à½à¾³à¼10_à½à¾³à¼11_à½à¾³à¼12'.split('_'), 5012 monthsShortRegex: /^(à½à¾³à¼\d{1,2})/, 5013 monthsParseExact: true, 5014 weekdays: 'à½à½à½ à¼à½à½²à¼à½à¼_à½à½à½ à¼à½à¾³à¼à½à¼_à½à½à½ à¼à½à½²à½à¼à½à½à½¢à¼_à½à½à½ à¼à½£à¾·à½à¼à½à¼_à½à½à½ à¼à½à½´à½¢à¼à½à½´_à½à½à½ à¼à½à¼à½¦à½à½¦à¼_à½à½à½ à¼à½¦à¾¤à½ºà½à¼à½à¼'.split('_'), 5015 weekdaysShort: 'à½à½²à¼à½à¼_à½à¾³à¼à½à¼_à½à½²à½à¼à½à½à½¢à¼_ལྷà½à¼à½à¼_à½à½´à½¢à¼à½à½´_à½à¼à½¦à½à½¦à¼_སྤེà½à¼à½à¼'.split('_'), 5016 weekdaysMin: 'à½à½²_à½à¾³_à½à½²à½_ལྷà½_à½à½´à½¢_སà½à½¦_སྤེà½'.split('_'), 5017 longDateFormat: { 5018 LT: 'A h:mm', 5019 LTS: 'A h:mm:ss', 5020 L: 'DD/MM/YYYY', 5021 LL: 'D MMMM YYYY', 5022 LLL: 'D MMMM YYYY, A h:mm', 5023 LLLL: 'dddd, D MMMM YYYY, A h:mm' 5024 }, 5025 calendar: { 5026 sameDay: '[à½à½²à¼à½¢à½²à½] LT', 5027 nextDay: '[སà½à¼à½à½²à½] LT', 5028 nextWeek: '[à½à½à½´à½à¼à½à¾²à½à¼à½¢à¾à½ºà½¦à¼à½], LT', 5029 lastDay: '[à½à¼à½¦à½] LT', 5030 lastWeek: '[à½à½à½´à½à¼à½à¾²à½à¼à½à½à½ à¼à½] dddd, LT', 5031 sameElse: 'L' 5032 }, 5033 relativeTime: { 5034 future: '%s ལà¼', 5035 past: '%s སà¾à½à¼à½£', 5036 s: 'ལà½à¼à½¦à½', 5037 ss: '%d སà¾à½¢à¼à½à¼', 5038 m: 'སà¾à½¢à¼à½à¼à½à½ ིà½', 5039 mm: '%d སà¾à½¢à¼à½', 5040 h: 'à½à½´à¼à½à½¼à½à¼à½à½ ིà½', 5041 hh: '%d à½à½´à¼à½à½¼à½', 5042 d: 'à½à½²à½à¼à½à½ ིà½', 5043 dd: '%d à½à½²à½à¼', 5044 M: 'à½à¾³à¼à½à¼à½à½ ིà½', 5045 MM: '%d à½à¾³à¼à½', 5046 y: 'ལོà¼à½à½ ིà½', 5047 yy: '%d ལོ' 5048 }, 5049 preparse: function preparse(string) { 5050 return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { 5051 return numberMap[match]; 5052 }); 5053 }, 5054 postformat: function postformat(string) { 5055 return string.replace(/\d/g, function (match) { 5056 return symbolMap[match]; 5057 }); 5058 }, 5059 meridiemParse: /à½à½à½à¼à½à½¼|à½à½¼à½à½¦à¼à½à½¦|à½à½²à½à¼à½à½´à½|à½à½à½¼à½à¼à½à½|à½à½à½à¼à½à½¼/, 5060 meridiemHour: function meridiemHour(hour, meridiem) { 5061 if (hour === 12) { 5062 hour = 0; 5063 } 5064 5065 if (meridiem === 'à½à½à½à¼à½à½¼' && hour >= 4 || meridiem === 'à½à½²à½à¼à½à½´à½' && hour < 5 || meridiem === 'à½à½à½¼à½à¼à½à½') { 5066 return hour + 12; 5067 } else { 5068 return hour; 5069 } 5070 }, 5071 meridiem: function meridiem(hour, minute, isLower) { 5072 if (hour < 4) { 5073 return 'à½à½à½à¼à½à½¼'; 5074 } else if (hour < 10) { 5075 return 'à½à½¼à½à½¦à¼à½à½¦'; 5076 } else if (hour < 17) { 5077 return 'à½à½²à½à¼à½à½´à½'; 5078 } else if (hour < 20) { 5079 return 'à½à½à½¼à½à¼à½à½'; 5080 } else { 5081 return 'à½à½à½à¼à½à½¼'; 5082 } 5083 }, 5084 week: { 5085 dow: 0, 5086 // Sunday is the first day of the week. 5087 doy: 6 // The week that contains Jan 6th is the first week of the year. 5088 5089 } 5090 }); 5091 return bo; 5092}); 5093 5094/***/ }), 5095
vendor: 5,850 bytes, lines 5096-5251
5096/***/ "../autobahn_client_core/node_modules/moment/locale/br.js": 5097/*!****************************************************************!*\ 5098 !*** ../autobahn_client_core/node_modules/moment/locale/br.js ***! 5099 \****************************************************************/ 5100/*! no static exports found */ 5101/***/ (function(module, exports, __webpack_require__) { 5102 5103var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 5104 5105//! moment.js locale configuration 5106//! locale : Breton [br] 5107//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou 5108; 5109 5110(function (global, factory) { 5111 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 5112 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 5113 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 5114 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 5115})(this, function (moment) { 5116 'use strict'; //! moment.js locale configuration 5117 5118 function relativeTimeWithMutation(number, withoutSuffix, key) { 5119 var format = { 5120 mm: 'munutenn', 5121 MM: 'miz', 5122 dd: 'devezh' 5123 }; 5124 return number + ' ' + mutation(format[key], number); 5125 } 5126 5127 function specialMutationForYears(number) { 5128 switch (lastNumber(number)) { 5129 case 1: 5130 case 3: 5131 case 4: 5132 case 5: 5133 case 9: 5134 return number + ' bloaz'; 5135 5136 default: 5137 return number + ' vloaz'; 5138 } 5139 } 5140 5141 function lastNumber(number) { 5142 if (number > 9) { 5143 return lastNumber(number % 10); 5144 } 5145 5146 return number; 5147 } 5148 5149 function mutation(text, number) { 5150 if (number === 2) { 5151 return softMutation(text); 5152 } 5153 5154 return text; 5155 } 5156 5157 function softMutation(text) { 5158 var mutationTable = { 5159 m: 'v', 5160 b: 'v', 5161 d: 'z' 5162 }; 5163 5164 if (mutationTable[text.charAt(0)] === undefined) { 5165 return text; 5166 } 5167 5168 return mutationTable[text.charAt(0)] + text.substring(1); 5169 } 5170 5171 var monthsParse = [/^gen/i, /^c[ʼ\']hwe/i, /^meu/i, /^ebr/i, /^mae/i, /^(mez|eve)/i, /^gou/i, /^eos/i, /^gwe/i, /^her/i, /^du/i, /^ker/i], 5172 monthsRegex = /^(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, 5173 monthsStrictRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, 5174 monthsShortStrictRegex = /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, 5175 fullWeekdaysParse = [/^sul/i, /^lun/i, /^meurzh/i, /^merc[ʼ\']her/i, /^yaou/i, /^gwener/i, /^sadorn/i], 5176 shortWeekdaysParse = [/^Sul/i, /^Lun/i, /^Meu/i, /^Mer/i, /^Yao/i, /^Gwe/i, /^Sad/i], 5177 minWeekdaysParse = [/^Su/i, /^Lu/i, /^Me([^r]|$)/i, /^Mer/i, /^Ya/i, /^Gw/i, /^Sa/i]; 5178 var br = moment.defineLocale('br', { 5179 months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'), 5180 monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), 5181 weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), 5182 weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), 5183 weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), 5184 weekdaysParse: minWeekdaysParse, 5185 fullWeekdaysParse: fullWeekdaysParse, 5186 shortWeekdaysParse: shortWeekdaysParse, 5187 minWeekdaysParse: minWeekdaysParse, 5188 monthsRegex: monthsRegex, 5189 monthsShortRegex: monthsRegex, 5190 monthsStrictRegex: monthsStrictRegex, 5191 monthsShortStrictRegex: monthsShortStrictRegex, 5192 monthsParse: monthsParse, 5193 longMonthsParse: monthsParse, 5194 shortMonthsParse: monthsParse, 5195 longDateFormat: { 5196 LT: 'HH:mm', 5197 LTS: 'HH:mm:ss', 5198 L: 'DD/MM/YYYY', 5199 LL: 'D [a viz] MMMM YYYY', 5200 LLL: 'D [a viz] MMMM YYYY HH:mm', 5201 LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm' 5202 }, 5203 calendar: { 5204 sameDay: '[Hiziv da] LT', 5205 nextDay: '[Warcʼhoazh da] LT', 5206 nextWeek: 'dddd [da] LT', 5207 lastDay: '[Decʼh da] LT', 5208 lastWeek: 'dddd [paset da] LT', 5209 sameElse: 'L' 5210 }, 5211 relativeTime: { 5212 future: 'a-benn %s', 5213 past: '%s ʼzo', 5214 s: 'un nebeud segondennoù', 5215 ss: '%d eilenn', 5216 m: 'ur vunutenn', 5217 mm: relativeTimeWithMutation, 5218 h: 'un eur', 5219 hh: '%d eur', 5220 d: 'un devezh', 5221 dd: relativeTimeWithMutation, 5222 M: 'ur miz', 5223 MM: relativeTimeWithMutation, 5224 y: 'ur bloaz', 5225 yy: specialMutationForYears 5226 }, 5227 dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, 5228 ordinal: function ordinal(number) { 5229 var output = number === 1 ? 'añ' : 'vet'; 5230 return number + output; 5231 }, 5232 week: { 5233 dow: 1, 5234 // Monday is the first day of the week. 5235 doy: 4 // The week that contains Jan 4th is the first week of the year. 5236 5237 }, 5238 meridiemParse: /a.m.|g.m./, 5239 // goude merenn | a-raok merenn 5240 isPM: function isPM(token) { 5241 return token === 'g.m.'; 5242 }, 5243 meridiem: function meridiem(hour, minute, isLower) { 5244 return hour < 12 ? 'a.m.' : 'g.m.'; 5245 } 5246 }); 5247 return br; 5248}); 5249 5250/***/ }), 5251
vendor: 5,675 bytes, lines 5252-5436
5252/***/ "../autobahn_client_core/node_modules/moment/locale/bs.js": 5253/*!****************************************************************!*\ 5254 !*** ../autobahn_client_core/node_modules/moment/locale/bs.js ***! 5255 \****************************************************************/ 5256/*! no static exports found */ 5257/***/ (function(module, exports, __webpack_require__) { 5258 5259var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 5260 5261//! moment.js locale configuration 5262//! locale : Bosnian [bs] 5263//! author : Nedim Cholich : https://github.com/frontyard 5264//! based on (hr) translation by Bojan MarkoviÄ 5265; 5266 5267(function (global, factory) { 5268 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 5269 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 5270 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 5271 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 5272})(this, function (moment) { 5273 'use strict'; //! moment.js locale configuration 5274 5275 function translate(number, withoutSuffix, key) { 5276 var result = number + ' '; 5277 5278 switch (key) { 5279 case 'ss': 5280 if (number === 1) { 5281 result += 'sekunda'; 5282 } else if (number === 2 || number === 3 || number === 4) { 5283 result += 'sekunde'; 5284 } else { 5285 result += 'sekundi'; 5286 } 5287 5288 return result; 5289 5290 case 'm': 5291 return withoutSuffix ? 'jedna minuta' : 'jedne minute'; 5292 5293 case 'mm': 5294 if (number === 1) { 5295 result += 'minuta'; 5296 } else if (number === 2 || number === 3 || number === 4) { 5297 result += 'minute'; 5298 } else { 5299 result += 'minuta'; 5300 } 5301 5302 return result; 5303 5304 case 'h': 5305 return withoutSuffix ? 'jedan sat' : 'jednog sata'; 5306 5307 case 'hh': 5308 if (number === 1) { 5309 result += 'sat'; 5310 } else if (number === 2 || number === 3 || number === 4) { 5311 result += 'sata'; 5312 } else { 5313 result += 'sati'; 5314 } 5315 5316 return result; 5317 5318 case 'dd': 5319 if (number === 1) { 5320 result += 'dan'; 5321 } else { 5322 result += 'dana'; 5323 } 5324 5325 return result; 5326 5327 case 'MM': 5328 if (number === 1) { 5329 result += 'mjesec'; 5330 } else if (number === 2 || number === 3 || number === 4) { 5331 result += 'mjeseca'; 5332 } else { 5333 result += 'mjeseci'; 5334 } 5335 5336 return result; 5337 5338 case 'yy': 5339 if (number === 1) { 5340 result += 'godina'; 5341 } else if (number === 2 || number === 3 || number === 4) { 5342 result += 'godine'; 5343 } else { 5344 result += 'godina'; 5345 } 5346 5347 return result; 5348 } 5349 } 5350 5351 var bs = moment.defineLocale('bs', { 5352 months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'), 5353 monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'), 5354 monthsParseExact: true, 5355 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'), 5356 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 5357 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 5358 weekdaysParseExact: true, 5359 longDateFormat: { 5360 LT: 'H:mm', 5361 LTS: 'H:mm:ss', 5362 L: 'DD.MM.YYYY', 5363 LL: 'D. MMMM YYYY', 5364 LLL: 'D. MMMM YYYY H:mm', 5365 LLLL: 'dddd, D. MMMM YYYY H:mm' 5366 }, 5367 calendar: { 5368 sameDay: '[danas u] LT', 5369 nextDay: '[sutra u] LT', 5370 nextWeek: function nextWeek() { 5371 switch (this.day()) { 5372 case 0: 5373 return '[u] [nedjelju] [u] LT'; 5374 5375 case 3: 5376 return '[u] [srijedu] [u] LT'; 5377 5378 case 6: 5379 return '[u] [subotu] [u] LT'; 5380 5381 case 1: 5382 case 2: 5383 case 4: 5384 case 5: 5385 return '[u] dddd [u] LT'; 5386 } 5387 }, 5388 lastDay: '[juÄer u] LT', 5389 lastWeek: function lastWeek() { 5390 switch (this.day()) { 5391 case 0: 5392 case 3: 5393 return '[proÅ¡lu] dddd [u] LT'; 5394 5395 case 6: 5396 return '[proÅ¡le] [subote] [u] LT'; 5397 5398 case 1: 5399 case 2: 5400 case 4: 5401 case 5: 5402 return '[proÅ¡li] dddd [u] LT'; 5403 } 5404 }, 5405 sameElse: 'L' 5406 }, 5407 relativeTime: { 5408 future: 'za %s', 5409 past: 'prije %s', 5410 s: 'par sekundi', 5411 ss: translate, 5412 m: translate, 5413 mm: translate, 5414 h: translate, 5415 hh: translate, 5416 d: 'dan', 5417 dd: translate, 5418 M: 'mjesec', 5419 MM: translate, 5420 y: 'godinu', 5421 yy: translate 5422 }, 5423 dayOfMonthOrdinalParse: /\d{1,2}\./, 5424 ordinal: '%d.', 5425 week: { 5426 dow: 1, 5427 // Monday is the first day of the week. 5428 doy: 7 // The week that contains Jan 7th is the first week of the year. 5429 5430 } 5431 }); 5432 return bs; 5433}); 5434 5435/***/ }), 5436
vendor: 4,315 bytes, lines 5437-5537
5437/***/ "../autobahn_client_core/node_modules/moment/locale/ca.js": 5438/*!****************************************************************!*\ 5439 !*** ../autobahn_client_core/node_modules/moment/locale/ca.js ***! 5440 \****************************************************************/ 5441/*! no static exports found */ 5442/***/ (function(module, exports, __webpack_require__) { 5443 5444var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 5445 5446//! moment.js locale configuration 5447//! locale : Catalan [ca] 5448//! author : Juan G. Hurtado : https://github.com/juanghurtado 5449; 5450 5451(function (global, factory) { 5452 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 5453 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 5454 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 5455 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 5456})(this, function (moment) { 5457 'use strict'; //! moment.js locale configuration 5458 5459 var ca = moment.defineLocale('ca', { 5460 months: { 5461 standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'), 5462 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('_'), 5463 isFormat: /D[oD]?(\s)+MMMM/ 5464 }, 5465 monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'), 5466 monthsParseExact: true, 5467 weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'), 5468 weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), 5469 weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), 5470 weekdaysParseExact: true, 5471 longDateFormat: { 5472 LT: 'H:mm', 5473 LTS: 'H:mm:ss', 5474 L: 'DD/MM/YYYY', 5475 LL: 'D MMMM [de] YYYY', 5476 ll: 'D MMM YYYY', 5477 LLL: 'D MMMM [de] YYYY [a les] H:mm', 5478 lll: 'D MMM YYYY, H:mm', 5479 LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', 5480 llll: 'ddd D MMM YYYY, H:mm' 5481 }, 5482 calendar: { 5483 sameDay: function sameDay() { 5484 return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 5485 }, 5486 nextDay: function nextDay() { 5487 return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 5488 }, 5489 nextWeek: function nextWeek() { 5490 return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 5491 }, 5492 lastDay: function lastDay() { 5493 return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 5494 }, 5495 lastWeek: function lastWeek() { 5496 return '[el] dddd [passat a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 5497 }, 5498 sameElse: 'L' 5499 }, 5500 relativeTime: { 5501 future: "d'aquà %s", 5502 past: 'fa %s', 5503 s: 'uns segons', 5504 ss: '%d segons', 5505 m: 'un minut', 5506 mm: '%d minuts', 5507 h: 'una hora', 5508 hh: '%d hores', 5509 d: 'un dia', 5510 dd: '%d dies', 5511 M: 'un mes', 5512 MM: '%d mesos', 5513 y: 'un any', 5514 yy: '%d anys' 5515 }, 5516 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, 5517 ordinal: function ordinal(number, period) { 5518 var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è'; 5519 5520 if (period === 'w' || period === 'W') { 5521 output = 'a'; 5522 } 5523 5524 return number + output; 5525 }, 5526 week: { 5527 dow: 1, 5528 // Monday is the first day of the week. 5529 doy: 4 // The week that contains Jan 4th is the first week of the year. 5530 5531 } 5532 }); 5533 return ca; 5534}); 5535 5536/***/ }), 5537
vendor: 7,898 bytes, lines 5538-5754
5538/***/ "../autobahn_client_core/node_modules/moment/locale/cs.js": 5539/*!****************************************************************!*\ 5540 !*** ../autobahn_client_core/node_modules/moment/locale/cs.js ***! 5541 \****************************************************************/ 5542/*! no static exports found */ 5543/***/ (function(module, exports, __webpack_require__) { 5544 5545var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 5546 5547//! moment.js locale configuration 5548//! locale : Czech [cs] 5549//! author : petrbela : https://github.com/petrbela 5550; 5551 5552(function (global, factory) { 5553 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 5554 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 5555 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 5556 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 5557})(this, function (moment) { 5558 'use strict'; //! moment.js locale configuration 5559 5560 var months = { 5561 format: 'leden_únor_bÅezen_duben_kvÄten_Äerven_Äervenec_srpen_záÅÃ_ÅÃjen_listopad_prosinec'.split('_'), 5562 standalone: 'ledna_února_bÅezna_dubna_kvÄtna_Äervna_Äervence_srpna_záÅÃ_ÅÃjna_listopadu_prosince'.split('_') 5563 }, 5564 monthsShort = 'led_úno_bÅe_dub_kvÄ_Ävn_Ävc_srp_záÅ_ÅÃj_lis_pro'.split('_'), 5565 monthsParse = [/^led/i, /^úno/i, /^bÅe/i, /^dub/i, /^kvÄ/i, /^(Ävn|Äerven$|Äervna)/i, /^(Ävc|Äervenec|Äervence)/i, /^srp/i, /^záÅ/i, /^ÅÃj/i, /^lis/i, /^pro/i], 5566 // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched. 5567 // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'. 5568 monthsRegex = /^(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; 5569 5570 function plural(n) { 5571 return n > 1 && n < 5 && ~~(n / 10) !== 1; 5572 } 5573 5574 function translate(number, withoutSuffix, key, isFuture) { 5575 var result = number + ' '; 5576 5577 switch (key) { 5578 case 's': 5579 // a few seconds / in a few seconds / a few seconds ago 5580 return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; 5581 5582 case 'ss': 5583 // 9 seconds / in 9 seconds / 9 seconds ago 5584 if (withoutSuffix || isFuture) { 5585 return result + (plural(number) ? 'sekundy' : 'sekund'); 5586 } else { 5587 return result + 'sekundami'; 5588 } 5589 5590 case 'm': 5591 // a minute / in a minute / a minute ago 5592 return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; 5593 5594 case 'mm': 5595 // 9 minutes / in 9 minutes / 9 minutes ago 5596 if (withoutSuffix || isFuture) { 5597 return result + (plural(number) ? 'minuty' : 'minut'); 5598 } else { 5599 return result + 'minutami'; 5600 } 5601 5602 case 'h': 5603 // an hour / in an hour / an hour ago 5604 return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; 5605 5606 case 'hh': 5607 // 9 hours / in 9 hours / 9 hours ago 5608 if (withoutSuffix || isFuture) { 5609 return result + (plural(number) ? 'hodiny' : 'hodin'); 5610 } else { 5611 return result + 'hodinami'; 5612 } 5613 5614 case 'd': 5615 // a day / in a day / a day ago 5616 return withoutSuffix || isFuture ? 'den' : 'dnem'; 5617 5618 case 'dd': 5619 // 9 days / in 9 days / 9 days ago 5620 if (withoutSuffix || isFuture) { 5621 return result + (plural(number) ? 'dny' : 'dnÃ'); 5622 } else { 5623 return result + 'dny'; 5624 } 5625 5626 case 'M': 5627 // a month / in a month / a month ago 5628 return withoutSuffix || isFuture ? 'mÄsÃc' : 'mÄsÃcem'; 5629 5630 case 'MM': 5631 // 9 months / in 9 months / 9 months ago 5632 if (withoutSuffix || isFuture) { 5633 return result + (plural(number) ? 'mÄsÃce' : 'mÄsÃců'); 5634 } else { 5635 return result + 'mÄsÃci'; 5636 } 5637 5638 case 'y': 5639 // a year / in a year / a year ago 5640 return withoutSuffix || isFuture ? 'rok' : 'rokem'; 5641 5642 case 'yy': 5643 // 9 years / in 9 years / 9 years ago 5644 if (withoutSuffix || isFuture) { 5645 return result + (plural(number) ? 'roky' : 'let'); 5646 } else { 5647 return result + 'lety'; 5648 } 5649 5650 } 5651 } 5652 5653 var cs = moment.defineLocale('cs', { 5654 months: months, 5655 monthsShort: monthsShort, 5656 monthsRegex: monthsRegex, 5657 monthsShortRegex: monthsRegex, 5658 // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched. 5659 // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'. 5660 monthsStrictRegex: /^(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, 5661 monthsShortStrictRegex: /^(led|úno|bÅe|dub|kvÄ|Ävn|Ävc|srp|záÅ|ÅÃj|lis|pro)/i, 5662 monthsParse: monthsParse, 5663 longMonthsParse: monthsParse, 5664 shortMonthsParse: monthsParse, 5665 weekdays: 'nedÄle_pondÄlÃ_úterý_stÅeda_Ätvrtek_pátek_sobota'.split('_'), 5666 weekdaysShort: 'ne_po_út_st_Ät_pá_so'.split('_'), 5667 weekdaysMin: 'ne_po_út_st_Ät_pá_so'.split('_'), 5668 longDateFormat: { 5669 LT: 'H:mm', 5670 LTS: 'H:mm:ss', 5671 L: 'DD.MM.YYYY', 5672 LL: 'D. MMMM YYYY', 5673 LLL: 'D. MMMM YYYY H:mm', 5674 LLLL: 'dddd D. MMMM YYYY H:mm', 5675 l: 'D. M. YYYY' 5676 }, 5677 calendar: { 5678 sameDay: '[dnes v] LT', 5679 nextDay: '[zÃtra v] LT', 5680 nextWeek: function nextWeek() { 5681 switch (this.day()) { 5682 case 0: 5683 return '[v nedÄli v] LT'; 5684 5685 case 1: 5686 case 2: 5687 return '[v] dddd [v] LT'; 5688 5689 case 3: 5690 return '[ve stÅedu v] LT'; 5691 5692 case 4: 5693 return '[ve Ätvrtek v] LT'; 5694 5695 case 5: 5696 return '[v pátek v] LT'; 5697 5698 case 6: 5699 return '[v sobotu v] LT'; 5700 } 5701 }, 5702 lastDay: '[vÄera v] LT', 5703 lastWeek: function lastWeek() { 5704 switch (this.day()) { 5705 case 0: 5706 return '[minulou nedÄli v] LT'; 5707 5708 case 1: 5709 case 2: 5710 return '[minulé] dddd [v] LT'; 5711 5712 case 3: 5713 return '[minulou stÅedu v] LT'; 5714 5715 case 4: 5716 case 5: 5717 return '[minulý] dddd [v] LT'; 5718 5719 case 6: 5720 return '[minulou sobotu v] LT'; 5721 } 5722 }, 5723 sameElse: 'L' 5724 }, 5725 relativeTime: { 5726 future: 'za %s', 5727 past: 'pÅed %s', 5728 s: translate, 5729 ss: translate, 5730 m: translate, 5731 mm: translate, 5732 h: translate, 5733 hh: translate, 5734 d: translate, 5735 dd: translate, 5736 M: translate, 5737 MM: translate, 5738 y: translate, 5739 yy: translate 5740 }, 5741 dayOfMonthOrdinalParse: /\d{1,2}\./, 5742 ordinal: '%d.', 5743 week: { 5744 dow: 1, 5745 // Monday is the first day of the week. 5746 doy: 4 // The week that contains Jan 4th is the first week of the year. 5747 5748 } 5749 }); 5750 return cs; 5751}); 5752 5753/***/ }), 5754
vendor: 3,850 bytes, lines 5755-5831
5755/***/ "../autobahn_client_core/node_modules/moment/locale/cv.js": 5756/*!****************************************************************!*\ 5757 !*** ../autobahn_client_core/node_modules/moment/locale/cv.js ***! 5758 \****************************************************************/ 5759/*! no static exports found */ 5760/***/ (function(module, exports, __webpack_require__) { 5761 5762var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 5763 5764//! moment.js locale configuration 5765//! locale : Chuvash [cv] 5766//! author : Anatoly Mironov : https://github.com/mirontoli 5767; 5768 5769(function (global, factory) { 5770 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 5771 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 5772 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 5773 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 5774})(this, function (moment) { 5775 'use strict'; //! moment.js locale configuration 5776 5777 var cv = moment.defineLocale('cv', { 5778 months: 'кÓÑлаÑ_наÑÓÑ_пÑÑ_ака_май_Ò«ÓÑÑме_ÑÑÓ_Ò«ÑÑла_авÓн_Ñпа_Ñӳк_ÑаÑÑав'.split('_'), 5779 monthsShort: 'кÓÑ_наÑ_пÑÑ_ака_май_Ò«ÓÑ_ÑÑÓ_Ò«ÑÑ_авн_Ñпа_Ñӳк_ÑаÑ'.split('_'), 5780 weekdays: 'вÑÑÑаÑникÑн_ÑÑнÑикÑн_ÑÑлаÑикÑн_ÑнкÑн_кÓҫнеÑникÑн_ÑÑнекÑн_ÑÓмаÑкÑн'.split('_'), 5781 weekdaysShort: 'вÑÑ_ÑÑн_ÑÑл_Ñн_кÓÒ«_ÑÑн_ÑÓм'.split('_'), 5782 weekdaysMin: 'вÑ_Ñн_ÑÑ_Ñн_кҫ_ÑÑ_Ñм'.split('_'), 5783 longDateFormat: { 5784 LT: 'HH:mm', 5785 LTS: 'HH:mm:ss', 5786 L: 'DD-MM-YYYY', 5787 LL: 'YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ]', 5788 LLL: 'YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ], HH:mm', 5789 LLLL: 'dddd, YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ], HH:mm' 5790 }, 5791 calendar: { 5792 sameDay: '[ÐаÑн] LT [ÑÐµÑ ÐµÑÑе]', 5793 nextDay: '[ЫÑан] LT [ÑÐµÑ ÐµÑÑе]', 5794 lastDay: '[ÓнеÑ] LT [ÑÐµÑ ÐµÑÑе]', 5795 nextWeek: '[ҪиÑеÑ] dddd LT [ÑÐµÑ ÐµÑÑе]', 5796 lastWeek: '[ÐÑÑнÓ] dddd LT [ÑÐµÑ ÐµÑÑе]', 5797 sameElse: 'L' 5798 }, 5799 relativeTime: { 5800 future: function future(output) { 5801 var affix = /ÑÐµÑ ÐµÑ$/i.exec(output) ? 'Ñен' : /Ò«Ñл$/i.exec(output) ? 'Ñан' : 'Ñан'; 5802 return output + affix; 5803 }, 5804 past: '%s каÑлла', 5805 s: 'пÓÑ-ик ҫеккÑнÑ', 5806 ss: '%d ҫеккÑнÑ', 5807 m: 'пÓÑ Ð¼Ð¸Ð½ÑÑ', 5808 mm: '%d минÑÑ', 5809 h: 'пÓÑ ÑÐµÑ ÐµÑ', 5810 hh: '%d ÑÐµÑ ÐµÑ', 5811 d: 'пÓÑ ÐºÑн', 5812 dd: '%d кÑн', 5813 M: 'пÓÑ ÑйÓÑ ', 5814 MM: '%d ÑйÓÑ ', 5815 y: 'пÓÑ Ò«Ñл', 5816 yy: '%d Ò«Ñл' 5817 }, 5818 dayOfMonthOrdinalParse: /\d{1,2}-мÓÑ/, 5819 ordinal: '%d-мÓÑ', 5820 week: { 5821 dow: 1, 5822 // Monday is the first day of the week. 5823 doy: 7 // The week that contains Jan 7th is the first week of the year. 5824 5825 } 5826 }); 5827 return cv; 5828}); 5829 5830/***/ }), 5831
vendor: 4,026 bytes, lines 5832-5927
5832/***/ "../autobahn_client_core/node_modules/moment/locale/cy.js": 5833/*!****************************************************************!*\ 5834 !*** ../autobahn_client_core/node_modules/moment/locale/cy.js ***! 5835 \****************************************************************/ 5836/*! no static exports found */ 5837/***/ (function(module, exports, __webpack_require__) { 5838 5839var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 5840 5841//! moment.js locale configuration 5842//! locale : Welsh [cy] 5843//! author : Robert Allen : https://github.com/robgallen 5844//! author : https://github.com/ryangreaves 5845; 5846 5847(function (global, factory) { 5848 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 5849 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 5850 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 5851 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 5852})(this, function (moment) { 5853 'use strict'; //! moment.js locale configuration 5854 5855 var cy = moment.defineLocale('cy', { 5856 months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'), 5857 monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'), 5858 weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'), 5859 weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), 5860 weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), 5861 weekdaysParseExact: true, 5862 // time formats are the same as en-gb 5863 longDateFormat: { 5864 LT: 'HH:mm', 5865 LTS: 'HH:mm:ss', 5866 L: 'DD/MM/YYYY', 5867 LL: 'D MMMM YYYY', 5868 LLL: 'D MMMM YYYY HH:mm', 5869 LLLL: 'dddd, D MMMM YYYY HH:mm' 5870 }, 5871 calendar: { 5872 sameDay: '[Heddiw am] LT', 5873 nextDay: '[Yfory am] LT', 5874 nextWeek: 'dddd [am] LT', 5875 lastDay: '[Ddoe am] LT', 5876 lastWeek: 'dddd [diwethaf am] LT', 5877 sameElse: 'L' 5878 }, 5879 relativeTime: { 5880 future: 'mewn %s', 5881 past: '%s yn ôl', 5882 s: 'ychydig eiliadau', 5883 ss: '%d eiliad', 5884 m: 'munud', 5885 mm: '%d munud', 5886 h: 'awr', 5887 hh: '%d awr', 5888 d: 'diwrnod', 5889 dd: '%d diwrnod', 5890 M: 'mis', 5891 MM: '%d mis', 5892 y: 'blwyddyn', 5893 yy: '%d flynedd' 5894 }, 5895 dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, 5896 // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh 5897 ordinal: function ordinal(number) { 5898 var b = number, 5899 output = '', 5900 lookup = ['', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed 5901 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed 5902 ]; 5903 5904 if (b > 20) { 5905 if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { 5906 output = 'fed'; // not 30ain, 70ain or 90ain 5907 } else { 5908 output = 'ain'; 5909 } 5910 } else if (b > 0) { 5911 output = lookup[b]; 5912 } 5913 5914 return number + output; 5915 }, 5916 week: { 5917 dow: 1, 5918 // Monday is the first day of the week. 5919 doy: 4 // The week that contains Jan 4th is the first week of the year. 5920 5921 } 5922 }); 5923 return cy; 5924}); 5925 5926/***/ }), 5927
vendor: 3,236 bytes, lines 5928-6001
5928/***/ "../autobahn_client_core/node_modules/moment/locale/da.js": 5929/*!****************************************************************!*\ 5930 !*** ../autobahn_client_core/node_modules/moment/locale/da.js ***! 5931 \****************************************************************/ 5932/*! no static exports found */ 5933/***/ (function(module, exports, __webpack_require__) { 5934 5935var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 5936 5937//! moment.js locale configuration 5938//! locale : Danish [da] 5939//! author : Ulrik Nielsen : https://github.com/mrbase 5940; 5941 5942(function (global, factory) { 5943 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 5944 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 5945 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 5946 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 5947})(this, function (moment) { 5948 'use strict'; //! moment.js locale configuration 5949 5950 var da = moment.defineLocale('da', { 5951 months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'), 5952 monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), 5953 weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), 5954 weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), 5955 weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), 5956 longDateFormat: { 5957 LT: 'HH:mm', 5958 LTS: 'HH:mm:ss', 5959 L: 'DD.MM.YYYY', 5960 LL: 'D. MMMM YYYY', 5961 LLL: 'D. MMMM YYYY HH:mm', 5962 LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm' 5963 }, 5964 calendar: { 5965 sameDay: '[i dag kl.] LT', 5966 nextDay: '[i morgen kl.] LT', 5967 nextWeek: 'på dddd [kl.] LT', 5968 lastDay: '[i går kl.] LT', 5969 lastWeek: '[i] dddd[s kl.] LT', 5970 sameElse: 'L' 5971 }, 5972 relativeTime: { 5973 future: 'om %s', 5974 past: '%s siden', 5975 s: 'få sekunder', 5976 ss: '%d sekunder', 5977 m: 'et minut', 5978 mm: '%d minutter', 5979 h: 'en time', 5980 hh: '%d timer', 5981 d: 'en dag', 5982 dd: '%d dage', 5983 M: 'en måned', 5984 MM: '%d måneder', 5985 y: 'et år', 5986 yy: '%d år' 5987 }, 5988 dayOfMonthOrdinalParse: /\d{1,2}\./, 5989 ordinal: '%d.', 5990 week: { 5991 dow: 1, 5992 // Monday is the first day of the week. 5993 doy: 4 // The week that contains Jan 4th is the first week of the year. 5994 5995 } 5996 }); 5997 return da; 5998}); 5999 6000/***/ }), 6001
vendor: 4,201 bytes, lines 6002-6097
6002/***/ "../autobahn_client_core/node_modules/moment/locale/de-at.js": 6003/*!*******************************************************************!*\ 6004 !*** ../autobahn_client_core/node_modules/moment/locale/de-at.js ***! 6005 \*******************************************************************/ 6006/*! no static exports found */ 6007/***/ (function(module, exports, __webpack_require__) { 6008 6009var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6010 6011//! moment.js locale configuration 6012//! locale : German (Austria) [de-at] 6013//! author : lluchs : https://github.com/lluchs 6014//! author: Menelion Elensúle: https://github.com/Oire 6015//! author : Martin Groller : https://github.com/MadMG 6016//! author : Mikolaj Dadela : https://github.com/mik01aj 6017; 6018 6019(function (global, factory) { 6020 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6021 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6022 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6023 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6024})(this, function (moment) { 6025 'use strict'; //! moment.js locale configuration 6026 6027 function processRelativeTime(number, withoutSuffix, key, isFuture) { 6028 var format = { 6029 m: ['eine Minute', 'einer Minute'], 6030 h: ['eine Stunde', 'einer Stunde'], 6031 d: ['ein Tag', 'einem Tag'], 6032 dd: [number + ' Tage', number + ' Tagen'], 6033 w: ['eine Woche', 'einer Woche'], 6034 M: ['ein Monat', 'einem Monat'], 6035 MM: [number + ' Monate', number + ' Monaten'], 6036 y: ['ein Jahr', 'einem Jahr'], 6037 yy: [number + ' Jahre', number + ' Jahren'] 6038 }; 6039 return withoutSuffix ? format[key][0] : format[key][1]; 6040 } 6041 6042 var deAt = moment.defineLocale('de-at', { 6043 months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), 6044 monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), 6045 monthsParseExact: true, 6046 weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), 6047 weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), 6048 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 6049 weekdaysParseExact: true, 6050 longDateFormat: { 6051 LT: 'HH:mm', 6052 LTS: 'HH:mm:ss', 6053 L: 'DD.MM.YYYY', 6054 LL: 'D. MMMM YYYY', 6055 LLL: 'D. MMMM YYYY HH:mm', 6056 LLLL: 'dddd, D. MMMM YYYY HH:mm' 6057 }, 6058 calendar: { 6059 sameDay: '[heute um] LT [Uhr]', 6060 sameElse: 'L', 6061 nextDay: '[morgen um] LT [Uhr]', 6062 nextWeek: 'dddd [um] LT [Uhr]', 6063 lastDay: '[gestern um] LT [Uhr]', 6064 lastWeek: '[letzten] dddd [um] LT [Uhr]' 6065 }, 6066 relativeTime: { 6067 future: 'in %s', 6068 past: 'vor %s', 6069 s: 'ein paar Sekunden', 6070 ss: '%d Sekunden', 6071 m: processRelativeTime, 6072 mm: '%d Minuten', 6073 h: processRelativeTime, 6074 hh: '%d Stunden', 6075 d: processRelativeTime, 6076 dd: processRelativeTime, 6077 w: processRelativeTime, 6078 ww: '%d Wochen', 6079 M: processRelativeTime, 6080 MM: processRelativeTime, 6081 y: processRelativeTime, 6082 yy: processRelativeTime 6083 }, 6084 dayOfMonthOrdinalParse: /\d{1,2}\./, 6085 ordinal: '%d.', 6086 week: { 6087 dow: 1, 6088 // Monday is the first day of the week. 6089 doy: 4 // The week that contains Jan 4th is the first week of the year. 6090 6091 } 6092 }); 6093 return deAt; 6094}); 6095 6096/***/ }), 6097
vendor: 4,036 bytes, lines 6098-6190
6098/***/ "../autobahn_client_core/node_modules/moment/locale/de-ch.js": 6099/*!*******************************************************************!*\ 6100 !*** ../autobahn_client_core/node_modules/moment/locale/de-ch.js ***! 6101 \*******************************************************************/ 6102/*! no static exports found */ 6103/***/ (function(module, exports, __webpack_require__) { 6104 6105var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6106 6107//! moment.js locale configuration 6108//! locale : German (Switzerland) [de-ch] 6109//! author : sschueller : https://github.com/sschueller 6110; 6111 6112(function (global, factory) { 6113 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6114 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6115 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6116 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6117})(this, function (moment) { 6118 'use strict'; //! moment.js locale configuration 6119 6120 function processRelativeTime(number, withoutSuffix, key, isFuture) { 6121 var format = { 6122 m: ['eine Minute', 'einer Minute'], 6123 h: ['eine Stunde', 'einer Stunde'], 6124 d: ['ein Tag', 'einem Tag'], 6125 dd: [number + ' Tage', number + ' Tagen'], 6126 w: ['eine Woche', 'einer Woche'], 6127 M: ['ein Monat', 'einem Monat'], 6128 MM: [number + ' Monate', number + ' Monaten'], 6129 y: ['ein Jahr', 'einem Jahr'], 6130 yy: [number + ' Jahre', number + ' Jahren'] 6131 }; 6132 return withoutSuffix ? format[key][0] : format[key][1]; 6133 } 6134 6135 var deCh = moment.defineLocale('de-ch', { 6136 months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), 6137 monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), 6138 monthsParseExact: true, 6139 weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), 6140 weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 6141 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 6142 weekdaysParseExact: true, 6143 longDateFormat: { 6144 LT: 'HH:mm', 6145 LTS: 'HH:mm:ss', 6146 L: 'DD.MM.YYYY', 6147 LL: 'D. MMMM YYYY', 6148 LLL: 'D. MMMM YYYY HH:mm', 6149 LLLL: 'dddd, D. MMMM YYYY HH:mm' 6150 }, 6151 calendar: { 6152 sameDay: '[heute um] LT [Uhr]', 6153 sameElse: 'L', 6154 nextDay: '[morgen um] LT [Uhr]', 6155 nextWeek: 'dddd [um] LT [Uhr]', 6156 lastDay: '[gestern um] LT [Uhr]', 6157 lastWeek: '[letzten] dddd [um] LT [Uhr]' 6158 }, 6159 relativeTime: { 6160 future: 'in %s', 6161 past: 'vor %s', 6162 s: 'ein paar Sekunden', 6163 ss: '%d Sekunden', 6164 m: processRelativeTime, 6165 mm: '%d Minuten', 6166 h: processRelativeTime, 6167 hh: '%d Stunden', 6168 d: processRelativeTime, 6169 dd: processRelativeTime, 6170 w: processRelativeTime, 6171 ww: '%d Wochen', 6172 M: processRelativeTime, 6173 MM: processRelativeTime, 6174 y: processRelativeTime, 6175 yy: processRelativeTime 6176 }, 6177 dayOfMonthOrdinalParse: /\d{1,2}\./, 6178 ordinal: '%d.', 6179 week: { 6180 dow: 1, 6181 // Monday is the first day of the week. 6182 doy: 4 // The week that contains Jan 4th is the first week of the year. 6183 6184 } 6185 }); 6186 return deCh; 6187}); 6188 6189/***/ }), 6190
vendor: 4,112 bytes, lines 6191-6285
6191/***/ "../autobahn_client_core/node_modules/moment/locale/de.js": 6192/*!****************************************************************!*\ 6193 !*** ../autobahn_client_core/node_modules/moment/locale/de.js ***! 6194 \****************************************************************/ 6195/*! no static exports found */ 6196/***/ (function(module, exports, __webpack_require__) { 6197 6198var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6199 6200//! moment.js locale configuration 6201//! locale : German [de] 6202//! author : lluchs : https://github.com/lluchs 6203//! author: Menelion Elensúle: https://github.com/Oire 6204//! author : Mikolaj Dadela : https://github.com/mik01aj 6205; 6206 6207(function (global, factory) { 6208 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6209 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6210 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6211 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6212})(this, function (moment) { 6213 'use strict'; //! moment.js locale configuration 6214 6215 function processRelativeTime(number, withoutSuffix, key, isFuture) { 6216 var format = { 6217 m: ['eine Minute', 'einer Minute'], 6218 h: ['eine Stunde', 'einer Stunde'], 6219 d: ['ein Tag', 'einem Tag'], 6220 dd: [number + ' Tage', number + ' Tagen'], 6221 w: ['eine Woche', 'einer Woche'], 6222 M: ['ein Monat', 'einem Monat'], 6223 MM: [number + ' Monate', number + ' Monaten'], 6224 y: ['ein Jahr', 'einem Jahr'], 6225 yy: [number + ' Jahre', number + ' Jahren'] 6226 }; 6227 return withoutSuffix ? format[key][0] : format[key][1]; 6228 } 6229 6230 var de = moment.defineLocale('de', { 6231 months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), 6232 monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), 6233 monthsParseExact: true, 6234 weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), 6235 weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), 6236 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 6237 weekdaysParseExact: true, 6238 longDateFormat: { 6239 LT: 'HH:mm', 6240 LTS: 'HH:mm:ss', 6241 L: 'DD.MM.YYYY', 6242 LL: 'D. MMMM YYYY', 6243 LLL: 'D. MMMM YYYY HH:mm', 6244 LLLL: 'dddd, D. MMMM YYYY HH:mm' 6245 }, 6246 calendar: { 6247 sameDay: '[heute um] LT [Uhr]', 6248 sameElse: 'L', 6249 nextDay: '[morgen um] LT [Uhr]', 6250 nextWeek: 'dddd [um] LT [Uhr]', 6251 lastDay: '[gestern um] LT [Uhr]', 6252 lastWeek: '[letzten] dddd [um] LT [Uhr]' 6253 }, 6254 relativeTime: { 6255 future: 'in %s', 6256 past: 'vor %s', 6257 s: 'ein paar Sekunden', 6258 ss: '%d Sekunden', 6259 m: processRelativeTime, 6260 mm: '%d Minuten', 6261 h: processRelativeTime, 6262 hh: '%d Stunden', 6263 d: processRelativeTime, 6264 dd: processRelativeTime, 6265 w: processRelativeTime, 6266 ww: '%d Wochen', 6267 M: processRelativeTime, 6268 MM: processRelativeTime, 6269 y: processRelativeTime, 6270 yy: processRelativeTime 6271 }, 6272 dayOfMonthOrdinalParse: /\d{1,2}\./, 6273 ordinal: '%d.', 6274 week: { 6275 dow: 1, 6276 // Monday is the first day of the week. 6277 doy: 4 // The week that contains Jan 4th is the first week of the year. 6278 6279 } 6280 }); 6281 return de; 6282}); 6283 6284/***/ }), 6285
vendor: 3,932 bytes, lines 6286-6376
6286/***/ "../autobahn_client_core/node_modules/moment/locale/dv.js": 6287/*!****************************************************************!*\ 6288 !*** ../autobahn_client_core/node_modules/moment/locale/dv.js ***! 6289 \****************************************************************/ 6290/*! no static exports found */ 6291/***/ (function(module, exports, __webpack_require__) { 6292 6293var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6294 6295//! moment.js locale configuration 6296//! locale : Maldivian [dv] 6297//! author : Jawish Hameed : https://github.com/jawish 6298; 6299 6300(function (global, factory) { 6301 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6302 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6303 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6304 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6305})(this, function (moment) { 6306 'use strict'; //! moment.js locale configuration 6307 6308 var months = ['ÞÞ¬ÞÞªÞÞ¦ÞÞ©', 'ÞÞ¬ÞÞ°ÞÞªÞÞ¦ÞÞ©', 'ÞÞ§ÞÞ¨ÞÞª', 'ÞÞÞÞ°ÞÞ©ÞÞª', 'ÞÞ', 'ÞÞ«ÞÞ°', 'ÞÞªÞÞ¦ÞÞ¨', 'ÞÞ¯ÞÞ¦ÞÞ°ÞÞª', 'ÞÞ¬ÞÞ°ÞÞ¬ÞÞ°ÞÞ¦ÞÞª', 'ÞÞ®ÞÞ°ÞÞ¯ÞÞ¦ÞÞª', 'ÞÞ®ÞÞ¬ÞÞ°ÞÞ¦ÞÞª', 'ÞÞ¨ÞÞ¬ÞÞ°ÞÞ¦ÞÞª'], 6309 weekdays = ['ÞÞ§ÞÞ¨ÞÞ°ÞÞ¦', 'ÞÞ¯ÞÞ¦', 'ÞÞ¦ÞÞ°ÞÞ§ÞÞ¦', 'ÞÞªÞÞ¦', 'ÞÞªÞÞ§ÞÞ°ÞÞ¦ÞÞ¨', 'ÞÞªÞÞªÞÞª', 'ÞÞ®ÞÞ¨ÞÞ¨ÞÞª']; 6310 var dv = moment.defineLocale('dv', { 6311 months: months, 6312 monthsShort: months, 6313 weekdays: weekdays, 6314 weekdaysShort: weekdays, 6315 weekdaysMin: 'ÞÞ§ÞÞ¨_ÞÞ¯ÞÞ¦_ÞÞ¦ÞÞ°_ÞÞªÞÞ¦_ÞÞªÞÞ§_ÞÞªÞÞª_ÞÞ®ÞÞ¨'.split('_'), 6316 longDateFormat: { 6317 LT: 'HH:mm', 6318 LTS: 'HH:mm:ss', 6319 L: 'D/M/YYYY', 6320 LL: 'D MMMM YYYY', 6321 LLL: 'D MMMM YYYY HH:mm', 6322 LLLL: 'dddd D MMMM YYYY HH:mm' 6323 }, 6324 meridiemParse: /ÞÞ|ÞÞ/, 6325 isPM: function isPM(input) { 6326 return 'ÞÞ' === input; 6327 }, 6328 meridiem: function meridiem(hour, minute, isLower) { 6329 if (hour < 12) { 6330 return 'ÞÞ'; 6331 } else { 6332 return 'ÞÞ'; 6333 } 6334 }, 6335 calendar: { 6336 sameDay: '[ÞÞ¨ÞÞ¦ÞÞª] LT', 6337 nextDay: '[ÞÞ§ÞÞ¦ÞÞ§] LT', 6338 nextWeek: 'dddd LT', 6339 lastDay: '[ÞÞ¨ÞÞ°ÞÞ¬] LT', 6340 lastWeek: '[ÞÞ§ÞÞ¨ÞÞªÞÞ¨] dddd LT', 6341 sameElse: 'L' 6342 }, 6343 relativeTime: { 6344 future: 'ÞÞ¬ÞÞÞÞ¦ÞÞ¨ %s', 6345 past: 'ÞÞªÞÞ¨ÞÞ° %s', 6346 s: 'ÞÞ¨ÞÞªÞÞ°ÞÞªÞÞ®Þ Þ¬ÞÞ°', 6347 ss: 'd% ÞÞ¨ÞÞªÞÞ°ÞÞª', 6348 m: 'ÞÞ¨ÞÞ¨ÞÞ¬ÞÞ°', 6349 mm: 'ÞÞ¨ÞÞ¨ÞÞª %d', 6350 h: 'ÞÞ¦ÞÞ¨ÞÞ¨ÞÞ¬ÞÞ°', 6351 hh: 'ÞÞ¦ÞÞ¨ÞÞ¨ÞÞª %d', 6352 d: 'ÞÞªÞÞ¦ÞÞ¬ÞÞ°', 6353 dd: 'ÞÞªÞÞ¦ÞÞ° %d', 6354 M: 'ÞÞ¦ÞÞ¬ÞÞ°', 6355 MM: 'ÞÞ¦ÞÞ° %d', 6356 y: 'ÞÞ¦ÞÞ¦ÞÞ¬ÞÞ°', 6357 yy: 'ÞÞ¦ÞÞ¦ÞÞª %d' 6358 }, 6359 preparse: function preparse(string) { 6360 return string.replace(/Ø/g, ','); 6361 }, 6362 postformat: function postformat(string) { 6363 return string.replace(/,/g, 'Ø'); 6364 }, 6365 week: { 6366 dow: 7, 6367 // Sunday is the first day of the week. 6368 doy: 12 // The week that contains Jan 12th is the first week of the year. 6369 6370 } 6371 }); 6372 return dv; 6373}); 6374 6375/***/ }), 6376
vendor: 5,313 bytes, lines 6377-6494
6377/***/ "../autobahn_client_core/node_modules/moment/locale/el.js": 6378/*!****************************************************************!*\ 6379 !*** ../autobahn_client_core/node_modules/moment/locale/el.js ***! 6380 \****************************************************************/ 6381/*! no static exports found */ 6382/***/ (function(module, exports, __webpack_require__) { 6383 6384var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6385 6386//! moment.js locale configuration 6387//! locale : Greek [el] 6388//! author : Aggelos Karalias : https://github.com/mehiel 6389; 6390 6391(function (global, factory) { 6392 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6393 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6394 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6395 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6396})(this, function (moment) { 6397 'use strict'; //! moment.js locale configuration 6398 6399 function isFunction(input) { 6400 return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; 6401 } 6402 6403 var el = moment.defineLocale('el', { 6404 monthsNominativeEl: 'ÎÎ±Î½Î¿Ï Î¬ÏιοÏ_ΦεβÏÎ¿Ï Î¬ÏιοÏ_ÎάÏÏιοÏ_ÎÏÏίλιοÏ_ÎάιοÏ_ÎοÏνιοÏ_ÎοÏλιοÏ_ÎÏÎ³Î¿Ï ÏÏοÏ_ΣεÏÏÎμβÏιοÏ_ÎκÏÏβÏιοÏ_ÎοÎμβÏιοÏ_ÎεκÎμβÏιοÏ'.split('_'), 6405 monthsGenitiveEl: 'ÎÎ±Î½Î¿Ï Î±ÏÎ¯Î¿Ï _ΦεβÏÎ¿Ï Î±ÏÎ¯Î¿Ï _ÎαÏÏÎ¯Î¿Ï _ÎÏÏÎ¹Î»Î¯Î¿Ï _ÎαÎÎ¿Ï _ÎÎ¿Ï Î½Î¯Î¿Ï _ÎÎ¿Ï Î»Î¯Î¿Ï _ÎÏ Î³Î¿ÏÏÏÎ¿Ï _ΣεÏÏεμβÏÎ¯Î¿Ï _ÎκÏÏβÏÎ¯Î¿Ï _ÎοεμβÏÎ¯Î¿Ï _ÎεκεμβÏÎ¯Î¿Ï '.split('_'), 6406 months: function months(momentToFormat, format) { 6407 if (!momentToFormat) { 6408 return this._monthsNominativeEl; 6409 } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { 6410 // if there is a day number before 'MMMM' 6411 return this._monthsGenitiveEl[momentToFormat.month()]; 6412 } else { 6413 return this._monthsNominativeEl[momentToFormat.month()]; 6414 } 6415 }, 6416 monthsShort: 'Îαν_Φεβ_ÎαÏ_ÎÏÏ_ÎαÏ_ÎÎ¿Ï Î½_ÎÎ¿Ï Î»_ÎÏ Î³_ΣεÏ_ÎκÏ_Îοε_Îεκ'.split('_'), 6417 weekdays: 'ÎÏ Ïιακή_ÎÎµÏ ÏÎÏα_ΤÏίÏη_ΤεÏάÏÏη_Î ÎμÏÏη_ΠαÏαÏÎºÎµÏ Î®_ΣάββαÏο'.split('_'), 6418 weekdaysShort: 'ÎÏ Ï_ÎÎµÏ _ΤÏι_ΤεÏ_Πεμ_ΠαÏ_Σαβ'.split('_'), 6419 weekdaysMin: 'ÎÏ _Îε_ΤÏ_Τε_Πε_Πα_Σα'.split('_'), 6420 meridiem: function meridiem(hours, minutes, isLower) { 6421 if (hours > 11) { 6422 return isLower ? 'μμ' : 'ÎÎ'; 6423 } else { 6424 return isLower ? 'Ïμ' : 'Î Î'; 6425 } 6426 }, 6427 isPM: function isPM(input) { 6428 return (input + '').toLowerCase()[0] === 'μ'; 6429 }, 6430 meridiemParse: /[Î Î]\.?Î?\.?/i, 6431 longDateFormat: { 6432 LT: 'h:mm A', 6433 LTS: 'h:mm:ss A', 6434 L: 'DD/MM/YYYY', 6435 LL: 'D MMMM YYYY', 6436 LLL: 'D MMMM YYYY h:mm A', 6437 LLLL: 'dddd, D MMMM YYYY h:mm A' 6438 }, 6439 calendarEl: { 6440 sameDay: '[ΣήμεÏα {}] LT', 6441 nextDay: '[ÎÏÏιο {}] LT', 6442 nextWeek: 'dddd [{}] LT', 6443 lastDay: '[Î§Î¸ÎµÏ {}] LT', 6444 lastWeek: function lastWeek() { 6445 switch (this.day()) { 6446 case 6: 6447 return '[Ïο ÏÏοηγοÏμενο] dddd [{}] LT'; 6448 6449 default: 6450 return '[Ïην ÏÏοηγοÏμενη] dddd [{}] LT'; 6451 } 6452 }, 6453 sameElse: 'L' 6454 }, 6455 calendar: function calendar(key, mom) { 6456 var output = this._calendarEl[key], 6457 hours = mom && mom.hours(); 6458 6459 if (isFunction(output)) { 6460 output = output.apply(mom); 6461 } 6462 6463 return output.replace('{}', hours % 12 === 1 ? 'ÏÏη' : 'ÏÏιÏ'); 6464 }, 6465 relativeTime: { 6466 future: 'Ïε %s', 6467 past: '%s ÏÏιν', 6468 s: 'λίγα Î´ÎµÏ ÏεÏÏλεÏÏα', 6469 ss: '%d Î´ÎµÏ ÏεÏÏλεÏÏα', 6470 m: 'Îνα λεÏÏÏ', 6471 mm: '%d λεÏÏά', 6472 h: 'μία ÏÏα', 6473 hh: '%d ÏÏεÏ', 6474 d: 'μία μÎÏα', 6475 dd: '%d μÎÏεÏ', 6476 M: 'ÎÎ½Î±Ï Î¼Î®Î½Î±Ï', 6477 MM: '%d μήνεÏ', 6478 y: 'ÎÎ½Î±Ï ÏÏÏνοÏ', 6479 yy: '%d ÏÏÏνια' 6480 }, 6481 dayOfMonthOrdinalParse: /\d{1,2}η/, 6482 ordinal: '%dη', 6483 week: { 6484 dow: 1, 6485 // Monday is the first day of the week. 6486 doy: 4 // The week that contains Jan 4st is the first week of the year. 6487 6488 } 6489 }); 6490 return el; 6491}); 6492 6493/***/ }), 6494
vendor: 3,461 bytes, lines 6495-6572
6495/***/ "../autobahn_client_core/node_modules/moment/locale/en-au.js": 6496/*!*******************************************************************!*\ 6497 !*** ../autobahn_client_core/node_modules/moment/locale/en-au.js ***! 6498 \*******************************************************************/ 6499/*! no static exports found */ 6500/***/ (function(module, exports, __webpack_require__) { 6501 6502var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6503 6504//! moment.js locale configuration 6505//! locale : English (Australia) [en-au] 6506//! author : Jared Morse : https://github.com/jarcoal 6507; 6508 6509(function (global, factory) { 6510 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6511 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6512 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6513 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6514})(this, function (moment) { 6515 'use strict'; //! moment.js locale configuration 6516 6517 var enAu = moment.defineLocale('en-au', { 6518 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), 6519 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 6520 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 6521 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 6522 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 6523 longDateFormat: { 6524 LT: 'h:mm A', 6525 LTS: 'h:mm:ss A', 6526 L: 'DD/MM/YYYY', 6527 LL: 'D MMMM YYYY', 6528 LLL: 'D MMMM YYYY h:mm A', 6529 LLLL: 'dddd, D MMMM YYYY h:mm A' 6530 }, 6531 calendar: { 6532 sameDay: '[Today at] LT', 6533 nextDay: '[Tomorrow at] LT', 6534 nextWeek: 'dddd [at] LT', 6535 lastDay: '[Yesterday at] LT', 6536 lastWeek: '[Last] dddd [at] LT', 6537 sameElse: 'L' 6538 }, 6539 relativeTime: { 6540 future: 'in %s', 6541 past: '%s ago', 6542 s: 'a few seconds', 6543 ss: '%d seconds', 6544 m: 'a minute', 6545 mm: '%d minutes', 6546 h: 'an hour', 6547 hh: '%d hours', 6548 d: 'a day', 6549 dd: '%d days', 6550 M: 'a month', 6551 MM: '%d months', 6552 y: 'a year', 6553 yy: '%d years' 6554 }, 6555 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 6556 ordinal: function ordinal(number) { 6557 var b = number % 10, 6558 output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; 6559 return number + output; 6560 }, 6561 week: { 6562 dow: 0, 6563 // Sunday is the first day of the week. 6564 doy: 4 // The week that contains Jan 4th is the first week of the year. 6565 6566 } 6567 }); 6568 return enAu; 6569}); 6570 6571/***/ }), 6572
vendor: 3,308 bytes, lines 6573-6644
6573/***/ "../autobahn_client_core/node_modules/moment/locale/en-ca.js": 6574/*!*******************************************************************!*\ 6575 !*** ../autobahn_client_core/node_modules/moment/locale/en-ca.js ***! 6576 \*******************************************************************/ 6577/*! no static exports found */ 6578/***/ (function(module, exports, __webpack_require__) { 6579 6580var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6581 6582//! moment.js locale configuration 6583//! locale : English (Canada) [en-ca] 6584//! author : Jonathan Abourbih : https://github.com/jonbca 6585; 6586 6587(function (global, factory) { 6588 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6589 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6590 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6591 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6592})(this, function (moment) { 6593 'use strict'; //! moment.js locale configuration 6594 6595 var enCa = moment.defineLocale('en-ca', { 6596 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), 6597 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 6598 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 6599 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 6600 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 6601 longDateFormat: { 6602 LT: 'h:mm A', 6603 LTS: 'h:mm:ss A', 6604 L: 'YYYY-MM-DD', 6605 LL: 'MMMM D, YYYY', 6606 LLL: 'MMMM D, YYYY h:mm A', 6607 LLLL: 'dddd, MMMM D, YYYY h:mm A' 6608 }, 6609 calendar: { 6610 sameDay: '[Today at] LT', 6611 nextDay: '[Tomorrow at] LT', 6612 nextWeek: 'dddd [at] LT', 6613 lastDay: '[Yesterday at] LT', 6614 lastWeek: '[Last] dddd [at] LT', 6615 sameElse: 'L' 6616 }, 6617 relativeTime: { 6618 future: 'in %s', 6619 past: '%s ago', 6620 s: 'a few seconds', 6621 ss: '%d seconds', 6622 m: 'a minute', 6623 mm: '%d minutes', 6624 h: 'an hour', 6625 hh: '%d hours', 6626 d: 'a day', 6627 dd: '%d days', 6628 M: 'a month', 6629 MM: '%d months', 6630 y: 'a year', 6631 yy: '%d years' 6632 }, 6633 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 6634 ordinal: function ordinal(number) { 6635 var b = number % 10, 6636 output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; 6637 return number + output; 6638 } 6639 }); 6640 return enCa; 6641}); 6642 6643/***/ }), 6644
vendor: 3,467 bytes, lines 6645-6722
6645/***/ "../autobahn_client_core/node_modules/moment/locale/en-gb.js": 6646/*!*******************************************************************!*\ 6647 !*** ../autobahn_client_core/node_modules/moment/locale/en-gb.js ***! 6648 \*******************************************************************/ 6649/*! no static exports found */ 6650/***/ (function(module, exports, __webpack_require__) { 6651 6652var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6653 6654//! moment.js locale configuration 6655//! locale : English (United Kingdom) [en-gb] 6656//! author : Chris Gedrim : https://github.com/chrisgedrim 6657; 6658 6659(function (global, factory) { 6660 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6661 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6662 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6663 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6664})(this, function (moment) { 6665 'use strict'; //! moment.js locale configuration 6666 6667 var enGb = moment.defineLocale('en-gb', { 6668 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), 6669 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 6670 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 6671 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 6672 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 6673 longDateFormat: { 6674 LT: 'HH:mm', 6675 LTS: 'HH:mm:ss', 6676 L: 'DD/MM/YYYY', 6677 LL: 'D MMMM YYYY', 6678 LLL: 'D MMMM YYYY HH:mm', 6679 LLLL: 'dddd, D MMMM YYYY HH:mm' 6680 }, 6681 calendar: { 6682 sameDay: '[Today at] LT', 6683 nextDay: '[Tomorrow at] LT', 6684 nextWeek: 'dddd [at] LT', 6685 lastDay: '[Yesterday at] LT', 6686 lastWeek: '[Last] dddd [at] LT', 6687 sameElse: 'L' 6688 }, 6689 relativeTime: { 6690 future: 'in %s', 6691 past: '%s ago', 6692 s: 'a few seconds', 6693 ss: '%d seconds', 6694 m: 'a minute', 6695 mm: '%d minutes', 6696 h: 'an hour', 6697 hh: '%d hours', 6698 d: 'a day', 6699 dd: '%d days', 6700 M: 'a month', 6701 MM: '%d months', 6702 y: 'a year', 6703 yy: '%d years' 6704 }, 6705 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 6706 ordinal: function ordinal(number) { 6707 var b = number % 10, 6708 output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; 6709 return number + output; 6710 }, 6711 week: { 6712 dow: 1, 6713 // Monday is the first day of the week. 6714 doy: 4 // The week that contains Jan 4th is the first week of the year. 6715 6716 } 6717 }); 6718 return enGb; 6719}); 6720 6721/***/ }), 6722
vendor: 3,465 bytes, lines 6723-6800
6723/***/ "../autobahn_client_core/node_modules/moment/locale/en-ie.js": 6724/*!*******************************************************************!*\ 6725 !*** ../autobahn_client_core/node_modules/moment/locale/en-ie.js ***! 6726 \*******************************************************************/ 6727/*! no static exports found */ 6728/***/ (function(module, exports, __webpack_require__) { 6729 6730var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6731 6732//! moment.js locale configuration 6733//! locale : English (Ireland) [en-ie] 6734//! author : Chris Cartlidge : https://github.com/chriscartlidge 6735; 6736 6737(function (global, factory) { 6738 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6739 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6740 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6741 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6742})(this, function (moment) { 6743 'use strict'; //! moment.js locale configuration 6744 6745 var enIe = moment.defineLocale('en-ie', { 6746 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), 6747 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 6748 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 6749 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 6750 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 6751 longDateFormat: { 6752 LT: 'HH:mm', 6753 LTS: 'HH:mm:ss', 6754 L: 'DD/MM/YYYY', 6755 LL: 'D MMMM YYYY', 6756 LLL: 'D MMMM YYYY HH:mm', 6757 LLLL: 'dddd D MMMM YYYY HH:mm' 6758 }, 6759 calendar: { 6760 sameDay: '[Today at] LT', 6761 nextDay: '[Tomorrow at] LT', 6762 nextWeek: 'dddd [at] LT', 6763 lastDay: '[Yesterday at] LT', 6764 lastWeek: '[Last] dddd [at] LT', 6765 sameElse: 'L' 6766 }, 6767 relativeTime: { 6768 future: 'in %s', 6769 past: '%s ago', 6770 s: 'a few seconds', 6771 ss: '%d seconds', 6772 m: 'a minute', 6773 mm: '%d minutes', 6774 h: 'an hour', 6775 hh: '%d hours', 6776 d: 'a day', 6777 dd: '%d days', 6778 M: 'a month', 6779 MM: '%d months', 6780 y: 'a year', 6781 yy: '%d years' 6782 }, 6783 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 6784 ordinal: function ordinal(number) { 6785 var b = number % 10, 6786 output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; 6787 return number + output; 6788 }, 6789 week: { 6790 dow: 1, 6791 // Monday is the first day of the week. 6792 doy: 4 // The week that contains Jan 4th is the first week of the year. 6793 6794 } 6795 }); 6796 return enIe; 6797}); 6798 6799/***/ }), 6800
vendor: 3,301 bytes, lines 6801-6872
6801/***/ "../autobahn_client_core/node_modules/moment/locale/en-il.js": 6802/*!*******************************************************************!*\ 6803 !*** ../autobahn_client_core/node_modules/moment/locale/en-il.js ***! 6804 \*******************************************************************/ 6805/*! no static exports found */ 6806/***/ (function(module, exports, __webpack_require__) { 6807 6808var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6809 6810//! moment.js locale configuration 6811//! locale : English (Israel) [en-il] 6812//! author : Chris Gedrim : https://github.com/chrisgedrim 6813; 6814 6815(function (global, factory) { 6816 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6817 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6818 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6819 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6820})(this, function (moment) { 6821 'use strict'; //! moment.js locale configuration 6822 6823 var enIl = moment.defineLocale('en-il', { 6824 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), 6825 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 6826 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 6827 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 6828 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 6829 longDateFormat: { 6830 LT: 'HH:mm', 6831 LTS: 'HH:mm:ss', 6832 L: 'DD/MM/YYYY', 6833 LL: 'D MMMM YYYY', 6834 LLL: 'D MMMM YYYY HH:mm', 6835 LLLL: 'dddd, D MMMM YYYY HH:mm' 6836 }, 6837 calendar: { 6838 sameDay: '[Today at] LT', 6839 nextDay: '[Tomorrow at] LT', 6840 nextWeek: 'dddd [at] LT', 6841 lastDay: '[Yesterday at] LT', 6842 lastWeek: '[Last] dddd [at] LT', 6843 sameElse: 'L' 6844 }, 6845 relativeTime: { 6846 future: 'in %s', 6847 past: '%s ago', 6848 s: 'a few seconds', 6849 ss: '%d seconds', 6850 m: 'a minute', 6851 mm: '%d minutes', 6852 h: 'an hour', 6853 hh: '%d hours', 6854 d: 'a day', 6855 dd: '%d days', 6856 M: 'a month', 6857 MM: '%d months', 6858 y: 'a year', 6859 yy: '%d years' 6860 }, 6861 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 6862 ordinal: function ordinal(number) { 6863 var b = number % 10, 6864 output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; 6865 return number + output; 6866 } 6867 }); 6868 return enIl; 6869}); 6870 6871/***/ }), 6872
vendor: 3,461 bytes, lines 6873-6950
6873/***/ "../autobahn_client_core/node_modules/moment/locale/en-in.js": 6874/*!*******************************************************************!*\ 6875 !*** ../autobahn_client_core/node_modules/moment/locale/en-in.js ***! 6876 \*******************************************************************/ 6877/*! no static exports found */ 6878/***/ (function(module, exports, __webpack_require__) { 6879 6880var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6881 6882//! moment.js locale configuration 6883//! locale : English (India) [en-in] 6884//! author : Jatin Agrawal : https://github.com/jatinag22 6885; 6886 6887(function (global, factory) { 6888 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6889 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6890 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6891 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6892})(this, function (moment) { 6893 'use strict'; //! moment.js locale configuration 6894 6895 var enIn = moment.defineLocale('en-in', { 6896 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), 6897 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 6898 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 6899 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 6900 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 6901 longDateFormat: { 6902 LT: 'h:mm A', 6903 LTS: 'h:mm:ss A', 6904 L: 'DD/MM/YYYY', 6905 LL: 'D MMMM YYYY', 6906 LLL: 'D MMMM YYYY h:mm A', 6907 LLLL: 'dddd, D MMMM YYYY h:mm A' 6908 }, 6909 calendar: { 6910 sameDay: '[Today at] LT', 6911 nextDay: '[Tomorrow at] LT', 6912 nextWeek: 'dddd [at] LT', 6913 lastDay: '[Yesterday at] LT', 6914 lastWeek: '[Last] dddd [at] LT', 6915 sameElse: 'L' 6916 }, 6917 relativeTime: { 6918 future: 'in %s', 6919 past: '%s ago', 6920 s: 'a few seconds', 6921 ss: '%d seconds', 6922 m: 'a minute', 6923 mm: '%d minutes', 6924 h: 'an hour', 6925 hh: '%d hours', 6926 d: 'a day', 6927 dd: '%d days', 6928 M: 'a month', 6929 MM: '%d months', 6930 y: 'a year', 6931 yy: '%d years' 6932 }, 6933 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 6934 ordinal: function ordinal(number) { 6935 var b = number % 10, 6936 output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; 6937 return number + output; 6938 }, 6939 week: { 6940 dow: 0, 6941 // Sunday is the first day of the week. 6942 doy: 6 // The week that contains Jan 1st is the first week of the year. 6943 6944 } 6945 }); 6946 return enIn; 6947}); 6948 6949/***/ }), 6950
vendor: 3,470 bytes, lines 6951-7028
6951/***/ "../autobahn_client_core/node_modules/moment/locale/en-nz.js": 6952/*!*******************************************************************!*\ 6953 !*** ../autobahn_client_core/node_modules/moment/locale/en-nz.js ***! 6954 \*******************************************************************/ 6955/*! no static exports found */ 6956/***/ (function(module, exports, __webpack_require__) { 6957 6958var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 6959 6960//! moment.js locale configuration 6961//! locale : English (New Zealand) [en-nz] 6962//! author : Luke McGregor : https://github.com/lukemcgregor 6963; 6964 6965(function (global, factory) { 6966 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 6967 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 6968 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 6969 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 6970})(this, function (moment) { 6971 'use strict'; //! moment.js locale configuration 6972 6973 var enNz = moment.defineLocale('en-nz', { 6974 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), 6975 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 6976 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 6977 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 6978 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 6979 longDateFormat: { 6980 LT: 'h:mm A', 6981 LTS: 'h:mm:ss A', 6982 L: 'DD/MM/YYYY', 6983 LL: 'D MMMM YYYY', 6984 LLL: 'D MMMM YYYY h:mm A', 6985 LLLL: 'dddd, D MMMM YYYY h:mm A' 6986 }, 6987 calendar: { 6988 sameDay: '[Today at] LT', 6989 nextDay: '[Tomorrow at] LT', 6990 nextWeek: 'dddd [at] LT', 6991 lastDay: '[Yesterday at] LT', 6992 lastWeek: '[Last] dddd [at] LT', 6993 sameElse: 'L' 6994 }, 6995 relativeTime: { 6996 future: 'in %s', 6997 past: '%s ago', 6998 s: 'a few seconds', 6999 ss: '%d seconds', 7000 m: 'a minute', 7001 mm: '%d minutes', 7002 h: 'an hour', 7003 hh: '%d hours', 7004 d: 'a day', 7005 dd: '%d days', 7006 M: 'a month', 7007 MM: '%d months', 7008 y: 'a year', 7009 yy: '%d years' 7010 }, 7011 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 7012 ordinal: function ordinal(number) { 7013 var b = number % 10, 7014 output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; 7015 return number + output; 7016 }, 7017 week: { 7018 dow: 1, 7019 // Monday is the first day of the week. 7020 doy: 4 // The week that contains Jan 4th is the first week of the year. 7021 7022 } 7023 }); 7024 return enNz; 7025}); 7026 7027/***/ }), 7028
vendor: 3,479 bytes, lines 7029-7106
7029/***/ "../autobahn_client_core/node_modules/moment/locale/en-sg.js": 7030/*!*******************************************************************!*\ 7031 !*** ../autobahn_client_core/node_modules/moment/locale/en-sg.js ***! 7032 \*******************************************************************/ 7033/*! no static exports found */ 7034/***/ (function(module, exports, __webpack_require__) { 7035 7036var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7037 7038//! moment.js locale configuration 7039//! locale : English (Singapore) [en-sg] 7040//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension 7041; 7042 7043(function (global, factory) { 7044 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 7045 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 7046 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 7047 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 7048})(this, function (moment) { 7049 'use strict'; //! moment.js locale configuration 7050 7051 var enSg = moment.defineLocale('en-sg', { 7052 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), 7053 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 7054 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 7055 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 7056 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 7057 longDateFormat: { 7058 LT: 'HH:mm', 7059 LTS: 'HH:mm:ss', 7060 L: 'DD/MM/YYYY', 7061 LL: 'D MMMM YYYY', 7062 LLL: 'D MMMM YYYY HH:mm', 7063 LLLL: 'dddd, D MMMM YYYY HH:mm' 7064 }, 7065 calendar: { 7066 sameDay: '[Today at] LT', 7067 nextDay: '[Tomorrow at] LT', 7068 nextWeek: 'dddd [at] LT', 7069 lastDay: '[Yesterday at] LT', 7070 lastWeek: '[Last] dddd [at] LT', 7071 sameElse: 'L' 7072 }, 7073 relativeTime: { 7074 future: 'in %s', 7075 past: '%s ago', 7076 s: 'a few seconds', 7077 ss: '%d seconds', 7078 m: 'a minute', 7079 mm: '%d minutes', 7080 h: 'an hour', 7081 hh: '%d hours', 7082 d: 'a day', 7083 dd: '%d days', 7084 M: 'a month', 7085 MM: '%d months', 7086 y: 'a year', 7087 yy: '%d years' 7088 }, 7089 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 7090 ordinal: function ordinal(number) { 7091 var b = number % 10, 7092 output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; 7093 return number + output; 7094 }, 7095 week: { 7096 dow: 1, 7097 // Monday is the first day of the week. 7098 doy: 4 // The week that contains Jan 4th is the first week of the year. 7099 7100 } 7101 }); 7102 return enSg; 7103}); 7104 7105/***/ }), 7106
vendor: 3,945 bytes, lines 7107-7196
7107/***/ "../autobahn_client_core/node_modules/moment/locale/eo.js": 7108/*!****************************************************************!*\ 7109 !*** ../autobahn_client_core/node_modules/moment/locale/eo.js ***! 7110 \****************************************************************/ 7111/*! no static exports found */ 7112/***/ (function(module, exports, __webpack_require__) { 7113 7114var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7115 7116//! moment.js locale configuration 7117//! locale : Esperanto [eo] 7118//! author : Colin Dean : https://github.com/colindean 7119//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia 7120//! comment : miestasmia corrected the translation by colindean 7121//! comment : Vivakvo corrected the translation by colindean and miestasmia 7122; 7123 7124(function (global, factory) { 7125 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 7126 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 7127 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 7128 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 7129})(this, function (moment) { 7130 'use strict'; //! moment.js locale configuration 7131 7132 var eo = moment.defineLocale('eo', { 7133 months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅgusto_septembro_oktobro_novembro_decembro'.split('_'), 7134 monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅg_sept_okt_nov_dec'.split('_'), 7135 weekdays: 'dimanÄo_lundo_mardo_merkredo_ĵaÅdo_vendredo_sabato'.split('_'), 7136 weekdaysShort: 'dim_lun_mard_merk_ĵaÅ_ven_sab'.split('_'), 7137 weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), 7138 longDateFormat: { 7139 LT: 'HH:mm', 7140 LTS: 'HH:mm:ss', 7141 L: 'YYYY-MM-DD', 7142 LL: '[la] D[-an de] MMMM, YYYY', 7143 LLL: '[la] D[-an de] MMMM, YYYY HH:mm', 7144 LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', 7145 llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm' 7146 }, 7147 meridiemParse: /[ap]\.t\.m/i, 7148 isPM: function isPM(input) { 7149 return input.charAt(0).toLowerCase() === 'p'; 7150 }, 7151 meridiem: function meridiem(hours, minutes, isLower) { 7152 if (hours > 11) { 7153 return isLower ? 'p.t.m.' : 'P.T.M.'; 7154 } else { 7155 return isLower ? 'a.t.m.' : 'A.T.M.'; 7156 } 7157 }, 7158 calendar: { 7159 sameDay: '[HodiaÅ je] LT', 7160 nextDay: '[MorgaÅ je] LT', 7161 nextWeek: 'dddd[n je] LT', 7162 lastDay: '[HieraÅ je] LT', 7163 lastWeek: '[pasintan] dddd[n je] LT', 7164 sameElse: 'L' 7165 }, 7166 relativeTime: { 7167 future: 'post %s', 7168 past: 'antaÅ %s', 7169 s: 'kelkaj sekundoj', 7170 ss: '%d sekundoj', 7171 m: 'unu minuto', 7172 mm: '%d minutoj', 7173 h: 'unu horo', 7174 hh: '%d horoj', 7175 d: 'unu tago', 7176 //ne 'diurno', Äar estas uzita por proksimumo 7177 dd: '%d tagoj', 7178 M: 'unu monato', 7179 MM: '%d monatoj', 7180 y: 'unu jaro', 7181 yy: '%d jaroj' 7182 }, 7183 dayOfMonthOrdinalParse: /\d{1,2}a/, 7184 ordinal: '%da', 7185 week: { 7186 dow: 1, 7187 // Monday is the first day of the week. 7188 doy: 7 // The week that contains Jan 7th is the first week of the year. 7189 7190 } 7191 }); 7192 return eo; 7193}); 7194 7195/***/ }), 7196
vendor: 4,847 bytes, lines 7197-7302
7197/***/ "../autobahn_client_core/node_modules/moment/locale/es-do.js": 7198/*!*******************************************************************!*\ 7199 !*** ../autobahn_client_core/node_modules/moment/locale/es-do.js ***! 7200 \*******************************************************************/ 7201/*! no static exports found */ 7202/***/ (function(module, exports, __webpack_require__) { 7203 7204var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7205 7206//! moment.js locale configuration 7207//! locale : Spanish (Dominican Republic) [es-do] 7208; 7209 7210(function (global, factory) { 7211 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 7212 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 7213 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 7214 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 7215})(this, function (moment) { 7216 'use strict'; //! moment.js locale configuration 7217 7218 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), 7219 _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 7220 monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], 7221 monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; 7222 7223 var esDo = moment.defineLocale('es-do', { 7224 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), 7225 monthsShort: function monthsShort(m, format) { 7226 if (!m) { 7227 return monthsShortDot; 7228 } else if (/-MMM-/.test(format)) { 7229 return _monthsShort[m.month()]; 7230 } else { 7231 return monthsShortDot[m.month()]; 7232 } 7233 }, 7234 monthsRegex: monthsRegex, 7235 monthsShortRegex: monthsRegex, 7236 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 7237 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 7238 monthsParse: monthsParse, 7239 longMonthsParse: monthsParse, 7240 shortMonthsParse: monthsParse, 7241 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 7242 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 7243 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 7244 weekdaysParseExact: true, 7245 longDateFormat: { 7246 LT: 'h:mm A', 7247 LTS: 'h:mm:ss A', 7248 L: 'DD/MM/YYYY', 7249 LL: 'D [de] MMMM [de] YYYY', 7250 LLL: 'D [de] MMMM [de] YYYY h:mm A', 7251 LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A' 7252 }, 7253 calendar: { 7254 sameDay: function sameDay() { 7255 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7256 }, 7257 nextDay: function nextDay() { 7258 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7259 }, 7260 nextWeek: function nextWeek() { 7261 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7262 }, 7263 lastDay: function lastDay() { 7264 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7265 }, 7266 lastWeek: function lastWeek() { 7267 return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7268 }, 7269 sameElse: 'L' 7270 }, 7271 relativeTime: { 7272 future: 'en %s', 7273 past: 'hace %s', 7274 s: 'unos segundos', 7275 ss: '%d segundos', 7276 m: 'un minuto', 7277 mm: '%d minutos', 7278 h: 'una hora', 7279 hh: '%d horas', 7280 d: 'un dÃa', 7281 dd: '%d dÃas', 7282 w: 'una semana', 7283 ww: '%d semanas', 7284 M: 'un mes', 7285 MM: '%d meses', 7286 y: 'un año', 7287 yy: '%d años' 7288 }, 7289 dayOfMonthOrdinalParse: /\d{1,2}º/, 7290 ordinal: '%dº', 7291 week: { 7292 dow: 1, 7293 // Monday is the first day of the week. 7294 doy: 4 // The week that contains Jan 4th is the first week of the year. 7295 7296 } 7297 }); 7298 return esDo; 7299}); 7300 7301/***/ }), 7302
vendor: 4,916 bytes, lines 7303-7410
7303/***/ "../autobahn_client_core/node_modules/moment/locale/es-mx.js": 7304/*!*******************************************************************!*\ 7305 !*** ../autobahn_client_core/node_modules/moment/locale/es-mx.js ***! 7306 \*******************************************************************/ 7307/*! no static exports found */ 7308/***/ (function(module, exports, __webpack_require__) { 7309 7310var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7311 7312//! moment.js locale configuration 7313//! locale : Spanish (Mexico) [es-mx] 7314//! author : JC Franco : https://github.com/jcfranco 7315; 7316 7317(function (global, factory) { 7318 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 7319 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 7320 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 7321 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 7322})(this, function (moment) { 7323 'use strict'; //! moment.js locale configuration 7324 7325 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), 7326 _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 7327 monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], 7328 monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; 7329 7330 var esMx = moment.defineLocale('es-mx', { 7331 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), 7332 monthsShort: function monthsShort(m, format) { 7333 if (!m) { 7334 return monthsShortDot; 7335 } else if (/-MMM-/.test(format)) { 7336 return _monthsShort[m.month()]; 7337 } else { 7338 return monthsShortDot[m.month()]; 7339 } 7340 }, 7341 monthsRegex: monthsRegex, 7342 monthsShortRegex: monthsRegex, 7343 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 7344 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 7345 monthsParse: monthsParse, 7346 longMonthsParse: monthsParse, 7347 shortMonthsParse: monthsParse, 7348 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 7349 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 7350 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 7351 weekdaysParseExact: true, 7352 longDateFormat: { 7353 LT: 'H:mm', 7354 LTS: 'H:mm:ss', 7355 L: 'DD/MM/YYYY', 7356 LL: 'D [de] MMMM [de] YYYY', 7357 LLL: 'D [de] MMMM [de] YYYY H:mm', 7358 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm' 7359 }, 7360 calendar: { 7361 sameDay: function sameDay() { 7362 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7363 }, 7364 nextDay: function nextDay() { 7365 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7366 }, 7367 nextWeek: function nextWeek() { 7368 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7369 }, 7370 lastDay: function lastDay() { 7371 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7372 }, 7373 lastWeek: function lastWeek() { 7374 return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7375 }, 7376 sameElse: 'L' 7377 }, 7378 relativeTime: { 7379 future: 'en %s', 7380 past: 'hace %s', 7381 s: 'unos segundos', 7382 ss: '%d segundos', 7383 m: 'un minuto', 7384 mm: '%d minutos', 7385 h: 'una hora', 7386 hh: '%d horas', 7387 d: 'un dÃa', 7388 dd: '%d dÃas', 7389 w: 'una semana', 7390 ww: '%d semanas', 7391 M: 'un mes', 7392 MM: '%d meses', 7393 y: 'un año', 7394 yy: '%d años' 7395 }, 7396 dayOfMonthOrdinalParse: /\d{1,2}º/, 7397 ordinal: '%dº', 7398 week: { 7399 dow: 0, 7400 // Sunday is the first day of the week. 7401 doy: 4 // The week that contains Jan 4th is the first week of the year. 7402 7403 }, 7404 invalidDate: 'Fecha inválida' 7405 }); 7406 return esMx; 7407}); 7408 7409/***/ }), 7410
vendor: 4,944 bytes, lines 7411-7518
7411/***/ "../autobahn_client_core/node_modules/moment/locale/es-us.js": 7412/*!*******************************************************************!*\ 7413 !*** ../autobahn_client_core/node_modules/moment/locale/es-us.js ***! 7414 \*******************************************************************/ 7415/*! no static exports found */ 7416/***/ (function(module, exports, __webpack_require__) { 7417 7418var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7419 7420//! moment.js locale configuration 7421//! locale : Spanish (United States) [es-us] 7422//! author : bustta : https://github.com/bustta 7423//! author : chrisrodz : https://github.com/chrisrodz 7424; 7425 7426(function (global, factory) { 7427 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 7428 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 7429 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 7430 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 7431})(this, function (moment) { 7432 'use strict'; //! moment.js locale configuration 7433 7434 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), 7435 _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 7436 monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], 7437 monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; 7438 7439 var esUs = moment.defineLocale('es-us', { 7440 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), 7441 monthsShort: function monthsShort(m, format) { 7442 if (!m) { 7443 return monthsShortDot; 7444 } else if (/-MMM-/.test(format)) { 7445 return _monthsShort[m.month()]; 7446 } else { 7447 return monthsShortDot[m.month()]; 7448 } 7449 }, 7450 monthsRegex: monthsRegex, 7451 monthsShortRegex: monthsRegex, 7452 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 7453 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 7454 monthsParse: monthsParse, 7455 longMonthsParse: monthsParse, 7456 shortMonthsParse: monthsParse, 7457 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 7458 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 7459 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 7460 weekdaysParseExact: true, 7461 longDateFormat: { 7462 LT: 'h:mm A', 7463 LTS: 'h:mm:ss A', 7464 L: 'MM/DD/YYYY', 7465 LL: 'D [de] MMMM [de] YYYY', 7466 LLL: 'D [de] MMMM [de] YYYY h:mm A', 7467 LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A' 7468 }, 7469 calendar: { 7470 sameDay: function sameDay() { 7471 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7472 }, 7473 nextDay: function nextDay() { 7474 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7475 }, 7476 nextWeek: function nextWeek() { 7477 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7478 }, 7479 lastDay: function lastDay() { 7480 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7481 }, 7482 lastWeek: function lastWeek() { 7483 return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7484 }, 7485 sameElse: 'L' 7486 }, 7487 relativeTime: { 7488 future: 'en %s', 7489 past: 'hace %s', 7490 s: 'unos segundos', 7491 ss: '%d segundos', 7492 m: 'un minuto', 7493 mm: '%d minutos', 7494 h: 'una hora', 7495 hh: '%d horas', 7496 d: 'un dÃa', 7497 dd: '%d dÃas', 7498 w: 'una semana', 7499 ww: '%d semanas', 7500 M: 'un mes', 7501 MM: '%d meses', 7502 y: 'un año', 7503 yy: '%d años' 7504 }, 7505 dayOfMonthOrdinalParse: /\d{1,2}º/, 7506 ordinal: '%dº', 7507 week: { 7508 dow: 0, 7509 // Sunday is the first day of the week. 7510 doy: 6 // The week that contains Jan 6th is the first week of the year. 7511 7512 } 7513 }); 7514 return esUs; 7515}); 7516 7517/***/ }), 7518
vendor: 4,888 bytes, lines 7519-7626
7519/***/ "../autobahn_client_core/node_modules/moment/locale/es.js": 7520/*!****************************************************************!*\ 7521 !*** ../autobahn_client_core/node_modules/moment/locale/es.js ***! 7522 \****************************************************************/ 7523/*! no static exports found */ 7524/***/ (function(module, exports, __webpack_require__) { 7525 7526var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7527 7528//! moment.js locale configuration 7529//! locale : Spanish [es] 7530//! author : Julio Napurà : https://github.com/julionc 7531; 7532 7533(function (global, factory) { 7534 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 7535 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 7536 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 7537 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 7538})(this, function (moment) { 7539 'use strict'; //! moment.js locale configuration 7540 7541 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), 7542 _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 7543 monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], 7544 monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; 7545 7546 var es = moment.defineLocale('es', { 7547 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), 7548 monthsShort: function monthsShort(m, format) { 7549 if (!m) { 7550 return monthsShortDot; 7551 } else if (/-MMM-/.test(format)) { 7552 return _monthsShort[m.month()]; 7553 } else { 7554 return monthsShortDot[m.month()]; 7555 } 7556 }, 7557 monthsRegex: monthsRegex, 7558 monthsShortRegex: monthsRegex, 7559 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 7560 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 7561 monthsParse: monthsParse, 7562 longMonthsParse: monthsParse, 7563 shortMonthsParse: monthsParse, 7564 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 7565 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 7566 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 7567 weekdaysParseExact: true, 7568 longDateFormat: { 7569 LT: 'H:mm', 7570 LTS: 'H:mm:ss', 7571 L: 'DD/MM/YYYY', 7572 LL: 'D [de] MMMM [de] YYYY', 7573 LLL: 'D [de] MMMM [de] YYYY H:mm', 7574 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm' 7575 }, 7576 calendar: { 7577 sameDay: function sameDay() { 7578 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7579 }, 7580 nextDay: function nextDay() { 7581 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7582 }, 7583 nextWeek: function nextWeek() { 7584 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7585 }, 7586 lastDay: function lastDay() { 7587 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7588 }, 7589 lastWeek: function lastWeek() { 7590 return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 7591 }, 7592 sameElse: 'L' 7593 }, 7594 relativeTime: { 7595 future: 'en %s', 7596 past: 'hace %s', 7597 s: 'unos segundos', 7598 ss: '%d segundos', 7599 m: 'un minuto', 7600 mm: '%d minutos', 7601 h: 'una hora', 7602 hh: '%d horas', 7603 d: 'un dÃa', 7604 dd: '%d dÃas', 7605 w: 'una semana', 7606 ww: '%d semanas', 7607 M: 'un mes', 7608 MM: '%d meses', 7609 y: 'un año', 7610 yy: '%d años' 7611 }, 7612 dayOfMonthOrdinalParse: /\d{1,2}º/, 7613 ordinal: '%dº', 7614 week: { 7615 dow: 1, 7616 // Monday is the first day of the week. 7617 doy: 4 // The week that contains Jan 4th is the first week of the year. 7618 7619 }, 7620 invalidDate: 'Fecha inválida' 7621 }); 7622 return es; 7623}); 7624 7625/***/ }), 7626
vendor: 4,181 bytes, lines 7627-7723
7627/***/ "../autobahn_client_core/node_modules/moment/locale/et.js": 7628/*!****************************************************************!*\ 7629 !*** ../autobahn_client_core/node_modules/moment/locale/et.js ***! 7630 \****************************************************************/ 7631/*! no static exports found */ 7632/***/ (function(module, exports, __webpack_require__) { 7633 7634var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7635 7636//! moment.js locale configuration 7637//! locale : Estonian [et] 7638//! author : Henry Kehlmann : https://github.com/madhenry 7639//! improvements : Illimar Tambek : https://github.com/ragulka 7640; 7641 7642(function (global, factory) { 7643 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 7644 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 7645 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 7646 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 7647})(this, function (moment) { 7648 'use strict'; //! moment.js locale configuration 7649 7650 function processRelativeTime(number, withoutSuffix, key, isFuture) { 7651 var format = { 7652 s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], 7653 ss: [number + 'sekundi', number + 'sekundit'], 7654 m: ['ühe minuti', 'üks minut'], 7655 mm: [number + ' minuti', number + ' minutit'], 7656 h: ['ühe tunni', 'tund aega', 'üks tund'], 7657 hh: [number + ' tunni', number + ' tundi'], 7658 d: ['ühe päeva', 'üks päev'], 7659 M: ['kuu aja', 'kuu aega', 'üks kuu'], 7660 MM: [number + ' kuu', number + ' kuud'], 7661 y: ['ühe aasta', 'aasta', 'üks aasta'], 7662 yy: [number + ' aasta', number + ' aastat'] 7663 }; 7664 7665 if (withoutSuffix) { 7666 return format[key][2] ? format[key][2] : format[key][1]; 7667 } 7668 7669 return isFuture ? format[key][0] : format[key][1]; 7670 } 7671 7672 var et = moment.defineLocale('et', { 7673 months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'), 7674 monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), 7675 weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'), 7676 weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), 7677 weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), 7678 longDateFormat: { 7679 LT: 'H:mm', 7680 LTS: 'H:mm:ss', 7681 L: 'DD.MM.YYYY', 7682 LL: 'D. MMMM YYYY', 7683 LLL: 'D. MMMM YYYY H:mm', 7684 LLLL: 'dddd, D. MMMM YYYY H:mm' 7685 }, 7686 calendar: { 7687 sameDay: '[Täna,] LT', 7688 nextDay: '[Homme,] LT', 7689 nextWeek: '[Järgmine] dddd LT', 7690 lastDay: '[Eile,] LT', 7691 lastWeek: '[Eelmine] dddd LT', 7692 sameElse: 'L' 7693 }, 7694 relativeTime: { 7695 future: '%s pärast', 7696 past: '%s tagasi', 7697 s: processRelativeTime, 7698 ss: processRelativeTime, 7699 m: processRelativeTime, 7700 mm: processRelativeTime, 7701 h: processRelativeTime, 7702 hh: processRelativeTime, 7703 d: processRelativeTime, 7704 dd: '%d päeva', 7705 M: processRelativeTime, 7706 MM: processRelativeTime, 7707 y: processRelativeTime, 7708 yy: processRelativeTime 7709 }, 7710 dayOfMonthOrdinalParse: /\d{1,2}\./, 7711 ordinal: '%d.', 7712 week: { 7713 dow: 1, 7714 // Monday is the first day of the week. 7715 doy: 4 // The week that contains Jan 4th is the first week of the year. 7716 7717 } 7718 }); 7719 return et; 7720}); 7721 7722/***/ }), 7723
vendor: 3,503 bytes, lines 7724-7803
7724/***/ "../autobahn_client_core/node_modules/moment/locale/eu.js": 7725/*!****************************************************************!*\ 7726 !*** ../autobahn_client_core/node_modules/moment/locale/eu.js ***! 7727 \****************************************************************/ 7728/*! no static exports found */ 7729/***/ (function(module, exports, __webpack_require__) { 7730 7731var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7732 7733//! moment.js locale configuration 7734//! locale : Basque [eu] 7735//! author : Eneko Illarramendi : https://github.com/eillarra 7736; 7737 7738(function (global, factory) { 7739 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 7740 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 7741 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 7742 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 7743})(this, function (moment) { 7744 'use strict'; //! moment.js locale configuration 7745 7746 var eu = moment.defineLocale('eu', { 7747 months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'), 7748 monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'), 7749 monthsParseExact: true, 7750 weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'), 7751 weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), 7752 weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), 7753 weekdaysParseExact: true, 7754 longDateFormat: { 7755 LT: 'HH:mm', 7756 LTS: 'HH:mm:ss', 7757 L: 'YYYY-MM-DD', 7758 LL: 'YYYY[ko] MMMM[ren] D[a]', 7759 LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', 7760 LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', 7761 l: 'YYYY-M-D', 7762 ll: 'YYYY[ko] MMM D[a]', 7763 lll: 'YYYY[ko] MMM D[a] HH:mm', 7764 llll: 'ddd, YYYY[ko] MMM D[a] HH:mm' 7765 }, 7766 calendar: { 7767 sameDay: '[gaur] LT[etan]', 7768 nextDay: '[bihar] LT[etan]', 7769 nextWeek: 'dddd LT[etan]', 7770 lastDay: '[atzo] LT[etan]', 7771 lastWeek: '[aurreko] dddd LT[etan]', 7772 sameElse: 'L' 7773 }, 7774 relativeTime: { 7775 future: '%s barru', 7776 past: 'duela %s', 7777 s: 'segundo batzuk', 7778 ss: '%d segundo', 7779 m: 'minutu bat', 7780 mm: '%d minutu', 7781 h: 'ordu bat', 7782 hh: '%d ordu', 7783 d: 'egun bat', 7784 dd: '%d egun', 7785 M: 'hilabete bat', 7786 MM: '%d hilabete', 7787 y: 'urte bat', 7788 yy: '%d urte' 7789 }, 7790 dayOfMonthOrdinalParse: /\d{1,2}\./, 7791 ordinal: '%d.', 7792 week: { 7793 dow: 1, 7794 // Monday is the first day of the week. 7795 doy: 7 // The week that contains Jan 7th is the first week of the year. 7796 7797 } 7798 }); 7799 return eu; 7800}); 7801 7802/***/ }), 7803
vendor: 4,922 bytes, lines 7804-7923
7804/***/ "../autobahn_client_core/node_modules/moment/locale/fa.js": 7805/*!****************************************************************!*\ 7806 !*** ../autobahn_client_core/node_modules/moment/locale/fa.js ***! 7807 \****************************************************************/ 7808/*! no static exports found */ 7809/***/ (function(module, exports, __webpack_require__) { 7810 7811var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7812 7813//! moment.js locale configuration 7814//! locale : Persian [fa] 7815//! author : Ebrahim Byagowi : https://github.com/ebraminio 7816; 7817 7818(function (global, factory) { 7819 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 7820 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 7821 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 7822 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 7823})(this, function (moment) { 7824 'use strict'; //! moment.js locale configuration 7825 7826 var symbolMap = { 7827 1: 'Û±', 7828 2: 'Û²', 7829 3: 'Û³', 7830 4: 'Û´', 7831 5: 'Ûµ', 7832 6: 'Û¶', 7833 7: 'Û·', 7834 8: 'Û¸', 7835 9: 'Û¹', 7836 0: 'Û°' 7837 }, 7838 numberMap = { 7839 'Û±': '1', 7840 'Û²': '2', 7841 'Û³': '3', 7842 'Û´': '4', 7843 'Ûµ': '5', 7844 'Û¶': '6', 7845 'Û·': '7', 7846 'Û¸': '8', 7847 'Û¹': '9', 7848 'Û°': '0' 7849 }; 7850 var fa = moment.defineLocale('fa', { 7851 months: 'ÚØ§ÙÙÛÙ_ÙÙØ±ÛÙ_٠ارس_Ø¢ÙØ±ÛÙ_Ù Ù_ÚÙØ¦Ù_ÚÙØ¦ÛÙ_Ø§ÙØª_سپتا٠بر_اکتبر_ÙÙØ§Ù بر_دسا٠بر'.split('_'), 7852 monthsShort: 'ÚØ§ÙÙÛÙ_ÙÙØ±ÛÙ_٠ارس_Ø¢ÙØ±ÛÙ_Ù Ù_ÚÙØ¦Ù_ÚÙØ¦ÛÙ_Ø§ÙØª_سپتا٠بر_اکتبر_ÙÙØ§Ù بر_دسا٠بر'.split('_'), 7853 weekdays: "\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647_\u062F\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200C\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647_\u062C\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split('_'), 7854 weekdaysShort: "\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647_\u062F\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200C\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647_\u062C\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split('_'), 7855 weekdaysMin: 'Û_د_س_Ú_Ù¾_ج_Ø´'.split('_'), 7856 weekdaysParseExact: true, 7857 longDateFormat: { 7858 LT: 'HH:mm', 7859 LTS: 'HH:mm:ss', 7860 L: 'DD/MM/YYYY', 7861 LL: 'D MMMM YYYY', 7862 LLL: 'D MMMM YYYY HH:mm', 7863 LLLL: 'dddd, D MMMM YYYY HH:mm' 7864 }, 7865 meridiemParse: /ÙØ¨Ù از Ø¸ÙØ±|بعد از Ø¸ÙØ±/, 7866 isPM: function isPM(input) { 7867 return /بعد از Ø¸ÙØ±/.test(input); 7868 }, 7869 meridiem: function meridiem(hour, minute, isLower) { 7870 if (hour < 12) { 7871 return 'ÙØ¨Ù از Ø¸ÙØ±'; 7872 } else { 7873 return 'بعد از Ø¸ÙØ±'; 7874 } 7875 }, 7876 calendar: { 7877 sameDay: '[Ø§Ù Ø±ÙØ² ساعت] LT', 7878 nextDay: '[ÙØ±Ø¯Ø§ ساعت] LT', 7879 nextWeek: 'dddd [ساعت] LT', 7880 lastDay: '[Ø¯ÛØ±Ùز ساعت] LT', 7881 lastWeek: 'dddd [Ù¾ÛØ´] [ساعت] LT', 7882 sameElse: 'L' 7883 }, 7884 relativeTime: { 7885 future: 'در %s', 7886 past: '%s Ù¾ÛØ´', 7887 s: 'ÚÙØ¯ ثاÙÛÙ', 7888 ss: '%d ثاÙÛÙ', 7889 m: 'ÛÚ© دÙÛÙÙ', 7890 mm: '%d دÙÛÙÙ', 7891 h: 'ÛÚ© ساعت', 7892 hh: '%d ساعت', 7893 d: 'ÛÚ© Ø±ÙØ²', 7894 dd: '%d Ø±ÙØ²', 7895 M: 'ÛÚ© ٠اÙ', 7896 MM: '%d ٠اÙ', 7897 y: 'ÛÚ© ساÙ', 7898 yy: '%d ساÙ' 7899 }, 7900 preparse: function preparse(string) { 7901 return string.replace(/[Û°-Û¹]/g, function (match) { 7902 return numberMap[match]; 7903 }).replace(/Ø/g, ','); 7904 }, 7905 postformat: function postformat(string) { 7906 return string.replace(/\d/g, function (match) { 7907 return symbolMap[match]; 7908 }).replace(/,/g, 'Ø'); 7909 }, 7910 dayOfMonthOrdinalParse: /\d{1,2}Ù /, 7911 ordinal: '%dÙ ', 7912 week: { 7913 dow: 6, 7914 // Saturday is the first day of the week. 7915 doy: 12 // The week that contains Jan 12th is the first week of the year. 7916 7917 } 7918 }); 7919 return fa; 7920}); 7921 7922/***/ }), 7923
vendor: 4,945 bytes, lines 7924-8059
7924/***/ "../autobahn_client_core/node_modules/moment/locale/fi.js": 7925/*!****************************************************************!*\ 7926 !*** ../autobahn_client_core/node_modules/moment/locale/fi.js ***! 7927 \****************************************************************/ 7928/*! no static exports found */ 7929/***/ (function(module, exports, __webpack_require__) { 7930 7931var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 7932 7933//! moment.js locale configuration 7934//! locale : Finnish [fi] 7935//! author : Tarmo Aidantausta : https://github.com/bleadof 7936; 7937 7938(function (global, factory) { 7939 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 7940 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 7941 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 7942 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 7943})(this, function (moment) { 7944 'use strict'; //! moment.js locale configuration 7945 7946 var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '), 7947 numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]]; 7948 7949 function translate(number, withoutSuffix, key, isFuture) { 7950 var result = ''; 7951 7952 switch (key) { 7953 case 's': 7954 return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; 7955 7956 case 'ss': 7957 result = isFuture ? 'sekunnin' : 'sekuntia'; 7958 break; 7959 7960 case 'm': 7961 return isFuture ? 'minuutin' : 'minuutti'; 7962 7963 case 'mm': 7964 result = isFuture ? 'minuutin' : 'minuuttia'; 7965 break; 7966 7967 case 'h': 7968 return isFuture ? 'tunnin' : 'tunti'; 7969 7970 case 'hh': 7971 result = isFuture ? 'tunnin' : 'tuntia'; 7972 break; 7973 7974 case 'd': 7975 return isFuture ? 'päivän' : 'päivä'; 7976 7977 case 'dd': 7978 result = isFuture ? 'päivän' : 'päivää'; 7979 break; 7980 7981 case 'M': 7982 return isFuture ? 'kuukauden' : 'kuukausi'; 7983 7984 case 'MM': 7985 result = isFuture ? 'kuukauden' : 'kuukautta'; 7986 break; 7987 7988 case 'y': 7989 return isFuture ? 'vuoden' : 'vuosi'; 7990 7991 case 'yy': 7992 result = isFuture ? 'vuoden' : 'vuotta'; 7993 break; 7994 } 7995 7996 result = verbalNumber(number, isFuture) + ' ' + result; 7997 return result; 7998 } 7999 8000 function verbalNumber(number, isFuture) { 8001 return number < 10 ? isFuture ? numbersFuture[number] : numbersPast[number] : number; 8002 } 8003 8004 var fi = moment.defineLocale('fi', { 8005 months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'), 8006 monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'), 8007 weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'), 8008 weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), 8009 weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), 8010 longDateFormat: { 8011 LT: 'HH.mm', 8012 LTS: 'HH.mm.ss', 8013 L: 'DD.MM.YYYY', 8014 LL: 'Do MMMM[ta] YYYY', 8015 LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', 8016 LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', 8017 l: 'D.M.YYYY', 8018 ll: 'Do MMM YYYY', 8019 lll: 'Do MMM YYYY, [klo] HH.mm', 8020 llll: 'ddd, Do MMM YYYY, [klo] HH.mm' 8021 }, 8022 calendar: { 8023 sameDay: '[tänään] [klo] LT', 8024 nextDay: '[huomenna] [klo] LT', 8025 nextWeek: 'dddd [klo] LT', 8026 lastDay: '[eilen] [klo] LT', 8027 lastWeek: '[viime] dddd[na] [klo] LT', 8028 sameElse: 'L' 8029 }, 8030 relativeTime: { 8031 future: '%s päästä', 8032 past: '%s sitten', 8033 s: translate, 8034 ss: translate, 8035 m: translate, 8036 mm: translate, 8037 h: translate, 8038 hh: translate, 8039 d: translate, 8040 dd: translate, 8041 M: translate, 8042 MM: translate, 8043 y: translate, 8044 yy: translate 8045 }, 8046 dayOfMonthOrdinalParse: /\d{1,2}\./, 8047 ordinal: '%d.', 8048 week: { 8049 dow: 1, 8050 // Monday is the first day of the week. 8051 doy: 4 // The week that contains Jan 4th is the first week of the year. 8052 8053 } 8054 }); 8055 return fi; 8056}); 8057 8058/***/ }), 8059
vendor: 3,380 bytes, lines 8060-8136
8060/***/ "../autobahn_client_core/node_modules/moment/locale/fil.js": 8061/*!*****************************************************************!*\ 8062 !*** ../autobahn_client_core/node_modules/moment/locale/fil.js ***! 8063 \*****************************************************************/ 8064/*! no static exports found */ 8065/***/ (function(module, exports, __webpack_require__) { 8066 8067var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8068 8069//! moment.js locale configuration 8070//! locale : Filipino [fil] 8071//! author : Dan Hagman : https://github.com/hagmandan 8072//! author : Matthew Co : https://github.com/matthewdeeco 8073; 8074 8075(function (global, factory) { 8076 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 8077 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 8078 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 8079 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 8080})(this, function (moment) { 8081 'use strict'; //! moment.js locale configuration 8082 8083 var fil = moment.defineLocale('fil', { 8084 months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), 8085 monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), 8086 weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), 8087 weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), 8088 weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), 8089 longDateFormat: { 8090 LT: 'HH:mm', 8091 LTS: 'HH:mm:ss', 8092 L: 'MM/D/YYYY', 8093 LL: 'MMMM D, YYYY', 8094 LLL: 'MMMM D, YYYY HH:mm', 8095 LLLL: 'dddd, MMMM DD, YYYY HH:mm' 8096 }, 8097 calendar: { 8098 sameDay: 'LT [ngayong araw]', 8099 nextDay: '[Bukas ng] LT', 8100 nextWeek: 'LT [sa susunod na] dddd', 8101 lastDay: 'LT [kahapon]', 8102 lastWeek: 'LT [noong nakaraang] dddd', 8103 sameElse: 'L' 8104 }, 8105 relativeTime: { 8106 future: 'sa loob ng %s', 8107 past: '%s ang nakalipas', 8108 s: 'ilang segundo', 8109 ss: '%d segundo', 8110 m: 'isang minuto', 8111 mm: '%d minuto', 8112 h: 'isang oras', 8113 hh: '%d oras', 8114 d: 'isang araw', 8115 dd: '%d araw', 8116 M: 'isang buwan', 8117 MM: '%d buwan', 8118 y: 'isang taon', 8119 yy: '%d taon' 8120 }, 8121 dayOfMonthOrdinalParse: /\d{1,2}/, 8122 ordinal: function ordinal(number) { 8123 return number; 8124 }, 8125 week: { 8126 dow: 1, 8127 // Monday is the first day of the week. 8128 doy: 4 // The week that contains Jan 4th is the first week of the year. 8129 8130 } 8131 }); 8132 return fil; 8133}); 8134 8135/***/ }), 8136
vendor: 3,349 bytes, lines 8137-8211
8137/***/ "../autobahn_client_core/node_modules/moment/locale/fo.js": 8138/*!****************************************************************!*\ 8139 !*** ../autobahn_client_core/node_modules/moment/locale/fo.js ***! 8140 \****************************************************************/ 8141/*! no static exports found */ 8142/***/ (function(module, exports, __webpack_require__) { 8143 8144var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8145 8146//! moment.js locale configuration 8147//! locale : Faroese [fo] 8148//! author : Ragnar Johannesen : https://github.com/ragnar123 8149//! author : Kristian Sakarisson : https://github.com/sakarisson 8150; 8151 8152(function (global, factory) { 8153 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 8154 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 8155 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 8156 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 8157})(this, function (moment) { 8158 'use strict'; //! moment.js locale configuration 8159 8160 var fo = moment.defineLocale('fo', { 8161 months: 'januar_februar_mars_aprÃl_mai_juni_juli_august_september_oktober_november_desember'.split('_'), 8162 monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), 8163 weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_frÃggjadagur_leygardagur'.split('_'), 8164 weekdaysShort: 'sun_mán_týs_mik_hós_frÃ_ley'.split('_'), 8165 weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), 8166 longDateFormat: { 8167 LT: 'HH:mm', 8168 LTS: 'HH:mm:ss', 8169 L: 'DD/MM/YYYY', 8170 LL: 'D MMMM YYYY', 8171 LLL: 'D MMMM YYYY HH:mm', 8172 LLLL: 'dddd D. MMMM, YYYY HH:mm' 8173 }, 8174 calendar: { 8175 sameDay: '[à dag kl.] LT', 8176 nextDay: '[à morgin kl.] LT', 8177 nextWeek: 'dddd [kl.] LT', 8178 lastDay: '[à gjár kl.] LT', 8179 lastWeek: '[sÃðstu] dddd [kl] LT', 8180 sameElse: 'L' 8181 }, 8182 relativeTime: { 8183 future: 'um %s', 8184 past: '%s sÃðani', 8185 s: 'fá sekund', 8186 ss: '%d sekundir', 8187 m: 'ein minuttur', 8188 mm: '%d minuttir', 8189 h: 'ein tÃmi', 8190 hh: '%d tÃmar', 8191 d: 'ein dagur', 8192 dd: '%d dagar', 8193 M: 'ein mánaður', 8194 MM: '%d mánaðir', 8195 y: 'eitt ár', 8196 yy: '%d ár' 8197 }, 8198 dayOfMonthOrdinalParse: /\d{1,2}\./, 8199 ordinal: '%d.', 8200 week: { 8201 dow: 1, 8202 // Monday is the first day of the week. 8203 doy: 4 // The week that contains Jan 4th is the first week of the year. 8204 8205 } 8206 }); 8207 return fo; 8208}); 8209 8210/***/ }), 8211
vendor: 3,646 bytes, lines 8212-8297
8212/***/ "../autobahn_client_core/node_modules/moment/locale/fr-ca.js": 8213/*!*******************************************************************!*\ 8214 !*** ../autobahn_client_core/node_modules/moment/locale/fr-ca.js ***! 8215 \*******************************************************************/ 8216/*! no static exports found */ 8217/***/ (function(module, exports, __webpack_require__) { 8218 8219var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8220 8221//! moment.js locale configuration 8222//! locale : French (Canada) [fr-ca] 8223//! author : Jonathan Abourbih : https://github.com/jonbca 8224; 8225 8226(function (global, factory) { 8227 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 8228 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 8229 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 8230 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 8231})(this, function (moment) { 8232 'use strict'; //! moment.js locale configuration 8233 8234 var frCa = moment.defineLocale('fr-ca', { 8235 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), 8236 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), 8237 monthsParseExact: true, 8238 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 8239 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 8240 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 8241 weekdaysParseExact: true, 8242 longDateFormat: { 8243 LT: 'HH:mm', 8244 LTS: 'HH:mm:ss', 8245 L: 'YYYY-MM-DD', 8246 LL: 'D MMMM YYYY', 8247 LLL: 'D MMMM YYYY HH:mm', 8248 LLLL: 'dddd D MMMM YYYY HH:mm' 8249 }, 8250 calendar: { 8251 sameDay: '[Aujourdâhui à ] LT', 8252 nextDay: '[Demain à ] LT', 8253 nextWeek: 'dddd [à ] LT', 8254 lastDay: '[Hier à ] LT', 8255 lastWeek: 'dddd [dernier à ] LT', 8256 sameElse: 'L' 8257 }, 8258 relativeTime: { 8259 future: 'dans %s', 8260 past: 'il y a %s', 8261 s: 'quelques secondes', 8262 ss: '%d secondes', 8263 m: 'une minute', 8264 mm: '%d minutes', 8265 h: 'une heure', 8266 hh: '%d heures', 8267 d: 'un jour', 8268 dd: '%d jours', 8269 M: 'un mois', 8270 MM: '%d mois', 8271 y: 'un an', 8272 yy: '%d ans' 8273 }, 8274 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, 8275 ordinal: function ordinal(number, period) { 8276 switch (period) { 8277 // Words with masculine grammatical gender: mois, trimestre, jour 8278 default: 8279 case 'M': 8280 case 'Q': 8281 case 'D': 8282 case 'DDD': 8283 case 'd': 8284 return number + (number === 1 ? 'er' : 'e'); 8285 // Words with feminine grammatical gender: semaine 8286 8287 case 'w': 8288 case 'W': 8289 return number + (number === 1 ? 're' : 'e'); 8290 } 8291 } 8292 }); 8293 return frCa; 8294}); 8295 8296/***/ }), 8297
vendor: 3,807 bytes, lines 8298-8389
8298/***/ "../autobahn_client_core/node_modules/moment/locale/fr-ch.js": 8299/*!*******************************************************************!*\ 8300 !*** ../autobahn_client_core/node_modules/moment/locale/fr-ch.js ***! 8301 \*******************************************************************/ 8302/*! no static exports found */ 8303/***/ (function(module, exports, __webpack_require__) { 8304 8305var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8306 8307//! moment.js locale configuration 8308//! locale : French (Switzerland) [fr-ch] 8309//! author : Gaspard Bucher : https://github.com/gaspard 8310; 8311 8312(function (global, factory) { 8313 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 8314 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 8315 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 8316 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 8317})(this, function (moment) { 8318 'use strict'; //! moment.js locale configuration 8319 8320 var frCh = moment.defineLocale('fr-ch', { 8321 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), 8322 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), 8323 monthsParseExact: true, 8324 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 8325 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 8326 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 8327 weekdaysParseExact: true, 8328 longDateFormat: { 8329 LT: 'HH:mm', 8330 LTS: 'HH:mm:ss', 8331 L: 'DD.MM.YYYY', 8332 LL: 'D MMMM YYYY', 8333 LLL: 'D MMMM YYYY HH:mm', 8334 LLLL: 'dddd D MMMM YYYY HH:mm' 8335 }, 8336 calendar: { 8337 sameDay: '[Aujourdâhui à ] LT', 8338 nextDay: '[Demain à ] LT', 8339 nextWeek: 'dddd [à ] LT', 8340 lastDay: '[Hier à ] LT', 8341 lastWeek: 'dddd [dernier à ] LT', 8342 sameElse: 'L' 8343 }, 8344 relativeTime: { 8345 future: 'dans %s', 8346 past: 'il y a %s', 8347 s: 'quelques secondes', 8348 ss: '%d secondes', 8349 m: 'une minute', 8350 mm: '%d minutes', 8351 h: 'une heure', 8352 hh: '%d heures', 8353 d: 'un jour', 8354 dd: '%d jours', 8355 M: 'un mois', 8356 MM: '%d mois', 8357 y: 'un an', 8358 yy: '%d ans' 8359 }, 8360 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, 8361 ordinal: function ordinal(number, period) { 8362 switch (period) { 8363 // Words with masculine grammatical gender: mois, trimestre, jour 8364 default: 8365 case 'M': 8366 case 'Q': 8367 case 'D': 8368 case 'DDD': 8369 case 'd': 8370 return number + (number === 1 ? 'er' : 'e'); 8371 // Words with feminine grammatical gender: semaine 8372 8373 case 'w': 8374 case 'W': 8375 return number + (number === 1 ? 're' : 'e'); 8376 } 8377 }, 8378 week: { 8379 dow: 1, 8380 // Monday is the first day of the week. 8381 doy: 4 // The week that contains Jan 4th is the first week of the year. 8382 8383 } 8384 }); 8385 return frCh; 8386}); 8387 8388/***/ }), 8389
vendor: 4,857 bytes, lines 8390-8498
8390/***/ "../autobahn_client_core/node_modules/moment/locale/fr.js": 8391/*!****************************************************************!*\ 8392 !*** ../autobahn_client_core/node_modules/moment/locale/fr.js ***! 8393 \****************************************************************/ 8394/*! no static exports found */ 8395/***/ (function(module, exports, __webpack_require__) { 8396 8397var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8398 8399//! moment.js locale configuration 8400//! locale : French [fr] 8401//! author : John Fischer : https://github.com/jfroffice 8402; 8403 8404(function (global, factory) { 8405 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 8406 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 8407 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 8408 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 8409})(this, function (moment) { 8410 'use strict'; //! moment.js locale configuration 8411 8412 var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, 8413 monthsShortStrictRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, 8414 monthsRegex = /(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, 8415 monthsParse = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i]; 8416 var fr = moment.defineLocale('fr', { 8417 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), 8418 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), 8419 monthsRegex: monthsRegex, 8420 monthsShortRegex: monthsRegex, 8421 monthsStrictRegex: monthsStrictRegex, 8422 monthsShortStrictRegex: monthsShortStrictRegex, 8423 monthsParse: monthsParse, 8424 longMonthsParse: monthsParse, 8425 shortMonthsParse: monthsParse, 8426 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 8427 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 8428 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 8429 weekdaysParseExact: true, 8430 longDateFormat: { 8431 LT: 'HH:mm', 8432 LTS: 'HH:mm:ss', 8433 L: 'DD/MM/YYYY', 8434 LL: 'D MMMM YYYY', 8435 LLL: 'D MMMM YYYY HH:mm', 8436 LLLL: 'dddd D MMMM YYYY HH:mm' 8437 }, 8438 calendar: { 8439 sameDay: '[Aujourdâhui à ] LT', 8440 nextDay: '[Demain à ] LT', 8441 nextWeek: 'dddd [à ] LT', 8442 lastDay: '[Hier à ] LT', 8443 lastWeek: 'dddd [dernier à ] LT', 8444 sameElse: 'L' 8445 }, 8446 relativeTime: { 8447 future: 'dans %s', 8448 past: 'il y a %s', 8449 s: 'quelques secondes', 8450 ss: '%d secondes', 8451 m: 'une minute', 8452 mm: '%d minutes', 8453 h: 'une heure', 8454 hh: '%d heures', 8455 d: 'un jour', 8456 dd: '%d jours', 8457 w: 'une semaine', 8458 ww: '%d semaines', 8459 M: 'un mois', 8460 MM: '%d mois', 8461 y: 'un an', 8462 yy: '%d ans' 8463 }, 8464 dayOfMonthOrdinalParse: /\d{1,2}(er|)/, 8465 ordinal: function ordinal(number, period) { 8466 switch (period) { 8467 // TODO: Return 'e' when day of month > 1. Move this case inside 8468 // block for masculine words below. 8469 // See https://github.com/moment/moment/issues/3375 8470 case 'D': 8471 return number + (number === 1 ? 'er' : ''); 8472 // Words with masculine grammatical gender: mois, trimestre, jour 8473 8474 default: 8475 case 'M': 8476 case 'Q': 8477 case 'DDD': 8478 case 'd': 8479 return number + (number === 1 ? 'er' : 'e'); 8480 // Words with feminine grammatical gender: semaine 8481 8482 case 'w': 8483 case 'W': 8484 return number + (number === 1 ? 're' : 'e'); 8485 } 8486 }, 8487 week: { 8488 dow: 1, 8489 // Monday is the first day of the week. 8490 doy: 4 // The week that contains Jan 4th is the first week of the year. 8491 8492 } 8493 }); 8494 return fr; 8495}); 8496 8497/***/ }), 8498
vendor: 3,815 bytes, lines 8499-8586
8499/***/ "../autobahn_client_core/node_modules/moment/locale/fy.js": 8500/*!****************************************************************!*\ 8501 !*** ../autobahn_client_core/node_modules/moment/locale/fy.js ***! 8502 \****************************************************************/ 8503/*! no static exports found */ 8504/***/ (function(module, exports, __webpack_require__) { 8505 8506var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8507 8508//! moment.js locale configuration 8509//! locale : Frisian [fy] 8510//! author : Robin van der Vliet : https://github.com/robin0van0der0v 8511; 8512 8513(function (global, factory) { 8514 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 8515 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 8516 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 8517 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 8518})(this, function (moment) { 8519 'use strict'; //! moment.js locale configuration 8520 8521 var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), 8522 monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); 8523 var fy = moment.defineLocale('fy', { 8524 months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'), 8525 monthsShort: function monthsShort(m, format) { 8526 if (!m) { 8527 return monthsShortWithDots; 8528 } else if (/-MMM-/.test(format)) { 8529 return monthsShortWithoutDots[m.month()]; 8530 } else { 8531 return monthsShortWithDots[m.month()]; 8532 } 8533 }, 8534 monthsParseExact: true, 8535 weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'), 8536 weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), 8537 weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), 8538 weekdaysParseExact: true, 8539 longDateFormat: { 8540 LT: 'HH:mm', 8541 LTS: 'HH:mm:ss', 8542 L: 'DD-MM-YYYY', 8543 LL: 'D MMMM YYYY', 8544 LLL: 'D MMMM YYYY HH:mm', 8545 LLLL: 'dddd D MMMM YYYY HH:mm' 8546 }, 8547 calendar: { 8548 sameDay: '[hjoed om] LT', 8549 nextDay: '[moarn om] LT', 8550 nextWeek: 'dddd [om] LT', 8551 lastDay: '[juster om] LT', 8552 lastWeek: '[ôfrûne] dddd [om] LT', 8553 sameElse: 'L' 8554 }, 8555 relativeTime: { 8556 future: 'oer %s', 8557 past: '%s lyn', 8558 s: 'in pear sekonden', 8559 ss: '%d sekonden', 8560 m: 'ien minút', 8561 mm: '%d minuten', 8562 h: 'ien oere', 8563 hh: '%d oeren', 8564 d: 'ien dei', 8565 dd: '%d dagen', 8566 M: 'ien moanne', 8567 MM: '%d moannen', 8568 y: 'ien jier', 8569 yy: '%d jierren' 8570 }, 8571 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 8572 ordinal: function ordinal(number) { 8573 return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); 8574 }, 8575 week: { 8576 dow: 1, 8577 // Monday is the first day of the week. 8578 doy: 4 // The week that contains Jan 4th is the first week of the year. 8579 8580 } 8581 }); 8582 return fy; 8583}); 8584 8585/***/ }), 8586
vendor: 3,724 bytes, lines 8587-8669
8587/***/ "../autobahn_client_core/node_modules/moment/locale/ga.js": 8588/*!****************************************************************!*\ 8589 !*** ../autobahn_client_core/node_modules/moment/locale/ga.js ***! 8590 \****************************************************************/ 8591/*! no static exports found */ 8592/***/ (function(module, exports, __webpack_require__) { 8593 8594var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8595 8596//! moment.js locale configuration 8597//! locale : Irish or Irish Gaelic [ga] 8598//! author : André Silva : https://github.com/askpt 8599; 8600 8601(function (global, factory) { 8602 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 8603 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 8604 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 8605 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 8606})(this, function (moment) { 8607 'use strict'; //! moment.js locale configuration 8608 8609 var months = ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Meitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', 'Samhain', 'Nollaig'], 8610 monthsShort = ['Ean', 'Feabh', 'Márt', 'Aib', 'Beal', 'Meith', 'Iúil', 'Lún', 'M.F.', 'D.F.', 'Samh', 'Noll'], 8611 weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'], 8612 weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], 8613 weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; 8614 var ga = moment.defineLocale('ga', { 8615 months: months, 8616 monthsShort: monthsShort, 8617 monthsParseExact: true, 8618 weekdays: weekdays, 8619 weekdaysShort: weekdaysShort, 8620 weekdaysMin: weekdaysMin, 8621 longDateFormat: { 8622 LT: 'HH:mm', 8623 LTS: 'HH:mm:ss', 8624 L: 'DD/MM/YYYY', 8625 LL: 'D MMMM YYYY', 8626 LLL: 'D MMMM YYYY HH:mm', 8627 LLLL: 'dddd, D MMMM YYYY HH:mm' 8628 }, 8629 calendar: { 8630 sameDay: '[Inniu ag] LT', 8631 nextDay: '[Amárach ag] LT', 8632 nextWeek: 'dddd [ag] LT', 8633 lastDay: '[Inné ag] LT', 8634 lastWeek: 'dddd [seo caite] [ag] LT', 8635 sameElse: 'L' 8636 }, 8637 relativeTime: { 8638 future: 'i %s', 8639 past: '%s ó shin', 8640 s: 'cúpla soicind', 8641 ss: '%d soicind', 8642 m: 'nóiméad', 8643 mm: '%d nóiméad', 8644 h: 'uair an chloig', 8645 hh: '%d uair an chloig', 8646 d: 'lá', 8647 dd: '%d lá', 8648 M: 'mÃ', 8649 MM: '%d mÃonna', 8650 y: 'bliain', 8651 yy: '%d bliain' 8652 }, 8653 dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, 8654 ordinal: function ordinal(number) { 8655 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; 8656 return number + output; 8657 }, 8658 week: { 8659 dow: 1, 8660 // Monday is the first day of the week. 8661 doy: 4 // The week that contains Jan 4th is the first week of the year. 8662 8663 } 8664 }); 8665 return ga; 8666}); 8667 8668/***/ }), 8669
vendor: 3,744 bytes, lines 8670-8752
8670/***/ "../autobahn_client_core/node_modules/moment/locale/gd.js": 8671/*!****************************************************************!*\ 8672 !*** ../autobahn_client_core/node_modules/moment/locale/gd.js ***! 8673 \****************************************************************/ 8674/*! no static exports found */ 8675/***/ (function(module, exports, __webpack_require__) { 8676 8677var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8678 8679//! moment.js locale configuration 8680//! locale : Scottish Gaelic [gd] 8681//! author : Jon Ashdown : https://github.com/jonashdown 8682; 8683 8684(function (global, factory) { 8685 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 8686 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 8687 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 8688 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 8689})(this, function (moment) { 8690 'use strict'; //! moment.js locale configuration 8691 8692 var months = ['Am Faoilleach', 'An Gearran', 'Am Mà rt', 'An Giblean', 'An Cèitean', 'An t-Ãgmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dà mhair', 'An t-Samhain', 'An Dùbhlachd'], 8693 monthsShort = ['Faoi', 'Gear', 'Mà rt', 'Gibl', 'Cèit', 'Ãgmh', 'Iuch', 'Lùn', 'Sult', 'Dà mh', 'Samh', 'Dùbh'], 8694 weekdays = ['Didòmhnaich', 'Diluain', 'Dimà irt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'], 8695 weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], 8696 weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa']; 8697 var gd = moment.defineLocale('gd', { 8698 months: months, 8699 monthsShort: monthsShort, 8700 monthsParseExact: true, 8701 weekdays: weekdays, 8702 weekdaysShort: weekdaysShort, 8703 weekdaysMin: weekdaysMin, 8704 longDateFormat: { 8705 LT: 'HH:mm', 8706 LTS: 'HH:mm:ss', 8707 L: 'DD/MM/YYYY', 8708 LL: 'D MMMM YYYY', 8709 LLL: 'D MMMM YYYY HH:mm', 8710 LLLL: 'dddd, D MMMM YYYY HH:mm' 8711 }, 8712 calendar: { 8713 sameDay: '[An-diugh aig] LT', 8714 nextDay: '[A-mà ireach aig] LT', 8715 nextWeek: 'dddd [aig] LT', 8716 lastDay: '[An-dè aig] LT', 8717 lastWeek: 'dddd [seo chaidh] [aig] LT', 8718 sameElse: 'L' 8719 }, 8720 relativeTime: { 8721 future: 'ann an %s', 8722 past: 'bho chionn %s', 8723 s: 'beagan diogan', 8724 ss: '%d diogan', 8725 m: 'mionaid', 8726 mm: '%d mionaidean', 8727 h: 'uair', 8728 hh: '%d uairean', 8729 d: 'latha', 8730 dd: '%d latha', 8731 M: 'mìos', 8732 MM: '%d mìosan', 8733 y: 'bliadhna', 8734 yy: '%d bliadhna' 8735 }, 8736 dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, 8737 ordinal: function ordinal(number) { 8738 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; 8739 return number + output; 8740 }, 8741 week: { 8742 dow: 1, 8743 // Monday is the first day of the week. 8744 doy: 4 // The week that contains Jan 4th is the first week of the year. 8745 8746 } 8747 }); 8748 return gd; 8749}); 8750 8751/***/ }), 8752
vendor: 3,886 bytes, lines 8753-8844
8753/***/ "../autobahn_client_core/node_modules/moment/locale/gl.js": 8754/*!****************************************************************!*\ 8755 !*** ../autobahn_client_core/node_modules/moment/locale/gl.js ***! 8756 \****************************************************************/ 8757/*! no static exports found */ 8758/***/ (function(module, exports, __webpack_require__) { 8759 8760var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8761 8762//! moment.js locale configuration 8763//! locale : Galician [gl] 8764//! author : Juan G. Hurtado : https://github.com/juanghurtado 8765; 8766 8767(function (global, factory) { 8768 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 8769 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 8770 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 8771 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 8772})(this, function (moment) { 8773 'use strict'; //! moment.js locale configuration 8774 8775 var gl = moment.defineLocale('gl', { 8776 months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'), 8777 monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'), 8778 monthsParseExact: true, 8779 weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), 8780 weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), 8781 weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), 8782 weekdaysParseExact: true, 8783 longDateFormat: { 8784 LT: 'H:mm', 8785 LTS: 'H:mm:ss', 8786 L: 'DD/MM/YYYY', 8787 LL: 'D [de] MMMM [de] YYYY', 8788 LLL: 'D [de] MMMM [de] YYYY H:mm', 8789 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm' 8790 }, 8791 calendar: { 8792 sameDay: function sameDay() { 8793 return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; 8794 }, 8795 nextDay: function nextDay() { 8796 return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; 8797 }, 8798 nextWeek: function nextWeek() { 8799 return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; 8800 }, 8801 lastDay: function lastDay() { 8802 return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; 8803 }, 8804 lastWeek: function lastWeek() { 8805 return '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; 8806 }, 8807 sameElse: 'L' 8808 }, 8809 relativeTime: { 8810 future: function future(str) { 8811 if (str.indexOf('un') === 0) { 8812 return 'n' + str; 8813 } 8814 8815 return 'en ' + str; 8816 }, 8817 past: 'hai %s', 8818 s: 'uns segundos', 8819 ss: '%d segundos', 8820 m: 'un minuto', 8821 mm: '%d minutos', 8822 h: 'unha hora', 8823 hh: '%d horas', 8824 d: 'un dÃa', 8825 dd: '%d dÃas', 8826 M: 'un mes', 8827 MM: '%d meses', 8828 y: 'un ano', 8829 yy: '%d anos' 8830 }, 8831 dayOfMonthOrdinalParse: /\d{1,2}º/, 8832 ordinal: '%dº', 8833 week: { 8834 dow: 1, 8835 // Monday is the first day of the week. 8836 doy: 4 // The week that contains Jan 4th is the first week of the year. 8837 8838 } 8839 }); 8840 return gl; 8841}); 8842 8843/***/ }), 8844
vendor: 6,948 bytes, lines 8845-8987
8845/***/ "../autobahn_client_core/node_modules/moment/locale/gom-deva.js": 8846/*!**********************************************************************!*\ 8847 !*** ../autobahn_client_core/node_modules/moment/locale/gom-deva.js ***! 8848 \**********************************************************************/ 8849/*! no static exports found */ 8850/***/ (function(module, exports, __webpack_require__) { 8851 8852var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8853 8854//! moment.js locale configuration 8855//! locale : Konkani Devanagari script [gom-deva] 8856//! author : The Discoverer : https://github.com/WikiDiscoverer 8857; 8858 8859(function (global, factory) { 8860 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 8861 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 8862 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 8863 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 8864})(this, function (moment) { 8865 'use strict'; //! moment.js locale configuration 8866 8867 function processRelativeTime(number, withoutSuffix, key, isFuture) { 8868 var format = { 8869 s: ['थà¥à¤¡à¤¯à¤¾ सॠà¤à¤à¤¡à¤¾à¤à¤¨à¥', 'थà¥à¤¡à¥ सॠà¤à¤à¤¡'], 8870 ss: [number + ' सॠà¤à¤à¤¡à¤¾à¤à¤¨à¥', number + ' सॠà¤à¤à¤¡'], 8871 m: ['à¤à¤à¤¾ मिणà¤à¤¾à¤¨', 'à¤à¤ मिनà¥à¤'], 8872 mm: [number + ' मिणà¤à¤¾à¤à¤¨à¥', number + ' मिणà¤à¤¾à¤'], 8873 h: ['à¤à¤à¤¾ वरान', 'à¤à¤ वर'], 8874 hh: [number + ' वराà¤à¤¨à¥', number + ' वराà¤'], 8875 d: ['à¤à¤à¤¾ दिसान', 'à¤à¤ दà¥à¤¸'], 8876 dd: [number + ' दिसाà¤à¤¨à¥', number + ' दà¥à¤¸'], 8877 M: ['à¤à¤à¤¾ मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨', 'à¤à¤ मà¥à¤¹à¤¯à¤¨à¥'], 8878 MM: [number + ' मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨à¥', number + ' मà¥à¤¹à¤¯à¤¨à¥'], 8879 y: ['à¤à¤à¤¾ वरà¥à¤¸à¤¾à¤¨', 'à¤à¤ वरà¥à¤¸'], 8880 yy: [number + ' वरà¥à¤¸à¤¾à¤à¤¨à¥', number + ' वरà¥à¤¸à¤¾à¤'] 8881 }; 8882 return isFuture ? format[key][0] : format[key][1]; 8883 } 8884 8885 var gomDeva = moment.defineLocale('gom-deva', { 8886 months: { 8887 standalone: 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥_मारà¥à¤_à¤à¤ªà¥à¤°à¥à¤²_मà¥_à¤à¥à¤¨_à¤à¥à¤²à¤¯_à¤à¤à¤¸à¥à¤_सपà¥à¤à¥à¤à¤¬à¤°_à¤à¤à¥à¤à¥à¤¬à¤°_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°_डिसà¥à¤à¤¬à¤°'.split('_'), 8888 format: 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥à¤à¥à¤¯à¤¾_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥à¤à¥à¤¯à¤¾_मारà¥à¤à¤¾à¤à¥à¤¯à¤¾_à¤à¤ªà¥à¤°à¥à¤²à¤¾à¤à¥à¤¯à¤¾_मà¥à¤¯à¤¾à¤à¥à¤¯à¤¾_à¤à¥à¤¨à¤¾à¤à¥à¤¯à¤¾_à¤à¥à¤²à¤¯à¤¾à¤à¥à¤¯à¤¾_à¤à¤à¤¸à¥à¤à¤¾à¤à¥à¤¯à¤¾_सपà¥à¤à¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_à¤à¤à¥à¤à¥à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_डिसà¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾'.split('_'), 8889 isFormat: /MMMM(\s)+D[oD]?/ 8890 }, 8891 monthsShort: 'à¤à¤¾à¤¨à¥._फà¥à¤¬à¥à¤°à¥._मारà¥à¤_à¤à¤ªà¥à¤°à¥._मà¥_à¤à¥à¤¨_à¤à¥à¤²._à¤à¤._सपà¥à¤à¥à¤._à¤à¤à¥à¤à¥._नà¥à¤µà¥à¤¹à¥à¤._डिसà¥à¤.'.split('_'), 8892 monthsParseExact: true, 8893 weekdays: 'à¤à¤¯à¤¤à¤¾à¤°_सà¥à¤®à¤¾à¤°_मà¤à¤à¤³à¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_बिरà¥à¤¸à¥à¤¤à¤¾à¤°_सà¥à¤à¥à¤°à¤¾à¤°_शà¥à¤¨à¤µà¤¾à¤°'.split('_'), 8894 weekdaysShort: 'à¤à¤¯à¤¤._सà¥à¤®._मà¤à¤à¤³._बà¥à¤§._बà¥à¤°à¥à¤¸à¥à¤¤._सà¥à¤à¥à¤°._शà¥à¤¨.'.split('_'), 8895 weekdaysMin: 'à¤_सà¥_मà¤_बà¥_बà¥à¤°à¥_सà¥_शà¥'.split('_'), 8896 weekdaysParseExact: true, 8897 longDateFormat: { 8898 LT: 'A h:mm [वाà¤à¤¤à¤¾à¤]', 8899 LTS: 'A h:mm:ss [वाà¤à¤¤à¤¾à¤]', 8900 L: 'DD-MM-YYYY', 8901 LL: 'D MMMM YYYY', 8902 LLL: 'D MMMM YYYY A h:mm [वाà¤à¤¤à¤¾à¤]', 8903 LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाà¤à¤¤à¤¾à¤]', 8904 llll: 'ddd, D MMM YYYY, A h:mm [वाà¤à¤¤à¤¾à¤]' 8905 }, 8906 calendar: { 8907 sameDay: '[à¤à¤¯à¤] LT', 8908 nextDay: '[फालà¥à¤¯à¤¾à¤] LT', 8909 nextWeek: '[फà¥à¤¡à¤²à¥] dddd[,] LT', 8910 lastDay: '[à¤à¤¾à¤²] LT', 8911 lastWeek: '[फाà¤à¤²à¥] dddd[,] LT', 8912 sameElse: 'L' 8913 }, 8914 relativeTime: { 8915 future: '%s', 8916 past: '%s à¤à¤¦à¥à¤', 8917 s: processRelativeTime, 8918 ss: processRelativeTime, 8919 m: processRelativeTime, 8920 mm: processRelativeTime, 8921 h: processRelativeTime, 8922 hh: processRelativeTime, 8923 d: processRelativeTime, 8924 dd: processRelativeTime, 8925 M: processRelativeTime, 8926 MM: processRelativeTime, 8927 y: processRelativeTime, 8928 yy: processRelativeTime 8929 }, 8930 dayOfMonthOrdinalParse: /\d{1,2}(वà¥à¤°)/, 8931 ordinal: function ordinal(number, period) { 8932 switch (period) { 8933 // the ordinal 'वà¥à¤°' only applies to day of the month 8934 case 'D': 8935 return number + 'वà¥à¤°'; 8936 8937 default: 8938 case 'M': 8939 case 'Q': 8940 case 'DDD': 8941 case 'd': 8942 case 'w': 8943 case 'W': 8944 return number; 8945 } 8946 }, 8947 week: { 8948 dow: 0, 8949 // Sunday is the first day of the week 8950 doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) 8951 8952 }, 8953 meridiemParse: /रातà¥|सà¤à¤¾à¤³à¥à¤|दनपाराà¤|साà¤à¤à¥/, 8954 meridiemHour: function meridiemHour(hour, meridiem) { 8955 if (hour === 12) { 8956 hour = 0; 8957 } 8958 8959 if (meridiem === 'रातà¥') { 8960 return hour < 4 ? hour : hour + 12; 8961 } else if (meridiem === 'सà¤à¤¾à¤³à¥à¤') { 8962 return hour; 8963 } else if (meridiem === 'दनपाराà¤') { 8964 return hour > 12 ? hour : hour + 12; 8965 } else if (meridiem === 'साà¤à¤à¥') { 8966 return hour + 12; 8967 } 8968 }, 8969 meridiem: function meridiem(hour, minute, isLower) { 8970 if (hour < 4) { 8971 return 'रातà¥'; 8972 } else if (hour < 12) { 8973 return 'सà¤à¤¾à¤³à¥à¤'; 8974 } else if (hour < 16) { 8975 return 'दनपाराà¤'; 8976 } else if (hour < 20) { 8977 return 'साà¤à¤à¥'; 8978 } else { 8979 return 'रातà¥'; 8980 } 8981 } 8982 }); 8983 return gomDeva; 8984}); 8985 8986/***/ }), 8987
vendor: 5,594 bytes, lines 8988-9130
8988/***/ "../autobahn_client_core/node_modules/moment/locale/gom-latn.js": 8989/*!**********************************************************************!*\ 8990 !*** ../autobahn_client_core/node_modules/moment/locale/gom-latn.js ***! 8991 \**********************************************************************/ 8992/*! no static exports found */ 8993/***/ (function(module, exports, __webpack_require__) { 8994 8995var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 8996 8997//! moment.js locale configuration 8998//! locale : Konkani Latin script [gom-latn] 8999//! author : The Discoverer : https://github.com/WikiDiscoverer 9000; 9001 9002(function (global, factory) { 9003 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 9004 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 9005 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 9006 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 9007})(this, function (moment) { 9008 'use strict'; //! moment.js locale configuration 9009 9010 function processRelativeTime(number, withoutSuffix, key, isFuture) { 9011 var format = { 9012 s: ['thoddea sekondamni', 'thodde sekond'], 9013 ss: [number + ' sekondamni', number + ' sekond'], 9014 m: ['eka mintan', 'ek minut'], 9015 mm: [number + ' mintamni', number + ' mintam'], 9016 h: ['eka voran', 'ek vor'], 9017 hh: [number + ' voramni', number + ' voram'], 9018 d: ['eka disan', 'ek dis'], 9019 dd: [number + ' disamni', number + ' dis'], 9020 M: ['eka mhoinean', 'ek mhoino'], 9021 MM: [number + ' mhoineamni', number + ' mhoine'], 9022 y: ['eka vorsan', 'ek voros'], 9023 yy: [number + ' vorsamni', number + ' vorsam'] 9024 }; 9025 return isFuture ? format[key][0] : format[key][1]; 9026 } 9027 9028 var gomLatn = moment.defineLocale('gom-latn', { 9029 months: { 9030 standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'), 9031 format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split('_'), 9032 isFormat: /MMMM(\s)+D[oD]?/ 9033 }, 9034 monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), 9035 monthsParseExact: true, 9036 weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), 9037 weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), 9038 weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), 9039 weekdaysParseExact: true, 9040 longDateFormat: { 9041 LT: 'A h:mm [vazta]', 9042 LTS: 'A h:mm:ss [vazta]', 9043 L: 'DD-MM-YYYY', 9044 LL: 'D MMMM YYYY', 9045 LLL: 'D MMMM YYYY A h:mm [vazta]', 9046 LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', 9047 llll: 'ddd, D MMM YYYY, A h:mm [vazta]' 9048 }, 9049 calendar: { 9050 sameDay: '[Aiz] LT', 9051 nextDay: '[Faleam] LT', 9052 nextWeek: '[Fuddlo] dddd[,] LT', 9053 lastDay: '[Kal] LT', 9054 lastWeek: '[Fattlo] dddd[,] LT', 9055 sameElse: 'L' 9056 }, 9057 relativeTime: { 9058 future: '%s', 9059 past: '%s adim', 9060 s: processRelativeTime, 9061 ss: processRelativeTime, 9062 m: processRelativeTime, 9063 mm: processRelativeTime, 9064 h: processRelativeTime, 9065 hh: processRelativeTime, 9066 d: processRelativeTime, 9067 dd: processRelativeTime, 9068 M: processRelativeTime, 9069 MM: processRelativeTime, 9070 y: processRelativeTime, 9071 yy: processRelativeTime 9072 }, 9073 dayOfMonthOrdinalParse: /\d{1,2}(er)/, 9074 ordinal: function ordinal(number, period) { 9075 switch (period) { 9076 // the ordinal 'er' only applies to day of the month 9077 case 'D': 9078 return number + 'er'; 9079 9080 default: 9081 case 'M': 9082 case 'Q': 9083 case 'DDD': 9084 case 'd': 9085 case 'w': 9086 case 'W': 9087 return number; 9088 } 9089 }, 9090 week: { 9091 dow: 0, 9092 // Sunday is the first day of the week 9093 doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) 9094 9095 }, 9096 meridiemParse: /rati|sokallim|donparam|sanje/, 9097 meridiemHour: function meridiemHour(hour, meridiem) { 9098 if (hour === 12) { 9099 hour = 0; 9100 } 9101 9102 if (meridiem === 'rati') { 9103 return hour < 4 ? hour : hour + 12; 9104 } else if (meridiem === 'sokallim') { 9105 return hour; 9106 } else if (meridiem === 'donparam') { 9107 return hour > 12 ? hour : hour + 12; 9108 } else if (meridiem === 'sanje') { 9109 return hour + 12; 9110 } 9111 }, 9112 meridiem: function meridiem(hour, minute, isLower) { 9113 if (hour < 4) { 9114 return 'rati'; 9115 } else if (hour < 12) { 9116 return 'sokallim'; 9117 } else if (hour < 16) { 9118 return 'donparam'; 9119 } else if (hour < 20) { 9120 return 'sanje'; 9121 } else { 9122 return 'rati'; 9123 } 9124 } 9125 }); 9126 return gomLatn; 9127}); 9128 9129/***/ }), 9130
vendor: 5,569 bytes, lines 9131-9268
9131/***/ "../autobahn_client_core/node_modules/moment/locale/gu.js": 9132/*!****************************************************************!*\ 9133 !*** ../autobahn_client_core/node_modules/moment/locale/gu.js ***! 9134 \****************************************************************/ 9135/*! no static exports found */ 9136/***/ (function(module, exports, __webpack_require__) { 9137 9138var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 9139 9140//! moment.js locale configuration 9141//! locale : Gujarati [gu] 9142//! author : Kaushik Thanki : https://github.com/Kaushik1987 9143; 9144 9145(function (global, factory) { 9146 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 9147 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 9148 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 9149 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 9150})(this, function (moment) { 9151 'use strict'; //! moment.js locale configuration 9152 9153 var symbolMap = { 9154 1: 'à«§', 9155 2: '૨', 9156 3: 'à«©', 9157 4: '૪', 9158 5: 'à««', 9159 6: '૬', 9160 7: 'à«', 9161 8: 'à«®', 9162 9: '૯', 9163 0: '૦' 9164 }, 9165 numberMap = { 9166 'à«§': '1', 9167 '૨': '2', 9168 'à«©': '3', 9169 '૪': '4', 9170 'à««': '5', 9171 '૬': '6', 9172 'à«': '7', 9173 'à«®': '8', 9174 '૯': '9', 9175 '૦': '0' 9176 }; 9177 var gu = moment.defineLocale('gu', { 9178 months: 'àªàª¾àª¨à«àª¯à«àªàª°à«_ફà«àª¬à«àª°à«àªàª°à«_મારà«àª_àªàªªà«àª°àª¿àª²_મà«_àªà«àª¨_àªà«àª²àª¾àª_àªàªàª¸à«àª_સપà«àªà«àª®à«àª¬àª°_àªàªà«àªà«àª¬àª°_નવà«àª®à«àª¬àª°_ડિસà«àª®à«àª¬àª°'.split('_'), 9179 monthsShort: 'àªàª¾àª¨à«àª¯à«._ફà«àª¬à«àª°à«._મારà«àª_àªàªªà«àª°àª¿._મà«_àªà«àª¨_àªà«àª²àª¾._àªàª._સપà«àªà«._àªàªà«àªà«._નવà«._ડિસà«.'.split('_'), 9180 monthsParseExact: true, 9181 weekdays: 'રવિવાર_સà«àª®àªµàª¾àª°_મàªàªàª³àªµàª¾àª°_બà«àª§à«àªµàª¾àª°_àªà«àª°à«àªµàª¾àª°_શà«àªà«àª°àªµàª¾àª°_શનિવાર'.split('_'), 9182 weekdaysShort: 'રવિ_સà«àª®_મàªàªàª³_બà«àª§à«_àªà«àª°à«_શà«àªà«àª°_શનિ'.split('_'), 9183 weekdaysMin: 'ર_સà«_મàª_બà«_àªà«_શà«_શ'.split('_'), 9184 longDateFormat: { 9185 LT: 'A h:mm વાàªà«àª¯à«', 9186 LTS: 'A h:mm:ss વાàªà«àª¯à«', 9187 L: 'DD/MM/YYYY', 9188 LL: 'D MMMM YYYY', 9189 LLL: 'D MMMM YYYY, A h:mm વાàªà«àª¯à«', 9190 LLLL: 'dddd, D MMMM YYYY, A h:mm વાàªà«àª¯à«' 9191 }, 9192 calendar: { 9193 sameDay: '[àªàª] LT', 9194 nextDay: '[àªàª¾àª²à«] LT', 9195 nextWeek: 'dddd, LT', 9196 lastDay: '[àªàªàªàª¾àª²à«] LT', 9197 lastWeek: '[પાàªàª²àª¾] dddd, LT', 9198 sameElse: 'L' 9199 }, 9200 relativeTime: { 9201 future: '%s મા', 9202 past: '%s પહà«àª²àª¾', 9203 s: 'ઠમà«àª પળà«', 9204 ss: '%d સà«àªàªàª¡', 9205 m: 'àªàª મિનિàª', 9206 mm: '%d મિનિàª', 9207 h: 'àªàª àªàª²àª¾àª', 9208 hh: '%d àªàª²àª¾àª', 9209 d: 'àªàª દિવસ', 9210 dd: '%d દિવસ', 9211 M: 'àªàª મહિનà«', 9212 MM: '%d મહિનà«', 9213 y: 'àªàª વરà«àª·', 9214 yy: '%d વરà«àª·' 9215 }, 9216 preparse: function preparse(string) { 9217 return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) { 9218 return numberMap[match]; 9219 }); 9220 }, 9221 postformat: function postformat(string) { 9222 return string.replace(/\d/g, function (match) { 9223 return symbolMap[match]; 9224 }); 9225 }, 9226 // Gujarati notation for meridiems are quite fuzzy in practice. While there exists 9227 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. 9228 meridiemParse: /રાત|બપà«àª°|સવાર|સાàªàª/, 9229 meridiemHour: function meridiemHour(hour, meridiem) { 9230 if (hour === 12) { 9231 hour = 0; 9232 } 9233 9234 if (meridiem === 'રાત') { 9235 return hour < 4 ? hour : hour + 12; 9236 } else if (meridiem === 'સવાર') { 9237 return hour; 9238 } else if (meridiem === 'બપà«àª°') { 9239 return hour >= 10 ? hour : hour + 12; 9240 } else if (meridiem === 'સાàªàª') { 9241 return hour + 12; 9242 } 9243 }, 9244 meridiem: function meridiem(hour, minute, isLower) { 9245 if (hour < 4) { 9246 return 'રાત'; 9247 } else if (hour < 10) { 9248 return 'સવાર'; 9249 } else if (hour < 17) { 9250 return 'બપà«àª°'; 9251 } else if (hour < 20) { 9252 return 'સાàªàª'; 9253 } else { 9254 return 'રાત'; 9255 } 9256 }, 9257 week: { 9258 dow: 0, 9259 // Sunday is the first day of the week. 9260 doy: 6 // The week that contains Jan 6th is the first week of the year. 9261 9262 } 9263 }); 9264 return gu; 9265}); 9266 9267/***/ }), 9268
vendor: 4,692 bytes, lines 9269-9383
9269/***/ "../autobahn_client_core/node_modules/moment/locale/he.js": 9270/*!****************************************************************!*\ 9271 !*** ../autobahn_client_core/node_modules/moment/locale/he.js ***! 9272 \****************************************************************/ 9273/*! no static exports found */ 9274/***/ (function(module, exports, __webpack_require__) { 9275 9276var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 9277 9278//! moment.js locale configuration 9279//! locale : Hebrew [he] 9280//! author : Tomer Cohen : https://github.com/tomer 9281//! author : Moshe Simantov : https://github.com/DevelopmentIL 9282//! author : Tal Ater : https://github.com/TalAter 9283; 9284 9285(function (global, factory) { 9286 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 9287 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 9288 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 9289 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 9290})(this, function (moment) { 9291 'use strict'; //! moment.js locale configuration 9292 9293 var he = moment.defineLocale('he', { 9294 months: '×× ××ר_פ×ר××ר_×רץ_×פר××_×××_××× ×_××××_××××ס×_ספ×××ר_×××§×××ר_× ××××ר_×צ××ר'.split('_'), 9295 monthsShort: '×× ×׳_פ×ר׳_×רץ_×פר׳_×××_××× ×_××××_×××׳_ספ×׳_××ק׳_× ××׳_×צ×׳'.split('_'), 9296 weekdays: 'ר×ש××_×©× ×_ש××ש×_ר×××¢×_×××ש×_ש×ש×_ש×ת'.split('_'), 9297 weekdaysShort: '×׳_×׳_×׳_×׳_×׳_×׳_ש׳'.split('_'), 9298 weekdaysMin: '×_×_×_×_×_×_ש'.split('_'), 9299 longDateFormat: { 9300 LT: 'HH:mm', 9301 LTS: 'HH:mm:ss', 9302 L: 'DD/MM/YYYY', 9303 LL: 'D [×]MMMM YYYY', 9304 LLL: 'D [×]MMMM YYYY HH:mm', 9305 LLLL: 'dddd, D [×]MMMM YYYY HH:mm', 9306 l: 'D/M/YYYY', 9307 ll: 'D MMM YYYY', 9308 lll: 'D MMM YYYY HH:mm', 9309 llll: 'ddd, D MMM YYYY HH:mm' 9310 }, 9311 calendar: { 9312 sameDay: '[×××× ×Ö¾]LT', 9313 nextDay: '[××ר ×Ö¾]LT', 9314 nextWeek: 'dddd [×שע×] LT', 9315 lastDay: '[×ת××× ×Ö¾]LT', 9316 lastWeek: '[××××] dddd [×××ר×× ×שע×] LT', 9317 sameElse: 'L' 9318 }, 9319 relativeTime: { 9320 future: '××¢×× %s', 9321 past: '××¤× × %s', 9322 s: '×ספר ×©× ××ת', 9323 ss: '%d ×©× ××ת', 9324 m: '××§×', 9325 mm: '%d ××§×ת', 9326 h: 'שע×', 9327 hh: function hh(number) { 9328 if (number === 2) { 9329 return 'שעת×××'; 9330 } 9331 9332 return number + ' שע×ת'; 9333 }, 9334 d: '×××', 9335 dd: function dd(number) { 9336 if (number === 2) { 9337 return '××××××'; 9338 } 9339 9340 return number + ' ××××'; 9341 }, 9342 M: '×××ש', 9343 MM: function MM(number) { 9344 if (number === 2) { 9345 return '×××ש×××'; 9346 } 9347 9348 return number + ' ×××ש××'; 9349 }, 9350 y: '×©× ×', 9351 yy: function yy(number) { 9352 if (number === 2) { 9353 return '×©× ×ª×××'; 9354 } else if (number % 10 === 0 && number !== 10) { 9355 return number + ' ×©× ×'; 9356 } 9357 9358 return number + ' ×©× ××'; 9359 } 9360 }, 9361 meridiemParse: /×××"צ|××¤× ×"צ|×××¨× ×צ×ר×××|××¤× × ×צ×ר×××|××¤× ×ת ××קר|×××קר|×ער×/i, 9362 isPM: function isPM(input) { 9363 return /^(×××"צ|×××¨× ×צ×ר×××|×ער×)$/.test(input); 9364 }, 9365 meridiem: function meridiem(hour, minute, isLower) { 9366 if (hour < 5) { 9367 return '××¤× ×ת ××קר'; 9368 } else if (hour < 10) { 9369 return '×××קר'; 9370 } else if (hour < 12) { 9371 return isLower ? '××¤× ×"צ' : '××¤× × ×צ×ר×××'; 9372 } else if (hour < 18) { 9373 return isLower ? '×××"צ' : '×××¨× ×צ×ר×××'; 9374 } else { 9375 return '×ער×'; 9376 } 9377 } 9378 }); 9379 return he; 9380}); 9381 9382/***/ }), 9383
vendor: 7,599 bytes, lines 9384-9532
9384/***/ "../autobahn_client_core/node_modules/moment/locale/hi.js": 9385/*!****************************************************************!*\ 9386 !*** ../autobahn_client_core/node_modules/moment/locale/hi.js ***! 9387 \****************************************************************/ 9388/*! no static exports found */ 9389/***/ (function(module, exports, __webpack_require__) { 9390 9391var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 9392 9393//! moment.js locale configuration 9394//! locale : Hindi [hi] 9395//! author : Mayank Singhal : https://github.com/mayanksinghal 9396; 9397 9398(function (global, factory) { 9399 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 9400 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 9401 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 9402 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 9403})(this, function (moment) { 9404 'use strict'; //! moment.js locale configuration 9405 9406 var symbolMap = { 9407 1: '१', 9408 2: '२', 9409 3: '३', 9410 4: '४', 9411 5: '५', 9412 6: '६', 9413 7: 'à¥', 9414 8: '८', 9415 9: '९', 9416 0: '०' 9417 }, 9418 numberMap = { 9419 '१': '1', 9420 '२': '2', 9421 '३': '3', 9422 '४': '4', 9423 '५': '5', 9424 '६': '6', 9425 'à¥': '7', 9426 '८': '8', 9427 '९': '9', 9428 '०': '0' 9429 }, 9430 monthsParse = [/^à¤à¤¨/i, /^फ़र|फर/i, /^मारà¥à¤/i, /^ठपà¥à¤°à¥/i, /^मà¤/i, /^à¤à¥à¤¨/i, /^à¤à¥à¤²/i, /^ठà¤/i, /^सितà¤|सित/i, /^ठà¤à¥à¤à¥/i, /^नव|नवà¤/i, /^दिसà¤|दिस/i], 9431 shortMonthsParse = [/^à¤à¤¨/i, /^फ़र/i, /^मारà¥à¤/i, /^ठपà¥à¤°à¥/i, /^मà¤/i, /^à¤à¥à¤¨/i, /^à¤à¥à¤²/i, /^ठà¤/i, /^सित/i, /^ठà¤à¥à¤à¥/i, /^नव/i, /^दिस/i]; 9432 var hi = moment.defineLocale('hi', { 9433 months: { 9434 format: 'à¤à¤¨à¤µà¤°à¥_फ़रवरà¥_मारà¥à¤_ठपà¥à¤°à¥à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤¸à¥à¤¤_सितमà¥à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split('_'), 9435 standalone: 'à¤à¤¨à¤µà¤°à¥_फरवरà¥_मारà¥à¤_ठपà¥à¤°à¥à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤¸à¥à¤¤_सितà¤à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नवà¤à¤¬à¤°_दिसà¤à¤¬à¤°'.split('_') 9436 }, 9437 monthsShort: 'à¤à¤¨._फ़र._मारà¥à¤_ठपà¥à¤°à¥._मà¤_à¤à¥à¤¨_à¤à¥à¤²._ठà¤._सित._ठà¤à¥à¤à¥._नव._दिस.'.split('_'), 9438 weekdays: 'रविवार_सà¥à¤®à¤µà¤¾à¤°_मà¤à¤à¤²à¤µà¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_à¤à¥à¤°à¥à¤µà¤¾à¤°_शà¥à¤à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'), 9439 weekdaysShort: 'रवि_सà¥à¤®_मà¤à¤à¤²_बà¥à¤§_à¤à¥à¤°à¥_शà¥à¤à¥à¤°_शनि'.split('_'), 9440 weekdaysMin: 'र_सà¥_मà¤_बà¥_à¤à¥_शà¥_श'.split('_'), 9441 longDateFormat: { 9442 LT: 'A h:mm बà¤à¥', 9443 LTS: 'A h:mm:ss बà¤à¥', 9444 L: 'DD/MM/YYYY', 9445 LL: 'D MMMM YYYY', 9446 LLL: 'D MMMM YYYY, A h:mm बà¤à¥', 9447 LLLL: 'dddd, D MMMM YYYY, A h:mm बà¤à¥' 9448 }, 9449 monthsParse: monthsParse, 9450 longMonthsParse: monthsParse, 9451 shortMonthsParse: shortMonthsParse, 9452 monthsRegex: /^(à¤à¤¨à¤µà¤°à¥|à¤à¤¨\.?|फ़रवरà¥|फरवरà¥|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥à¤²|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤|à¤à¥à¤²\.?|ठà¤à¤¸à¥à¤¤|ठà¤\.?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित\.?|ठà¤à¥à¤à¥à¤¬à¤°|ठà¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°|नव\.?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°|दिस\.?)/i, 9453 monthsShortRegex: /^(à¤à¤¨à¤µà¤°à¥|à¤à¤¨\.?|फ़रवरà¥|फरवरà¥|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥à¤²|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤|à¤à¥à¤²\.?|ठà¤à¤¸à¥à¤¤|ठà¤\.?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित\.?|ठà¤à¥à¤à¥à¤¬à¤°|ठà¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°|नव\.?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°|दिस\.?)/i, 9454 monthsStrictRegex: /^(à¤à¤¨à¤µà¤°à¥?|फ़रवरà¥|फरवरà¥?|मारà¥à¤?|ठपà¥à¤°à¥à¤²?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤?|ठà¤à¤¸à¥à¤¤?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित?\.?|ठà¤à¥à¤à¥à¤¬à¤°|ठà¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°?)/i, 9455 monthsShortStrictRegex: /^(à¤à¤¨\.?|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²\.?|ठà¤\.?|सित\.?|ठà¤à¥à¤à¥\.?|नव\.?|दिस\.?)/i, 9456 calendar: { 9457 sameDay: '[à¤à¤] LT', 9458 nextDay: '[à¤à¤²] LT', 9459 nextWeek: 'dddd, LT', 9460 lastDay: '[à¤à¤²] LT', 9461 lastWeek: '[पिà¤à¤²à¥] dddd, LT', 9462 sameElse: 'L' 9463 }, 9464 relativeTime: { 9465 future: '%s मà¥à¤', 9466 past: '%s पहलà¥', 9467 s: 'à¤à¥à¤ हॠà¤à¥à¤·à¤£', 9468 ss: '%d सà¥à¤à¤à¤¡', 9469 m: 'à¤à¤ मिनà¤', 9470 mm: '%d मिनà¤', 9471 h: 'à¤à¤ à¤à¤à¤à¤¾', 9472 hh: '%d à¤à¤à¤à¥', 9473 d: 'à¤à¤ दिन', 9474 dd: '%d दिन', 9475 M: 'à¤à¤ महà¥à¤¨à¥', 9476 MM: '%d महà¥à¤¨à¥', 9477 y: 'à¤à¤ वरà¥à¤·', 9478 yy: '%d वरà¥à¤·' 9479 }, 9480 preparse: function preparse(string) { 9481 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 9482 return numberMap[match]; 9483 }); 9484 }, 9485 postformat: function postformat(string) { 9486 return string.replace(/\d/g, function (match) { 9487 return symbolMap[match]; 9488 }); 9489 }, 9490 // Hindi notation for meridiems are quite fuzzy in practice. While there exists 9491 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. 9492 meridiemParse: /रात|सà¥à¤¬à¤¹|दà¥à¤ªà¤¹à¤°|शाम/, 9493 meridiemHour: function meridiemHour(hour, meridiem) { 9494 if (hour === 12) { 9495 hour = 0; 9496 } 9497 9498 if (meridiem === 'रात') { 9499 return hour < 4 ? hour : hour + 12; 9500 } else if (meridiem === 'सà¥à¤¬à¤¹') { 9501 return hour; 9502 } else if (meridiem === 'दà¥à¤ªà¤¹à¤°') { 9503 return hour >= 10 ? hour : hour + 12; 9504 } else if (meridiem === 'शाम') { 9505 return hour + 12; 9506 } 9507 }, 9508 meridiem: function meridiem(hour, minute, isLower) { 9509 if (hour < 4) { 9510 return 'रात'; 9511 } else if (hour < 10) { 9512 return 'सà¥à¤¬à¤¹'; 9513 } else if (hour < 17) { 9514 return 'दà¥à¤ªà¤¹à¤°'; 9515 } else if (hour < 20) { 9516 return 'शाम'; 9517 } else { 9518 return 'रात'; 9519 } 9520 }, 9521 week: { 9522 dow: 0, 9523 // Sunday is the first day of the week. 9524 doy: 6 // The week that contains Jan 6th is the first week of the year. 9525 9526 } 9527 }); 9528 return hi; 9529}); 9530 9531/***/ }), 9532
vendor: 5,856 bytes, lines 9533-9721
9533/***/ "../autobahn_client_core/node_modules/moment/locale/hr.js": 9534/*!****************************************************************!*\ 9535 !*** ../autobahn_client_core/node_modules/moment/locale/hr.js ***! 9536 \****************************************************************/ 9537/*! no static exports found */ 9538/***/ (function(module, exports, __webpack_require__) { 9539 9540var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 9541 9542//! moment.js locale configuration 9543//! locale : Croatian [hr] 9544//! author : Bojan MarkoviÄ : https://github.com/bmarkovic 9545; 9546 9547(function (global, factory) { 9548 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 9549 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 9550 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 9551 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 9552})(this, function (moment) { 9553 'use strict'; //! moment.js locale configuration 9554 9555 function translate(number, withoutSuffix, key) { 9556 var result = number + ' '; 9557 9558 switch (key) { 9559 case 'ss': 9560 if (number === 1) { 9561 result += 'sekunda'; 9562 } else if (number === 2 || number === 3 || number === 4) { 9563 result += 'sekunde'; 9564 } else { 9565 result += 'sekundi'; 9566 } 9567 9568 return result; 9569 9570 case 'm': 9571 return withoutSuffix ? 'jedna minuta' : 'jedne minute'; 9572 9573 case 'mm': 9574 if (number === 1) { 9575 result += 'minuta'; 9576 } else if (number === 2 || number === 3 || number === 4) { 9577 result += 'minute'; 9578 } else { 9579 result += 'minuta'; 9580 } 9581 9582 return result; 9583 9584 case 'h': 9585 return withoutSuffix ? 'jedan sat' : 'jednog sata'; 9586 9587 case 'hh': 9588 if (number === 1) { 9589 result += 'sat'; 9590 } else if (number === 2 || number === 3 || number === 4) { 9591 result += 'sata'; 9592 } else { 9593 result += 'sati'; 9594 } 9595 9596 return result; 9597 9598 case 'dd': 9599 if (number === 1) { 9600 result += 'dan'; 9601 } else { 9602 result += 'dana'; 9603 } 9604 9605 return result; 9606 9607 case 'MM': 9608 if (number === 1) { 9609 result += 'mjesec'; 9610 } else if (number === 2 || number === 3 || number === 4) { 9611 result += 'mjeseca'; 9612 } else { 9613 result += 'mjeseci'; 9614 } 9615 9616 return result; 9617 9618 case 'yy': 9619 if (number === 1) { 9620 result += 'godina'; 9621 } else if (number === 2 || number === 3 || number === 4) { 9622 result += 'godine'; 9623 } else { 9624 result += 'godina'; 9625 } 9626 9627 return result; 9628 } 9629 } 9630 9631 var hr = moment.defineLocale('hr', { 9632 months: { 9633 format: 'sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'), 9634 standalone: 'sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_') 9635 }, 9636 monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'), 9637 monthsParseExact: true, 9638 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'), 9639 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 9640 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 9641 weekdaysParseExact: true, 9642 longDateFormat: { 9643 LT: 'H:mm', 9644 LTS: 'H:mm:ss', 9645 L: 'DD.MM.YYYY', 9646 LL: 'Do MMMM YYYY', 9647 LLL: 'Do MMMM YYYY H:mm', 9648 LLLL: 'dddd, Do MMMM YYYY H:mm' 9649 }, 9650 calendar: { 9651 sameDay: '[danas u] LT', 9652 nextDay: '[sutra u] LT', 9653 nextWeek: function nextWeek() { 9654 switch (this.day()) { 9655 case 0: 9656 return '[u] [nedjelju] [u] LT'; 9657 9658 case 3: 9659 return '[u] [srijedu] [u] LT'; 9660 9661 case 6: 9662 return '[u] [subotu] [u] LT'; 9663 9664 case 1: 9665 case 2: 9666 case 4: 9667 case 5: 9668 return '[u] dddd [u] LT'; 9669 } 9670 }, 9671 lastDay: '[juÄer u] LT', 9672 lastWeek: function lastWeek() { 9673 switch (this.day()) { 9674 case 0: 9675 return '[proÅ¡lu] [nedjelju] [u] LT'; 9676 9677 case 3: 9678 return '[proÅ¡lu] [srijedu] [u] LT'; 9679 9680 case 6: 9681 return '[proÅ¡le] [subote] [u] LT'; 9682 9683 case 1: 9684 case 2: 9685 case 4: 9686 case 5: 9687 return '[proÅ¡li] dddd [u] LT'; 9688 } 9689 }, 9690 sameElse: 'L' 9691 }, 9692 relativeTime: { 9693 future: 'za %s', 9694 past: 'prije %s', 9695 s: 'par sekundi', 9696 ss: translate, 9697 m: translate, 9698 mm: translate, 9699 h: translate, 9700 hh: translate, 9701 d: 'dan', 9702 dd: translate, 9703 M: 'mjesec', 9704 MM: translate, 9705 y: 'godinu', 9706 yy: translate 9707 }, 9708 dayOfMonthOrdinalParse: /\d{1,2}\./, 9709 ordinal: '%d.', 9710 week: { 9711 dow: 1, 9712 // Monday is the first day of the week. 9713 doy: 7 // The week that contains Jan 7th is the first week of the year. 9714 9715 } 9716 }); 9717 return hr; 9718}); 9719 9720/***/ }), 9721
vendor: 5,237 bytes, lines 9722-9862
9722/***/ "../autobahn_client_core/node_modules/moment/locale/hu.js": 9723/*!****************************************************************!*\ 9724 !*** ../autobahn_client_core/node_modules/moment/locale/hu.js ***! 9725 \****************************************************************/ 9726/*! no static exports found */ 9727/***/ (function(module, exports, __webpack_require__) { 9728 9729var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 9730 9731//! moment.js locale configuration 9732//! locale : Hungarian [hu] 9733//! author : Adam Brunner : https://github.com/adambrunner 9734//! author : Peter Viszt : https://github.com/passatgt 9735; 9736 9737(function (global, factory) { 9738 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 9739 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 9740 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 9741 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 9742})(this, function (moment) { 9743 'use strict'; //! moment.js locale configuration 9744 9745 var weekEndings = 'vasárnap hétfÅn kedden szerdán csütörtökön pénteken szombaton'.split(' '); 9746 9747 function translate(number, withoutSuffix, key, isFuture) { 9748 var num = number; 9749 9750 switch (key) { 9751 case 's': 9752 return isFuture || withoutSuffix ? 'néhány másodperc' : 'néhány másodperce'; 9753 9754 case 'ss': 9755 return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce'; 9756 9757 case 'm': 9758 return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); 9759 9760 case 'mm': 9761 return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); 9762 9763 case 'h': 9764 return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); 9765 9766 case 'hh': 9767 return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); 9768 9769 case 'd': 9770 return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); 9771 9772 case 'dd': 9773 return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); 9774 9775 case 'M': 9776 return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); 9777 9778 case 'MM': 9779 return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); 9780 9781 case 'y': 9782 return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); 9783 9784 case 'yy': 9785 return num + (isFuture || withoutSuffix ? ' év' : ' éve'); 9786 } 9787 9788 return ''; 9789 } 9790 9791 function week(isFuture) { 9792 return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]'; 9793 } 9794 9795 var hu = moment.defineLocale('hu', { 9796 months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'), 9797 monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split('_'), 9798 monthsParseExact: true, 9799 weekdays: 'vasárnap_hétfÅ_kedd_szerda_csütörtök_péntek_szombat'.split('_'), 9800 weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), 9801 weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), 9802 longDateFormat: { 9803 LT: 'H:mm', 9804 LTS: 'H:mm:ss', 9805 L: 'YYYY.MM.DD.', 9806 LL: 'YYYY. MMMM D.', 9807 LLL: 'YYYY. MMMM D. H:mm', 9808 LLLL: 'YYYY. MMMM D., dddd H:mm' 9809 }, 9810 meridiemParse: /de|du/i, 9811 isPM: function isPM(input) { 9812 return input.charAt(1).toLowerCase() === 'u'; 9813 }, 9814 meridiem: function meridiem(hours, minutes, isLower) { 9815 if (hours < 12) { 9816 return isLower === true ? 'de' : 'DE'; 9817 } else { 9818 return isLower === true ? 'du' : 'DU'; 9819 } 9820 }, 9821 calendar: { 9822 sameDay: '[ma] LT[-kor]', 9823 nextDay: '[holnap] LT[-kor]', 9824 nextWeek: function nextWeek() { 9825 return week.call(this, true); 9826 }, 9827 lastDay: '[tegnap] LT[-kor]', 9828 lastWeek: function lastWeek() { 9829 return week.call(this, false); 9830 }, 9831 sameElse: 'L' 9832 }, 9833 relativeTime: { 9834 future: '%s múlva', 9835 past: '%s', 9836 s: translate, 9837 ss: translate, 9838 m: translate, 9839 mm: translate, 9840 h: translate, 9841 hh: translate, 9842 d: translate, 9843 dd: translate, 9844 M: translate, 9845 MM: translate, 9846 y: translate, 9847 yy: translate 9848 }, 9849 dayOfMonthOrdinalParse: /\d{1,2}\./, 9850 ordinal: '%d.', 9851 week: { 9852 dow: 1, 9853 // Monday is the first day of the week. 9854 doy: 4 // The week that contains Jan 4th is the first week of the year. 9855 9856 } 9857 }); 9858 return hu; 9859}); 9860 9861/***/ }), 9862
vendor: 4,715 bytes, lines 9863-9973
9863/***/ "../autobahn_client_core/node_modules/moment/locale/hy-am.js": 9864/*!*******************************************************************!*\ 9865 !*** ../autobahn_client_core/node_modules/moment/locale/hy-am.js ***! 9866 \*******************************************************************/ 9867/*! no static exports found */ 9868/***/ (function(module, exports, __webpack_require__) { 9869 9870var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 9871 9872//! moment.js locale configuration 9873//! locale : Armenian [hy-am] 9874//! author : Armendarabyan : https://github.com/armendarabyan 9875; 9876 9877(function (global, factory) { 9878 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 9879 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 9880 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 9881 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 9882})(this, function (moment) { 9883 'use strict'; //! moment.js locale configuration 9884 9885 var hyAm = moment.defineLocale('hy-am', { 9886 months: { 9887 format: 'Õ°Õ¸ÖÕ¶Õ¾Õ¡ÖÕ«_ÖÕ¥Õ¿ÖÕ¾Õ¡ÖÕ«_Õ´Õ¡ÖÕ¿Õ«_Õ¡ÕºÖÕ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸ÖÕ¶Õ«Õ½Õ«_Õ°Õ¸ÖÕ¬Õ«Õ½Õ«_Ö Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥ÖÕ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥ÖÕ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥ÖÕ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥ÖÕ«'.split('_'), 9888 standalone: 'Õ°Õ¸ÖÕ¶Õ¾Õ¡Ö_ÖÕ¥Õ¿ÖÕ¾Õ¡Ö_Õ´Õ¡ÖÕ¿_Õ¡ÕºÖÕ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸ÖÕ¶Õ«Õ½_Õ°Õ¸ÖÕ¬Õ«Õ½_Ö Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö'.split('_') 9889 }, 9890 monthsShort: 'Õ°Õ¶Õ¾_ÖÕ¿Ö_Õ´ÖÕ¿_Õ¡ÕºÖ_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿'.split('_'), 9891 weekdays: 'Õ¯Õ«ÖÕ¡Õ¯Õ«_Õ¥ÖÕ¯Õ¸ÖÕ·Õ¡Õ¢Õ©Õ«_Õ¥ÖÕ¥ÖÕ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸ÖÕ¥ÖÕ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸ÖÖÕ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©'.split('_'), 9892 weekdaysShort: 'Õ¯ÖÕ¯_Õ¥ÖÕ¯_Õ¥ÖÖ_Õ¹ÖÖ_Õ°Õ¶Õ£_Õ¸ÖÖÕ¢_Õ·Õ¢Õ©'.split('_'), 9893 weekdaysMin: 'Õ¯ÖÕ¯_Õ¥ÖÕ¯_Õ¥ÖÖ_Õ¹ÖÖ_Õ°Õ¶Õ£_Õ¸ÖÖÕ¢_Õ·Õ¢Õ©'.split('_'), 9894 longDateFormat: { 9895 LT: 'HH:mm', 9896 LTS: 'HH:mm:ss', 9897 L: 'DD.MM.YYYY', 9898 LL: 'D MMMM YYYY Õ©.', 9899 LLL: 'D MMMM YYYY Õ©., HH:mm', 9900 LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm' 9901 }, 9902 calendar: { 9903 sameDay: '[Õ¡ÕµÕ½Ö Ö] LT', 9904 nextDay: '[Õ¾Õ¡Õ²Õ¨] LT', 9905 lastDay: '[Õ¥ÖÕ¥Õ¯] LT', 9906 nextWeek: function nextWeek() { 9907 return 'dddd [Ö ÖÕ¨ ÕªÕ¡Õ´Õ¨] LT'; 9908 }, 9909 lastWeek: function lastWeek() { 9910 return '[Õ¡Õ¶ÖÕ¡Õ®] dddd [Ö ÖÕ¨ ÕªÕ¡Õ´Õ¨] LT'; 9911 }, 9912 sameElse: 'L' 9913 }, 9914 relativeTime: { 9915 future: '%s Õ°Õ¥Õ¿Õ¸', 9916 past: '%s Õ¡Õ¼Õ¡Õ»', 9917 s: 'Õ´Õ« ÖÕ¡Õ¶Õ« Õ¾Õ¡ÕµÖÕ¯ÕµÕ¡Õ¶', 9918 ss: '%d Õ¾Õ¡ÕµÖÕ¯ÕµÕ¡Õ¶', 9919 m: 'ÖÕ¸ÕºÕ¥', 9920 mm: '%d ÖÕ¸ÕºÕ¥', 9921 h: 'ÕªÕ¡Õ´', 9922 hh: '%d ÕªÕ¡Õ´', 9923 d: 'Ö Ö', 9924 dd: '%d Ö Ö', 9925 M: 'Õ¡Õ´Õ«Õ½', 9926 MM: '%d Õ¡Õ´Õ«Õ½', 9927 y: 'Õ¿Õ¡ÖÕ«', 9928 yy: '%d Õ¿Õ¡ÖÕ«' 9929 }, 9930 meridiemParse: /Õ£Õ«Õ·Õ¥ÖÕ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡|Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶/, 9931 isPM: function isPM(input) { 9932 return /^(ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡|Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(input); 9933 }, 9934 meridiem: function meridiem(hour) { 9935 if (hour < 4) { 9936 return 'Õ£Õ«Õ·Õ¥ÖÕ¾Õ¡'; 9937 } else if (hour < 12) { 9938 return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡'; 9939 } else if (hour < 17) { 9940 return 'ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡'; 9941 } else { 9942 return 'Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶'; 9943 } 9944 }, 9945 dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(Õ«Õ¶|ÖÕ¤)/, 9946 ordinal: function ordinal(number, period) { 9947 switch (period) { 9948 case 'DDD': 9949 case 'w': 9950 case 'W': 9951 case 'DDDo': 9952 if (number === 1) { 9953 return number + '-Õ«Õ¶'; 9954 } 9955 9956 return number + '-ÖÕ¤'; 9957 9958 default: 9959 return number; 9960 } 9961 }, 9962 week: { 9963 dow: 1, 9964 // Monday is the first day of the week. 9965 doy: 7 // The week that contains Jan 7th is the first week of the year. 9966 9967 } 9968 }); 9969 return hyAm; 9970}); 9971 9972/***/ }), 9973
vendor: 3,949 bytes, lines 9974-10071
9974/***/ "../autobahn_client_core/node_modules/moment/locale/id.js": 9975/*!****************************************************************!*\ 9976 !*** ../autobahn_client_core/node_modules/moment/locale/id.js ***! 9977 \****************************************************************/ 9978/*! no static exports found */ 9979/***/ (function(module, exports, __webpack_require__) { 9980 9981var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 9982 9983//! moment.js locale configuration 9984//! locale : Indonesian [id] 9985//! author : Mohammad Satrio Utomo : https://github.com/tyok 9986//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan 9987; 9988 9989(function (global, factory) { 9990 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 9991 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 9992 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 9993 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 9994})(this, function (moment) { 9995 'use strict'; //! moment.js locale configuration 9996 9997 var id = moment.defineLocale('id', { 9998 months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'), 9999 monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), 10000 weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), 10001 weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), 10002 weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), 10003 longDateFormat: { 10004 LT: 'HH.mm', 10005 LTS: 'HH.mm.ss', 10006 L: 'DD/MM/YYYY', 10007 LL: 'D MMMM YYYY', 10008 LLL: 'D MMMM YYYY [pukul] HH.mm', 10009 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm' 10010 }, 10011 meridiemParse: /pagi|siang|sore|malam/, 10012 meridiemHour: function meridiemHour(hour, meridiem) { 10013 if (hour === 12) { 10014 hour = 0; 10015 } 10016 10017 if (meridiem === 'pagi') { 10018 return hour; 10019 } else if (meridiem === 'siang') { 10020 return hour >= 11 ? hour : hour + 12; 10021 } else if (meridiem === 'sore' || meridiem === 'malam') { 10022 return hour + 12; 10023 } 10024 }, 10025 meridiem: function meridiem(hours, minutes, isLower) { 10026 if (hours < 11) { 10027 return 'pagi'; 10028 } else if (hours < 15) { 10029 return 'siang'; 10030 } else if (hours < 19) { 10031 return 'sore'; 10032 } else { 10033 return 'malam'; 10034 } 10035 }, 10036 calendar: { 10037 sameDay: '[Hari ini pukul] LT', 10038 nextDay: '[Besok pukul] LT', 10039 nextWeek: 'dddd [pukul] LT', 10040 lastDay: '[Kemarin pukul] LT', 10041 lastWeek: 'dddd [lalu pukul] LT', 10042 sameElse: 'L' 10043 }, 10044 relativeTime: { 10045 future: 'dalam %s', 10046 past: '%s yang lalu', 10047 s: 'beberapa detik', 10048 ss: '%d detik', 10049 m: 'semenit', 10050 mm: '%d menit', 10051 h: 'sejam', 10052 hh: '%d jam', 10053 d: 'sehari', 10054 dd: '%d hari', 10055 M: 'sebulan', 10056 MM: '%d bulan', 10057 y: 'setahun', 10058 yy: '%d tahun' 10059 }, 10060 week: { 10061 dow: 0, 10062 // Sunday is the first day of the week. 10063 doy: 6 // The week that contains Jan 6th is the first week of the year. 10064 10065 } 10066 }); 10067 return id; 10068}); 10069 10070/***/ }), 10071
vendor: 5,574 bytes, lines 10072-10240
10072/***/ "../autobahn_client_core/node_modules/moment/locale/is.js": 10073/*!****************************************************************!*\ 10074 !*** ../autobahn_client_core/node_modules/moment/locale/is.js ***! 10075 \****************************************************************/ 10076/*! no static exports found */ 10077/***/ (function(module, exports, __webpack_require__) { 10078 10079var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 10080 10081//! moment.js locale configuration 10082//! locale : Icelandic [is] 10083//! author : Hinrik Ãrn Sigurðsson : https://github.com/hinrik 10084; 10085 10086(function (global, factory) { 10087 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 10088 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 10089 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 10090 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 10091})(this, function (moment) { 10092 'use strict'; //! moment.js locale configuration 10093 10094 function plural(n) { 10095 if (n % 100 === 11) { 10096 return true; 10097 } else if (n % 10 === 1) { 10098 return false; 10099 } 10100 10101 return true; 10102 } 10103 10104 function translate(number, withoutSuffix, key, isFuture) { 10105 var result = number + ' '; 10106 10107 switch (key) { 10108 case 's': 10109 return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum'; 10110 10111 case 'ss': 10112 if (plural(number)) { 10113 return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum'); 10114 } 10115 10116 return result + 'sekúnda'; 10117 10118 case 'm': 10119 return withoutSuffix ? 'mÃnúta' : 'mÃnútu'; 10120 10121 case 'mm': 10122 if (plural(number)) { 10123 return result + (withoutSuffix || isFuture ? 'mÃnútur' : 'mÃnútum'); 10124 } else if (withoutSuffix) { 10125 return result + 'mÃnúta'; 10126 } 10127 10128 return result + 'mÃnútu'; 10129 10130 case 'hh': 10131 if (plural(number)) { 10132 return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum'); 10133 } 10134 10135 return result + 'klukkustund'; 10136 10137 case 'd': 10138 if (withoutSuffix) { 10139 return 'dagur'; 10140 } 10141 10142 return isFuture ? 'dag' : 'degi'; 10143 10144 case 'dd': 10145 if (plural(number)) { 10146 if (withoutSuffix) { 10147 return result + 'dagar'; 10148 } 10149 10150 return result + (isFuture ? 'daga' : 'dögum'); 10151 } else if (withoutSuffix) { 10152 return result + 'dagur'; 10153 } 10154 10155 return result + (isFuture ? 'dag' : 'degi'); 10156 10157 case 'M': 10158 if (withoutSuffix) { 10159 return 'mánuður'; 10160 } 10161 10162 return isFuture ? 'mánuð' : 'mánuði'; 10163 10164 case 'MM': 10165 if (plural(number)) { 10166 if (withoutSuffix) { 10167 return result + 'mánuðir'; 10168 } 10169 10170 return result + (isFuture ? 'mánuði' : 'mánuðum'); 10171 } else if (withoutSuffix) { 10172 return result + 'mánuður'; 10173 } 10174 10175 return result + (isFuture ? 'mánuð' : 'mánuði'); 10176 10177 case 'y': 10178 return withoutSuffix || isFuture ? 'ár' : 'ári'; 10179 10180 case 'yy': 10181 if (plural(number)) { 10182 return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); 10183 } 10184 10185 return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); 10186 } 10187 } 10188 10189 var is = moment.defineLocale('is', { 10190 months: 'janúar_febrúar_mars_aprÃl_maÃ_júnÃ_júlÃ_ágúst_september_október_nóvember_desember'.split('_'), 10191 monthsShort: 'jan_feb_mar_apr_maÃ_jún_júl_ágú_sep_okt_nóv_des'.split('_'), 10192 weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'), 10193 weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), 10194 weekdaysMin: 'Su_Má_Ãr_Mi_Fi_Fö_La'.split('_'), 10195 longDateFormat: { 10196 LT: 'H:mm', 10197 LTS: 'H:mm:ss', 10198 L: 'DD.MM.YYYY', 10199 LL: 'D. MMMM YYYY', 10200 LLL: 'D. MMMM YYYY [kl.] H:mm', 10201 LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm' 10202 }, 10203 calendar: { 10204 sameDay: '[à dag kl.] LT', 10205 nextDay: '[á morgun kl.] LT', 10206 nextWeek: 'dddd [kl.] LT', 10207 lastDay: '[à gær kl.] LT', 10208 lastWeek: '[sÃðasta] dddd [kl.] LT', 10209 sameElse: 'L' 10210 }, 10211 relativeTime: { 10212 future: 'eftir %s', 10213 past: 'fyrir %s sÃðan', 10214 s: translate, 10215 ss: translate, 10216 m: translate, 10217 mm: translate, 10218 h: 'klukkustund', 10219 hh: translate, 10220 d: translate, 10221 dd: translate, 10222 M: translate, 10223 MM: translate, 10224 y: translate, 10225 yy: translate 10226 }, 10227 dayOfMonthOrdinalParse: /\d{1,2}\./, 10228 ordinal: '%d.', 10229 week: { 10230 dow: 1, 10231 // Monday is the first day of the week. 10232 doy: 4 // The week that contains Jan 4th is the first week of the year. 10233 10234 } 10235 }); 10236 return is; 10237}); 10238 10239/***/ }), 10240
vendor: 3,521 bytes, lines 10241-10324
10241/***/ "../autobahn_client_core/node_modules/moment/locale/it-ch.js": 10242/*!*******************************************************************!*\ 10243 !*** ../autobahn_client_core/node_modules/moment/locale/it-ch.js ***! 10244 \*******************************************************************/ 10245/*! no static exports found */ 10246/***/ (function(module, exports, __webpack_require__) { 10247 10248var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 10249 10250//! moment.js locale configuration 10251//! locale : Italian (Switzerland) [it-ch] 10252//! author : xfh : https://github.com/xfh 10253; 10254 10255(function (global, factory) { 10256 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 10257 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 10258 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 10259 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 10260})(this, function (moment) { 10261 'use strict'; //! moment.js locale configuration 10262 10263 var itCh = moment.defineLocale('it-ch', { 10264 months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'), 10265 monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), 10266 weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'), 10267 weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), 10268 weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), 10269 longDateFormat: { 10270 LT: 'HH:mm', 10271 LTS: 'HH:mm:ss', 10272 L: 'DD.MM.YYYY', 10273 LL: 'D MMMM YYYY', 10274 LLL: 'D MMMM YYYY HH:mm', 10275 LLLL: 'dddd D MMMM YYYY HH:mm' 10276 }, 10277 calendar: { 10278 sameDay: '[Oggi alle] LT', 10279 nextDay: '[Domani alle] LT', 10280 nextWeek: 'dddd [alle] LT', 10281 lastDay: '[Ieri alle] LT', 10282 lastWeek: function lastWeek() { 10283 switch (this.day()) { 10284 case 0: 10285 return '[la scorsa] dddd [alle] LT'; 10286 10287 default: 10288 return '[lo scorso] dddd [alle] LT'; 10289 } 10290 }, 10291 sameElse: 'L' 10292 }, 10293 relativeTime: { 10294 future: function future(s) { 10295 return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; 10296 }, 10297 past: '%s fa', 10298 s: 'alcuni secondi', 10299 ss: '%d secondi', 10300 m: 'un minuto', 10301 mm: '%d minuti', 10302 h: "un'ora", 10303 hh: '%d ore', 10304 d: 'un giorno', 10305 dd: '%d giorni', 10306 M: 'un mese', 10307 MM: '%d mesi', 10308 y: 'un anno', 10309 yy: '%d anni' 10310 }, 10311 dayOfMonthOrdinalParse: /\d{1,2}º/, 10312 ordinal: '%dº', 10313 week: { 10314 dow: 1, 10315 // Monday is the first day of the week. 10316 doy: 4 // The week that contains Jan 4th is the first week of the year. 10317 10318 } 10319 }); 10320 return itCh; 10321}); 10322 10323/***/ }), 10324
vendor: 4,144 bytes, lines 10325-10418
10325/***/ "../autobahn_client_core/node_modules/moment/locale/it.js": 10326/*!****************************************************************!*\ 10327 !*** ../autobahn_client_core/node_modules/moment/locale/it.js ***! 10328 \****************************************************************/ 10329/*! no static exports found */ 10330/***/ (function(module, exports, __webpack_require__) { 10331 10332var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 10333 10334//! moment.js locale configuration 10335//! locale : Italian [it] 10336//! author : Lorenzo : https://github.com/aliem 10337//! author: Mattia Larentis: https://github.com/nostalgiaz 10338//! author: Marco : https://github.com/Manfre98 10339; 10340 10341(function (global, factory) { 10342 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 10343 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 10344 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 10345 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 10346})(this, function (moment) { 10347 'use strict'; //! moment.js locale configuration 10348 10349 var it = moment.defineLocale('it', { 10350 months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'), 10351 monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), 10352 weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'), 10353 weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), 10354 weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), 10355 longDateFormat: { 10356 LT: 'HH:mm', 10357 LTS: 'HH:mm:ss', 10358 L: 'DD/MM/YYYY', 10359 LL: 'D MMMM YYYY', 10360 LLL: 'D MMMM YYYY HH:mm', 10361 LLLL: 'dddd D MMMM YYYY HH:mm' 10362 }, 10363 calendar: { 10364 sameDay: function sameDay() { 10365 return '[Oggi a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; 10366 }, 10367 nextDay: function nextDay() { 10368 return '[Domani a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; 10369 }, 10370 nextWeek: function nextWeek() { 10371 return 'dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; 10372 }, 10373 lastDay: function lastDay() { 10374 return '[Ieri a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; 10375 }, 10376 lastWeek: function lastWeek() { 10377 switch (this.day()) { 10378 case 0: 10379 return '[La scorsa] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; 10380 10381 default: 10382 return '[Lo scorso] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; 10383 } 10384 }, 10385 sameElse: 'L' 10386 }, 10387 relativeTime: { 10388 future: 'tra %s', 10389 past: '%s fa', 10390 s: 'alcuni secondi', 10391 ss: '%d secondi', 10392 m: 'un minuto', 10393 mm: '%d minuti', 10394 h: "un'ora", 10395 hh: '%d ore', 10396 d: 'un giorno', 10397 dd: '%d giorni', 10398 w: 'una settimana', 10399 ww: '%d settimane', 10400 M: 'un mese', 10401 MM: '%d mesi', 10402 y: 'un anno', 10403 yy: '%d anni' 10404 }, 10405 dayOfMonthOrdinalParse: /\d{1,2}º/, 10406 ordinal: '%dº', 10407 week: { 10408 dow: 1, 10409 // Monday is the first day of the week. 10410 doy: 4 // The week that contains Jan 4th is the first week of the year. 10411 10412 } 10413 }); 10414 return it; 10415}); 10416 10417/***/ }), 10418
vendor: 5,152 bytes, lines 10419-10579
10419/***/ "../autobahn_client_core/node_modules/moment/locale/ja.js": 10420/*!****************************************************************!*\ 10421 !*** ../autobahn_client_core/node_modules/moment/locale/ja.js ***! 10422 \****************************************************************/ 10423/*! no static exports found */ 10424/***/ (function(module, exports, __webpack_require__) { 10425 10426var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 10427 10428//! moment.js locale configuration 10429//! locale : Japanese [ja] 10430//! author : LI Long : https://github.com/baryon 10431; 10432 10433(function (global, factory) { 10434 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 10435 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 10436 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 10437 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 10438})(this, function (moment) { 10439 'use strict'; //! moment.js locale configuration 10440 10441 var ja = moment.defineLocale('ja', { 10442 eras: [{ 10443 since: '2019-05-01', 10444 offset: 1, 10445 name: '令å', 10446 narrow: 'ã¿', 10447 abbr: 'R' 10448 }, { 10449 since: '1989-01-08', 10450 until: '2019-04-30', 10451 offset: 1, 10452 name: 'å¹³æ', 10453 narrow: 'ã»', 10454 abbr: 'H' 10455 }, { 10456 since: '1926-12-25', 10457 until: '1989-01-07', 10458 offset: 1, 10459 name: 'æå', 10460 narrow: 'ã¼', 10461 abbr: 'S' 10462 }, { 10463 since: '1912-07-30', 10464 until: '1926-12-24', 10465 offset: 1, 10466 name: '大æ£', 10467 narrow: 'ã½', 10468 abbr: 'T' 10469 }, { 10470 since: '1873-01-01', 10471 until: '1912-07-29', 10472 offset: 6, 10473 name: 'ææ²»', 10474 narrow: 'ã¾', 10475 abbr: 'M' 10476 }, { 10477 since: '0001-01-01', 10478 until: '1873-12-31', 10479 offset: 1, 10480 name: '西æ¦', 10481 narrow: 'AD', 10482 abbr: 'AD' 10483 }, { 10484 since: '0000-12-31', 10485 until: -Infinity, 10486 offset: 1, 10487 name: 'ç´å å', 10488 narrow: 'BC', 10489 abbr: 'BC' 10490 }], 10491 eraYearOrdinalRegex: /(å |\d+)å¹´/, 10492 eraYearOrdinalParse: function eraYearOrdinalParse(input, match) { 10493 return match[1] === 'å ' ? 1 : parseInt(match[1] || input, 10); 10494 }, 10495 months: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'), 10496 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'), 10497 weekdays: 'æ¥ææ¥_æææ¥_ç«ææ¥_æ°´ææ¥_æ¨ææ¥_éææ¥_åææ¥'.split('_'), 10498 weekdaysShort: 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'), 10499 weekdaysMin: 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'), 10500 longDateFormat: { 10501 LT: 'HH:mm', 10502 LTS: 'HH:mm:ss', 10503 L: 'YYYY/MM/DD', 10504 LL: 'YYYYå¹´MæDæ¥', 10505 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 10506 LLLL: 'YYYYå¹´MæDæ¥ dddd HH:mm', 10507 l: 'YYYY/MM/DD', 10508 ll: 'YYYYå¹´MæDæ¥', 10509 lll: 'YYYYå¹´MæDæ¥ HH:mm', 10510 llll: 'YYYYå¹´MæDæ¥(ddd) HH:mm' 10511 }, 10512 meridiemParse: /åå|åå¾/i, 10513 isPM: function isPM(input) { 10514 return input === 'åå¾'; 10515 }, 10516 meridiem: function meridiem(hour, minute, isLower) { 10517 if (hour < 12) { 10518 return 'åå'; 10519 } else { 10520 return 'åå¾'; 10521 } 10522 }, 10523 calendar: { 10524 sameDay: '[仿¥] LT', 10525 nextDay: '[ææ¥] LT', 10526 nextWeek: function nextWeek(now) { 10527 if (now.week() !== this.week()) { 10528 return '[æ¥é±]dddd LT'; 10529 } else { 10530 return 'dddd LT'; 10531 } 10532 }, 10533 lastDay: '[æ¨æ¥] LT', 10534 lastWeek: function lastWeek(now) { 10535 if (this.week() !== now.week()) { 10536 return '[å é±]dddd LT'; 10537 } else { 10538 return 'dddd LT'; 10539 } 10540 }, 10541 sameElse: 'L' 10542 }, 10543 dayOfMonthOrdinalParse: /\d{1,2}æ¥/, 10544 ordinal: function ordinal(number, period) { 10545 switch (period) { 10546 case 'y': 10547 return number === 1 ? 'å å¹´' : number + 'å¹´'; 10548 10549 case 'd': 10550 case 'D': 10551 case 'DDD': 10552 return number + 'æ¥'; 10553 10554 default: 10555 return number; 10556 } 10557 }, 10558 relativeTime: { 10559 future: '%så¾', 10560 past: '%så', 10561 s: 'æ°ç§', 10562 ss: '%dç§', 10563 m: '1å', 10564 mm: '%då', 10565 h: '1æé', 10566 hh: '%dæé', 10567 d: '1æ¥', 10568 dd: '%dæ¥', 10569 M: '1ã¶æ', 10570 MM: '%dã¶æ', 10571 y: '1å¹´', 10572 yy: '%då¹´' 10573 } 10574 }); 10575 return ja; 10576}); 10577 10578/***/ }), 10579
vendor: 3,958 bytes, lines 10580-10677
10580/***/ "../autobahn_client_core/node_modules/moment/locale/jv.js": 10581/*!****************************************************************!*\ 10582 !*** ../autobahn_client_core/node_modules/moment/locale/jv.js ***! 10583 \****************************************************************/ 10584/*! no static exports found */ 10585/***/ (function(module, exports, __webpack_require__) { 10586 10587var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 10588 10589//! moment.js locale configuration 10590//! locale : Javanese [jv] 10591//! author : Rony Lantip : https://github.com/lantip 10592//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa 10593; 10594 10595(function (global, factory) { 10596 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 10597 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 10598 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 10599 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 10600})(this, function (moment) { 10601 'use strict'; //! moment.js locale configuration 10602 10603 var jv = moment.defineLocale('jv', { 10604 months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'), 10605 monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), 10606 weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), 10607 weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), 10608 weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), 10609 longDateFormat: { 10610 LT: 'HH.mm', 10611 LTS: 'HH.mm.ss', 10612 L: 'DD/MM/YYYY', 10613 LL: 'D MMMM YYYY', 10614 LLL: 'D MMMM YYYY [pukul] HH.mm', 10615 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm' 10616 }, 10617 meridiemParse: /enjing|siyang|sonten|ndalu/, 10618 meridiemHour: function meridiemHour(hour, meridiem) { 10619 if (hour === 12) { 10620 hour = 0; 10621 } 10622 10623 if (meridiem === 'enjing') { 10624 return hour; 10625 } else if (meridiem === 'siyang') { 10626 return hour >= 11 ? hour : hour + 12; 10627 } else if (meridiem === 'sonten' || meridiem === 'ndalu') { 10628 return hour + 12; 10629 } 10630 }, 10631 meridiem: function meridiem(hours, minutes, isLower) { 10632 if (hours < 11) { 10633 return 'enjing'; 10634 } else if (hours < 15) { 10635 return 'siyang'; 10636 } else if (hours < 19) { 10637 return 'sonten'; 10638 } else { 10639 return 'ndalu'; 10640 } 10641 }, 10642 calendar: { 10643 sameDay: '[Dinten puniko pukul] LT', 10644 nextDay: '[Mbenjang pukul] LT', 10645 nextWeek: 'dddd [pukul] LT', 10646 lastDay: '[Kala wingi pukul] LT', 10647 lastWeek: 'dddd [kepengker pukul] LT', 10648 sameElse: 'L' 10649 }, 10650 relativeTime: { 10651 future: 'wonten ing %s', 10652 past: '%s ingkang kepengker', 10653 s: 'sawetawis detik', 10654 ss: '%d detik', 10655 m: 'setunggal menit', 10656 mm: '%d menit', 10657 h: 'setunggal jam', 10658 hh: '%d jam', 10659 d: 'sedinten', 10660 dd: '%d dinten', 10661 M: 'sewulan', 10662 MM: '%d wulan', 10663 y: 'setaun', 10664 yy: '%d taun' 10665 }, 10666 week: { 10667 dow: 1, 10668 // Monday is the first day of the week. 10669 doy: 7 // The week that contains Jan 7th is the first week of the year. 10670 10671 } 10672 }); 10673 return jv; 10674}); 10675 10676/***/ }), 10677
vendor: 4,877 bytes, lines 10678-10781
10678/***/ "../autobahn_client_core/node_modules/moment/locale/ka.js": 10679/*!****************************************************************!*\ 10680 !*** ../autobahn_client_core/node_modules/moment/locale/ka.js ***! 10681 \****************************************************************/ 10682/*! no static exports found */ 10683/***/ (function(module, exports, __webpack_require__) { 10684 10685var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 10686 10687//! moment.js locale configuration 10688//! locale : Georgian [ka] 10689//! author : Irakli Janiashvili : https://github.com/IrakliJani 10690; 10691 10692(function (global, factory) { 10693 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 10694 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 10695 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 10696 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 10697})(this, function (moment) { 10698 'use strict'; //! moment.js locale configuration 10699 10700 var ka = moment.defineLocale('ka', { 10701 months: 'áááááá á_ááááá áááá_ááá á¢á_ááá ááá_áááá¡á_ááááá¡á_ááááá¡á_ááááá¡á¢á_á¡áá¥á¢ááááá á_áá¥á¢ááááá á_ááááááá á_áááááááá á'.split('_'), 10702 monthsShort: 'ááá_ááá_ááá _ááá _ááá_ááá_ááá_ááá_á¡áá¥_áá¥á¢_ááá_ááá'.split('_'), 10703 weekdays: { 10704 standalone: 'áááá á_áá á¨ááááá_á¡ááá¨ááááá_ááá®á¨ááááá_á®á£áá¨ááááá_ááá áá¡áááá_á¨ááááá'.split('_'), 10705 format: 'áááá áá¡_áá á¨ááááá¡_á¡ááá¨ááááá¡_ááá®á¨ááááá¡_á®á£áá¨ááááá¡_ááá áá¡áááá¡_á¨ááááá¡'.split('_'), 10706 isFormat: /(á¬ááá|á¨ááááá)/ 10707 }, 10708 weekdaysShort: 'ááá_áá á¨_á¡áá_ááá®_á®á£á_ááá _á¨áá'.split('_'), 10709 weekdaysMin: 'áá_áá _á¡á_áá_á®á£_áá_á¨á'.split('_'), 10710 longDateFormat: { 10711 LT: 'HH:mm', 10712 LTS: 'HH:mm:ss', 10713 L: 'DD/MM/YYYY', 10714 LL: 'D MMMM YYYY', 10715 LLL: 'D MMMM YYYY HH:mm', 10716 LLLL: 'dddd, D MMMM YYYY HH:mm' 10717 }, 10718 calendar: { 10719 sameDay: '[áá¦áá¡] LT[-áá]', 10720 nextDay: '[á®ááá] LT[-áá]', 10721 lastDay: '[áá£á¨áá] LT[-áá]', 10722 nextWeek: '[á¨ááááá] dddd LT[-áá]', 10723 lastWeek: '[á¬ááá] dddd LT-áá', 10724 sameElse: 'L' 10725 }, 10726 relativeTime: { 10727 future: function future(s) { 10728 return s.replace(/(á¬áá|á¬á£á|á¡ááá|á¬áá|áá¦|áá)(á|á)/, function ($0, $1, $2) { 10729 return $2 === 'á' ? $1 + 'á¨á' : $1 + $2 + 'á¨á'; 10730 }); 10731 }, 10732 past: function past(s) { 10733 if (/(á¬ááá|á¬á£áá|á¡áááá|áá¦á|ááá)/.test(s)) { 10734 return s.replace(/(á|á)$/, 'áá¡ á¬áá'); 10735 } 10736 10737 if (/á¬ááá/.test(s)) { 10738 return s.replace(/á¬ááá$/, 'á¬ááá¡ á¬áá'); 10739 } 10740 10741 return s; 10742 }, 10743 s: 'á áááááááá á¬ááá', 10744 ss: '%d á¬ááá', 10745 m: 'á¬á£áá', 10746 mm: '%d á¬á£áá', 10747 h: 'á¡áááá', 10748 hh: '%d á¡áááá', 10749 d: 'áá¦á', 10750 dd: '%d áá¦á', 10751 M: 'ááá', 10752 MM: '%d ááá', 10753 y: 'á¬ááá', 10754 yy: '%d á¬ááá' 10755 }, 10756 dayOfMonthOrdinalParse: /0|1-áá|áá-\d{1,2}|\d{1,2}-á/, 10757 ordinal: function ordinal(number) { 10758 if (number === 0) { 10759 return number; 10760 } 10761 10762 if (number === 1) { 10763 return number + '-áá'; 10764 } 10765 10766 if (number < 20 || number <= 100 && number % 20 === 0 || number % 100 === 0) { 10767 return 'áá-' + number; 10768 } 10769 10770 return number + '-á'; 10771 }, 10772 week: { 10773 dow: 1, 10774 doy: 7 10775 } 10776 }); 10777 return ka; 10778}); 10779 10780/***/ }), 10781
vendor: 4,091 bytes, lines 10782-10881
10782/***/ "../autobahn_client_core/node_modules/moment/locale/kk.js": 10783/*!****************************************************************!*\ 10784 !*** ../autobahn_client_core/node_modules/moment/locale/kk.js ***! 10785 \****************************************************************/ 10786/*! no static exports found */ 10787/***/ (function(module, exports, __webpack_require__) { 10788 10789var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 10790 10791//! moment.js locale configuration 10792//! locale : Kazakh [kk] 10793//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan 10794; 10795 10796(function (global, factory) { 10797 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 10798 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 10799 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 10800 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 10801})(this, function (moment) { 10802 'use strict'; //! moment.js locale configuration 10803 10804 var suffixes = { 10805 0: '-ÑÑ', 10806 1: '-ÑÑ', 10807 2: '-ÑÑ', 10808 3: '-ÑÑ', 10809 4: '-ÑÑ', 10810 5: '-ÑÑ', 10811 6: '-ÑÑ', 10812 7: '-ÑÑ', 10813 8: '-ÑÑ', 10814 9: '-ÑÑ', 10815 10: '-ÑÑ', 10816 20: '-ÑÑ', 10817 30: '-ÑÑ', 10818 40: '-ÑÑ', 10819 50: '-ÑÑ', 10820 60: '-ÑÑ', 10821 70: '-ÑÑ', 10822 80: '-ÑÑ', 10823 90: '-ÑÑ', 10824 100: '-ÑÑ' 10825 }; 10826 var kk = moment.defineLocale('kk', { 10827 months: 'ÒаңÑаÑ_аÒпан_наÑÑÑз_ÑÓÑÑÑ_мамÑÑ_маÑÑÑм_ÑÑлде_ÑамÑз_ÒÑÑкүйек_Òазан_ÒаÑаÑа_желÑоÒÑан'.split('_'), 10828 monthsShort: 'Òаң_аÒп_наÑ_ÑÓÑ_мам_маÑ_ÑÑл_Ñам_ÒÑÑ_Òаз_ÒаÑ_жел'.split('_'), 10829 weekdays: 'жекÑенбÑ_дүйÑенбÑ_ÑейÑенбÑ_ÑÓÑÑенбÑ_бейÑенбÑ_жұма_ÑенбÑ'.split('_'), 10830 weekdaysShort: 'жек_дүй_Ñей_ÑÓÑ_бей_жұм_Ñен'.split('_'), 10831 weekdaysMin: 'жк_дй_Ñй_ÑÑ_бй_жм_Ñн'.split('_'), 10832 longDateFormat: { 10833 LT: 'HH:mm', 10834 LTS: 'HH:mm:ss', 10835 L: 'DD.MM.YYYY', 10836 LL: 'D MMMM YYYY', 10837 LLL: 'D MMMM YYYY HH:mm', 10838 LLLL: 'dddd, D MMMM YYYY HH:mm' 10839 }, 10840 calendar: { 10841 sameDay: '[ÐүгÑн ÑаÒаÑ] LT', 10842 nextDay: '[ÐÑÑең ÑаÒаÑ] LT', 10843 nextWeek: 'dddd [ÑаÒаÑ] LT', 10844 lastDay: '[ÐеÑе ÑаÒаÑ] LT', 10845 lastWeek: '[Ó¨Ñкен апÑанÑÒ£] dddd [ÑаÒаÑ] LT', 10846 sameElse: 'L' 10847 }, 10848 relativeTime: { 10849 future: '%s ÑÑÑнде', 10850 past: '%s бұÑÑн', 10851 s: 'бÑÑнеÑе ÑекÑнд', 10852 ss: '%d ÑекÑнд', 10853 m: 'бÑÑ Ð¼Ð¸Ð½ÑÑ', 10854 mm: '%d минÑÑ', 10855 h: 'бÑÑ ÑаÒаÑ', 10856 hh: '%d ÑаÒаÑ', 10857 d: 'бÑÑ ÐºÒ¯Ð½', 10858 dd: '%d күн', 10859 M: 'бÑÑ Ð°Ð¹', 10860 MM: '%d ай', 10861 y: 'бÑÑ Ð¶Ñл', 10862 yy: '%d жÑл' 10863 }, 10864 dayOfMonthOrdinalParse: /\d{1,2}-(ÑÑ|ÑÑ)/, 10865 ordinal: function ordinal(number) { 10866 var a = number % 10, 10867 b = number >= 100 ? 100 : null; 10868 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 10869 }, 10870 week: { 10871 dow: 1, 10872 // Monday is the first day of the week. 10873 doy: 7 // The week that contains Jan 7th is the first week of the year. 10874 10875 } 10876 }); 10877 return kk; 10878}); 10879 10880/***/ }), 10881
vendor: 4,854 bytes, lines 10882-11001
10882/***/ "../autobahn_client_core/node_modules/moment/locale/km.js": 10883/*!****************************************************************!*\ 10884 !*** ../autobahn_client_core/node_modules/moment/locale/km.js ***! 10885 \****************************************************************/ 10886/*! no static exports found */ 10887/***/ (function(module, exports, __webpack_require__) { 10888 10889var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 10890 10891//! moment.js locale configuration 10892//! locale : Cambodian [km] 10893//! author : Kruy Vanna : https://github.com/kruyvanna 10894; 10895 10896(function (global, factory) { 10897 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 10898 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 10899 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 10900 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 10901})(this, function (moment) { 10902 'use strict'; //! moment.js locale configuration 10903 10904 var symbolMap = { 10905 1: 'á¡', 10906 2: 'á¢', 10907 3: 'á£', 10908 4: 'á¤', 10909 5: 'á¥', 10910 6: 'á¦', 10911 7: 'á§', 10912 8: 'á¨', 10913 9: 'á©', 10914 0: 'á ' 10915 }, 10916 numberMap = { 10917 'á¡': '1', 10918 'á¢': '2', 10919 'á£': '3', 10920 'á¤': '4', 10921 'á¥': '5', 10922 'á¦': '6', 10923 'á§': '7', 10924 'á¨': '8', 10925 'á©': '9', 10926 'á ': '0' 10927 }; 10928 var km = moment.defineLocale('km', { 10929 months: 'áááá¶_áá»áááá_áá¸áá¶_áááá¶_á§ááá¶_áá·áá»áá¶_áááááá¶_áá¸á á¶_ááááá¶_áá»áá¶_áá·á ááá·áá¶_áááá¼'.split('_'), 10930 monthsShort: 'áááá¶_áá»áááá_áá¸áá¶_áááá¶_á§ááá¶_áá·áá»áá¶_áááááá¶_áá¸á á¶_ááááá¶_áá»áá¶_áá·á ááá·áá¶_áááá¼'.split('_'), 10931 weekdays: 'á¢á¶áá·ááá_á áááá_á¢áááá¶á_áá»á_áááá ááááá·á_áá»ááá_áá áá'.split('_'), 10932 weekdaysShort: 'á¢á¶_á _á¢_á_ááá_áá»_á'.split('_'), 10933 weekdaysMin: 'á¢á¶_á _á¢_á_ááá_áá»_á'.split('_'), 10934 weekdaysParseExact: true, 10935 longDateFormat: { 10936 LT: 'HH:mm', 10937 LTS: 'HH:mm:ss', 10938 L: 'DD/MM/YYYY', 10939 LL: 'D MMMM YYYY', 10940 LLL: 'D MMMM YYYY HH:mm', 10941 LLLL: 'dddd, D MMMM YYYY HH:mm' 10942 }, 10943 meridiemParse: /áááá¹á|áááá¶á /, 10944 isPM: function isPM(input) { 10945 return input === 'áááá¶á '; 10946 }, 10947 meridiem: function meridiem(hour, minute, isLower) { 10948 if (hour < 12) { 10949 return 'áááá¹á'; 10950 } else { 10951 return 'áááá¶á '; 10952 } 10953 }, 10954 calendar: { 10955 sameDay: '[ááááááá áááá] LT', 10956 nextDay: '[ááá¢áá áááá] LT', 10957 nextWeek: 'dddd [áááá] LT', 10958 lastDay: '[áááá·ááá·á áááá] LT', 10959 lastWeek: 'dddd [ááááá¶á ááá»á] [áááá] LT', 10960 sameElse: 'L' 10961 }, 10962 relativeTime: { 10963 future: '%sááá', 10964 past: '%sáá»á', 10965 s: 'ááá»áááá¶ááá·áá¶áá¸', 10966 ss: '%d áá·áá¶áá¸', 10967 m: 'áá½ááá¶áá¸', 10968 mm: '%d áá¶áá¸', 10969 h: 'áá½ááááá', 10970 hh: '%d áááá', 10971 d: 'áá½ááááá', 10972 dd: '%d áááá', 10973 M: 'áá½ááá', 10974 MM: '%d áá', 10975 y: 'áá½ááááá¶á', 10976 yy: '%d áááá¶á' 10977 }, 10978 dayOfMonthOrdinalParse: /áá¸\d{1,2}/, 10979 ordinal: 'áá¸%d', 10980 preparse: function preparse(string) { 10981 return string.replace(/[á¡á¢á£á¤á¥á¦á§á¨á©á ]/g, function (match) { 10982 return numberMap[match]; 10983 }); 10984 }, 10985 postformat: function postformat(string) { 10986 return string.replace(/\d/g, function (match) { 10987 return symbolMap[match]; 10988 }); 10989 }, 10990 week: { 10991 dow: 1, 10992 // Monday is the first day of the week. 10993 doy: 4 // The week that contains Jan 4th is the first week of the year. 10994 10995 } 10996 }); 10997 return km; 10998}); 10999 11000/***/ }), 11001
vendor: 5,694 bytes, lines 11002-11141
11002/***/ "../autobahn_client_core/node_modules/moment/locale/kn.js": 11003/*!****************************************************************!*\ 11004 !*** ../autobahn_client_core/node_modules/moment/locale/kn.js ***! 11005 \****************************************************************/ 11006/*! no static exports found */ 11007/***/ (function(module, exports, __webpack_require__) { 11008 11009var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 11010 11011//! moment.js locale configuration 11012//! locale : Kannada [kn] 11013//! author : Rajeev Naik : https://github.com/rajeevnaikte 11014; 11015 11016(function (global, factory) { 11017 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 11018 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 11019 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 11020 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 11021})(this, function (moment) { 11022 'use strict'; //! moment.js locale configuration 11023 11024 var symbolMap = { 11025 1: 'à³§', 11026 2: '೨', 11027 3: '೩', 11028 4: '೪', 11029 5: '೫', 11030 6: '೬', 11031 7: 'à³', 11032 8: 'à³®', 11033 9: '೯', 11034 0: '೦' 11035 }, 11036 numberMap = { 11037 'à³§': '1', 11038 '೨': '2', 11039 '೩': '3', 11040 '೪': '4', 11041 '೫': '5', 11042 '೬': '6', 11043 'à³': '7', 11044 'à³®': '8', 11045 '೯': '9', 11046 '೦': '0' 11047 }; 11048 var kn = moment.defineLocale('kn', { 11049 months: 'à²à²¨à²µà²°à²¿_ಫà³à²¬à³à²°à²µà²°à²¿_ಮಾರà³à²à³_à²à²ªà³à²°à²¿à²²à³_ಮà³à³_à²à³à²¨à³_à²à³à²²à³à³_à²à²à²¸à³à²à³_ಸà³à²ªà³à²à³à²à²¬à²°à³_ಠà²à³à²à³à³à³à²¬à²°à³_ನವà³à²à²¬à²°à³_ಡಿಸà³à²à²¬à²°à³'.split('_'), 11050 monthsShort: 'à²à²¨_ಫà³à²¬à³à²°_ಮಾರà³à²à³_à²à²ªà³à²°à²¿à²²à³_ಮà³à³_à²à³à²¨à³_à²à³à²²à³à³_à²à²à²¸à³à²à³_ಸà³à²ªà³à²à³à²_ಠà²à³à²à³à³à³_ನವà³à²_ಡಿಸà³à²'.split('_'), 11051 monthsParseExact: true, 11052 weekdays: 'à²à²¾à²¨à³à²µà²¾à²°_ಸà³à³à³à²®à²µà²¾à²°_ಮà²à²à²³à²µà²¾à²°_ಬà³à²§à²µà²¾à²°_à²à³à²°à³à²µà²¾à²°_ಶà³à²à³à²°à²µà²¾à²°_ಶನಿವಾರ'.split('_'), 11053 weekdaysShort: 'à²à²¾à²¨à³_ಸà³à³à³à²®_ಮà²à²à²³_ಬà³à²§_à²à³à²°à³_ಶà³à²à³à²°_ಶನಿ'.split('_'), 11054 weekdaysMin: 'à²à²¾_ಸà³à³à³_ಮà²_ಬà³_à²à³_ಶà³_ಶ'.split('_'), 11055 longDateFormat: { 11056 LT: 'A h:mm', 11057 LTS: 'A h:mm:ss', 11058 L: 'DD/MM/YYYY', 11059 LL: 'D MMMM YYYY', 11060 LLL: 'D MMMM YYYY, A h:mm', 11061 LLLL: 'dddd, D MMMM YYYY, A h:mm' 11062 }, 11063 calendar: { 11064 sameDay: '[à²à²à²¦à³] LT', 11065 nextDay: '[ನಾಳà³] LT', 11066 nextWeek: 'dddd, LT', 11067 lastDay: '[ನಿನà³à²¨à³] LT', 11068 lastWeek: '[à²à³à³à²¨à³à²¯] dddd, LT', 11069 sameElse: 'L' 11070 }, 11071 relativeTime: { 11072 future: '%s ನà²à²¤à²°', 11073 past: '%s ಹಿà²à²¦à³', 11074 s: 'à²à³à²²à²µà³ à²à³à²·à²£à²à²³à³', 11075 ss: '%d ಸà³à²à³à²à²¡à³à²à²³à³', 11076 m: 'à²à²à²¦à³ ನಿಮಿಷ', 11077 mm: '%d ನಿಮಿಷ', 11078 h: 'à²à²à²¦à³ à²à²à²à³', 11079 hh: '%d à²à²à²à³', 11080 d: 'à²à²à²¦à³ ದಿನ', 11081 dd: '%d ದಿನ', 11082 M: 'à²à²à²¦à³ ತಿà²à²à²³à³', 11083 MM: '%d ತಿà²à²à²³à³', 11084 y: 'à²à²à²¦à³ ವರà³à²·', 11085 yy: '%d ವರà³à²·' 11086 }, 11087 preparse: function preparse(string) { 11088 return string.replace(/[೧೨೩೪೫೬à³à³®à³¯à³¦]/g, function (match) { 11089 return numberMap[match]; 11090 }); 11091 }, 11092 postformat: function postformat(string) { 11093 return string.replace(/\d/g, function (match) { 11094 return symbolMap[match]; 11095 }); 11096 }, 11097 meridiemParse: /ರಾತà³à²°à²¿|ಬà³à²³à²¿à²à³à²à³|ಮಧà³à²¯à²¾à²¹à³à²¨|ಸà²à²à³/, 11098 meridiemHour: function meridiemHour(hour, meridiem) { 11099 if (hour === 12) { 11100 hour = 0; 11101 } 11102 11103 if (meridiem === 'ರಾತà³à²°à²¿') { 11104 return hour < 4 ? hour : hour + 12; 11105 } else if (meridiem === 'ಬà³à²³à²¿à²à³à²à³') { 11106 return hour; 11107 } else if (meridiem === 'ಮಧà³à²¯à²¾à²¹à³à²¨') { 11108 return hour >= 10 ? hour : hour + 12; 11109 } else if (meridiem === 'ಸà²à²à³') { 11110 return hour + 12; 11111 } 11112 }, 11113 meridiem: function meridiem(hour, minute, isLower) { 11114 if (hour < 4) { 11115 return 'ರಾತà³à²°à²¿'; 11116 } else if (hour < 10) { 11117 return 'ಬà³à²³à²¿à²à³à²à³'; 11118 } else if (hour < 17) { 11119 return 'ಮಧà³à²¯à²¾à²¹à³à²¨'; 11120 } else if (hour < 20) { 11121 return 'ಸà²à²à³'; 11122 } else { 11123 return 'ರಾತà³à²°à²¿'; 11124 } 11125 }, 11126 dayOfMonthOrdinalParse: /\d{1,2}(ನà³à³)/, 11127 ordinal: function ordinal(number) { 11128 return number + 'ನà³à³'; 11129 }, 11130 week: { 11131 dow: 0, 11132 // Sunday is the first day of the week. 11133 doy: 6 // The week that contains Jan 6th is the first week of the year. 11134 11135 } 11136 }); 11137 return kn; 11138}); 11139 11140/***/ }), 11141
vendor: 3,782 bytes, lines 11142-11238
11142/***/ "../autobahn_client_core/node_modules/moment/locale/ko.js": 11143/*!****************************************************************!*\ 11144 !*** ../autobahn_client_core/node_modules/moment/locale/ko.js ***! 11145 \****************************************************************/ 11146/*! no static exports found */ 11147/***/ (function(module, exports, __webpack_require__) { 11148 11149var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 11150 11151//! moment.js locale configuration 11152//! locale : Korean [ko] 11153//! author : Kyungwook, Park : https://github.com/kyungw00k 11154//! author : Jeeeyul Lee <[email protected]> 11155; 11156 11157(function (global, factory) { 11158 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 11159 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 11160 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 11161 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 11162})(this, function (moment) { 11163 'use strict'; //! moment.js locale configuration 11164 11165 var ko = moment.defineLocale('ko', { 11166 months: '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split('_'), 11167 monthsShort: '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split('_'), 11168 weekdays: 'ì¼ìì¼_ììì¼_íìì¼_ììì¼_목ìì¼_ê¸ìì¼_í ìì¼'.split('_'), 11169 weekdaysShort: 'ì¼_ì_í_ì_목_ê¸_í '.split('_'), 11170 weekdaysMin: 'ì¼_ì_í_ì_목_ê¸_í '.split('_'), 11171 longDateFormat: { 11172 LT: 'A h:mm', 11173 LTS: 'A h:mm:ss', 11174 L: 'YYYY.MM.DD.', 11175 LL: 'YYYYë MMMM Dì¼', 11176 LLL: 'YYYYë MMMM Dì¼ A h:mm', 11177 LLLL: 'YYYYë MMMM Dì¼ dddd A h:mm', 11178 l: 'YYYY.MM.DD.', 11179 ll: 'YYYYë MMMM Dì¼', 11180 lll: 'YYYYë MMMM Dì¼ A h:mm', 11181 llll: 'YYYYë MMMM Dì¼ dddd A h:mm' 11182 }, 11183 calendar: { 11184 sameDay: 'ì¤ë LT', 11185 nextDay: 'ë´ì¼ LT', 11186 nextWeek: 'dddd LT', 11187 lastDay: 'ì´ì LT', 11188 lastWeek: 'ì§ë주 dddd LT', 11189 sameElse: 'L' 11190 }, 11191 relativeTime: { 11192 future: '%s í', 11193 past: '%s ì ', 11194 s: 'ëª ì´', 11195 ss: '%dì´', 11196 m: '1ë¶', 11197 mm: '%dë¶', 11198 h: 'í ìê°', 11199 hh: '%dìê°', 11200 d: 'í루', 11201 dd: '%dì¼', 11202 M: 'í ë¬', 11203 MM: '%dë¬', 11204 y: 'ì¼ ë ', 11205 yy: '%dë ' 11206 }, 11207 dayOfMonthOrdinalParse: /\d{1,2}(ì¼|ì|주)/, 11208 ordinal: function ordinal(number, period) { 11209 switch (period) { 11210 case 'd': 11211 case 'D': 11212 case 'DDD': 11213 return number + 'ì¼'; 11214 11215 case 'M': 11216 return number + 'ì'; 11217 11218 case 'w': 11219 case 'W': 11220 return number + '주'; 11221 11222 default: 11223 return number; 11224 } 11225 }, 11226 meridiemParse: /ì¤ì |ì¤í/, 11227 isPM: function isPM(token) { 11228 return token === 'ì¤í'; 11229 }, 11230 meridiem: function meridiem(hour, minute, isUpper) { 11231 return hour < 12 ? 'ì¤ì ' : 'ì¤í'; 11232 } 11233 }); 11234 return ko; 11235}); 11236 11237/***/ }), 11238
vendor: 4,659 bytes, lines 11239-11357
11239/***/ "../autobahn_client_core/node_modules/moment/locale/ku.js": 11240/*!****************************************************************!*\ 11241 !*** ../autobahn_client_core/node_modules/moment/locale/ku.js ***! 11242 \****************************************************************/ 11243/*! no static exports found */ 11244/***/ (function(module, exports, __webpack_require__) { 11245 11246var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 11247 11248//! moment.js locale configuration 11249//! locale : Kurdish [ku] 11250//! author : Shahram Mebashar : https://github.com/ShahramMebashar 11251; 11252 11253(function (global, factory) { 11254 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 11255 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 11256 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 11257 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 11258})(this, function (moment) { 11259 'use strict'; //! moment.js locale configuration 11260 11261 var symbolMap = { 11262 1: 'Ù¡', 11263 2: 'Ù¢', 11264 3: 'Ù£', 11265 4: 'Ù¤', 11266 5: 'Ù¥', 11267 6: 'Ù¦', 11268 7: 'Ù§', 11269 8: 'Ù¨', 11270 9: 'Ù©', 11271 0: 'Ù ' 11272 }, 11273 numberMap = { 11274 'Ù¡': '1', 11275 'Ù¢': '2', 11276 'Ù£': '3', 11277 'Ù¤': '4', 11278 'Ù¥': '5', 11279 'Ù¦': '6', 11280 'Ù§': '7', 11281 'Ù¨': '8', 11282 'Ù©': '9', 11283 'Ù ': '0' 11284 }, 11285 months = ['کاÙÙÙÛ Ø¯ÙÙÛÙ ', 'Ø´ÙØ¨Ø§Øª', 'ئازار', 'ÙÛØ³Ø§Ù', 'Ø¦Ø§ÛØ§Ø±', 'ØÙزÛÛØ±Ø§Ù', 'تÛÙ Ù ÙØ²', 'ئاب', 'ئÛÛÙÙÙÙ', 'تشرÛÙÛ ÛÛÙÛÙ ', 'تشرÛÙÛ Ø¯ÙÙÛÙ ', 'ÙØ§ÙÙÙÛ ÛÛÚ©ÛÙ ']; 11286 var ku = moment.defineLocale('ku', { 11287 months: months, 11288 monthsShort: months, 11289 weekdays: 'ÛÙâÙØ´ÙâÙ Ù Ùâ_دÙÙØ´ÙâÙ Ù Ùâ_Ø³ÛØ´ÙâÙ Ù Ùâ_ÚÙØ§Ø±Ø´ÙâÙ Ù Ùâ_Ù¾ÛÙØ¬Ø´ÙâÙ Ù Ùâ_ÙÙâÛÙÛ_Ø´ÙâÙ Ù Ùâ'.split('_'), 11290 weekdaysShort: 'ÛÙâÙØ´ÙâÙ _دÙÙØ´ÙâÙ _Ø³ÛØ´ÙâÙ _ÚÙØ§Ø±Ø´ÙâÙ _Ù¾ÛÙØ¬Ø´ÙâÙ _ÙÙâÛÙÛ_Ø´ÙâÙ Ù Ùâ'.split('_'), 11291 weekdaysMin: 'Û_د_س_Ú_Ù¾_Ù_Ø´'.split('_'), 11292 weekdaysParseExact: true, 11293 longDateFormat: { 11294 LT: 'HH:mm', 11295 LTS: 'HH:mm:ss', 11296 L: 'DD/MM/YYYY', 11297 LL: 'D MMMM YYYY', 11298 LLL: 'D MMMM YYYY HH:mm', 11299 LLLL: 'dddd, D MMMM YYYY HH:mm' 11300 }, 11301 meridiemParse: /ئÛÙØ§Ø±Ùâ|بÙâÛØ§ÙÛ/, 11302 isPM: function isPM(input) { 11303 return /ئÛÙØ§Ø±Ùâ/.test(input); 11304 }, 11305 meridiem: function meridiem(hour, minute, isLower) { 11306 if (hour < 12) { 11307 return 'بÙâÛØ§ÙÛ'; 11308 } else { 11309 return 'ئÛÙØ§Ø±Ùâ'; 11310 } 11311 }, 11312 calendar: { 11313 sameDay: '[ئÙâÙ Ø±Û ÙØ§ØªÚÙ ÛØ±] LT', 11314 nextDay: '[بÙâÛØ§ÙÛ ÙØ§ØªÚÙ ÛØ±] LT', 11315 nextWeek: 'dddd [ÙØ§ØªÚÙ ÛØ±] LT', 11316 lastDay: '[دÙÛÙÛ ÙØ§ØªÚÙ ÛØ±] LT', 11317 lastWeek: 'dddd [ÙØ§ØªÚÙ ÛØ±] LT', 11318 sameElse: 'L' 11319 }, 11320 relativeTime: { 11321 future: 'ÙÙâ %s', 11322 past: '%s', 11323 s: 'ÚÙâÙØ¯ ÚØ±ÙÙâÛÙâÙ', 11324 ss: 'ÚØ±ÙÙâ %d', 11325 m: 'ÛÙâÙ Ø®ÙÙÙâÙ', 11326 mm: '%d Ø®ÙÙÙâÙ', 11327 h: 'ÛÙâÙ ÙØ§ØªÚÙ ÛØ±', 11328 hh: '%d ÙØ§ØªÚÙ ÛØ±', 11329 d: 'ÛÙâÙ ÚÛÚ', 11330 dd: '%d ÚÛÚ', 11331 M: 'ÛÙâ٠٠اÙÚ¯', 11332 MM: '%d ٠اÙÚ¯', 11333 y: 'ÛÙâ٠ساڵ', 11334 yy: '%d ساڵ' 11335 }, 11336 preparse: function preparse(string) { 11337 return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 11338 return numberMap[match]; 11339 }).replace(/Ø/g, ','); 11340 }, 11341 postformat: function postformat(string) { 11342 return string.replace(/\d/g, function (match) { 11343 return symbolMap[match]; 11344 }).replace(/,/g, 'Ø'); 11345 }, 11346 week: { 11347 dow: 6, 11348 // Saturday is the first day of the week. 11349 doy: 12 // The week that contains Jan 12th is the first week of the year. 11350 11351 } 11352 }); 11353 return ku; 11354}); 11355 11356/***/ }), 11357
vendor: 4,103 bytes, lines 11358-11457
11358/***/ "../autobahn_client_core/node_modules/moment/locale/ky.js": 11359/*!****************************************************************!*\ 11360 !*** ../autobahn_client_core/node_modules/moment/locale/ky.js ***! 11361 \****************************************************************/ 11362/*! no static exports found */ 11363/***/ (function(module, exports, __webpack_require__) { 11364 11365var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 11366 11367//! moment.js locale configuration 11368//! locale : Kyrgyz [ky] 11369//! author : Chyngyz Arystan uulu : https://github.com/chyngyz 11370; 11371 11372(function (global, factory) { 11373 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 11374 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 11375 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 11376 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 11377})(this, function (moment) { 11378 'use strict'; //! moment.js locale configuration 11379 11380 var suffixes = { 11381 0: '-ÑÒ¯', 11382 1: '-Ñи', 11383 2: '-Ñи', 11384 3: '-ÑÒ¯', 11385 4: '-ÑÒ¯', 11386 5: '-Ñи', 11387 6: '-ÑÑ', 11388 7: '-Ñи', 11389 8: '-Ñи', 11390 9: '-ÑÑ', 11391 10: '-ÑÑ', 11392 20: '-ÑÑ', 11393 30: '-ÑÑ', 11394 40: '-ÑÑ', 11395 50: '-ÑÒ¯', 11396 60: '-ÑÑ', 11397 70: '-Ñи', 11398 80: '-Ñи', 11399 90: '-ÑÑ', 11400 100: '-ÑÒ¯' 11401 }; 11402 var ky = moment.defineLocale('ky', { 11403 months: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑ_апÑелÑ_май_иÑнÑ_иÑлÑ_авгÑÑÑ_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split('_'), 11404 monthsShort: 'Ñнв_Ñев_маÑÑ_апÑ_май_иÑнÑ_иÑлÑ_авг_Ñен_окÑ_ноÑ_дек'.split('_'), 11405 weekdays: 'ÐекÑемби_ÐүйÑөмбү_ШейÑемби_ШаÑÑемби_ÐейÑемби_ÐÑма_ÐÑемби'.split('_'), 11406 weekdaysShort: 'Ðек_Ðүй_Шей_ШаÑ_Ðей_ÐÑм_ÐÑе'.split('_'), 11407 weekdaysMin: 'Ðк_Ðй_Шй_ШÑ_Ðй_Ðм_ÐÑ'.split('_'), 11408 longDateFormat: { 11409 LT: 'HH:mm', 11410 LTS: 'HH:mm:ss', 11411 L: 'DD.MM.YYYY', 11412 LL: 'D MMMM YYYY', 11413 LLL: 'D MMMM YYYY HH:mm', 11414 LLLL: 'dddd, D MMMM YYYY HH:mm' 11415 }, 11416 calendar: { 11417 sameDay: '[Ðүгүн ÑааÑ] LT', 11418 nextDay: '[ÐÑÑең ÑааÑ] LT', 11419 nextWeek: 'dddd [ÑааÑ] LT', 11420 lastDay: '[ÐеÑÑÑ ÑааÑ] LT', 11421 lastWeek: '[Ó¨Ñкөн апÑанÑн] dddd [күнү] [ÑааÑ] LT', 11422 sameElse: 'L' 11423 }, 11424 relativeTime: { 11425 future: '%s иÑинде', 11426 past: '%s мÑÑÑн', 11427 s: 'биÑнеÑе ÑекÑнд', 11428 ss: '%d ÑекÑнд', 11429 m: 'Ð±Ð¸Ñ Ð¼Ò¯Ð½Ó©Ñ', 11430 mm: '%d мүнөÑ', 11431 h: 'Ð±Ð¸Ñ ÑааÑ', 11432 hh: '%d ÑааÑ', 11433 d: 'Ð±Ð¸Ñ ÐºÒ¯Ð½', 11434 dd: '%d күн', 11435 M: 'Ð±Ð¸Ñ Ð°Ð¹', 11436 MM: '%d ай', 11437 y: 'Ð±Ð¸Ñ Ð¶Ñл', 11438 yy: '%d жÑл' 11439 }, 11440 dayOfMonthOrdinalParse: /\d{1,2}-(Ñи|ÑÑ|ÑÒ¯|ÑÑ)/, 11441 ordinal: function ordinal(number) { 11442 var a = number % 10, 11443 b = number >= 100 ? 100 : null; 11444 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 11445 }, 11446 week: { 11447 dow: 1, 11448 // Monday is the first day of the week. 11449 doy: 7 // The week that contains Jan 7th is the first week of the year. 11450 11451 } 11452 }); 11453 return ky; 11454}); 11455 11456/***/ }), 11457
vendor: 5,754 bytes, lines 11458-11624
11458/***/ "../autobahn_client_core/node_modules/moment/locale/lb.js": 11459/*!****************************************************************!*\ 11460 !*** ../autobahn_client_core/node_modules/moment/locale/lb.js ***! 11461 \****************************************************************/ 11462/*! no static exports found */ 11463/***/ (function(module, exports, __webpack_require__) { 11464 11465var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 11466 11467//! moment.js locale configuration 11468//! locale : Luxembourgish [lb] 11469//! author : mweimerskirch : https://github.com/mweimerskirch 11470//! author : David Raison : https://github.com/kwisatz 11471; 11472 11473(function (global, factory) { 11474 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 11475 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 11476 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 11477 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 11478})(this, function (moment) { 11479 'use strict'; //! moment.js locale configuration 11480 11481 function processRelativeTime(number, withoutSuffix, key, isFuture) { 11482 var format = { 11483 m: ['eng Minutt', 'enger Minutt'], 11484 h: ['eng Stonn', 'enger Stonn'], 11485 d: ['een Dag', 'engem Dag'], 11486 M: ['ee Mount', 'engem Mount'], 11487 y: ['ee Joer', 'engem Joer'] 11488 }; 11489 return withoutSuffix ? format[key][0] : format[key][1]; 11490 } 11491 11492 function processFutureTime(string) { 11493 var number = string.substr(0, string.indexOf(' ')); 11494 11495 if (eifelerRegelAppliesToNumber(number)) { 11496 return 'a ' + string; 11497 } 11498 11499 return 'an ' + string; 11500 } 11501 11502 function processPastTime(string) { 11503 var number = string.substr(0, string.indexOf(' ')); 11504 11505 if (eifelerRegelAppliesToNumber(number)) { 11506 return 'viru ' + string; 11507 } 11508 11509 return 'virun ' + string; 11510 } 11511 /** 11512 * Returns true if the word before the given number loses the '-n' ending. 11513 * e.g. 'an 10 Deeg' but 'a 5 Deeg' 11514 * 11515 * @param number {integer} 11516 * @returns {boolean} 11517 */ 11518 11519 11520 function eifelerRegelAppliesToNumber(number) { 11521 number = parseInt(number, 10); 11522 11523 if (isNaN(number)) { 11524 return false; 11525 } 11526 11527 if (number < 0) { 11528 // Negative Number --> always true 11529 return true; 11530 } else if (number < 10) { 11531 // Only 1 digit 11532 if (4 <= number && number <= 7) { 11533 return true; 11534 } 11535 11536 return false; 11537 } else if (number < 100) { 11538 // 2 digits 11539 var lastDigit = number % 10, 11540 firstDigit = number / 10; 11541 11542 if (lastDigit === 0) { 11543 return eifelerRegelAppliesToNumber(firstDigit); 11544 } 11545 11546 return eifelerRegelAppliesToNumber(lastDigit); 11547 } else if (number < 10000) { 11548 // 3 or 4 digits --> recursively check first digit 11549 while (number >= 10) { 11550 number = number / 10; 11551 } 11552 11553 return eifelerRegelAppliesToNumber(number); 11554 } else { 11555 // Anything larger than 4 digits: recursively check first n-3 digits 11556 number = number / 1000; 11557 return eifelerRegelAppliesToNumber(number); 11558 } 11559 } 11560 11561 var lb = moment.defineLocale('lb', { 11562 months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), 11563 monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), 11564 monthsParseExact: true, 11565 weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'), 11566 weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), 11567 weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), 11568 weekdaysParseExact: true, 11569 longDateFormat: { 11570 LT: 'H:mm [Auer]', 11571 LTS: 'H:mm:ss [Auer]', 11572 L: 'DD.MM.YYYY', 11573 LL: 'D. MMMM YYYY', 11574 LLL: 'D. MMMM YYYY H:mm [Auer]', 11575 LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]' 11576 }, 11577 calendar: { 11578 sameDay: '[Haut um] LT', 11579 sameElse: 'L', 11580 nextDay: '[Muer um] LT', 11581 nextWeek: 'dddd [um] LT', 11582 lastDay: '[Gëschter um] LT', 11583 lastWeek: function lastWeek() { 11584 // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule 11585 switch (this.day()) { 11586 case 2: 11587 case 4: 11588 return '[Leschten] dddd [um] LT'; 11589 11590 default: 11591 return '[Leschte] dddd [um] LT'; 11592 } 11593 } 11594 }, 11595 relativeTime: { 11596 future: processFutureTime, 11597 past: processPastTime, 11598 s: 'e puer Sekonnen', 11599 ss: '%d Sekonnen', 11600 m: processRelativeTime, 11601 mm: '%d Minutten', 11602 h: processRelativeTime, 11603 hh: '%d Stonnen', 11604 d: processRelativeTime, 11605 dd: '%d Deeg', 11606 M: processRelativeTime, 11607 MM: '%d Méint', 11608 y: processRelativeTime, 11609 yy: '%d Joer' 11610 }, 11611 dayOfMonthOrdinalParse: /\d{1,2}\./, 11612 ordinal: '%d.', 11613 week: { 11614 dow: 1, 11615 // Monday is the first day of the week. 11616 doy: 4 // The week that contains Jan 4th is the first week of the year. 11617 11618 } 11619 }); 11620 return lb; 11621}); 11622 11623/***/ }), 11624
vendor: 4,161 bytes, lines 11625-11706
11625/***/ "../autobahn_client_core/node_modules/moment/locale/lo.js": 11626/*!****************************************************************!*\ 11627 !*** ../autobahn_client_core/node_modules/moment/locale/lo.js ***! 11628 \****************************************************************/ 11629/*! no static exports found */ 11630/***/ (function(module, exports, __webpack_require__) { 11631 11632var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 11633 11634//! moment.js locale configuration 11635//! locale : Lao [lo] 11636//! author : Ryan Hart : https://github.com/ryanhart2 11637; 11638 11639(function (global, factory) { 11640 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 11641 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 11642 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 11643 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 11644})(this, function (moment) { 11645 'use strict'; //! moment.js locale configuration 11646 11647 var lo = moment.defineLocale('lo', { 11648 months: 'ມັàºàºàºàº_àºàº¸àº¡àºàº²_ມີàºàº²_à»àº¡àºªàº²_àºàº¶àºàºªàº°àºàº²_ມິàºàº¸àºàº²_àºà»àº¥àº°àºàº»àº_ສິàºàº«àº²_àºàº±àºàºàº²_àºàº¸àº¥àº²_àºàº°àºàº´àº_àºàº±àºàº§àº²'.split('_'), 11649 monthsShort: 'ມັàºàºàºàº_àºàº¸àº¡àºàº²_ມີàºàº²_à»àº¡àºªàº²_àºàº¶àºàºªàº°àºàº²_ມິàºàº¸àºàº²_àºà»àº¥àº°àºàº»àº_ສິàºàº«àº²_àºàº±àºàºàº²_àºàº¸àº¥àº²_àºàº°àºàº´àº_àºàº±àºàº§àº²'.split('_'), 11650 weekdays: 'àºàº²àºàº´àº_àºàº±àº_àºàº±àºàºàº²àº_àºàº¸àº_àºàº°àº«àº±àº_ສຸàº_à»àºªàº»àº²'.split('_'), 11651 weekdaysShort: 'àºàº´àº_àºàº±àº_àºàº±àºàºàº²àº_àºàº¸àº_àºàº°àº«àº±àº_ສຸàº_à»àºªàº»àº²'.split('_'), 11652 weekdaysMin: 'àº_àº_àºàº_àº_àºàº«_ສàº_ສ'.split('_'), 11653 weekdaysParseExact: true, 11654 longDateFormat: { 11655 LT: 'HH:mm', 11656 LTS: 'HH:mm:ss', 11657 L: 'DD/MM/YYYY', 11658 LL: 'D MMMM YYYY', 11659 LLL: 'D MMMM YYYY HH:mm', 11660 LLLL: 'ວັàºdddd D MMMM YYYY HH:mm' 11661 }, 11662 meridiemParse: /àºàºàºà»àºàº»à»àº²|àºàºàºà»àº¥àº/, 11663 isPM: function isPM(input) { 11664 return input === 'àºàºàºà»àº¥àº'; 11665 }, 11666 meridiem: function meridiem(hour, minute, isLower) { 11667 if (hour < 12) { 11668 return 'àºàºàºà»àºàº»à»àº²'; 11669 } else { 11670 return 'àºàºàºà»àº¥àº'; 11671 } 11672 }, 11673 calendar: { 11674 sameDay: '[ມືà»àºàºµà»à»àº§àº¥àº²] LT', 11675 nextDay: '[ມືà»àºàº·à»àºà»àº§àº¥àº²] LT', 11676 nextWeek: '[ວັàº]dddd[à»à»àº²à»àº§àº¥àº²] LT', 11677 lastDay: '[ມືà»àº§àº²àºàºàºµà»à»àº§àº¥àº²] LT', 11678 lastWeek: '[ວັàº]dddd[à»àº¥à»àº§àºàºµà»à»àº§àº¥àº²] LT', 11679 sameElse: 'L' 11680 }, 11681 relativeTime: { 11682 future: 'àºàºµàº %s', 11683 past: '%sàºà»àº²àºàº¡àº²', 11684 s: 'àºà»à»à»àºàº»à»àº²à»àºàº§àº´àºàº²àºàºµ', 11685 ss: '%d ວິàºàº²àºàºµ', 11686 m: '1 àºàº²àºàºµ', 11687 mm: '%d àºàº²àºàºµ', 11688 h: '1 àºàº»à»àº§à»àº¡àº', 11689 hh: '%d àºàº»à»àº§à»àº¡àº', 11690 d: '1 ມືà»', 11691 dd: '%d ມືà»', 11692 M: '1 à»àºàº·àºàº', 11693 MM: '%d à»àºàº·àºàº', 11694 y: '1 àºàºµ', 11695 yy: '%d àºàºµ' 11696 }, 11697 dayOfMonthOrdinalParse: /(àºàºµà»)\d{1,2}/, 11698 ordinal: function ordinal(number) { 11699 return 'àºàºµà»' + number; 11700 } 11701 }); 11702 return lo; 11703}); 11704 11705/***/ }), 11706
vendor: 5,431 bytes, lines 11707-11845
11707/***/ "../autobahn_client_core/node_modules/moment/locale/lt.js": 11708/*!****************************************************************!*\ 11709 !*** ../autobahn_client_core/node_modules/moment/locale/lt.js ***! 11710 \****************************************************************/ 11711/*! no static exports found */ 11712/***/ (function(module, exports, __webpack_require__) { 11713 11714var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 11715 11716//! moment.js locale configuration 11717//! locale : Lithuanian [lt] 11718//! author : Mindaugas MozÅ«ras : https://github.com/mmozuras 11719; 11720 11721(function (global, factory) { 11722 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 11723 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 11724 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 11725 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 11726})(this, function (moment) { 11727 'use strict'; //! moment.js locale configuration 11728 11729 var units = { 11730 ss: 'sekundÄ_sekundžių_sekundes', 11731 m: 'minutÄ_minutÄs_minutÄ', 11732 mm: 'minutÄs_minuÄių_minutes', 11733 h: 'valanda_valandos_valandÄ ', 11734 hh: 'valandos_valandų_valandas', 11735 d: 'diena_dienos_dienÄ ', 11736 dd: 'dienos_dienų_dienas', 11737 M: 'mÄnuo_mÄnesio_mÄnesį', 11738 MM: 'mÄnesiai_mÄnesių_mÄnesius', 11739 y: 'metai_metų_metus', 11740 yy: 'metai_metų_metus' 11741 }; 11742 11743 function translateSeconds(number, withoutSuffix, key, isFuture) { 11744 if (withoutSuffix) { 11745 return 'kelios sekundÄs'; 11746 } else { 11747 return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; 11748 } 11749 } 11750 11751 function translateSingular(number, withoutSuffix, key, isFuture) { 11752 return withoutSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2]; 11753 } 11754 11755 function special(number) { 11756 return number % 10 === 0 || number > 10 && number < 20; 11757 } 11758 11759 function forms(key) { 11760 return units[key].split('_'); 11761 } 11762 11763 function translate(number, withoutSuffix, key, isFuture) { 11764 var result = number + ' '; 11765 11766 if (number === 1) { 11767 return result + translateSingular(number, withoutSuffix, key[0], isFuture); 11768 } else if (withoutSuffix) { 11769 return result + (special(number) ? forms(key)[1] : forms(key)[0]); 11770 } else { 11771 if (isFuture) { 11772 return result + forms(key)[1]; 11773 } else { 11774 return result + (special(number) ? forms(key)[1] : forms(key)[2]); 11775 } 11776 } 11777 } 11778 11779 var lt = moment.defineLocale('lt', { 11780 months: { 11781 format: 'sausio_vasario_kovo_balandžio_gegužÄs_birželio_liepos_rugpjÅ«Äio_rugsÄjo_spalio_lapkriÄio_gruodžio'.split('_'), 11782 standalone: 'sausis_vasaris_kovas_balandis_gegužÄ_birželis_liepa_rugpjÅ«tis_rugsÄjis_spalis_lapkritis_gruodis'.split('_'), 11783 isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/ 11784 }, 11785 monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), 11786 weekdays: { 11787 format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split('_'), 11788 standalone: 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split('_'), 11789 isFormat: /dddd HH:mm/ 11790 }, 11791 weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'), 11792 weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'), 11793 weekdaysParseExact: true, 11794 longDateFormat: { 11795 LT: 'HH:mm', 11796 LTS: 'HH:mm:ss', 11797 L: 'YYYY-MM-DD', 11798 LL: 'YYYY [m.] MMMM D [d.]', 11799 LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', 11800 LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', 11801 l: 'YYYY-MM-DD', 11802 ll: 'YYYY [m.] MMMM D [d.]', 11803 lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', 11804 llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]' 11805 }, 11806 calendar: { 11807 sameDay: '[Å iandien] LT', 11808 nextDay: '[Rytoj] LT', 11809 nextWeek: 'dddd LT', 11810 lastDay: '[Vakar] LT', 11811 lastWeek: '[PraÄjusį] dddd LT', 11812 sameElse: 'L' 11813 }, 11814 relativeTime: { 11815 future: 'po %s', 11816 past: 'prieÅ¡ %s', 11817 s: translateSeconds, 11818 ss: translate, 11819 m: translateSingular, 11820 mm: translate, 11821 h: translateSingular, 11822 hh: translate, 11823 d: translateSingular, 11824 dd: translate, 11825 M: translateSingular, 11826 MM: translate, 11827 y: translateSingular, 11828 yy: translate 11829 }, 11830 dayOfMonthOrdinalParse: /\d{1,2}-oji/, 11831 ordinal: function ordinal(number) { 11832 return number + '-oji'; 11833 }, 11834 week: { 11835 dow: 1, 11836 // Monday is the first day of the week. 11837 doy: 4 // The week that contains Jan 4th is the first week of the year. 11838 11839 } 11840 }); 11841 return lt; 11842}); 11843 11844/***/ }), 11845
vendor: 5,045 bytes, lines 11846-11961
11846/***/ "../autobahn_client_core/node_modules/moment/locale/lv.js": 11847/*!****************************************************************!*\ 11848 !*** ../autobahn_client_core/node_modules/moment/locale/lv.js ***! 11849 \****************************************************************/ 11850/*! no static exports found */ 11851/***/ (function(module, exports, __webpack_require__) { 11852 11853var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 11854 11855//! moment.js locale configuration 11856//! locale : Latvian [lv] 11857//! author : Kristaps Karlsons : https://github.com/skakri 11858//! author : JÄnis Elmeris : https://github.com/JanisE 11859; 11860 11861(function (global, factory) { 11862 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 11863 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 11864 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 11865 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 11866})(this, function (moment) { 11867 'use strict'; //! moment.js locale configuration 11868 11869 var units = { 11870 ss: 'sekundes_sekundÄm_sekunde_sekundes'.split('_'), 11871 m: 'minÅ«tes_minÅ«tÄm_minÅ«te_minÅ«tes'.split('_'), 11872 mm: 'minÅ«tes_minÅ«tÄm_minÅ«te_minÅ«tes'.split('_'), 11873 h: 'stundas_stundÄm_stunda_stundas'.split('_'), 11874 hh: 'stundas_stundÄm_stunda_stundas'.split('_'), 11875 d: 'dienas_dienÄm_diena_dienas'.split('_'), 11876 dd: 'dienas_dienÄm_diena_dienas'.split('_'), 11877 M: 'mÄneÅ¡a_mÄneÅ¡iem_mÄnesis_mÄneÅ¡i'.split('_'), 11878 MM: 'mÄneÅ¡a_mÄneÅ¡iem_mÄnesis_mÄneÅ¡i'.split('_'), 11879 y: 'gada_gadiem_gads_gadi'.split('_'), 11880 yy: 'gada_gadiem_gads_gadi'.split('_') 11881 }; 11882 /** 11883 * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. 11884 */ 11885 11886 function format(forms, number, withoutSuffix) { 11887 if (withoutSuffix) { 11888 // E.g. "21 minÅ«te", "3 minÅ«tes". 11889 return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; 11890 } else { 11891 // E.g. "21 minÅ«tes" as in "pÄc 21 minÅ«tes". 11892 // E.g. "3 minÅ«tÄm" as in "pÄc 3 minÅ«tÄm". 11893 return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; 11894 } 11895 } 11896 11897 function relativeTimeWithPlural(number, withoutSuffix, key) { 11898 return number + ' ' + format(units[key], number, withoutSuffix); 11899 } 11900 11901 function relativeTimeWithSingular(number, withoutSuffix, key) { 11902 return format(units[key], number, withoutSuffix); 11903 } 11904 11905 function relativeSeconds(number, withoutSuffix) { 11906 return withoutSuffix ? 'dažas sekundes' : 'dažÄm sekundÄm'; 11907 } 11908 11909 var lv = moment.defineLocale('lv', { 11910 months: 'janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split('_'), 11911 monthsShort: 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'), 11912 weekdays: 'svÄtdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena'.split('_'), 11913 weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), 11914 weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), 11915 weekdaysParseExact: true, 11916 longDateFormat: { 11917 LT: 'HH:mm', 11918 LTS: 'HH:mm:ss', 11919 L: 'DD.MM.YYYY.', 11920 LL: 'YYYY. [gada] D. MMMM', 11921 LLL: 'YYYY. [gada] D. MMMM, HH:mm', 11922 LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm' 11923 }, 11924 calendar: { 11925 sameDay: '[Å odien pulksten] LT', 11926 nextDay: '[RÄ«t pulksten] LT', 11927 nextWeek: 'dddd [pulksten] LT', 11928 lastDay: '[Vakar pulksten] LT', 11929 lastWeek: '[PagÄjuÅ¡Ä] dddd [pulksten] LT', 11930 sameElse: 'L' 11931 }, 11932 relativeTime: { 11933 future: 'pÄc %s', 11934 past: 'pirms %s', 11935 s: relativeSeconds, 11936 ss: relativeTimeWithPlural, 11937 m: relativeTimeWithSingular, 11938 mm: relativeTimeWithPlural, 11939 h: relativeTimeWithSingular, 11940 hh: relativeTimeWithPlural, 11941 d: relativeTimeWithSingular, 11942 dd: relativeTimeWithPlural, 11943 M: relativeTimeWithSingular, 11944 MM: relativeTimeWithPlural, 11945 y: relativeTimeWithSingular, 11946 yy: relativeTimeWithPlural 11947 }, 11948 dayOfMonthOrdinalParse: /\d{1,2}\./, 11949 ordinal: '%d.', 11950 week: { 11951 dow: 1, 11952 // Monday is the first day of the week. 11953 doy: 4 // The week that contains Jan 4th is the first week of the year. 11954 11955 } 11956 }); 11957 return lv; 11958}); 11959 11960/***/ }), 11961
vendor: 4,928 bytes, lines 11962-12082
11962/***/ "../autobahn_client_core/node_modules/moment/locale/me.js": 11963/*!****************************************************************!*\ 11964 !*** ../autobahn_client_core/node_modules/moment/locale/me.js ***! 11965 \****************************************************************/ 11966/*! no static exports found */ 11967/***/ (function(module, exports, __webpack_require__) { 11968 11969var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 11970 11971//! moment.js locale configuration 11972//! locale : Montenegrin [me] 11973//! author : Miodrag NikaÄ <[email protected]> : https://github.com/miodragnikac 11974; 11975 11976(function (global, factory) { 11977 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 11978 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 11979 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 11980 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 11981})(this, function (moment) { 11982 'use strict'; //! moment.js locale configuration 11983 11984 var translator = { 11985 words: { 11986 //Different grammatical cases 11987 ss: ['sekund', 'sekunda', 'sekundi'], 11988 m: ['jedan minut', 'jednog minuta'], 11989 mm: ['minut', 'minuta', 'minuta'], 11990 h: ['jedan sat', 'jednog sata'], 11991 hh: ['sat', 'sata', 'sati'], 11992 dd: ['dan', 'dana', 'dana'], 11993 MM: ['mjesec', 'mjeseca', 'mjeseci'], 11994 yy: ['godina', 'godine', 'godina'] 11995 }, 11996 correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) { 11997 return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]; 11998 }, 11999 translate: function translate(number, withoutSuffix, key) { 12000 var wordKey = translator.words[key]; 12001 12002 if (key.length === 1) { 12003 return withoutSuffix ? wordKey[0] : wordKey[1]; 12004 } else { 12005 return number + ' ' + translator.correctGrammaticalCase(number, wordKey); 12006 } 12007 } 12008 }; 12009 var me = moment.defineLocale('me', { 12010 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), 12011 monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), 12012 monthsParseExact: true, 12013 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'), 12014 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 12015 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 12016 weekdaysParseExact: true, 12017 longDateFormat: { 12018 LT: 'H:mm', 12019 LTS: 'H:mm:ss', 12020 L: 'DD.MM.YYYY', 12021 LL: 'D. MMMM YYYY', 12022 LLL: 'D. MMMM YYYY H:mm', 12023 LLLL: 'dddd, D. MMMM YYYY H:mm' 12024 }, 12025 calendar: { 12026 sameDay: '[danas u] LT', 12027 nextDay: '[sjutra u] LT', 12028 nextWeek: function nextWeek() { 12029 switch (this.day()) { 12030 case 0: 12031 return '[u] [nedjelju] [u] LT'; 12032 12033 case 3: 12034 return '[u] [srijedu] [u] LT'; 12035 12036 case 6: 12037 return '[u] [subotu] [u] LT'; 12038 12039 case 1: 12040 case 2: 12041 case 4: 12042 case 5: 12043 return '[u] dddd [u] LT'; 12044 } 12045 }, 12046 lastDay: '[juÄe u] LT', 12047 lastWeek: function lastWeek() { 12048 var lastWeekDays = ['[proÅ¡le] [nedjelje] [u] LT', '[proÅ¡log] [ponedjeljka] [u] LT', '[proÅ¡log] [utorka] [u] LT', '[proÅ¡le] [srijede] [u] LT', '[proÅ¡log] [Äetvrtka] [u] LT', '[proÅ¡log] [petka] [u] LT', '[proÅ¡le] [subote] [u] LT']; 12049 return lastWeekDays[this.day()]; 12050 }, 12051 sameElse: 'L' 12052 }, 12053 relativeTime: { 12054 future: 'za %s', 12055 past: 'prije %s', 12056 s: 'nekoliko sekundi', 12057 ss: translator.translate, 12058 m: translator.translate, 12059 mm: translator.translate, 12060 h: translator.translate, 12061 hh: translator.translate, 12062 d: 'dan', 12063 dd: translator.translate, 12064 M: 'mjesec', 12065 MM: translator.translate, 12066 y: 'godinu', 12067 yy: translator.translate 12068 }, 12069 dayOfMonthOrdinalParse: /\d{1,2}\./, 12070 ordinal: '%d.', 12071 week: { 12072 dow: 1, 12073 // Monday is the first day of the week. 12074 doy: 7 // The week that contains Jan 7th is the first week of the year. 12075 12076 } 12077 }); 12078 return me; 12079}); 12080 12081/***/ }), 12082
vendor: 3,600 bytes, lines 12083-12160
12083/***/ "../autobahn_client_core/node_modules/moment/locale/mi.js": 12084/*!****************************************************************!*\ 12085 !*** ../autobahn_client_core/node_modules/moment/locale/mi.js ***! 12086 \****************************************************************/ 12087/*! no static exports found */ 12088/***/ (function(module, exports, __webpack_require__) { 12089 12090var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 12091 12092//! moment.js locale configuration 12093//! locale : Maori [mi] 12094//! author : John Corrigan <[email protected]> : https://github.com/johnideal 12095; 12096 12097(function (global, factory) { 12098 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 12099 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 12100 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 12101 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 12102})(this, function (moment) { 12103 'use strict'; //! moment.js locale configuration 12104 12105 var mi = moment.defineLocale('mi', { 12106 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('_'), 12107 monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_HÅngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'), 12108 monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 12109 monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 12110 monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 12111 monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, 12112 weekdays: 'RÄtapu_Mane_TÅ«rei_Wenerei_TÄite_Paraire_HÄtarei'.split('_'), 12113 weekdaysShort: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'), 12114 weekdaysMin: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'), 12115 longDateFormat: { 12116 LT: 'HH:mm', 12117 LTS: 'HH:mm:ss', 12118 L: 'DD/MM/YYYY', 12119 LL: 'D MMMM YYYY', 12120 LLL: 'D MMMM YYYY [i] HH:mm', 12121 LLLL: 'dddd, D MMMM YYYY [i] HH:mm' 12122 }, 12123 calendar: { 12124 sameDay: '[i teie mahana, i] LT', 12125 nextDay: '[apopo i] LT', 12126 nextWeek: 'dddd [i] LT', 12127 lastDay: '[inanahi i] LT', 12128 lastWeek: 'dddd [whakamutunga i] LT', 12129 sameElse: 'L' 12130 }, 12131 relativeTime: { 12132 future: 'i roto i %s', 12133 past: '%s i mua', 12134 s: 'te hÄkona ruarua', 12135 ss: '%d hÄkona', 12136 m: 'he meneti', 12137 mm: '%d meneti', 12138 h: 'te haora', 12139 hh: '%d haora', 12140 d: 'he ra', 12141 dd: '%d ra', 12142 M: 'he marama', 12143 MM: '%d marama', 12144 y: 'he tau', 12145 yy: '%d tau' 12146 }, 12147 dayOfMonthOrdinalParse: /\d{1,2}º/, 12148 ordinal: '%dº', 12149 week: { 12150 dow: 1, 12151 // Monday is the first day of the week. 12152 doy: 4 // The week that contains Jan 4th is the first week of the year. 12153 12154 } 12155 }); 12156 return mi; 12157}); 12158 12159/***/ }), 12160
vendor: 4,516 bytes, lines 12161-12267
12161/***/ "../autobahn_client_core/node_modules/moment/locale/mk.js": 12162/*!****************************************************************!*\ 12163 !*** ../autobahn_client_core/node_modules/moment/locale/mk.js ***! 12164 \****************************************************************/ 12165/*! no static exports found */ 12166/***/ (function(module, exports, __webpack_require__) { 12167 12168var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 12169 12170//! moment.js locale configuration 12171//! locale : Macedonian [mk] 12172//! author : Borislav Mickov : https://github.com/B0k0 12173//! author : Sashko Todorov : https://github.com/bkyceh 12174; 12175 12176(function (global, factory) { 12177 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 12178 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 12179 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 12180 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 12181})(this, function (moment) { 12182 'use strict'; //! moment.js locale configuration 12183 12184 var mk = moment.defineLocale('mk', { 12185 months: 'ÑанÑаÑи_ÑевÑÑаÑи_маÑÑ_апÑил_маÑ_ÑÑни_ÑÑли_авгÑÑÑ_ÑепÑемвÑи_окÑомвÑи_ноемвÑи_декемвÑи'.split('_'), 12186 monthsShort: 'Ñан_Ñев_маÑ_апÑ_маÑ_ÑÑн_ÑÑл_авг_Ñеп_окÑ_ное_дек'.split('_'), 12187 weekdays: 'недела_понеделник_вÑоÑник_ÑÑеда_ÑеÑвÑÑок_пеÑок_ÑабоÑа'.split('_'), 12188 weekdaysShort: 'нед_пон_вÑо_ÑÑе_ÑеÑ_пеÑ_Ñаб'.split('_'), 12189 weekdaysMin: 'нe_пo_вÑ_ÑÑ_Ñе_пе_Ña'.split('_'), 12190 longDateFormat: { 12191 LT: 'H:mm', 12192 LTS: 'H:mm:ss', 12193 L: 'D.MM.YYYY', 12194 LL: 'D MMMM YYYY', 12195 LLL: 'D MMMM YYYY H:mm', 12196 LLLL: 'dddd, D MMMM YYYY H:mm' 12197 }, 12198 calendar: { 12199 sameDay: '[ÐÐµÐ½ÐµÑ Ð²Ð¾] LT', 12200 nextDay: '[УÑÑе во] LT', 12201 nextWeek: '[Ðо] dddd [во] LT', 12202 lastDay: '[ÐÑеÑа во] LT', 12203 lastWeek: function lastWeek() { 12204 switch (this.day()) { 12205 case 0: 12206 case 3: 12207 case 6: 12208 return '[ÐзминаÑаÑа] dddd [во] LT'; 12209 12210 case 1: 12211 case 2: 12212 case 4: 12213 case 5: 12214 return '[ÐзминаÑиоÑ] dddd [во] LT'; 12215 } 12216 }, 12217 sameElse: 'L' 12218 }, 12219 relativeTime: { 12220 future: 'за %s', 12221 past: 'пÑед %s', 12222 s: 'Ð½ÐµÐºÐ¾Ð»ÐºÑ ÑекÑнди', 12223 ss: '%d ÑекÑнди', 12224 m: 'една минÑÑа', 12225 mm: '%d минÑÑи', 12226 h: 'еден ÑаÑ', 12227 hh: '%d ÑаÑа', 12228 d: 'еден ден', 12229 dd: '%d дена', 12230 M: 'еден меÑеÑ', 12231 MM: '%d меÑеÑи', 12232 y: 'една година', 12233 yy: '%d години' 12234 }, 12235 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|Ñи|ви|Ñи|ми)/, 12236 ordinal: function ordinal(number) { 12237 var lastDigit = number % 10, 12238 last2Digits = number % 100; 12239 12240 if (number === 0) { 12241 return number + '-ев'; 12242 } else if (last2Digits === 0) { 12243 return number + '-ен'; 12244 } else if (last2Digits > 10 && last2Digits < 20) { 12245 return number + '-Ñи'; 12246 } else if (lastDigit === 1) { 12247 return number + '-ви'; 12248 } else if (lastDigit === 2) { 12249 return number + '-Ñи'; 12250 } else if (lastDigit === 7 || lastDigit === 8) { 12251 return number + '-ми'; 12252 } else { 12253 return number + '-Ñи'; 12254 } 12255 }, 12256 week: { 12257 dow: 1, 12258 // Monday is the first day of the week. 12259 doy: 7 // The week that contains Jan 7th is the first week of the year. 12260 12261 } 12262 }); 12263 return mk; 12264}); 12265 12266/***/ }), 12267
vendor: 4,751 bytes, lines 12268-12359
12268/***/ "../autobahn_client_core/node_modules/moment/locale/ml.js": 12269/*!****************************************************************!*\ 12270 !*** ../autobahn_client_core/node_modules/moment/locale/ml.js ***! 12271 \****************************************************************/ 12272/*! no static exports found */ 12273/***/ (function(module, exports, __webpack_require__) { 12274 12275var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 12276 12277//! moment.js locale configuration 12278//! locale : Malayalam [ml] 12279//! author : Floyd Pink : https://github.com/floydpink 12280; 12281 12282(function (global, factory) { 12283 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 12284 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 12285 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 12286 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 12287})(this, function (moment) { 12288 'use strict'; //! moment.js locale configuration 12289 12290 var ml = moment.defineLocale('ml', { 12291 months: 'à´à´¨àµà´µà´°à´¿_à´«àµà´¬àµà´°àµà´µà´°à´¿_മാർà´àµà´àµ_à´à´ªàµà´°à´¿àµ½_à´®àµà´¯àµ_à´àµàµº_à´àµà´²àµ_à´à´à´¸àµà´±àµà´±àµ_à´¸àµà´ªàµà´±àµà´±à´à´¬àµ¼_à´à´àµà´àµà´¬àµ¼_നവà´à´¬àµ¼_à´¡à´¿à´¸à´à´¬àµ¼'.split('_'), 12292 monthsShort: 'à´à´¨àµ._à´«àµà´¬àµà´°àµ._മാർ._à´à´ªàµà´°à´¿._à´®àµà´¯àµ_à´àµàµº_à´àµà´²àµ._à´à´._à´¸àµà´ªàµà´±àµà´±._à´à´àµà´àµ._നവà´._à´¡à´¿à´¸à´.'.split('_'), 12293 monthsParseExact: true, 12294 weekdays: 'à´à´¾à´¯à´±à´¾à´´àµà´_തിà´àµà´à´³à´¾à´´àµà´_à´àµà´µàµà´µà´¾à´´àµà´_à´¬àµà´§à´¨à´¾à´´àµà´_à´µàµà´¯à´¾à´´à´¾à´´àµà´_à´µàµà´³àµà´³à´¿à´¯à´¾à´´àµà´_ശനിയാഴàµà´'.split('_'), 12295 weekdaysShort: 'à´à´¾à´¯àµ¼_തിà´àµà´àµ¾_à´àµà´µàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´_à´µàµà´³àµà´³à´¿_ശനി'.split('_'), 12296 weekdaysMin: 'à´à´¾_തി_à´àµ_à´¬àµ_à´µàµà´¯à´¾_à´µàµ_à´¶'.split('_'), 12297 longDateFormat: { 12298 LT: 'A h:mm -à´¨àµ', 12299 LTS: 'A h:mm:ss -à´¨àµ', 12300 L: 'DD/MM/YYYY', 12301 LL: 'D MMMM YYYY', 12302 LLL: 'D MMMM YYYY, A h:mm -à´¨àµ', 12303 LLLL: 'dddd, D MMMM YYYY, A h:mm -à´¨àµ' 12304 }, 12305 calendar: { 12306 sameDay: '[à´à´¨àµà´¨àµ] LT', 12307 nextDay: '[നാളàµ] LT', 12308 nextWeek: 'dddd, LT', 12309 lastDay: '[à´à´¨àµà´¨à´²àµ] LT', 12310 lastWeek: '[à´à´´à´¿à´àµà´] dddd, LT', 12311 sameElse: 'L' 12312 }, 12313 relativeTime: { 12314 future: '%s à´à´´à´¿à´àµà´àµ', 12315 past: '%s à´®àµàµ»à´ªàµ', 12316 s: 'ഠൽപ നിമിഷà´àµà´àµ¾', 12317 ss: '%d à´¸àµà´àµà´àµ»à´¡àµ', 12318 m: 'à´à´°àµ മിനിറàµà´±àµ', 12319 mm: '%d മിനിറàµà´±àµ', 12320 h: 'à´à´°àµ മണിà´àµà´àµàµ¼', 12321 hh: '%d മണിà´àµà´àµàµ¼', 12322 d: 'à´à´°àµ ദിവസà´', 12323 dd: '%d ദിവസà´', 12324 M: 'à´à´°àµ മാസà´', 12325 MM: '%d മാസà´', 12326 y: 'à´à´°àµ വർഷà´', 12327 yy: '%d വർഷà´' 12328 }, 12329 meridiemParse: /രാതàµà´°à´¿|രാവിലàµ|à´à´àµà´ à´à´´à´¿à´àµà´àµ|à´µàµà´àµà´¨àµà´¨àµà´°à´|രാതàµà´°à´¿/i, 12330 meridiemHour: function meridiemHour(hour, meridiem) { 12331 if (hour === 12) { 12332 hour = 0; 12333 } 12334 12335 if (meridiem === 'രാതàµà´°à´¿' && hour >= 4 || meridiem === 'à´à´àµà´ à´à´´à´¿à´àµà´àµ' || meridiem === 'à´µàµà´àµà´¨àµà´¨àµà´°à´') { 12336 return hour + 12; 12337 } else { 12338 return hour; 12339 } 12340 }, 12341 meridiem: function meridiem(hour, minute, isLower) { 12342 if (hour < 4) { 12343 return 'രാതàµà´°à´¿'; 12344 } else if (hour < 12) { 12345 return 'രാവിലàµ'; 12346 } else if (hour < 17) { 12347 return 'à´à´àµà´ à´à´´à´¿à´àµà´àµ'; 12348 } else if (hour < 20) { 12349 return 'à´µàµà´àµà´¨àµà´¨àµà´°à´'; 12350 } else { 12351 return 'രാതàµà´°à´¿'; 12352 } 12353 } 12354 }); 12355 return ml; 12356}); 12357 12358/***/ }), 12359
vendor: 4,914 bytes, lines 12360-12483
12360/***/ "../autobahn_client_core/node_modules/moment/locale/mn.js": 12361/*!****************************************************************!*\ 12362 !*** ../autobahn_client_core/node_modules/moment/locale/mn.js ***! 12363 \****************************************************************/ 12364/*! no static exports found */ 12365/***/ (function(module, exports, __webpack_require__) { 12366 12367var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 12368 12369//! moment.js locale configuration 12370//! locale : Mongolian [mn] 12371//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 12372; 12373 12374(function (global, factory) { 12375 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 12376 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 12377 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 12378 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 12379})(this, function (moment) { 12380 'use strict'; //! moment.js locale configuration 12381 12382 function translate(number, withoutSuffix, key, isFuture) { 12383 switch (key) { 12384 case 's': 12385 return withoutSuffix ? 'Ñ ÑÐ´Ñ Ñн ÑекÑнд' : 'Ñ ÑÐ´Ñ Ñн ÑекÑндÑн'; 12386 12387 case 'ss': 12388 return number + (withoutSuffix ? ' ÑекÑнд' : ' ÑекÑндÑн'); 12389 12390 case 'm': 12391 case 'mm': 12392 return number + (withoutSuffix ? ' минÑÑ' : ' минÑÑÑн'); 12393 12394 case 'h': 12395 case 'hh': 12396 return number + (withoutSuffix ? ' Ñаг' : ' Ñагийн'); 12397 12398 case 'd': 12399 case 'dd': 12400 return number + (withoutSuffix ? ' өдөÑ' : ' өдÑийн'); 12401 12402 case 'M': 12403 case 'MM': 12404 return number + (withoutSuffix ? ' ÑаÑ' : ' ÑаÑÑн'); 12405 12406 case 'y': 12407 case 'yy': 12408 return number + (withoutSuffix ? ' жил' : ' жилийн'); 12409 12410 default: 12411 return number; 12412 } 12413 } 12414 12415 var mn = moment.defineLocale('mn', { 12416 months: 'ÐÑгдүгÑÑÑ ÑаÑ_ХоÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÓ©ÑөвдүгÑÑÑ ÑаÑ_ТавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑгадÑÐ³Ð°Ð°Ñ ÑаÑ_ÐолдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐаймдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑдүгÑÑÑ ÑаÑ_ÐÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑван нÑгдүгÑÑÑ ÑаÑ_ÐÑван Ñ Ð¾ÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ'.split('_'), 12417 monthsShort: '1 ÑаÑ_2 ÑаÑ_3 ÑаÑ_4 ÑаÑ_5 ÑаÑ_6 ÑаÑ_7 ÑаÑ_8 ÑаÑ_9 ÑаÑ_10 ÑаÑ_11 ÑаÑ_12 ÑаÑ'.split('_'), 12418 monthsParseExact: true, 12419 weekdays: 'ÐÑм_Ðаваа_ÐÑгмаÑ_ÐÑ Ð°Ð³Ð²Ð°_ÐÒ¯ÑÑв_ÐааÑан_ÐÑмба'.split('_'), 12420 weekdaysShort: 'ÐÑм_Ðав_ÐÑг_ÐÑ Ð°_ÐÒ¯Ñ_Ðаа_ÐÑм'.split('_'), 12421 weekdaysMin: 'ÐÑ_Ðа_ÐÑ_ÐÑ _ÐÒ¯_Ðа_ÐÑ'.split('_'), 12422 weekdaysParseExact: true, 12423 longDateFormat: { 12424 LT: 'HH:mm', 12425 LTS: 'HH:mm:ss', 12426 L: 'YYYY-MM-DD', 12427 LL: 'YYYY Ð¾Ð½Ñ MMMMÑн D', 12428 LLL: 'YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm', 12429 LLLL: 'dddd, YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm' 12430 }, 12431 meridiemParse: /Ò®Ó¨|ҮХ/i, 12432 isPM: function isPM(input) { 12433 return input === 'ҮХ'; 12434 }, 12435 meridiem: function meridiem(hour, minute, isLower) { 12436 if (hour < 12) { 12437 return 'Ò®Ó¨'; 12438 } else { 12439 return 'ҮХ'; 12440 } 12441 }, 12442 calendar: { 12443 sameDay: '[ӨнөөдөÑ] LT', 12444 nextDay: '[ÐаÑгааÑ] LT', 12445 nextWeek: '[ÐÑÑÑ ] dddd LT', 12446 lastDay: '[Ó¨ÑигдөÑ] LT', 12447 lastWeek: '[ӨнгөÑÑөн] dddd LT', 12448 sameElse: 'L' 12449 }, 12450 relativeTime: { 12451 future: '%s даÑаа', 12452 past: '%s өмнө', 12453 s: translate, 12454 ss: translate, 12455 m: translate, 12456 mm: translate, 12457 h: translate, 12458 hh: translate, 12459 d: translate, 12460 dd: translate, 12461 M: translate, 12462 MM: translate, 12463 y: translate, 12464 yy: translate 12465 }, 12466 dayOfMonthOrdinalParse: /\d{1,2} өдөÑ/, 12467 ordinal: function ordinal(number, period) { 12468 switch (period) { 12469 case 'd': 12470 case 'D': 12471 case 'DDD': 12472 return number + ' өдөÑ'; 12473 12474 default: 12475 return number; 12476 } 12477 } 12478 }); 12479 return mn; 12480}); 12481 12482/***/ }), 12483
vendor: 7,628 bytes, lines 12484-12725
12484/***/ "../autobahn_client_core/node_modules/moment/locale/mr.js": 12485/*!****************************************************************!*\ 12486 !*** ../autobahn_client_core/node_modules/moment/locale/mr.js ***! 12487 \****************************************************************/ 12488/*! no static exports found */ 12489/***/ (function(module, exports, __webpack_require__) { 12490 12491var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 12492 12493//! moment.js locale configuration 12494//! locale : Marathi [mr] 12495//! author : Harshad Kale : https://github.com/kalehv 12496//! author : Vivek Athalye : https://github.com/vnathalye 12497; 12498 12499(function (global, factory) { 12500 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 12501 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 12502 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 12503 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 12504})(this, function (moment) { 12505 'use strict'; //! moment.js locale configuration 12506 12507 var symbolMap = { 12508 1: '१', 12509 2: '२', 12510 3: '३', 12511 4: '४', 12512 5: '५', 12513 6: '६', 12514 7: 'à¥', 12515 8: '८', 12516 9: '९', 12517 0: '०' 12518 }, 12519 numberMap = { 12520 '१': '1', 12521 '२': '2', 12522 '३': '3', 12523 '४': '4', 12524 '५': '5', 12525 '६': '6', 12526 'à¥': '7', 12527 '८': '8', 12528 '९': '9', 12529 '०': '0' 12530 }; 12531 12532 function relativeTimeMr(number, withoutSuffix, string, isFuture) { 12533 var output = ''; 12534 12535 if (withoutSuffix) { 12536 switch (string) { 12537 case 's': 12538 output = 'à¤à¤¾à¤¹à¥ सà¥à¤à¤à¤¦'; 12539 break; 12540 12541 case 'ss': 12542 output = '%d सà¥à¤à¤à¤¦'; 12543 break; 12544 12545 case 'm': 12546 output = 'à¤à¤ मिनिà¤'; 12547 break; 12548 12549 case 'mm': 12550 output = '%d मिनिà¤à¥'; 12551 break; 12552 12553 case 'h': 12554 output = 'à¤à¤ तास'; 12555 break; 12556 12557 case 'hh': 12558 output = '%d तास'; 12559 break; 12560 12561 case 'd': 12562 output = 'à¤à¤ दिवस'; 12563 break; 12564 12565 case 'dd': 12566 output = '%d दिवस'; 12567 break; 12568 12569 case 'M': 12570 output = 'à¤à¤ महिना'; 12571 break; 12572 12573 case 'MM': 12574 output = '%d महिनà¥'; 12575 break; 12576 12577 case 'y': 12578 output = 'à¤à¤ वरà¥à¤·'; 12579 break; 12580 12581 case 'yy': 12582 output = '%d वरà¥à¤·à¥'; 12583 break; 12584 } 12585 } else { 12586 switch (string) { 12587 case 's': 12588 output = 'à¤à¤¾à¤¹à¥ सà¥à¤à¤à¤¦à¤¾à¤'; 12589 break; 12590 12591 case 'ss': 12592 output = '%d सà¥à¤à¤à¤¦à¤¾à¤'; 12593 break; 12594 12595 case 'm': 12596 output = 'à¤à¤à¤¾ मिनिà¤à¤¾'; 12597 break; 12598 12599 case 'mm': 12600 output = '%d मिनिà¤à¤¾à¤'; 12601 break; 12602 12603 case 'h': 12604 output = 'à¤à¤à¤¾ तासा'; 12605 break; 12606 12607 case 'hh': 12608 output = '%d तासाà¤'; 12609 break; 12610 12611 case 'd': 12612 output = 'à¤à¤à¤¾ दिवसा'; 12613 break; 12614 12615 case 'dd': 12616 output = '%d दिवसाà¤'; 12617 break; 12618 12619 case 'M': 12620 output = 'à¤à¤à¤¾ महिनà¥à¤¯à¤¾'; 12621 break; 12622 12623 case 'MM': 12624 output = '%d महिनà¥à¤¯à¤¾à¤'; 12625 break; 12626 12627 case 'y': 12628 output = 'à¤à¤à¤¾ वरà¥à¤·à¤¾'; 12629 break; 12630 12631 case 'yy': 12632 output = '%d वरà¥à¤·à¤¾à¤'; 12633 break; 12634 } 12635 } 12636 12637 return output.replace(/%d/i, number); 12638 } 12639 12640 var mr = moment.defineLocale('mr', { 12641 months: 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥_मारà¥à¤_à¤à¤ªà¥à¤°à¤¿à¤²_मà¥_à¤à¥à¤¨_à¤à¥à¤²à¥_à¤à¤à¤¸à¥à¤_सपà¥à¤à¥à¤à¤¬à¤°_à¤à¤à¥à¤à¥à¤¬à¤°_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°_डिसà¥à¤à¤¬à¤°'.split('_'), 12642 monthsShort: 'à¤à¤¾à¤¨à¥._फà¥à¤¬à¥à¤°à¥._मारà¥à¤._à¤à¤ªà¥à¤°à¤¿._मà¥._à¤à¥à¤¨._à¤à¥à¤²à¥._à¤à¤._सपà¥à¤à¥à¤._à¤à¤à¥à¤à¥._नà¥à¤µà¥à¤¹à¥à¤._डिसà¥à¤.'.split('_'), 12643 monthsParseExact: true, 12644 weekdays: 'रविवार_सà¥à¤®à¤µà¤¾à¤°_मà¤à¤à¤³à¤µà¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_à¤à¥à¤°à¥à¤µà¤¾à¤°_शà¥à¤à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'), 12645 weekdaysShort: 'रवि_सà¥à¤®_मà¤à¤à¤³_बà¥à¤§_à¤à¥à¤°à¥_शà¥à¤à¥à¤°_शनि'.split('_'), 12646 weekdaysMin: 'र_सà¥_मà¤_बà¥_à¤à¥_शà¥_श'.split('_'), 12647 longDateFormat: { 12648 LT: 'A h:mm वाà¤à¤¤à¤¾', 12649 LTS: 'A h:mm:ss वाà¤à¤¤à¤¾', 12650 L: 'DD/MM/YYYY', 12651 LL: 'D MMMM YYYY', 12652 LLL: 'D MMMM YYYY, A h:mm वाà¤à¤¤à¤¾', 12653 LLLL: 'dddd, D MMMM YYYY, A h:mm वाà¤à¤¤à¤¾' 12654 }, 12655 calendar: { 12656 sameDay: '[à¤à¤] LT', 12657 nextDay: '[à¤à¤¦à¥à¤¯à¤¾] LT', 12658 nextWeek: 'dddd, LT', 12659 lastDay: '[à¤à¤¾à¤²] LT', 12660 lastWeek: '[माà¤à¥à¤²] dddd, LT', 12661 sameElse: 'L' 12662 }, 12663 relativeTime: { 12664 future: '%sमधà¥à¤¯à¥', 12665 past: '%sपà¥à¤°à¥à¤µà¥', 12666 s: relativeTimeMr, 12667 ss: relativeTimeMr, 12668 m: relativeTimeMr, 12669 mm: relativeTimeMr, 12670 h: relativeTimeMr, 12671 hh: relativeTimeMr, 12672 d: relativeTimeMr, 12673 dd: relativeTimeMr, 12674 M: relativeTimeMr, 12675 MM: relativeTimeMr, 12676 y: relativeTimeMr, 12677 yy: relativeTimeMr 12678 }, 12679 preparse: function preparse(string) { 12680 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 12681 return numberMap[match]; 12682 }); 12683 }, 12684 postformat: function postformat(string) { 12685 return string.replace(/\d/g, function (match) { 12686 return symbolMap[match]; 12687 }); 12688 }, 12689 meridiemParse: /पहाà¤à¥|सà¤à¤¾à¤³à¥|दà¥à¤ªà¤¾à¤°à¥|सायà¤à¤à¤¾à¤³à¥|रातà¥à¤°à¥/, 12690 meridiemHour: function meridiemHour(hour, meridiem) { 12691 if (hour === 12) { 12692 hour = 0; 12693 } 12694 12695 if (meridiem === 'पहाà¤à¥' || meridiem === 'सà¤à¤¾à¤³à¥') { 12696 return hour; 12697 } else if (meridiem === 'दà¥à¤ªà¤¾à¤°à¥' || meridiem === 'सायà¤à¤à¤¾à¤³à¥' || meridiem === 'रातà¥à¤°à¥') { 12698 return hour >= 12 ? hour : hour + 12; 12699 } 12700 }, 12701 meridiem: function meridiem(hour, minute, isLower) { 12702 if (hour >= 0 && hour < 6) { 12703 return 'पहाà¤à¥'; 12704 } else if (hour < 12) { 12705 return 'सà¤à¤¾à¤³à¥'; 12706 } else if (hour < 17) { 12707 return 'दà¥à¤ªà¤¾à¤°à¥'; 12708 } else if (hour < 20) { 12709 return 'सायà¤à¤à¤¾à¤³à¥'; 12710 } else { 12711 return 'रातà¥à¤°à¥'; 12712 } 12713 }, 12714 week: { 12715 dow: 0, 12716 // Sunday is the first day of the week. 12717 doy: 6 // The week that contains Jan 6th is the first week of the year. 12718 12719 } 12720 }); 12721 return mr; 12722}); 12723 12724/***/ }), 12725
vendor: 3,920 bytes, lines 12726-12823
12726/***/ "../autobahn_client_core/node_modules/moment/locale/ms-my.js": 12727/*!*******************************************************************!*\ 12728 !*** ../autobahn_client_core/node_modules/moment/locale/ms-my.js ***! 12729 \*******************************************************************/ 12730/*! no static exports found */ 12731/***/ (function(module, exports, __webpack_require__) { 12732 12733var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 12734 12735//! moment.js locale configuration 12736//! locale : Malay [ms-my] 12737//! note : DEPRECATED, the correct one is [ms] 12738//! author : Weldan Jamili : https://github.com/weldan 12739; 12740 12741(function (global, factory) { 12742 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 12743 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 12744 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 12745 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 12746})(this, function (moment) { 12747 'use strict'; //! moment.js locale configuration 12748 12749 var msMy = moment.defineLocale('ms-my', { 12750 months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'), 12751 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), 12752 weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), 12753 weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), 12754 weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), 12755 longDateFormat: { 12756 LT: 'HH.mm', 12757 LTS: 'HH.mm.ss', 12758 L: 'DD/MM/YYYY', 12759 LL: 'D MMMM YYYY', 12760 LLL: 'D MMMM YYYY [pukul] HH.mm', 12761 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm' 12762 }, 12763 meridiemParse: /pagi|tengahari|petang|malam/, 12764 meridiemHour: function meridiemHour(hour, meridiem) { 12765 if (hour === 12) { 12766 hour = 0; 12767 } 12768 12769 if (meridiem === 'pagi') { 12770 return hour; 12771 } else if (meridiem === 'tengahari') { 12772 return hour >= 11 ? hour : hour + 12; 12773 } else if (meridiem === 'petang' || meridiem === 'malam') { 12774 return hour + 12; 12775 } 12776 }, 12777 meridiem: function meridiem(hours, minutes, isLower) { 12778 if (hours < 11) { 12779 return 'pagi'; 12780 } else if (hours < 15) { 12781 return 'tengahari'; 12782 } else if (hours < 19) { 12783 return 'petang'; 12784 } else { 12785 return 'malam'; 12786 } 12787 }, 12788 calendar: { 12789 sameDay: '[Hari ini pukul] LT', 12790 nextDay: '[Esok pukul] LT', 12791 nextWeek: 'dddd [pukul] LT', 12792 lastDay: '[Kelmarin pukul] LT', 12793 lastWeek: 'dddd [lepas pukul] LT', 12794 sameElse: 'L' 12795 }, 12796 relativeTime: { 12797 future: 'dalam %s', 12798 past: '%s yang lepas', 12799 s: 'beberapa saat', 12800 ss: '%d saat', 12801 m: 'seminit', 12802 mm: '%d minit', 12803 h: 'sejam', 12804 hh: '%d jam', 12805 d: 'sehari', 12806 dd: '%d hari', 12807 M: 'sebulan', 12808 MM: '%d bulan', 12809 y: 'setahun', 12810 yy: '%d tahun' 12811 }, 12812 week: { 12813 dow: 1, 12814 // Monday is the first day of the week. 12815 doy: 7 // The week that contains Jan 7th is the first week of the year. 12816 12817 } 12818 }); 12819 return msMy; 12820}); 12821 12822/***/ }), 12823
vendor: 3,851 bytes, lines 12824-12920
12824/***/ "../autobahn_client_core/node_modules/moment/locale/ms.js": 12825/*!****************************************************************!*\ 12826 !*** ../autobahn_client_core/node_modules/moment/locale/ms.js ***! 12827 \****************************************************************/ 12828/*! no static exports found */ 12829/***/ (function(module, exports, __webpack_require__) { 12830 12831var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 12832 12833//! moment.js locale configuration 12834//! locale : Malay [ms] 12835//! author : Weldan Jamili : https://github.com/weldan 12836; 12837 12838(function (global, factory) { 12839 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 12840 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 12841 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 12842 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 12843})(this, function (moment) { 12844 'use strict'; //! moment.js locale configuration 12845 12846 var ms = moment.defineLocale('ms', { 12847 months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'), 12848 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), 12849 weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), 12850 weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), 12851 weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), 12852 longDateFormat: { 12853 LT: 'HH.mm', 12854 LTS: 'HH.mm.ss', 12855 L: 'DD/MM/YYYY', 12856 LL: 'D MMMM YYYY', 12857 LLL: 'D MMMM YYYY [pukul] HH.mm', 12858 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm' 12859 }, 12860 meridiemParse: /pagi|tengahari|petang|malam/, 12861 meridiemHour: function meridiemHour(hour, meridiem) { 12862 if (hour === 12) { 12863 hour = 0; 12864 } 12865 12866 if (meridiem === 'pagi') { 12867 return hour; 12868 } else if (meridiem === 'tengahari') { 12869 return hour >= 11 ? hour : hour + 12; 12870 } else if (meridiem === 'petang' || meridiem === 'malam') { 12871 return hour + 12; 12872 } 12873 }, 12874 meridiem: function meridiem(hours, minutes, isLower) { 12875 if (hours < 11) { 12876 return 'pagi'; 12877 } else if (hours < 15) { 12878 return 'tengahari'; 12879 } else if (hours < 19) { 12880 return 'petang'; 12881 } else { 12882 return 'malam'; 12883 } 12884 }, 12885 calendar: { 12886 sameDay: '[Hari ini pukul] LT', 12887 nextDay: '[Esok pukul] LT', 12888 nextWeek: 'dddd [pukul] LT', 12889 lastDay: '[Kelmarin pukul] LT', 12890 lastWeek: 'dddd [lepas pukul] LT', 12891 sameElse: 'L' 12892 }, 12893 relativeTime: { 12894 future: 'dalam %s', 12895 past: '%s yang lepas', 12896 s: 'beberapa saat', 12897 ss: '%d saat', 12898 m: 'seminit', 12899 mm: '%d minit', 12900 h: 'sejam', 12901 hh: '%d jam', 12902 d: 'sehari', 12903 dd: '%d hari', 12904 M: 'sebulan', 12905 MM: '%d bulan', 12906 y: 'setahun', 12907 yy: '%d tahun' 12908 }, 12909 week: { 12910 dow: 1, 12911 // Monday is the first day of the week. 12912 doy: 7 // The week that contains Jan 7th is the first week of the year. 12913 12914 } 12915 }); 12916 return ms; 12917}); 12918 12919/***/ }), 12920
vendor: 3,261 bytes, lines 12921-12994
12921/***/ "../autobahn_client_core/node_modules/moment/locale/mt.js": 12922/*!****************************************************************!*\ 12923 !*** ../autobahn_client_core/node_modules/moment/locale/mt.js ***! 12924 \****************************************************************/ 12925/*! no static exports found */ 12926/***/ (function(module, exports, __webpack_require__) { 12927 12928var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 12929 12930//! moment.js locale configuration 12931//! locale : Maltese (Malta) [mt] 12932//! author : Alessandro Maruccia : https://github.com/alesma 12933; 12934 12935(function (global, factory) { 12936 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 12937 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 12938 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 12939 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 12940})(this, function (moment) { 12941 'use strict'; //! moment.js locale configuration 12942 12943 var mt = moment.defineLocale('mt', { 12944 months: 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_DiÄembru'.split('_'), 12945 monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_DiÄ'.split('_'), 12946 weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split('_'), 12947 weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'), 12948 weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'), 12949 longDateFormat: { 12950 LT: 'HH:mm', 12951 LTS: 'HH:mm:ss', 12952 L: 'DD/MM/YYYY', 12953 LL: 'D MMMM YYYY', 12954 LLL: 'D MMMM YYYY HH:mm', 12955 LLLL: 'dddd, D MMMM YYYY HH:mm' 12956 }, 12957 calendar: { 12958 sameDay: '[Illum fil-]LT', 12959 nextDay: '[Għada fil-]LT', 12960 nextWeek: 'dddd [fil-]LT', 12961 lastDay: '[Il-bieraħ fil-]LT', 12962 lastWeek: 'dddd [li għadda] [fil-]LT', 12963 sameElse: 'L' 12964 }, 12965 relativeTime: { 12966 future: 'fâ %s', 12967 past: '%s ilu', 12968 s: 'ftit sekondi', 12969 ss: '%d sekondi', 12970 m: 'minuta', 12971 mm: '%d minuti', 12972 h: 'siegħa', 12973 hh: '%d siegħat', 12974 d: 'Ä¡urnata', 12975 dd: '%d Ä¡ranet', 12976 M: 'xahar', 12977 MM: '%d xhur', 12978 y: 'sena', 12979 yy: '%d sni' 12980 }, 12981 dayOfMonthOrdinalParse: /\d{1,2}º/, 12982 ordinal: '%dº', 12983 week: { 12984 dow: 1, 12985 // Monday is the first day of the week. 12986 doy: 4 // The week that contains Jan 4th is the first week of the year. 12987 12988 } 12989 }); 12990 return mt; 12991}); 12992 12993/***/ }), 12994
vendor: 4,605 bytes, lines 12995-13102
12995/***/ "../autobahn_client_core/node_modules/moment/locale/my.js": 12996/*!****************************************************************!*\ 12997 !*** ../autobahn_client_core/node_modules/moment/locale/my.js ***! 12998 \****************************************************************/ 12999/*! no static exports found */ 13000/***/ (function(module, exports, __webpack_require__) { 13001 13002var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 13003 13004//! moment.js locale configuration 13005//! locale : Burmese [my] 13006//! author : Squar team, mysquar.com 13007//! author : David Rossellat : https://github.com/gholadr 13008//! author : Tin Aung Lin : https://github.com/thanyawzinmin 13009; 13010 13011(function (global, factory) { 13012 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 13013 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 13014 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 13015 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 13016})(this, function (moment) { 13017 'use strict'; //! moment.js locale configuration 13018 13019 var symbolMap = { 13020 1: 'á', 13021 2: 'á', 13022 3: 'á', 13023 4: 'á', 13024 5: 'á ', 13025 6: 'á', 13026 7: 'á', 13027 8: 'á', 13028 9: 'á', 13029 0: 'á' 13030 }, 13031 numberMap = { 13032 'á': '1', 13033 'á': '2', 13034 'á': '3', 13035 'á': '4', 13036 'á ': '5', 13037 'á': '6', 13038 'á': '7', 13039 'á': '8', 13040 'á': '9', 13041 'á': '0' 13042 }; 13043 var my = moment.defineLocale('my', { 13044 months: 'áááºááá«áá®_áá±áá±á¬áºáá«áá®_áááº_á§áá¼á®_áá±_áá½ááº_áá°ááá¯ááº_áá¼áá¯ááº_á ááºáááºáá¬_á¡á±á¬ááºááá¯áá¬_ááá¯áááºáá¬_áá®áááºáá¬'.split('_'), 13045 monthsShort: 'áááº_áá±_áááº_áá¼á®_áá±_áá½ááº_ááá¯ááº_áá¼_á ááº_á¡á±á¬ááº_ááá¯_áá®'.split('_'), 13046 weekdays: 'ááááºá¹ááá½á±_ááááºá¹áá¬_á¡ááºá¹áá«_áá¯áá¹ááá°á¸_áá¼á¬áááá±á¸_áá±á¬áá¼á¬_á áá±'.split('_'), 13047 weekdaysShort: 'áá½á±_áá¬_áá«_áá°á¸_áá¼á¬_áá±á¬_áá±'.split('_'), 13048 weekdaysMin: 'áá½á±_áá¬_áá«_áá°á¸_áá¼á¬_áá±á¬_áá±'.split('_'), 13049 longDateFormat: { 13050 LT: 'HH:mm', 13051 LTS: 'HH:mm:ss', 13052 L: 'DD/MM/YYYY', 13053 LL: 'D MMMM YYYY', 13054 LLL: 'D MMMM YYYY HH:mm', 13055 LLLL: 'dddd D MMMM YYYY HH:mm' 13056 }, 13057 calendar: { 13058 sameDay: '[ááá±.] LT [áá¾á¬]', 13059 nextDay: '[ááááºáá¼ááº] LT [áá¾á¬]', 13060 nextWeek: 'dddd LT [áá¾á¬]', 13061 lastDay: '[ááá±.á] LT [áá¾á¬]', 13062 lastWeek: '[áá¼á®á¸áá²á·áá±á¬] dddd LT [áá¾á¬]', 13063 sameElse: 'L' 13064 }, 13065 relativeTime: { 13066 future: 'áá¬áááºá· %s áá¾á¬', 13067 past: 'áá½ááºáá²á·áá±á¬ %s á', 13068 s: 'á áá¹áááº.á¡áááºá¸áááº', 13069 ss: '%d á áá¹ááá·áº', 13070 m: 'áá áºáááá áº', 13071 mm: '%d áááá áº', 13072 h: 'áá áºáá¬áá®', 13073 hh: '%d áá¬áá®', 13074 d: 'áá áºáááº', 13075 dd: '%d áááº', 13076 M: 'áá áºá', 13077 MM: '%d á', 13078 y: 'áá áºáá¾á áº', 13079 yy: '%d áá¾á áº' 13080 }, 13081 preparse: function preparse(string) { 13082 return string.replace(/[ááááá ááááá]/g, function (match) { 13083 return numberMap[match]; 13084 }); 13085 }, 13086 postformat: function postformat(string) { 13087 return string.replace(/\d/g, function (match) { 13088 return symbolMap[match]; 13089 }); 13090 }, 13091 week: { 13092 dow: 1, 13093 // Monday is the first day of the week. 13094 doy: 4 // The week that contains Jan 4th is the first week of the year. 13095 13096 } 13097 }); 13098 return my; 13099}); 13100 13101/***/ }), 13102
vendor: 3,494 bytes, lines 13103-13182
13103/***/ "../autobahn_client_core/node_modules/moment/locale/nb.js": 13104/*!****************************************************************!*\ 13105 !*** ../autobahn_client_core/node_modules/moment/locale/nb.js ***! 13106 \****************************************************************/ 13107/*! no static exports found */ 13108/***/ (function(module, exports, __webpack_require__) { 13109 13110var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 13111 13112//! moment.js locale configuration 13113//! locale : Norwegian Bokmål [nb] 13114//! authors : Espen Hovlandsdal : https://github.com/rexxars 13115//! Sigurd Gartmann : https://github.com/sigurdga 13116//! Stephen Ramthun : https://github.com/stephenramthun 13117; 13118 13119(function (global, factory) { 13120 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 13121 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 13122 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 13123 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 13124})(this, function (moment) { 13125 'use strict'; //! moment.js locale configuration 13126 13127 var nb = moment.defineLocale('nb', { 13128 months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), 13129 monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), 13130 monthsParseExact: true, 13131 weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), 13132 weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), 13133 weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), 13134 weekdaysParseExact: true, 13135 longDateFormat: { 13136 LT: 'HH:mm', 13137 LTS: 'HH:mm:ss', 13138 L: 'DD.MM.YYYY', 13139 LL: 'D. MMMM YYYY', 13140 LLL: 'D. MMMM YYYY [kl.] HH:mm', 13141 LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm' 13142 }, 13143 calendar: { 13144 sameDay: '[i dag kl.] LT', 13145 nextDay: '[i morgen kl.] LT', 13146 nextWeek: 'dddd [kl.] LT', 13147 lastDay: '[i går kl.] LT', 13148 lastWeek: '[forrige] dddd [kl.] LT', 13149 sameElse: 'L' 13150 }, 13151 relativeTime: { 13152 future: 'om %s', 13153 past: '%s siden', 13154 s: 'noen sekunder', 13155 ss: '%d sekunder', 13156 m: 'ett minutt', 13157 mm: '%d minutter', 13158 h: 'en time', 13159 hh: '%d timer', 13160 d: 'en dag', 13161 dd: '%d dager', 13162 w: 'en uke', 13163 ww: '%d uker', 13164 M: 'en måned', 13165 MM: '%d måneder', 13166 y: 'ett år', 13167 yy: '%d år' 13168 }, 13169 dayOfMonthOrdinalParse: /\d{1,2}\./, 13170 ordinal: '%d.', 13171 week: { 13172 dow: 1, 13173 // Monday is the first day of the week. 13174 doy: 4 // The week that contains Jan 4th is the first week of the year. 13175 13176 } 13177 }); 13178 return nb; 13179}); 13180 13181/***/ }), 13182
vendor: 5,468 bytes, lines 13183-13319
13183/***/ "../autobahn_client_core/node_modules/moment/locale/ne.js": 13184/*!****************************************************************!*\ 13185 !*** ../autobahn_client_core/node_modules/moment/locale/ne.js ***! 13186 \****************************************************************/ 13187/*! no static exports found */ 13188/***/ (function(module, exports, __webpack_require__) { 13189 13190var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 13191 13192//! moment.js locale configuration 13193//! locale : Nepalese [ne] 13194//! author : suvash : https://github.com/suvash 13195; 13196 13197(function (global, factory) { 13198 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 13199 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 13200 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 13201 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 13202})(this, function (moment) { 13203 'use strict'; //! moment.js locale configuration 13204 13205 var symbolMap = { 13206 1: '१', 13207 2: '२', 13208 3: '३', 13209 4: '४', 13210 5: '५', 13211 6: '६', 13212 7: 'à¥', 13213 8: '८', 13214 9: '९', 13215 0: '०' 13216 }, 13217 numberMap = { 13218 '१': '1', 13219 '२': '2', 13220 '३': '3', 13221 '४': '4', 13222 '५': '5', 13223 '६': '6', 13224 'à¥': '7', 13225 '८': '8', 13226 '९': '9', 13227 '०': '0' 13228 }; 13229 var ne = moment.defineLocale('ne', { 13230 months: 'à¤à¤¨à¤µà¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤°à¥_मारà¥à¤_ठपà¥à¤°à¤¿à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤·à¥à¤_सà¥à¤ªà¥à¤à¥à¤®à¥à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नà¥à¤à¥à¤®à¥à¤¬à¤°_डिसà¥à¤®à¥à¤¬à¤°'.split('_'), 13231 monthsShort: 'à¤à¤¨._फà¥à¤¬à¥à¤°à¥._मारà¥à¤_ठपà¥à¤°à¤¿._मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤._ठà¤._सà¥à¤ªà¥à¤._ठà¤à¥à¤à¥._नà¥à¤à¥._डिसà¥.'.split('_'), 13232 monthsParseExact: true, 13233 weekdays: 'à¤à¤à¤¤à¤¬à¤¾à¤°_सà¥à¤®à¤¬à¤¾à¤°_मà¤à¥à¤à¤²à¤¬à¤¾à¤°_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split('_'), 13234 weekdaysShort: 'à¤à¤à¤¤._सà¥à¤®._मà¤à¥à¤à¤²._बà¥à¤§._बिहि._शà¥à¤à¥à¤°._शनि.'.split('_'), 13235 weekdaysMin: 'à¤._सà¥._मà¤._बà¥._बि._शà¥._श.'.split('_'), 13236 weekdaysParseExact: true, 13237 longDateFormat: { 13238 LT: 'Aà¤à¥ h:mm बà¤à¥', 13239 LTS: 'Aà¤à¥ h:mm:ss बà¤à¥', 13240 L: 'DD/MM/YYYY', 13241 LL: 'D MMMM YYYY', 13242 LLL: 'D MMMM YYYY, Aà¤à¥ h:mm बà¤à¥', 13243 LLLL: 'dddd, D MMMM YYYY, Aà¤à¥ h:mm बà¤à¥' 13244 }, 13245 preparse: function preparse(string) { 13246 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 13247 return numberMap[match]; 13248 }); 13249 }, 13250 postformat: function postformat(string) { 13251 return string.replace(/\d/g, function (match) { 13252 return symbolMap[match]; 13253 }); 13254 }, 13255 meridiemParse: /राति|बिहान|दिà¤à¤à¤¸à¥|साà¤à¤/, 13256 meridiemHour: function meridiemHour(hour, meridiem) { 13257 if (hour === 12) { 13258 hour = 0; 13259 } 13260 13261 if (meridiem === 'राति') { 13262 return hour < 4 ? hour : hour + 12; 13263 } else if (meridiem === 'बिहान') { 13264 return hour; 13265 } else if (meridiem === 'दिà¤à¤à¤¸à¥') { 13266 return hour >= 10 ? hour : hour + 12; 13267 } else if (meridiem === 'साà¤à¤') { 13268 return hour + 12; 13269 } 13270 }, 13271 meridiem: function meridiem(hour, minute, isLower) { 13272 if (hour < 3) { 13273 return 'राति'; 13274 } else if (hour < 12) { 13275 return 'बिहान'; 13276 } else if (hour < 16) { 13277 return 'दिà¤à¤à¤¸à¥'; 13278 } else if (hour < 20) { 13279 return 'साà¤à¤'; 13280 } else { 13281 return 'राति'; 13282 } 13283 }, 13284 calendar: { 13285 sameDay: '[à¤à¤] LT', 13286 nextDay: '[à¤à¥à¤²à¤¿] LT', 13287 nextWeek: '[à¤à¤à¤à¤¦à¥] dddd[,] LT', 13288 lastDay: '[हिà¤à¥] LT', 13289 lastWeek: '[à¤à¤à¤à¥] dddd[,] LT', 13290 sameElse: 'L' 13291 }, 13292 relativeTime: { 13293 future: '%sमा', 13294 past: '%s ठà¤à¤¾à¤¡à¤¿', 13295 s: 'à¤à¥à¤¹à¥ à¤à¥à¤·à¤£', 13296 ss: '%d सà¥à¤à¥à¤£à¥à¤¡', 13297 m: 'à¤à¤ मिनà¥à¤', 13298 mm: '%d मिनà¥à¤', 13299 h: 'à¤à¤ à¤à¤£à¥à¤à¤¾', 13300 hh: '%d à¤à¤£à¥à¤à¤¾', 13301 d: 'à¤à¤ दिन', 13302 dd: '%d दिन', 13303 M: 'à¤à¤ महिना', 13304 MM: '%d महिना', 13305 y: 'à¤à¤ बरà¥à¤·', 13306 yy: '%d बरà¥à¤·' 13307 }, 13308 week: { 13309 dow: 0, 13310 // Sunday is the first day of the week. 13311 doy: 6 // The week that contains Jan 6th is the first week of the year. 13312 13313 } 13314 }); 13315 return ne; 13316}); 13317 13318/***/ }), 13319
vendor: 4,605 bytes, lines 13320-13416
13320/***/ "../autobahn_client_core/node_modules/moment/locale/nl-be.js": 13321/*!*******************************************************************!*\ 13322 !*** ../autobahn_client_core/node_modules/moment/locale/nl-be.js ***! 13323 \*******************************************************************/ 13324/*! no static exports found */ 13325/***/ (function(module, exports, __webpack_require__) { 13326 13327var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 13328 13329//! moment.js locale configuration 13330//! locale : Dutch (Belgium) [nl-be] 13331//! author : Joris Röling : https://github.com/jorisroling 13332//! author : Jacob Middag : https://github.com/middagj 13333; 13334 13335(function (global, factory) { 13336 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 13337 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 13338 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 13339 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 13340})(this, function (moment) { 13341 'use strict'; //! moment.js locale configuration 13342 13343 var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), 13344 monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), 13345 monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i], 13346 monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; 13347 var nlBe = moment.defineLocale('nl-be', { 13348 months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), 13349 monthsShort: function monthsShort(m, format) { 13350 if (!m) { 13351 return monthsShortWithDots; 13352 } else if (/-MMM-/.test(format)) { 13353 return monthsShortWithoutDots[m.month()]; 13354 } else { 13355 return monthsShortWithDots[m.month()]; 13356 } 13357 }, 13358 monthsRegex: monthsRegex, 13359 monthsShortRegex: monthsRegex, 13360 monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, 13361 monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, 13362 monthsParse: monthsParse, 13363 longMonthsParse: monthsParse, 13364 shortMonthsParse: monthsParse, 13365 weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), 13366 weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), 13367 weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), 13368 weekdaysParseExact: true, 13369 longDateFormat: { 13370 LT: 'HH:mm', 13371 LTS: 'HH:mm:ss', 13372 L: 'DD/MM/YYYY', 13373 LL: 'D MMMM YYYY', 13374 LLL: 'D MMMM YYYY HH:mm', 13375 LLLL: 'dddd D MMMM YYYY HH:mm' 13376 }, 13377 calendar: { 13378 sameDay: '[vandaag om] LT', 13379 nextDay: '[morgen om] LT', 13380 nextWeek: 'dddd [om] LT', 13381 lastDay: '[gisteren om] LT', 13382 lastWeek: '[afgelopen] dddd [om] LT', 13383 sameElse: 'L' 13384 }, 13385 relativeTime: { 13386 future: 'over %s', 13387 past: '%s geleden', 13388 s: 'een paar seconden', 13389 ss: '%d seconden', 13390 m: 'één minuut', 13391 mm: '%d minuten', 13392 h: 'één uur', 13393 hh: '%d uur', 13394 d: 'één dag', 13395 dd: '%d dagen', 13396 M: 'één maand', 13397 MM: '%d maanden', 13398 y: 'één jaar', 13399 yy: '%d jaar' 13400 }, 13401 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 13402 ordinal: function ordinal(number) { 13403 return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); 13404 }, 13405 week: { 13406 dow: 1, 13407 // Monday is the first day of the week. 13408 doy: 4 // The week that contains Jan 4th is the first week of the year. 13409 13410 } 13411 }); 13412 return nlBe; 13413}); 13414 13415/***/ }), 13416
vendor: 4,618 bytes, lines 13417-13515
13417/***/ "../autobahn_client_core/node_modules/moment/locale/nl.js": 13418/*!****************************************************************!*\ 13419 !*** ../autobahn_client_core/node_modules/moment/locale/nl.js ***! 13420 \****************************************************************/ 13421/*! no static exports found */ 13422/***/ (function(module, exports, __webpack_require__) { 13423 13424var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 13425 13426//! moment.js locale configuration 13427//! locale : Dutch [nl] 13428//! author : Joris Röling : https://github.com/jorisroling 13429//! author : Jacob Middag : https://github.com/middagj 13430; 13431 13432(function (global, factory) { 13433 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 13434 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 13435 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 13436 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 13437})(this, function (moment) { 13438 'use strict'; //! moment.js locale configuration 13439 13440 var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), 13441 monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), 13442 monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i], 13443 monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; 13444 var nl = moment.defineLocale('nl', { 13445 months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), 13446 monthsShort: function monthsShort(m, format) { 13447 if (!m) { 13448 return monthsShortWithDots; 13449 } else if (/-MMM-/.test(format)) { 13450 return monthsShortWithoutDots[m.month()]; 13451 } else { 13452 return monthsShortWithDots[m.month()]; 13453 } 13454 }, 13455 monthsRegex: monthsRegex, 13456 monthsShortRegex: monthsRegex, 13457 monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, 13458 monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, 13459 monthsParse: monthsParse, 13460 longMonthsParse: monthsParse, 13461 shortMonthsParse: monthsParse, 13462 weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), 13463 weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), 13464 weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), 13465 weekdaysParseExact: true, 13466 longDateFormat: { 13467 LT: 'HH:mm', 13468 LTS: 'HH:mm:ss', 13469 L: 'DD-MM-YYYY', 13470 LL: 'D MMMM YYYY', 13471 LLL: 'D MMMM YYYY HH:mm', 13472 LLLL: 'dddd D MMMM YYYY HH:mm' 13473 }, 13474 calendar: { 13475 sameDay: '[vandaag om] LT', 13476 nextDay: '[morgen om] LT', 13477 nextWeek: 'dddd [om] LT', 13478 lastDay: '[gisteren om] LT', 13479 lastWeek: '[afgelopen] dddd [om] LT', 13480 sameElse: 'L' 13481 }, 13482 relativeTime: { 13483 future: 'over %s', 13484 past: '%s geleden', 13485 s: 'een paar seconden', 13486 ss: '%d seconden', 13487 m: 'één minuut', 13488 mm: '%d minuten', 13489 h: 'één uur', 13490 hh: '%d uur', 13491 d: 'één dag', 13492 dd: '%d dagen', 13493 w: 'één week', 13494 ww: '%d weken', 13495 M: 'één maand', 13496 MM: '%d maanden', 13497 y: 'één jaar', 13498 yy: '%d jaar' 13499 }, 13500 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 13501 ordinal: function ordinal(number) { 13502 return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); 13503 }, 13504 week: { 13505 dow: 1, 13506 // Monday is the first day of the week. 13507 doy: 4 // The week that contains Jan 4th is the first week of the year. 13508 13509 } 13510 }); 13511 return nl; 13512}); 13513 13514/***/ }), 13515
vendor: 3,423 bytes, lines 13516-13594
13516/***/ "../autobahn_client_core/node_modules/moment/locale/nn.js": 13517/*!****************************************************************!*\ 13518 !*** ../autobahn_client_core/node_modules/moment/locale/nn.js ***! 13519 \****************************************************************/ 13520/*! no static exports found */ 13521/***/ (function(module, exports, __webpack_require__) { 13522 13523var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 13524 13525//! moment.js locale configuration 13526//! locale : Nynorsk [nn] 13527//! authors : https://github.com/mechuwind 13528//! Stephen Ramthun : https://github.com/stephenramthun 13529; 13530 13531(function (global, factory) { 13532 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 13533 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 13534 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 13535 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 13536})(this, function (moment) { 13537 'use strict'; //! moment.js locale configuration 13538 13539 var nn = moment.defineLocale('nn', { 13540 months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), 13541 monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), 13542 monthsParseExact: true, 13543 weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), 13544 weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), 13545 weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), 13546 weekdaysParseExact: true, 13547 longDateFormat: { 13548 LT: 'HH:mm', 13549 LTS: 'HH:mm:ss', 13550 L: 'DD.MM.YYYY', 13551 LL: 'D. MMMM YYYY', 13552 LLL: 'D. MMMM YYYY [kl.] H:mm', 13553 LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm' 13554 }, 13555 calendar: { 13556 sameDay: '[I dag klokka] LT', 13557 nextDay: '[I morgon klokka] LT', 13558 nextWeek: 'dddd [klokka] LT', 13559 lastDay: '[I går klokka] LT', 13560 lastWeek: '[Føregåande] dddd [klokka] LT', 13561 sameElse: 'L' 13562 }, 13563 relativeTime: { 13564 future: 'om %s', 13565 past: '%s sidan', 13566 s: 'nokre sekund', 13567 ss: '%d sekund', 13568 m: 'eit minutt', 13569 mm: '%d minutt', 13570 h: 'ein time', 13571 hh: '%d timar', 13572 d: 'ein dag', 13573 dd: '%d dagar', 13574 w: 'ei veke', 13575 ww: '%d veker', 13576 M: 'ein månad', 13577 MM: '%d månader', 13578 y: 'eit år', 13579 yy: '%d år' 13580 }, 13581 dayOfMonthOrdinalParse: /\d{1,2}\./, 13582 ordinal: '%d.', 13583 week: { 13584 dow: 1, 13585 // Monday is the first day of the week. 13586 doy: 4 // The week that contains Jan 4th is the first week of the year. 13587 13588 } 13589 }); 13590 return nn; 13591}); 13592 13593/***/ }), 13594
vendor: 3,850 bytes, lines 13595-13684
13595/***/ "../autobahn_client_core/node_modules/moment/locale/oc-lnc.js": 13596/*!********************************************************************!*\ 13597 !*** ../autobahn_client_core/node_modules/moment/locale/oc-lnc.js ***! 13598 \********************************************************************/ 13599/*! no static exports found */ 13600/***/ (function(module, exports, __webpack_require__) { 13601 13602var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 13603 13604//! moment.js locale configuration 13605//! locale : Occitan, lengadocian dialecte [oc-lnc] 13606//! author : Quentin PAGÃS : https://github.com/Quenty31 13607; 13608 13609(function (global, factory) { 13610 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 13611 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 13612 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 13613 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 13614})(this, function (moment) { 13615 'use strict'; //! moment.js locale configuration 13616 13617 var ocLnc = moment.defineLocale('oc-lnc', { 13618 months: { 13619 standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split('_'), 13620 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('_'), 13621 isFormat: /D[oD]?(\s)+MMMM/ 13622 }, 13623 monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split('_'), 13624 monthsParseExact: true, 13625 weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split('_'), 13626 weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), 13627 weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), 13628 weekdaysParseExact: true, 13629 longDateFormat: { 13630 LT: 'H:mm', 13631 LTS: 'H:mm:ss', 13632 L: 'DD/MM/YYYY', 13633 LL: 'D MMMM [de] YYYY', 13634 ll: 'D MMM YYYY', 13635 LLL: 'D MMMM [de] YYYY [a] H:mm', 13636 lll: 'D MMM YYYY, H:mm', 13637 LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', 13638 llll: 'ddd D MMM YYYY, H:mm' 13639 }, 13640 calendar: { 13641 sameDay: '[uèi a] LT', 13642 nextDay: '[deman a] LT', 13643 nextWeek: 'dddd [a] LT', 13644 lastDay: '[ièr a] LT', 13645 lastWeek: 'dddd [passat a] LT', 13646 sameElse: 'L' 13647 }, 13648 relativeTime: { 13649 future: "d'aquà %s", 13650 past: 'fa %s', 13651 s: 'unas segondas', 13652 ss: '%d segondas', 13653 m: 'una minuta', 13654 mm: '%d minutas', 13655 h: 'una ora', 13656 hh: '%d oras', 13657 d: 'un jorn', 13658 dd: '%d jorns', 13659 M: 'un mes', 13660 MM: '%d meses', 13661 y: 'un an', 13662 yy: '%d ans' 13663 }, 13664 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, 13665 ordinal: function ordinal(number, period) { 13666 var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è'; 13667 13668 if (period === 'w' || period === 'W') { 13669 output = 'a'; 13670 } 13671 13672 return number + output; 13673 }, 13674 week: { 13675 dow: 1, 13676 // Monday is the first day of the week. 13677 doy: 4 13678 } 13679 }); 13680 return ocLnc; 13681}); 13682 13683/***/ }), 13684
vendor: 5,651 bytes, lines 13685-13822
13685/***/ "../autobahn_client_core/node_modules/moment/locale/pa-in.js": 13686/*!*******************************************************************!*\ 13687 !*** ../autobahn_client_core/node_modules/moment/locale/pa-in.js ***! 13688 \*******************************************************************/ 13689/*! no static exports found */ 13690/***/ (function(module, exports, __webpack_require__) { 13691 13692var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 13693 13694//! moment.js locale configuration 13695//! locale : Punjabi (India) [pa-in] 13696//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit 13697; 13698 13699(function (global, factory) { 13700 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 13701 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 13702 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 13703 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 13704})(this, function (moment) { 13705 'use strict'; //! moment.js locale configuration 13706 13707 var symbolMap = { 13708 1: 'à©§', 13709 2: '੨', 13710 3: 'à©©', 13711 4: '੪', 13712 5: 'à©«', 13713 6: '੬', 13714 7: 'à©', 13715 8: 'à©®', 13716 9: '੯', 13717 0: '੦' 13718 }, 13719 numberMap = { 13720 'à©§': '1', 13721 '੨': '2', 13722 'à©©': '3', 13723 '੪': '4', 13724 'à©«': '5', 13725 '੬': '6', 13726 'à©': '7', 13727 'à©®': '8', 13728 '੯': '9', 13729 '੦': '0' 13730 }; 13731 var paIn = moment.defineLocale('pa-in', { 13732 // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. 13733 months: 'à¨à¨¨à¨µà¨°à©_ਫ਼ਰਵਰà©_ਮਾਰà¨_ਠਪà©à¨°à©à¨²_ਮà¨_à¨à©à¨¨_à¨à©à¨²à¨¾à¨_ਠà¨à¨¸à¨¤_ਸਤੰਬਰ_ਠà¨à¨¤à©à¨¬à¨°_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), 13734 monthsShort: 'à¨à¨¨à¨µà¨°à©_ਫ਼ਰਵਰà©_ਮਾਰà¨_ਠਪà©à¨°à©à¨²_ਮà¨_à¨à©à¨¨_à¨à©à¨²à¨¾à¨_ਠà¨à¨¸à¨¤_ਸਤੰਬਰ_ਠà¨à¨¤à©à¨¬à¨°_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), 13735 weekdays: 'à¨à¨¤à¨µà¨¾à¨°_ਸà©à¨®à¨µà¨¾à¨°_ਮੰà¨à¨²à¨µà¨¾à¨°_ਬà©à¨§à¨µà¨¾à¨°_ਵà©à¨°à¨µà¨¾à¨°_ਸ਼à©à©±à¨à¨°à¨µà¨¾à¨°_ਸ਼ਨà©à¨à¨°à¨µà¨¾à¨°'.split('_'), 13736 weekdaysShort: 'à¨à¨¤_ਸà©à¨®_ਮੰà¨à¨²_ਬà©à¨§_ਵà©à¨°_ਸ਼à©à¨à¨°_ਸ਼ਨà©'.split('_'), 13737 weekdaysMin: 'à¨à¨¤_ਸà©à¨®_ਮੰà¨à¨²_ਬà©à¨§_ਵà©à¨°_ਸ਼à©à¨à¨°_ਸ਼ਨà©'.split('_'), 13738 longDateFormat: { 13739 LT: 'A h:mm ਵà¨à©', 13740 LTS: 'A h:mm:ss ਵà¨à©', 13741 L: 'DD/MM/YYYY', 13742 LL: 'D MMMM YYYY', 13743 LLL: 'D MMMM YYYY, A h:mm ਵà¨à©', 13744 LLLL: 'dddd, D MMMM YYYY, A h:mm ਵà¨à©' 13745 }, 13746 calendar: { 13747 sameDay: '[ਠà¨] LT', 13748 nextDay: '[à¨à¨²] LT', 13749 nextWeek: '[ਠà¨à¨²à¨¾] dddd, LT', 13750 lastDay: '[à¨à¨²] LT', 13751 lastWeek: '[ਪਿà¨à¨²à©] dddd, LT', 13752 sameElse: 'L' 13753 }, 13754 relativeTime: { 13755 future: '%s ਵਿੱà¨', 13756 past: '%s ਪਿà¨à¨²à©', 13757 s: 'à¨à©à¨ ਸà¨à¨¿à©°à¨', 13758 ss: '%d ਸà¨à¨¿à©°à¨', 13759 m: 'à¨à¨ ਮਿੰà¨', 13760 mm: '%d ਮਿੰà¨', 13761 h: 'à¨à©±à¨ à¨à©°à¨à¨¾', 13762 hh: '%d à¨à©°à¨à©', 13763 d: 'à¨à©±à¨ ਦਿਨ', 13764 dd: '%d ਦਿਨ', 13765 M: 'à¨à©±à¨ ਮਹà©à¨¨à¨¾', 13766 MM: '%d ਮਹà©à¨¨à©', 13767 y: 'à¨à©±à¨ ਸਾਲ', 13768 yy: '%d ਸਾਲ' 13769 }, 13770 preparse: function preparse(string) { 13771 return string.replace(/[੧੨੩੪੫੬à©à©®à©¯à©¦]/g, function (match) { 13772 return numberMap[match]; 13773 }); 13774 }, 13775 postformat: function postformat(string) { 13776 return string.replace(/\d/g, function (match) { 13777 return symbolMap[match]; 13778 }); 13779 }, 13780 // Punjabi notation for meridiems are quite fuzzy in practice. While there exists 13781 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. 13782 meridiemParse: /ਰਾਤ|ਸਵà©à¨°|ਦà©à¨ªà¨¹à¨¿à¨°|ਸ਼ਾਮ/, 13783 meridiemHour: function meridiemHour(hour, meridiem) { 13784 if (hour === 12) { 13785 hour = 0; 13786 } 13787 13788 if (meridiem === 'ਰਾਤ') { 13789 return hour < 4 ? hour : hour + 12; 13790 } else if (meridiem === 'ਸਵà©à¨°') { 13791 return hour; 13792 } else if (meridiem === 'ਦà©à¨ªà¨¹à¨¿à¨°') { 13793 return hour >= 10 ? hour : hour + 12; 13794 } else if (meridiem === 'ਸ਼ਾਮ') { 13795 return hour + 12; 13796 } 13797 }, 13798 meridiem: function meridiem(hour, minute, isLower) { 13799 if (hour < 4) { 13800 return 'ਰਾਤ'; 13801 } else if (hour < 10) { 13802 return 'ਸਵà©à¨°'; 13803 } else if (hour < 17) { 13804 return 'ਦà©à¨ªà¨¹à¨¿à¨°'; 13805 } else if (hour < 20) { 13806 return 'ਸ਼ਾਮ'; 13807 } else { 13808 return 'ਰਾਤ'; 13809 } 13810 }, 13811 week: { 13812 dow: 0, 13813 // Sunday is the first day of the week. 13814 doy: 6 // The week that contains Jan 6th is the first week of the year. 13815 13816 } 13817 }); 13818 return paIn; 13819}); 13820 13821/***/ }), 13822
vendor: 5,447 bytes, lines 13823-13978
13823/***/ "../autobahn_client_core/node_modules/moment/locale/pl.js": 13824/*!****************************************************************!*\ 13825 !*** ../autobahn_client_core/node_modules/moment/locale/pl.js ***! 13826 \****************************************************************/ 13827/*! no static exports found */ 13828/***/ (function(module, exports, __webpack_require__) { 13829 13830var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 13831 13832//! moment.js locale configuration 13833//! locale : Polish [pl] 13834//! author : Rafal Hirsz : https://github.com/evoL 13835; 13836 13837(function (global, factory) { 13838 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 13839 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 13840 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 13841 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 13842})(this, function (moment) { 13843 'use strict'; //! moment.js locale configuration 13844 13845 var monthsNominative = 'styczeÅ_luty_marzec_kwiecieÅ_maj_czerwiec_lipiec_sierpieÅ_wrzesieÅ_październik_listopad_grudzieÅ'.split('_'), 13846 monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅnia_października_listopada_grudnia'.split('_'), 13847 monthsParse = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i]; 13848 13849 function plural(n) { 13850 return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; 13851 } 13852 13853 function translate(number, withoutSuffix, key) { 13854 var result = number + ' '; 13855 13856 switch (key) { 13857 case 'ss': 13858 return result + (plural(number) ? 'sekundy' : 'sekund'); 13859 13860 case 'm': 13861 return withoutSuffix ? 'minuta' : 'minutÄ'; 13862 13863 case 'mm': 13864 return result + (plural(number) ? 'minuty' : 'minut'); 13865 13866 case 'h': 13867 return withoutSuffix ? 'godzina' : 'godzinÄ'; 13868 13869 case 'hh': 13870 return result + (plural(number) ? 'godziny' : 'godzin'); 13871 13872 case 'ww': 13873 return result + (plural(number) ? 'tygodnie' : 'tygodni'); 13874 13875 case 'MM': 13876 return result + (plural(number) ? 'miesiÄ ce' : 'miesiÄcy'); 13877 13878 case 'yy': 13879 return result + (plural(number) ? 'lata' : 'lat'); 13880 } 13881 } 13882 13883 var pl = moment.defineLocale('pl', { 13884 months: function months(momentToFormat, format) { 13885 if (!momentToFormat) { 13886 return monthsNominative; 13887 } else if (/D MMMM/.test(format)) { 13888 return monthsSubjective[momentToFormat.month()]; 13889 } else { 13890 return monthsNominative[momentToFormat.month()]; 13891 } 13892 }, 13893 monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), 13894 monthsParse: monthsParse, 13895 longMonthsParse: monthsParse, 13896 shortMonthsParse: monthsParse, 13897 weekdays: 'niedziela_poniedziaÅek_wtorek_Åroda_czwartek_piÄ tek_sobota'.split('_'), 13898 weekdaysShort: 'ndz_pon_wt_År_czw_pt_sob'.split('_'), 13899 weekdaysMin: 'Nd_Pn_Wt_År_Cz_Pt_So'.split('_'), 13900 longDateFormat: { 13901 LT: 'HH:mm', 13902 LTS: 'HH:mm:ss', 13903 L: 'DD.MM.YYYY', 13904 LL: 'D MMMM YYYY', 13905 LLL: 'D MMMM YYYY HH:mm', 13906 LLLL: 'dddd, D MMMM YYYY HH:mm' 13907 }, 13908 calendar: { 13909 sameDay: '[DziÅ o] LT', 13910 nextDay: '[Jutro o] LT', 13911 nextWeek: function nextWeek() { 13912 switch (this.day()) { 13913 case 0: 13914 return '[W niedzielÄ o] LT'; 13915 13916 case 2: 13917 return '[We wtorek o] LT'; 13918 13919 case 3: 13920 return '[W ÅrodÄ o] LT'; 13921 13922 case 6: 13923 return '[W sobotÄ o] LT'; 13924 13925 default: 13926 return '[W] dddd [o] LT'; 13927 } 13928 }, 13929 lastDay: '[Wczoraj o] LT', 13930 lastWeek: function lastWeek() { 13931 switch (this.day()) { 13932 case 0: 13933 return '[W zeszÅÄ niedzielÄ o] LT'; 13934 13935 case 3: 13936 return '[W zeszÅÄ ÅrodÄ o] LT'; 13937 13938 case 6: 13939 return '[W zeszÅÄ sobotÄ o] LT'; 13940 13941 default: 13942 return '[W zeszÅy] dddd [o] LT'; 13943 } 13944 }, 13945 sameElse: 'L' 13946 }, 13947 relativeTime: { 13948 future: 'za %s', 13949 past: '%s temu', 13950 s: 'kilka sekund', 13951 ss: translate, 13952 m: translate, 13953 mm: translate, 13954 h: translate, 13955 hh: translate, 13956 d: '1 dzieÅ', 13957 dd: '%d dni', 13958 w: 'tydzieÅ', 13959 ww: translate, 13960 M: 'miesiÄ c', 13961 MM: translate, 13962 y: 'rok', 13963 yy: translate 13964 }, 13965 dayOfMonthOrdinalParse: /\d{1,2}\./, 13966 ordinal: '%d.', 13967 week: { 13968 dow: 1, 13969 // Monday is the first day of the week. 13970 doy: 4 // The week that contains Jan 4th is the first week of the year. 13971 13972 } 13973 }); 13974 return pl; 13975}); 13976 13977/***/ }), 13978
vendor: 3,423 bytes, lines 13979-14051
13979/***/ "../autobahn_client_core/node_modules/moment/locale/pt-br.js": 13980/*!*******************************************************************!*\ 13981 !*** ../autobahn_client_core/node_modules/moment/locale/pt-br.js ***! 13982 \*******************************************************************/ 13983/*! no static exports found */ 13984/***/ (function(module, exports, __webpack_require__) { 13985 13986var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 13987 13988//! moment.js locale configuration 13989//! locale : Portuguese (Brazil) [pt-br] 13990//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira 13991; 13992 13993(function (global, factory) { 13994 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 13995 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 13996 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 13997 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 13998})(this, function (moment) { 13999 'use strict'; //! moment.js locale configuration 14000 14001 var ptBr = moment.defineLocale('pt-br', { 14002 months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'), 14003 monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), 14004 weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'), 14005 weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), 14006 weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), 14007 weekdaysParseExact: true, 14008 longDateFormat: { 14009 LT: 'HH:mm', 14010 LTS: 'HH:mm:ss', 14011 L: 'DD/MM/YYYY', 14012 LL: 'D [de] MMMM [de] YYYY', 14013 LLL: 'D [de] MMMM [de] YYYY [à s] HH:mm', 14014 LLLL: 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm' 14015 }, 14016 calendar: { 14017 sameDay: '[Hoje à s] LT', 14018 nextDay: '[Amanhã à s] LT', 14019 nextWeek: 'dddd [à s] LT', 14020 lastDay: '[Ontem à s] LT', 14021 lastWeek: function lastWeek() { 14022 return this.day() === 0 || this.day() === 6 ? '[Ãltimo] dddd [à s] LT' // Saturday + Sunday 14023 : '[Ãltima] dddd [à s] LT'; // Monday - Friday 14024 }, 14025 sameElse: 'L' 14026 }, 14027 relativeTime: { 14028 future: 'em %s', 14029 past: 'há %s', 14030 s: 'poucos segundos', 14031 ss: '%d segundos', 14032 m: 'um minuto', 14033 mm: '%d minutos', 14034 h: 'uma hora', 14035 hh: '%d horas', 14036 d: 'um dia', 14037 dd: '%d dias', 14038 M: 'um mês', 14039 MM: '%d meses', 14040 y: 'um ano', 14041 yy: '%d anos' 14042 }, 14043 dayOfMonthOrdinalParse: /\d{1,2}º/, 14044 ordinal: '%dº', 14045 invalidDate: 'Data inválida' 14046 }); 14047 return ptBr; 14048}); 14049 14050/***/ }), 14051
vendor: 3,519 bytes, lines 14052-14131
14052/***/ "../autobahn_client_core/node_modules/moment/locale/pt.js": 14053/*!****************************************************************!*\ 14054 !*** ../autobahn_client_core/node_modules/moment/locale/pt.js ***! 14055 \****************************************************************/ 14056/*! no static exports found */ 14057/***/ (function(module, exports, __webpack_require__) { 14058 14059var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 14060 14061//! moment.js locale configuration 14062//! locale : Portuguese [pt] 14063//! author : Jefferson : https://github.com/jalex79 14064; 14065 14066(function (global, factory) { 14067 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 14068 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 14069 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 14070 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 14071})(this, function (moment) { 14072 'use strict'; //! moment.js locale configuration 14073 14074 var pt = moment.defineLocale('pt', { 14075 months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'), 14076 monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), 14077 weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'), 14078 weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), 14079 weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), 14080 weekdaysParseExact: true, 14081 longDateFormat: { 14082 LT: 'HH:mm', 14083 LTS: 'HH:mm:ss', 14084 L: 'DD/MM/YYYY', 14085 LL: 'D [de] MMMM [de] YYYY', 14086 LLL: 'D [de] MMMM [de] YYYY HH:mm', 14087 LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm' 14088 }, 14089 calendar: { 14090 sameDay: '[Hoje à s] LT', 14091 nextDay: '[Amanhã à s] LT', 14092 nextWeek: 'dddd [à s] LT', 14093 lastDay: '[Ontem à s] LT', 14094 lastWeek: function lastWeek() { 14095 return this.day() === 0 || this.day() === 6 ? '[Ãltimo] dddd [à s] LT' // Saturday + Sunday 14096 : '[Ãltima] dddd [à s] LT'; // Monday - Friday 14097 }, 14098 sameElse: 'L' 14099 }, 14100 relativeTime: { 14101 future: 'em %s', 14102 past: 'há %s', 14103 s: 'segundos', 14104 ss: '%d segundos', 14105 m: 'um minuto', 14106 mm: '%d minutos', 14107 h: 'uma hora', 14108 hh: '%d horas', 14109 d: 'um dia', 14110 dd: '%d dias', 14111 w: 'uma semana', 14112 ww: '%d semanas', 14113 M: 'um mês', 14114 MM: '%d meses', 14115 y: 'um ano', 14116 yy: '%d anos' 14117 }, 14118 dayOfMonthOrdinalParse: /\d{1,2}º/, 14119 ordinal: '%dº', 14120 week: { 14121 dow: 1, 14122 // Monday is the first day of the week. 14123 doy: 4 // The week that contains Jan 4th is the first week of the year. 14124 14125 } 14126 }); 14127 return pt; 14128}); 14129 14130/***/ }), 14131
vendor: 3,847 bytes, lines 14132-14227
14132/***/ "../autobahn_client_core/node_modules/moment/locale/ro.js": 14133/*!****************************************************************!*\ 14134 !*** ../autobahn_client_core/node_modules/moment/locale/ro.js ***! 14135 \****************************************************************/ 14136/*! no static exports found */ 14137/***/ (function(module, exports, __webpack_require__) { 14138 14139var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 14140 14141//! moment.js locale configuration 14142//! locale : Romanian [ro] 14143//! author : Vlad Gurdiga : https://github.com/gurdiga 14144//! author : Valentin Agachi : https://github.com/avaly 14145//! author : Emanuel Cepoi : https://github.com/cepem 14146; 14147 14148(function (global, factory) { 14149 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 14150 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 14151 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 14152 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 14153})(this, function (moment) { 14154 'use strict'; //! moment.js locale configuration 14155 14156 function relativeTimeWithPlural(number, withoutSuffix, key) { 14157 var format = { 14158 ss: 'secunde', 14159 mm: 'minute', 14160 hh: 'ore', 14161 dd: 'zile', 14162 ww: 'sÄptÄmâni', 14163 MM: 'luni', 14164 yy: 'ani' 14165 }, 14166 separator = ' '; 14167 14168 if (number % 100 >= 20 || number >= 100 && number % 100 === 0) { 14169 separator = ' de '; 14170 } 14171 14172 return number + separator + format[key]; 14173 } 14174 14175 var ro = moment.defineLocale('ro', { 14176 months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'), 14177 monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'), 14178 monthsParseExact: true, 14179 weekdays: 'duminicÄ_luni_marÈi_miercuri_joi_vineri_sâmbÄtÄ'.split('_'), 14180 weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), 14181 weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), 14182 longDateFormat: { 14183 LT: 'H:mm', 14184 LTS: 'H:mm:ss', 14185 L: 'DD.MM.YYYY', 14186 LL: 'D MMMM YYYY', 14187 LLL: 'D MMMM YYYY H:mm', 14188 LLLL: 'dddd, D MMMM YYYY H:mm' 14189 }, 14190 calendar: { 14191 sameDay: '[azi la] LT', 14192 nextDay: '[mâine la] LT', 14193 nextWeek: 'dddd [la] LT', 14194 lastDay: '[ieri la] LT', 14195 lastWeek: '[fosta] dddd [la] LT', 14196 sameElse: 'L' 14197 }, 14198 relativeTime: { 14199 future: 'peste %s', 14200 past: '%s în urmÄ', 14201 s: 'câteva secunde', 14202 ss: relativeTimeWithPlural, 14203 m: 'un minut', 14204 mm: relativeTimeWithPlural, 14205 h: 'o orÄ', 14206 hh: relativeTimeWithPlural, 14207 d: 'o zi', 14208 dd: relativeTimeWithPlural, 14209 w: 'o sÄptÄmânÄ', 14210 ww: relativeTimeWithPlural, 14211 M: 'o lunÄ', 14212 MM: relativeTimeWithPlural, 14213 y: 'un an', 14214 yy: relativeTimeWithPlural 14215 }, 14216 week: { 14217 dow: 1, 14218 // Monday is the first day of the week. 14219 doy: 7 // The week that contains Jan 7th is the first week of the year. 14220 14221 } 14222 }); 14223 return ro; 14224}); 14225 14226/***/ }), 14227
vendor: 9,369 bytes, lines 14228-14432
14228/***/ "../autobahn_client_core/node_modules/moment/locale/ru.js": 14229/*!****************************************************************!*\ 14230 !*** ../autobahn_client_core/node_modules/moment/locale/ru.js ***! 14231 \****************************************************************/ 14232/*! no static exports found */ 14233/***/ (function(module, exports, __webpack_require__) { 14234 14235var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 14236 14237//! moment.js locale configuration 14238//! locale : Russian [ru] 14239//! author : Viktorminator : https://github.com/Viktorminator 14240//! author : Menelion Elensúle : https://github.com/Oire 14241//! author : ÐоÑенбеÑг ÐаÑк : https://github.com/socketpair 14242; 14243 14244(function (global, factory) { 14245 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 14246 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 14247 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 14248 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 14249})(this, function (moment) { 14250 'use strict'; //! moment.js locale configuration 14251 14252 function plural(word, num) { 14253 var forms = word.split('_'); 14254 return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]; 14255 } 14256 14257 function relativeTimeWithPlural(number, withoutSuffix, key) { 14258 var format = { 14259 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑндÑ_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑндÑ_ÑекÑнд', 14260 mm: withoutSuffix ? 'минÑÑа_минÑÑÑ_минÑÑ' : 'минÑÑÑ_минÑÑÑ_минÑÑ', 14261 hh: 'ÑаÑ_ÑаÑа_ÑаÑов', 14262 dd: 'денÑ_днÑ_дней', 14263 ww: 'неделÑ_недели_неделÑ', 14264 MM: 'меÑÑÑ_меÑÑÑа_меÑÑÑев', 14265 yy: 'год_года_леÑ' 14266 }; 14267 14268 if (key === 'm') { 14269 return withoutSuffix ? 'минÑÑа' : 'минÑÑÑ'; 14270 } else { 14271 return number + ' ' + plural(format[key], +number); 14272 } 14273 } 14274 14275 var monthsParse = [/^Ñнв/i, /^Ñев/i, /^маÑ/i, /^апÑ/i, /^ма[йÑ]/i, /^иÑн/i, /^иÑл/i, /^авг/i, /^Ñен/i, /^окÑ/i, /^ноÑ/i, /^дек/i]; // http://new.gramota.ru/spravka/rules/139-prop : § 103 14276 // СокÑаÑÐµÐ½Ð¸Ñ Ð¼ÐµÑÑÑев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 14277 // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 14278 14279 var ru = moment.defineLocale('ru', { 14280 months: { 14281 format: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑа_апÑелÑ_маÑ_иÑнÑ_иÑлÑ_авгÑÑÑа_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split('_'), 14282 standalone: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑ_апÑелÑ_май_иÑнÑ_иÑлÑ_авгÑÑÑ_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split('_') 14283 }, 14284 monthsShort: { 14285 // по CLDR именно "иÑл." и "иÑн.", но какой ÑмÑÑл менÑÑÑ Ð±ÑÐºÐ²Ñ Ð½Ð° ÑоÑкÑ? 14286 format: 'Ñнв._ÑевÑ._маÑ._апÑ._маÑ_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split('_'), 14287 standalone: 'Ñнв._ÑевÑ._маÑÑ_апÑ._май_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split('_') 14288 }, 14289 weekdays: { 14290 standalone: 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑеда_ÑеÑвеÑг_пÑÑниÑа_ÑÑббоÑа'.split('_'), 14291 format: 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑедÑ_ÑеÑвеÑг_пÑÑниÑÑ_ÑÑббоÑÑ'.split('_'), 14292 isFormat: /\[ ?[Ðв] ?(?:пÑоÑлÑÑ|ÑледÑÑÑÑÑ|ÑÑÑ)? ?] ?dddd/ 14293 }, 14294 weekdaysShort: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 14295 weekdaysMin: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 14296 monthsParse: monthsParse, 14297 longMonthsParse: monthsParse, 14298 shortMonthsParse: monthsParse, 14299 // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по ÑÑи бÑквÑ, Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ , по 4 бÑквÑ, ÑокÑаÑÐµÐ½Ð¸Ñ Ñ ÑоÑкой и без ÑоÑки 14300 monthsRegex: /^(ÑнваÑ[ÑÑ]|Ñнв\.?|ÑевÑал[ÑÑ]|ÑевÑ?\.?|маÑÑа?|маÑ\.?|апÑел[ÑÑ]|апÑ\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\.?|иÑл[ÑÑ]|иÑл\.?|авгÑÑÑа?|авг\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\.?|окÑÑбÑ[ÑÑ]|окÑ\.?|ноÑбÑ[ÑÑ]|ноÑб?\.?|декабÑ[ÑÑ]|дек\.?)/i, 14301 // ÐºÐ¾Ð¿Ð¸Ñ Ð¿ÑедÑдÑÑего 14302 monthsShortRegex: /^(ÑнваÑ[ÑÑ]|Ñнв\.?|ÑевÑал[ÑÑ]|ÑевÑ?\.?|маÑÑа?|маÑ\.?|апÑел[ÑÑ]|апÑ\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\.?|иÑл[ÑÑ]|иÑл\.?|авгÑÑÑа?|авг\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\.?|окÑÑбÑ[ÑÑ]|окÑ\.?|ноÑбÑ[ÑÑ]|ноÑб?\.?|декабÑ[ÑÑ]|дек\.?)/i, 14303 // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸ 14304 monthsStrictRegex: /^(ÑнваÑ[ÑÑ]|ÑевÑал[ÑÑ]|маÑÑа?|апÑел[ÑÑ]|ма[Ñй]|иÑн[ÑÑ]|иÑл[ÑÑ]|авгÑÑÑа?|ÑенÑÑбÑ[ÑÑ]|окÑÑбÑ[ÑÑ]|ноÑбÑ[ÑÑ]|декабÑ[ÑÑ])/i, 14305 // ÐÑÑажение, коÑоÑое ÑооÑвеÑÑÑвÑÐµÑ ÑолÑко ÑокÑаÑÑннÑм ÑоÑмам 14306 monthsShortStrictRegex: /^(Ñнв\.|ÑевÑ?\.|маÑ[Ñ.]|апÑ\.|ма[Ñй]|иÑн[ÑÑ.]|иÑл[ÑÑ.]|авг\.|ÑенÑ?\.|окÑ\.|ноÑб?\.|дек\.)/i, 14307 longDateFormat: { 14308 LT: 'H:mm', 14309 LTS: 'H:mm:ss', 14310 L: 'DD.MM.YYYY', 14311 LL: 'D MMMM YYYY г.', 14312 LLL: 'D MMMM YYYY г., H:mm', 14313 LLLL: 'dddd, D MMMM YYYY г., H:mm' 14314 }, 14315 calendar: { 14316 sameDay: '[СегоднÑ, в] LT', 14317 nextDay: '[ÐавÑÑа, в] LT', 14318 lastDay: '[ÐÑеÑа, в] LT', 14319 nextWeek: function nextWeek(now) { 14320 if (now.week() !== this.week()) { 14321 switch (this.day()) { 14322 case 0: 14323 return '[Ð ÑледÑÑÑее] dddd, [в] LT'; 14324 14325 case 1: 14326 case 2: 14327 case 4: 14328 return '[Ð ÑледÑÑÑий] dddd, [в] LT'; 14329 14330 case 3: 14331 case 5: 14332 case 6: 14333 return '[Ð ÑледÑÑÑÑÑ] dddd, [в] LT'; 14334 } 14335 } else { 14336 if (this.day() === 2) { 14337 return '[Ðо] dddd, [в] LT'; 14338 } else { 14339 return '[Ð] dddd, [в] LT'; 14340 } 14341 } 14342 }, 14343 lastWeek: function lastWeek(now) { 14344 if (now.week() !== this.week()) { 14345 switch (this.day()) { 14346 case 0: 14347 return '[РпÑоÑлое] dddd, [в] LT'; 14348 14349 case 1: 14350 case 2: 14351 case 4: 14352 return '[РпÑоÑлÑй] dddd, [в] LT'; 14353 14354 case 3: 14355 case 5: 14356 case 6: 14357 return '[РпÑоÑлÑÑ] dddd, [в] LT'; 14358 } 14359 } else { 14360 if (this.day() === 2) { 14361 return '[Ðо] dddd, [в] LT'; 14362 } else { 14363 return '[Ð] dddd, [в] LT'; 14364 } 14365 } 14366 }, 14367 sameElse: 'L' 14368 }, 14369 relativeTime: { 14370 future: 'ÑеÑез %s', 14371 past: '%s назад', 14372 s: 'неÑколÑко ÑекÑнд', 14373 ss: relativeTimeWithPlural, 14374 m: relativeTimeWithPlural, 14375 mm: relativeTimeWithPlural, 14376 h: 'ÑаÑ', 14377 hh: relativeTimeWithPlural, 14378 d: 'денÑ', 14379 dd: relativeTimeWithPlural, 14380 w: 'неделÑ', 14381 ww: relativeTimeWithPlural, 14382 M: 'меÑÑÑ', 14383 MM: relativeTimeWithPlural, 14384 y: 'год', 14385 yy: relativeTimeWithPlural 14386 }, 14387 meridiemParse: /ноÑи|ÑÑÑа|днÑ|веÑеÑа/i, 14388 isPM: function isPM(input) { 14389 return /^(днÑ|веÑеÑа)$/.test(input); 14390 }, 14391 meridiem: function meridiem(hour, minute, isLower) { 14392 if (hour < 4) { 14393 return 'ноÑи'; 14394 } else if (hour < 12) { 14395 return 'ÑÑÑа'; 14396 } else if (hour < 17) { 14397 return 'днÑ'; 14398 } else { 14399 return 'веÑеÑа'; 14400 } 14401 }, 14402 dayOfMonthOrdinalParse: /\d{1,2}-(й|го|Ñ)/, 14403 ordinal: function ordinal(number, period) { 14404 switch (period) { 14405 case 'M': 14406 case 'd': 14407 case 'DDD': 14408 return number + '-й'; 14409 14410 case 'D': 14411 return number + '-го'; 14412 14413 case 'w': 14414 case 'W': 14415 return number + '-Ñ'; 14416 14417 default: 14418 return number; 14419 } 14420 }, 14421 week: { 14422 dow: 1, 14423 // Monday is the first day of the week. 14424 doy: 4 // The week that contains Jan 4th is the first week of the year. 14425 14426 } 14427 }); 14428 return ru; 14429}); 14430 14431/***/ }), 14432
vendor: 3,689 bytes, lines 14433-14523
14433/***/ "../autobahn_client_core/node_modules/moment/locale/sd.js": 14434/*!****************************************************************!*\ 14435 !*** ../autobahn_client_core/node_modules/moment/locale/sd.js ***! 14436 \****************************************************************/ 14437/*! no static exports found */ 14438/***/ (function(module, exports, __webpack_require__) { 14439 14440var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 14441 14442//! moment.js locale configuration 14443//! locale : Sindhi [sd] 14444//! author : Narain Sagar : https://github.com/narainsagar 14445; 14446 14447(function (global, factory) { 14448 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 14449 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 14450 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 14451 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 14452})(this, function (moment) { 14453 'use strict'; //! moment.js locale configuration 14454 14455 var months = ['جÙÙØ±Ù', 'ÙÙØ¨Ø±ÙرÙ', '٠ارÚ', 'اپرÙÙ', '٠ئÙ', 'جÙÙ', 'جÙÙØ§Ø¡Ù', 'آگسٽ', 'سÙپٽ٠بر', 'Ø¢ÚªÙ½ÙØ¨Ø±', 'ÙÙ٠بر', 'ÚØ³Ù بر'], 14456 days = ['Ø¢ÚØ±', 'سÙ٠ر', 'اڱارÙ', 'اربع', 'Ø®Ù ÙØ³', 'ج٠ع', 'ÚÙÚØ±']; 14457 var sd = moment.defineLocale('sd', { 14458 months: months, 14459 monthsShort: months, 14460 weekdays: days, 14461 weekdaysShort: days, 14462 weekdaysMin: days, 14463 longDateFormat: { 14464 LT: 'HH:mm', 14465 LTS: 'HH:mm:ss', 14466 L: 'DD/MM/YYYY', 14467 LL: 'D MMMM YYYY', 14468 LLL: 'D MMMM YYYY HH:mm', 14469 LLLL: 'ddddØ D MMMM YYYY HH:mm' 14470 }, 14471 meridiemParse: /صبØ|شا٠/, 14472 isPM: function isPM(input) { 14473 return 'شا٠' === input; 14474 }, 14475 meridiem: function meridiem(hour, minute, isLower) { 14476 if (hour < 12) { 14477 return 'صبØ'; 14478 } 14479 14480 return 'شا٠'; 14481 }, 14482 calendar: { 14483 sameDay: '[اÚ] LT', 14484 nextDay: '[Ø³ÚØ§Ú»Ù] LT', 14485 nextWeek: 'dddd [اڳÙÙ ÙÙØªÙ تÙ] LT', 14486 lastDay: '[ڪاÙÙÙ] LT', 14487 lastWeek: '[گزرÙÙ ÙÙØªÙ] dddd [تÙ] LT', 14488 sameElse: 'L' 14489 }, 14490 relativeTime: { 14491 future: '%s Ù¾ÙØ¡', 14492 past: '%s اڳ', 14493 s: 'ÚÙØ¯ سÙÚªÙÚ', 14494 ss: '%d سÙÚªÙÚ', 14495 m: 'ÙÚª Ù ÙÙ½', 14496 mm: '%d Ù ÙÙ½', 14497 h: 'ÙÚª ÚªÙØ§Úª', 14498 hh: '%d ÚªÙØ§Úª', 14499 d: 'ÙÚª ÚÙÙÙÙ', 14500 dd: '%d ÚÙÙÙÙ', 14501 M: 'ÙÚª Ù ÙÙÙÙ', 14502 MM: '%d Ù ÙÙÙØ§', 14503 y: 'ÙÚª ساÙ', 14504 yy: '%d ساÙ' 14505 }, 14506 preparse: function preparse(string) { 14507 return string.replace(/Ø/g, ','); 14508 }, 14509 postformat: function postformat(string) { 14510 return string.replace(/,/g, 'Ø'); 14511 }, 14512 week: { 14513 dow: 1, 14514 // Monday is the first day of the week. 14515 doy: 4 // The week that contains Jan 4th is the first week of the year. 14516 14517 } 14518 }); 14519 return sd; 14520}); 14521 14522/***/ }), 14523
vendor: 3,418 bytes, lines 14524-14597
14524/***/ "../autobahn_client_core/node_modules/moment/locale/se.js": 14525/*!****************************************************************!*\ 14526 !*** ../autobahn_client_core/node_modules/moment/locale/se.js ***! 14527 \****************************************************************/ 14528/*! no static exports found */ 14529/***/ (function(module, exports, __webpack_require__) { 14530 14531var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 14532 14533//! moment.js locale configuration 14534//! locale : Northern Sami [se] 14535//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell 14536; 14537 14538(function (global, factory) { 14539 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 14540 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 14541 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 14542 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 14543})(this, function (moment) { 14544 'use strict'; //! moment.js locale configuration 14545 14546 var se = moment.defineLocale('se', { 14547 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('_'), 14548 monthsShort: 'oÄÄj_guov_njuk_cuo_mies_geas_suoi_borg_ÄakÄ_golg_skáb_juov'.split('_'), 14549 weekdays: 'sotnabeaivi_vuossárga_maÅÅebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'), 14550 weekdaysShort: 'sotn_vuos_maÅ_gask_duor_bear_láv'.split('_'), 14551 weekdaysMin: 's_v_m_g_d_b_L'.split('_'), 14552 longDateFormat: { 14553 LT: 'HH:mm', 14554 LTS: 'HH:mm:ss', 14555 L: 'DD.MM.YYYY', 14556 LL: 'MMMM D. [b.] YYYY', 14557 LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', 14558 LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm' 14559 }, 14560 calendar: { 14561 sameDay: '[otne ti] LT', 14562 nextDay: '[ihttin ti] LT', 14563 nextWeek: 'dddd [ti] LT', 14564 lastDay: '[ikte ti] LT', 14565 lastWeek: '[ovddit] dddd [ti] LT', 14566 sameElse: 'L' 14567 }, 14568 relativeTime: { 14569 future: '%s geažes', 14570 past: 'maÅit %s', 14571 s: 'moadde sekunddat', 14572 ss: '%d sekunddat', 14573 m: 'okta minuhta', 14574 mm: '%d minuhtat', 14575 h: 'okta diimmu', 14576 hh: '%d diimmut', 14577 d: 'okta beaivi', 14578 dd: '%d beaivvit', 14579 M: 'okta mánnu', 14580 MM: '%d mánut', 14581 y: 'okta jahki', 14582 yy: '%d jagit' 14583 }, 14584 dayOfMonthOrdinalParse: /\d{1,2}\./, 14585 ordinal: '%d.', 14586 week: { 14587 dow: 1, 14588 // Monday is the first day of the week. 14589 doy: 4 // The week that contains Jan 4th is the first week of the year. 14590 14591 } 14592 }); 14593 return se; 14594}); 14595 14596/***/ }), 14597
vendor: 4,246 bytes, lines 14598-14681
14598/***/ "../autobahn_client_core/node_modules/moment/locale/si.js": 14599/*!****************************************************************!*\ 14600 !*** ../autobahn_client_core/node_modules/moment/locale/si.js ***! 14601 \****************************************************************/ 14602/*! no static exports found */ 14603/***/ (function(module, exports, __webpack_require__) { 14604 14605var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 14606 14607//! moment.js locale configuration 14608//! locale : Sinhalese [si] 14609//! author : Sampath Sitinamaluwa : https://github.com/sampathsris 14610; 14611 14612(function (global, factory) { 14613 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 14614 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 14615 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 14616 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 14617})(this, function (moment) { 14618 'use strict'; //! moment.js locale configuration 14619 14620 /*jshint -W100*/ 14621 14622 var si = moment.defineLocale('si', { 14623 months: 'ජනà·à·à¶»à·_à¶´à·à¶¶à¶»à·à·à¶»à·_මà·à¶»à·à¶à·_à¶ à¶´à·âà¶»à·à¶½à·_මà·à¶ºà·_à¶¢à·à¶±à·_à¶¢à·à¶½à·_à¶ à¶à·à·à·à¶à·_à·à·à¶´à·à¶à·à¶¸à·à¶¶à¶»à·_à¶à¶à·à¶à·à¶¶à¶»à·_à¶±à·à·à·à¶¸à·à¶¶à¶»à·_දà·à·à·à¶¸à·à¶¶à¶»à·'.split('_'), 14624 monthsShort: 'ජන_à¶´à·à¶¶_මà·à¶»à·_à¶ à¶´à·_මà·à¶ºà·_à¶¢à·à¶±à·_à¶¢à·à¶½à·_à¶ à¶à·_à·à·à¶´à·_à¶à¶à·_à¶±à·à·à·_දà·à·à·'.split('_'), 14625 weekdays: 'à¶à¶»à·à¶¯à·_à·à¶³à·à¶¯à·_à¶ à¶à·à¶»à·à·à·à¶¯à·_බදà·à¶¯à·_à¶¶à·âà¶»à·à·à·à¶´à¶à·à¶±à·à¶¯à·_à·à·à¶à·à¶»à·à¶¯à·_à·à·à¶±à·à·à¶»à·à¶¯à·'.split('_'), 14626 weekdaysShort: 'à¶à¶»à·_à·à¶³à·_à¶ à¶_බදà·_à¶¶à·âà¶»à·_à·à·à¶à·_à·à·à¶±'.split('_'), 14627 weekdaysMin: 'à¶_à·_à¶ _à¶¶_à¶¶à·âà¶»_à·à·_à·à·'.split('_'), 14628 weekdaysParseExact: true, 14629 longDateFormat: { 14630 LT: 'a h:mm', 14631 LTS: 'a h:mm:ss', 14632 L: 'YYYY/MM/DD', 14633 LL: 'YYYY MMMM D', 14634 LLL: 'YYYY MMMM D, a h:mm', 14635 LLLL: 'YYYY MMMM D [à·à·à¶±à·] dddd, a h:mm:ss' 14636 }, 14637 calendar: { 14638 sameDay: '[චද] LT[à¶§]', 14639 nextDay: '[à·à·à¶§] LT[à¶§]', 14640 nextWeek: 'dddd LT[à¶§]', 14641 lastDay: '[à¶à¶ºà·] LT[à¶§]', 14642 lastWeek: '[à¶´à·à·à¶à·à¶º] dddd LT[à¶§]', 14643 sameElse: 'L' 14644 }, 14645 relativeTime: { 14646 future: '%sà¶à·à¶±à·', 14647 past: '%sà¶à¶§ à¶´à·à¶»', 14648 s: 'à¶à¶à·à¶´à¶» à¶à·à·à·à¶´à¶º', 14649 ss: 'à¶à¶à·à¶´à¶» %d', 14650 m: 'මà·à¶±à·à¶à·à¶à·à·', 14651 mm: 'මà·à¶±à·à¶à·à¶à· %d', 14652 h: 'à¶´à·à¶º', 14653 hh: 'à¶´à·à¶º %d', 14654 d: 'දà·à¶±à¶º', 14655 dd: 'දà·à¶± %d', 14656 M: 'මà·à·à¶º', 14657 MM: 'මà·à· %d', 14658 y: 'à·à·à¶»', 14659 yy: 'à·à·à¶» %d' 14660 }, 14661 dayOfMonthOrdinalParse: /\d{1,2} à·à·à¶±à·/, 14662 ordinal: function ordinal(number) { 14663 return number + ' à·à·à¶±à·'; 14664 }, 14665 meridiemParse: /à¶´à·à¶» à·à¶»à·|à¶´à·à· à·à¶»à·|à¶´à·.à·|à¶´.à·./, 14666 isPM: function isPM(input) { 14667 return input === 'à¶´.à·.' || input === 'à¶´à·à· à·à¶»à·'; 14668 }, 14669 meridiem: function meridiem(hours, minutes, isLower) { 14670 if (hours > 11) { 14671 return isLower ? 'à¶´.à·.' : 'à¶´à·à· à·à¶»à·'; 14672 } else { 14673 return isLower ? 'à¶´à·.à·.' : 'à¶´à·à¶» à·à¶»à·'; 14674 } 14675 } 14676 }); 14677 return si; 14678}); 14679 14680/***/ }), 14681
vendor: 6,528 bytes, lines 14682-14882
14682/***/ "../autobahn_client_core/node_modules/moment/locale/sk.js": 14683/*!****************************************************************!*\ 14684 !*** ../autobahn_client_core/node_modules/moment/locale/sk.js ***! 14685 \****************************************************************/ 14686/*! no static exports found */ 14687/***/ (function(module, exports, __webpack_require__) { 14688 14689var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 14690 14691//! moment.js locale configuration 14692//! locale : Slovak [sk] 14693//! author : Martin Minka : https://github.com/k2s 14694//! based on work of petrbela : https://github.com/petrbela 14695; 14696 14697(function (global, factory) { 14698 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 14699 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 14700 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 14701 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 14702})(this, function (moment) { 14703 'use strict'; //! moment.js locale configuration 14704 14705 var months = 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split('_'), 14706 monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); 14707 14708 function plural(n) { 14709 return n > 1 && n < 5; 14710 } 14711 14712 function translate(number, withoutSuffix, key, isFuture) { 14713 var result = number + ' '; 14714 14715 switch (key) { 14716 case 's': 14717 // a few seconds / in a few seconds / a few seconds ago 14718 return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; 14719 14720 case 'ss': 14721 // 9 seconds / in 9 seconds / 9 seconds ago 14722 if (withoutSuffix || isFuture) { 14723 return result + (plural(number) ? 'sekundy' : 'sekúnd'); 14724 } else { 14725 return result + 'sekundami'; 14726 } 14727 14728 case 'm': 14729 // a minute / in a minute / a minute ago 14730 return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; 14731 14732 case 'mm': 14733 // 9 minutes / in 9 minutes / 9 minutes ago 14734 if (withoutSuffix || isFuture) { 14735 return result + (plural(number) ? 'minúty' : 'minút'); 14736 } else { 14737 return result + 'minútami'; 14738 } 14739 14740 case 'h': 14741 // an hour / in an hour / an hour ago 14742 return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; 14743 14744 case 'hh': 14745 // 9 hours / in 9 hours / 9 hours ago 14746 if (withoutSuffix || isFuture) { 14747 return result + (plural(number) ? 'hodiny' : 'hodÃn'); 14748 } else { 14749 return result + 'hodinami'; 14750 } 14751 14752 case 'd': 14753 // a day / in a day / a day ago 14754 return withoutSuffix || isFuture ? 'deÅ' : 'dÅom'; 14755 14756 case 'dd': 14757 // 9 days / in 9 days / 9 days ago 14758 if (withoutSuffix || isFuture) { 14759 return result + (plural(number) ? 'dni' : 'dnÃ'); 14760 } else { 14761 return result + 'dÅami'; 14762 } 14763 14764 case 'M': 14765 // a month / in a month / a month ago 14766 return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; 14767 14768 case 'MM': 14769 // 9 months / in 9 months / 9 months ago 14770 if (withoutSuffix || isFuture) { 14771 return result + (plural(number) ? 'mesiace' : 'mesiacov'); 14772 } else { 14773 return result + 'mesiacmi'; 14774 } 14775 14776 case 'y': 14777 // a year / in a year / a year ago 14778 return withoutSuffix || isFuture ? 'rok' : 'rokom'; 14779 14780 case 'yy': 14781 // 9 years / in 9 years / 9 years ago 14782 if (withoutSuffix || isFuture) { 14783 return result + (plural(number) ? 'roky' : 'rokov'); 14784 } else { 14785 return result + 'rokmi'; 14786 } 14787 14788 } 14789 } 14790 14791 var sk = moment.defineLocale('sk', { 14792 months: months, 14793 monthsShort: monthsShort, 14794 weekdays: 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'), 14795 weekdaysShort: 'ne_po_ut_st_Å¡t_pi_so'.split('_'), 14796 weekdaysMin: 'ne_po_ut_st_Å¡t_pi_so'.split('_'), 14797 longDateFormat: { 14798 LT: 'H:mm', 14799 LTS: 'H:mm:ss', 14800 L: 'DD.MM.YYYY', 14801 LL: 'D. MMMM YYYY', 14802 LLL: 'D. MMMM YYYY H:mm', 14803 LLLL: 'dddd D. MMMM YYYY H:mm' 14804 }, 14805 calendar: { 14806 sameDay: '[dnes o] LT', 14807 nextDay: '[zajtra o] LT', 14808 nextWeek: function nextWeek() { 14809 switch (this.day()) { 14810 case 0: 14811 return '[v nedeľu o] LT'; 14812 14813 case 1: 14814 case 2: 14815 return '[v] dddd [o] LT'; 14816 14817 case 3: 14818 return '[v stredu o] LT'; 14819 14820 case 4: 14821 return '[vo Å¡tvrtok o] LT'; 14822 14823 case 5: 14824 return '[v piatok o] LT'; 14825 14826 case 6: 14827 return '[v sobotu o] LT'; 14828 } 14829 }, 14830 lastDay: '[vÄera o] LT', 14831 lastWeek: function lastWeek() { 14832 switch (this.day()) { 14833 case 0: 14834 return '[minulú nedeľu o] LT'; 14835 14836 case 1: 14837 case 2: 14838 return '[minulý] dddd [o] LT'; 14839 14840 case 3: 14841 return '[minulú stredu o] LT'; 14842 14843 case 4: 14844 case 5: 14845 return '[minulý] dddd [o] LT'; 14846 14847 case 6: 14848 return '[minulú sobotu o] LT'; 14849 } 14850 }, 14851 sameElse: 'L' 14852 }, 14853 relativeTime: { 14854 future: 'za %s', 14855 past: 'pred %s', 14856 s: translate, 14857 ss: translate, 14858 m: translate, 14859 mm: translate, 14860 h: translate, 14861 hh: translate, 14862 d: translate, 14863 dd: translate, 14864 M: translate, 14865 MM: translate, 14866 y: translate, 14867 yy: translate 14868 }, 14869 dayOfMonthOrdinalParse: /\d{1,2}\./, 14870 ordinal: '%d.', 14871 week: { 14872 dow: 1, 14873 // Monday is the first day of the week. 14874 doy: 4 // The week that contains Jan 4th is the first week of the year. 14875 14876 } 14877 }); 14878 return sk; 14879}); 14880 14881/***/ }), 14882
vendor: 7,209 bytes, lines 14883-15092
14883/***/ "../autobahn_client_core/node_modules/moment/locale/sl.js": 14884/*!****************************************************************!*\ 14885 !*** ../autobahn_client_core/node_modules/moment/locale/sl.js ***! 14886 \****************************************************************/ 14887/*! no static exports found */ 14888/***/ (function(module, exports, __webpack_require__) { 14889 14890var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 14891 14892//! moment.js locale configuration 14893//! locale : Slovenian [sl] 14894//! author : Robert SedovÅ¡ek : https://github.com/sedovsek 14895; 14896 14897(function (global, factory) { 14898 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 14899 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 14900 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 14901 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 14902})(this, function (moment) { 14903 'use strict'; //! moment.js locale configuration 14904 14905 function processRelativeTime(number, withoutSuffix, key, isFuture) { 14906 var result = number + ' '; 14907 14908 switch (key) { 14909 case 's': 14910 return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami'; 14911 14912 case 'ss': 14913 if (number === 1) { 14914 result += withoutSuffix ? 'sekundo' : 'sekundi'; 14915 } else if (number === 2) { 14916 result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; 14917 } else if (number < 5) { 14918 result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; 14919 } else { 14920 result += 'sekund'; 14921 } 14922 14923 return result; 14924 14925 case 'm': 14926 return withoutSuffix ? 'ena minuta' : 'eno minuto'; 14927 14928 case 'mm': 14929 if (number === 1) { 14930 result += withoutSuffix ? 'minuta' : 'minuto'; 14931 } else if (number === 2) { 14932 result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; 14933 } else if (number < 5) { 14934 result += withoutSuffix || isFuture ? 'minute' : 'minutami'; 14935 } else { 14936 result += withoutSuffix || isFuture ? 'minut' : 'minutami'; 14937 } 14938 14939 return result; 14940 14941 case 'h': 14942 return withoutSuffix ? 'ena ura' : 'eno uro'; 14943 14944 case 'hh': 14945 if (number === 1) { 14946 result += withoutSuffix ? 'ura' : 'uro'; 14947 } else if (number === 2) { 14948 result += withoutSuffix || isFuture ? 'uri' : 'urama'; 14949 } else if (number < 5) { 14950 result += withoutSuffix || isFuture ? 'ure' : 'urami'; 14951 } else { 14952 result += withoutSuffix || isFuture ? 'ur' : 'urami'; 14953 } 14954 14955 return result; 14956 14957 case 'd': 14958 return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; 14959 14960 case 'dd': 14961 if (number === 1) { 14962 result += withoutSuffix || isFuture ? 'dan' : 'dnem'; 14963 } else if (number === 2) { 14964 result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; 14965 } else { 14966 result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; 14967 } 14968 14969 return result; 14970 14971 case 'M': 14972 return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; 14973 14974 case 'MM': 14975 if (number === 1) { 14976 result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; 14977 } else if (number === 2) { 14978 result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; 14979 } else if (number < 5) { 14980 result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; 14981 } else { 14982 result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; 14983 } 14984 14985 return result; 14986 14987 case 'y': 14988 return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; 14989 14990 case 'yy': 14991 if (number === 1) { 14992 result += withoutSuffix || isFuture ? 'leto' : 'letom'; 14993 } else if (number === 2) { 14994 result += withoutSuffix || isFuture ? 'leti' : 'letoma'; 14995 } else if (number < 5) { 14996 result += withoutSuffix || isFuture ? 'leta' : 'leti'; 14997 } else { 14998 result += withoutSuffix || isFuture ? 'let' : 'leti'; 14999 } 15000 15001 return result; 15002 } 15003 } 15004 15005 var sl = moment.defineLocale('sl', { 15006 months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'), 15007 monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'), 15008 monthsParseExact: true, 15009 weekdays: 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'), 15010 weekdaysShort: 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'), 15011 weekdaysMin: 'ne_po_to_sr_Äe_pe_so'.split('_'), 15012 weekdaysParseExact: true, 15013 longDateFormat: { 15014 LT: 'H:mm', 15015 LTS: 'H:mm:ss', 15016 L: 'DD. MM. YYYY', 15017 LL: 'D. MMMM YYYY', 15018 LLL: 'D. MMMM YYYY H:mm', 15019 LLLL: 'dddd, D. MMMM YYYY H:mm' 15020 }, 15021 calendar: { 15022 sameDay: '[danes ob] LT', 15023 nextDay: '[jutri ob] LT', 15024 nextWeek: function nextWeek() { 15025 switch (this.day()) { 15026 case 0: 15027 return '[v] [nedeljo] [ob] LT'; 15028 15029 case 3: 15030 return '[v] [sredo] [ob] LT'; 15031 15032 case 6: 15033 return '[v] [soboto] [ob] LT'; 15034 15035 case 1: 15036 case 2: 15037 case 4: 15038 case 5: 15039 return '[v] dddd [ob] LT'; 15040 } 15041 }, 15042 lastDay: '[vÄeraj ob] LT', 15043 lastWeek: function lastWeek() { 15044 switch (this.day()) { 15045 case 0: 15046 return '[prejÅ¡njo] [nedeljo] [ob] LT'; 15047 15048 case 3: 15049 return '[prejÅ¡njo] [sredo] [ob] LT'; 15050 15051 case 6: 15052 return '[prejÅ¡njo] [soboto] [ob] LT'; 15053 15054 case 1: 15055 case 2: 15056 case 4: 15057 case 5: 15058 return '[prejÅ¡nji] dddd [ob] LT'; 15059 } 15060 }, 15061 sameElse: 'L' 15062 }, 15063 relativeTime: { 15064 future: 'Äez %s', 15065 past: 'pred %s', 15066 s: processRelativeTime, 15067 ss: processRelativeTime, 15068 m: processRelativeTime, 15069 mm: processRelativeTime, 15070 h: processRelativeTime, 15071 hh: processRelativeTime, 15072 d: processRelativeTime, 15073 dd: processRelativeTime, 15074 M: processRelativeTime, 15075 MM: processRelativeTime, 15076 y: processRelativeTime, 15077 yy: processRelativeTime 15078 }, 15079 dayOfMonthOrdinalParse: /\d{1,2}\./, 15080 ordinal: '%d.', 15081 week: { 15082 dow: 1, 15083 // Monday is the first day of the week. 15084 doy: 7 // The week that contains Jan 7th is the first week of the year. 15085 15086 } 15087 }); 15088 return sl; 15089}); 15090 15091/***/ }), 15092
vendor: 3,588 bytes, lines 15093-15176
15093/***/ "../autobahn_client_core/node_modules/moment/locale/sq.js": 15094/*!****************************************************************!*\ 15095 !*** ../autobahn_client_core/node_modules/moment/locale/sq.js ***! 15096 \****************************************************************/ 15097/*! no static exports found */ 15098/***/ (function(module, exports, __webpack_require__) { 15099 15100var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 15101 15102//! moment.js locale configuration 15103//! locale : Albanian [sq] 15104//! author : Flakërim Ismani : https://github.com/flakerimi 15105//! author : Menelion Elensúle : https://github.com/Oire 15106//! author : Oerd Cukalla : https://github.com/oerd 15107; 15108 15109(function (global, factory) { 15110 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 15111 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 15112 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 15113 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 15114})(this, function (moment) { 15115 'use strict'; //! moment.js locale configuration 15116 15117 var sq = moment.defineLocale('sq', { 15118 months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'), 15119 monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), 15120 weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'), 15121 weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), 15122 weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), 15123 weekdaysParseExact: true, 15124 meridiemParse: /PD|MD/, 15125 isPM: function isPM(input) { 15126 return input.charAt(0) === 'M'; 15127 }, 15128 meridiem: function meridiem(hours, minutes, isLower) { 15129 return hours < 12 ? 'PD' : 'MD'; 15130 }, 15131 longDateFormat: { 15132 LT: 'HH:mm', 15133 LTS: 'HH:mm:ss', 15134 L: 'DD/MM/YYYY', 15135 LL: 'D MMMM YYYY', 15136 LLL: 'D MMMM YYYY HH:mm', 15137 LLLL: 'dddd, D MMMM YYYY HH:mm' 15138 }, 15139 calendar: { 15140 sameDay: '[Sot në] LT', 15141 nextDay: '[Nesër në] LT', 15142 nextWeek: 'dddd [në] LT', 15143 lastDay: '[Dje në] LT', 15144 lastWeek: 'dddd [e kaluar në] LT', 15145 sameElse: 'L' 15146 }, 15147 relativeTime: { 15148 future: 'në %s', 15149 past: '%s më parë', 15150 s: 'disa sekonda', 15151 ss: '%d sekonda', 15152 m: 'një minutë', 15153 mm: '%d minuta', 15154 h: 'një orë', 15155 hh: '%d orë', 15156 d: 'një ditë', 15157 dd: '%d ditë', 15158 M: 'një muaj', 15159 MM: '%d muaj', 15160 y: 'një vit', 15161 yy: '%d vite' 15162 }, 15163 dayOfMonthOrdinalParse: /\d{1,2}\./, 15164 ordinal: '%d.', 15165 week: { 15166 dow: 1, 15167 // Monday is the first day of the week. 15168 doy: 4 // The week that contains Jan 4th is the first week of the year. 15169 15170 } 15171 }); 15172 return sq; 15173}); 15174 15175/***/ }), 15176
vendor: 6,101 bytes, lines 15177-15314
15177/***/ "../autobahn_client_core/node_modules/moment/locale/sr-cyrl.js": 15178/*!*********************************************************************!*\ 15179 !*** ../autobahn_client_core/node_modules/moment/locale/sr-cyrl.js ***! 15180 \*********************************************************************/ 15181/*! no static exports found */ 15182/***/ (function(module, exports, __webpack_require__) { 15183 15184var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 15185 15186//! moment.js locale configuration 15187//! locale : Serbian Cyrillic [sr-cyrl] 15188//! author : Milan JanaÄkoviÄ<[email protected]> : https://github.com/milan-j 15189//! author : Stefan CrnjakoviÄ <[email protected]> : https://github.com/crnjakovic 15190; 15191 15192(function (global, factory) { 15193 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 15194 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 15195 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 15196 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 15197})(this, function (moment) { 15198 'use strict'; //! moment.js locale configuration 15199 15200 var translator = { 15201 words: { 15202 //Different grammatical cases 15203 ss: ['ÑекÑнда', 'ÑекÑнде', 'ÑекÑнди'], 15204 m: ['Ñедан минÑÑ', 'Ñедног минÑÑа'], 15205 mm: ['минÑÑ', 'минÑÑа', 'минÑÑа'], 15206 h: ['Ñедан ÑаÑ', 'Ñедног ÑаÑа'], 15207 hh: ['ÑаÑ', 'ÑаÑа', 'ÑаÑи'], 15208 d: ['Ñедан дан', 'Ñедног дана'], 15209 dd: ['дан', 'дана', 'дана'], 15210 M: ['Ñедан меÑеÑ', 'Ñедног меÑеÑа'], 15211 MM: ['меÑеÑ', 'меÑеÑа', 'меÑеÑи'], 15212 y: ['ÑÐµÐ´Ð½Ñ Ð³Ð¾Ð´Ð¸Ð½Ñ', 'Ñедне године'], 15213 yy: ['годинÑ', 'године', 'година'] 15214 }, 15215 correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) { 15216 if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) { 15217 return number % 10 === 1 ? wordKey[0] : wordKey[1]; 15218 } 15219 15220 return wordKey[2]; 15221 }, 15222 translate: function translate(number, withoutSuffix, key, isFuture) { 15223 var wordKey = translator.words[key], 15224 word; 15225 15226 if (key.length === 1) { 15227 // Nominativ 15228 if (key === 'y' && withoutSuffix) return 'Ñедна година'; 15229 return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; 15230 } 15231 15232 word = translator.correctGrammaticalCase(number, wordKey); // Nominativ 15233 15234 if (key === 'yy' && withoutSuffix && word === 'годинÑ') { 15235 return number + ' година'; 15236 } 15237 15238 return number + ' ' + word; 15239 } 15240 }; 15241 var srCyrl = moment.defineLocale('sr-cyrl', { 15242 months: 'ÑанÑаÑ_ÑебÑÑаÑ_маÑÑ_апÑил_маÑ_ÑÑн_ÑÑл_авгÑÑÑ_ÑепÑембаÑ_окÑобаÑ_новембаÑ_деÑембаÑ'.split('_'), 15243 monthsShort: 'Ñан._Ñеб._маÑ._апÑ._маÑ_ÑÑн_ÑÑл_авг._Ñеп._окÑ._нов._деÑ.'.split('_'), 15244 monthsParseExact: true, 15245 weekdays: 'недеÑа_понедеÑак_ÑÑоÑак_ÑÑеда_ÑеÑвÑÑак_пеÑак_ÑÑбоÑа'.split('_'), 15246 weekdaysShort: 'нед._пон._ÑÑо._ÑÑе._ÑеÑ._пеÑ._ÑÑб.'.split('_'), 15247 weekdaysMin: 'не_по_ÑÑ_ÑÑ_Ñе_пе_ÑÑ'.split('_'), 15248 weekdaysParseExact: true, 15249 longDateFormat: { 15250 LT: 'H:mm', 15251 LTS: 'H:mm:ss', 15252 L: 'D. M. YYYY.', 15253 LL: 'D. MMMM YYYY.', 15254 LLL: 'D. MMMM YYYY. H:mm', 15255 LLLL: 'dddd, D. MMMM YYYY. H:mm' 15256 }, 15257 calendar: { 15258 sameDay: '[Ð´Ð°Ð½Ð°Ñ Ñ] LT', 15259 nextDay: '[ÑÑÑÑа Ñ] LT', 15260 nextWeek: function nextWeek() { 15261 switch (this.day()) { 15262 case 0: 15263 return '[Ñ] [недеÑÑ] [Ñ] LT'; 15264 15265 case 3: 15266 return '[Ñ] [ÑÑедÑ] [Ñ] LT'; 15267 15268 case 6: 15269 return '[Ñ] [ÑÑбоÑÑ] [Ñ] LT'; 15270 15271 case 1: 15272 case 2: 15273 case 4: 15274 case 5: 15275 return '[Ñ] dddd [Ñ] LT'; 15276 } 15277 }, 15278 lastDay: '[ÑÑÑе Ñ] LT', 15279 lastWeek: function lastWeek() { 15280 var lastWeekDays = ['[пÑоÑле] [недеÑе] [Ñ] LT', '[пÑоÑлог] [понедеÑка] [Ñ] LT', '[пÑоÑлог] [ÑÑоÑка] [Ñ] LT', '[пÑоÑле] [ÑÑеде] [Ñ] LT', '[пÑоÑлог] [ÑеÑвÑÑка] [Ñ] LT', '[пÑоÑлог] [пеÑка] [Ñ] LT', '[пÑоÑле] [ÑÑбоÑе] [Ñ] LT']; 15281 return lastWeekDays[this.day()]; 15282 }, 15283 sameElse: 'L' 15284 }, 15285 relativeTime: { 15286 future: 'за %s', 15287 past: 'пÑе %s', 15288 s: 'неколико ÑекÑнди', 15289 ss: translator.translate, 15290 m: translator.translate, 15291 mm: translator.translate, 15292 h: translator.translate, 15293 hh: translator.translate, 15294 d: translator.translate, 15295 dd: translator.translate, 15296 M: translator.translate, 15297 MM: translator.translate, 15298 y: translator.translate, 15299 yy: translator.translate 15300 }, 15301 dayOfMonthOrdinalParse: /\d{1,2}\./, 15302 ordinal: '%d.', 15303 week: { 15304 dow: 1, 15305 // Monday is the first day of the week. 15306 doy: 7 // The week that contains Jan 1st is the first week of the year. 15307 15308 } 15309 }); 15310 return srCyrl; 15311}); 15312 15313/***/ }), 15314
vendor: 5,506 bytes, lines 15315-15452
15315/***/ "../autobahn_client_core/node_modules/moment/locale/sr.js": 15316/*!****************************************************************!*\ 15317 !*** ../autobahn_client_core/node_modules/moment/locale/sr.js ***! 15318 \****************************************************************/ 15319/*! no static exports found */ 15320/***/ (function(module, exports, __webpack_require__) { 15321 15322var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 15323 15324//! moment.js locale configuration 15325//! locale : Serbian [sr] 15326//! author : Milan JanaÄkoviÄ<[email protected]> : https://github.com/milan-j 15327//! author : Stefan CrnjakoviÄ <[email protected]> : https://github.com/crnjakovic 15328; 15329 15330(function (global, factory) { 15331 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 15332 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 15333 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 15334 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 15335})(this, function (moment) { 15336 'use strict'; //! moment.js locale configuration 15337 15338 var translator = { 15339 words: { 15340 //Different grammatical cases 15341 ss: ['sekunda', 'sekunde', 'sekundi'], 15342 m: ['jedan minut', 'jednog minuta'], 15343 mm: ['minut', 'minuta', 'minuta'], 15344 h: ['jedan sat', 'jednog sata'], 15345 hh: ['sat', 'sata', 'sati'], 15346 d: ['jedan dan', 'jednog dana'], 15347 dd: ['dan', 'dana', 'dana'], 15348 M: ['jedan mesec', 'jednog meseca'], 15349 MM: ['mesec', 'meseca', 'meseci'], 15350 y: ['jednu godinu', 'jedne godine'], 15351 yy: ['godinu', 'godine', 'godina'] 15352 }, 15353 correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) { 15354 if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) { 15355 return number % 10 === 1 ? wordKey[0] : wordKey[1]; 15356 } 15357 15358 return wordKey[2]; 15359 }, 15360 translate: function translate(number, withoutSuffix, key, isFuture) { 15361 var wordKey = translator.words[key], 15362 word; 15363 15364 if (key.length === 1) { 15365 // Nominativ 15366 if (key === 'y' && withoutSuffix) return 'jedna godina'; 15367 return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; 15368 } 15369 15370 word = translator.correctGrammaticalCase(number, wordKey); // Nominativ 15371 15372 if (key === 'yy' && withoutSuffix && word === 'godinu') { 15373 return number + ' godina'; 15374 } 15375 15376 return number + ' ' + word; 15377 } 15378 }; 15379 var sr = moment.defineLocale('sr', { 15380 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), 15381 monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), 15382 monthsParseExact: true, 15383 weekdays: 'nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota'.split('_'), 15384 weekdaysShort: 'ned._pon._uto._sre._Äet._pet._sub.'.split('_'), 15385 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 15386 weekdaysParseExact: true, 15387 longDateFormat: { 15388 LT: 'H:mm', 15389 LTS: 'H:mm:ss', 15390 L: 'D. M. YYYY.', 15391 LL: 'D. MMMM YYYY.', 15392 LLL: 'D. MMMM YYYY. H:mm', 15393 LLLL: 'dddd, D. MMMM YYYY. H:mm' 15394 }, 15395 calendar: { 15396 sameDay: '[danas u] LT', 15397 nextDay: '[sutra u] LT', 15398 nextWeek: function nextWeek() { 15399 switch (this.day()) { 15400 case 0: 15401 return '[u] [nedelju] [u] LT'; 15402 15403 case 3: 15404 return '[u] [sredu] [u] LT'; 15405 15406 case 6: 15407 return '[u] [subotu] [u] LT'; 15408 15409 case 1: 15410 case 2: 15411 case 4: 15412 case 5: 15413 return '[u] dddd [u] LT'; 15414 } 15415 }, 15416 lastDay: '[juÄe u] LT', 15417 lastWeek: function lastWeek() { 15418 var lastWeekDays = ['[proÅ¡le] [nedelje] [u] LT', '[proÅ¡log] [ponedeljka] [u] LT', '[proÅ¡log] [utorka] [u] LT', '[proÅ¡le] [srede] [u] LT', '[proÅ¡log] [Äetvrtka] [u] LT', '[proÅ¡log] [petka] [u] LT', '[proÅ¡le] [subote] [u] LT']; 15419 return lastWeekDays[this.day()]; 15420 }, 15421 sameElse: 'L' 15422 }, 15423 relativeTime: { 15424 future: 'za %s', 15425 past: 'pre %s', 15426 s: 'nekoliko sekundi', 15427 ss: translator.translate, 15428 m: translator.translate, 15429 mm: translator.translate, 15430 h: translator.translate, 15431 hh: translator.translate, 15432 d: translator.translate, 15433 dd: translator.translate, 15434 M: translator.translate, 15435 MM: translator.translate, 15436 y: translator.translate, 15437 yy: translator.translate 15438 }, 15439 dayOfMonthOrdinalParse: /\d{1,2}\./, 15440 ordinal: '%d.', 15441 week: { 15442 dow: 1, 15443 // Monday is the first day of the week. 15444 doy: 7 // The week that contains Jan 7th is the first week of the year. 15445 15446 } 15447 }); 15448 return sr; 15449}); 15450 15451/***/ }), 15452
vendor: 4,103 bytes, lines 15453-15556
15453/***/ "../autobahn_client_core/node_modules/moment/locale/ss.js": 15454/*!****************************************************************!*\ 15455 !*** ../autobahn_client_core/node_modules/moment/locale/ss.js ***! 15456 \****************************************************************/ 15457/*! no static exports found */ 15458/***/ (function(module, exports, __webpack_require__) { 15459 15460var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 15461 15462//! moment.js locale configuration 15463//! locale : siSwati [ss] 15464//! author : Nicolai Davies<[email protected]> : https://github.com/nicolaidavies 15465; 15466 15467(function (global, factory) { 15468 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 15469 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 15470 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 15471 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 15472})(this, function (moment) { 15473 'use strict'; //! moment.js locale configuration 15474 15475 var ss = moment.defineLocale('ss', { 15476 months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'), 15477 monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), 15478 weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'), 15479 weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), 15480 weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), 15481 weekdaysParseExact: true, 15482 longDateFormat: { 15483 LT: 'h:mm A', 15484 LTS: 'h:mm:ss A', 15485 L: 'DD/MM/YYYY', 15486 LL: 'D MMMM YYYY', 15487 LLL: 'D MMMM YYYY h:mm A', 15488 LLLL: 'dddd, D MMMM YYYY h:mm A' 15489 }, 15490 calendar: { 15491 sameDay: '[Namuhla nga] LT', 15492 nextDay: '[Kusasa nga] LT', 15493 nextWeek: 'dddd [nga] LT', 15494 lastDay: '[Itolo nga] LT', 15495 lastWeek: 'dddd [leliphelile] [nga] LT', 15496 sameElse: 'L' 15497 }, 15498 relativeTime: { 15499 future: 'nga %s', 15500 past: 'wenteka nga %s', 15501 s: 'emizuzwana lomcane', 15502 ss: '%d mzuzwana', 15503 m: 'umzuzu', 15504 mm: '%d emizuzu', 15505 h: 'lihora', 15506 hh: '%d emahora', 15507 d: 'lilanga', 15508 dd: '%d emalanga', 15509 M: 'inyanga', 15510 MM: '%d tinyanga', 15511 y: 'umnyaka', 15512 yy: '%d iminyaka' 15513 }, 15514 meridiemParse: /ekuseni|emini|entsambama|ebusuku/, 15515 meridiem: function meridiem(hours, minutes, isLower) { 15516 if (hours < 11) { 15517 return 'ekuseni'; 15518 } else if (hours < 15) { 15519 return 'emini'; 15520 } else if (hours < 19) { 15521 return 'entsambama'; 15522 } else { 15523 return 'ebusuku'; 15524 } 15525 }, 15526 meridiemHour: function meridiemHour(hour, meridiem) { 15527 if (hour === 12) { 15528 hour = 0; 15529 } 15530 15531 if (meridiem === 'ekuseni') { 15532 return hour; 15533 } else if (meridiem === 'emini') { 15534 return hour >= 11 ? hour : hour + 12; 15535 } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { 15536 if (hour === 0) { 15537 return 0; 15538 } 15539 15540 return hour + 12; 15541 } 15542 }, 15543 dayOfMonthOrdinalParse: /\d{1,2}/, 15544 ordinal: '%d', 15545 week: { 15546 dow: 1, 15547 // Monday is the first day of the week. 15548 doy: 4 // The week that contains Jan 4th is the first week of the year. 15549 15550 } 15551 }); 15552 return ss; 15553}); 15554 15555/***/ }), 15556
vendor: 3,492 bytes, lines 15557-15636
15557/***/ "../autobahn_client_core/node_modules/moment/locale/sv.js": 15558/*!****************************************************************!*\ 15559 !*** ../autobahn_client_core/node_modules/moment/locale/sv.js ***! 15560 \****************************************************************/ 15561/*! no static exports found */ 15562/***/ (function(module, exports, __webpack_require__) { 15563 15564var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 15565 15566//! moment.js locale configuration 15567//! locale : Swedish [sv] 15568//! author : Jens Alm : https://github.com/ulmus 15569; 15570 15571(function (global, factory) { 15572 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 15573 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 15574 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 15575 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 15576})(this, function (moment) { 15577 'use strict'; //! moment.js locale configuration 15578 15579 var sv = moment.defineLocale('sv', { 15580 months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'), 15581 monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), 15582 weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), 15583 weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), 15584 weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), 15585 longDateFormat: { 15586 LT: 'HH:mm', 15587 LTS: 'HH:mm:ss', 15588 L: 'YYYY-MM-DD', 15589 LL: 'D MMMM YYYY', 15590 LLL: 'D MMMM YYYY [kl.] HH:mm', 15591 LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', 15592 lll: 'D MMM YYYY HH:mm', 15593 llll: 'ddd D MMM YYYY HH:mm' 15594 }, 15595 calendar: { 15596 sameDay: '[Idag] LT', 15597 nextDay: '[Imorgon] LT', 15598 lastDay: '[Igår] LT', 15599 nextWeek: '[På] dddd LT', 15600 lastWeek: '[I] dddd[s] LT', 15601 sameElse: 'L' 15602 }, 15603 relativeTime: { 15604 future: 'om %s', 15605 past: 'för %s sedan', 15606 s: 'några sekunder', 15607 ss: '%d sekunder', 15608 m: 'en minut', 15609 mm: '%d minuter', 15610 h: 'en timme', 15611 hh: '%d timmar', 15612 d: 'en dag', 15613 dd: '%d dagar', 15614 M: 'en månad', 15615 MM: '%d månader', 15616 y: 'ett år', 15617 yy: '%d år' 15618 }, 15619 dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, 15620 ordinal: function ordinal(number) { 15621 var b = number % 10, 15622 output = ~~(number % 100 / 10) === 1 ? ':e' : b === 1 ? ':a' : b === 2 ? ':a' : b === 3 ? ':e' : ':e'; 15623 return number + output; 15624 }, 15625 week: { 15626 dow: 1, 15627 // Monday is the first day of the week. 15628 doy: 4 // The week that contains Jan 4th is the first week of the year. 15629 15630 } 15631 }); 15632 return sv; 15633}); 15634 15635/***/ }), 15636
vendor: 3,228 bytes, lines 15637-15709
15637/***/ "../autobahn_client_core/node_modules/moment/locale/sw.js": 15638/*!****************************************************************!*\ 15639 !*** ../autobahn_client_core/node_modules/moment/locale/sw.js ***! 15640 \****************************************************************/ 15641/*! no static exports found */ 15642/***/ (function(module, exports, __webpack_require__) { 15643 15644var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 15645 15646//! moment.js locale configuration 15647//! locale : Swahili [sw] 15648//! author : Fahad Kassim : https://github.com/fadsel 15649; 15650 15651(function (global, factory) { 15652 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 15653 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 15654 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 15655 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 15656})(this, function (moment) { 15657 'use strict'; //! moment.js locale configuration 15658 15659 var sw = moment.defineLocale('sw', { 15660 months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'), 15661 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), 15662 weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'), 15663 weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), 15664 weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), 15665 weekdaysParseExact: true, 15666 longDateFormat: { 15667 LT: 'hh:mm A', 15668 LTS: 'HH:mm:ss', 15669 L: 'DD.MM.YYYY', 15670 LL: 'D MMMM YYYY', 15671 LLL: 'D MMMM YYYY HH:mm', 15672 LLLL: 'dddd, D MMMM YYYY HH:mm' 15673 }, 15674 calendar: { 15675 sameDay: '[leo saa] LT', 15676 nextDay: '[kesho saa] LT', 15677 nextWeek: '[wiki ijayo] dddd [saat] LT', 15678 lastDay: '[jana] LT', 15679 lastWeek: '[wiki iliyopita] dddd [saat] LT', 15680 sameElse: 'L' 15681 }, 15682 relativeTime: { 15683 future: '%s baadaye', 15684 past: 'tokea %s', 15685 s: 'hivi punde', 15686 ss: 'sekunde %d', 15687 m: 'dakika moja', 15688 mm: 'dakika %d', 15689 h: 'saa limoja', 15690 hh: 'masaa %d', 15691 d: 'siku moja', 15692 dd: 'siku %d', 15693 M: 'mwezi mmoja', 15694 MM: 'miezi %d', 15695 y: 'mwaka mmoja', 15696 yy: 'miaka %d' 15697 }, 15698 week: { 15699 dow: 1, 15700 // Monday is the first day of the week. 15701 doy: 7 // The week that contains Jan 7th is the first week of the year. 15702 15703 } 15704 }); 15705 return sw; 15706}); 15707 15708/***/ }), 15709
vendor: 6,200 bytes, lines 15710-15853
15710/***/ "../autobahn_client_core/node_modules/moment/locale/ta.js": 15711/*!****************************************************************!*\ 15712 !*** ../autobahn_client_core/node_modules/moment/locale/ta.js ***! 15713 \****************************************************************/ 15714/*! no static exports found */ 15715/***/ (function(module, exports, __webpack_require__) { 15716 15717var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 15718 15719//! moment.js locale configuration 15720//! locale : Tamil [ta] 15721//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 15722; 15723 15724(function (global, factory) { 15725 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 15726 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 15727 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 15728 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 15729})(this, function (moment) { 15730 'use strict'; //! moment.js locale configuration 15731 15732 var symbolMap = { 15733 1: '௧', 15734 2: '௨', 15735 3: '௩', 15736 4: '௪', 15737 5: '௫', 15738 6: '௬', 15739 7: 'à¯', 15740 8: '௮', 15741 9: '௯', 15742 0: '௦' 15743 }, 15744 numberMap = { 15745 '௧': '1', 15746 '௨': '2', 15747 '௩': '3', 15748 '௪': '4', 15749 '௫': '5', 15750 '௬': '6', 15751 'à¯': '7', 15752 '௮': '8', 15753 '௯': '9', 15754 '௦': '0' 15755 }; 15756 var ta = moment.defineLocale('ta', { 15757 months: 'à®à®©à®µà®°à®¿_பிபà¯à®°à®µà®°à®¿_மாரà¯à®à¯_à®à®ªà¯à®°à®²à¯_à®®à¯_à®à¯à®©à¯_à®à¯à®²à¯_à®à®à®¸à¯à®à¯_à®à¯à®ªà¯à®à¯à®®à¯à®ªà®°à¯_à® à®à¯à®à¯à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_à®à®¿à®à®®à¯à®ªà®°à¯'.split('_'), 15758 monthsShort: 'à®à®©à®µà®°à®¿_பிபà¯à®°à®µà®°à®¿_மாரà¯à®à¯_à®à®ªà¯à®°à®²à¯_à®®à¯_à®à¯à®©à¯_à®à¯à®²à¯_à®à®à®¸à¯à®à¯_à®à¯à®ªà¯à®à¯à®®à¯à®ªà®°à¯_à® à®à¯à®à¯à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_à®à®¿à®à®®à¯à®ªà®°à¯'.split('_'), 15759 weekdays: 'à®à®¾à®¯à®¿à®±à¯à®±à¯à®à¯à®à®¿à®´à®®à¯_திà®à¯à®à®à¯à®à®¿à®´à®®à¯_à®à¯à®µà¯à®µà®¾à®¯à¯à®à®¿à®´à®®à¯_பà¯à®¤à®©à¯à®à®¿à®´à®®à¯_வியாழà®à¯à®à®¿à®´à®®à¯_வà¯à®³à¯à®³à®¿à®à¯à®à®¿à®´à®®à¯_à®à®©à®¿à®à¯à®à®¿à®´à®®à¯'.split('_'), 15760 weekdaysShort: 'à®à®¾à®¯à®¿à®±à¯_திà®à¯à®à®³à¯_à®à¯à®µà¯à®µà®¾à®¯à¯_பà¯à®¤à®©à¯_வியாழனà¯_வà¯à®³à¯à®³à®¿_à®à®©à®¿'.split('_'), 15761 weekdaysMin: 'à®à®¾_தி_à®à¯_பà¯_வி_வà¯_à®'.split('_'), 15762 longDateFormat: { 15763 LT: 'HH:mm', 15764 LTS: 'HH:mm:ss', 15765 L: 'DD/MM/YYYY', 15766 LL: 'D MMMM YYYY', 15767 LLL: 'D MMMM YYYY, HH:mm', 15768 LLLL: 'dddd, D MMMM YYYY, HH:mm' 15769 }, 15770 calendar: { 15771 sameDay: '[à®à®©à¯à®±à¯] LT', 15772 nextDay: '[நாளà¯] LT', 15773 nextWeek: 'dddd, LT', 15774 lastDay: '[நà¯à®±à¯à®±à¯] LT', 15775 lastWeek: '[à®à®à®¨à¯à®¤ வாரமà¯] dddd, LT', 15776 sameElse: 'L' 15777 }, 15778 relativeTime: { 15779 future: '%s à®à®²à¯', 15780 past: '%s à®®à¯à®©à¯', 15781 s: 'à®à®°à¯ à®à®¿à®² விநாà®à®¿à®à®³à¯', 15782 ss: '%d விநாà®à®¿à®à®³à¯', 15783 m: 'à®à®°à¯ நிமிà®à®®à¯', 15784 mm: '%d நிமிà®à®à¯à®à®³à¯', 15785 h: 'à®à®°à¯ மணி நà¯à®°à®®à¯', 15786 hh: '%d மணி நà¯à®°à®®à¯', 15787 d: 'à®à®°à¯ நாளà¯', 15788 dd: '%d நாà®à¯à®à®³à¯', 15789 M: 'à®à®°à¯ மாதமà¯', 15790 MM: '%d மாதà®à¯à®à®³à¯', 15791 y: 'à®à®°à¯ வரà¯à®à®®à¯', 15792 yy: '%d à®à®£à¯à®à¯à®à®³à¯' 15793 }, 15794 dayOfMonthOrdinalParse: /\d{1,2}வதà¯/, 15795 ordinal: function ordinal(number) { 15796 return number + 'வதà¯'; 15797 }, 15798 preparse: function preparse(string) { 15799 return string.replace(/[௧௨௩௪௫௬à¯à¯®à¯¯à¯¦]/g, function (match) { 15800 return numberMap[match]; 15801 }); 15802 }, 15803 postformat: function postformat(string) { 15804 return string.replace(/\d/g, function (match) { 15805 return symbolMap[match]; 15806 }); 15807 }, 15808 // refer http://ta.wikipedia.org/s/1er1 15809 meridiemParse: /யாமமà¯|வà¯à®à®±à¯|à®à®¾à®²à¯|நணà¯à®ªà®à®²à¯|à®à®±à¯à®ªà®¾à®à¯|மாலà¯/, 15810 meridiem: function meridiem(hour, minute, isLower) { 15811 if (hour < 2) { 15812 return ' யாமமà¯'; 15813 } else if (hour < 6) { 15814 return ' வà¯à®à®±à¯'; // வà¯à®à®±à¯ 15815 } else if (hour < 10) { 15816 return ' à®à®¾à®²à¯'; // à®à®¾à®²à¯ 15817 } else if (hour < 14) { 15818 return ' நணà¯à®ªà®à®²à¯'; // நணà¯à®ªà®à®²à¯ 15819 } else if (hour < 18) { 15820 return ' à®à®±à¯à®ªà®¾à®à¯'; // à®à®±à¯à®ªà®¾à®à¯ 15821 } else if (hour < 22) { 15822 return ' மாலà¯'; // மால௠15823 } else { 15824 return ' யாமமà¯'; 15825 } 15826 }, 15827 meridiemHour: function meridiemHour(hour, meridiem) { 15828 if (hour === 12) { 15829 hour = 0; 15830 } 15831 15832 if (meridiem === 'யாமமà¯') { 15833 return hour < 2 ? hour : hour + 12; 15834 } else if (meridiem === 'வà¯à®à®±à¯' || meridiem === 'à®à®¾à®²à¯') { 15835 return hour; 15836 } else if (meridiem === 'நணà¯à®ªà®à®²à¯') { 15837 return hour >= 10 ? hour : hour + 12; 15838 } else { 15839 return hour + 12; 15840 } 15841 }, 15842 week: { 15843 dow: 0, 15844 // Sunday is the first day of the week. 15845 doy: 6 // The week that contains Jan 6th is the first week of the year. 15846 15847 } 15848 }); 15849 return ta; 15850}); 15851 15852/***/ }), 15853
vendor: 4,894 bytes, lines 15854-15957
15854/***/ "../autobahn_client_core/node_modules/moment/locale/te.js": 15855/*!****************************************************************!*\ 15856 !*** ../autobahn_client_core/node_modules/moment/locale/te.js ***! 15857 \****************************************************************/ 15858/*! no static exports found */ 15859/***/ (function(module, exports, __webpack_require__) { 15860 15861var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 15862 15863//! moment.js locale configuration 15864//! locale : Telugu [te] 15865//! author : Krishna Chaitanya Thota : https://github.com/kcthota 15866; 15867 15868(function (global, factory) { 15869 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 15870 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 15871 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 15872 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 15873})(this, function (moment) { 15874 'use strict'; //! moment.js locale configuration 15875 15876 var te = moment.defineLocale('te', { 15877 months: 'à°à°¨à°µà°°à°¿_à°«à°¿à°¬à±à°°à°µà°°à°¿_మారà±à°à°¿_à°à°ªà±à°°à°¿à°²à±_à°®à±_à°à±à°¨à±_à°à±à°²à±_à°à°à°¸à±à°à±_à°¸à±à°ªà±à°à±à°à°¬à°°à±_à° à°à±à°à±à°¬à°°à±_నవà°à°¬à°°à±_à°¡à°¿à°¸à±à°à°¬à°°à±'.split('_'), 15878 monthsShort: 'à°à°¨._à°«à°¿à°¬à±à°°._మారà±à°à°¿_à°à°ªà±à°°à°¿._à°®à±_à°à±à°¨à±_à°à±à°²à±_à°à°._à°¸à±à°ªà±._à° à°à±à°à±._నవ._à°¡à°¿à°¸à±.'.split('_'), 15879 monthsParseExact: true, 15880 weekdays: 'à°à°¦à°¿à°µà°¾à°°à°_à°¸à±à°®à°µà°¾à°°à°_à°®à°à°à°³à°µà°¾à°°à°_à°¬à±à°§à°µà°¾à°°à°_à°à±à°°à±à°µà°¾à°°à°_à°¶à±à°à±à°°à°µà°¾à°°à°_శనివారà°'.split('_'), 15881 weekdaysShort: 'à°à°¦à°¿_à°¸à±à°®_à°®à°à°à°³_à°¬à±à°§_à°à±à°°à±_à°¶à±à°à±à°°_శని'.split('_'), 15882 weekdaysMin: 'à°_à°¸à±_à°®à°_à°¬à±_à°à±_à°¶à±_à°¶'.split('_'), 15883 longDateFormat: { 15884 LT: 'A h:mm', 15885 LTS: 'A h:mm:ss', 15886 L: 'DD/MM/YYYY', 15887 LL: 'D MMMM YYYY', 15888 LLL: 'D MMMM YYYY, A h:mm', 15889 LLLL: 'dddd, D MMMM YYYY, A h:mm' 15890 }, 15891 calendar: { 15892 sameDay: '[à°¨à±à°¡à±] LT', 15893 nextDay: '[à°°à±à°ªà±] LT', 15894 nextWeek: 'dddd, LT', 15895 lastDay: '[నినà±à°¨] LT', 15896 lastWeek: '[à°à°¤] dddd, LT', 15897 sameElse: 'L' 15898 }, 15899 relativeTime: { 15900 future: '%s à°²à±', 15901 past: '%s à°à±à°°à°¿à°¤à°', 15902 s: 'à°à±à°¨à±à°¨à°¿ à°à±à°·à°£à°¾à°²à±', 15903 ss: '%d à°¸à±à°à°¨à±à°²à±', 15904 m: 'à°à° నిమిషà°', 15905 mm: '%d నిమిషాలà±', 15906 h: 'à°à° à°à°à°', 15907 hh: '%d à°à°à°à°²à±', 15908 d: 'à°à° à°°à±à°à±', 15909 dd: '%d à°°à±à°à±à°²à±', 15910 M: 'à°à° à°¨à±à°²', 15911 MM: '%d à°¨à±à°²à°²à±', 15912 y: 'à°à° à°¸à°à°µà°¤à±à°¸à°°à°', 15913 yy: '%d à°¸à°à°µà°¤à±à°¸à°°à°¾à°²à±' 15914 }, 15915 dayOfMonthOrdinalParse: /\d{1,2}à°µ/, 15916 ordinal: '%dà°µ', 15917 meridiemParse: /రాతà±à°°à°¿|à°à°¦à°¯à°|మధà±à°¯à°¾à°¹à±à°¨à°|సాయà°à°¤à±à°°à°/, 15918 meridiemHour: function meridiemHour(hour, meridiem) { 15919 if (hour === 12) { 15920 hour = 0; 15921 } 15922 15923 if (meridiem === 'రాతà±à°°à°¿') { 15924 return hour < 4 ? hour : hour + 12; 15925 } else if (meridiem === 'à°à°¦à°¯à°') { 15926 return hour; 15927 } else if (meridiem === 'మధà±à°¯à°¾à°¹à±à°¨à°') { 15928 return hour >= 10 ? hour : hour + 12; 15929 } else if (meridiem === 'సాయà°à°¤à±à°°à°') { 15930 return hour + 12; 15931 } 15932 }, 15933 meridiem: function meridiem(hour, minute, isLower) { 15934 if (hour < 4) { 15935 return 'రాతà±à°°à°¿'; 15936 } else if (hour < 10) { 15937 return 'à°à°¦à°¯à°'; 15938 } else if (hour < 17) { 15939 return 'మధà±à°¯à°¾à°¹à±à°¨à°'; 15940 } else if (hour < 20) { 15941 return 'సాయà°à°¤à±à°°à°'; 15942 } else { 15943 return 'రాతà±à°°à°¿'; 15944 } 15945 }, 15946 week: { 15947 dow: 0, 15948 // Sunday is the first day of the week. 15949 doy: 6 // The week that contains Jan 6th is the first week of the year. 15950 15951 } 15952 }); 15953 return te; 15954}); 15955 15956/***/ }), 15957
vendor: 3,591 bytes, lines 15958-16037
15958/***/ "../autobahn_client_core/node_modules/moment/locale/tet.js": 15959/*!*****************************************************************!*\ 15960 !*** ../autobahn_client_core/node_modules/moment/locale/tet.js ***! 15961 \*****************************************************************/ 15962/*! no static exports found */ 15963/***/ (function(module, exports, __webpack_require__) { 15964 15965var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 15966 15967//! moment.js locale configuration 15968//! locale : Tetun Dili (East Timor) [tet] 15969//! author : Joshua Brooks : https://github.com/joshbrooks 15970//! author : Onorio De J. Afonso : https://github.com/marobo 15971//! author : Sonia Simoes : https://github.com/soniasimoes 15972; 15973 15974(function (global, factory) { 15975 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 15976 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 15977 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 15978 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 15979})(this, function (moment) { 15980 'use strict'; //! moment.js locale configuration 15981 15982 var tet = moment.defineLocale('tet', { 15983 months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'), 15984 monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), 15985 weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), 15986 weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), 15987 weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), 15988 longDateFormat: { 15989 LT: 'HH:mm', 15990 LTS: 'HH:mm:ss', 15991 L: 'DD/MM/YYYY', 15992 LL: 'D MMMM YYYY', 15993 LLL: 'D MMMM YYYY HH:mm', 15994 LLLL: 'dddd, D MMMM YYYY HH:mm' 15995 }, 15996 calendar: { 15997 sameDay: '[Ohin iha] LT', 15998 nextDay: '[Aban iha] LT', 15999 nextWeek: 'dddd [iha] LT', 16000 lastDay: '[Horiseik iha] LT', 16001 lastWeek: 'dddd [semana kotuk] [iha] LT', 16002 sameElse: 'L' 16003 }, 16004 relativeTime: { 16005 future: 'iha %s', 16006 past: '%s liuba', 16007 s: 'segundu balun', 16008 ss: 'segundu %d', 16009 m: 'minutu ida', 16010 mm: 'minutu %d', 16011 h: 'oras ida', 16012 hh: 'oras %d', 16013 d: 'loron ida', 16014 dd: 'loron %d', 16015 M: 'fulan ida', 16016 MM: 'fulan %d', 16017 y: 'tinan ida', 16018 yy: 'tinan %d' 16019 }, 16020 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 16021 ordinal: function ordinal(number) { 16022 var b = number % 10, 16023 output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; 16024 return number + output; 16025 }, 16026 week: { 16027 dow: 1, 16028 // Monday is the first day of the week. 16029 doy: 4 // The week that contains Jan 4th is the first week of the year. 16030 16031 } 16032 }); 16033 return tet; 16034}); 16035 16036/***/ }), 16037
vendor: 5,102 bytes, lines 16038-16170
16038/***/ "../autobahn_client_core/node_modules/moment/locale/tg.js": 16039/*!****************************************************************!*\ 16040 !*** ../autobahn_client_core/node_modules/moment/locale/tg.js ***! 16041 \****************************************************************/ 16042/*! no static exports found */ 16043/***/ (function(module, exports, __webpack_require__) { 16044 16045var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 16046 16047//! moment.js locale configuration 16048//! locale : Tajik [tg] 16049//! author : Orif N. Jr. : https://github.com/orif-jr 16050; 16051 16052(function (global, factory) { 16053 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 16054 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 16055 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 16056 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 16057})(this, function (moment) { 16058 'use strict'; //! moment.js locale configuration 16059 16060 var suffixes = { 16061 0: '-Ñм', 16062 1: '-Ñм', 16063 2: '-Ñм', 16064 3: '-Ñм', 16065 4: '-Ñм', 16066 5: '-Ñм', 16067 6: '-Ñм', 16068 7: '-Ñм', 16069 8: '-Ñм', 16070 9: '-Ñм', 16071 10: '-Ñм', 16072 12: '-Ñм', 16073 13: '-Ñм', 16074 20: '-Ñм', 16075 30: '-Ñм', 16076 40: '-Ñм', 16077 50: '-Ñм', 16078 60: '-Ñм', 16079 70: '-Ñм', 16080 80: '-Ñм', 16081 90: '-Ñм', 16082 100: '-Ñм' 16083 }; 16084 var tg = moment.defineLocale('tg', { 16085 months: { 16086 format: 'ÑнваÑи_ÑевÑали_маÑÑи_апÑели_майи_иÑни_иÑли_авгÑÑÑи_ÑенÑÑбÑи_окÑÑбÑи_ноÑбÑи_декабÑи'.split('_'), 16087 standalone: 'ÑнваÑ_ÑевÑал_маÑÑ_апÑел_май_иÑн_иÑл_авгÑÑÑ_ÑенÑÑбÑ_окÑÑбÑ_ноÑбÑ_декабÑ'.split('_') 16088 }, 16089 monthsShort: 'Ñнв_Ñев_маÑ_апÑ_май_иÑн_иÑл_авг_Ñен_окÑ_ноÑ_дек'.split('_'), 16090 weekdays: 'ÑкÑанбе_дÑÑанбе_ÑеÑанбе_ÑоÑÑанбе_панҷÑанбе_Ò·ÑмÑа_Ñанбе'.split('_'), 16091 weekdaysShort: 'ÑÑб_дÑб_ÑÑб_ÑÑб_пÑб_Ò·Ñм_Ñнб'.split('_'), 16092 weekdaysMin: 'ÑÑ_дÑ_ÑÑ_ÑÑ_пÑ_ҷм_Ñб'.split('_'), 16093 longDateFormat: { 16094 LT: 'HH:mm', 16095 LTS: 'HH:mm:ss', 16096 L: 'DD.MM.YYYY', 16097 LL: 'D MMMM YYYY', 16098 LLL: 'D MMMM YYYY HH:mm', 16099 LLLL: 'dddd, D MMMM YYYY HH:mm' 16100 }, 16101 calendar: { 16102 sameDay: '[ÐмÑӯз ÑоаÑи] LT', 16103 nextDay: '[ФаÑдо ÑоаÑи] LT', 16104 lastDay: '[ÐиÑӯз ÑоаÑи] LT', 16105 nextWeek: 'dddd[и] [ҳаÑÑаи оÑнда ÑоаÑи] LT', 16106 lastWeek: 'dddd[и] [ҳаÑÑаи гÑзаÑÑа ÑоаÑи] LT', 16107 sameElse: 'L' 16108 }, 16109 relativeTime: { 16110 future: 'баÑди %s', 16111 past: '%s пеÑ', 16112 s: 'ÑкÑанд ÑониÑ', 16113 m: 'Ñк даÒиÒа', 16114 mm: '%d даÒиÒа', 16115 h: 'Ñк ÑоаÑ', 16116 hh: '%d ÑоаÑ', 16117 d: 'Ñк Ñӯз', 16118 dd: '%d Ñӯз', 16119 M: 'Ñк моҳ', 16120 MM: '%d моҳ', 16121 y: 'Ñк Ñол', 16122 yy: '%d Ñол' 16123 }, 16124 meridiemParse: /Ñаб|ÑÑбҳ|Ñӯз|бегоҳ/, 16125 meridiemHour: function meridiemHour(hour, meridiem) { 16126 if (hour === 12) { 16127 hour = 0; 16128 } 16129 16130 if (meridiem === 'Ñаб') { 16131 return hour < 4 ? hour : hour + 12; 16132 } else if (meridiem === 'ÑÑбҳ') { 16133 return hour; 16134 } else if (meridiem === 'Ñӯз') { 16135 return hour >= 11 ? hour : hour + 12; 16136 } else if (meridiem === 'бегоҳ') { 16137 return hour + 12; 16138 } 16139 }, 16140 meridiem: function meridiem(hour, minute, isLower) { 16141 if (hour < 4) { 16142 return 'Ñаб'; 16143 } else if (hour < 11) { 16144 return 'ÑÑбҳ'; 16145 } else if (hour < 16) { 16146 return 'Ñӯз'; 16147 } else if (hour < 19) { 16148 return 'бегоҳ'; 16149 } else { 16150 return 'Ñаб'; 16151 } 16152 }, 16153 dayOfMonthOrdinalParse: /\d{1,2}-(Ñм|Ñм)/, 16154 ordinal: function ordinal(number) { 16155 var a = number % 10, 16156 b = number >= 100 ? 100 : null; 16157 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 16158 }, 16159 week: { 16160 dow: 1, 16161 // Monday is the first day of the week. 16162 doy: 7 // The week that contains Jan 1th is the first week of the year. 16163 16164 } 16165 }); 16166 return tg; 16167}); 16168 16169/***/ }), 16170
vendor: 4,307 bytes, lines 16171-16252
16171/***/ "../autobahn_client_core/node_modules/moment/locale/th.js": 16172/*!****************************************************************!*\ 16173 !*** ../autobahn_client_core/node_modules/moment/locale/th.js ***! 16174 \****************************************************************/ 16175/*! no static exports found */ 16176/***/ (function(module, exports, __webpack_require__) { 16177 16178var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 16179 16180//! moment.js locale configuration 16181//! locale : Thai [th] 16182//! author : Kridsada Thanabulpong : https://github.com/sirn 16183; 16184 16185(function (global, factory) { 16186 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 16187 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 16188 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 16189 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 16190})(this, function (moment) { 16191 'use strict'; //! moment.js locale configuration 16192 16193 var th = moment.defineLocale('th', { 16194 months: 'มà¸à¸£à¸²à¸à¸¡_à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹_มีà¸à¸²à¸à¸¡_à¹à¸¡à¸©à¸²à¸¢à¸_à¸à¸¤à¸©à¸ าà¸à¸¡_มิà¸à¸¸à¸à¸²à¸¢à¸_à¸à¸£à¸à¸à¸²à¸à¸¡_สิà¸à¸«à¸²à¸à¸¡_à¸à¸±à¸à¸¢à¸²à¸¢à¸_à¸à¸¸à¸¥à¸²à¸à¸¡_à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸_à¸à¸±à¸à¸§à¸²à¸à¸¡'.split('_'), 16195 monthsShort: 'ม.à¸._à¸.à¸._มี.à¸._à¹à¸¡.ย._à¸.à¸._มิ.ย._à¸.à¸._ส.à¸._à¸.ย._à¸.à¸._à¸.ย._à¸.à¸.'.split('_'), 16196 monthsParseExact: true, 16197 weekdays: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.split('_'), 16198 weekdaysShort: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ª_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.split('_'), 16199 // yes, three characters difference 16200 weekdaysMin: 'à¸à¸²._à¸._à¸._à¸._à¸à¸¤._ศ._ส.'.split('_'), 16201 weekdaysParseExact: true, 16202 longDateFormat: { 16203 LT: 'H:mm', 16204 LTS: 'H:mm:ss', 16205 L: 'DD/MM/YYYY', 16206 LL: 'D MMMM YYYY', 16207 LLL: 'D MMMM YYYY à¹à¸§à¸¥à¸² H:mm', 16208 LLLL: 'วัà¸ddddà¸à¸µà¹ D MMMM YYYY à¹à¸§à¸¥à¸² H:mm' 16209 }, 16210 meridiemParse: /à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸|หลัà¸à¹à¸à¸µà¹à¸¢à¸/, 16211 isPM: function isPM(input) { 16212 return input === 'หลัà¸à¹à¸à¸µà¹à¸¢à¸'; 16213 }, 16214 meridiem: function meridiem(hour, minute, isLower) { 16215 if (hour < 12) { 16216 return 'à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸'; 16217 } else { 16218 return 'หลัà¸à¹à¸à¸µà¹à¸¢à¸'; 16219 } 16220 }, 16221 calendar: { 16222 sameDay: '[วัà¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 16223 nextDay: '[à¸à¸£à¸¸à¹à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 16224 nextWeek: 'dddd[หà¸à¹à¸² à¹à¸§à¸¥à¸²] LT', 16225 lastDay: '[à¹à¸¡à¸·à¹à¸à¸§à¸²à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 16226 lastWeek: '[วัà¸]dddd[à¸à¸µà¹à¹à¸¥à¹à¸§ à¹à¸§à¸¥à¸²] LT', 16227 sameElse: 'L' 16228 }, 16229 relativeTime: { 16230 future: 'à¸à¸µà¸ %s', 16231 past: '%sà¸à¸µà¹à¹à¸¥à¹à¸§', 16232 s: 'à¹à¸¡à¹à¸à¸µà¹à¸§à¸´à¸à¸²à¸à¸µ', 16233 ss: '%d วิà¸à¸²à¸à¸µ', 16234 m: '1 à¸à¸²à¸à¸µ', 16235 mm: '%d à¸à¸²à¸à¸µ', 16236 h: '1 à¸à¸±à¹à¸§à¹à¸¡à¸', 16237 hh: '%d à¸à¸±à¹à¸§à¹à¸¡à¸', 16238 d: '1 วัà¸', 16239 dd: '%d วัà¸', 16240 w: '1 สัà¸à¸à¸²à¸«à¹', 16241 ww: '%d สัà¸à¸à¸²à¸«à¹', 16242 M: '1 à¹à¸à¸·à¸à¸', 16243 MM: '%d à¹à¸à¸·à¸à¸', 16244 y: '1 à¸à¸µ', 16245 yy: '%d à¸à¸µ' 16246 } 16247 }); 16248 return th; 16249}); 16250 16251/***/ }), 16252
vendor: 4,010 bytes, lines 16253-16363
16253/***/ "../autobahn_client_core/node_modules/moment/locale/tk.js": 16254/*!****************************************************************!*\ 16255 !*** ../autobahn_client_core/node_modules/moment/locale/tk.js ***! 16256 \****************************************************************/ 16257/*! no static exports found */ 16258/***/ (function(module, exports, __webpack_require__) { 16259 16260var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 16261 16262//! moment.js locale configuration 16263//! locale : Turkmen [tk] 16264//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy 16265; 16266 16267(function (global, factory) { 16268 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 16269 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 16270 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 16271 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 16272})(this, function (moment) { 16273 'use strict'; //! moment.js locale configuration 16274 16275 var suffixes = { 16276 1: "'inji", 16277 5: "'inji", 16278 8: "'inji", 16279 70: "'inji", 16280 80: "'inji", 16281 2: "'nji", 16282 7: "'nji", 16283 20: "'nji", 16284 50: "'nji", 16285 3: "'ünji", 16286 4: "'ünji", 16287 100: "'ünji", 16288 6: "'njy", 16289 9: "'unjy", 16290 10: "'unjy", 16291 30: "'unjy", 16292 60: "'ynjy", 16293 90: "'ynjy" 16294 }; 16295 var tk = moment.defineLocale('tk', { 16296 months: 'Ãanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split('_'), 16297 monthsShort: 'Ãan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), 16298 weekdays: 'ÃekÅenbe_DuÅenbe_SiÅenbe_ÃarÅenbe_PenÅenbe_Anna_Åenbe'.split('_'), 16299 weekdaysShort: 'Ãek_DuÅ_SiÅ_Ãar_Pen_Ann_Åen'.split('_'), 16300 weekdaysMin: 'Ãk_DÅ_SÅ_Ãr_Pn_An_Ån'.split('_'), 16301 longDateFormat: { 16302 LT: 'HH:mm', 16303 LTS: 'HH:mm:ss', 16304 L: 'DD.MM.YYYY', 16305 LL: 'D MMMM YYYY', 16306 LLL: 'D MMMM YYYY HH:mm', 16307 LLLL: 'dddd, D MMMM YYYY HH:mm' 16308 }, 16309 calendar: { 16310 sameDay: '[bugün sagat] LT', 16311 nextDay: '[ertir sagat] LT', 16312 nextWeek: '[indiki] dddd [sagat] LT', 16313 lastDay: '[düýn] LT', 16314 lastWeek: '[geçen] dddd [sagat] LT', 16315 sameElse: 'L' 16316 }, 16317 relativeTime: { 16318 future: '%s soÅ', 16319 past: '%s öÅ', 16320 s: 'birnäçe sekunt', 16321 m: 'bir minut', 16322 mm: '%d minut', 16323 h: 'bir sagat', 16324 hh: '%d sagat', 16325 d: 'bir gün', 16326 dd: '%d gün', 16327 M: 'bir aý', 16328 MM: '%d aý', 16329 y: 'bir ýyl', 16330 yy: '%d ýyl' 16331 }, 16332 ordinal: function ordinal(number, period) { 16333 switch (period) { 16334 case 'd': 16335 case 'D': 16336 case 'Do': 16337 case 'DD': 16338 return number; 16339 16340 default: 16341 if (number === 0) { 16342 // special case for zero 16343 return number + "'unjy"; 16344 } 16345 16346 var a = number % 10, 16347 b = number % 100 - a, 16348 c = number >= 100 ? 100 : null; 16349 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 16350 } 16351 }, 16352 week: { 16353 dow: 1, 16354 // Monday is the first day of the week. 16355 doy: 7 // The week that contains Jan 7th is the first week of the year. 16356 16357 } 16358 }); 16359 return tk; 16360}); 16361 16362/***/ }), 16363
vendor: 3,349 bytes, lines 16364-16439
16364/***/ "../autobahn_client_core/node_modules/moment/locale/tl-ph.js": 16365/*!*******************************************************************!*\ 16366 !*** ../autobahn_client_core/node_modules/moment/locale/tl-ph.js ***! 16367 \*******************************************************************/ 16368/*! no static exports found */ 16369/***/ (function(module, exports, __webpack_require__) { 16370 16371var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 16372 16373//! moment.js locale configuration 16374//! locale : Tagalog (Philippines) [tl-ph] 16375//! author : Dan Hagman : https://github.com/hagmandan 16376; 16377 16378(function (global, factory) { 16379 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 16380 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 16381 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 16382 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 16383})(this, function (moment) { 16384 'use strict'; //! moment.js locale configuration 16385 16386 var tlPh = moment.defineLocale('tl-ph', { 16387 months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), 16388 monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), 16389 weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), 16390 weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), 16391 weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), 16392 longDateFormat: { 16393 LT: 'HH:mm', 16394 LTS: 'HH:mm:ss', 16395 L: 'MM/D/YYYY', 16396 LL: 'MMMM D, YYYY', 16397 LLL: 'MMMM D, YYYY HH:mm', 16398 LLLL: 'dddd, MMMM DD, YYYY HH:mm' 16399 }, 16400 calendar: { 16401 sameDay: 'LT [ngayong araw]', 16402 nextDay: '[Bukas ng] LT', 16403 nextWeek: 'LT [sa susunod na] dddd', 16404 lastDay: 'LT [kahapon]', 16405 lastWeek: 'LT [noong nakaraang] dddd', 16406 sameElse: 'L' 16407 }, 16408 relativeTime: { 16409 future: 'sa loob ng %s', 16410 past: '%s ang nakalipas', 16411 s: 'ilang segundo', 16412 ss: '%d segundo', 16413 m: 'isang minuto', 16414 mm: '%d minuto', 16415 h: 'isang oras', 16416 hh: '%d oras', 16417 d: 'isang araw', 16418 dd: '%d araw', 16419 M: 'isang buwan', 16420 MM: '%d buwan', 16421 y: 'isang taon', 16422 yy: '%d taon' 16423 }, 16424 dayOfMonthOrdinalParse: /\d{1,2}/, 16425 ordinal: function ordinal(number) { 16426 return number; 16427 }, 16428 week: { 16429 dow: 1, 16430 // Monday is the first day of the week. 16431 doy: 4 // The week that contains Jan 4th is the first week of the year. 16432 16433 } 16434 }); 16435 return tlPh; 16436}); 16437 16438/***/ }), 16439
vendor: 5,130 bytes, lines 16440-16573
16440/***/ "../autobahn_client_core/node_modules/moment/locale/tlh.js": 16441/*!*****************************************************************!*\ 16442 !*** ../autobahn_client_core/node_modules/moment/locale/tlh.js ***! 16443 \*****************************************************************/ 16444/*! no static exports found */ 16445/***/ (function(module, exports, __webpack_require__) { 16446 16447var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 16448 16449//! moment.js locale configuration 16450//! locale : Klingon [tlh] 16451//! author : Dominika Kruk : https://github.com/amaranthrose 16452; 16453 16454(function (global, factory) { 16455 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 16456 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 16457 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 16458 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 16459})(this, function (moment) { 16460 'use strict'; //! moment.js locale configuration 16461 16462 var numbersNouns = 'pagh_waâ_chaâ_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); 16463 16464 function translateFuture(output) { 16465 var time = output; 16466 time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'leS' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'waQ' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'nem' : time + ' pIq'; 16467 return time; 16468 } 16469 16470 function translatePast(output) { 16471 var time = output; 16472 time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'Huâ' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'wen' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'ben' : time + ' ret'; 16473 return time; 16474 } 16475 16476 function translate(number, withoutSuffix, string, isFuture) { 16477 var numberNoun = numberAsNoun(number); 16478 16479 switch (string) { 16480 case 'ss': 16481 return numberNoun + ' lup'; 16482 16483 case 'mm': 16484 return numberNoun + ' tup'; 16485 16486 case 'hh': 16487 return numberNoun + ' rep'; 16488 16489 case 'dd': 16490 return numberNoun + ' jaj'; 16491 16492 case 'MM': 16493 return numberNoun + ' jar'; 16494 16495 case 'yy': 16496 return numberNoun + ' DIS'; 16497 } 16498 } 16499 16500 function numberAsNoun(number) { 16501 var hundred = Math.floor(number % 1000 / 100), 16502 ten = Math.floor(number % 100 / 10), 16503 one = number % 10, 16504 word = ''; 16505 16506 if (hundred > 0) { 16507 word += numbersNouns[hundred] + 'vatlh'; 16508 } 16509 16510 if (ten > 0) { 16511 word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; 16512 } 16513 16514 if (one > 0) { 16515 word += (word !== '' ? ' ' : '') + numbersNouns[one]; 16516 } 16517 16518 return word === '' ? 'pagh' : word; 16519 } 16520 16521 var tlh = moment.defineLocale('tlh', { 16522 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('_'), 16523 monthsShort: 'jar waâ_jar chaâ_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar waâmaH_jar waâmaH waâ_jar waâmaH chaâ'.split('_'), 16524 monthsParseExact: true, 16525 weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), 16526 weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), 16527 weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), 16528 longDateFormat: { 16529 LT: 'HH:mm', 16530 LTS: 'HH:mm:ss', 16531 L: 'DD.MM.YYYY', 16532 LL: 'D MMMM YYYY', 16533 LLL: 'D MMMM YYYY HH:mm', 16534 LLLL: 'dddd, D MMMM YYYY HH:mm' 16535 }, 16536 calendar: { 16537 sameDay: '[DaHjaj] LT', 16538 nextDay: '[waâleS] LT', 16539 nextWeek: 'LLL', 16540 lastDay: '[waâHuâ] LT', 16541 lastWeek: 'LLL', 16542 sameElse: 'L' 16543 }, 16544 relativeTime: { 16545 future: translateFuture, 16546 past: translatePast, 16547 s: 'puS lup', 16548 ss: translate, 16549 m: 'waâ tup', 16550 mm: translate, 16551 h: 'waâ rep', 16552 hh: translate, 16553 d: 'waâ jaj', 16554 dd: translate, 16555 M: 'waâ jar', 16556 MM: translate, 16557 y: 'waâ DIS', 16558 yy: translate 16559 }, 16560 dayOfMonthOrdinalParse: /\d{1,2}\./, 16561 ordinal: '%d.', 16562 week: { 16563 dow: 1, 16564 // Monday is the first day of the week. 16565 doy: 4 // The week that contains Jan 4th is the first week of the year. 16566 16567 } 16568 }); 16569 return tlh; 16570}); 16571 16572/***/ }), 16573
vendor: 4,439 bytes, lines 16574-16699
16574/***/ "../autobahn_client_core/node_modules/moment/locale/tr.js": 16575/*!****************************************************************!*\ 16576 !*** ../autobahn_client_core/node_modules/moment/locale/tr.js ***! 16577 \****************************************************************/ 16578/*! no static exports found */ 16579/***/ (function(module, exports, __webpack_require__) { 16580 16581var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 16582 16583//! moment.js locale configuration 16584//! locale : Turkish [tr] 16585//! authors : Erhan Gundogan : https://github.com/erhangundogan, 16586//! Burak YiÄit Kaya: https://github.com/BYK 16587; 16588 16589(function (global, factory) { 16590 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 16591 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 16592 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 16593 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 16594})(this, function (moment) { 16595 'use strict'; //! moment.js locale configuration 16596 16597 var suffixes = { 16598 1: "'inci", 16599 5: "'inci", 16600 8: "'inci", 16601 70: "'inci", 16602 80: "'inci", 16603 2: "'nci", 16604 7: "'nci", 16605 20: "'nci", 16606 50: "'nci", 16607 3: "'üncü", 16608 4: "'üncü", 16609 100: "'üncü", 16610 6: "'ncı", 16611 9: "'uncu", 16612 10: "'uncu", 16613 30: "'uncu", 16614 60: "'ıncı", 16615 90: "'ıncı" 16616 }; 16617 var tr = moment.defineLocale('tr', { 16618 months: 'Ocak_Åubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄustos_Eylül_Ekim_Kasım_Aralık'.split('_'), 16619 monthsShort: 'Oca_Åub_Mar_Nis_May_Haz_Tem_AÄu_Eyl_Eki_Kas_Ara'.split('_'), 16620 weekdays: 'Pazar_Pazartesi_Salı_ÃarÅamba_PerÅembe_Cuma_Cumartesi'.split('_'), 16621 weekdaysShort: 'Paz_Pzt_Sal_Ãar_Per_Cum_Cmt'.split('_'), 16622 weekdaysMin: 'Pz_Pt_Sa_Ãa_Pe_Cu_Ct'.split('_'), 16623 meridiem: function meridiem(hours, minutes, isLower) { 16624 if (hours < 12) { 16625 return isLower ? 'öö' : 'ÃÃ'; 16626 } else { 16627 return isLower ? 'ös' : 'ÃS'; 16628 } 16629 }, 16630 meridiemParse: /öö|ÃÃ|ös|ÃS/, 16631 isPM: function isPM(input) { 16632 return input === 'ös' || input === 'ÃS'; 16633 }, 16634 longDateFormat: { 16635 LT: 'HH:mm', 16636 LTS: 'HH:mm:ss', 16637 L: 'DD.MM.YYYY', 16638 LL: 'D MMMM YYYY', 16639 LLL: 'D MMMM YYYY HH:mm', 16640 LLLL: 'dddd, D MMMM YYYY HH:mm' 16641 }, 16642 calendar: { 16643 sameDay: '[bugün saat] LT', 16644 nextDay: '[yarın saat] LT', 16645 nextWeek: '[gelecek] dddd [saat] LT', 16646 lastDay: '[dün] LT', 16647 lastWeek: '[geçen] dddd [saat] LT', 16648 sameElse: 'L' 16649 }, 16650 relativeTime: { 16651 future: '%s sonra', 16652 past: '%s önce', 16653 s: 'birkaç saniye', 16654 ss: '%d saniye', 16655 m: 'bir dakika', 16656 mm: '%d dakika', 16657 h: 'bir saat', 16658 hh: '%d saat', 16659 d: 'bir gün', 16660 dd: '%d gün', 16661 w: 'bir hafta', 16662 ww: '%d hafta', 16663 M: 'bir ay', 16664 MM: '%d ay', 16665 y: 'bir yıl', 16666 yy: '%d yıl' 16667 }, 16668 ordinal: function ordinal(number, period) { 16669 switch (period) { 16670 case 'd': 16671 case 'D': 16672 case 'Do': 16673 case 'DD': 16674 return number; 16675 16676 default: 16677 if (number === 0) { 16678 // special case for zero 16679 return number + "'ıncı"; 16680 } 16681 16682 var a = number % 10, 16683 b = number % 100 - a, 16684 c = number >= 100 ? 100 : null; 16685 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 16686 } 16687 }, 16688 week: { 16689 dow: 1, 16690 // Monday is the first day of the week. 16691 doy: 7 // The week that contains Jan 7th is the first week of the year. 16692 16693 } 16694 }); 16695 return tr; 16696}); 16697 16698/***/ }), 16699
vendor: 4,670 bytes, lines 16700-16806
16700/***/ "../autobahn_client_core/node_modules/moment/locale/tzl.js": 16701/*!*****************************************************************!*\ 16702 !*** ../autobahn_client_core/node_modules/moment/locale/tzl.js ***! 16703 \*****************************************************************/ 16704/*! no static exports found */ 16705/***/ (function(module, exports, __webpack_require__) { 16706 16707var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 16708 16709//! moment.js locale configuration 16710//! locale : Talossan [tzl] 16711//! author : Robin van der Vliet : https://github.com/robin0van0der0v 16712//! author : Iustì Canun 16713; 16714 16715(function (global, factory) { 16716 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 16717 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 16718 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 16719 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 16720})(this, function (moment) { 16721 'use strict'; //! moment.js locale configuration 16722 // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. 16723 // This is currently too difficult (maybe even impossible) to add. 16724 16725 var tzl = moment.defineLocale('tzl', { 16726 months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'), 16727 monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), 16728 weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), 16729 weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), 16730 weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), 16731 longDateFormat: { 16732 LT: 'HH.mm', 16733 LTS: 'HH.mm.ss', 16734 L: 'DD.MM.YYYY', 16735 LL: 'D. MMMM [dallas] YYYY', 16736 LLL: 'D. MMMM [dallas] YYYY HH.mm', 16737 LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm' 16738 }, 16739 meridiemParse: /d\'o|d\'a/i, 16740 isPM: function isPM(input) { 16741 return "d'o" === input.toLowerCase(); 16742 }, 16743 meridiem: function meridiem(hours, minutes, isLower) { 16744 if (hours > 11) { 16745 return isLower ? "d'o" : "D'O"; 16746 } else { 16747 return isLower ? "d'a" : "D'A"; 16748 } 16749 }, 16750 calendar: { 16751 sameDay: '[oxhi à ] LT', 16752 nextDay: '[demà à ] LT', 16753 nextWeek: 'dddd [à ] LT', 16754 lastDay: '[ieiri à ] LT', 16755 lastWeek: '[sür el] dddd [lasteu à ] LT', 16756 sameElse: 'L' 16757 }, 16758 relativeTime: { 16759 future: 'osprei %s', 16760 past: 'ja%s', 16761 s: processRelativeTime, 16762 ss: processRelativeTime, 16763 m: processRelativeTime, 16764 mm: processRelativeTime, 16765 h: processRelativeTime, 16766 hh: processRelativeTime, 16767 d: processRelativeTime, 16768 dd: processRelativeTime, 16769 M: processRelativeTime, 16770 MM: processRelativeTime, 16771 y: processRelativeTime, 16772 yy: processRelativeTime 16773 }, 16774 dayOfMonthOrdinalParse: /\d{1,2}\./, 16775 ordinal: '%d.', 16776 week: { 16777 dow: 1, 16778 // Monday is the first day of the week. 16779 doy: 4 // The week that contains Jan 4th is the first week of the year. 16780 16781 } 16782 }); 16783 16784 function processRelativeTime(number, withoutSuffix, key, isFuture) { 16785 var format = { 16786 s: ['viensas secunds', "'iensas secunds"], 16787 ss: [number + ' secunds', '' + number + ' secunds'], 16788 m: ["'n mÃut", "'iens mÃut"], 16789 mm: [number + ' mÃuts', '' + number + ' mÃuts'], 16790 h: ["'n þora", "'iensa þora"], 16791 hh: [number + ' þoras', '' + number + ' þoras'], 16792 d: ["'n ziua", "'iensa ziua"], 16793 dd: [number + ' ziuas', '' + number + ' ziuas'], 16794 M: ["'n mes", "'iens mes"], 16795 MM: [number + ' mesen', '' + number + ' mesen'], 16796 y: ["'n ar", "'iens ar"], 16797 yy: [number + ' ars', '' + number + ' ars'] 16798 }; 16799 return isFuture ? format[key][0] : withoutSuffix ? format[key][0] : format[key][1]; 16800 } 16801 16802 return tzl; 16803}); 16804 16805/***/ }), 16806
vendor: 3,302 bytes, lines 16807-16878
16807/***/ "../autobahn_client_core/node_modules/moment/locale/tzm-latn.js": 16808/*!**********************************************************************!*\ 16809 !*** ../autobahn_client_core/node_modules/moment/locale/tzm-latn.js ***! 16810 \**********************************************************************/ 16811/*! no static exports found */ 16812/***/ (function(module, exports, __webpack_require__) { 16813 16814var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 16815 16816//! moment.js locale configuration 16817//! locale : Central Atlas Tamazight Latin [tzm-latn] 16818//! author : Abdel Said : https://github.com/abdelsaid 16819; 16820 16821(function (global, factory) { 16822 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 16823 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 16824 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 16825 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 16826})(this, function (moment) { 16827 'use strict'; //! moment.js locale configuration 16828 16829 var tzmLatn = moment.defineLocale('tzm-latn', { 16830 months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), 16831 monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), 16832 weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 16833 weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 16834 weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 16835 longDateFormat: { 16836 LT: 'HH:mm', 16837 LTS: 'HH:mm:ss', 16838 L: 'DD/MM/YYYY', 16839 LL: 'D MMMM YYYY', 16840 LLL: 'D MMMM YYYY HH:mm', 16841 LLLL: 'dddd D MMMM YYYY HH:mm' 16842 }, 16843 calendar: { 16844 sameDay: '[asdkh g] LT', 16845 nextDay: '[aska g] LT', 16846 nextWeek: 'dddd [g] LT', 16847 lastDay: '[assant g] LT', 16848 lastWeek: 'dddd [g] LT', 16849 sameElse: 'L' 16850 }, 16851 relativeTime: { 16852 future: 'dadkh s yan %s', 16853 past: 'yan %s', 16854 s: 'imik', 16855 ss: '%d imik', 16856 m: 'minuá¸', 16857 mm: '%d minuá¸', 16858 h: 'saÉa', 16859 hh: '%d tassaÉin', 16860 d: 'ass', 16861 dd: '%d ossan', 16862 M: 'ayowr', 16863 MM: '%d iyyirn', 16864 y: 'asgas', 16865 yy: '%d isgasn' 16866 }, 16867 week: { 16868 dow: 6, 16869 // Saturday is the first day of the week. 16870 doy: 12 // The week that contains Jan 12th is the first week of the year. 16871 16872 } 16873 }); 16874 return tzmLatn; 16875}); 16876 16877/***/ }), 16878
vendor: 3,905 bytes, lines 16879-16950
16879/***/ "../autobahn_client_core/node_modules/moment/locale/tzm.js": 16880/*!*****************************************************************!*\ 16881 !*** ../autobahn_client_core/node_modules/moment/locale/tzm.js ***! 16882 \*****************************************************************/ 16883/*! no static exports found */ 16884/***/ (function(module, exports, __webpack_require__) { 16885 16886var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 16887 16888//! moment.js locale configuration 16889//! locale : Central Atlas Tamazight [tzm] 16890//! author : Abdel Said : https://github.com/abdelsaid 16891; 16892 16893(function (global, factory) { 16894 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 16895 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 16896 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 16897 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 16898})(this, function (moment) { 16899 'use strict'; //! moment.js locale configuration 16900 16901 var tzm = moment.defineLocale('tzm', { 16902 months: 'âµâµâµâ´°âµ¢âµ_â´±âµâ´°âµ¢âµ_âµâ´°âµâµ_âµâ´±âµâµâµ_âµâ´°âµ¢âµ¢âµ_âµ¢âµâµâµ¢âµ_âµ¢âµâµâµ¢âµâµ£_âµâµâµâµ_âµâµâµâ´°âµâ´±âµâµ_â´½âµâµâ´±âµ_âµâµâµ¡â´°âµâ´±âµâµ_â´·âµâµâµâ´±âµâµ'.split('_'), 16903 monthsShort: 'âµâµâµâ´°âµ¢âµ_â´±âµâ´°âµ¢âµ_âµâ´°âµâµ_âµâ´±âµâµâµ_âµâ´°âµ¢âµ¢âµ_âµ¢âµâµâµ¢âµ_âµ¢âµâµâµ¢âµâµ£_âµâµâµâµ_âµâµâµâ´°âµâ´±âµâµ_â´½âµâµâ´±âµ_âµâµâµ¡â´°âµâ´±âµâµ_â´·âµâµâµâ´±âµâµ'.split('_'), 16904 weekdays: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 16905 weekdaysShort: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 16906 weekdaysMin: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 16907 longDateFormat: { 16908 LT: 'HH:mm', 16909 LTS: 'HH:mm:ss', 16910 L: 'DD/MM/YYYY', 16911 LL: 'D MMMM YYYY', 16912 LLL: 'D MMMM YYYY HH:mm', 16913 LLLL: 'dddd D MMMM YYYY HH:mm' 16914 }, 16915 calendar: { 16916 sameDay: '[â´°âµâ´·âµ â´´] LT', 16917 nextDay: '[â´°âµâ´½â´° â´´] LT', 16918 nextWeek: 'dddd [â´´] LT', 16919 lastDay: '[â´°âµâ´°âµâµ â´´] LT', 16920 lastWeek: 'dddd [â´´] LT', 16921 sameElse: 'L' 16922 }, 16923 relativeTime: { 16924 future: 'ⴷⴰⴷⵠⵠⵢⴰⵠ%s', 16925 past: 'ⵢⴰⵠ%s', 16926 s: 'âµâµâµâ´½', 16927 ss: '%d âµâµâµâ´½', 16928 m: 'âµâµâµâµâ´º', 16929 mm: '%d âµâµâµâµâ´º', 16930 h: 'âµâ´°âµâ´°', 16931 hh: '%d âµâ´°âµâµâ´°âµâµâµ', 16932 d: 'â´°âµâµ', 16933 dd: '%d oâµâµâ´°âµ', 16934 M: 'â´°âµ¢oâµâµ', 16935 MM: '%d âµâµ¢âµ¢âµâµâµ', 16936 y: 'â´°âµâ´³â´°âµ', 16937 yy: '%d âµâµâ´³â´°âµâµ' 16938 }, 16939 week: { 16940 dow: 6, 16941 // Saturday is the first day of the week. 16942 doy: 12 // The week that contains Jan 12th is the first week of the year. 16943 16944 } 16945 }); 16946 return tzm; 16947}); 16948 16949/***/ }), 16950
vendor: 5,341 bytes, lines 16951-17076
16951/***/ "../autobahn_client_core/node_modules/moment/locale/ug-cn.js": 16952/*!*******************************************************************!*\ 16953 !*** ../autobahn_client_core/node_modules/moment/locale/ug-cn.js ***! 16954 \*******************************************************************/ 16955/*! no static exports found */ 16956/***/ (function(module, exports, __webpack_require__) { 16957 16958var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 16959 16960//! moment.js locale configuration 16961//! locale : Uyghur (China) [ug-cn] 16962//! author: boyaq : https://github.com/boyaq 16963; 16964 16965(function (global, factory) { 16966 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 16967 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 16968 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 16969 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 16970})(this, function (moment) { 16971 'use strict'; //! moment.js locale configuration 16972 16973 var ugCn = moment.defineLocale('ug-cn', { 16974 months: 'ÙØ§ÙÛØ§Ø±_ÙÛÛØ±Ø§Ù_٠ارت_ئاپرÛÙ_٠اÙ_ئÙÙÛÙ_ئÙÙÛÙ_Ø¦Ø§ÛØºÛست_سÛÙØªÛØ¨ÙØ±_ئÛÙØªÛØ¨ÙØ±_ÙÙÙØ§Ø¨Ùر_دÛÙØ§Ø¨Ùر'.split('_'), 16975 monthsShort: 'ÙØ§ÙÛØ§Ø±_ÙÛÛØ±Ø§Ù_٠ارت_ئاپرÛÙ_٠اÙ_ئÙÙÛÙ_ئÙÙÛÙ_Ø¦Ø§ÛØºÛست_سÛÙØªÛØ¨ÙØ±_ئÛÙØªÛØ¨ÙØ±_ÙÙÙØ§Ø¨Ùر_دÛÙØ§Ø¨Ùر'.split('_'), 16976 weekdays: 'ÙÛÙØ´ÛÙØ¨Û_Ø¯ÛØ´ÛÙØ¨Û_سÛÙØ´ÛÙØ¨Û_ÚØ§Ø±Ø´ÛÙØ¨Û_Ù¾ÛÙØ´ÛÙØ¨Û_جÛÙ Û_Ø´ÛÙØ¨Û'.split('_'), 16977 weekdaysShort: 'ÙÛ_دÛ_سÛ_ÚØ§_Ù¾Û_جÛ_Ø´Û'.split('_'), 16978 weekdaysMin: 'ÙÛ_دÛ_سÛ_ÚØ§_Ù¾Û_جÛ_Ø´Û'.split('_'), 16979 longDateFormat: { 16980 LT: 'HH:mm', 16981 LTS: 'HH:mm:ss', 16982 L: 'YYYY-MM-DD', 16983 LL: 'YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙ', 16984 LLL: 'YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙØ HH:mm', 16985 LLLL: 'ddddØ YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙØ HH:mm' 16986 }, 16987 meridiemParse: /ÙÛØ±ÙÙ ÙÛÚÛ|سÛÚ¾ÛØ±|ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ|ÚÛØ´|ÚÛØ´ØªÙÙ ÙÛÙÙÙ|ÙÛÚ/, 16988 meridiemHour: function meridiemHour(hour, meridiem) { 16989 if (hour === 12) { 16990 hour = 0; 16991 } 16992 16993 if (meridiem === 'ÙÛØ±ÙÙ ÙÛÚÛ' || meridiem === 'سÛÚ¾ÛØ±' || meridiem === 'ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ') { 16994 return hour; 16995 } else if (meridiem === 'ÚÛØ´ØªÙÙ ÙÛÙÙÙ' || meridiem === 'ÙÛÚ') { 16996 return hour + 12; 16997 } else { 16998 return hour >= 11 ? hour : hour + 12; 16999 } 17000 }, 17001 meridiem: function meridiem(hour, minute, isLower) { 17002 var hm = hour * 100 + minute; 17003 17004 if (hm < 600) { 17005 return 'ÙÛØ±ÙÙ ÙÛÚÛ'; 17006 } else if (hm < 900) { 17007 return 'سÛÚ¾ÛØ±'; 17008 } else if (hm < 1130) { 17009 return 'ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ'; 17010 } else if (hm < 1230) { 17011 return 'ÚÛØ´'; 17012 } else if (hm < 1800) { 17013 return 'ÚÛØ´ØªÙÙ ÙÛÙÙÙ'; 17014 } else { 17015 return 'ÙÛÚ'; 17016 } 17017 }, 17018 calendar: { 17019 sameDay: '[بÛÚ¯ÛÙ Ø³Ø§Ø¦ÛØª] LT', 17020 nextDay: '[Ø¦ÛØªÛ Ø³Ø§Ø¦ÛØª] LT', 17021 nextWeek: '[ÙÛÙÛØ±ÙÙ] dddd [Ø³Ø§Ø¦ÛØª] LT', 17022 lastDay: '[تÛÙÛÚ¯ÛÙ] LT', 17023 lastWeek: '[Ø¦Ø§ÙØ¯ÙÙÙÙ] dddd [Ø³Ø§Ø¦ÛØª] LT', 17024 sameElse: 'L' 17025 }, 17026 relativeTime: { 17027 future: '%s ÙÛÙÙÙ', 17028 past: '%s Ø¨ÛØ±ÛÙ', 17029 s: 'ÙÛÚÚÛ Ø³ÛÙÙÙØª', 17030 ss: '%d سÛÙÙÙØª', 17031 m: 'Ø¨ÙØ± Ù ÙÙÛØª', 17032 mm: '%d Ù ÙÙÛØª', 17033 h: 'Ø¨ÙØ± Ø³Ø§Ø¦ÛØª', 17034 hh: '%d Ø³Ø§Ø¦ÛØª', 17035 d: 'Ø¨ÙØ± ÙÛÙ', 17036 dd: '%d ÙÛÙ', 17037 M: 'Ø¨ÙØ± ئاÙ', 17038 MM: '%d ئاÙ', 17039 y: 'Ø¨ÙØ± ÙÙÙ', 17040 yy: '%d ÙÙÙ' 17041 }, 17042 dayOfMonthOrdinalParse: /\d{1,2}(-ÙÛÙÙ|-ئاÙ|-Ú¾ÛپتÛ)/, 17043 ordinal: function ordinal(number, period) { 17044 switch (period) { 17045 case 'd': 17046 case 'D': 17047 case 'DDD': 17048 return number + '-ÙÛÙÙ'; 17049 17050 case 'w': 17051 case 'W': 17052 return number + '-Ú¾ÛپتÛ'; 17053 17054 default: 17055 return number; 17056 } 17057 }, 17058 preparse: function preparse(string) { 17059 return string.replace(/Ø/g, ','); 17060 }, 17061 postformat: function postformat(string) { 17062 return string.replace(/,/g, 'Ø'); 17063 }, 17064 week: { 17065 // GB/T 7408-1994ãæ°æ®å åäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ¥æåæ¶é´è¡¨ç¤ºæ³ãä¸ISO 8601:1988çæ 17066 dow: 1, 17067 // Monday is the first day of the week. 17068 doy: 7 // The week that contains Jan 1st is the first week of the year. 17069 17070 } 17071 }); 17072 return ugCn; 17073}); 17074 17075/***/ }), 17076
vendor: 7,098 bytes, lines 17077-17248
17077/***/ "../autobahn_client_core/node_modules/moment/locale/uk.js": 17078/*!****************************************************************!*\ 17079 !*** ../autobahn_client_core/node_modules/moment/locale/uk.js ***! 17080 \****************************************************************/ 17081/*! no static exports found */ 17082/***/ (function(module, exports, __webpack_require__) { 17083 17084var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 17085 17086//! moment.js locale configuration 17087//! locale : Ukrainian [uk] 17088//! author : zemlanin : https://github.com/zemlanin 17089//! Author : Menelion Elensúle : https://github.com/Oire 17090; 17091 17092(function (global, factory) { 17093 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 17094 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 17095 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 17096 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 17097})(this, function (moment) { 17098 'use strict'; //! moment.js locale configuration 17099 17100 function plural(word, num) { 17101 var forms = word.split('_'); 17102 return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]; 17103 } 17104 17105 function relativeTimeWithPlural(number, withoutSuffix, key) { 17106 var format = { 17107 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑнди_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑнди_ÑекÑнд', 17108 mm: withoutSuffix ? 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ð°_Ñ Ð²Ð¸Ð»Ð¸Ð½Ð¸_Ñ Ð²Ð¸Ð»Ð¸Ð½' : 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ñ_Ñ Ð²Ð¸Ð»Ð¸Ð½Ð¸_Ñ Ð²Ð¸Ð»Ð¸Ð½', 17109 hh: withoutSuffix ? 'година_години_годин' : 'годинÑ_години_годин', 17110 dd: 'денÑ_днÑ_днÑв', 17111 MM: 'мÑÑÑÑÑ_мÑÑÑÑÑ_мÑÑÑÑÑв', 17112 yy: 'ÑÑк_Ñоки_ÑокÑв' 17113 }; 17114 17115 if (key === 'm') { 17116 return withoutSuffix ? 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ð°' : 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ñ'; 17117 } else if (key === 'h') { 17118 return withoutSuffix ? 'година' : 'годинÑ'; 17119 } else { 17120 return number + ' ' + plural(format[key], +number); 17121 } 17122 } 17123 17124 function weekdaysCaseReplace(m, format) { 17125 var weekdays = { 17126 nominative: 'недÑлÑ_понедÑлок_вÑвÑоÑок_ÑеÑеда_ÑеÑвеÑ_пâÑÑниÑÑ_ÑÑбоÑа'.split('_'), 17127 accusative: 'недÑлÑ_понедÑлок_вÑвÑоÑок_ÑеÑедÑ_ÑеÑвеÑ_пâÑÑниÑÑ_ÑÑбоÑÑ'.split('_'), 17128 genitive: 'недÑлÑ_понедÑлка_вÑвÑоÑка_ÑеÑеди_ÑеÑвеÑга_пâÑÑниÑÑ_ÑÑбоÑи'.split('_') 17129 }, 17130 nounCase; 17131 17132 if (m === true) { 17133 return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1)); 17134 } 17135 17136 if (!m) { 17137 return weekdays['nominative']; 17138 } 17139 17140 nounCase = /(\[[ÐвУÑ]\]) ?dddd/.test(format) ? 'accusative' : /\[?(?:минÑлоÑ|наÑÑÑпноÑ)? ?\] ?dddd/.test(format) ? 'genitive' : 'nominative'; 17141 return weekdays[nounCase][m.day()]; 17142 } 17143 17144 function processHoursFunction(str) { 17145 return function () { 17146 return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; 17147 }; 17148 } 17149 17150 var uk = moment.defineLocale('uk', { 17151 months: { 17152 format: 'ÑÑÑнÑ_лÑÑого_беÑезнÑ_квÑÑнÑ_ÑÑавнÑ_ÑеÑвнÑ_липнÑ_ÑеÑпнÑ_веÑеÑнÑ_жовÑнÑ_лиÑÑопада_гÑÑднÑ'.split('_'), 17153 standalone: 'ÑÑÑенÑ_лÑÑий_беÑезенÑ_квÑÑенÑ_ÑÑавенÑ_ÑеÑвенÑ_липенÑ_ÑеÑпенÑ_веÑеÑенÑ_жовÑенÑ_лиÑÑопад_гÑÑденÑ'.split('_') 17154 }, 17155 monthsShort: 'ÑÑÑ_лÑÑ_беÑ_квÑÑ_ÑÑав_ÑеÑв_лип_ÑеÑп_веÑ_жовÑ_лиÑÑ_гÑÑд'.split('_'), 17156 weekdays: weekdaysCaseReplace, 17157 weekdaysShort: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 17158 weekdaysMin: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 17159 longDateFormat: { 17160 LT: 'HH:mm', 17161 LTS: 'HH:mm:ss', 17162 L: 'DD.MM.YYYY', 17163 LL: 'D MMMM YYYY Ñ.', 17164 LLL: 'D MMMM YYYY Ñ., HH:mm', 17165 LLLL: 'dddd, D MMMM YYYY Ñ., HH:mm' 17166 }, 17167 calendar: { 17168 sameDay: processHoursFunction('[СÑÐ¾Ð³Ð¾Ð´Ð½Ñ '), 17169 nextDay: processHoursFunction('[ÐавÑÑа '), 17170 lastDay: processHoursFunction('[ÐÑоÑа '), 17171 nextWeek: processHoursFunction('[У] dddd ['), 17172 lastWeek: function lastWeek() { 17173 switch (this.day()) { 17174 case 0: 17175 case 3: 17176 case 5: 17177 case 6: 17178 return processHoursFunction('[ÐинÑлоÑ] dddd [').call(this); 17179 17180 case 1: 17181 case 2: 17182 case 4: 17183 return processHoursFunction('[ÐинÑлого] dddd [').call(this); 17184 } 17185 }, 17186 sameElse: 'L' 17187 }, 17188 relativeTime: { 17189 future: 'за %s', 17190 past: '%s ÑомÑ', 17191 s: 'декÑлÑка ÑекÑнд', 17192 ss: relativeTimeWithPlural, 17193 m: relativeTimeWithPlural, 17194 mm: relativeTimeWithPlural, 17195 h: 'годинÑ', 17196 hh: relativeTimeWithPlural, 17197 d: 'денÑ', 17198 dd: relativeTimeWithPlural, 17199 M: 'мÑÑÑÑÑ', 17200 MM: relativeTimeWithPlural, 17201 y: 'ÑÑк', 17202 yy: relativeTimeWithPlural 17203 }, 17204 // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason 17205 meridiemParse: /ноÑÑ|ÑанкÑ|днÑ|веÑоÑа/, 17206 isPM: function isPM(input) { 17207 return /^(днÑ|веÑоÑа)$/.test(input); 17208 }, 17209 meridiem: function meridiem(hour, minute, isLower) { 17210 if (hour < 4) { 17211 return 'ноÑÑ'; 17212 } else if (hour < 12) { 17213 return 'ÑанкÑ'; 17214 } else if (hour < 17) { 17215 return 'днÑ'; 17216 } else { 17217 return 'веÑоÑа'; 17218 } 17219 }, 17220 dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, 17221 ordinal: function ordinal(number, period) { 17222 switch (period) { 17223 case 'M': 17224 case 'd': 17225 case 'DDD': 17226 case 'w': 17227 case 'W': 17228 return number + '-й'; 17229 17230 case 'D': 17231 return number + '-го'; 17232 17233 default: 17234 return number; 17235 } 17236 }, 17237 week: { 17238 dow: 1, 17239 // Monday is the first day of the week. 17240 doy: 7 // The week that contains Jan 7th is the first week of the year. 17241 17242 } 17243 }); 17244 return uk; 17245}); 17246 17247/***/ }), 17248
vendor: 3,736 bytes, lines 17249-17340
17249/***/ "../autobahn_client_core/node_modules/moment/locale/ur.js": 17250/*!****************************************************************!*\ 17251 !*** ../autobahn_client_core/node_modules/moment/locale/ur.js ***! 17252 \****************************************************************/ 17253/*! no static exports found */ 17254/***/ (function(module, exports, __webpack_require__) { 17255 17256var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 17257 17258//! moment.js locale configuration 17259//! locale : Urdu [ur] 17260//! author : Sawood Alam : https://github.com/ibnesayeed 17261//! author : Zack : https://github.com/ZackVision 17262; 17263 17264(function (global, factory) { 17265 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 17266 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 17267 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 17268 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 17269})(this, function (moment) { 17270 'use strict'; //! moment.js locale configuration 17271 17272 var months = ['جÙÙØ±Û', 'ÙØ±ÙرÛ', '٠ارÚ', 'اپرÛÙ', '٠ئÛ', 'جÙÙ', 'جÙÙØ§Ø¦Û', 'اگست', 'ست٠بر', 'Ø§Ú©ØªÙØ¨Ø±', 'ÙÙ٠بر', 'دس٠بر'], 17273 days = ['Ø§ØªÙØ§Ø±', 'Ù¾ÛØ±', 'Ù ÙÚ¯Ù', 'بدھ', 'ج٠عرات', 'ج٠عÛ', 'ÛÙØªÛ']; 17274 var ur = moment.defineLocale('ur', { 17275 months: months, 17276 monthsShort: months, 17277 weekdays: days, 17278 weekdaysShort: days, 17279 weekdaysMin: days, 17280 longDateFormat: { 17281 LT: 'HH:mm', 17282 LTS: 'HH:mm:ss', 17283 L: 'DD/MM/YYYY', 17284 LL: 'D MMMM YYYY', 17285 LLL: 'D MMMM YYYY HH:mm', 17286 LLLL: 'ddddØ D MMMM YYYY HH:mm' 17287 }, 17288 meridiemParse: /صبØ|شا٠/, 17289 isPM: function isPM(input) { 17290 return 'شا٠' === input; 17291 }, 17292 meridiem: function meridiem(hour, minute, isLower) { 17293 if (hour < 12) { 17294 return 'صبØ'; 17295 } 17296 17297 return 'شا٠'; 17298 }, 17299 calendar: { 17300 sameDay: '[آج بÙÙØª] LT', 17301 nextDay: '[ک٠بÙÙØª] LT', 17302 nextWeek: 'dddd [بÙÙØª] LT', 17303 lastDay: '[Ú¯Ø°Ø´ØªÛ Ø±ÙØ² بÙÙØª] LT', 17304 lastWeek: '[گذشتÛ] dddd [بÙÙØª] LT', 17305 sameElse: 'L' 17306 }, 17307 relativeTime: { 17308 future: '%s بعد', 17309 past: '%s ÙØ¨Ù', 17310 s: 'ÚÙØ¯ سÛÚ©ÙÚ', 17311 ss: '%d سÛÚ©ÙÚ', 17312 m: 'اÛÚ© Ù ÙÙ¹', 17313 mm: '%d Ù ÙÙ¹', 17314 h: 'اÛÚ© Ú¯Ú¾ÙÙ¹Û', 17315 hh: '%d Ú¯Ú¾ÙÙ¹Û', 17316 d: 'اÛÚ© دÙ', 17317 dd: '%d دÙ', 17318 M: 'اÛÚ© ٠اÛ', 17319 MM: '%d ٠اÛ', 17320 y: 'اÛÚ© ساÙ', 17321 yy: '%d ساÙ' 17322 }, 17323 preparse: function preparse(string) { 17324 return string.replace(/Ø/g, ','); 17325 }, 17326 postformat: function postformat(string) { 17327 return string.replace(/,/g, 'Ø'); 17328 }, 17329 week: { 17330 dow: 1, 17331 // Monday is the first day of the week. 17332 doy: 4 // The week that contains Jan 4th is the first week of the year. 17333 17334 } 17335 }); 17336 return ur; 17337}); 17338 17339/***/ }), 17340
vendor: 3,244 bytes, lines 17341-17412
17341/***/ "../autobahn_client_core/node_modules/moment/locale/uz-latn.js": 17342/*!*********************************************************************!*\ 17343 !*** ../autobahn_client_core/node_modules/moment/locale/uz-latn.js ***! 17344 \*********************************************************************/ 17345/*! no static exports found */ 17346/***/ (function(module, exports, __webpack_require__) { 17347 17348var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 17349 17350//! moment.js locale configuration 17351//! locale : Uzbek Latin [uz-latn] 17352//! author : Rasulbek Mirzayev : github.com/Rasulbeeek 17353; 17354 17355(function (global, factory) { 17356 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 17357 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 17358 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 17359 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 17360})(this, function (moment) { 17361 'use strict'; //! moment.js locale configuration 17362 17363 var uzLatn = moment.defineLocale('uz-latn', { 17364 months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'), 17365 monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), 17366 weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'), 17367 weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), 17368 weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), 17369 longDateFormat: { 17370 LT: 'HH:mm', 17371 LTS: 'HH:mm:ss', 17372 L: 'DD/MM/YYYY', 17373 LL: 'D MMMM YYYY', 17374 LLL: 'D MMMM YYYY HH:mm', 17375 LLLL: 'D MMMM YYYY, dddd HH:mm' 17376 }, 17377 calendar: { 17378 sameDay: '[Bugun soat] LT [da]', 17379 nextDay: '[Ertaga] LT [da]', 17380 nextWeek: 'dddd [kuni soat] LT [da]', 17381 lastDay: '[Kecha soat] LT [da]', 17382 lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", 17383 sameElse: 'L' 17384 }, 17385 relativeTime: { 17386 future: 'Yaqin %s ichida', 17387 past: 'Bir necha %s oldin', 17388 s: 'soniya', 17389 ss: '%d soniya', 17390 m: 'bir daqiqa', 17391 mm: '%d daqiqa', 17392 h: 'bir soat', 17393 hh: '%d soat', 17394 d: 'bir kun', 17395 dd: '%d kun', 17396 M: 'bir oy', 17397 MM: '%d oy', 17398 y: 'bir yil', 17399 yy: '%d yil' 17400 }, 17401 week: { 17402 dow: 1, 17403 // Monday is the first day of the week. 17404 doy: 7 // The week that contains Jan 7th is the first week of the year. 17405 17406 } 17407 }); 17408 return uzLatn; 17409}); 17410 17411/***/ }), 17412
vendor: 3,492 bytes, lines 17413-17484
17413/***/ "../autobahn_client_core/node_modules/moment/locale/uz.js": 17414/*!****************************************************************!*\ 17415 !*** ../autobahn_client_core/node_modules/moment/locale/uz.js ***! 17416 \****************************************************************/ 17417/*! no static exports found */ 17418/***/ (function(module, exports, __webpack_require__) { 17419 17420var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 17421 17422//! moment.js locale configuration 17423//! locale : Uzbek [uz] 17424//! author : Sardor Muminov : https://github.com/muminoff 17425; 17426 17427(function (global, factory) { 17428 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 17429 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 17430 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 17431 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 17432})(this, function (moment) { 17433 'use strict'; //! moment.js locale configuration 17434 17435 var uz = moment.defineLocale('uz', { 17436 months: 'ÑнваÑ_ÑевÑал_маÑÑ_апÑел_май_иÑн_иÑл_авгÑÑÑ_ÑенÑÑбÑ_окÑÑбÑ_ноÑбÑ_декабÑ'.split('_'), 17437 monthsShort: 'Ñнв_Ñев_маÑ_апÑ_май_иÑн_иÑл_авг_Ñен_окÑ_ноÑ_дек'.split('_'), 17438 weekdays: 'ЯкÑанба_ÐÑÑанба_СеÑанба_ЧоÑÑанба_ÐайÑанба_ÐÑма_Шанба'.split('_'), 17439 weekdaysShort: 'ЯкÑ_ÐÑÑ_СеÑ_ЧоÑ_Ðай_ÐÑм_Шан'.split('_'), 17440 weekdaysMin: 'Як_ÐÑ_Се_Чо_Ðа_ÐÑ_Ша'.split('_'), 17441 longDateFormat: { 17442 LT: 'HH:mm', 17443 LTS: 'HH:mm:ss', 17444 L: 'DD/MM/YYYY', 17445 LL: 'D MMMM YYYY', 17446 LLL: 'D MMMM YYYY HH:mm', 17447 LLLL: 'D MMMM YYYY, dddd HH:mm' 17448 }, 17449 calendar: { 17450 sameDay: '[ÐÑгÑн ÑоаÑ] LT [да]', 17451 nextDay: '[ÐÑÑага] LT [да]', 17452 nextWeek: 'dddd [кÑни ÑоаÑ] LT [да]', 17453 lastDay: '[ÐеÑа ÑоаÑ] LT [да]', 17454 lastWeek: '[УÑган] dddd [кÑни ÑоаÑ] LT [да]', 17455 sameElse: 'L' 17456 }, 17457 relativeTime: { 17458 future: 'Якин %s иÑида', 17459 past: 'ÐÐ¸Ñ Ð½ÐµÑа %s олдин', 17460 s: 'ÑÑÑÑаÑ', 17461 ss: '%d ÑÑÑÑаÑ', 17462 m: 'Ð±Ð¸Ñ Ð´Ð°ÐºÐ¸ÐºÐ°', 17463 mm: '%d дакика', 17464 h: 'Ð±Ð¸Ñ ÑоаÑ', 17465 hh: '%d ÑоаÑ', 17466 d: 'Ð±Ð¸Ñ ÐºÑн', 17467 dd: '%d кÑн', 17468 M: 'Ð±Ð¸Ñ Ð¾Ð¹', 17469 MM: '%d ой', 17470 y: 'Ð±Ð¸Ñ Ð¹Ð¸Ð»', 17471 yy: '%d йил' 17472 }, 17473 week: { 17474 dow: 1, 17475 // Monday is the first day of the week. 17476 doy: 7 // The week that contains Jan 4th is the first week of the year. 17477 17478 } 17479 }); 17480 return uz; 17481}); 17482 17483/***/ }), 17484
vendor: 3,982 bytes, lines 17485-17580
17485/***/ "../autobahn_client_core/node_modules/moment/locale/vi.js": 17486/*!****************************************************************!*\ 17487 !*** ../autobahn_client_core/node_modules/moment/locale/vi.js ***! 17488 \****************************************************************/ 17489/*! no static exports found */ 17490/***/ (function(module, exports, __webpack_require__) { 17491 17492var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 17493 17494//! moment.js locale configuration 17495//! locale : Vietnamese [vi] 17496//! author : Bang Nguyen : https://github.com/bangnk 17497//! author : Chien Kira : https://github.com/chienkira 17498; 17499 17500(function (global, factory) { 17501 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 17502 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 17503 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 17504 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 17505})(this, function (moment) { 17506 'use strict'; //! moment.js locale configuration 17507 17508 var vi = moment.defineLocale('vi', { 17509 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('_'), 17510 monthsShort: '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('_'), 17511 monthsParseExact: true, 17512 weekdays: 'chá»§ nháºt_thứ hai_thứ ba_thứ tư_thứ nÄm_thứ sáu_thứ bảy'.split('_'), 17513 weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), 17514 weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), 17515 weekdaysParseExact: true, 17516 meridiemParse: /sa|ch/i, 17517 isPM: function isPM(input) { 17518 return /^ch$/i.test(input); 17519 }, 17520 meridiem: function meridiem(hours, minutes, isLower) { 17521 if (hours < 12) { 17522 return isLower ? 'sa' : 'SA'; 17523 } else { 17524 return isLower ? 'ch' : 'CH'; 17525 } 17526 }, 17527 longDateFormat: { 17528 LT: 'HH:mm', 17529 LTS: 'HH:mm:ss', 17530 L: 'DD/MM/YYYY', 17531 LL: 'D MMMM [nÄm] YYYY', 17532 LLL: 'D MMMM [nÄm] YYYY HH:mm', 17533 LLLL: 'dddd, D MMMM [nÄm] YYYY HH:mm', 17534 l: 'DD/M/YYYY', 17535 ll: 'D MMM YYYY', 17536 lll: 'D MMM YYYY HH:mm', 17537 llll: 'ddd, D MMM YYYY HH:mm' 17538 }, 17539 calendar: { 17540 sameDay: '[Hôm nay lúc] LT', 17541 nextDay: '[Ngà y mai lúc] LT', 17542 nextWeek: 'dddd [tuần tá»i lúc] LT', 17543 lastDay: '[Hôm qua lúc] LT', 17544 lastWeek: 'dddd [tuần trưá»c lúc] LT', 17545 sameElse: 'L' 17546 }, 17547 relativeTime: { 17548 future: '%s tá»i', 17549 past: '%s trưá»c', 17550 s: 'và i giây', 17551 ss: '%d giây', 17552 m: 'má»t phút', 17553 mm: '%d phút', 17554 h: 'má»t giá»', 17555 hh: '%d giá»', 17556 d: 'má»t ngà y', 17557 dd: '%d ngà y', 17558 w: 'má»t tuần', 17559 ww: '%d tuần', 17560 M: 'má»t tháng', 17561 MM: '%d tháng', 17562 y: 'má»t nÄm', 17563 yy: '%d nÄm' 17564 }, 17565 dayOfMonthOrdinalParse: /\d{1,2}/, 17566 ordinal: function ordinal(number) { 17567 return number; 17568 }, 17569 week: { 17570 dow: 1, 17571 // Monday is the first day of the week. 17572 doy: 4 // The week that contains Jan 4th is the first week of the year. 17573 17574 } 17575 }); 17576 return vi; 17577}); 17578 17579/***/ }), 17580
vendor: 3,754 bytes, lines 17581-17659
17581/***/ "../autobahn_client_core/node_modules/moment/locale/x-pseudo.js": 17582/*!**********************************************************************!*\ 17583 !*** ../autobahn_client_core/node_modules/moment/locale/x-pseudo.js ***! 17584 \**********************************************************************/ 17585/*! no static exports found */ 17586/***/ (function(module, exports, __webpack_require__) { 17587 17588var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 17589 17590//! moment.js locale configuration 17591//! locale : Pseudo [x-pseudo] 17592//! author : Andrew Hood : https://github.com/andrewhood125 17593; 17594 17595(function (global, factory) { 17596 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 17597 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 17598 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 17599 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 17600})(this, function (moment) { 17601 'use strict'; //! moment.js locale configuration 17602 17603 var xPseudo = moment.defineLocale('x-pseudo', { 17604 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('_'), 17605 monthsShort: 'J~áñ_~Féb_~Már_~Ãpr_~Máý_~Júñ_~Júl_~Ãúg_~Sép_~Ãct_~Ãóv_~Déc'.split('_'), 17606 monthsParseExact: true, 17607 weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~FrÃd~áý_S~átúr~dáý'.split('_'), 17608 weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~FrÃ_~Sát'.split('_'), 17609 weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), 17610 weekdaysParseExact: true, 17611 longDateFormat: { 17612 LT: 'HH:mm', 17613 L: 'DD/MM/YYYY', 17614 LL: 'D MMMM YYYY', 17615 LLL: 'D MMMM YYYY HH:mm', 17616 LLLL: 'dddd, D MMMM YYYY HH:mm' 17617 }, 17618 calendar: { 17619 sameDay: '[T~ódá~ý át] LT', 17620 nextDay: '[T~ómó~rró~w át] LT', 17621 nextWeek: 'dddd [át] LT', 17622 lastDay: '[Ã~ést~érdá~ý át] LT', 17623 lastWeek: '[L~ást] dddd [át] LT', 17624 sameElse: 'L' 17625 }, 17626 relativeTime: { 17627 future: 'Ã~ñ %s', 17628 past: '%s á~gó', 17629 s: 'á ~féw ~sécó~ñds', 17630 ss: '%d s~écóñ~ds', 17631 m: 'á ~mÃñ~úté', 17632 mm: '%d m~Ãñú~tés', 17633 h: 'á~ñ hó~úr', 17634 hh: '%d h~óúrs', 17635 d: 'á ~dáý', 17636 dd: '%d d~áýs', 17637 M: 'á ~móñ~th', 17638 MM: '%d m~óñt~hs', 17639 y: 'á ~ýéár', 17640 yy: '%d ý~éárs' 17641 }, 17642 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, 17643 ordinal: function ordinal(number) { 17644 var b = number % 10, 17645 output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; 17646 return number + output; 17647 }, 17648 week: { 17649 dow: 1, 17650 // Monday is the first day of the week. 17651 doy: 4 // The week that contains Jan 4th is the first week of the year. 17652 17653 } 17654 }); 17655 return xPseudo; 17656}); 17657 17658/***/ }), 17659
vendor: 3,494 bytes, lines 17660-17733
17660/***/ "../autobahn_client_core/node_modules/moment/locale/yo.js": 17661/*!****************************************************************!*\ 17662 !*** ../autobahn_client_core/node_modules/moment/locale/yo.js ***! 17663 \****************************************************************/ 17664/*! no static exports found */ 17665/***/ (function(module, exports, __webpack_require__) { 17666 17667var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 17668 17669//! moment.js locale configuration 17670//! locale : Yoruba Nigeria [yo] 17671//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe 17672; 17673 17674(function (global, factory) { 17675 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 17676 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 17677 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 17678 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 17679})(this, function (moment) { 17680 'use strict'; //! moment.js locale configuration 17681 17682 var yo = moment.defineLocale('yo', { 17683 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('_'), 17684 monthsShort: 'SẹÌr_EÌrl_Ẹrn_IÌgb_EÌbi_OÌkuÌ_Agẹ_OÌguÌ_Owe_á»ÌwaÌ_BeÌl_á»ÌpẹÌÌ'.split('_'), 17685 weekdays: 'AÌiÌkuÌ_AjeÌ_IÌsẹÌgun_á»já»ÌruÌ_á»já»Ìbá»_ẸtiÌ_AÌbaÌmẹÌta'.split('_'), 17686 weekdaysShort: 'AÌiÌk_AjeÌ_IÌsẹÌ_á»jr_á»jb_ẸtiÌ_AÌbaÌ'.split('_'), 17687 weekdaysMin: 'AÌiÌ_Aj_IÌs_á»r_á»b_Ẹt_AÌb'.split('_'), 17688 longDateFormat: { 17689 LT: 'h:mm A', 17690 LTS: 'h:mm:ss A', 17691 L: 'DD/MM/YYYY', 17692 LL: 'D MMMM YYYY', 17693 LLL: 'D MMMM YYYY h:mm A', 17694 LLLL: 'dddd, D MMMM YYYY h:mm A' 17695 }, 17696 calendar: { 17697 sameDay: '[OÌniÌ ni] LT', 17698 nextDay: '[á»Ìla ni] LT', 17699 nextWeek: "dddd [á»sáº¹Ì toÌn'bá»] [ni] LT", 17700 lastDay: '[AÌna ni] LT', 17701 lastWeek: 'dddd [á»sáº¹Ì toÌlá»Ì] [ni] LT', 17702 sameElse: 'L' 17703 }, 17704 relativeTime: { 17705 future: 'niÌ %s', 17706 past: '%s ká»jaÌ', 17707 s: 'iÌsẹjuÌ aayaÌ die', 17708 ss: 'aayaÌ %d', 17709 m: 'iÌsẹjuÌ kan', 17710 mm: 'iÌsẹjuÌ %d', 17711 h: 'waÌkati kan', 17712 hh: 'waÌkati %d', 17713 d: 'á»já»Ì kan', 17714 dd: 'á»já»Ì %d', 17715 M: 'osuÌ kan', 17716 MM: 'osuÌ %d', 17717 y: 'á»duÌn kan', 17718 yy: 'á»duÌn %d' 17719 }, 17720 dayOfMonthOrdinalParse: /á»já»Ì\s\d{1,2}/, 17721 ordinal: 'á»já»Ì %d', 17722 week: { 17723 dow: 1, 17724 // Monday is the first day of the week. 17725 doy: 4 // The week that contains Jan 4th is the first week of the year. 17726 17727 } 17728 }); 17729 return yo; 17730}); 17731 17732/***/ }), 17733
vendor: 5,174 bytes, lines 17734-17877
17734/***/ "../autobahn_client_core/node_modules/moment/locale/zh-cn.js": 17735/*!*******************************************************************!*\ 17736 !*** ../autobahn_client_core/node_modules/moment/locale/zh-cn.js ***! 17737 \*******************************************************************/ 17738/*! no static exports found */ 17739/***/ (function(module, exports, __webpack_require__) { 17740 17741var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 17742 17743//! moment.js locale configuration 17744//! locale : Chinese (China) [zh-cn] 17745//! author : suupic : https://github.com/suupic 17746//! author : Zeno Zeng : https://github.com/zenozeng 17747//! author : uu109 : https://github.com/uu109 17748; 17749 17750(function (global, factory) { 17751 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 17752 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 17753 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 17754 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 17755})(this, function (moment) { 17756 'use strict'; //! moment.js locale configuration 17757 17758 var zhCn = moment.defineLocale('zh-cn', { 17759 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split('_'), 17760 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'), 17761 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 17762 weekdaysShort: '卿¥_å¨ä¸_å¨äº_å¨ä¸_å¨å_å¨äº_å¨å '.split('_'), 17763 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 17764 longDateFormat: { 17765 LT: 'HH:mm', 17766 LTS: 'HH:mm:ss', 17767 L: 'YYYY/MM/DD', 17768 LL: 'YYYYå¹´MæDæ¥', 17769 LLL: 'YYYYå¹´MæDæ¥Ahç¹mmå', 17770 LLLL: 'YYYYå¹´MæDæ¥ddddAhç¹mmå', 17771 l: 'YYYY/M/D', 17772 ll: 'YYYYå¹´MæDæ¥', 17773 lll: 'YYYYå¹´MæDæ¥ HH:mm', 17774 llll: 'YYYYå¹´MæDæ¥dddd HH:mm' 17775 }, 17776 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 17777 meridiemHour: function meridiemHour(hour, meridiem) { 17778 if (hour === 12) { 17779 hour = 0; 17780 } 17781 17782 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 17783 return hour; 17784 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 17785 return hour + 12; 17786 } else { 17787 // 'ä¸å' 17788 return hour >= 11 ? hour : hour + 12; 17789 } 17790 }, 17791 meridiem: function meridiem(hour, minute, isLower) { 17792 var hm = hour * 100 + minute; 17793 17794 if (hm < 600) { 17795 return '忍'; 17796 } else if (hm < 900) { 17797 return 'æ©ä¸'; 17798 } else if (hm < 1130) { 17799 return 'ä¸å'; 17800 } else if (hm < 1230) { 17801 return 'ä¸å'; 17802 } else if (hm < 1800) { 17803 return 'ä¸å'; 17804 } else { 17805 return 'æä¸'; 17806 } 17807 }, 17808 calendar: { 17809 sameDay: '[ä»å¤©]LT', 17810 nextDay: '[æå¤©]LT', 17811 nextWeek: function nextWeek(now) { 17812 if (now.week() !== this.week()) { 17813 return '[ä¸]dddLT'; 17814 } else { 17815 return '[æ¬]dddLT'; 17816 } 17817 }, 17818 lastDay: '[æ¨å¤©]LT', 17819 lastWeek: function lastWeek(now) { 17820 if (this.week() !== now.week()) { 17821 return '[ä¸]dddLT'; 17822 } else { 17823 return '[æ¬]dddLT'; 17824 } 17825 }, 17826 sameElse: 'L' 17827 }, 17828 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|å¨)/, 17829 ordinal: function ordinal(number, period) { 17830 switch (period) { 17831 case 'd': 17832 case 'D': 17833 case 'DDD': 17834 return number + 'æ¥'; 17835 17836 case 'M': 17837 return number + 'æ'; 17838 17839 case 'w': 17840 case 'W': 17841 return number + 'å¨'; 17842 17843 default: 17844 return number; 17845 } 17846 }, 17847 relativeTime: { 17848 future: '%så', 17849 past: '%så', 17850 s: 'å ç§', 17851 ss: '%d ç§', 17852 m: '1 åé', 17853 mm: '%d åé', 17854 h: '1 å°æ¶', 17855 hh: '%d å°æ¶', 17856 d: '1 天', 17857 dd: '%d 天', 17858 w: '1 å¨', 17859 ww: '%d å¨', 17860 M: '1 个æ', 17861 MM: '%d 个æ', 17862 y: '1 å¹´', 17863 yy: '%d å¹´' 17864 }, 17865 week: { 17866 // GB/T 7408-1994ãæ°æ®å åäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ¥æåæ¶é´è¡¨ç¤ºæ³ãä¸ISO 8601:1988çæ 17867 dow: 1, 17868 // Monday is the first day of the week. 17869 doy: 4 // The week that contains Jan 4th is the first week of the year. 17870 17871 } 17872 }); 17873 return zhCn; 17874}); 17875 17876/***/ }), 17877
vendor: 4,623 bytes, lines 17878-18000
17878/***/ "../autobahn_client_core/node_modules/moment/locale/zh-hk.js": 17879/*!*******************************************************************!*\ 17880 !*** ../autobahn_client_core/node_modules/moment/locale/zh-hk.js ***! 17881 \*******************************************************************/ 17882/*! no static exports found */ 17883/***/ (function(module, exports, __webpack_require__) { 17884 17885var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 17886 17887//! moment.js locale configuration 17888//! locale : Chinese (Hong Kong) [zh-hk] 17889//! author : Ben : https://github.com/ben-lin 17890//! author : Chris Lam : https://github.com/hehachris 17891//! author : Konstantin : https://github.com/skfd 17892//! author : Anthony : https://github.com/anthonylau 17893; 17894 17895(function (global, factory) { 17896 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 17897 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 17898 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 17899 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 17900})(this, function (moment) { 17901 'use strict'; //! moment.js locale configuration 17902 17903 var zhHk = moment.defineLocale('zh-hk', { 17904 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split('_'), 17905 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'), 17906 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 17907 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 17908 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 17909 longDateFormat: { 17910 LT: 'HH:mm', 17911 LTS: 'HH:mm:ss', 17912 L: 'YYYY/MM/DD', 17913 LL: 'YYYYå¹´MæDæ¥', 17914 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 17915 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 17916 l: 'YYYY/M/D', 17917 ll: 'YYYYå¹´MæDæ¥', 17918 lll: 'YYYYå¹´MæDæ¥ HH:mm', 17919 llll: 'YYYYå¹´MæDæ¥dddd HH:mm' 17920 }, 17921 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 17922 meridiemHour: function meridiemHour(hour, meridiem) { 17923 if (hour === 12) { 17924 hour = 0; 17925 } 17926 17927 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 17928 return hour; 17929 } else if (meridiem === 'ä¸å') { 17930 return hour >= 11 ? hour : hour + 12; 17931 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 17932 return hour + 12; 17933 } 17934 }, 17935 meridiem: function meridiem(hour, minute, isLower) { 17936 var hm = hour * 100 + minute; 17937 17938 if (hm < 600) { 17939 return '忍'; 17940 } else if (hm < 900) { 17941 return 'æ©ä¸'; 17942 } else if (hm < 1200) { 17943 return 'ä¸å'; 17944 } else if (hm === 1200) { 17945 return 'ä¸å'; 17946 } else if (hm < 1800) { 17947 return 'ä¸å'; 17948 } else { 17949 return 'æä¸'; 17950 } 17951 }, 17952 calendar: { 17953 sameDay: '[ä»å¤©]LT', 17954 nextDay: '[æå¤©]LT', 17955 nextWeek: '[ä¸]ddddLT', 17956 lastDay: '[æ¨å¤©]LT', 17957 lastWeek: '[ä¸]ddddLT', 17958 sameElse: 'L' 17959 }, 17960 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 17961 ordinal: function ordinal(number, period) { 17962 switch (period) { 17963 case 'd': 17964 case 'D': 17965 case 'DDD': 17966 return number + 'æ¥'; 17967 17968 case 'M': 17969 return number + 'æ'; 17970 17971 case 'w': 17972 case 'W': 17973 return number + 'é±'; 17974 17975 default: 17976 return number; 17977 } 17978 }, 17979 relativeTime: { 17980 future: '%så¾', 17981 past: '%så', 17982 s: 'å¹¾ç§', 17983 ss: '%d ç§', 17984 m: '1 åé', 17985 mm: '%d åé', 17986 h: '1 å°æ', 17987 hh: '%d å°æ', 17988 d: '1 天', 17989 dd: '%d 天', 17990 M: '1 åæ', 17991 MM: '%d åæ', 17992 y: '1 å¹´', 17993 yy: '%d å¹´' 17994 } 17995 }); 17996 return zhHk; 17997}); 17998 17999/***/ }), 18000
vendor: 4,573 bytes, lines 18001-18122
18001/***/ "../autobahn_client_core/node_modules/moment/locale/zh-mo.js": 18002/*!*******************************************************************!*\ 18003 !*** ../autobahn_client_core/node_modules/moment/locale/zh-mo.js ***! 18004 \*******************************************************************/ 18005/*! no static exports found */ 18006/***/ (function(module, exports, __webpack_require__) { 18007 18008var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 18009 18010//! moment.js locale configuration 18011//! locale : Chinese (Macau) [zh-mo] 18012//! author : Ben : https://github.com/ben-lin 18013//! author : Chris Lam : https://github.com/hehachris 18014//! author : Tan Yuanhong : https://github.com/le0tan 18015; 18016 18017(function (global, factory) { 18018 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 18019 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 18020 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 18021 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 18022})(this, function (moment) { 18023 'use strict'; //! moment.js locale configuration 18024 18025 var zhMo = moment.defineLocale('zh-mo', { 18026 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split('_'), 18027 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'), 18028 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 18029 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 18030 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 18031 longDateFormat: { 18032 LT: 'HH:mm', 18033 LTS: 'HH:mm:ss', 18034 L: 'DD/MM/YYYY', 18035 LL: 'YYYYå¹´MæDæ¥', 18036 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 18037 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 18038 l: 'D/M/YYYY', 18039 ll: 'YYYYå¹´MæDæ¥', 18040 lll: 'YYYYå¹´MæDæ¥ HH:mm', 18041 llll: 'YYYYå¹´MæDæ¥dddd HH:mm' 18042 }, 18043 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 18044 meridiemHour: function meridiemHour(hour, meridiem) { 18045 if (hour === 12) { 18046 hour = 0; 18047 } 18048 18049 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 18050 return hour; 18051 } else if (meridiem === 'ä¸å') { 18052 return hour >= 11 ? hour : hour + 12; 18053 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 18054 return hour + 12; 18055 } 18056 }, 18057 meridiem: function meridiem(hour, minute, isLower) { 18058 var hm = hour * 100 + minute; 18059 18060 if (hm < 600) { 18061 return '忍'; 18062 } else if (hm < 900) { 18063 return 'æ©ä¸'; 18064 } else if (hm < 1130) { 18065 return 'ä¸å'; 18066 } else if (hm < 1230) { 18067 return 'ä¸å'; 18068 } else if (hm < 1800) { 18069 return 'ä¸å'; 18070 } else { 18071 return 'æä¸'; 18072 } 18073 }, 18074 calendar: { 18075 sameDay: '[ä»å¤©] LT', 18076 nextDay: '[æå¤©] LT', 18077 nextWeek: '[ä¸]dddd LT', 18078 lastDay: '[æ¨å¤©] LT', 18079 lastWeek: '[ä¸]dddd LT', 18080 sameElse: 'L' 18081 }, 18082 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 18083 ordinal: function ordinal(number, period) { 18084 switch (period) { 18085 case 'd': 18086 case 'D': 18087 case 'DDD': 18088 return number + 'æ¥'; 18089 18090 case 'M': 18091 return number + 'æ'; 18092 18093 case 'w': 18094 case 'W': 18095 return number + 'é±'; 18096 18097 default: 18098 return number; 18099 } 18100 }, 18101 relativeTime: { 18102 future: '%så §', 18103 past: '%så', 18104 s: 'å¹¾ç§', 18105 ss: '%d ç§', 18106 m: '1 åé', 18107 mm: '%d åé', 18108 h: '1 å°æ', 18109 hh: '%d å°æ', 18110 d: '1 天', 18111 dd: '%d 天', 18112 M: '1 åæ', 18113 MM: '%d åæ', 18114 y: '1 å¹´', 18115 yy: '%d å¹´' 18116 } 18117 }); 18118 return zhMo; 18119}); 18120 18121/***/ }), 18122
vendor: 4,520 bytes, lines 18123-18243
18123/***/ "../autobahn_client_core/node_modules/moment/locale/zh-tw.js": 18124/*!*******************************************************************!*\ 18125 !*** ../autobahn_client_core/node_modules/moment/locale/zh-tw.js ***! 18126 \*******************************************************************/ 18127/*! no static exports found */ 18128/***/ (function(module, exports, __webpack_require__) { 18129 18130var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 18131 18132//! moment.js locale configuration 18133//! locale : Chinese (Taiwan) [zh-tw] 18134//! author : Ben : https://github.com/ben-lin 18135//! author : Chris Lam : https://github.com/hehachris 18136; 18137 18138(function (global, factory) { 18139 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ "../autobahn_client_core/node_modules/moment/moment.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 18140 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 18141 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 18142 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 18143})(this, function (moment) { 18144 'use strict'; //! moment.js locale configuration 18145 18146 var zhTw = moment.defineLocale('zh-tw', { 18147 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split('_'), 18148 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'), 18149 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 18150 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 18151 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 18152 longDateFormat: { 18153 LT: 'HH:mm', 18154 LTS: 'HH:mm:ss', 18155 L: 'YYYY/MM/DD', 18156 LL: 'YYYYå¹´MæDæ¥', 18157 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 18158 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 18159 l: 'YYYY/M/D', 18160 ll: 'YYYYå¹´MæDæ¥', 18161 lll: 'YYYYå¹´MæDæ¥ HH:mm', 18162 llll: 'YYYYå¹´MæDæ¥dddd HH:mm' 18163 }, 18164 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 18165 meridiemHour: function meridiemHour(hour, meridiem) { 18166 if (hour === 12) { 18167 hour = 0; 18168 } 18169 18170 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 18171 return hour; 18172 } else if (meridiem === 'ä¸å') { 18173 return hour >= 11 ? hour : hour + 12; 18174 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 18175 return hour + 12; 18176 } 18177 }, 18178 meridiem: function meridiem(hour, minute, isLower) { 18179 var hm = hour * 100 + minute; 18180 18181 if (hm < 600) { 18182 return '忍'; 18183 } else if (hm < 900) { 18184 return 'æ©ä¸'; 18185 } else if (hm < 1130) { 18186 return 'ä¸å'; 18187 } else if (hm < 1230) { 18188 return 'ä¸å'; 18189 } else if (hm < 1800) { 18190 return 'ä¸å'; 18191 } else { 18192 return 'æä¸'; 18193 } 18194 }, 18195 calendar: { 18196 sameDay: '[ä»å¤©] LT', 18197 nextDay: '[æå¤©] LT', 18198 nextWeek: '[ä¸]dddd LT', 18199 lastDay: '[æ¨å¤©] LT', 18200 lastWeek: '[ä¸]dddd LT', 18201 sameElse: 'L' 18202 }, 18203 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 18204 ordinal: function ordinal(number, period) { 18205 switch (period) { 18206 case 'd': 18207 case 'D': 18208 case 'DDD': 18209 return number + 'æ¥'; 18210 18211 case 'M': 18212 return number + 'æ'; 18213 18214 case 'w': 18215 case 'W': 18216 return number + 'é±'; 18217 18218 default: 18219 return number; 18220 } 18221 }, 18222 relativeTime: { 18223 future: '%så¾', 18224 past: '%så', 18225 s: 'å¹¾ç§', 18226 ss: '%d ç§', 18227 m: '1 åé', 18228 mm: '%d åé', 18229 h: '1 å°æ', 18230 hh: '%d å°æ', 18231 d: '1 天', 18232 dd: '%d 天', 18233 M: '1 åæ', 18234 MM: '%d åæ', 18235 y: '1 å¹´', 18236 yy: '%d å¹´' 18237 } 18238 }); 18239 return zhTw; 18240}); 18241 18242/***/ }), 18243
vendor: 146,793 bytes, lines 18244-23387
18244/***/ "../autobahn_client_core/node_modules/moment/moment.js": 18245/*!*************************************************************!*\ 18246 !*** ../autobahn_client_core/node_modules/moment/moment.js ***! 18247 \*************************************************************/ 18248/*! no static exports found */ 18249/***/ (function(module, exports, __webpack_require__) { 18250 18251/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;var require;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 18252 18253//! moment.js 18254//! version : 2.29.4 18255//! authors : Tim Wood, Iskren Chernev, Moment.js contributors 18256//! license : MIT 18257//! momentjs.com 18258; 18259 18260(function (global, factory) { 18261 ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 18262 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 18263 (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : 18264 __WEBPACK_AMD_DEFINE_FACTORY__), 18265 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 18266})(this, function () { 18267 'use strict'; 18268 18269 var hookCallback; 18270 18271 function hooks() { 18272 return hookCallback.apply(null, arguments); 18273 } // This is done to register the method called with moment() 18274 // without creating circular dependencies. 18275 18276 18277 function setHookCallback(callback) { 18278 hookCallback = callback; 18279 } 18280 18281 function isArray(input) { 18282 return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; 18283 } 18284 18285 function isObject(input) { 18286 // IE8 will treat undefined and null as object if it wasn't for 18287 // input != null 18288 return input != null && Object.prototype.toString.call(input) === '[object Object]'; 18289 } 18290 18291 function hasOwnProp(a, b) { 18292 return Object.prototype.hasOwnProperty.call(a, b); 18293 } 18294 18295 function isObjectEmpty(obj) { 18296 if (Object.getOwnPropertyNames) { 18297 return Object.getOwnPropertyNames(obj).length === 0; 18298 } else { 18299 var k; 18300 18301 for (k in obj) { 18302 if (hasOwnProp(obj, k)) { 18303 return false; 18304 } 18305 } 18306 18307 return true; 18308 } 18309 } 18310 18311 function isUndefined(input) { 18312 return input === void 0; 18313 } 18314 18315 function isNumber(input) { 18316 return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; 18317 } 18318 18319 function isDate(input) { 18320 return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; 18321 } 18322 18323 function map(arr, fn) { 18324 var res = [], 18325 i, 18326 arrLen = arr.length; 18327 18328 for (i = 0; i < arrLen; ++i) { 18329 res.push(fn(arr[i], i)); 18330 } 18331 18332 return res; 18333 } 18334 18335 function extend(a, b) { 18336 for (var i in b) { 18337 if (hasOwnProp(b, i)) { 18338 a[i] = b[i]; 18339 } 18340 } 18341 18342 if (hasOwnProp(b, 'toString')) { 18343 a.toString = b.toString; 18344 } 18345 18346 if (hasOwnProp(b, 'valueOf')) { 18347 a.valueOf = b.valueOf; 18348 } 18349 18350 return a; 18351 } 18352 18353 function createUTC(input, format, locale, strict) { 18354 return createLocalOrUTC(input, format, locale, strict, true).utc(); 18355 } 18356 18357 function defaultParsingFlags() { 18358 // We need to deep clone this object. 18359 return { 18360 empty: false, 18361 unusedTokens: [], 18362 unusedInput: [], 18363 overflow: -2, 18364 charsLeftOver: 0, 18365 nullInput: false, 18366 invalidEra: null, 18367 invalidMonth: null, 18368 invalidFormat: false, 18369 userInvalidated: false, 18370 iso: false, 18371 parsedDateParts: [], 18372 era: null, 18373 meridiem: null, 18374 rfc2822: false, 18375 weekdayMismatch: false 18376 }; 18377 } 18378 18379 function getParsingFlags(m) { 18380 if (m._pf == null) { 18381 m._pf = defaultParsingFlags(); 18382 } 18383 18384 return m._pf; 18385 } 18386 18387 var some; 18388 18389 if (Array.prototype.some) { 18390 some = Array.prototype.some; 18391 } else { 18392 some = function some(fun) { 18393 var t = Object(this), 18394 len = t.length >>> 0, 18395 i; 18396 18397 for (i = 0; i < len; i++) { 18398 if (i in t && fun.call(this, t[i], i, t)) { 18399 return true; 18400 } 18401 } 18402 18403 return false; 18404 }; 18405 } 18406 18407 function isValid(m) { 18408 if (m._isValid == null) { 18409 var flags = getParsingFlags(m), 18410 parsedParts = some.call(flags.parsedDateParts, function (i) { 18411 return i != null; 18412 }), 18413 isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts); 18414 18415 if (m._strict) { 18416 isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined; 18417 } 18418 18419 if (Object.isFrozen == null || !Object.isFrozen(m)) { 18420 m._isValid = isNowValid; 18421 } else { 18422 return isNowValid; 18423 } 18424 } 18425 18426 return m._isValid; 18427 } 18428 18429 function createInvalid(flags) { 18430 var m = createUTC(NaN); 18431 18432 if (flags != null) { 18433 extend(getParsingFlags(m), flags); 18434 } else { 18435 getParsingFlags(m).userInvalidated = true; 18436 } 18437 18438 return m; 18439 } // Plugins that add properties should also add the key here (null value), 18440 // so we can properly clone ourselves. 18441 18442 18443 var momentProperties = hooks.momentProperties = [], 18444 updateInProgress = false; 18445 18446 function copyConfig(to, from) { 18447 var i, 18448 prop, 18449 val, 18450 momentPropertiesLen = momentProperties.length; 18451 18452 if (!isUndefined(from._isAMomentObject)) { 18453 to._isAMomentObject = from._isAMomentObject; 18454 } 18455 18456 if (!isUndefined(from._i)) { 18457 to._i = from._i; 18458 } 18459 18460 if (!isUndefined(from._f)) { 18461 to._f = from._f; 18462 } 18463 18464 if (!isUndefined(from._l)) { 18465 to._l = from._l; 18466 } 18467 18468 if (!isUndefined(from._strict)) { 18469 to._strict = from._strict; 18470 } 18471 18472 if (!isUndefined(from._tzm)) { 18473 to._tzm = from._tzm; 18474 } 18475 18476 if (!isUndefined(from._isUTC)) { 18477 to._isUTC = from._isUTC; 18478 } 18479 18480 if (!isUndefined(from._offset)) { 18481 to._offset = from._offset; 18482 } 18483 18484 if (!isUndefined(from._pf)) { 18485 to._pf = getParsingFlags(from); 18486 } 18487 18488 if (!isUndefined(from._locale)) { 18489 to._locale = from._locale; 18490 } 18491 18492 if (momentPropertiesLen > 0) { 18493 for (i = 0; i < momentPropertiesLen; i++) { 18494 prop = momentProperties[i]; 18495 val = from[prop]; 18496 18497 if (!isUndefined(val)) { 18498 to[prop] = val; 18499 } 18500 } 18501 } 18502 18503 return to; 18504 } // Moment prototype object 18505 18506 18507 function Moment(config) { 18508 copyConfig(this, config); 18509 this._d = new Date(config._d != null ? config._d.getTime() : NaN); 18510 18511 if (!this.isValid()) { 18512 this._d = new Date(NaN); 18513 } // Prevent infinite loop in case updateOffset creates new moment 18514 // objects. 18515 18516 18517 if (updateInProgress === false) { 18518 updateInProgress = true; 18519 hooks.updateOffset(this); 18520 updateInProgress = false; 18521 } 18522 } 18523 18524 function isMoment(obj) { 18525 return obj instanceof Moment || obj != null && obj._isAMomentObject != null; 18526 } 18527 18528 function warn(msg) { 18529 if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) { 18530 console.warn('Deprecation warning: ' + msg); 18531 } 18532 } 18533 18534 function deprecate(msg, fn) { 18535 var firstTime = true; 18536 return extend(function () { 18537 if (hooks.deprecationHandler != null) { 18538 hooks.deprecationHandler(null, msg); 18539 } 18540 18541 if (firstTime) { 18542 var args = [], 18543 arg, 18544 i, 18545 key, 18546 argLen = arguments.length; 18547 18548 for (i = 0; i < argLen; i++) { 18549 arg = ''; 18550 18551 if (_typeof(arguments[i]) === 'object') { 18552 arg += '\n[' + i + '] '; 18553 18554 for (key in arguments[0]) { 18555 if (hasOwnProp(arguments[0], key)) { 18556 arg += key + ': ' + arguments[0][key] + ', '; 18557 } 18558 } 18559 18560 arg = arg.slice(0, -2); // Remove trailing comma and space 18561 } else { 18562 arg = arguments[i]; 18563 } 18564 18565 args.push(arg); 18566 } 18567 18568 warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + new Error().stack); 18569 firstTime = false; 18570 } 18571 18572 return fn.apply(this, arguments); 18573 }, fn); 18574 } 18575 18576 var deprecations = {}; 18577 18578 function deprecateSimple(name, msg) { 18579 if (hooks.deprecationHandler != null) { 18580 hooks.deprecationHandler(name, msg); 18581 } 18582 18583 if (!deprecations[name]) { 18584 warn(msg); 18585 deprecations[name] = true; 18586 } 18587 } 18588 18589 hooks.suppressDeprecationWarnings = false; 18590 hooks.deprecationHandler = null; 18591 18592 function isFunction(input) { 18593 return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; 18594 } 18595 18596 function set(config) { 18597 var prop, i; 18598 18599 for (i in config) { 18600 if (hasOwnProp(config, i)) { 18601 prop = config[i]; 18602 18603 if (isFunction(prop)) { 18604 this[i] = prop; 18605 } else { 18606 this['_' + i] = prop; 18607 } 18608 } 18609 } 18610 18611 this._config = config; // Lenient ordinal parsing accepts just a number in addition to 18612 // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. 18613 // TODO: Remove "ordinalParse" fallback in next major release. 18614 18615 this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\d{1,2}/.source); 18616 } 18617 18618 function mergeConfigs(parentConfig, childConfig) { 18619 var res = extend({}, parentConfig), 18620 prop; 18621 18622 for (prop in childConfig) { 18623 if (hasOwnProp(childConfig, prop)) { 18624 if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { 18625 res[prop] = {}; 18626 extend(res[prop], parentConfig[prop]); 18627 extend(res[prop], childConfig[prop]); 18628 } else if (childConfig[prop] != null) { 18629 res[prop] = childConfig[prop]; 18630 } else { 18631 delete res[prop]; 18632 } 18633 } 18634 } 18635 18636 for (prop in parentConfig) { 18637 if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) { 18638 // make sure changes to properties don't modify parent config 18639 res[prop] = extend({}, res[prop]); 18640 } 18641 } 18642 18643 return res; 18644 } 18645 18646 function Locale(config) { 18647 if (config != null) { 18648 this.set(config); 18649 } 18650 } 18651 18652 var keys; 18653 18654 if (Object.keys) { 18655 keys = Object.keys; 18656 } else { 18657 keys = function keys(obj) { 18658 var i, 18659 res = []; 18660 18661 for (i in obj) { 18662 if (hasOwnProp(obj, i)) { 18663 res.push(i); 18664 } 18665 } 18666 18667 return res; 18668 }; 18669 } 18670 18671 var defaultCalendar = { 18672 sameDay: '[Today at] LT', 18673 nextDay: '[Tomorrow at] LT', 18674 nextWeek: 'dddd [at] LT', 18675 lastDay: '[Yesterday at] LT', 18676 lastWeek: '[Last] dddd [at] LT', 18677 sameElse: 'L' 18678 }; 18679 18680 function calendar(key, mom, now) { 18681 var output = this._calendar[key] || this._calendar['sameElse']; 18682 return isFunction(output) ? output.call(mom, now) : output; 18683 } 18684 18685 function zeroFill(number, targetLength, forceSign) { 18686 var absNumber = '' + Math.abs(number), 18687 zerosToFill = targetLength - absNumber.length, 18688 sign = number >= 0; 18689 return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; 18690 } 18691 18692 var formattingTokens = /(\[[^\[]*\])|(\\)?([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, 18693 localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, 18694 formatFunctions = {}, 18695 formatTokenFunctions = {}; // token: 'M' 18696 // padded: ['MM', 2] 18697 // ordinal: 'Mo' 18698 // callback: function () { this.month() + 1 } 18699 18700 function addFormatToken(token, padded, ordinal, callback) { 18701 var func = callback; 18702 18703 if (typeof callback === 'string') { 18704 func = function func() { 18705 return this[callback](); 18706 }; 18707 } 18708 18709 if (token) { 18710 formatTokenFunctions[token] = func; 18711 } 18712 18713 if (padded) { 18714 formatTokenFunctions[padded[0]] = function () { 18715 return zeroFill(func.apply(this, arguments), padded[1], padded[2]); 18716 }; 18717 } 18718 18719 if (ordinal) { 18720 formatTokenFunctions[ordinal] = function () { 18721 return this.localeData().ordinal(func.apply(this, arguments), token); 18722 }; 18723 } 18724 } 18725 18726 function removeFormattingTokens(input) { 18727 if (input.match(/\[[\s\S]/)) { 18728 return input.replace(/^\[|\]$/g, ''); 18729 } 18730 18731 return input.replace(/\\/g, ''); 18732 } 18733 18734 function makeFormatFunction(format) { 18735 var array = format.match(formattingTokens), 18736 i, 18737 length; 18738 18739 for (i = 0, length = array.length; i < length; i++) { 18740 if (formatTokenFunctions[array[i]]) { 18741 array[i] = formatTokenFunctions[array[i]]; 18742 } else { 18743 array[i] = removeFormattingTokens(array[i]); 18744 } 18745 } 18746 18747 return function (mom) { 18748 var output = '', 18749 i; 18750 18751 for (i = 0; i < length; i++) { 18752 output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; 18753 } 18754 18755 return output; 18756 }; 18757 } // format date using native date object 18758 18759 18760 function formatMoment(m, format) { 18761 if (!m.isValid()) { 18762 return m.localeData().invalidDate(); 18763 } 18764 18765 format = expandFormat(format, m.localeData()); 18766 formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); 18767 return formatFunctions[format](m); 18768 } 18769 18770 function expandFormat(format, locale) { 18771 var i = 5; 18772 18773 function replaceLongDateFormatTokens(input) { 18774 return locale.longDateFormat(input) || input; 18775 } 18776 18777 localFormattingTokens.lastIndex = 0; 18778 18779 while (i >= 0 && localFormattingTokens.test(format)) { 18780 format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); 18781 localFormattingTokens.lastIndex = 0; 18782 i -= 1; 18783 } 18784 18785 return format; 18786 } 18787 18788 var defaultLongDateFormat = { 18789 LTS: 'h:mm:ss A', 18790 LT: 'h:mm A', 18791 L: 'MM/DD/YYYY', 18792 LL: 'MMMM D, YYYY', 18793 LLL: 'MMMM D, YYYY h:mm A', 18794 LLLL: 'dddd, MMMM D, YYYY h:mm A' 18795 }; 18796 18797 function longDateFormat(key) { 18798 var format = this._longDateFormat[key], 18799 formatUpper = this._longDateFormat[key.toUpperCase()]; 18800 18801 if (format || !formatUpper) { 18802 return format; 18803 } 18804 18805 this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) { 18806 if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') { 18807 return tok.slice(1); 18808 } 18809 18810 return tok; 18811 }).join(''); 18812 return this._longDateFormat[key]; 18813 } 18814 18815 var defaultInvalidDate = 'Invalid date'; 18816 18817 function invalidDate() { 18818 return this._invalidDate; 18819 } 18820 18821 var defaultOrdinal = '%d', 18822 defaultDayOfMonthOrdinalParse = /\d{1,2}/; 18823 18824 function ordinal(number) { 18825 return this._ordinal.replace('%d', number); 18826 } 18827 18828 var defaultRelativeTime = { 18829 future: 'in %s', 18830 past: '%s ago', 18831 s: 'a few seconds', 18832 ss: '%d seconds', 18833 m: 'a minute', 18834 mm: '%d minutes', 18835 h: 'an hour', 18836 hh: '%d hours', 18837 d: 'a day', 18838 dd: '%d days', 18839 w: 'a week', 18840 ww: '%d weeks', 18841 M: 'a month', 18842 MM: '%d months', 18843 y: 'a year', 18844 yy: '%d years' 18845 }; 18846 18847 function relativeTime(number, withoutSuffix, string, isFuture) { 18848 var output = this._relativeTime[string]; 18849 return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number); 18850 } 18851 18852 function pastFuture(diff, output) { 18853 var format = this._relativeTime[diff > 0 ? 'future' : 'past']; 18854 return isFunction(format) ? format(output) : format.replace(/%s/i, output); 18855 } 18856 18857 var aliases = {}; 18858 18859 function addUnitAlias(unit, shorthand) { 18860 var lowerCase = unit.toLowerCase(); 18861 aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; 18862 } 18863 18864 function normalizeUnits(units) { 18865 return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; 18866 } 18867 18868 function normalizeObjectUnits(inputObject) { 18869 var normalizedInput = {}, 18870 normalizedProp, 18871 prop; 18872 18873 for (prop in inputObject) { 18874 if (hasOwnProp(inputObject, prop)) { 18875 normalizedProp = normalizeUnits(prop); 18876 18877 if (normalizedProp) { 18878 normalizedInput[normalizedProp] = inputObject[prop]; 18879 } 18880 } 18881 } 18882 18883 return normalizedInput; 18884 } 18885 18886 var priorities = {}; 18887 18888 function addUnitPriority(unit, priority) { 18889 priorities[unit] = priority; 18890 } 18891 18892 function getPrioritizedUnits(unitsObj) { 18893 var units = [], 18894 u; 18895 18896 for (u in unitsObj) { 18897 if (hasOwnProp(unitsObj, u)) { 18898 units.push({ 18899 unit: u, 18900 priority: priorities[u] 18901 }); 18902 } 18903 } 18904 18905 units.sort(function (a, b) { 18906 return a.priority - b.priority; 18907 }); 18908 return units; 18909 } 18910 18911 function isLeapYear(year) { 18912 return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; 18913 } 18914 18915 function absFloor(number) { 18916 if (number < 0) { 18917 // -0 -> 0 18918 return Math.ceil(number) || 0; 18919 } else { 18920 return Math.floor(number); 18921 } 18922 } 18923 18924 function toInt(argumentForCoercion) { 18925 var coercedNumber = +argumentForCoercion, 18926 value = 0; 18927 18928 if (coercedNumber !== 0 && isFinite(coercedNumber)) { 18929 value = absFloor(coercedNumber); 18930 } 18931 18932 return value; 18933 } 18934 18935 function makeGetSet(unit, keepTime) { 18936 return function (value) { 18937 if (value != null) { 18938 set$1(this, unit, value); 18939 hooks.updateOffset(this, keepTime); 18940 return this; 18941 } else { 18942 return get(this, unit); 18943 } 18944 }; 18945 } 18946 18947 function get(mom, unit) { 18948 return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; 18949 } 18950 18951 function set$1(mom, unit, value) { 18952 if (mom.isValid() && !isNaN(value)) { 18953 if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) { 18954 value = toInt(value); 18955 18956 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month())); 18957 } else { 18958 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); 18959 } 18960 } 18961 } // MOMENTS 18962 18963 18964 function stringGet(units) { 18965 units = normalizeUnits(units); 18966 18967 if (isFunction(this[units])) { 18968 return this[units](); 18969 } 18970 18971 return this; 18972 } 18973 18974 function stringSet(units, value) { 18975 if (_typeof(units) === 'object') { 18976 units = normalizeObjectUnits(units); 18977 var prioritized = getPrioritizedUnits(units), 18978 i, 18979 prioritizedLen = prioritized.length; 18980 18981 for (i = 0; i < prioritizedLen; i++) { 18982 this[prioritized[i].unit](units[prioritized[i].unit]); 18983 } 18984 } else { 18985 units = normalizeUnits(units); 18986 18987 if (isFunction(this[units])) { 18988 return this[units](value); 18989 } 18990 } 18991 18992 return this; 18993 } 18994 18995 var match1 = /\d/, 18996 // 0 - 9 18997 match2 = /\d\d/, 18998 // 00 - 99 18999 match3 = /\d{3}/, 19000 // 000 - 999 19001 match4 = /\d{4}/, 19002 // 0000 - 9999 19003 match6 = /[+-]?\d{6}/, 19004 // -999999 - 999999 19005 match1to2 = /\d\d?/, 19006 // 0 - 99 19007 match3to4 = /\d\d\d\d?/, 19008 // 999 - 9999 19009 match5to6 = /\d\d\d\d\d\d?/, 19010 // 99999 - 999999 19011 match1to3 = /\d{1,3}/, 19012 // 0 - 999 19013 match1to4 = /\d{1,4}/, 19014 // 0 - 9999 19015 match1to6 = /[+-]?\d{1,6}/, 19016 // -999999 - 999999 19017 matchUnsigned = /\d+/, 19018 // 0 - inf 19019 matchSigned = /[+-]?\d+/, 19020 // -inf - inf 19021 matchOffset = /Z|[+-]\d\d:?\d\d/gi, 19022 // +00:00 -00:00 +0000 -0000 or Z 19023 matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, 19024 // +00 -00 +00:00 -00:00 +0000 -0000 or Z 19025 matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, 19026 // 123456789 123456789.123 19027 // any word (or two) characters or numbers including two/three word month in arabic. 19028 // includes scottish gaelic two word and hyphenated months 19029 matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, 19030 regexes; 19031 regexes = {}; 19032 19033 function addRegexToken(token, regex, strictRegex) { 19034 regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { 19035 return isStrict && strictRegex ? strictRegex : regex; 19036 }; 19037 } 19038 19039 function getParseRegexForToken(token, config) { 19040 if (!hasOwnProp(regexes, token)) { 19041 return new RegExp(unescapeFormat(token)); 19042 } 19043 19044 return regexes[token](config._strict, config._locale); 19045 } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript 19046 19047 19048 function unescapeFormat(s) { 19049 return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { 19050 return p1 || p2 || p3 || p4; 19051 })); 19052 } 19053 19054 function regexEscape(s) { 19055 return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); 19056 } 19057 19058 var tokens = {}; 19059 19060 function addParseToken(token, callback) { 19061 var i, 19062 func = callback, 19063 tokenLen; 19064 19065 if (typeof token === 'string') { 19066 token = [token]; 19067 } 19068 19069 if (isNumber(callback)) { 19070 func = function func(input, array) { 19071 array[callback] = toInt(input); 19072 }; 19073 } 19074 19075 tokenLen = token.length; 19076 19077 for (i = 0; i < tokenLen; i++) { 19078 tokens[token[i]] = func; 19079 } 19080 } 19081 19082 function addWeekParseToken(token, callback) { 19083 addParseToken(token, function (input, array, config, token) { 19084 config._w = config._w || {}; 19085 callback(input, config._w, config, token); 19086 }); 19087 } 19088 19089 function addTimeToArrayFromToken(token, input, config) { 19090 if (input != null && hasOwnProp(tokens, token)) { 19091 tokens[token](input, config._a, config, token); 19092 } 19093 } 19094 19095 var YEAR = 0, 19096 MONTH = 1, 19097 DATE = 2, 19098 HOUR = 3, 19099 MINUTE = 4, 19100 SECOND = 5, 19101 MILLISECOND = 6, 19102 WEEK = 7, 19103 WEEKDAY = 8; 19104 19105 function mod(n, x) { 19106 return (n % x + x) % x; 19107 } 19108 19109 var indexOf; 19110 19111 if (Array.prototype.indexOf) { 19112 indexOf = Array.prototype.indexOf; 19113 } else { 19114 indexOf = function indexOf(o) { 19115 // I know 19116 var i; 19117 19118 for (i = 0; i < this.length; ++i) { 19119 if (this[i] === o) { 19120 return i; 19121 } 19122 } 19123 19124 return -1; 19125 }; 19126 } 19127 19128 function daysInMonth(year, month) { 19129 if (isNaN(year) || isNaN(month)) { 19130 return NaN; 19131 } 19132 19133 var modMonth = mod(month, 12); 19134 year += (month - modMonth) / 12; 19135 return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2; 19136 } // FORMATTING 19137 19138 19139 addFormatToken('M', ['MM', 2], 'Mo', function () { 19140 return this.month() + 1; 19141 }); 19142 addFormatToken('MMM', 0, 0, function (format) { 19143 return this.localeData().monthsShort(this, format); 19144 }); 19145 addFormatToken('MMMM', 0, 0, function (format) { 19146 return this.localeData().months(this, format); 19147 }); // ALIASES 19148 19149 addUnitAlias('month', 'M'); // PRIORITY 19150 19151 addUnitPriority('month', 8); // PARSING 19152 19153 addRegexToken('M', match1to2); 19154 addRegexToken('MM', match1to2, match2); 19155 addRegexToken('MMM', function (isStrict, locale) { 19156 return locale.monthsShortRegex(isStrict); 19157 }); 19158 addRegexToken('MMMM', function (isStrict, locale) { 19159 return locale.monthsRegex(isStrict); 19160 }); 19161 addParseToken(['M', 'MM'], function (input, array) { 19162 array[MONTH] = toInt(input) - 1; 19163 }); 19164 addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { 19165 var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid. 19166 19167 19168 if (month != null) { 19169 array[MONTH] = month; 19170 } else { 19171 getParsingFlags(config).invalidMonth = input; 19172 } 19173 }); // LOCALES 19174 19175 var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), 19176 defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 19177 MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, 19178 defaultMonthsShortRegex = matchWord, 19179 defaultMonthsRegex = matchWord; 19180 19181 function localeMonths(m, format) { 19182 if (!m) { 19183 return isArray(this._months) ? this._months : this._months['standalone']; 19184 } 19185 19186 return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; 19187 } 19188 19189 function localeMonthsShort(m, format) { 19190 if (!m) { 19191 return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone']; 19192 } 19193 19194 return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; 19195 } 19196 19197 function handleStrictParse(monthName, format, strict) { 19198 var i, 19199 ii, 19200 mom, 19201 llc = monthName.toLocaleLowerCase(); 19202 19203 if (!this._monthsParse) { 19204 // this is not used 19205 this._monthsParse = []; 19206 this._longMonthsParse = []; 19207 this._shortMonthsParse = []; 19208 19209 for (i = 0; i < 12; ++i) { 19210 mom = createUTC([2000, i]); 19211 this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); 19212 this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); 19213 } 19214 } 19215 19216 if (strict) { 19217 if (format === 'MMM') { 19218 ii = indexOf.call(this._shortMonthsParse, llc); 19219 return ii !== -1 ? ii : null; 19220 } else { 19221 ii = indexOf.call(this._longMonthsParse, llc); 19222 return ii !== -1 ? ii : null; 19223 } 19224 } else { 19225 if (format === 'MMM') { 19226 ii = indexOf.call(this._shortMonthsParse, llc); 19227 19228 if (ii !== -1) { 19229 return ii; 19230 } 19231 19232 ii = indexOf.call(this._longMonthsParse, llc); 19233 return ii !== -1 ? ii : null; 19234 } else { 19235 ii = indexOf.call(this._longMonthsParse, llc); 19236 19237 if (ii !== -1) { 19238 return ii; 19239 } 19240 19241 ii = indexOf.call(this._shortMonthsParse, llc); 19242 return ii !== -1 ? ii : null; 19243 } 19244 } 19245 } 19246 19247 function localeMonthsParse(monthName, format, strict) { 19248 var i, mom, regex; 19249 19250 if (this._monthsParseExact) { 19251 return handleStrictParse.call(this, monthName, format, strict); 19252 } 19253 19254 if (!this._monthsParse) { 19255 this._monthsParse = []; 19256 this._longMonthsParse = []; 19257 this._shortMonthsParse = []; 19258 } // TODO: add sorting 19259 // Sorting makes sure if one month (or abbr) is a prefix of another 19260 // see sorting in computeMonthsParse 19261 19262 19263 for (i = 0; i < 12; i++) { 19264 // make the regex if we don't have it already 19265 mom = createUTC([2000, i]); 19266 19267 if (strict && !this._longMonthsParse[i]) { 19268 this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); 19269 this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); 19270 } 19271 19272 if (!strict && !this._monthsParse[i]) { 19273 regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); 19274 this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); 19275 } // test the regex 19276 19277 19278 if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { 19279 return i; 19280 } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { 19281 return i; 19282 } else if (!strict && this._monthsParse[i].test(monthName)) { 19283 return i; 19284 } 19285 } 19286 } // MOMENTS 19287 19288 19289 function setMonth(mom, value) { 19290 var dayOfMonth; 19291 19292 if (!mom.isValid()) { 19293 // No op 19294 return mom; 19295 } 19296 19297 if (typeof value === 'string') { 19298 if (/^\d+$/.test(value)) { 19299 value = toInt(value); 19300 } else { 19301 value = mom.localeData().monthsParse(value); // TODO: Another silent failure? 19302 19303 if (!isNumber(value)) { 19304 return mom; 19305 } 19306 } 19307 } 19308 19309 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); 19310 19311 mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); 19312 19313 return mom; 19314 } 19315 19316 function getSetMonth(value) { 19317 if (value != null) { 19318 setMonth(this, value); 19319 hooks.updateOffset(this, true); 19320 return this; 19321 } else { 19322 return get(this, 'Month'); 19323 } 19324 } 19325 19326 function getDaysInMonth() { 19327 return daysInMonth(this.year(), this.month()); 19328 } 19329 19330 function monthsShortRegex(isStrict) { 19331 if (this._monthsParseExact) { 19332 if (!hasOwnProp(this, '_monthsRegex')) { 19333 computeMonthsParse.call(this); 19334 } 19335 19336 if (isStrict) { 19337 return this._monthsShortStrictRegex; 19338 } else { 19339 return this._monthsShortRegex; 19340 } 19341 } else { 19342 if (!hasOwnProp(this, '_monthsShortRegex')) { 19343 this._monthsShortRegex = defaultMonthsShortRegex; 19344 } 19345 19346 return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex; 19347 } 19348 } 19349 19350 function monthsRegex(isStrict) { 19351 if (this._monthsParseExact) { 19352 if (!hasOwnProp(this, '_monthsRegex')) { 19353 computeMonthsParse.call(this); 19354 } 19355 19356 if (isStrict) { 19357 return this._monthsStrictRegex; 19358 } else { 19359 return this._monthsRegex; 19360 } 19361 } else { 19362 if (!hasOwnProp(this, '_monthsRegex')) { 19363 this._monthsRegex = defaultMonthsRegex; 19364 } 19365 19366 return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex; 19367 } 19368 } 19369 19370 function computeMonthsParse() { 19371 function cmpLenRev(a, b) { 19372 return b.length - a.length; 19373 } 19374 19375 var shortPieces = [], 19376 longPieces = [], 19377 mixedPieces = [], 19378 i, 19379 mom; 19380 19381 for (i = 0; i < 12; i++) { 19382 // make the regex if we don't have it already 19383 mom = createUTC([2000, i]); 19384 shortPieces.push(this.monthsShort(mom, '')); 19385 longPieces.push(this.months(mom, '')); 19386 mixedPieces.push(this.months(mom, '')); 19387 mixedPieces.push(this.monthsShort(mom, '')); 19388 } // Sorting makes sure if one month (or abbr) is a prefix of another it 19389 // will match the longer piece. 19390 19391 19392 shortPieces.sort(cmpLenRev); 19393 longPieces.sort(cmpLenRev); 19394 mixedPieces.sort(cmpLenRev); 19395 19396 for (i = 0; i < 12; i++) { 19397 shortPieces[i] = regexEscape(shortPieces[i]); 19398 longPieces[i] = regexEscape(longPieces[i]); 19399 } 19400 19401 for (i = 0; i < 24; i++) { 19402 mixedPieces[i] = regexEscape(mixedPieces[i]); 19403 } 19404 19405 this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 19406 this._monthsShortRegex = this._monthsRegex; 19407 this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); 19408 this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); 19409 } // FORMATTING 19410 19411 19412 addFormatToken('Y', 0, 0, function () { 19413 var y = this.year(); 19414 return y <= 9999 ? zeroFill(y, 4) : '+' + y; 19415 }); 19416 addFormatToken(0, ['YY', 2], 0, function () { 19417 return this.year() % 100; 19418 }); 19419 addFormatToken(0, ['YYYY', 4], 0, 'year'); 19420 addFormatToken(0, ['YYYYY', 5], 0, 'year'); 19421 addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES 19422 19423 addUnitAlias('year', 'y'); // PRIORITIES 19424 19425 addUnitPriority('year', 1); // PARSING 19426 19427 addRegexToken('Y', matchSigned); 19428 addRegexToken('YY', match1to2, match2); 19429 addRegexToken('YYYY', match1to4, match4); 19430 addRegexToken('YYYYY', match1to6, match6); 19431 addRegexToken('YYYYYY', match1to6, match6); 19432 addParseToken(['YYYYY', 'YYYYYY'], YEAR); 19433 addParseToken('YYYY', function (input, array) { 19434 array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); 19435 }); 19436 addParseToken('YY', function (input, array) { 19437 array[YEAR] = hooks.parseTwoDigitYear(input); 19438 }); 19439 addParseToken('Y', function (input, array) { 19440 array[YEAR] = parseInt(input, 10); 19441 }); // HELPERS 19442 19443 function daysInYear(year) { 19444 return isLeapYear(year) ? 366 : 365; 19445 } // HOOKS 19446 19447 19448 hooks.parseTwoDigitYear = function (input) { 19449 return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); 19450 }; // MOMENTS 19451 19452 19453 var getSetYear = makeGetSet('FullYear', true); 19454 19455 function getIsLeapYear() { 19456 return isLeapYear(this.year()); 19457 } 19458 19459 function createDate(y, m, d, h, M, s, ms) { 19460 // can't just apply() to create a date: 19461 // https://stackoverflow.com/q/181348 19462 var date; // the date constructor remaps years 0-99 to 1900-1999 19463 19464 if (y < 100 && y >= 0) { 19465 // preserve leap years using a full 400 year cycle, then reset 19466 date = new Date(y + 400, m, d, h, M, s, ms); 19467 19468 if (isFinite(date.getFullYear())) { 19469 date.setFullYear(y); 19470 } 19471 } else { 19472 date = new Date(y, m, d, h, M, s, ms); 19473 } 19474 19475 return date; 19476 } 19477 19478 function createUTCDate(y) { 19479 var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999 19480 19481 if (y < 100 && y >= 0) { 19482 args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset 19483 19484 args[0] = y + 400; 19485 date = new Date(Date.UTC.apply(null, args)); 19486 19487 if (isFinite(date.getUTCFullYear())) { 19488 date.setUTCFullYear(y); 19489 } 19490 } else { 19491 date = new Date(Date.UTC.apply(null, arguments)); 19492 } 19493 19494 return date; 19495 } // start-of-first-week - start-of-year 19496 19497 19498 function firstWeekOffset(year, dow, doy) { 19499 var // first-week day -- which january is always in the first week (4 for iso, 1 for other) 19500 fwd = 7 + dow - doy, 19501 // first-week day local weekday -- which local weekday is fwd 19502 fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; 19503 return -fwdlw + fwd - 1; 19504 } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday 19505 19506 19507 function dayOfYearFromWeeks(year, week, weekday, dow, doy) { 19508 var localWeekday = (7 + weekday - dow) % 7, 19509 weekOffset = firstWeekOffset(year, dow, doy), 19510 dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, 19511 resYear, 19512 resDayOfYear; 19513 19514 if (dayOfYear <= 0) { 19515 resYear = year - 1; 19516 resDayOfYear = daysInYear(resYear) + dayOfYear; 19517 } else if (dayOfYear > daysInYear(year)) { 19518 resYear = year + 1; 19519 resDayOfYear = dayOfYear - daysInYear(year); 19520 } else { 19521 resYear = year; 19522 resDayOfYear = dayOfYear; 19523 } 19524 19525 return { 19526 year: resYear, 19527 dayOfYear: resDayOfYear 19528 }; 19529 } 19530 19531 function weekOfYear(mom, dow, doy) { 19532 var weekOffset = firstWeekOffset(mom.year(), dow, doy), 19533 week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, 19534 resWeek, 19535 resYear; 19536 19537 if (week < 1) { 19538 resYear = mom.year() - 1; 19539 resWeek = week + weeksInYear(resYear, dow, doy); 19540 } else if (week > weeksInYear(mom.year(), dow, doy)) { 19541 resWeek = week - weeksInYear(mom.year(), dow, doy); 19542 resYear = mom.year() + 1; 19543 } else { 19544 resYear = mom.year(); 19545 resWeek = week; 19546 } 19547 19548 return { 19549 week: resWeek, 19550 year: resYear 19551 }; 19552 } 19553 19554 function weeksInYear(year, dow, doy) { 19555 var weekOffset = firstWeekOffset(year, dow, doy), 19556 weekOffsetNext = firstWeekOffset(year + 1, dow, doy); 19557 return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; 19558 } // FORMATTING 19559 19560 19561 addFormatToken('w', ['ww', 2], 'wo', 'week'); 19562 addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES 19563 19564 addUnitAlias('week', 'w'); 19565 addUnitAlias('isoWeek', 'W'); // PRIORITIES 19566 19567 addUnitPriority('week', 5); 19568 addUnitPriority('isoWeek', 5); // PARSING 19569 19570 addRegexToken('w', match1to2); 19571 addRegexToken('ww', match1to2, match2); 19572 addRegexToken('W', match1to2); 19573 addRegexToken('WW', match1to2, match2); 19574 addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { 19575 week[token.substr(0, 1)] = toInt(input); 19576 }); // HELPERS 19577 // LOCALES 19578 19579 function localeWeek(mom) { 19580 return weekOfYear(mom, this._week.dow, this._week.doy).week; 19581 } 19582 19583 var defaultLocaleWeek = { 19584 dow: 0, 19585 // Sunday is the first day of the week. 19586 doy: 6 // The week that contains Jan 6th is the first week of the year. 19587 19588 }; 19589 19590 function localeFirstDayOfWeek() { 19591 return this._week.dow; 19592 } 19593 19594 function localeFirstDayOfYear() { 19595 return this._week.doy; 19596 } // MOMENTS 19597 19598 19599 function getSetWeek(input) { 19600 var week = this.localeData().week(this); 19601 return input == null ? week : this.add((input - week) * 7, 'd'); 19602 } 19603 19604 function getSetISOWeek(input) { 19605 var week = weekOfYear(this, 1, 4).week; 19606 return input == null ? week : this.add((input - week) * 7, 'd'); 19607 } // FORMATTING 19608 19609 19610 addFormatToken('d', 0, 'do', 'day'); 19611 addFormatToken('dd', 0, 0, function (format) { 19612 return this.localeData().weekdaysMin(this, format); 19613 }); 19614 addFormatToken('ddd', 0, 0, function (format) { 19615 return this.localeData().weekdaysShort(this, format); 19616 }); 19617 addFormatToken('dddd', 0, 0, function (format) { 19618 return this.localeData().weekdays(this, format); 19619 }); 19620 addFormatToken('e', 0, 0, 'weekday'); 19621 addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES 19622 19623 addUnitAlias('day', 'd'); 19624 addUnitAlias('weekday', 'e'); 19625 addUnitAlias('isoWeekday', 'E'); // PRIORITY 19626 19627 addUnitPriority('day', 11); 19628 addUnitPriority('weekday', 11); 19629 addUnitPriority('isoWeekday', 11); // PARSING 19630 19631 addRegexToken('d', match1to2); 19632 addRegexToken('e', match1to2); 19633 addRegexToken('E', match1to2); 19634 addRegexToken('dd', function (isStrict, locale) { 19635 return locale.weekdaysMinRegex(isStrict); 19636 }); 19637 addRegexToken('ddd', function (isStrict, locale) { 19638 return locale.weekdaysShortRegex(isStrict); 19639 }); 19640 addRegexToken('dddd', function (isStrict, locale) { 19641 return locale.weekdaysRegex(isStrict); 19642 }); 19643 addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { 19644 var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid 19645 19646 19647 if (weekday != null) { 19648 week.d = weekday; 19649 } else { 19650 getParsingFlags(config).invalidWeekday = input; 19651 } 19652 }); 19653 addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { 19654 week[token] = toInt(input); 19655 }); // HELPERS 19656 19657 function parseWeekday(input, locale) { 19658 if (typeof input !== 'string') { 19659 return input; 19660 } 19661 19662 if (!isNaN(input)) { 19663 return parseInt(input, 10); 19664 } 19665 19666 input = locale.weekdaysParse(input); 19667 19668 if (typeof input === 'number') { 19669 return input; 19670 } 19671 19672 return null; 19673 } 19674 19675 function parseIsoWeekday(input, locale) { 19676 if (typeof input === 'string') { 19677 return locale.weekdaysParse(input) % 7 || 7; 19678 } 19679 19680 return isNaN(input) ? null : input; 19681 } // LOCALES 19682 19683 19684 function shiftWeekdays(ws, n) { 19685 return ws.slice(n, 7).concat(ws.slice(0, n)); 19686 } 19687 19688 var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), 19689 defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 19690 defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 19691 defaultWeekdaysRegex = matchWord, 19692 defaultWeekdaysShortRegex = matchWord, 19693 defaultWeekdaysMinRegex = matchWord; 19694 19695 function localeWeekdays(m, format) { 19696 var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone']; 19697 return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays; 19698 } 19699 19700 function localeWeekdaysShort(m) { 19701 return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort; 19702 } 19703 19704 function localeWeekdaysMin(m) { 19705 return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin; 19706 } 19707 19708 function handleStrictParse$1(weekdayName, format, strict) { 19709 var i, 19710 ii, 19711 mom, 19712 llc = weekdayName.toLocaleLowerCase(); 19713 19714 if (!this._weekdaysParse) { 19715 this._weekdaysParse = []; 19716 this._shortWeekdaysParse = []; 19717 this._minWeekdaysParse = []; 19718 19719 for (i = 0; i < 7; ++i) { 19720 mom = createUTC([2000, 1]).day(i); 19721 this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); 19722 this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); 19723 this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); 19724 } 19725 } 19726 19727 if (strict) { 19728 if (format === 'dddd') { 19729 ii = indexOf.call(this._weekdaysParse, llc); 19730 return ii !== -1 ? ii : null; 19731 } else if (format === 'ddd') { 19732 ii = indexOf.call(this._shortWeekdaysParse, llc); 19733 return ii !== -1 ? ii : null; 19734 } else { 19735 ii = indexOf.call(this._minWeekdaysParse, llc); 19736 return ii !== -1 ? ii : null; 19737 } 19738 } else { 19739 if (format === 'dddd') { 19740 ii = indexOf.call(this._weekdaysParse, llc); 19741 19742 if (ii !== -1) { 19743 return ii; 19744 } 19745 19746 ii = indexOf.call(this._shortWeekdaysParse, llc); 19747 19748 if (ii !== -1) { 19749 return ii; 19750 } 19751 19752 ii = indexOf.call(this._minWeekdaysParse, llc); 19753 return ii !== -1 ? ii : null; 19754 } else if (format === 'ddd') { 19755 ii = indexOf.call(this._shortWeekdaysParse, llc); 19756 19757 if (ii !== -1) { 19758 return ii; 19759 } 19760 19761 ii = indexOf.call(this._weekdaysParse, llc); 19762 19763 if (ii !== -1) { 19764 return ii; 19765 } 19766 19767 ii = indexOf.call(this._minWeekdaysParse, llc); 19768 return ii !== -1 ? ii : null; 19769 } else { 19770 ii = indexOf.call(this._minWeekdaysParse, llc); 19771 19772 if (ii !== -1) { 19773 return ii; 19774 } 19775 19776 ii = indexOf.call(this._weekdaysParse, llc); 19777 19778 if (ii !== -1) { 19779 return ii; 19780 } 19781 19782 ii = indexOf.call(this._shortWeekdaysParse, llc); 19783 return ii !== -1 ? ii : null; 19784 } 19785 } 19786 } 19787 19788 function localeWeekdaysParse(weekdayName, format, strict) { 19789 var i, mom, regex; 19790 19791 if (this._weekdaysParseExact) { 19792 return handleStrictParse$1.call(this, weekdayName, format, strict); 19793 } 19794 19795 if (!this._weekdaysParse) { 19796 this._weekdaysParse = []; 19797 this._minWeekdaysParse = []; 19798 this._shortWeekdaysParse = []; 19799 this._fullWeekdaysParse = []; 19800 } 19801 19802 for (i = 0; i < 7; i++) { 19803 // make the regex if we don't have it already 19804 mom = createUTC([2000, 1]).day(i); 19805 19806 if (strict && !this._fullWeekdaysParse[i]) { 19807 this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i'); 19808 this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i'); 19809 this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i'); 19810 } 19811 19812 if (!this._weekdaysParse[i]) { 19813 regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); 19814 this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); 19815 } // test the regex 19816 19817 19818 if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { 19819 return i; 19820 } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { 19821 return i; 19822 } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { 19823 return i; 19824 } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { 19825 return i; 19826 } 19827 } 19828 } // MOMENTS 19829 19830 19831 function getSetDayOfWeek(input) { 19832 if (!this.isValid()) { 19833 return input != null ? this : NaN; 19834 } 19835 19836 var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); 19837 19838 if (input != null) { 19839 input = parseWeekday(input, this.localeData()); 19840 return this.add(input - day, 'd'); 19841 } else { 19842 return day; 19843 } 19844 } 19845 19846 function getSetLocaleDayOfWeek(input) { 19847 if (!this.isValid()) { 19848 return input != null ? this : NaN; 19849 } 19850 19851 var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; 19852 return input == null ? weekday : this.add(input - weekday, 'd'); 19853 } 19854 19855 function getSetISODayOfWeek(input) { 19856 if (!this.isValid()) { 19857 return input != null ? this : NaN; 19858 } // behaves the same as moment#day except 19859 // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) 19860 // as a setter, sunday should belong to the previous week. 19861 19862 19863 if (input != null) { 19864 var weekday = parseIsoWeekday(input, this.localeData()); 19865 return this.day(this.day() % 7 ? weekday : weekday - 7); 19866 } else { 19867 return this.day() || 7; 19868 } 19869 } 19870 19871 function weekdaysRegex(isStrict) { 19872 if (this._weekdaysParseExact) { 19873 if (!hasOwnProp(this, '_weekdaysRegex')) { 19874 computeWeekdaysParse.call(this); 19875 } 19876 19877 if (isStrict) { 19878 return this._weekdaysStrictRegex; 19879 } else { 19880 return this._weekdaysRegex; 19881 } 19882 } else { 19883 if (!hasOwnProp(this, '_weekdaysRegex')) { 19884 this._weekdaysRegex = defaultWeekdaysRegex; 19885 } 19886 19887 return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex; 19888 } 19889 } 19890 19891 function weekdaysShortRegex(isStrict) { 19892 if (this._weekdaysParseExact) { 19893 if (!hasOwnProp(this, '_weekdaysRegex')) { 19894 computeWeekdaysParse.call(this); 19895 } 19896 19897 if (isStrict) { 19898 return this._weekdaysShortStrictRegex; 19899 } else { 19900 return this._weekdaysShortRegex; 19901 } 19902 } else { 19903 if (!hasOwnProp(this, '_weekdaysShortRegex')) { 19904 this._weekdaysShortRegex = defaultWeekdaysShortRegex; 19905 } 19906 19907 return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex; 19908 } 19909 } 19910 19911 function weekdaysMinRegex(isStrict) { 19912 if (this._weekdaysParseExact) { 19913 if (!hasOwnProp(this, '_weekdaysRegex')) { 19914 computeWeekdaysParse.call(this); 19915 } 19916 19917 if (isStrict) { 19918 return this._weekdaysMinStrictRegex; 19919 } else { 19920 return this._weekdaysMinRegex; 19921 } 19922 } else { 19923 if (!hasOwnProp(this, '_weekdaysMinRegex')) { 19924 this._weekdaysMinRegex = defaultWeekdaysMinRegex; 19925 } 19926 19927 return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex; 19928 } 19929 } 19930 19931 function computeWeekdaysParse() { 19932 function cmpLenRev(a, b) { 19933 return b.length - a.length; 19934 } 19935 19936 var minPieces = [], 19937 shortPieces = [], 19938 longPieces = [], 19939 mixedPieces = [], 19940 i, 19941 mom, 19942 minp, 19943 shortp, 19944 longp; 19945 19946 for (i = 0; i < 7; i++) { 19947 // make the regex if we don't have it already 19948 mom = createUTC([2000, 1]).day(i); 19949 minp = regexEscape(this.weekdaysMin(mom, '')); 19950 shortp = regexEscape(this.weekdaysShort(mom, '')); 19951 longp = regexEscape(this.weekdays(mom, '')); 19952 minPieces.push(minp); 19953 shortPieces.push(shortp); 19954 longPieces.push(longp); 19955 mixedPieces.push(minp); 19956 mixedPieces.push(shortp); 19957 mixedPieces.push(longp); 19958 } // Sorting makes sure if one weekday (or abbr) is a prefix of another it 19959 // will match the longer piece. 19960 19961 19962 minPieces.sort(cmpLenRev); 19963 shortPieces.sort(cmpLenRev); 19964 longPieces.sort(cmpLenRev); 19965 mixedPieces.sort(cmpLenRev); 19966 this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 19967 this._weekdaysShortRegex = this._weekdaysRegex; 19968 this._weekdaysMinRegex = this._weekdaysRegex; 19969 this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); 19970 this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); 19971 this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); 19972 } // FORMATTING 19973 19974 19975 function hFormat() { 19976 return this.hours() % 12 || 12; 19977 } 19978 19979 function kFormat() { 19980 return this.hours() || 24; 19981 } 19982 19983 addFormatToken('H', ['HH', 2], 0, 'hour'); 19984 addFormatToken('h', ['hh', 2], 0, hFormat); 19985 addFormatToken('k', ['kk', 2], 0, kFormat); 19986 addFormatToken('hmm', 0, 0, function () { 19987 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); 19988 }); 19989 addFormatToken('hmmss', 0, 0, function () { 19990 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); 19991 }); 19992 addFormatToken('Hmm', 0, 0, function () { 19993 return '' + this.hours() + zeroFill(this.minutes(), 2); 19994 }); 19995 addFormatToken('Hmmss', 0, 0, function () { 19996 return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); 19997 }); 19998 19999 function meridiem(token, lowercase) { 20000 addFormatToken(token, 0, 0, function () { 20001 return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); 20002 }); 20003 } 20004 20005 meridiem('a', true); 20006 meridiem('A', false); // ALIASES 20007 20008 addUnitAlias('hour', 'h'); // PRIORITY 20009 20010 addUnitPriority('hour', 13); // PARSING 20011 20012 function matchMeridiem(isStrict, locale) { 20013 return locale._meridiemParse; 20014 } 20015 20016 addRegexToken('a', matchMeridiem); 20017 addRegexToken('A', matchMeridiem); 20018 addRegexToken('H', match1to2); 20019 addRegexToken('h', match1to2); 20020 addRegexToken('k', match1to2); 20021 addRegexToken('HH', match1to2, match2); 20022 addRegexToken('hh', match1to2, match2); 20023 addRegexToken('kk', match1to2, match2); 20024 addRegexToken('hmm', match3to4); 20025 addRegexToken('hmmss', match5to6); 20026 addRegexToken('Hmm', match3to4); 20027 addRegexToken('Hmmss', match5to6); 20028 addParseToken(['H', 'HH'], HOUR); 20029 addParseToken(['k', 'kk'], function (input, array, config) { 20030 var kInput = toInt(input); 20031 array[HOUR] = kInput === 24 ? 0 : kInput; 20032 }); 20033 addParseToken(['a', 'A'], function (input, array, config) { 20034 config._isPm = config._locale.isPM(input); 20035 config._meridiem = input; 20036 }); 20037 addParseToken(['h', 'hh'], function (input, array, config) { 20038 array[HOUR] = toInt(input); 20039 getParsingFlags(config).bigHour = true; 20040 }); 20041 addParseToken('hmm', function (input, array, config) { 20042 var pos = input.length - 2; 20043 array[HOUR] = toInt(input.substr(0, pos)); 20044 array[MINUTE] = toInt(input.substr(pos)); 20045 getParsingFlags(config).bigHour = true; 20046 }); 20047 addParseToken('hmmss', function (input, array, config) { 20048 var pos1 = input.length - 4, 20049 pos2 = input.length - 2; 20050 array[HOUR] = toInt(input.substr(0, pos1)); 20051 array[MINUTE] = toInt(input.substr(pos1, 2)); 20052 array[SECOND] = toInt(input.substr(pos2)); 20053 getParsingFlags(config).bigHour = true; 20054 }); 20055 addParseToken('Hmm', function (input, array, config) { 20056 var pos = input.length - 2; 20057 array[HOUR] = toInt(input.substr(0, pos)); 20058 array[MINUTE] = toInt(input.substr(pos)); 20059 }); 20060 addParseToken('Hmmss', function (input, array, config) { 20061 var pos1 = input.length - 4, 20062 pos2 = input.length - 2; 20063 array[HOUR] = toInt(input.substr(0, pos1)); 20064 array[MINUTE] = toInt(input.substr(pos1, 2)); 20065 array[SECOND] = toInt(input.substr(pos2)); 20066 }); // LOCALES 20067 20068 function localeIsPM(input) { 20069 // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays 20070 // Using charAt should be more compatible. 20071 return (input + '').toLowerCase().charAt(0) === 'p'; 20072 } 20073 20074 var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, 20075 // Setting the hour should keep the time, because the user explicitly 20076 // specified which hour they want. So trying to maintain the same hour (in 20077 // a new timezone) makes sense. Adding/subtracting hours does not follow 20078 // this rule. 20079 getSetHour = makeGetSet('Hours', true); 20080 20081 function localeMeridiem(hours, minutes, isLower) { 20082 if (hours > 11) { 20083 return isLower ? 'pm' : 'PM'; 20084 } else { 20085 return isLower ? 'am' : 'AM'; 20086 } 20087 } 20088 20089 var baseConfig = { 20090 calendar: defaultCalendar, 20091 longDateFormat: defaultLongDateFormat, 20092 invalidDate: defaultInvalidDate, 20093 ordinal: defaultOrdinal, 20094 dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, 20095 relativeTime: defaultRelativeTime, 20096 months: defaultLocaleMonths, 20097 monthsShort: defaultLocaleMonthsShort, 20098 week: defaultLocaleWeek, 20099 weekdays: defaultLocaleWeekdays, 20100 weekdaysMin: defaultLocaleWeekdaysMin, 20101 weekdaysShort: defaultLocaleWeekdaysShort, 20102 meridiemParse: defaultLocaleMeridiemParse 20103 }; // internal storage for locale config files 20104 20105 var locales = {}, 20106 localeFamilies = {}, 20107 globalLocale; 20108 20109 function commonPrefix(arr1, arr2) { 20110 var i, 20111 minl = Math.min(arr1.length, arr2.length); 20112 20113 for (i = 0; i < minl; i += 1) { 20114 if (arr1[i] !== arr2[i]) { 20115 return i; 20116 } 20117 } 20118 20119 return minl; 20120 } 20121 20122 function normalizeLocale(key) { 20123 return key ? key.toLowerCase().replace('_', '-') : key; 20124 } // pick the locale from the array 20125 // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each 20126 // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root 20127 20128 20129 function chooseLocale(names) { 20130 var i = 0, 20131 j, 20132 next, 20133 locale, 20134 split; 20135 20136 while (i < names.length) { 20137 split = normalizeLocale(names[i]).split('-'); 20138 j = split.length; 20139 next = normalizeLocale(names[i + 1]); 20140 next = next ? next.split('-') : null; 20141 20142 while (j > 0) { 20143 locale = loadLocale(split.slice(0, j).join('-')); 20144 20145 if (locale) { 20146 return locale; 20147 } 20148 20149 if (next && next.length >= j && commonPrefix(split, next) >= j - 1) { 20150 //the next array item is better than a shallower substring of this one 20151 break; 20152 } 20153 20154 j--; 20155 } 20156 20157 i++; 20158 } 20159 20160 return globalLocale; 20161 } 20162 20163 function isLocaleNameSane(name) { 20164 // Prevent names that look like filesystem paths, i.e contain '/' or '\' 20165 return name.match('^[^/\\\\]*$') != null; 20166 } 20167 20168 function loadLocale(name) { 20169 var oldLocale = null, 20170 aliasedRequire; // TODO: Find a better way to register and load all the locales in Node 20171 20172 if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports && isLocaleNameSane(name)) { 20173 try { 20174 oldLocale = globalLocale._abbr; 20175 aliasedRequire = require; 20176 __webpack_require__("../autobahn_client_core/node_modules/moment/locale sync recursive ^\\.\\/.*$")("./" + name); 20177 getSetGlobalLocale(oldLocale); 20178 } catch (e) { 20179 // mark as not found to avoid repeating expensive file require call causing high CPU 20180 // when trying to find en-US, en_US, en-us for every format call 20181 locales[name] = null; // null means not found 20182 } 20183 } 20184 20185 return locales[name]; 20186 } // This function will load locale and then set the global locale. If 20187 // no arguments are passed in, it will simply return the current global 20188 // locale key. 20189 20190 20191 function getSetGlobalLocale(key, values) { 20192 var data; 20193 20194 if (key) { 20195 if (isUndefined(values)) { 20196 data = getLocale(key); 20197 } else { 20198 data = defineLocale(key, values); 20199 } 20200 20201 if (data) { 20202 // moment.duration._locale = moment._locale = data; 20203 globalLocale = data; 20204 } else { 20205 if (typeof console !== 'undefined' && console.warn) { 20206 //warn user if arguments are passed but the locale could not be set 20207 console.warn('Locale ' + key + ' not found. Did you forget to load it?'); 20208 } 20209 } 20210 } 20211 20212 return globalLocale._abbr; 20213 } 20214 20215 function defineLocale(name, config) { 20216 if (config !== null) { 20217 var locale, 20218 parentConfig = baseConfig; 20219 config.abbr = name; 20220 20221 if (locales[name] != null) { 20222 deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); 20223 parentConfig = locales[name]._config; 20224 } else if (config.parentLocale != null) { 20225 if (locales[config.parentLocale] != null) { 20226 parentConfig = locales[config.parentLocale]._config; 20227 } else { 20228 locale = loadLocale(config.parentLocale); 20229 20230 if (locale != null) { 20231 parentConfig = locale._config; 20232 } else { 20233 if (!localeFamilies[config.parentLocale]) { 20234 localeFamilies[config.parentLocale] = []; 20235 } 20236 20237 localeFamilies[config.parentLocale].push({ 20238 name: name, 20239 config: config 20240 }); 20241 return null; 20242 } 20243 } 20244 } 20245 20246 locales[name] = new Locale(mergeConfigs(parentConfig, config)); 20247 20248 if (localeFamilies[name]) { 20249 localeFamilies[name].forEach(function (x) { 20250 defineLocale(x.name, x.config); 20251 }); 20252 } // backwards compat for now: also set the locale 20253 // make sure we set the locale AFTER all child locales have been 20254 // created, so we won't end up with the child locale set. 20255 20256 20257 getSetGlobalLocale(name); 20258 return locales[name]; 20259 } else { 20260 // useful for testing 20261 delete locales[name]; 20262 return null; 20263 } 20264 } 20265 20266 function updateLocale(name, config) { 20267 if (config != null) { 20268 var locale, 20269 tmpLocale, 20270 parentConfig = baseConfig; 20271 20272 if (locales[name] != null && locales[name].parentLocale != null) { 20273 // Update existing child locale in-place to avoid memory-leaks 20274 locales[name].set(mergeConfigs(locales[name]._config, config)); 20275 } else { 20276 // MERGE 20277 tmpLocale = loadLocale(name); 20278 20279 if (tmpLocale != null) { 20280 parentConfig = tmpLocale._config; 20281 } 20282 20283 config = mergeConfigs(parentConfig, config); 20284 20285 if (tmpLocale == null) { 20286 // updateLocale is called for creating a new locale 20287 // Set abbr so it will have a name (getters return 20288 // undefined otherwise). 20289 config.abbr = name; 20290 } 20291 20292 locale = new Locale(config); 20293 locale.parentLocale = locales[name]; 20294 locales[name] = locale; 20295 } // backwards compat for now: also set the locale 20296 20297 20298 getSetGlobalLocale(name); 20299 } else { 20300 // pass null for config to unupdate, useful for tests 20301 if (locales[name] != null) { 20302 if (locales[name].parentLocale != null) { 20303 locales[name] = locales[name].parentLocale; 20304 20305 if (name === getSetGlobalLocale()) { 20306 getSetGlobalLocale(name); 20307 } 20308 } else if (locales[name] != null) { 20309 delete locales[name]; 20310 } 20311 } 20312 } 20313 20314 return locales[name]; 20315 } // returns locale data 20316 20317 20318 function getLocale(key) { 20319 var locale; 20320 20321 if (key && key._locale && key._locale._abbr) { 20322 key = key._locale._abbr; 20323 } 20324 20325 if (!key) { 20326 return globalLocale; 20327 } 20328 20329 if (!isArray(key)) { 20330 //short-circuit everything else 20331 locale = loadLocale(key); 20332 20333 if (locale) { 20334 return locale; 20335 } 20336 20337 key = [key]; 20338 } 20339 20340 return chooseLocale(key); 20341 } 20342 20343 function listLocales() { 20344 return keys(locales); 20345 } 20346 20347 function checkOverflow(m) { 20348 var overflow, 20349 a = m._a; 20350 20351 if (a && getParsingFlags(m).overflow === -2) { 20352 overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1; 20353 20354 if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { 20355 overflow = DATE; 20356 } 20357 20358 if (getParsingFlags(m)._overflowWeeks && overflow === -1) { 20359 overflow = WEEK; 20360 } 20361 20362 if (getParsingFlags(m)._overflowWeekday && overflow === -1) { 20363 overflow = WEEKDAY; 20364 } 20365 20366 getParsingFlags(m).overflow = overflow; 20367 } 20368 20369 return m; 20370 } // iso 8601 regex 20371 // 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) 20372 20373 20374 var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, 20375 basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, 20376 tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, 20377 isoDates = [['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], ['GGGG-[W]WW', /\d{4}-W\d\d/, false], ['YYYY-DDD', /\d{4}-\d{3}/], ['YYYY-MM', /\d{4}-\d\d/, false], ['YYYYYYMMDD', /[+-]\d{10}/], ['YYYYMMDD', /\d{8}/], ['GGGG[W]WWE', /\d{4}W\d{3}/], ['GGGG[W]WW', /\d{4}W\d{2}/, false], ['YYYYDDD', /\d{7}/], ['YYYYMM', /\d{6}/, false], ['YYYY', /\d{4}/, false]], 20378 // iso time formats and regexes 20379 isoTimes = [['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], ['HH:mm:ss', /\d\d:\d\d:\d\d/], ['HH:mm', /\d\d:\d\d/], ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], ['HHmmss', /\d\d\d\d\d\d/], ['HHmm', /\d\d\d\d/], ['HH', /\d\d/]], 20380 aspNetJsonRegex = /^\/?Date\((-?\d+)/i, 20381 // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 20382 rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, 20383 obsOffsets = { 20384 UT: 0, 20385 GMT: 0, 20386 EDT: -4 * 60, 20387 EST: -5 * 60, 20388 CDT: -5 * 60, 20389 CST: -6 * 60, 20390 MDT: -6 * 60, 20391 MST: -7 * 60, 20392 PDT: -7 * 60, 20393 PST: -8 * 60 20394 }; // date from iso format 20395 20396 function configFromISO(config) { 20397 var i, 20398 l, 20399 string = config._i, 20400 match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), 20401 allowTime, 20402 dateFormat, 20403 timeFormat, 20404 tzFormat, 20405 isoDatesLen = isoDates.length, 20406 isoTimesLen = isoTimes.length; 20407 20408 if (match) { 20409 getParsingFlags(config).iso = true; 20410 20411 for (i = 0, l = isoDatesLen; i < l; i++) { 20412 if (isoDates[i][1].exec(match[1])) { 20413 dateFormat = isoDates[i][0]; 20414 allowTime = isoDates[i][2] !== false; 20415 break; 20416 } 20417 } 20418 20419 if (dateFormat == null) { 20420 config._isValid = false; 20421 return; 20422 } 20423 20424 if (match[3]) { 20425 for (i = 0, l = isoTimesLen; i < l; i++) { 20426 if (isoTimes[i][1].exec(match[3])) { 20427 // match[2] should be 'T' or space 20428 timeFormat = (match[2] || ' ') + isoTimes[i][0]; 20429 break; 20430 } 20431 } 20432 20433 if (timeFormat == null) { 20434 config._isValid = false; 20435 return; 20436 } 20437 } 20438 20439 if (!allowTime && timeFormat != null) { 20440 config._isValid = false; 20441 return; 20442 } 20443 20444 if (match[4]) { 20445 if (tzRegex.exec(match[4])) { 20446 tzFormat = 'Z'; 20447 } else { 20448 config._isValid = false; 20449 return; 20450 } 20451 } 20452 20453 config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); 20454 configFromStringAndFormat(config); 20455 } else { 20456 config._isValid = false; 20457 } 20458 } 20459 20460 function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { 20461 var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)]; 20462 20463 if (secondStr) { 20464 result.push(parseInt(secondStr, 10)); 20465 } 20466 20467 return result; 20468 } 20469 20470 function untruncateYear(yearStr) { 20471 var year = parseInt(yearStr, 10); 20472 20473 if (year <= 49) { 20474 return 2000 + year; 20475 } else if (year <= 999) { 20476 return 1900 + year; 20477 } 20478 20479 return year; 20480 } 20481 20482 function preprocessRFC2822(s) { 20483 // Remove comments and folding whitespace and replace multiple-spaces with a single space 20484 return s.replace(/\([^()]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 20485 } 20486 20487 function checkWeekday(weekdayStr, parsedInput, config) { 20488 if (weekdayStr) { 20489 // TODO: Replace the vanilla JS Date object with an independent day-of-week check. 20490 var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), 20491 weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay(); 20492 20493 if (weekdayProvided !== weekdayActual) { 20494 getParsingFlags(config).weekdayMismatch = true; 20495 config._isValid = false; 20496 return false; 20497 } 20498 } 20499 20500 return true; 20501 } 20502 20503 function calculateOffset(obsOffset, militaryOffset, numOffset) { 20504 if (obsOffset) { 20505 return obsOffsets[obsOffset]; 20506 } else if (militaryOffset) { 20507 // the only allowed military tz is Z 20508 return 0; 20509 } else { 20510 var hm = parseInt(numOffset, 10), 20511 m = hm % 100, 20512 h = (hm - m) / 100; 20513 return h * 60 + m; 20514 } 20515 } // date and time from ref 2822 format 20516 20517 20518 function configFromRFC2822(config) { 20519 var match = rfc2822.exec(preprocessRFC2822(config._i)), 20520 parsedArray; 20521 20522 if (match) { 20523 parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]); 20524 20525 if (!checkWeekday(match[1], parsedArray, config)) { 20526 return; 20527 } 20528 20529 config._a = parsedArray; 20530 config._tzm = calculateOffset(match[8], match[9], match[10]); 20531 config._d = createUTCDate.apply(null, config._a); 20532 20533 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 20534 20535 getParsingFlags(config).rfc2822 = true; 20536 } else { 20537 config._isValid = false; 20538 } 20539 } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict 20540 20541 20542 function configFromString(config) { 20543 var matched = aspNetJsonRegex.exec(config._i); 20544 20545 if (matched !== null) { 20546 config._d = new Date(+matched[1]); 20547 return; 20548 } 20549 20550 configFromISO(config); 20551 20552 if (config._isValid === false) { 20553 delete config._isValid; 20554 } else { 20555 return; 20556 } 20557 20558 configFromRFC2822(config); 20559 20560 if (config._isValid === false) { 20561 delete config._isValid; 20562 } else { 20563 return; 20564 } 20565 20566 if (config._strict) { 20567 config._isValid = false; 20568 } else { 20569 // Final attempt, use Input Fallback 20570 hooks.createFromInputFallback(config); 20571 } 20572 } 20573 20574 hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) { 20575 config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); 20576 }); // Pick the first defined of two or three arguments. 20577 20578 function defaults(a, b, c) { 20579 if (a != null) { 20580 return a; 20581 } 20582 20583 if (b != null) { 20584 return b; 20585 } 20586 20587 return c; 20588 } 20589 20590 function currentDateArray(config) { 20591 // hooks is actually the exported moment object 20592 var nowValue = new Date(hooks.now()); 20593 20594 if (config._useUTC) { 20595 return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; 20596 } 20597 20598 return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; 20599 } // convert an array to a date. 20600 // the array should mirror the parameters below 20601 // note: all values past the year are optional and will default to the lowest possible value. 20602 // [year, month, day , hour, minute, second, millisecond] 20603 20604 20605 function configFromArray(config) { 20606 var i, 20607 date, 20608 input = [], 20609 currentDate, 20610 expectedWeekday, 20611 yearToUse; 20612 20613 if (config._d) { 20614 return; 20615 } 20616 20617 currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays 20618 20619 if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { 20620 dayOfYearFromWeekInfo(config); 20621 } //if the day of the year is set, figure out what it is 20622 20623 20624 if (config._dayOfYear != null) { 20625 yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); 20626 20627 if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { 20628 getParsingFlags(config)._overflowDayOfYear = true; 20629 } 20630 20631 date = createUTCDate(yearToUse, 0, config._dayOfYear); 20632 config._a[MONTH] = date.getUTCMonth(); 20633 config._a[DATE] = date.getUTCDate(); 20634 } // Default to current date. 20635 // * if no year, month, day of month are given, default to today 20636 // * if day of month is given, default month and year 20637 // * if month is given, default only year 20638 // * if year is given, don't default anything 20639 20640 20641 for (i = 0; i < 3 && config._a[i] == null; ++i) { 20642 config._a[i] = input[i] = currentDate[i]; 20643 } // Zero out whatever was not defaulted, including time 20644 20645 20646 for (; i < 7; i++) { 20647 config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i]; 20648 } // Check for 24:00:00.000 20649 20650 20651 if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) { 20652 config._nextDay = true; 20653 config._a[HOUR] = 0; 20654 } 20655 20656 config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); 20657 expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed 20658 // with parseZone. 20659 20660 if (config._tzm != null) { 20661 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 20662 } 20663 20664 if (config._nextDay) { 20665 config._a[HOUR] = 24; 20666 } // check for mismatching day of week 20667 20668 20669 if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) { 20670 getParsingFlags(config).weekdayMismatch = true; 20671 } 20672 } 20673 20674 function dayOfYearFromWeekInfo(config) { 20675 var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; 20676 w = config._w; 20677 20678 if (w.GG != null || w.W != null || w.E != null) { 20679 dow = 1; 20680 doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on 20681 // how we interpret now (local, utc, fixed offset). So create 20682 // a now version of current config (take local/utc/offset flags, and 20683 // create now). 20684 20685 weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); 20686 week = defaults(w.W, 1); 20687 weekday = defaults(w.E, 1); 20688 20689 if (weekday < 1 || weekday > 7) { 20690 weekdayOverflow = true; 20691 } 20692 } else { 20693 dow = config._locale._week.dow; 20694 doy = config._locale._week.doy; 20695 curWeek = weekOfYear(createLocal(), dow, doy); 20696 weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week. 20697 20698 week = defaults(w.w, curWeek.week); 20699 20700 if (w.d != null) { 20701 // weekday -- low day numbers are considered next week 20702 weekday = w.d; 20703 20704 if (weekday < 0 || weekday > 6) { 20705 weekdayOverflow = true; 20706 } 20707 } else if (w.e != null) { 20708 // local weekday -- counting starts from beginning of week 20709 weekday = w.e + dow; 20710 20711 if (w.e < 0 || w.e > 6) { 20712 weekdayOverflow = true; 20713 } 20714 } else { 20715 // default to beginning of week 20716 weekday = dow; 20717 } 20718 } 20719 20720 if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { 20721 getParsingFlags(config)._overflowWeeks = true; 20722 } else if (weekdayOverflow != null) { 20723 getParsingFlags(config)._overflowWeekday = true; 20724 } else { 20725 temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); 20726 config._a[YEAR] = temp.year; 20727 config._dayOfYear = temp.dayOfYear; 20728 } 20729 } // constant that refers to the ISO standard 20730 20731 20732 hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form 20733 20734 20735 hooks.RFC_2822 = function () {}; // date from string and format string 20736 20737 20738 function configFromStringAndFormat(config) { 20739 // TODO: Move this to another part of the creation flow to prevent circular deps 20740 if (config._f === hooks.ISO_8601) { 20741 configFromISO(config); 20742 return; 20743 } 20744 20745 if (config._f === hooks.RFC_2822) { 20746 configFromRFC2822(config); 20747 return; 20748 } 20749 20750 config._a = []; 20751 getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC` 20752 20753 var string = '' + config._i, 20754 i, 20755 parsedInput, 20756 tokens, 20757 token, 20758 skipped, 20759 stringLength = string.length, 20760 totalParsedInputLength = 0, 20761 era, 20762 tokenLen; 20763 tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; 20764 tokenLen = tokens.length; 20765 20766 for (i = 0; i < tokenLen; i++) { 20767 token = tokens[i]; 20768 parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; 20769 20770 if (parsedInput) { 20771 skipped = string.substr(0, string.indexOf(parsedInput)); 20772 20773 if (skipped.length > 0) { 20774 getParsingFlags(config).unusedInput.push(skipped); 20775 } 20776 20777 string = string.slice(string.indexOf(parsedInput) + parsedInput.length); 20778 totalParsedInputLength += parsedInput.length; 20779 } // don't parse if it's not a known token 20780 20781 20782 if (formatTokenFunctions[token]) { 20783 if (parsedInput) { 20784 getParsingFlags(config).empty = false; 20785 } else { 20786 getParsingFlags(config).unusedTokens.push(token); 20787 } 20788 20789 addTimeToArrayFromToken(token, parsedInput, config); 20790 } else if (config._strict && !parsedInput) { 20791 getParsingFlags(config).unusedTokens.push(token); 20792 } 20793 } // add remaining unparsed input length to the string 20794 20795 20796 getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; 20797 20798 if (string.length > 0) { 20799 getParsingFlags(config).unusedInput.push(string); 20800 } // clear _12h flag if hour is <= 12 20801 20802 20803 if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) { 20804 getParsingFlags(config).bigHour = undefined; 20805 } 20806 20807 getParsingFlags(config).parsedDateParts = config._a.slice(0); 20808 getParsingFlags(config).meridiem = config._meridiem; // handle meridiem 20809 20810 config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era 20811 20812 era = getParsingFlags(config).era; 20813 20814 if (era !== null) { 20815 config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); 20816 } 20817 20818 configFromArray(config); 20819 checkOverflow(config); 20820 } 20821 20822 function meridiemFixWrap(locale, hour, meridiem) { 20823 var isPm; 20824 20825 if (meridiem == null) { 20826 // nothing to do 20827 return hour; 20828 } 20829 20830 if (locale.meridiemHour != null) { 20831 return locale.meridiemHour(hour, meridiem); 20832 } else if (locale.isPM != null) { 20833 // Fallback 20834 isPm = locale.isPM(meridiem); 20835 20836 if (isPm && hour < 12) { 20837 hour += 12; 20838 } 20839 20840 if (!isPm && hour === 12) { 20841 hour = 0; 20842 } 20843 20844 return hour; 20845 } else { 20846 // this is not supposed to happen 20847 return hour; 20848 } 20849 } // date from string and array of format strings 20850 20851 20852 function configFromStringAndArray(config) { 20853 var tempConfig, 20854 bestMoment, 20855 scoreToBeat, 20856 i, 20857 currentScore, 20858 validFormatFound, 20859 bestFormatIsValid = false, 20860 configfLen = config._f.length; 20861 20862 if (configfLen === 0) { 20863 getParsingFlags(config).invalidFormat = true; 20864 config._d = new Date(NaN); 20865 return; 20866 } 20867 20868 for (i = 0; i < configfLen; i++) { 20869 currentScore = 0; 20870 validFormatFound = false; 20871 tempConfig = copyConfig({}, config); 20872 20873 if (config._useUTC != null) { 20874 tempConfig._useUTC = config._useUTC; 20875 } 20876 20877 tempConfig._f = config._f[i]; 20878 configFromStringAndFormat(tempConfig); 20879 20880 if (isValid(tempConfig)) { 20881 validFormatFound = true; 20882 } // if there is any input that was not parsed add a penalty for that format 20883 20884 20885 currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens 20886 20887 currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; 20888 getParsingFlags(tempConfig).score = currentScore; 20889 20890 if (!bestFormatIsValid) { 20891 if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) { 20892 scoreToBeat = currentScore; 20893 bestMoment = tempConfig; 20894 20895 if (validFormatFound) { 20896 bestFormatIsValid = true; 20897 } 20898 } 20899 } else { 20900 if (currentScore < scoreToBeat) { 20901 scoreToBeat = currentScore; 20902 bestMoment = tempConfig; 20903 } 20904 } 20905 } 20906 20907 extend(config, bestMoment || tempConfig); 20908 } 20909 20910 function configFromObject(config) { 20911 if (config._d) { 20912 return; 20913 } 20914 20915 var i = normalizeObjectUnits(config._i), 20916 dayOrDate = i.day === undefined ? i.date : i.day; 20917 config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) { 20918 return obj && parseInt(obj, 10); 20919 }); 20920 configFromArray(config); 20921 } 20922 20923 function createFromConfig(config) { 20924 var res = new Moment(checkOverflow(prepareConfig(config))); 20925 20926 if (res._nextDay) { 20927 // Adding is smart enough around DST 20928 res.add(1, 'd'); 20929 res._nextDay = undefined; 20930 } 20931 20932 return res; 20933 } 20934 20935 function prepareConfig(config) { 20936 var input = config._i, 20937 format = config._f; 20938 config._locale = config._locale || getLocale(config._l); 20939 20940 if (input === null || format === undefined && input === '') { 20941 return createInvalid({ 20942 nullInput: true 20943 }); 20944 } 20945 20946 if (typeof input === 'string') { 20947 config._i = input = config._locale.preparse(input); 20948 } 20949 20950 if (isMoment(input)) { 20951 return new Moment(checkOverflow(input)); 20952 } else if (isDate(input)) { 20953 config._d = input; 20954 } else if (isArray(format)) { 20955 configFromStringAndArray(config); 20956 } else if (format) { 20957 configFromStringAndFormat(config); 20958 } else { 20959 configFromInput(config); 20960 } 20961 20962 if (!isValid(config)) { 20963 config._d = null; 20964 } 20965 20966 return config; 20967 } 20968 20969 function configFromInput(config) { 20970 var input = config._i; 20971 20972 if (isUndefined(input)) { 20973 config._d = new Date(hooks.now()); 20974 } else if (isDate(input)) { 20975 config._d = new Date(input.valueOf()); 20976 } else if (typeof input === 'string') { 20977 configFromString(config); 20978 } else if (isArray(input)) { 20979 config._a = map(input.slice(0), function (obj) { 20980 return parseInt(obj, 10); 20981 }); 20982 configFromArray(config); 20983 } else if (isObject(input)) { 20984 configFromObject(config); 20985 } else if (isNumber(input)) { 20986 // from milliseconds 20987 config._d = new Date(input); 20988 } else { 20989 hooks.createFromInputFallback(config); 20990 } 20991 } 20992 20993 function createLocalOrUTC(input, format, locale, strict, isUTC) { 20994 var c = {}; 20995 20996 if (format === true || format === false) { 20997 strict = format; 20998 format = undefined; 20999 } 21000 21001 if (locale === true || locale === false) { 21002 strict = locale; 21003 locale = undefined; 21004 } 21005 21006 if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) { 21007 input = undefined; 21008 } // object construction must be done this way. 21009 // https://github.com/moment/moment/issues/1423 21010 21011 21012 c._isAMomentObject = true; 21013 c._useUTC = c._isUTC = isUTC; 21014 c._l = locale; 21015 c._i = input; 21016 c._f = format; 21017 c._strict = strict; 21018 return createFromConfig(c); 21019 } 21020 21021 function createLocal(input, format, locale, strict) { 21022 return createLocalOrUTC(input, format, locale, strict, false); 21023 } 21024 21025 var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () { 21026 var other = createLocal.apply(null, arguments); 21027 21028 if (this.isValid() && other.isValid()) { 21029 return other < this ? this : other; 21030 } else { 21031 return createInvalid(); 21032 } 21033 }), 21034 prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () { 21035 var other = createLocal.apply(null, arguments); 21036 21037 if (this.isValid() && other.isValid()) { 21038 return other > this ? this : other; 21039 } else { 21040 return createInvalid(); 21041 } 21042 }); // Pick a moment m from moments so that m[fn](other) is true for all 21043 // other. This relies on the function fn to be transitive. 21044 // 21045 // moments should either be an array of moment objects or an array, whose 21046 // first element is an array of moment objects. 21047 21048 function pickBy(fn, moments) { 21049 var res, i; 21050 21051 if (moments.length === 1 && isArray(moments[0])) { 21052 moments = moments[0]; 21053 } 21054 21055 if (!moments.length) { 21056 return createLocal(); 21057 } 21058 21059 res = moments[0]; 21060 21061 for (i = 1; i < moments.length; ++i) { 21062 if (!moments[i].isValid() || moments[i][fn](res)) { 21063 res = moments[i]; 21064 } 21065 } 21066 21067 return res; 21068 } // TODO: Use [].sort instead? 21069 21070 21071 function min() { 21072 var args = [].slice.call(arguments, 0); 21073 return pickBy('isBefore', args); 21074 } 21075 21076 function max() { 21077 var args = [].slice.call(arguments, 0); 21078 return pickBy('isAfter', args); 21079 } 21080 21081 var now = function now() { 21082 return Date.now ? Date.now() : +new Date(); 21083 }; 21084 21085 var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; 21086 21087 function isDurationValid(m) { 21088 var key, 21089 unitHasDecimal = false, 21090 i, 21091 orderLen = ordering.length; 21092 21093 for (key in m) { 21094 if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { 21095 return false; 21096 } 21097 } 21098 21099 for (i = 0; i < orderLen; ++i) { 21100 if (m[ordering[i]]) { 21101 if (unitHasDecimal) { 21102 return false; // only allow non-integers for smallest unit 21103 } 21104 21105 if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { 21106 unitHasDecimal = true; 21107 } 21108 } 21109 } 21110 21111 return true; 21112 } 21113 21114 function isValid$1() { 21115 return this._isValid; 21116 } 21117 21118 function createInvalid$1() { 21119 return createDuration(NaN); 21120 } 21121 21122 function Duration(duration) { 21123 var normalizedInput = normalizeObjectUnits(duration), 21124 years = normalizedInput.year || 0, 21125 quarters = normalizedInput.quarter || 0, 21126 months = normalizedInput.month || 0, 21127 weeks = normalizedInput.week || normalizedInput.isoWeek || 0, 21128 days = normalizedInput.day || 0, 21129 hours = normalizedInput.hour || 0, 21130 minutes = normalizedInput.minute || 0, 21131 seconds = normalizedInput.second || 0, 21132 milliseconds = normalizedInput.millisecond || 0; 21133 this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove 21134 21135 this._milliseconds = +milliseconds + seconds * 1e3 + // 1000 21136 minutes * 6e4 + // 1000 * 60 21137 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 21138 // Because of dateAddRemove treats 24 hours as different from a 21139 // day when working around DST, we need to store them separately 21140 21141 this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing 21142 // which months you are are talking about, so we have to store 21143 // it separately. 21144 21145 this._months = +months + quarters * 3 + years * 12; 21146 this._data = {}; 21147 this._locale = getLocale(); 21148 21149 this._bubble(); 21150 } 21151 21152 function isDuration(obj) { 21153 return obj instanceof Duration; 21154 } 21155 21156 function absRound(number) { 21157 if (number < 0) { 21158 return Math.round(-1 * number) * -1; 21159 } else { 21160 return Math.round(number); 21161 } 21162 } // compare two arrays, return the number of differences 21163 21164 21165 function compareArrays(array1, array2, dontConvert) { 21166 var len = Math.min(array1.length, array2.length), 21167 lengthDiff = Math.abs(array1.length - array2.length), 21168 diffs = 0, 21169 i; 21170 21171 for (i = 0; i < len; i++) { 21172 if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) { 21173 diffs++; 21174 } 21175 } 21176 21177 return diffs + lengthDiff; 21178 } // FORMATTING 21179 21180 21181 function offset(token, separator) { 21182 addFormatToken(token, 0, 0, function () { 21183 var offset = this.utcOffset(), 21184 sign = '+'; 21185 21186 if (offset < 0) { 21187 offset = -offset; 21188 sign = '-'; 21189 } 21190 21191 return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2); 21192 }); 21193 } 21194 21195 offset('Z', ':'); 21196 offset('ZZ', ''); // PARSING 21197 21198 addRegexToken('Z', matchShortOffset); 21199 addRegexToken('ZZ', matchShortOffset); 21200 addParseToken(['Z', 'ZZ'], function (input, array, config) { 21201 config._useUTC = true; 21202 config._tzm = offsetFromString(matchShortOffset, input); 21203 }); // HELPERS 21204 // timezone chunker 21205 // '+10:00' > ['10', '00'] 21206 // '-1530' > ['-15', '30'] 21207 21208 var chunkOffset = /([\+\-]|\d\d)/gi; 21209 21210 function offsetFromString(matcher, string) { 21211 var matches = (string || '').match(matcher), 21212 chunk, 21213 parts, 21214 minutes; 21215 21216 if (matches === null) { 21217 return null; 21218 } 21219 21220 chunk = matches[matches.length - 1] || []; 21221 parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; 21222 minutes = +(parts[1] * 60) + toInt(parts[2]); 21223 return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; 21224 } // Return a moment from input, that is local/utc/zone equivalent to model. 21225 21226 21227 function cloneWithOffset(input, model) { 21228 var res, diff; 21229 21230 if (model._isUTC) { 21231 res = model.clone(); 21232 diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api. 21233 21234 res._d.setTime(res._d.valueOf() + diff); 21235 21236 hooks.updateOffset(res, false); 21237 return res; 21238 } else { 21239 return createLocal(input).local(); 21240 } 21241 } 21242 21243 function getDateOffset(m) { 21244 // On Firefox.24 Date#getTimezoneOffset returns a floating point. 21245 // https://github.com/moment/moment/pull/1871 21246 return -Math.round(m._d.getTimezoneOffset()); 21247 } // HOOKS 21248 // This function will be called whenever a moment is mutated. 21249 // It is intended to keep the offset in sync with the timezone. 21250 21251 21252 hooks.updateOffset = function () {}; // MOMENTS 21253 // keepLocalTime = true means only change the timezone, without 21254 // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> 21255 // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset 21256 // +0200, so we adjust the time as needed, to be valid. 21257 // 21258 // Keeping the time actually adds/subtracts (one hour) 21259 // from the actual represented time. That is why we call updateOffset 21260 // a second time. In case it wants us to change the offset again 21261 // _changeInProgress == true case, then we have to adjust, because 21262 // there is no such time in the given timezone. 21263 21264 21265 function getSetOffset(input, keepLocalTime, keepMinutes) { 21266 var offset = this._offset || 0, 21267 localAdjust; 21268 21269 if (!this.isValid()) { 21270 return input != null ? this : NaN; 21271 } 21272 21273 if (input != null) { 21274 if (typeof input === 'string') { 21275 input = offsetFromString(matchShortOffset, input); 21276 21277 if (input === null) { 21278 return this; 21279 } 21280 } else if (Math.abs(input) < 16 && !keepMinutes) { 21281 input = input * 60; 21282 } 21283 21284 if (!this._isUTC && keepLocalTime) { 21285 localAdjust = getDateOffset(this); 21286 } 21287 21288 this._offset = input; 21289 this._isUTC = true; 21290 21291 if (localAdjust != null) { 21292 this.add(localAdjust, 'm'); 21293 } 21294 21295 if (offset !== input) { 21296 if (!keepLocalTime || this._changeInProgress) { 21297 addSubtract(this, createDuration(input - offset, 'm'), 1, false); 21298 } else if (!this._changeInProgress) { 21299 this._changeInProgress = true; 21300 hooks.updateOffset(this, true); 21301 this._changeInProgress = null; 21302 } 21303 } 21304 21305 return this; 21306 } else { 21307 return this._isUTC ? offset : getDateOffset(this); 21308 } 21309 } 21310 21311 function getSetZone(input, keepLocalTime) { 21312 if (input != null) { 21313 if (typeof input !== 'string') { 21314 input = -input; 21315 } 21316 21317 this.utcOffset(input, keepLocalTime); 21318 return this; 21319 } else { 21320 return -this.utcOffset(); 21321 } 21322 } 21323 21324 function setOffsetToUTC(keepLocalTime) { 21325 return this.utcOffset(0, keepLocalTime); 21326 } 21327 21328 function setOffsetToLocal(keepLocalTime) { 21329 if (this._isUTC) { 21330 this.utcOffset(0, keepLocalTime); 21331 this._isUTC = false; 21332 21333 if (keepLocalTime) { 21334 this.subtract(getDateOffset(this), 'm'); 21335 } 21336 } 21337 21338 return this; 21339 } 21340 21341 function setOffsetToParsedOffset() { 21342 if (this._tzm != null) { 21343 this.utcOffset(this._tzm, false, true); 21344 } else if (typeof this._i === 'string') { 21345 var tZone = offsetFromString(matchOffset, this._i); 21346 21347 if (tZone != null) { 21348 this.utcOffset(tZone); 21349 } else { 21350 this.utcOffset(0, true); 21351 } 21352 } 21353 21354 return this; 21355 } 21356 21357 function hasAlignedHourOffset(input) { 21358 if (!this.isValid()) { 21359 return false; 21360 } 21361 21362 input = input ? createLocal(input).utcOffset() : 0; 21363 return (this.utcOffset() - input) % 60 === 0; 21364 } 21365 21366 function isDaylightSavingTime() { 21367 return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset(); 21368 } 21369 21370 function isDaylightSavingTimeShifted() { 21371 if (!isUndefined(this._isDSTShifted)) { 21372 return this._isDSTShifted; 21373 } 21374 21375 var c = {}, 21376 other; 21377 copyConfig(c, this); 21378 c = prepareConfig(c); 21379 21380 if (c._a) { 21381 other = c._isUTC ? createUTC(c._a) : createLocal(c._a); 21382 this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0; 21383 } else { 21384 this._isDSTShifted = false; 21385 } 21386 21387 return this._isDSTShifted; 21388 } 21389 21390 function isLocal() { 21391 return this.isValid() ? !this._isUTC : false; 21392 } 21393 21394 function isUtcOffset() { 21395 return this.isValid() ? this._isUTC : false; 21396 } 21397 21398 function isUtc() { 21399 return this.isValid() ? this._isUTC && this._offset === 0 : false; 21400 } // ASP.NET json date format regex 21401 21402 21403 var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, 21404 // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html 21405 // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere 21406 // and further modified to allow for strings containing both week and day 21407 isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; 21408 21409 function createDuration(input, key) { 21410 var duration = input, 21411 // matching against regexp is expensive, do it on demand 21412 match = null, 21413 sign, 21414 ret, 21415 diffRes; 21416 21417 if (isDuration(input)) { 21418 duration = { 21419 ms: input._milliseconds, 21420 d: input._days, 21421 M: input._months 21422 }; 21423 } else if (isNumber(input) || !isNaN(+input)) { 21424 duration = {}; 21425 21426 if (key) { 21427 duration[key] = +input; 21428 } else { 21429 duration.milliseconds = +input; 21430 } 21431 } else if (match = aspNetRegex.exec(input)) { 21432 sign = match[1] === '-' ? -1 : 1; 21433 duration = { 21434 y: 0, 21435 d: toInt(match[DATE]) * sign, 21436 h: toInt(match[HOUR]) * sign, 21437 m: toInt(match[MINUTE]) * sign, 21438 s: toInt(match[SECOND]) * sign, 21439 ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match 21440 21441 }; 21442 } else if (match = isoRegex.exec(input)) { 21443 sign = match[1] === '-' ? -1 : 1; 21444 duration = { 21445 y: parseIso(match[2], sign), 21446 M: parseIso(match[3], sign), 21447 w: parseIso(match[4], sign), 21448 d: parseIso(match[5], sign), 21449 h: parseIso(match[6], sign), 21450 m: parseIso(match[7], sign), 21451 s: parseIso(match[8], sign) 21452 }; 21453 } else if (duration == null) { 21454 // checks for null or undefined 21455 duration = {}; 21456 } else if (_typeof(duration) === 'object' && ('from' in duration || 'to' in duration)) { 21457 diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); 21458 duration = {}; 21459 duration.ms = diffRes.milliseconds; 21460 duration.M = diffRes.months; 21461 } 21462 21463 ret = new Duration(duration); 21464 21465 if (isDuration(input) && hasOwnProp(input, '_locale')) { 21466 ret._locale = input._locale; 21467 } 21468 21469 if (isDuration(input) && hasOwnProp(input, '_isValid')) { 21470 ret._isValid = input._isValid; 21471 } 21472 21473 return ret; 21474 } 21475 21476 createDuration.fn = Duration.prototype; 21477 createDuration.invalid = createInvalid$1; 21478 21479 function parseIso(inp, sign) { 21480 // We'd normally use ~~inp for this, but unfortunately it also 21481 // converts floats to ints. 21482 // inp may be undefined, so careful calling replace on it. 21483 var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it 21484 21485 return (isNaN(res) ? 0 : res) * sign; 21486 } 21487 21488 function positiveMomentsDifference(base, other) { 21489 var res = {}; 21490 res.months = other.month() - base.month() + (other.year() - base.year()) * 12; 21491 21492 if (base.clone().add(res.months, 'M').isAfter(other)) { 21493 --res.months; 21494 } 21495 21496 res.milliseconds = +other - +base.clone().add(res.months, 'M'); 21497 return res; 21498 } 21499 21500 function momentsDifference(base, other) { 21501 var res; 21502 21503 if (!(base.isValid() && other.isValid())) { 21504 return { 21505 milliseconds: 0, 21506 months: 0 21507 }; 21508 } 21509 21510 other = cloneWithOffset(other, base); 21511 21512 if (base.isBefore(other)) { 21513 res = positiveMomentsDifference(base, other); 21514 } else { 21515 res = positiveMomentsDifference(other, base); 21516 res.milliseconds = -res.milliseconds; 21517 res.months = -res.months; 21518 } 21519 21520 return res; 21521 } // TODO: remove 'name' arg after deprecation is removed 21522 21523 21524 function createAdder(direction, name) { 21525 return function (val, period) { 21526 var dur, tmp; //invert the arguments, but complain about it 21527 21528 if (period !== null && !isNaN(+period)) { 21529 deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); 21530 tmp = val; 21531 val = period; 21532 period = tmp; 21533 } 21534 21535 dur = createDuration(val, period); 21536 addSubtract(this, dur, direction); 21537 return this; 21538 }; 21539 } 21540 21541 function addSubtract(mom, duration, isAdding, updateOffset) { 21542 var milliseconds = duration._milliseconds, 21543 days = absRound(duration._days), 21544 months = absRound(duration._months); 21545 21546 if (!mom.isValid()) { 21547 // No op 21548 return; 21549 } 21550 21551 updateOffset = updateOffset == null ? true : updateOffset; 21552 21553 if (months) { 21554 setMonth(mom, get(mom, 'Month') + months * isAdding); 21555 } 21556 21557 if (days) { 21558 set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); 21559 } 21560 21561 if (milliseconds) { 21562 mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); 21563 } 21564 21565 if (updateOffset) { 21566 hooks.updateOffset(mom, days || months); 21567 } 21568 } 21569 21570 var add = createAdder(1, 'add'), 21571 subtract = createAdder(-1, 'subtract'); 21572 21573 function isString(input) { 21574 return typeof input === 'string' || input instanceof String; 21575 } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined 21576 21577 21578 function isMomentInput(input) { 21579 return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined; 21580 } 21581 21582 function isMomentInputObject(input) { 21583 var objectTest = isObject(input) && !isObjectEmpty(input), 21584 propertyTest = false, 21585 properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'], 21586 i, 21587 property, 21588 propertyLen = properties.length; 21589 21590 for (i = 0; i < propertyLen; i += 1) { 21591 property = properties[i]; 21592 propertyTest = propertyTest || hasOwnProp(input, property); 21593 } 21594 21595 return objectTest && propertyTest; 21596 } 21597 21598 function isNumberOrStringArray(input) { 21599 var arrayTest = isArray(input), 21600 dataTypeTest = false; 21601 21602 if (arrayTest) { 21603 dataTypeTest = input.filter(function (item) { 21604 return !isNumber(item) && isString(input); 21605 }).length === 0; 21606 } 21607 21608 return arrayTest && dataTypeTest; 21609 } 21610 21611 function isCalendarSpec(input) { 21612 var objectTest = isObject(input) && !isObjectEmpty(input), 21613 propertyTest = false, 21614 properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'], 21615 i, 21616 property; 21617 21618 for (i = 0; i < properties.length; i += 1) { 21619 property = properties[i]; 21620 propertyTest = propertyTest || hasOwnProp(input, property); 21621 } 21622 21623 return objectTest && propertyTest; 21624 } 21625 21626 function getCalendarFormat(myMoment, now) { 21627 var diff = myMoment.diff(now, 'days', true); 21628 return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse'; 21629 } 21630 21631 function calendar$1(time, formats) { 21632 // Support for single parameter, formats only overload to the calendar function 21633 if (arguments.length === 1) { 21634 if (!arguments[0]) { 21635 time = undefined; 21636 formats = undefined; 21637 } else if (isMomentInput(arguments[0])) { 21638 time = arguments[0]; 21639 formats = undefined; 21640 } else if (isCalendarSpec(arguments[0])) { 21641 formats = arguments[0]; 21642 time = undefined; 21643 } 21644 } // We want to compare the start of today, vs this. 21645 // Getting start-of-today depends on whether we're local/utc/offset or not. 21646 21647 21648 var now = time || createLocal(), 21649 sod = cloneWithOffset(now, this).startOf('day'), 21650 format = hooks.calendarFormat(this, sod) || 'sameElse', 21651 output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); 21652 return this.format(output || this.localeData().calendar(format, this, createLocal(now))); 21653 } 21654 21655 function clone() { 21656 return new Moment(this); 21657 } 21658 21659 function isAfter(input, units) { 21660 var localInput = isMoment(input) ? input : createLocal(input); 21661 21662 if (!(this.isValid() && localInput.isValid())) { 21663 return false; 21664 } 21665 21666 units = normalizeUnits(units) || 'millisecond'; 21667 21668 if (units === 'millisecond') { 21669 return this.valueOf() > localInput.valueOf(); 21670 } else { 21671 return localInput.valueOf() < this.clone().startOf(units).valueOf(); 21672 } 21673 } 21674 21675 function isBefore(input, units) { 21676 var localInput = isMoment(input) ? input : createLocal(input); 21677 21678 if (!(this.isValid() && localInput.isValid())) { 21679 return false; 21680 } 21681 21682 units = normalizeUnits(units) || 'millisecond'; 21683 21684 if (units === 'millisecond') { 21685 return this.valueOf() < localInput.valueOf(); 21686 } else { 21687 return this.clone().endOf(units).valueOf() < localInput.valueOf(); 21688 } 21689 } 21690 21691 function isBetween(from, to, units, inclusivity) { 21692 var localFrom = isMoment(from) ? from : createLocal(from), 21693 localTo = isMoment(to) ? to : createLocal(to); 21694 21695 if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { 21696 return false; 21697 } 21698 21699 inclusivity = inclusivity || '()'; 21700 return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units)); 21701 } 21702 21703 function isSame(input, units) { 21704 var localInput = isMoment(input) ? input : createLocal(input), 21705 inputMs; 21706 21707 if (!(this.isValid() && localInput.isValid())) { 21708 return false; 21709 } 21710 21711 units = normalizeUnits(units) || 'millisecond'; 21712 21713 if (units === 'millisecond') { 21714 return this.valueOf() === localInput.valueOf(); 21715 } else { 21716 inputMs = localInput.valueOf(); 21717 return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); 21718 } 21719 } 21720 21721 function isSameOrAfter(input, units) { 21722 return this.isSame(input, units) || this.isAfter(input, units); 21723 } 21724 21725 function isSameOrBefore(input, units) { 21726 return this.isSame(input, units) || this.isBefore(input, units); 21727 } 21728 21729 function diff(input, units, asFloat) { 21730 var that, zoneDelta, output; 21731 21732 if (!this.isValid()) { 21733 return NaN; 21734 } 21735 21736 that = cloneWithOffset(input, this); 21737 21738 if (!that.isValid()) { 21739 return NaN; 21740 } 21741 21742 zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; 21743 units = normalizeUnits(units); 21744 21745 switch (units) { 21746 case 'year': 21747 output = monthDiff(this, that) / 12; 21748 break; 21749 21750 case 'month': 21751 output = monthDiff(this, that); 21752 break; 21753 21754 case 'quarter': 21755 output = monthDiff(this, that) / 3; 21756 break; 21757 21758 case 'second': 21759 output = (this - that) / 1e3; 21760 break; 21761 // 1000 21762 21763 case 'minute': 21764 output = (this - that) / 6e4; 21765 break; 21766 // 1000 * 60 21767 21768 case 'hour': 21769 output = (this - that) / 36e5; 21770 break; 21771 // 1000 * 60 * 60 21772 21773 case 'day': 21774 output = (this - that - zoneDelta) / 864e5; 21775 break; 21776 // 1000 * 60 * 60 * 24, negate dst 21777 21778 case 'week': 21779 output = (this - that - zoneDelta) / 6048e5; 21780 break; 21781 // 1000 * 60 * 60 * 24 * 7, negate dst 21782 21783 default: 21784 output = this - that; 21785 } 21786 21787 return asFloat ? output : absFloor(output); 21788 } 21789 21790 function monthDiff(a, b) { 21791 if (a.date() < b.date()) { 21792 // end-of-month calculations work correct when the start month has more 21793 // days than the end month. 21794 return -monthDiff(b, a); 21795 } // difference in months 21796 21797 21798 var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), 21799 // b is in (anchor - 1 month, anchor + 1 month) 21800 anchor = a.clone().add(wholeMonthDiff, 'months'), 21801 anchor2, 21802 adjust; 21803 21804 if (b - anchor < 0) { 21805 anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month 21806 21807 adjust = (b - anchor) / (anchor - anchor2); 21808 } else { 21809 anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month 21810 21811 adjust = (b - anchor) / (anchor2 - anchor); 21812 } //check for negative zero, return zero if negative zero 21813 21814 21815 return -(wholeMonthDiff + adjust) || 0; 21816 } 21817 21818 hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; 21819 hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; 21820 21821 function toString() { 21822 return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); 21823 } 21824 21825 function toISOString(keepOffset) { 21826 if (!this.isValid()) { 21827 return null; 21828 } 21829 21830 var utc = keepOffset !== true, 21831 m = utc ? this.clone().utc() : this; 21832 21833 if (m.year() < 0 || m.year() > 9999) { 21834 return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'); 21835 } 21836 21837 if (isFunction(Date.prototype.toISOString)) { 21838 // native implementation is ~50x faster, use it when we can 21839 if (utc) { 21840 return this.toDate().toISOString(); 21841 } else { 21842 return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z')); 21843 } 21844 } 21845 21846 return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'); 21847 } 21848 /** 21849 * Return a human readable representation of a moment that can 21850 * also be evaluated to get a new moment which is the same 21851 * 21852 * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects 21853 */ 21854 21855 21856 function inspect() { 21857 if (!this.isValid()) { 21858 return 'moment.invalid(/* ' + this._i + ' */)'; 21859 } 21860 21861 var func = 'moment', 21862 zone = '', 21863 prefix, 21864 year, 21865 datetime, 21866 suffix; 21867 21868 if (!this.isLocal()) { 21869 func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; 21870 zone = 'Z'; 21871 } 21872 21873 prefix = '[' + func + '("]'; 21874 year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; 21875 datetime = '-MM-DD[T]HH:mm:ss.SSS'; 21876 suffix = zone + '[")]'; 21877 return this.format(prefix + year + datetime + suffix); 21878 } 21879 21880 function format(inputString) { 21881 if (!inputString) { 21882 inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; 21883 } 21884 21885 var output = formatMoment(this, inputString); 21886 return this.localeData().postformat(output); 21887 } 21888 21889 function from(time, withoutSuffix) { 21890 if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { 21891 return createDuration({ 21892 to: this, 21893 from: time 21894 }).locale(this.locale()).humanize(!withoutSuffix); 21895 } else { 21896 return this.localeData().invalidDate(); 21897 } 21898 } 21899 21900 function fromNow(withoutSuffix) { 21901 return this.from(createLocal(), withoutSuffix); 21902 } 21903 21904 function to(time, withoutSuffix) { 21905 if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { 21906 return createDuration({ 21907 from: this, 21908 to: time 21909 }).locale(this.locale()).humanize(!withoutSuffix); 21910 } else { 21911 return this.localeData().invalidDate(); 21912 } 21913 } 21914 21915 function toNow(withoutSuffix) { 21916 return this.to(createLocal(), withoutSuffix); 21917 } // If passed a locale key, it will set the locale for this 21918 // instance. Otherwise, it will return the locale configuration 21919 // variables for this instance. 21920 21921 21922 function locale(key) { 21923 var newLocaleData; 21924 21925 if (key === undefined) { 21926 return this._locale._abbr; 21927 } else { 21928 newLocaleData = getLocale(key); 21929 21930 if (newLocaleData != null) { 21931 this._locale = newLocaleData; 21932 } 21933 21934 return this; 21935 } 21936 } 21937 21938 var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) { 21939 if (key === undefined) { 21940 return this.localeData(); 21941 } else { 21942 return this.locale(key); 21943 } 21944 }); 21945 21946 function localeData() { 21947 return this._locale; 21948 } 21949 21950 var MS_PER_SECOND = 1000, 21951 MS_PER_MINUTE = 60 * MS_PER_SECOND, 21952 MS_PER_HOUR = 60 * MS_PER_MINUTE, 21953 MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970): 21954 21955 function mod$1(dividend, divisor) { 21956 return (dividend % divisor + divisor) % divisor; 21957 } 21958 21959 function localStartOfDate(y, m, d) { 21960 // the date constructor remaps years 0-99 to 1900-1999 21961 if (y < 100 && y >= 0) { 21962 // preserve leap years using a full 400 year cycle, then reset 21963 return new Date(y + 400, m, d) - MS_PER_400_YEARS; 21964 } else { 21965 return new Date(y, m, d).valueOf(); 21966 } 21967 } 21968 21969 function utcStartOfDate(y, m, d) { 21970 // Date.UTC remaps years 0-99 to 1900-1999 21971 if (y < 100 && y >= 0) { 21972 // preserve leap years using a full 400 year cycle, then reset 21973 return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; 21974 } else { 21975 return Date.UTC(y, m, d); 21976 } 21977 } 21978 21979 function startOf(units) { 21980 var time, startOfDate; 21981 units = normalizeUnits(units); 21982 21983 if (units === undefined || units === 'millisecond' || !this.isValid()) { 21984 return this; 21985 } 21986 21987 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 21988 21989 switch (units) { 21990 case 'year': 21991 time = startOfDate(this.year(), 0, 1); 21992 break; 21993 21994 case 'quarter': 21995 time = startOfDate(this.year(), this.month() - this.month() % 3, 1); 21996 break; 21997 21998 case 'month': 21999 time = startOfDate(this.year(), this.month(), 1); 22000 break; 22001 22002 case 'week': 22003 time = startOfDate(this.year(), this.month(), this.date() - this.weekday()); 22004 break; 22005 22006 case 'isoWeek': 22007 time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); 22008 break; 22009 22010 case 'day': 22011 case 'date': 22012 time = startOfDate(this.year(), this.month(), this.date()); 22013 break; 22014 22015 case 'hour': 22016 time = this._d.valueOf(); 22017 time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR); 22018 break; 22019 22020 case 'minute': 22021 time = this._d.valueOf(); 22022 time -= mod$1(time, MS_PER_MINUTE); 22023 break; 22024 22025 case 'second': 22026 time = this._d.valueOf(); 22027 time -= mod$1(time, MS_PER_SECOND); 22028 break; 22029 } 22030 22031 this._d.setTime(time); 22032 22033 hooks.updateOffset(this, true); 22034 return this; 22035 } 22036 22037 function endOf(units) { 22038 var time, startOfDate; 22039 units = normalizeUnits(units); 22040 22041 if (units === undefined || units === 'millisecond' || !this.isValid()) { 22042 return this; 22043 } 22044 22045 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 22046 22047 switch (units) { 22048 case 'year': 22049 time = startOfDate(this.year() + 1, 0, 1) - 1; 22050 break; 22051 22052 case 'quarter': 22053 time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; 22054 break; 22055 22056 case 'month': 22057 time = startOfDate(this.year(), this.month() + 1, 1) - 1; 22058 break; 22059 22060 case 'week': 22061 time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; 22062 break; 22063 22064 case 'isoWeek': 22065 time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; 22066 break; 22067 22068 case 'day': 22069 case 'date': 22070 time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; 22071 break; 22072 22073 case 'hour': 22074 time = this._d.valueOf(); 22075 time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1; 22076 break; 22077 22078 case 'minute': 22079 time = this._d.valueOf(); 22080 time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; 22081 break; 22082 22083 case 'second': 22084 time = this._d.valueOf(); 22085 time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; 22086 break; 22087 } 22088 22089 this._d.setTime(time); 22090 22091 hooks.updateOffset(this, true); 22092 return this; 22093 } 22094 22095 function valueOf() { 22096 return this._d.valueOf() - (this._offset || 0) * 60000; 22097 } 22098 22099 function unix() { 22100 return Math.floor(this.valueOf() / 1000); 22101 } 22102 22103 function toDate() { 22104 return new Date(this.valueOf()); 22105 } 22106 22107 function toArray() { 22108 var m = this; 22109 return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; 22110 } 22111 22112 function toObject() { 22113 var m = this; 22114 return { 22115 years: m.year(), 22116 months: m.month(), 22117 date: m.date(), 22118 hours: m.hours(), 22119 minutes: m.minutes(), 22120 seconds: m.seconds(), 22121 milliseconds: m.milliseconds() 22122 }; 22123 } 22124 22125 function toJSON() { 22126 // new Date(NaN).toJSON() === null 22127 return this.isValid() ? this.toISOString() : null; 22128 } 22129 22130 function isValid$2() { 22131 return isValid(this); 22132 } 22133 22134 function parsingFlags() { 22135 return extend({}, getParsingFlags(this)); 22136 } 22137 22138 function invalidAt() { 22139 return getParsingFlags(this).overflow; 22140 } 22141 22142 function creationData() { 22143 return { 22144 input: this._i, 22145 format: this._f, 22146 locale: this._locale, 22147 isUTC: this._isUTC, 22148 strict: this._strict 22149 }; 22150 } 22151 22152 addFormatToken('N', 0, 0, 'eraAbbr'); 22153 addFormatToken('NN', 0, 0, 'eraAbbr'); 22154 addFormatToken('NNN', 0, 0, 'eraAbbr'); 22155 addFormatToken('NNNN', 0, 0, 'eraName'); 22156 addFormatToken('NNNNN', 0, 0, 'eraNarrow'); 22157 addFormatToken('y', ['y', 1], 'yo', 'eraYear'); 22158 addFormatToken('y', ['yy', 2], 0, 'eraYear'); 22159 addFormatToken('y', ['yyy', 3], 0, 'eraYear'); 22160 addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); 22161 addRegexToken('N', matchEraAbbr); 22162 addRegexToken('NN', matchEraAbbr); 22163 addRegexToken('NNN', matchEraAbbr); 22164 addRegexToken('NNNN', matchEraName); 22165 addRegexToken('NNNNN', matchEraNarrow); 22166 addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) { 22167 var era = config._locale.erasParse(input, token, config._strict); 22168 22169 if (era) { 22170 getParsingFlags(config).era = era; 22171 } else { 22172 getParsingFlags(config).invalidEra = input; 22173 } 22174 }); 22175 addRegexToken('y', matchUnsigned); 22176 addRegexToken('yy', matchUnsigned); 22177 addRegexToken('yyy', matchUnsigned); 22178 addRegexToken('yyyy', matchUnsigned); 22179 addRegexToken('yo', matchEraYearOrdinal); 22180 addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); 22181 addParseToken(['yo'], function (input, array, config, token) { 22182 var match; 22183 22184 if (config._locale._eraYearOrdinalRegex) { 22185 match = input.match(config._locale._eraYearOrdinalRegex); 22186 } 22187 22188 if (config._locale.eraYearOrdinalParse) { 22189 array[YEAR] = config._locale.eraYearOrdinalParse(input, match); 22190 } else { 22191 array[YEAR] = parseInt(input, 10); 22192 } 22193 }); 22194 22195 function localeEras(m, format) { 22196 var i, 22197 l, 22198 date, 22199 eras = this._eras || getLocale('en')._eras; 22200 22201 for (i = 0, l = eras.length; i < l; ++i) { 22202 switch (_typeof(eras[i].since)) { 22203 case 'string': 22204 // truncate time 22205 date = hooks(eras[i].since).startOf('day'); 22206 eras[i].since = date.valueOf(); 22207 break; 22208 } 22209 22210 switch (_typeof(eras[i].until)) { 22211 case 'undefined': 22212 eras[i].until = +Infinity; 22213 break; 22214 22215 case 'string': 22216 // truncate time 22217 date = hooks(eras[i].until).startOf('day').valueOf(); 22218 eras[i].until = date.valueOf(); 22219 break; 22220 } 22221 } 22222 22223 return eras; 22224 } 22225 22226 function localeErasParse(eraName, format, strict) { 22227 var i, 22228 l, 22229 eras = this.eras(), 22230 name, 22231 abbr, 22232 narrow; 22233 eraName = eraName.toUpperCase(); 22234 22235 for (i = 0, l = eras.length; i < l; ++i) { 22236 name = eras[i].name.toUpperCase(); 22237 abbr = eras[i].abbr.toUpperCase(); 22238 narrow = eras[i].narrow.toUpperCase(); 22239 22240 if (strict) { 22241 switch (format) { 22242 case 'N': 22243 case 'NN': 22244 case 'NNN': 22245 if (abbr === eraName) { 22246 return eras[i]; 22247 } 22248 22249 break; 22250 22251 case 'NNNN': 22252 if (name === eraName) { 22253 return eras[i]; 22254 } 22255 22256 break; 22257 22258 case 'NNNNN': 22259 if (narrow === eraName) { 22260 return eras[i]; 22261 } 22262 22263 break; 22264 } 22265 } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { 22266 return eras[i]; 22267 } 22268 } 22269 } 22270 22271 function localeErasConvertYear(era, year) { 22272 var dir = era.since <= era.until ? +1 : -1; 22273 22274 if (year === undefined) { 22275 return hooks(era.since).year(); 22276 } else { 22277 return hooks(era.since).year() + (year - era.offset) * dir; 22278 } 22279 } 22280 22281 function getEraName() { 22282 var i, 22283 l, 22284 val, 22285 eras = this.localeData().eras(); 22286 22287 for (i = 0, l = eras.length; i < l; ++i) { 22288 // truncate time 22289 val = this.clone().startOf('day').valueOf(); 22290 22291 if (eras[i].since <= val && val <= eras[i].until) { 22292 return eras[i].name; 22293 } 22294 22295 if (eras[i].until <= val && val <= eras[i].since) { 22296 return eras[i].name; 22297 } 22298 } 22299 22300 return ''; 22301 } 22302 22303 function getEraNarrow() { 22304 var i, 22305 l, 22306 val, 22307 eras = this.localeData().eras(); 22308 22309 for (i = 0, l = eras.length; i < l; ++i) { 22310 // truncate time 22311 val = this.clone().startOf('day').valueOf(); 22312 22313 if (eras[i].since <= val && val <= eras[i].until) { 22314 return eras[i].narrow; 22315 } 22316 22317 if (eras[i].until <= val && val <= eras[i].since) { 22318 return eras[i].narrow; 22319 } 22320 } 22321 22322 return ''; 22323 } 22324 22325 function getEraAbbr() { 22326 var i, 22327 l, 22328 val, 22329 eras = this.localeData().eras(); 22330 22331 for (i = 0, l = eras.length; i < l; ++i) { 22332 // truncate time 22333 val = this.clone().startOf('day').valueOf(); 22334 22335 if (eras[i].since <= val && val <= eras[i].until) { 22336 return eras[i].abbr; 22337 } 22338 22339 if (eras[i].until <= val && val <= eras[i].since) { 22340 return eras[i].abbr; 22341 } 22342 } 22343 22344 return ''; 22345 } 22346 22347 function getEraYear() { 22348 var i, 22349 l, 22350 dir, 22351 val, 22352 eras = this.localeData().eras(); 22353 22354 for (i = 0, l = eras.length; i < l; ++i) { 22355 dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time 22356 22357 val = this.clone().startOf('day').valueOf(); 22358 22359 if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) { 22360 return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset; 22361 } 22362 } 22363 22364 return this.year(); 22365 } 22366 22367 function erasNameRegex(isStrict) { 22368 if (!hasOwnProp(this, '_erasNameRegex')) { 22369 computeErasParse.call(this); 22370 } 22371 22372 return isStrict ? this._erasNameRegex : this._erasRegex; 22373 } 22374 22375 function erasAbbrRegex(isStrict) { 22376 if (!hasOwnProp(this, '_erasAbbrRegex')) { 22377 computeErasParse.call(this); 22378 } 22379 22380 return isStrict ? this._erasAbbrRegex : this._erasRegex; 22381 } 22382 22383 function erasNarrowRegex(isStrict) { 22384 if (!hasOwnProp(this, '_erasNarrowRegex')) { 22385 computeErasParse.call(this); 22386 } 22387 22388 return isStrict ? this._erasNarrowRegex : this._erasRegex; 22389 } 22390 22391 function matchEraAbbr(isStrict, locale) { 22392 return locale.erasAbbrRegex(isStrict); 22393 } 22394 22395 function matchEraName(isStrict, locale) { 22396 return locale.erasNameRegex(isStrict); 22397 } 22398 22399 function matchEraNarrow(isStrict, locale) { 22400 return locale.erasNarrowRegex(isStrict); 22401 } 22402 22403 function matchEraYearOrdinal(isStrict, locale) { 22404 return locale._eraYearOrdinalRegex || matchUnsigned; 22405 } 22406 22407 function computeErasParse() { 22408 var abbrPieces = [], 22409 namePieces = [], 22410 narrowPieces = [], 22411 mixedPieces = [], 22412 i, 22413 l, 22414 eras = this.eras(); 22415 22416 for (i = 0, l = eras.length; i < l; ++i) { 22417 namePieces.push(regexEscape(eras[i].name)); 22418 abbrPieces.push(regexEscape(eras[i].abbr)); 22419 narrowPieces.push(regexEscape(eras[i].narrow)); 22420 mixedPieces.push(regexEscape(eras[i].name)); 22421 mixedPieces.push(regexEscape(eras[i].abbr)); 22422 mixedPieces.push(regexEscape(eras[i].narrow)); 22423 } 22424 22425 this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 22426 this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); 22427 this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); 22428 this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i'); 22429 } // FORMATTING 22430 22431 22432 addFormatToken(0, ['gg', 2], 0, function () { 22433 return this.weekYear() % 100; 22434 }); 22435 addFormatToken(0, ['GG', 2], 0, function () { 22436 return this.isoWeekYear() % 100; 22437 }); 22438 22439 function addWeekYearFormatToken(token, getter) { 22440 addFormatToken(0, [token, token.length], 0, getter); 22441 } 22442 22443 addWeekYearFormatToken('gggg', 'weekYear'); 22444 addWeekYearFormatToken('ggggg', 'weekYear'); 22445 addWeekYearFormatToken('GGGG', 'isoWeekYear'); 22446 addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES 22447 22448 addUnitAlias('weekYear', 'gg'); 22449 addUnitAlias('isoWeekYear', 'GG'); // PRIORITY 22450 22451 addUnitPriority('weekYear', 1); 22452 addUnitPriority('isoWeekYear', 1); // PARSING 22453 22454 addRegexToken('G', matchSigned); 22455 addRegexToken('g', matchSigned); 22456 addRegexToken('GG', match1to2, match2); 22457 addRegexToken('gg', match1to2, match2); 22458 addRegexToken('GGGG', match1to4, match4); 22459 addRegexToken('gggg', match1to4, match4); 22460 addRegexToken('GGGGG', match1to6, match6); 22461 addRegexToken('ggggg', match1to6, match6); 22462 addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { 22463 week[token.substr(0, 2)] = toInt(input); 22464 }); 22465 addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { 22466 week[token] = hooks.parseTwoDigitYear(input); 22467 }); // MOMENTS 22468 22469 function getSetWeekYear(input) { 22470 return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy); 22471 } 22472 22473 function getSetISOWeekYear(input) { 22474 return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4); 22475 } 22476 22477 function getISOWeeksInYear() { 22478 return weeksInYear(this.year(), 1, 4); 22479 } 22480 22481 function getISOWeeksInISOWeekYear() { 22482 return weeksInYear(this.isoWeekYear(), 1, 4); 22483 } 22484 22485 function getWeeksInYear() { 22486 var weekInfo = this.localeData()._week; 22487 22488 return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); 22489 } 22490 22491 function getWeeksInWeekYear() { 22492 var weekInfo = this.localeData()._week; 22493 22494 return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); 22495 } 22496 22497 function getSetWeekYearHelper(input, week, weekday, dow, doy) { 22498 var weeksTarget; 22499 22500 if (input == null) { 22501 return weekOfYear(this, dow, doy).year; 22502 } else { 22503 weeksTarget = weeksInYear(input, dow, doy); 22504 22505 if (week > weeksTarget) { 22506 week = weeksTarget; 22507 } 22508 22509 return setWeekAll.call(this, input, week, weekday, dow, doy); 22510 } 22511 } 22512 22513 function setWeekAll(weekYear, week, weekday, dow, doy) { 22514 var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), 22515 date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); 22516 this.year(date.getUTCFullYear()); 22517 this.month(date.getUTCMonth()); 22518 this.date(date.getUTCDate()); 22519 return this; 22520 } // FORMATTING 22521 22522 22523 addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES 22524 22525 addUnitAlias('quarter', 'Q'); // PRIORITY 22526 22527 addUnitPriority('quarter', 7); // PARSING 22528 22529 addRegexToken('Q', match1); 22530 addParseToken('Q', function (input, array) { 22531 array[MONTH] = (toInt(input) - 1) * 3; 22532 }); // MOMENTS 22533 22534 function getSetQuarter(input) { 22535 return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); 22536 } // FORMATTING 22537 22538 22539 addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES 22540 22541 addUnitAlias('date', 'D'); // PRIORITY 22542 22543 addUnitPriority('date', 9); // PARSING 22544 22545 addRegexToken('D', match1to2); 22546 addRegexToken('DD', match1to2, match2); 22547 addRegexToken('Do', function (isStrict, locale) { 22548 // TODO: Remove "ordinalParse" fallback in next major release. 22549 return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient; 22550 }); 22551 addParseToken(['D', 'DD'], DATE); 22552 addParseToken('Do', function (input, array) { 22553 array[DATE] = toInt(input.match(match1to2)[0]); 22554 }); // MOMENTS 22555 22556 var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING 22557 22558 addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES 22559 22560 addUnitAlias('dayOfYear', 'DDD'); // PRIORITY 22561 22562 addUnitPriority('dayOfYear', 4); // PARSING 22563 22564 addRegexToken('DDD', match1to3); 22565 addRegexToken('DDDD', match3); 22566 addParseToken(['DDD', 'DDDD'], function (input, array, config) { 22567 config._dayOfYear = toInt(input); 22568 }); // HELPERS 22569 // MOMENTS 22570 22571 function getSetDayOfYear(input) { 22572 var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; 22573 return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); 22574 } // FORMATTING 22575 22576 22577 addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES 22578 22579 addUnitAlias('minute', 'm'); // PRIORITY 22580 22581 addUnitPriority('minute', 14); // PARSING 22582 22583 addRegexToken('m', match1to2); 22584 addRegexToken('mm', match1to2, match2); 22585 addParseToken(['m', 'mm'], MINUTE); // MOMENTS 22586 22587 var getSetMinute = makeGetSet('Minutes', false); // FORMATTING 22588 22589 addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES 22590 22591 addUnitAlias('second', 's'); // PRIORITY 22592 22593 addUnitPriority('second', 15); // PARSING 22594 22595 addRegexToken('s', match1to2); 22596 addRegexToken('ss', match1to2, match2); 22597 addParseToken(['s', 'ss'], SECOND); // MOMENTS 22598 22599 var getSetSecond = makeGetSet('Seconds', false); // FORMATTING 22600 22601 addFormatToken('S', 0, 0, function () { 22602 return ~~(this.millisecond() / 100); 22603 }); 22604 addFormatToken(0, ['SS', 2], 0, function () { 22605 return ~~(this.millisecond() / 10); 22606 }); 22607 addFormatToken(0, ['SSS', 3], 0, 'millisecond'); 22608 addFormatToken(0, ['SSSS', 4], 0, function () { 22609 return this.millisecond() * 10; 22610 }); 22611 addFormatToken(0, ['SSSSS', 5], 0, function () { 22612 return this.millisecond() * 100; 22613 }); 22614 addFormatToken(0, ['SSSSSS', 6], 0, function () { 22615 return this.millisecond() * 1000; 22616 }); 22617 addFormatToken(0, ['SSSSSSS', 7], 0, function () { 22618 return this.millisecond() * 10000; 22619 }); 22620 addFormatToken(0, ['SSSSSSSS', 8], 0, function () { 22621 return this.millisecond() * 100000; 22622 }); 22623 addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { 22624 return this.millisecond() * 1000000; 22625 }); // ALIASES 22626 22627 addUnitAlias('millisecond', 'ms'); // PRIORITY 22628 22629 addUnitPriority('millisecond', 16); // PARSING 22630 22631 addRegexToken('S', match1to3, match1); 22632 addRegexToken('SS', match1to3, match2); 22633 addRegexToken('SSS', match1to3, match3); 22634 var token, getSetMillisecond; 22635 22636 for (token = 'SSSS'; token.length <= 9; token += 'S') { 22637 addRegexToken(token, matchUnsigned); 22638 } 22639 22640 function parseMs(input, array) { 22641 array[MILLISECOND] = toInt(('0.' + input) * 1000); 22642 } 22643 22644 for (token = 'S'; token.length <= 9; token += 'S') { 22645 addParseToken(token, parseMs); 22646 } 22647 22648 getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING 22649 22650 addFormatToken('z', 0, 0, 'zoneAbbr'); 22651 addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS 22652 22653 function getZoneAbbr() { 22654 return this._isUTC ? 'UTC' : ''; 22655 } 22656 22657 function getZoneName() { 22658 return this._isUTC ? 'Coordinated Universal Time' : ''; 22659 } 22660 22661 var proto = Moment.prototype; 22662 proto.add = add; 22663 proto.calendar = calendar$1; 22664 proto.clone = clone; 22665 proto.diff = diff; 22666 proto.endOf = endOf; 22667 proto.format = format; 22668 proto.from = from; 22669 proto.fromNow = fromNow; 22670 proto.to = to; 22671 proto.toNow = toNow; 22672 proto.get = stringGet; 22673 proto.invalidAt = invalidAt; 22674 proto.isAfter = isAfter; 22675 proto.isBefore = isBefore; 22676 proto.isBetween = isBetween; 22677 proto.isSame = isSame; 22678 proto.isSameOrAfter = isSameOrAfter; 22679 proto.isSameOrBefore = isSameOrBefore; 22680 proto.isValid = isValid$2; 22681 proto.lang = lang; 22682 proto.locale = locale; 22683 proto.localeData = localeData; 22684 proto.max = prototypeMax; 22685 proto.min = prototypeMin; 22686 proto.parsingFlags = parsingFlags; 22687 proto.set = stringSet; 22688 proto.startOf = startOf; 22689 proto.subtract = subtract; 22690 proto.toArray = toArray; 22691 proto.toObject = toObject; 22692 proto.toDate = toDate; 22693 proto.toISOString = toISOString; 22694 proto.inspect = inspect; 22695 22696 if (typeof Symbol !== 'undefined' && Symbol["for"] != null) { 22697 proto[Symbol["for"]('nodejs.util.inspect.custom')] = function () { 22698 return 'Moment<' + this.format() + '>'; 22699 }; 22700 } 22701 22702 proto.toJSON = toJSON; 22703 proto.toString = toString; 22704 proto.unix = unix; 22705 proto.valueOf = valueOf; 22706 proto.creationData = creationData; 22707 proto.eraName = getEraName; 22708 proto.eraNarrow = getEraNarrow; 22709 proto.eraAbbr = getEraAbbr; 22710 proto.eraYear = getEraYear; 22711 proto.year = getSetYear; 22712 proto.isLeapYear = getIsLeapYear; 22713 proto.weekYear = getSetWeekYear; 22714 proto.isoWeekYear = getSetISOWeekYear; 22715 proto.quarter = proto.quarters = getSetQuarter; 22716 proto.month = getSetMonth; 22717 proto.daysInMonth = getDaysInMonth; 22718 proto.week = proto.weeks = getSetWeek; 22719 proto.isoWeek = proto.isoWeeks = getSetISOWeek; 22720 proto.weeksInYear = getWeeksInYear; 22721 proto.weeksInWeekYear = getWeeksInWeekYear; 22722 proto.isoWeeksInYear = getISOWeeksInYear; 22723 proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; 22724 proto.date = getSetDayOfMonth; 22725 proto.day = proto.days = getSetDayOfWeek; 22726 proto.weekday = getSetLocaleDayOfWeek; 22727 proto.isoWeekday = getSetISODayOfWeek; 22728 proto.dayOfYear = getSetDayOfYear; 22729 proto.hour = proto.hours = getSetHour; 22730 proto.minute = proto.minutes = getSetMinute; 22731 proto.second = proto.seconds = getSetSecond; 22732 proto.millisecond = proto.milliseconds = getSetMillisecond; 22733 proto.utcOffset = getSetOffset; 22734 proto.utc = setOffsetToUTC; 22735 proto.local = setOffsetToLocal; 22736 proto.parseZone = setOffsetToParsedOffset; 22737 proto.hasAlignedHourOffset = hasAlignedHourOffset; 22738 proto.isDST = isDaylightSavingTime; 22739 proto.isLocal = isLocal; 22740 proto.isUtcOffset = isUtcOffset; 22741 proto.isUtc = isUtc; 22742 proto.isUTC = isUtc; 22743 proto.zoneAbbr = getZoneAbbr; 22744 proto.zoneName = getZoneName; 22745 proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); 22746 proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); 22747 proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); 22748 proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); 22749 proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); 22750 22751 function createUnix(input) { 22752 return createLocal(input * 1000); 22753 } 22754 22755 function createInZone() { 22756 return createLocal.apply(null, arguments).parseZone(); 22757 } 22758 22759 function preParsePostFormat(string) { 22760 return string; 22761 } 22762 22763 var proto$1 = Locale.prototype; 22764 proto$1.calendar = calendar; 22765 proto$1.longDateFormat = longDateFormat; 22766 proto$1.invalidDate = invalidDate; 22767 proto$1.ordinal = ordinal; 22768 proto$1.preparse = preParsePostFormat; 22769 proto$1.postformat = preParsePostFormat; 22770 proto$1.relativeTime = relativeTime; 22771 proto$1.pastFuture = pastFuture; 22772 proto$1.set = set; 22773 proto$1.eras = localeEras; 22774 proto$1.erasParse = localeErasParse; 22775 proto$1.erasConvertYear = localeErasConvertYear; 22776 proto$1.erasAbbrRegex = erasAbbrRegex; 22777 proto$1.erasNameRegex = erasNameRegex; 22778 proto$1.erasNarrowRegex = erasNarrowRegex; 22779 proto$1.months = localeMonths; 22780 proto$1.monthsShort = localeMonthsShort; 22781 proto$1.monthsParse = localeMonthsParse; 22782 proto$1.monthsRegex = monthsRegex; 22783 proto$1.monthsShortRegex = monthsShortRegex; 22784 proto$1.week = localeWeek; 22785 proto$1.firstDayOfYear = localeFirstDayOfYear; 22786 proto$1.firstDayOfWeek = localeFirstDayOfWeek; 22787 proto$1.weekdays = localeWeekdays; 22788 proto$1.weekdaysMin = localeWeekdaysMin; 22789 proto$1.weekdaysShort = localeWeekdaysShort; 22790 proto$1.weekdaysParse = localeWeekdaysParse; 22791 proto$1.weekdaysRegex = weekdaysRegex; 22792 proto$1.weekdaysShortRegex = weekdaysShortRegex; 22793 proto$1.weekdaysMinRegex = weekdaysMinRegex; 22794 proto$1.isPM = localeIsPM; 22795 proto$1.meridiem = localeMeridiem; 22796 22797 function get$1(format, index, field, setter) { 22798 var locale = getLocale(), 22799 utc = createUTC().set(setter, index); 22800 return locale[field](utc, format); 22801 } 22802 22803 function listMonthsImpl(format, index, field) { 22804 if (isNumber(format)) { 22805 index = format; 22806 format = undefined; 22807 } 22808 22809 format = format || ''; 22810 22811 if (index != null) { 22812 return get$1(format, index, field, 'month'); 22813 } 22814 22815 var i, 22816 out = []; 22817 22818 for (i = 0; i < 12; i++) { 22819 out[i] = get$1(format, i, field, 'month'); 22820 } 22821 22822 return out; 22823 } // () 22824 // (5) 22825 // (fmt, 5) 22826 // (fmt) 22827 // (true) 22828 // (true, 5) 22829 // (true, fmt, 5) 22830 // (true, fmt) 22831 22832 22833 function listWeekdaysImpl(localeSorted, format, index, field) { 22834 if (typeof localeSorted === 'boolean') { 22835 if (isNumber(format)) { 22836 index = format; 22837 format = undefined; 22838 } 22839 22840 format = format || ''; 22841 } else { 22842 format = localeSorted; 22843 index = format; 22844 localeSorted = false; 22845 22846 if (isNumber(format)) { 22847 index = format; 22848 format = undefined; 22849 } 22850 22851 format = format || ''; 22852 } 22853 22854 var locale = getLocale(), 22855 shift = localeSorted ? locale._week.dow : 0, 22856 i, 22857 out = []; 22858 22859 if (index != null) { 22860 return get$1(format, (index + shift) % 7, field, 'day'); 22861 } 22862 22863 for (i = 0; i < 7; i++) { 22864 out[i] = get$1(format, (i + shift) % 7, field, 'day'); 22865 } 22866 22867 return out; 22868 } 22869 22870 function listMonths(format, index) { 22871 return listMonthsImpl(format, index, 'months'); 22872 } 22873 22874 function listMonthsShort(format, index) { 22875 return listMonthsImpl(format, index, 'monthsShort'); 22876 } 22877 22878 function listWeekdays(localeSorted, format, index) { 22879 return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); 22880 } 22881 22882 function listWeekdaysShort(localeSorted, format, index) { 22883 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); 22884 } 22885 22886 function listWeekdaysMin(localeSorted, format, index) { 22887 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); 22888 } 22889 22890 getSetGlobalLocale('en', { 22891 eras: [{ 22892 since: '0001-01-01', 22893 until: +Infinity, 22894 offset: 1, 22895 name: 'Anno Domini', 22896 narrow: 'AD', 22897 abbr: 'AD' 22898 }, { 22899 since: '0000-12-31', 22900 until: -Infinity, 22901 offset: 1, 22902 name: 'Before Christ', 22903 narrow: 'BC', 22904 abbr: 'BC' 22905 }], 22906 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, 22907 ordinal: function ordinal(number) { 22908 var b = number % 10, 22909 output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; 22910 return number + output; 22911 } 22912 }); // Side effect imports 22913 22914 hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); 22915 hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); 22916 var mathAbs = Math.abs; 22917 22918 function abs() { 22919 var data = this._data; 22920 this._milliseconds = mathAbs(this._milliseconds); 22921 this._days = mathAbs(this._days); 22922 this._months = mathAbs(this._months); 22923 data.milliseconds = mathAbs(data.milliseconds); 22924 data.seconds = mathAbs(data.seconds); 22925 data.minutes = mathAbs(data.minutes); 22926 data.hours = mathAbs(data.hours); 22927 data.months = mathAbs(data.months); 22928 data.years = mathAbs(data.years); 22929 return this; 22930 } 22931 22932 function addSubtract$1(duration, input, value, direction) { 22933 var other = createDuration(input, value); 22934 duration._milliseconds += direction * other._milliseconds; 22935 duration._days += direction * other._days; 22936 duration._months += direction * other._months; 22937 return duration._bubble(); 22938 } // supports only 2.0-style add(1, 's') or add(duration) 22939 22940 22941 function add$1(input, value) { 22942 return addSubtract$1(this, input, value, 1); 22943 } // supports only 2.0-style subtract(1, 's') or subtract(duration) 22944 22945 22946 function subtract$1(input, value) { 22947 return addSubtract$1(this, input, value, -1); 22948 } 22949 22950 function absCeil(number) { 22951 if (number < 0) { 22952 return Math.floor(number); 22953 } else { 22954 return Math.ceil(number); 22955 } 22956 } 22957 22958 function bubble() { 22959 var milliseconds = this._milliseconds, 22960 days = this._days, 22961 months = this._months, 22962 data = this._data, 22963 seconds, 22964 minutes, 22965 hours, 22966 years, 22967 monthsFromDays; // if we have a mix of positive and negative values, bubble down first 22968 // check: https://github.com/moment/moment/issues/2166 22969 22970 if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) { 22971 milliseconds += absCeil(monthsToDays(months) + days) * 864e5; 22972 days = 0; 22973 months = 0; 22974 } // The following code bubbles up values, see the tests for 22975 // examples of what that means. 22976 22977 22978 data.milliseconds = milliseconds % 1000; 22979 seconds = absFloor(milliseconds / 1000); 22980 data.seconds = seconds % 60; 22981 minutes = absFloor(seconds / 60); 22982 data.minutes = minutes % 60; 22983 hours = absFloor(minutes / 60); 22984 data.hours = hours % 24; 22985 days += absFloor(hours / 24); // convert days to months 22986 22987 monthsFromDays = absFloor(daysToMonths(days)); 22988 months += monthsFromDays; 22989 days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year 22990 22991 years = absFloor(months / 12); 22992 months %= 12; 22993 data.days = days; 22994 data.months = months; 22995 data.years = years; 22996 return this; 22997 } 22998 22999 function daysToMonths(days) { 23000 // 400 years have 146097 days (taking into account leap year rules) 23001 // 400 years have 12 months === 4800 23002 return days * 4800 / 146097; 23003 } 23004 23005 function monthsToDays(months) { 23006 // the reverse of daysToMonths 23007 return months * 146097 / 4800; 23008 } 23009 23010 function as(units) { 23011 if (!this.isValid()) { 23012 return NaN; 23013 } 23014 23015 var days, 23016 months, 23017 milliseconds = this._milliseconds; 23018 units = normalizeUnits(units); 23019 23020 if (units === 'month' || units === 'quarter' || units === 'year') { 23021 days = this._days + milliseconds / 864e5; 23022 months = this._months + daysToMonths(days); 23023 23024 switch (units) { 23025 case 'month': 23026 return months; 23027 23028 case 'quarter': 23029 return months / 3; 23030 23031 case 'year': 23032 return months / 12; 23033 } 23034 } else { 23035 // handle milliseconds separately because of floating point math errors (issue #1867) 23036 days = this._days + Math.round(monthsToDays(this._months)); 23037 23038 switch (units) { 23039 case 'week': 23040 return days / 7 + milliseconds / 6048e5; 23041 23042 case 'day': 23043 return days + milliseconds / 864e5; 23044 23045 case 'hour': 23046 return days * 24 + milliseconds / 36e5; 23047 23048 case 'minute': 23049 return days * 1440 + milliseconds / 6e4; 23050 23051 case 'second': 23052 return days * 86400 + milliseconds / 1000; 23053 // Math.floor prevents floating point math errors here 23054 23055 case 'millisecond': 23056 return Math.floor(days * 864e5) + milliseconds; 23057 23058 default: 23059 throw new Error('Unknown unit ' + units); 23060 } 23061 } 23062 } // TODO: Use this.as('ms')? 23063 23064 23065 function valueOf$1() { 23066 if (!this.isValid()) { 23067 return NaN; 23068 } 23069 23070 return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6; 23071 } 23072 23073 function makeAs(alias) { 23074 return function () { 23075 return this.as(alias); 23076 }; 23077 } 23078 23079 var asMilliseconds = makeAs('ms'), 23080 asSeconds = makeAs('s'), 23081 asMinutes = makeAs('m'), 23082 asHours = makeAs('h'), 23083 asDays = makeAs('d'), 23084 asWeeks = makeAs('w'), 23085 asMonths = makeAs('M'), 23086 asQuarters = makeAs('Q'), 23087 asYears = makeAs('y'); 23088 23089 function clone$1() { 23090 return createDuration(this); 23091 } 23092 23093 function get$2(units) { 23094 units = normalizeUnits(units); 23095 return this.isValid() ? this[units + 's']() : NaN; 23096 } 23097 23098 function makeGetter(name) { 23099 return function () { 23100 return this.isValid() ? this._data[name] : NaN; 23101 }; 23102 } 23103 23104 var milliseconds = makeGetter('milliseconds'), 23105 seconds = makeGetter('seconds'), 23106 minutes = makeGetter('minutes'), 23107 hours = makeGetter('hours'), 23108 days = makeGetter('days'), 23109 months = makeGetter('months'), 23110 years = makeGetter('years'); 23111 23112 function weeks() { 23113 return absFloor(this.days() / 7); 23114 } 23115 23116 var round = Math.round, 23117 thresholds = { 23118 ss: 44, 23119 // a few seconds to seconds 23120 s: 45, 23121 // seconds to minute 23122 m: 45, 23123 // minutes to hour 23124 h: 22, 23125 // hours to day 23126 d: 26, 23127 // days to month/week 23128 w: null, 23129 // weeks to month 23130 M: 11 // months to year 23131 23132 }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize 23133 23134 function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { 23135 return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); 23136 } 23137 23138 function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { 23139 var duration = createDuration(posNegDuration).abs(), 23140 seconds = round(duration.as('s')), 23141 minutes = round(duration.as('m')), 23142 hours = round(duration.as('h')), 23143 days = round(duration.as('d')), 23144 months = round(duration.as('M')), 23145 weeks = round(duration.as('w')), 23146 years = round(duration.as('y')), 23147 a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days]; 23148 23149 if (thresholds.w != null) { 23150 a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks]; 23151 } 23152 23153 a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years]; 23154 a[2] = withoutSuffix; 23155 a[3] = +posNegDuration > 0; 23156 a[4] = locale; 23157 return substituteTimeAgo.apply(null, a); 23158 } // This function allows you to set the rounding function for relative time strings 23159 23160 23161 function getSetRelativeTimeRounding(roundingFunction) { 23162 if (roundingFunction === undefined) { 23163 return round; 23164 } 23165 23166 if (typeof roundingFunction === 'function') { 23167 round = roundingFunction; 23168 return true; 23169 } 23170 23171 return false; 23172 } // This function allows you to set a threshold for relative time strings 23173 23174 23175 function getSetRelativeTimeThreshold(threshold, limit) { 23176 if (thresholds[threshold] === undefined) { 23177 return false; 23178 } 23179 23180 if (limit === undefined) { 23181 return thresholds[threshold]; 23182 } 23183 23184 thresholds[threshold] = limit; 23185 23186 if (threshold === 's') { 23187 thresholds.ss = limit - 1; 23188 } 23189 23190 return true; 23191 } 23192 23193 function humanize(argWithSuffix, argThresholds) { 23194 if (!this.isValid()) { 23195 return this.localeData().invalidDate(); 23196 } 23197 23198 var withSuffix = false, 23199 th = thresholds, 23200 locale, 23201 output; 23202 23203 if (_typeof(argWithSuffix) === 'object') { 23204 argThresholds = argWithSuffix; 23205 argWithSuffix = false; 23206 } 23207 23208 if (typeof argWithSuffix === 'boolean') { 23209 withSuffix = argWithSuffix; 23210 } 23211 23212 if (_typeof(argThresholds) === 'object') { 23213 th = Object.assign({}, thresholds, argThresholds); 23214 23215 if (argThresholds.s != null && argThresholds.ss == null) { 23216 th.ss = argThresholds.s - 1; 23217 } 23218 } 23219 23220 locale = this.localeData(); 23221 output = relativeTime$1(this, !withSuffix, th, locale); 23222 23223 if (withSuffix) { 23224 output = locale.pastFuture(+this, output); 23225 } 23226 23227 return locale.postformat(output); 23228 } 23229 23230 var abs$1 = Math.abs; 23231 23232 function sign(x) { 23233 return (x > 0) - (x < 0) || +x; 23234 } 23235 23236 function toISOString$1() { 23237 // for ISO strings we do not use the normal bubbling rules: 23238 // * milliseconds bubble up until they become hours 23239 // * days do not bubble at all 23240 // * months bubble up until they become years 23241 // This is because there is no context-free conversion between hours and days 23242 // (think of clock changes) 23243 // and also not between days and months (28-31 days per month) 23244 if (!this.isValid()) { 23245 return this.localeData().invalidDate(); 23246 } 23247 23248 var seconds = abs$1(this._milliseconds) / 1000, 23249 days = abs$1(this._days), 23250 months = abs$1(this._months), 23251 minutes, 23252 hours, 23253 years, 23254 s, 23255 total = this.asSeconds(), 23256 totalSign, 23257 ymSign, 23258 daysSign, 23259 hmsSign; 23260 23261 if (!total) { 23262 // this is the same as C#'s (Noda) and python (isodate)... 23263 // but not other JS (goog.date) 23264 return 'P0D'; 23265 } // 3600 seconds -> 60 minutes -> 1 hour 23266 23267 23268 minutes = absFloor(seconds / 60); 23269 hours = absFloor(minutes / 60); 23270 seconds %= 60; 23271 minutes %= 60; // 12 months -> 1 year 23272 23273 years = absFloor(months / 12); 23274 months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js 23275 23276 s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; 23277 totalSign = total < 0 ? '-' : ''; 23278 ymSign = sign(this._months) !== sign(total) ? '-' : ''; 23279 daysSign = sign(this._days) !== sign(total) ? '-' : ''; 23280 hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; 23281 return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : ''); 23282 } 23283 23284 var proto$2 = Duration.prototype; 23285 proto$2.isValid = isValid$1; 23286 proto$2.abs = abs; 23287 proto$2.add = add$1; 23288 proto$2.subtract = subtract$1; 23289 proto$2.as = as; 23290 proto$2.asMilliseconds = asMilliseconds; 23291 proto$2.asSeconds = asSeconds; 23292 proto$2.asMinutes = asMinutes; 23293 proto$2.asHours = asHours; 23294 proto$2.asDays = asDays; 23295 proto$2.asWeeks = asWeeks; 23296 proto$2.asMonths = asMonths; 23297 proto$2.asQuarters = asQuarters; 23298 proto$2.asYears = asYears; 23299 proto$2.valueOf = valueOf$1; 23300 proto$2._bubble = bubble; 23301 proto$2.clone = clone$1; 23302 proto$2.get = get$2; 23303 proto$2.milliseconds = milliseconds; 23304 proto$2.seconds = seconds; 23305 proto$2.minutes = minutes; 23306 proto$2.hours = hours; 23307 proto$2.days = days; 23308 proto$2.weeks = weeks; 23309 proto$2.months = months; 23310 proto$2.years = years; 23311 proto$2.humanize = humanize; 23312 proto$2.toISOString = toISOString$1; 23313 proto$2.toString = toISOString$1; 23314 proto$2.toJSON = toISOString$1; 23315 proto$2.locale = locale; 23316 proto$2.localeData = localeData; 23317 proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); 23318 proto$2.lang = lang; // FORMATTING 23319 23320 addFormatToken('X', 0, 0, 'unix'); 23321 addFormatToken('x', 0, 0, 'valueOf'); // PARSING 23322 23323 addRegexToken('x', matchSigned); 23324 addRegexToken('X', matchTimestamp); 23325 addParseToken('X', function (input, array, config) { 23326 config._d = new Date(parseFloat(input) * 1000); 23327 }); 23328 addParseToken('x', function (input, array, config) { 23329 config._d = new Date(toInt(input)); 23330 }); //! moment.js 23331 23332 hooks.version = '2.29.4'; 23333 setHookCallback(createLocal); 23334 hooks.fn = proto; 23335 hooks.min = min; 23336 hooks.max = max; 23337 hooks.now = now; 23338 hooks.utc = createUTC; 23339 hooks.unix = createUnix; 23340 hooks.months = listMonths; 23341 hooks.isDate = isDate; 23342 hooks.locale = getSetGlobalLocale; 23343 hooks.invalid = createInvalid; 23344 hooks.duration = createDuration; 23345 hooks.isMoment = isMoment; 23346 hooks.weekdays = listWeekdays; 23347 hooks.parseZone = createInZone; 23348 hooks.localeData = getLocale; 23349 hooks.isDuration = isDuration; 23350 hooks.monthsShort = listMonthsShort; 23351 hooks.weekdaysMin = listWeekdaysMin; 23352 hooks.defineLocale = defineLocale; 23353 hooks.updateLocale = updateLocale; 23354 hooks.locales = listLocales; 23355 hooks.weekdaysShort = listWeekdaysShort; 23356 hooks.normalizeUnits = normalizeUnits; 23357 hooks.relativeTimeRounding = getSetRelativeTimeRounding; 23358 hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; 23359 hooks.calendarFormat = getCalendarFormat; 23360 hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats 23361 23362 hooks.HTML5_FMT = { 23363 DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', 23364 // <input type="datetime-local" /> 23365 DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', 23366 // <input type="datetime-local" step="1" /> 23367 DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', 23368 // <input type="datetime-local" step="0.001" /> 23369 DATE: 'YYYY-MM-DD', 23370 // <input type="date" /> 23371 TIME: 'HH:mm', 23372 // <input type="time" /> 23373 TIME_SECONDS: 'HH:mm:ss', 23374 // <input type="time" step="1" /> 23375 TIME_MS: 'HH:mm:ss.SSS', 23376 // <input type="time" step="0.001" /> 23377 WEEK: 'GGGG-[W]WW', 23378 // <input type="week" /> 23379 MONTH: 'YYYY-MM' // <input type="month" /> 23380 23381 }; 23382 return hooks; 23383}); 23384/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../sfra-webpack-builder/node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module))) 23385 23386/***/ }), 23387
vendor: 25,745 bytes, lines 23388-24123
23388/***/ "../autobahn_client_core/node_modules/regenerator-runtime/runtime.js": 23389/*!***************************************************************************!*\ 23390 !*** ../autobahn_client_core/node_modules/regenerator-runtime/runtime.js ***! 23391 \***************************************************************************/ 23392/*! no static exports found */ 23393/***/ (function(module, exports, __webpack_require__) { 23394 23395/* WEBPACK VAR INJECTION */(function(module) {function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 23396 23397/** 23398 * Copyright (c) 2014-present, Facebook, Inc. 23399 * 23400 * This source code is licensed under the MIT license found in the 23401 * LICENSE file in the root directory of this source tree. 23402 */ 23403var runtime = function (exports) { 23404 "use strict"; 23405 23406 var Op = Object.prototype; 23407 var hasOwn = Op.hasOwnProperty; 23408 var undefined; // More compressible than void 0. 23409 23410 var $Symbol = typeof Symbol === "function" ? Symbol : {}; 23411 var iteratorSymbol = $Symbol.iterator || "@@iterator"; 23412 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; 23413 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; 23414 23415 function define(obj, key, value) { 23416 Object.defineProperty(obj, key, { 23417 value: value, 23418 enumerable: true, 23419 configurable: true, 23420 writable: true 23421 }); 23422 return obj[key]; 23423 } 23424 23425 try { 23426 // IE 8 has a broken Object.defineProperty that only works on DOM objects. 23427 define({}, ""); 23428 } catch (err) { 23429 define = function define(obj, key, value) { 23430 return obj[key] = value; 23431 }; 23432 } 23433 23434 function wrap(innerFn, outerFn, self, tryLocsList) { 23435 // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. 23436 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; 23437 var generator = Object.create(protoGenerator.prototype); 23438 var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next, 23439 // .throw, and .return methods. 23440 23441 generator._invoke = makeInvokeMethod(innerFn, self, context); 23442 return generator; 23443 } 23444 23445 exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion 23446 // record like context.tryEntries[i].completion. This interface could 23447 // have been (and was previously) designed to take a closure to be 23448 // invoked without arguments, but in all the cases we care about we 23449 // already have an existing method we want to call, so there's no need 23450 // to create a new function object. We can even get away with assuming 23451 // the method takes exactly one argument, since that happens to be true 23452 // in every case, so we don't have to touch the arguments object. The 23453 // only additional allocation required is the completion record, which 23454 // has a stable shape and so hopefully should be cheap to allocate. 23455 23456 function tryCatch(fn, obj, arg) { 23457 try { 23458 return { 23459 type: "normal", 23460 arg: fn.call(obj, arg) 23461 }; 23462 } catch (err) { 23463 return { 23464 type: "throw", 23465 arg: err 23466 }; 23467 } 23468 } 23469 23470 var GenStateSuspendedStart = "suspendedStart"; 23471 var GenStateSuspendedYield = "suspendedYield"; 23472 var GenStateExecuting = "executing"; 23473 var GenStateCompleted = "completed"; // Returning this object from the innerFn has the same effect as 23474 // breaking out of the dispatch switch statement. 23475 23476 var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and 23477 // .constructor.prototype properties for functions that return Generator 23478 // objects. For full spec compliance, you may wish to configure your 23479 // minifier not to mangle the names of these two functions. 23480 23481 function Generator() {} 23482 23483 function GeneratorFunction() {} 23484 23485 function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that 23486 // don't natively support it. 23487 23488 23489 var IteratorPrototype = {}; 23490 define(IteratorPrototype, iteratorSymbol, function () { 23491 return this; 23492 }); 23493 var getProto = Object.getPrototypeOf; 23494 var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); 23495 23496 if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { 23497 // This environment has a native %IteratorPrototype%; use it instead 23498 // of the polyfill. 23499 IteratorPrototype = NativeIteratorPrototype; 23500 } 23501 23502 var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); 23503 GeneratorFunction.prototype = GeneratorFunctionPrototype; 23504 define(Gp, "constructor", GeneratorFunctionPrototype); 23505 define(GeneratorFunctionPrototype, "constructor", GeneratorFunction); 23506 GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"); // Helper for defining the .next, .throw, and .return methods of the 23507 // Iterator interface in terms of a single ._invoke method. 23508 23509 function defineIteratorMethods(prototype) { 23510 ["next", "throw", "return"].forEach(function (method) { 23511 define(prototype, method, function (arg) { 23512 return this._invoke(method, arg); 23513 }); 23514 }); 23515 } 23516 23517 exports.isGeneratorFunction = function (genFun) { 23518 var ctor = typeof genFun === "function" && genFun.constructor; 23519 return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can 23520 // do is to check its .name property. 23521 (ctor.displayName || ctor.name) === "GeneratorFunction" : false; 23522 }; 23523 23524 exports.mark = function (genFun) { 23525 if (Object.setPrototypeOf) { 23526 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); 23527 } else { 23528 genFun.__proto__ = GeneratorFunctionPrototype; 23529 define(genFun, toStringTagSymbol, "GeneratorFunction"); 23530 } 23531 23532 genFun.prototype = Object.create(Gp); 23533 return genFun; 23534 }; // Within the body of any async function, `await x` is transformed to 23535 // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test 23536 // `hasOwn.call(value, "__await")` to determine if the yielded value is 23537 // meant to be awaited. 23538 23539 23540 exports.awrap = function (arg) { 23541 return { 23542 __await: arg 23543 }; 23544 }; 23545 23546 function AsyncIterator(generator, PromiseImpl) { 23547 function invoke(method, arg, resolve, reject) { 23548 var record = tryCatch(generator[method], generator, arg); 23549 23550 if (record.type === "throw") { 23551 reject(record.arg); 23552 } else { 23553 var result = record.arg; 23554 var value = result.value; 23555 23556 if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { 23557 return PromiseImpl.resolve(value.__await).then(function (value) { 23558 invoke("next", value, resolve, reject); 23559 }, function (err) { 23560 invoke("throw", err, resolve, reject); 23561 }); 23562 } 23563 23564 return PromiseImpl.resolve(value).then(function (unwrapped) { 23565 // When a yielded Promise is resolved, its final value becomes 23566 // the .value of the Promise<{value,done}> result for the 23567 // current iteration. 23568 result.value = unwrapped; 23569 resolve(result); 23570 }, function (error) { 23571 // If a rejected Promise was yielded, throw the rejection back 23572 // into the async generator function so it can be handled there. 23573 return invoke("throw", error, resolve, reject); 23574 }); 23575 } 23576 } 23577 23578 var previousPromise; 23579 23580 function enqueue(method, arg) { 23581 function callInvokeWithMethodAndArg() { 23582 return new PromiseImpl(function (resolve, reject) { 23583 invoke(method, arg, resolve, reject); 23584 }); 23585 } 23586 23587 return previousPromise = // If enqueue has been called before, then we want to wait until 23588 // all previous Promises have been resolved before calling invoke, 23589 // so that results are always delivered in the correct order. If 23590 // enqueue has not been called before, then it is important to 23591 // call invoke immediately, without waiting on a callback to fire, 23592 // so that the async generator function has the opportunity to do 23593 // any necessary setup in a predictable way. This predictability 23594 // is why the Promise constructor synchronously invokes its 23595 // executor callback, and why async functions synchronously 23596 // execute code before the first await. Since we implement simple 23597 // async functions in terms of async generators, it is especially 23598 // important to get this right, even though it requires care. 23599 previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later 23600 // invocations of the iterator. 23601 callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); 23602 } // Define the unified helper method that is used to implement .next, 23603 // .throw, and .return (see defineIteratorMethods). 23604 23605 23606 this._invoke = enqueue; 23607 } 23608 23609 defineIteratorMethods(AsyncIterator.prototype); 23610 define(AsyncIterator.prototype, asyncIteratorSymbol, function () { 23611 return this; 23612 }); 23613 exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of 23614 // AsyncIterator objects; they just return a Promise for the value of 23615 // the final result produced by the iterator. 23616 23617 exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { 23618 if (PromiseImpl === void 0) PromiseImpl = Promise; 23619 var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); 23620 return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. 23621 : iter.next().then(function (result) { 23622 return result.done ? result.value : iter.next(); 23623 }); 23624 }; 23625 23626 function makeInvokeMethod(innerFn, self, context) { 23627 var state = GenStateSuspendedStart; 23628 return function invoke(method, arg) { 23629 if (state === GenStateExecuting) { 23630 throw new Error("Generator is already running"); 23631 } 23632 23633 if (state === GenStateCompleted) { 23634 if (method === "throw") { 23635 throw arg; 23636 } // Be forgiving, per 25.3.3.3.3 of the spec: 23637 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume 23638 23639 23640 return doneResult(); 23641 } 23642 23643 context.method = method; 23644 context.arg = arg; 23645 23646 while (true) { 23647 var delegate = context.delegate; 23648 23649 if (delegate) { 23650 var delegateResult = maybeInvokeDelegate(delegate, context); 23651 23652 if (delegateResult) { 23653 if (delegateResult === ContinueSentinel) continue; 23654 return delegateResult; 23655 } 23656 } 23657 23658 if (context.method === "next") { 23659 // Setting context._sent for legacy support of Babel's 23660 // function.sent implementation. 23661 context.sent = context._sent = context.arg; 23662 } else if (context.method === "throw") { 23663 if (state === GenStateSuspendedStart) { 23664 state = GenStateCompleted; 23665 throw context.arg; 23666 } 23667 23668 context.dispatchException(context.arg); 23669 } else if (context.method === "return") { 23670 context.abrupt("return", context.arg); 23671 } 23672 23673 state = GenStateExecuting; 23674 var record = tryCatch(innerFn, self, context); 23675 23676 if (record.type === "normal") { 23677 // If an exception is thrown from innerFn, we leave state === 23678 // GenStateExecuting and loop back for another invocation. 23679 state = context.done ? GenStateCompleted : GenStateSuspendedYield; 23680 23681 if (record.arg === ContinueSentinel) { 23682 continue; 23683 } 23684 23685 return { 23686 value: record.arg, 23687 done: context.done 23688 }; 23689 } else if (record.type === "throw") { 23690 state = GenStateCompleted; // Dispatch the exception by looping back around to the 23691 // context.dispatchException(context.arg) call above. 23692 23693 context.method = "throw"; 23694 context.arg = record.arg; 23695 } 23696 } 23697 }; 23698 } // Call delegate.iterator[context.method](context.arg) and handle the 23699 // result, either by returning a { value, done } result from the 23700 // delegate iterator, or by modifying context.method and context.arg, 23701 // setting context.delegate to null, and returning the ContinueSentinel. 23702 23703 23704 function maybeInvokeDelegate(delegate, context) { 23705 var method = delegate.iterator[context.method]; 23706 23707 if (method === undefined) { 23708 // A .throw or .return when the delegate iterator has no .throw 23709 // method always terminates the yield* loop. 23710 context.delegate = null; 23711 23712 if (context.method === "throw") { 23713 // Note: ["return"] must be used for ES3 parsing compatibility. 23714 if (delegate.iterator["return"]) { 23715 // If the delegate iterator has a return method, give it a 23716 // chance to clean up. 23717 context.method = "return"; 23718 context.arg = undefined; 23719 maybeInvokeDelegate(delegate, context); 23720 23721 if (context.method === "throw") { 23722 // If maybeInvokeDelegate(context) changed context.method from 23723 // "return" to "throw", let that override the TypeError below. 23724 return ContinueSentinel; 23725 } 23726 } 23727 23728 context.method = "throw"; 23729 context.arg = new TypeError("The iterator does not provide a 'throw' method"); 23730 } 23731 23732 return ContinueSentinel; 23733 } 23734 23735 var record = tryCatch(method, delegate.iterator, context.arg); 23736 23737 if (record.type === "throw") { 23738 context.method = "throw"; 23739 context.arg = record.arg; 23740 context.delegate = null; 23741 return ContinueSentinel; 23742 } 23743 23744 var info = record.arg; 23745 23746 if (!info) { 23747 context.method = "throw"; 23748 context.arg = new TypeError("iterator result is not an object"); 23749 context.delegate = null; 23750 return ContinueSentinel; 23751 } 23752 23753 if (info.done) { 23754 // Assign the result of the finished delegate to the temporary 23755 // variable specified by delegate.resultName (see delegateYield). 23756 context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield). 23757 23758 context.next = delegate.nextLoc; // If context.method was "throw" but the delegate handled the 23759 // exception, let the outer generator proceed normally. If 23760 // context.method was "next", forget context.arg since it has been 23761 // "consumed" by the delegate iterator. If context.method was 23762 // "return", allow the original .return call to continue in the 23763 // outer generator. 23764 23765 if (context.method !== "return") { 23766 context.method = "next"; 23767 context.arg = undefined; 23768 } 23769 } else { 23770 // Re-yield the result returned by the delegate method. 23771 return info; 23772 } // The delegate iterator is finished, so forget it and continue with 23773 // the outer generator. 23774 23775 23776 context.delegate = null; 23777 return ContinueSentinel; 23778 } // Define Generator.prototype.{next,throw,return} in terms of the 23779 // unified ._invoke helper method. 23780 23781 23782 defineIteratorMethods(Gp); 23783 define(Gp, toStringTagSymbol, "Generator"); // A Generator should always return itself as the iterator object when the 23784 // @@iterator function is called on it. Some browsers' implementations of the 23785 // iterator prototype chain incorrectly implement this, causing the Generator 23786 // object to not be returned from this call. This ensures that doesn't happen. 23787 // See https://github.com/facebook/regenerator/issues/274 for more details. 23788 23789 define(Gp, iteratorSymbol, function () { 23790 return this; 23791 }); 23792 define(Gp, "toString", function () { 23793 return "[object Generator]"; 23794 }); 23795 23796 function pushTryEntry(locs) { 23797 var entry = { 23798 tryLoc: locs[0] 23799 }; 23800 23801 if (1 in locs) { 23802 entry.catchLoc = locs[1]; 23803 } 23804 23805 if (2 in locs) { 23806 entry.finallyLoc = locs[2]; 23807 entry.afterLoc = locs[3]; 23808 } 23809 23810 this.tryEntries.push(entry); 23811 } 23812 23813 function resetTryEntry(entry) { 23814 var record = entry.completion || {}; 23815 record.type = "normal"; 23816 delete record.arg; 23817 entry.completion = record; 23818 } 23819 23820 function Context(tryLocsList) { 23821 // The root entry object (effectively a try statement without a catch 23822 // or a finally block) gives us a place to store values thrown from 23823 // locations where there is no enclosing try statement. 23824 this.tryEntries = [{ 23825 tryLoc: "root" 23826 }]; 23827 tryLocsList.forEach(pushTryEntry, this); 23828 this.reset(true); 23829 } 23830 23831 exports.keys = function (object) { 23832 var keys = []; 23833 23834 for (var key in object) { 23835 keys.push(key); 23836 } 23837 23838 keys.reverse(); // Rather than returning an object with a next method, we keep 23839 // things simple and return the next function itself. 23840 23841 return function next() { 23842 while (keys.length) { 23843 var key = keys.pop(); 23844 23845 if (key in object) { 23846 next.value = key; 23847 next.done = false; 23848 return next; 23849 } 23850 } // To avoid creating an additional object, we just hang the .value 23851 // and .done properties off the next function object itself. This 23852 // also ensures that the minifier will not anonymize the function. 23853 23854 23855 next.done = true; 23856 return next; 23857 }; 23858 }; 23859 23860 function values(iterable) { 23861 if (iterable) { 23862 var iteratorMethod = iterable[iteratorSymbol]; 23863 23864 if (iteratorMethod) { 23865 return iteratorMethod.call(iterable); 23866 } 23867 23868 if (typeof iterable.next === "function") { 23869 return iterable; 23870 } 23871 23872 if (!isNaN(iterable.length)) { 23873 var i = -1, 23874 next = function next() { 23875 while (++i < iterable.length) { 23876 if (hasOwn.call(iterable, i)) { 23877 next.value = iterable[i]; 23878 next.done = false; 23879 return next; 23880 } 23881 } 23882 23883 next.value = undefined; 23884 next.done = true; 23885 return next; 23886 }; 23887 23888 return next.next = next; 23889 } 23890 } // Return an iterator with no values. 23891 23892 23893 return { 23894 next: doneResult 23895 }; 23896 } 23897 23898 exports.values = values; 23899 23900 function doneResult() { 23901 return { 23902 value: undefined, 23903 done: true 23904 }; 23905 } 23906 23907 Context.prototype = { 23908 constructor: Context, 23909 reset: function reset(skipTempReset) { 23910 this.prev = 0; 23911 this.next = 0; // Resetting context._sent for legacy support of Babel's 23912 // function.sent implementation. 23913 23914 this.sent = this._sent = undefined; 23915 this.done = false; 23916 this.delegate = null; 23917 this.method = "next"; 23918 this.arg = undefined; 23919 this.tryEntries.forEach(resetTryEntry); 23920 23921 if (!skipTempReset) { 23922 for (var name in this) { 23923 // Not sure about the optimal order of these conditions: 23924 if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { 23925 this[name] = undefined; 23926 } 23927 } 23928 } 23929 }, 23930 stop: function stop() { 23931 this.done = true; 23932 var rootEntry = this.tryEntries[0]; 23933 var rootRecord = rootEntry.completion; 23934 23935 if (rootRecord.type === "throw") { 23936 throw rootRecord.arg; 23937 } 23938 23939 return this.rval; 23940 }, 23941 dispatchException: function dispatchException(exception) { 23942 if (this.done) { 23943 throw exception; 23944 } 23945 23946 var context = this; 23947 23948 function handle(loc, caught) { 23949 record.type = "throw"; 23950 record.arg = exception; 23951 context.next = loc; 23952 23953 if (caught) { 23954 // If the dispatched exception was caught by a catch block, 23955 // then let that catch block handle the exception normally. 23956 context.method = "next"; 23957 context.arg = undefined; 23958 } 23959 23960 return !!caught; 23961 } 23962 23963 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 23964 var entry = this.tryEntries[i]; 23965 var record = entry.completion; 23966 23967 if (entry.tryLoc === "root") { 23968 // Exception thrown outside of any try block that could handle 23969 // it, so set the completion value of the entire function to 23970 // throw the exception. 23971 return handle("end"); 23972 } 23973 23974 if (entry.tryLoc <= this.prev) { 23975 var hasCatch = hasOwn.call(entry, "catchLoc"); 23976 var hasFinally = hasOwn.call(entry, "finallyLoc"); 23977 23978 if (hasCatch && hasFinally) { 23979 if (this.prev < entry.catchLoc) { 23980 return handle(entry.catchLoc, true); 23981 } else if (this.prev < entry.finallyLoc) { 23982 return handle(entry.finallyLoc); 23983 } 23984 } else if (hasCatch) { 23985 if (this.prev < entry.catchLoc) { 23986 return handle(entry.catchLoc, true); 23987 } 23988 } else if (hasFinally) { 23989 if (this.prev < entry.finallyLoc) { 23990 return handle(entry.finallyLoc); 23991 } 23992 } else { 23993 throw new Error("try statement without catch or finally"); 23994 } 23995 } 23996 } 23997 }, 23998 abrupt: function abrupt(type, arg) { 23999 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 24000 var entry = this.tryEntries[i]; 24001 24002 if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { 24003 var finallyEntry = entry; 24004 break; 24005 } 24006 } 24007 24008 if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { 24009 // Ignore the finally entry if control is not jumping to a 24010 // location outside the try/catch block. 24011 finallyEntry = null; 24012 } 24013 24014 var record = finallyEntry ? finallyEntry.completion : {}; 24015 record.type = type; 24016 record.arg = arg; 24017 24018 if (finallyEntry) { 24019 this.method = "next"; 24020 this.next = finallyEntry.finallyLoc; 24021 return ContinueSentinel; 24022 } 24023 24024 return this.complete(record); 24025 }, 24026 complete: function complete(record, afterLoc) { 24027 if (record.type === "throw") { 24028 throw record.arg; 24029 } 24030 24031 if (record.type === "break" || record.type === "continue") { 24032 this.next = record.arg; 24033 } else if (record.type === "return") { 24034 this.rval = this.arg = record.arg; 24035 this.method = "return"; 24036 this.next = "end"; 24037 } else if (record.type === "normal" && afterLoc) { 24038 this.next = afterLoc; 24039 } 24040 24041 return ContinueSentinel; 24042 }, 24043 finish: function finish(finallyLoc) { 24044 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 24045 var entry = this.tryEntries[i]; 24046 24047 if (entry.finallyLoc === finallyLoc) { 24048 this.complete(entry.completion, entry.afterLoc); 24049 resetTryEntry(entry); 24050 return ContinueSentinel; 24051 } 24052 } 24053 }, 24054 "catch": function _catch(tryLoc) { 24055 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 24056 var entry = this.tryEntries[i]; 24057 24058 if (entry.tryLoc === tryLoc) { 24059 var record = entry.completion; 24060 24061 if (record.type === "throw") { 24062 var thrown = record.arg; 24063 resetTryEntry(entry); 24064 } 24065 24066 return thrown; 24067 } 24068 } // The context.catch method must only be called with a location 24069 // argument that corresponds to a known catch block. 24070 24071 24072 throw new Error("illegal catch attempt"); 24073 }, 24074 delegateYield: function delegateYield(iterable, resultName, nextLoc) { 24075 this.delegate = { 24076 iterator: values(iterable), 24077 resultName: resultName, 24078 nextLoc: nextLoc 24079 }; 24080 24081 if (this.method === "next") { 24082 // Deliberately forget the last sent value so that we don't 24083 // accidentally pass it on to the delegate. 24084 this.arg = undefined; 24085 } 24086 24087 return ContinueSentinel; 24088 } 24089 }; // Regardless of whether this script is executing as a CommonJS module 24090 // or not, return the runtime object so that we can declare the variable 24091 // regeneratorRuntime in the outer scope, which allows this module to be 24092 // injected easily by `bin/regenerator --include-runtime script.js`. 24093 24094 return exports; 24095}( // If this script is executing as a CommonJS module, use module.exports 24096// as the regeneratorRuntime namespace. Otherwise create a new empty 24097// object. Either way, the resulting object will be used to initialize 24098// the regeneratorRuntime variable at the top of this file. 24099( false ? undefined : _typeof(module)) === "object" ? module.exports : {}); 24100 24101try { 24102 regeneratorRuntime = runtime; 24103} catch (accidentalStrictMode) { 24104 // This module should not be running in strict mode, so the above 24105 // assignment should always work unless something is misconfigured. Just 24106 // in case runtime.js accidentally runs in strict mode, in modern engines 24107 // we can explicitly access globalThis. In older engines we can escape 24108 // strict mode using a global Function call. This could conceivably fail 24109 // if a Content Security Policy forbids using Function, but in that case 24110 // the proper solution is to fix the accidental strict mode problem. If 24111 // you've misconfigured your bundler to force strict mode and applied a 24112 // CSP to forbid Function, and you're not willing to fix either of those 24113 // problems, please detail your unique predicament in a GitHub issue. 24114 if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object") { 24115 globalThis.regeneratorRuntime = runtime; 24116 } else { 24117 Function("r", "regeneratorRuntime = r")(runtime); 24118 } 24119} 24120/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../sfra-webpack-builder/node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module))) 24121 24122/***/ }), 24123
24124/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/cart.js": 24125/*!*********************************************************************************************!*\ 24126 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/cart.js ***! 24127 \*********************************************************************************************/ 24128/*! no static exports found */ 24129/***/ (function(module, exports, __webpack_require__) { 24130 24131"use strict"; 24132 24133 24134var _cart = __webpack_require__(/*! ./cart/cart */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/cart/cart.js"); 24135 24136var processInclude = __webpack_require__(/*! base/util */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js"); 24137 24138var baseFiles = { 24139 cart: function cart() { 24140 return _cart.init.call(_cart); 24141 } 24142}; 24143module.exports = { 24144 baseFiles: baseFiles, 24145 loadFunctions: function loadFunctions() { 24146 Object.keys(baseFiles).forEach(function (key) { 24147 processInclude(baseFiles[key]); 24148 }); 24149 } 24150}; 24151 24152/***/ }), 24153
24154/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/cart/cart.js": 24155/*!**************************************************************************************************!*\ 24156 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/cart/cart.js ***! 24157 \**************************************************************************************************/ 24158/*! no static exports found */ 24159/***/ (function(module, exports, __webpack_require__) { 24160 24161"use strict"; 24162 24163 24164var focusHelper = __webpack_require__(/*! base/components/focus */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/focus.js"); 24165 24166var formValidation = __webpack_require__(/*! base/components/formValidation */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/formValidation.js"); 24167 24168var base = __webpack_require__(/*! core/product/base */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/base.js"); 24169/** 24170 * Retrieves the relevant pid value (copied from base so we dont load the entire file 2x for this) 24171 * @param {jquery} $el - DOM container for a given add to cart button 24172 * @return {string} - value to be used when adding product to cart 24173 */ 24174 24175 24176function getPidValue($el) { 24177 var pid; 24178 24179 if ($('#quickViewModal').hasClass('show') && !$('.product-set').length) { 24180 pid = $($el).closest('.modal-content').find('.product-quickview').data('pid'); 24181 } else if ($('.product-set-detail').length || $('.product-set').length) { 24182 pid = $($el).closest('.product-detail').find('.product-id').text(); 24183 } else { 24184 pid = $('.product-detail:not(".bundle-item")').data('pid'); 24185 } 24186 24187 return pid; 24188} 24189/** 24190 * appends params to a url 24191 * @param {string} url - Original url 24192 * @param {Object} params - Parameters to append 24193 * @returns {string} result url with appended parameters 24194 */ 24195 24196 24197function appendToUrl(url, params) { 24198 var newUrl = url; 24199 newUrl += (newUrl.indexOf('?') !== -1 ? '&' : '?') + Object.keys(params).map(function (key) { 24200 return key + '=' + encodeURIComponent(params[key]); 24201 }).join('&'); 24202 return newUrl; 24203} 24204/** 24205 * Checks whether the basket is valid. if invalid displays error message and disables 24206 * checkout button 24207 * @param {Object} data - AJAX response from the server 24208 */ 24209 24210 24211function validateBasket(data) { 24212 if (data.valid.error) { 24213 if (data.valid.message) { 24214 var errorHtml = '<div class="alert alert-danger alert-dismissible valid-cart-error ' + 'fade show" role="alert">' + '<button type="button" class="close" data-dismiss="alert" aria-label="Close">' + '<span aria-hidden="true">×</span>' + '</button>' + data.valid.message + '</div>'; 24215 $('.cart-error').append(errorHtml); 24216 } else { 24217 $('.cart').empty().append('<div class="row"> ' + '<div class="col-12 text-center"> ' + '<h1>' + data.resources.emptyCartMsg + '</h1> ' + '</div> ' + '</div>'); 24218 $('.number-of-items').empty().append(data.numItems == 1 ? data.resources.numberOfItem : data.resources.numberOfItems); 24219 $('.minicart-quantity').empty().append(data.numItems); 24220 $('.minicart-link').attr({ 24221 'aria-label': data.resources.minicartCountOfItems, 24222 title: data.resources.minicartCountOfItems 24223 }); 24224 $('.minicart .popover').empty(); 24225 $('.minicart .popover').removeClass('show'); 24226 } 24227 24228 $('.checkout-btn').addClass('disabled'); 24229 } else { 24230 $('.checkout-btn').removeClass('disabled'); 24231 } 24232} 24233/** 24234 * re-renders the order totals and the number of items in the cart 24235 * @param {Object} data - AJAX response from the server 24236 */ 24237 24238 24239function updateCartTotals(data) { 24240 var $cart = $('.cart'); 24241 $cart.find('.number-of-items').empty().append(data.numItems == 1 ? data.resources.numberOfItem : data.resources.numberOfItems); 24242 $cart.find('.shipping-cost span').empty().append(data.totals.totalShippingCost); 24243 $cart.find('.tax-total span').empty().append(data.totals.totalTax); 24244 $cart.find('.grand-total span, .checkout-continue .checkout-btn-grand-total').empty().append(data.totals.grandTotalLessGiftCertificatePaymentInstrumentsFormatted); 24245 $cart.find('.checkout-continue .checkout-btn').attr('data-price', data.totals.grandTotalLessGiftCertificatePaymentInstrumentsFormatted); 24246 $cart.find('.sub-total span').empty().append(data.totals.subTotal); 24247 $('.minicart-quantity').empty().append(data.numItems); 24248 $('.minicart-link').attr({ 24249 'aria-label': data.resources.minicartCountOfItems, 24250 title: data.resources.minicartCountOfItems 24251 }); 24252 24253 if (data.totals.orderLevelDiscountTotal.value > 0) { 24254 $cart.find('.order-discount').removeClass('hide-order-discount'); 24255 $cart.find('.order-discount-total').empty().append('- ' + data.totals.orderLevelDiscountTotal.formatted); 24256 } else { 24257 $cart.find('.order-discount').addClass('hide-order-discount'); 24258 } 24259 24260 if (data.totals.shippingLevelDiscountTotal.value > 0) { 24261 $cart.find('.shipping-discount').removeClass('hide-shipping-discount'); 24262 $cart.find('.shipping-discount-total span').empty().append('- ' + data.totals.shippingLevelDiscountTotal.formatted); 24263 } else { 24264 $cart.find('.shipping-discount').addClass('hide-shipping-discount'); 24265 } 24266 24267 if (data.payment.giftCertificatePaymentInstruments.length) { 24268 $cart.find('.giftcertificate-discount').removeClass('d-none'); 24269 $cart.find('.giftcertificate-discount-label').text(data.totals.giftCertificatePaymentInstrumentsLabel); 24270 $cart.find('.giftcertificate-discount-total').text('- ' + data.totals.giftCertificatePaymentInstrumentsTotalFormatted); 24271 } else { 24272 $cart.find('.giftcertificate-discount').addClass('d-none'); 24273 } 24274 24275 if (data.totals.grandTotalLessGiftCertificatePaymentInstrumentsValue) { 24276 $cart.find('.cartAdditionalPaymentButtons').removeClass('d-none'); 24277 } else { 24278 $cart.find('.cartAdditionalPaymentButtons').addClass('d-none'); 24279 } 24280
24281 data.items.forEach(function (item) { 24282 var itemPrice; 24283 var itemTotalPrice; 24284 24285 if (item.productType === 'giftCertificate') { 24286 itemPrice = item.priceTotal.price; 24287 itemTotalPrice = item.priceTotal.price; 24288 } else { 24289 itemPrice = item.renderedPrice; 24290 itemTotalPrice = item.priceTotal.renderedPrice; 24291 } 24292 24293 if (data.totals.orderLevelDiscountTotal.value > 0) { 24294 $cart.find('.coupons-and-promos').empty().append(data.totals.discountsHtml); 24295 } 24296 24297 if (item.renderedPromotions) { 24298 $cart.find('.item-' + item.UUID).empty().append(item.renderedPromotions); 24299 } else { 24300 $cart.find('.item-' + item.UUID).empty(); 24301 } 24302 24303 $cart.find('.uuid-' + item.UUID + ' .unit-price').empty().append(itemPrice); 24304 $cart.find('.line-item-price-' + item.UUID + ' .unit-price').empty().append(itemPrice); 24305 $cart.find('.item-total-' + item.UUID).empty().append(itemTotalPrice); 24306 }); 24307} 24308/** 24309 * re-renders the order totals and the number of items in the cart 24310 * @param {Object} message - Error message to display 24311 */ 24312 24313 24314function createErrorNotification(message) { 24315 var errorHtml = '<div class="alert alert-danger alert-dismissible valid-cart-error ' + 'fade show" role="alert">' + '<button type="button" class="close" data-dismiss="alert" aria-label="Close">' + '<span aria-hidden="true">×</span>' + '</button>' + message + '</div>'; 24316 $('.cart-error').append(errorHtml); 24317} 24318/** 24319 * re-renders the approaching discount messages 24320 * @param {Object} approachingDiscounts - updated approaching discounts for the cart 24321 */ 24322 24323 24324function updateApproachingDiscounts(approachingDiscounts) { 24325 var html = ''; 24326 $('.approaching-discounts').empty(); 24327 24328 if (approachingDiscounts.length > 0) { 24329 approachingDiscounts.forEach(function (item) { 24330 html += '<div class="single-approaching-discount text-center">' + item.discountMsg + '</div>'; 24331 }); 24332 } 24333 24334 $('.approaching-discounts').append(html); 24335} 24336/** 24337 * Updates the availability of a product line item 24338 * @param {Object} data - AJAX response from the server 24339 * @param {string} uuid - The uuid of the product line item to update 24340 */ 24341 24342 24343function updateAvailability(data, uuid) { 24344 var lineItem; 24345 var messages = ''; 24346 24347 for (var i = 0; i < data.items.length; i++) { 24348 if (data.items[i].UUID === uuid) { 24349 lineItem = data.items[i]; 24350 break; 24351 } 24352 } 24353 24354 if (lineItem != null) { 24355 $('.availability-' + lineItem.UUID).empty(); 24356 24357 if (lineItem.availability) { 24358 if (lineItem.availability.messages) { 24359 lineItem.availability.messages.forEach(function (message) { 24360 messages += '<p class="line-item-attributes">' + message + '</p>'; 24361 }); 24362 } 24363 24364 if (lineItem.availability.inStockDate) { 24365 messages += '<p class="line-item-attributes line-item-instock-date">' + lineItem.availability.inStockDate + '</p>'; 24366 } 24367 } 24368 24369 $('.availability-' + lineItem.UUID).html(messages); 24370 } 24371} 24372/** 24373 * Finds an element in the array that matches search parameter 24374 * @param {array} array - array of items to search 24375 * @param {function} match - function that takes an element and returns a boolean indicating if the match is made 24376 * @returns {Object|null} - returns an element of the array that matched the query. 24377 */ 24378 24379 24380function findItem(array, match) { 24381 for (var i = 0, l = array.length; i < l; i++) { 24382 if (match.call(this, array[i])) { 24383 return array[i]; 24384 } 24385 } 24386 24387 return null; 24388} 24389/** 24390 * Updates details of a product line item 24391 * @param {Object} data - AJAX response from the server 24392 * @param {string} uuid - The uuid of the product line item to update 24393 */ 24394 24395 24396function updateProductDetails(data, uuid) { 24397 $('.card .product-info.uuid-' + uuid).parent().replaceWith(data.renderedTemplate); 24398 base.enableQuantitySteppers(); 24399} 24400/** 24401 * Parses the html for a modal window 24402 * @param {string} html - representing the body and footer of the modal window 24403 * 24404 * @return {Object} - Object with properties body and footer. 24405 */ 24406 24407 24408function parseHtml(html) { 24409 var $html = $('<div>').append($.parseHTML(html)); 24410 var body = $html.find('.product-quickview'); 24411 var footer = $html.find('.modal-footer').children(); 24412 return { 24413 body: body, 24414 footer: footer 24415 }; 24416} 24417/** 24418 * replace content of modal 24419 * @param {string} actionUrl - url to be used to remove product 24420 * @param {string} productID - pid 24421 * @param {string} productName - product name 24422 * @param {string} uuid - uuid 24423 */ 24424 24425 24426function confirmDelete(actionUrl, productID, productName, uuid) { 24427 var $deleteConfirmBtn = $('.cart-delete-confirmation-btn'); 24428 var $productToRemoveSpan = $('.product-to-remove'); 24429 $deleteConfirmBtn.data('pid', productID); 24430 $deleteConfirmBtn.data('action', actionUrl); 24431 $deleteConfirmBtn.data('uuid', uuid); 24432 $productToRemoveSpan.empty().append(productName); 24433} 24434
24435function init() { 24436 $('body').on('click', '.remove-product', function (e) { 24437 e.preventDefault(); 24438 var actionUrl = $(this).data('action'); 24439 var productID = $(this).data('pid'); 24440 var productName = $(this).data('name'); 24441 var uuid = $(this).data('uuid'); 24442 module.exports.confirmDelete(actionUrl, productID, productName, uuid); 24443 }); 24444 $('body').on('afterRemoveFromCart', function (e, data) { 24445 e.preventDefault(); 24446 module.exports.confirmDelete(data.actionUrl, data.productID, data.productName, data.uuid); 24447 }); 24448 $('body').on('click', '.cart-delete-confirmation-btn', function (e) { 24449 e.preventDefault(); 24450 var productID = $(this).data('pid'); 24451 var url = $(this).data('action'); 24452 var uuid = $(this).data('uuid'); 24453 var urlParams = { 24454 pid: productID, 24455 uuid: uuid 24456 }; 24457 url = module.exports.appendToUrl(url, urlParams); 24458 $('body > .modal-backdrop').remove(); 24459 $('body').trigger('cart:beforeUpdate'); 24460 $.spinner().start(); 24461 $.ajax({ 24462 url: url, 24463 type: 'get', 24464 dataType: 'json', 24465 success: function success(data) { 24466 if (data.basket.items.length === 0) { 24467 $('.cart').empty().append('<div class="row"> ' + '<div class="col-12 text-center"> ' + '<h1>' + data.basket.resources.emptyCartMsg + '</h1> ' + '</div> ' + '</div>'); 24468 $('.number-of-items').empty().append(data.basket.resources.numberOfItems); 24469 $('.number-of-items-container').removeClass('text-md-right'); 24470 $('.minicart-quantity').empty().append(data.basket.numItems); 24471 $('.minicart-link').attr({ 24472 'aria-label': data.basket.resources.minicartCountOfItems, 24473 title: data.basket.resources.minicartCountOfItems 24474 }); 24475 $('.minicart .popover').empty(); 24476 $('.minicart .popover').removeClass('show'); 24477 $('body').removeClass('modal-open'); 24478 $('html').removeClass('veiled'); 24479 } else { 24480 if (data.toBeDeletedUUIDs && data.toBeDeletedUUIDs.length > 0) { 24481 for (var i = 0; i < data.toBeDeletedUUIDs.length; i++) { 24482 $('.uuid-' + data.toBeDeletedUUIDs[i]).closest('.card').remove(); 24483 } 24484 } 24485 24486 $('.uuid-' + uuid).closest('.card').remove(); 24487 24488 if (!data.basket.hasBonusProduct) { 24489 $('.bonus-product').remove(); 24490 } // NOTE: there's an open issue for problems with removing products with bonus items: https://github.com/SalesforceCommerceCloud/storefront-reference-architecture/issues/748 24491 24492 24493 $('.coupons-and-promos').empty().append(data.basket.totals.discountsHtml); 24494 module.exports.updateCartTotals(data.basket); 24495 module.exports.updateApproachingDiscounts(data.basket.approachingDiscounts); 24496 $('body').trigger('setShippingMethodSelection', data.basket); 24497 module.exports.validateBasket(data.basket); 24498 } 24499 24500 $('body').trigger('cart:update', [data, uuid]); 24501 $.spinner().stop(); 24502 }, 24503 error: function error(err) { 24504 if (err.responseJSON.redirectUrl) { 24505 window.location.href = err.responseJSON.redirectUrl; 24506 } else { 24507 module.exports.createErrorNotification(err.responseJSON.errorMessage); 24508 $.spinner().stop(); 24509 } 24510 } 24511 }); 24512 }); 24513 $('body').on('quantityStepper:change', function (event, stepper) { 24514 var $stepper = $(stepper); 24515 var isMiniCart = $stepper.closest('.minicart').length > 0; 24516 var selectId = $stepper.closest('.quantity-form').find('select').attr('id'); 24517 var $select = $('.cart-page select#' + selectId); 24518 var value = parseInt($stepper.find('input').val()); // if the qty change was triggered from the minicart, manually update cart qty input values 24519 24520 if (isMiniCart) { 24521 var $cartStepper = $select.next('.quantity-stepper'); 24522 $cartStepper.find('input').prop('value', value).prop('data-qty', value); 24523 } 24524 }); 24525 $('body').on('change', '.quantity-form > .quantity', function () { 24526 var url = $(this).data('action'); 24527 24528 if (!url) { 24529 return; 24530 } 24531 24532 var preSelectQty = $(this).data('pre-select-qty'); 24533 var quantity = $(this).val(); 24534 var productID = $(this).data('pid'); 24535 var uuid = $(this).data('uuid');
24536 var urlParams = { 24537 pid: productID, 24538 quantity: quantity, 24539 uuid: uuid 24540 }; 24541 url = module.exports.appendToUrl(url, urlParams); 24542 $(this).parents('.card').spinner().start(); 24543 $('body').trigger('cart:beforeUpdate'); 24544 $.ajax({ 24545 url: url, 24546 type: 'get', 24547 context: this, 24548 dataType: 'json', 24549 success: function success(data) { 24550 $('.quantity[data-uuid="' + uuid + '"]').val(quantity); 24551 $('.coupons-and-promos').empty().append(data.totals.discountsHtml); 24552 module.exports.updateCartTotals(data); 24553 module.exports.updateApproachingDiscounts(data.approachingDiscounts); 24554 module.exports.updateAvailability(data, uuid); 24555 module.exports.validateBasket(data); 24556 $(this).data('pre-select-qty', quantity); 24557 $('body').trigger('cart:update', [data, uuid]); 24558 $.spinner().stop(); 24559 24560 if ($(this).parents('.product-info').hasClass('bonus-product-line-item') && $('.cart-page').length) { 24561 location.reload(); 24562 } 24563 }, 24564 error: function error(err) { 24565 if (err.responseJSON.redirectUrl) { 24566 window.location.href = err.responseJSON.redirectUrl; 24567 } else { 24568 module.exports.createErrorNotification(err.responseJSON.errorMessage); 24569 $(this).val(parseInt(preSelectQty, 10)); 24570 $.spinner().stop(); 24571 } 24572 } 24573 }); 24574 }); 24575 $('.shippingMethods').change(function () { 24576 var url = $(this).attr('data-actionUrl'); 24577 var urlParams = { 24578 methodID: $(this).find(':selected').attr('data-shipping-id') 24579 }; // url = module.exports.appendToUrl(url, urlParams); 24580 24581 $('.totals').spinner().start(); 24582 $('body').trigger('cart:beforeShippingMethodSelected'); 24583 $.ajax({ 24584 url: url, 24585 type: 'post', 24586 dataType: 'json', 24587 data: urlParams, 24588 success: function success(data) { 24589 if (data.error) { 24590 window.location.href = data.redirectUrl; 24591 } else { 24592 $('.coupons-and-promos').empty().append(data.totals.discountsHtml); 24593 module.exports.updateCartTotals(data); 24594 module.exports.updateApproachingDiscounts(data.approachingDiscounts); 24595 module.exports.validateBasket(data); 24596 } 24597 24598 $('body').trigger('cart:shippingMethodSelected', data); 24599 $.spinner().stop(); 24600 }, 24601 error: function error(err) { 24602 if (err.redirectUrl) { 24603 window.location.href = err.redirectUrl; 24604 } else { 24605 module.exports.createErrorNotification(err.responseJSON.errorMessage); 24606 $.spinner().stop(); 24607 } 24608 } 24609 }); 24610 }); 24611 $('.promo-code-form').submit(function (e) { 24612 e.preventDefault(); 24613 var currentItemCount = parseInt($('.minicart-quantity').text(), 10) || 0; 24614 $.spinner().start(); 24615 $('.coupon-missing-error').hide(); 24616 $('.coupon-error-message').empty(); 24617 24618 if (!$('.coupon-code-field').val()) { 24619 $('.promo-code-form .form-control').addClass('is-invalid'); 24620 $('.promo-code-form .form-control').attr('aria-describedby', 'missingCouponCode'); 24621 $('.coupon-missing-error').show(); 24622 $.spinner().stop(); 24623 return false; 24624 } 24625 24626 var $form = $('.promo-code-form'); 24627 $('.promo-code-form .form-control').removeClass('is-invalid'); 24628 $('.coupon-error-message').empty(); 24629 $('body').trigger('promotion:beforeUpdate'); 24630 $.ajax({ 24631 url: $form.attr('action'), 24632 type: 'GET', 24633 dataType: 'json', 24634 data: $form.serialize(), 24635 success: function success(data) { 24636 if (data.error) { 24637 $('.promo-code-form .form-control').addClass('is-invalid'); 24638 $('.promo-code-form .form-control').attr('aria-describedby', 'invalidCouponCode'); 24639 $('.coupon-error-message').empty().append(data.errorMessage); 24640 $('body').trigger('promotion:error', data); 24641 $('.coupon-code-field').trigger('focus'); 24642 $.spinner().stop(); 24643 } else { 24644 // If cart item was added/removed via promo code submit 24645 if (['', null, undefined].indexOf(data.numItems) && currentItemCount !== data.numItems) { 24646 // Clean Url Structure of any erroneous parameters 24647 if (window.history && ['', null, undefined].indexOf(data.actionUrls.showUrl) === -1) { 24648 history.replaceState({}, null, data.actionUrls.showUrl); 24649 } // Force uncached reload 24650 24651 24652 window.location.reload(true); 24653 } else { 24654 $('.coupons-and-promos').empty().append(data.totals.discountsHtml); 24655 module.exports.updateCartTotals(data); 24656 module.exports.updateApproachingDiscounts(data.approachingDiscounts); 24657 module.exports.validateBasket(data); 24658 $('body').trigger('promotion:success', data); 24659 $('.coupon-code-field').val(''); 24660 $.spinner().stop(); 24661 } 24662 } 24663 }, 24664 error: function error(err) { 24665 $('body').trigger('promotion:error', err); 24666 24667 if (err.responseJSON.redirectUrl) { 24668 window.location.href = err.responseJSON.redirectUrl; 24669 } else { 24670 module.exports.createErrorNotification(err.errorMessage); 24671 $.spinner().stop(); 24672 } 24673 } 24674 }); 24675 return false;
24676 }); 24677 $('body').on('click', '.remove-coupon', function (e) { 24678 e.preventDefault(); 24679 var couponCode = $(this).data('code'); 24680 var uuid = $(this).data('uuid'); 24681 var $deleteConfirmBtn = $('.delete-coupon-confirmation-btn'); 24682 var $productToRemoveSpan = $('.coupon-to-remove'); 24683 $deleteConfirmBtn.data('uuid', uuid); 24684 $deleteConfirmBtn.data('code', couponCode); 24685 $productToRemoveSpan.empty().append(couponCode); 24686 }); 24687 $('body').on('click', '.delete-coupon-confirmation-btn', function (e) { 24688 e.preventDefault(); 24689 var currentItemCount = parseInt($('.minicart-quantity').text(), 10) || 0; 24690 var url = $(this).data('action'); 24691 var uuid = $(this).data('uuid'); 24692 var couponCode = $(this).data('code'); 24693 var urlParams = { 24694 code: couponCode, 24695 uuid: uuid 24696 }; 24697 url = module.exports.appendToUrl(url, urlParams); 24698 $('body > .modal-backdrop').remove(); 24699 $.spinner().start(); 24700 $('body').trigger('promotion:beforeUpdate'); 24701 $.ajax({ 24702 url: url, 24703 type: 'get', 24704 dataType: 'json', 24705 success: function success(data) { 24706 $('.coupon-uuid-' + uuid).remove(); // If cart item was added/removed via promo code removal 24707 24708 if (['', null, undefined].indexOf(data.numItems) && currentItemCount !== data.numItems) { 24709 // Clean Url Structure of any erroneous parameters 24710 if (window.history && ['', null, undefined].indexOf(data.actionUrls.showUrl) === -1) { 24711 history.replaceState({}, null, data.actionUrls.showUrl); 24712 } // Force uncached reload 24713 24714 24715 window.location.reload(true); 24716 } else { 24717 module.exports.updateCartTotals(data); 24718 module.exports.updateApproachingDiscounts(data.approachingDiscounts); 24719 module.exports.validateBasket(data); 24720 $.spinner().stop(); 24721 $('body').trigger('promotion:success', data); 24722 } 24723 }, 24724 error: function error(err) { 24725 $('body').trigger('promotion:error', err); 24726 24727 if (err.responseJSON.redirectUrl) { 24728 window.location.href = err.responseJSON.redirectUrl; 24729 } else { 24730 module.exports.createErrorNotification(err.responseJSON.errorMessage); 24731 $.spinner().stop(); 24732 } 24733 } 24734 }); 24735 }); 24736 $('body').on('click', '.cart-page .bonus-product-button', function () { 24737 $.spinner().start(); 24738 $(this).addClass('launched-modal'); 24739 $.ajax({ 24740 url: $(this).data('url'), 24741 method: 'GET', 24742 dataType: 'json', 24743 success: function success(data) { 24744 $('body').trigger('bonusproduct:edit', data); 24745 $.spinner().stop(); 24746 }, 24747 error: function error() { 24748 $.spinner().stop(); 24749 } 24750 }); 24751 }); 24752 $('body').on('hidden.bs.modal', '#chooseBonusProductModal', function () { 24753 $('#chooseBonusProductModal').remove(); 24754 $('.modal-backdrop').remove(); 24755 $('body').removeClass('modal-open'); 24756 24757 if ($('.cart-page').length) { 24758 $('.launched-modal .btn-outline-primary').trigger('focus'); 24759 $('.launched-modal').removeClass('launched-modal'); 24760 } else { 24761 $('.product-detail .add-to-cart').focus(); 24762 } 24763 }); 24764 $('body').on('change', '.quantity-select', function () { 24765 var selectedQuantity = $(this).val(); 24766 $('.modal.show .update-cart-url').data('quantity', selectedQuantity); 24767 }); 24768 $('body').on('click', '.update-cart-product-global', function (e) { 24769 e.preventDefault(); 24770 var updateProductUrl = $(this).closest('.cart-and-ipay').find('.update-cart-url').val(); 24771 var form = $(this).closest('.cart-and-ipay').find('.update-cart-url').data(); 24772 24773 if (form) { 24774 form.selectedOptionValueIds = base.methods.getOptions($('#quickViewModal')); 24775 form.pid = module.exports.getPidValue($(this)); 24776 $(this).parents('.card').spinner().start(); 24777 $('body').trigger('cart:beforeUpdate'); 24778 24779 if (updateProductUrl) { 24780 $.ajax({ 24781 url: updateProductUrl, 24782 type: 'post', 24783 context: this, 24784 data: form, 24785 dataType: 'json', 24786 success: function success(data) { 24787 $('#quickViewModal').modal('hide'); 24788 $('.coupons-and-promos').empty().append(data.cartModel.totals.discountsHtml); 24789 module.exports.updateCartTotals(data.cartModel); 24790 module.exports.updateApproachingDiscounts(data.cartModel.approachingDiscounts); 24791 module.exports.updateAvailability(data.cartModel, form.uuid); 24792 module.exports.updateProductDetails(data, form.uuid); 24793 24794 if (data.uuidToBeDeleted) { 24795 $('.uuid-' + data.uuidToBeDeleted).remove(); 24796 } 24797 24798 module.exports.validateBasket(data.cartModel); 24799 $('body').trigger('cart:update', [data, form.uuid]); 24800 $.spinner().stop(); 24801 }, 24802 error: function error(err) { 24803 if (err.responseJSON.redirectUrl) { 24804 window.location.href = err.responseJSON.redirectUrl; 24805 } else { 24806 module.exports.createErrorNotification(err.responseJSON.errorMessage); 24807 $.spinner().stop(); 24808 } 24809 } 24810 }); 24811 } 24812 } 24813 }); 24814 $('body').on('product:afterAddToCartQuickview', function () { 24815 var verifyCartPage = $('body').find('.page').data('action'); 24816 24817 if (verifyCartPage == 'Cart-Show') { 24818 location.reload(); 24819 } 24820 }); //responsible for filling edit gift cert modal with information from line item on cart page 24821 24822 $('body').on('click', 'a.edit.editGiftCertificateLineItem', function (e) { 24823 e.preventDefault(); 24824 var anchor = $(this); 24825 var uuid = anchor.data('uuid'); 24826 var parentContainer = anchor.parents('.product-info.uuid-' + uuid); 24827 var from = parentContainer.find('.dwfrm_giftCertificate_purchase_from-' + uuid).data('value'); 24828 var recipient = parentContainer.find('.dwfrm_giftCertificate_purchase_recipient-' + uuid).data('value'); 24829 var recipientEmail = parentContainer.find('.dwfrm_giftCertificate_purchase_recipientEmail-' + uuid).data('value'); 24830 var message = parentContainer.find('.dwfrm_giftCertificate_purchase_message-' + uuid).attr('title'); 24831 var amount = parentContainer.find('.pricing.item-total-' + uuid).data('value'); 24832 var modal = $('#editGiftCertificateLineItemModal'); 24833 modal.find('#from').attr('value', from); 24834 modal.find('#recipient').attr('value', recipient); 24835 modal.find('#recipientEmail').attr('value', recipientEmail); 24836 modal.find('#confirmRecipientEmail').attr('value', recipientEmail); 24837 modal.find('#message').html(message || ''); 24838 modal.find('#amount').attr('value', ('' + amount || '0.0').split('.')[0]); 24839 modal.find('.btn-update-giftcertificate-incart').attr('data-uuid', uuid); 24840 modal.find('.btn-update-giftcertificate-incart').data('uuid', uuid); 24841 }); 24842} 24843 24844module.exports = { 24845 getPidValue: getPidValue, 24846 appendToUrl: appendToUrl, 24847 validateBasket: validateBasket, 24848 updateCartTotals: updateCartTotals, 24849 createErrorNotification: createErrorNotification, 24850 updateApproachingDiscounts: updateApproachingDiscounts, 24851 updateAvailability: updateAvailability, 24852 updateProductDetails: updateProductDetails, 24853 confirmDelete: confirmDelete, 24854 init: init 24855}; 24856 24857/***/ }), 24858
24859/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/checkout/formErrors.js": 24860/*!************************************************************************************************************!*\ 24861 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/checkout/formErrors.js ***! 24862 \************************************************************************************************************/ 24863/*! no static exports found */ 24864/***/ (function(module, exports, __webpack_require__) { 24865 24866"use strict"; 24867 24868 24869var scrollAnimate = __webpack_require__(/*! core/components/scrollAnimate */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/scrollAnimate.js"); 24870/** 24871 * Display error messages and highlight form fields with errors. 24872 * @param {string} parentSelector - the form which contains the fields 24873 * @param {Object} fieldErrors - the fields with errors 24874 */ 24875 24876 24877function loadFormErrors(parentSelector, fieldErrors) { 24878 // eslint-disable-line 24879 // Display error messages and highlight form fields with errors. 24880 $.each(fieldErrors, function (attr) { 24881 $('*[name=' + attr + ']', parentSelector).addClass('is-invalid').siblings('.invalid-feedback').html(fieldErrors[attr]); 24882 }); // Animate to top of form that has errors 24883 24884 scrollAnimate($(parentSelector)); 24885} 24886/** 24887 * Clear the form errors. 24888 * @param {string} parentSelector - the parent form selector. 24889 */ 24890 24891 24892function clearPreviousErrors(parentSelector) { 24893 //default clientSideValidation.js will remove .is-invalid only for html5 errors 24894 //let our manual call here clear all messaging on .invalid-feedback always 24895 $(parentSelector).find('.form-control.is-invalid').removeClass('is-invalid'); 24896 $(parentSelector).find('.invalid-feedback').html(''); 24897 $('.error-message').hide(); 24898} 24899 24900module.exports = { 24901 loadFormErrors: loadFormErrors, 24902 clearPreviousErrors: clearPreviousErrors 24903}; 24904 24905/***/ }), 24906
24907/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/clientSideValidation.js": 24908/*!************************************************************************************************************************!*\ 24909 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/clientSideValidation.js ***! 24910 \************************************************************************************************************************/ 24911/*! no static exports found */ 24912/***/ (function(module, exports, __webpack_require__) { 24913 24914"use strict"; 24915 24916 24917var base = __webpack_require__(/*! base/components/clientSideValidation */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/clientSideValidation.js"); 24918/** 24919 * Validate whole form. Requires `this` to be set to form object 24920 * @param {jQuery.event} event - Event to be canceled if form is invalid. 24921 * @returns {boolean} - Flag to indicate if form is valid 24922 */ 24923 24924 24925base.validateForm = function (event) { 24926 var valid = true, 24927 $this = $(this); 24928 24929 if (this.checkValidity && !this.checkValidity()) { 24930 valid = false; 24931 24932 if (event) { 24933 event.preventDefault(); 24934 event.stopPropagation(); 24935 event.stopImmediatePropagation(); 24936 } 24937 24938 if (!this.validity.valid) { 24939 if ($this.is('input, select')) { 24940 // handle where 'this' is a form field 24941 $this.trigger('invalid', this.validity); 24942 } else { 24943 $this.find('input, select').each(function () { 24944 // handle where 'this' is a form 24945 $this.trigger('invalid', this.validity); 24946 }); 24947 } 24948 } 24949 } 24950 24951 return valid; 24952}; 24953/** 24954 * Password Messaging Helper Functions 24955 */ 24956 24957 24958$('form:has(input[type^=password])').each(function (i, form) { 24959 var $form = $(form), 24960 $passwordFields = $form.find('input:password'), 24961 $passwordInput = $form.find('.password-validate'), 24962 $passwordHelper = $form.find('.password-validation-helper li'), 24963 //multiple 24964 $showPassword = $form.find("#show-password"); // change the border of the input field to alert the user of acceptance|error 24965 24966 $passwordInput.on('validatepassword', function (e) { 24967 if ($passwordHelper.hasClass("error") || $passwordHelper.hasClass("empty")) { 24968 $passwordInput.removeClass("is-valid").addClass("is-invalid"); 24969 $passwordHelper.not(".valid").addClass("error").removeClass("empty"); 24970 } else { 24971 $passwordInput.addClass("is-valid").removeClass("is-invalid"); 24972 } 24973 }); 24974 $passwordInput.on("keyup", function (e) { 24975 var $this = $(this); 24976 var value = $this.val(); // first check if the form is in error state, then re-eval 24977 24978 if ($this.hasClass("is-invalid")) { 24979 // leave the "error" states until valid 24980 $passwordHelper.trigger('checkrequirement', [value, 'valid empty']); 24981 $this.trigger('validatepassword'); 24982 } else { 24983 $passwordHelper.trigger('checkrequirement', [value, 'error valid empty']); 24984 } 24985 24986 ; 24987 }); // change input decoration when user leaves, attach event only once 24988 24989 $passwordInput.one("change", function (e) { 24990 var $this = $(this); 24991 $this.on("blur", function (e) { 24992 $this.trigger('validatepassword'); 24993 }); 24994 }); 24995 /** 24996 * Display validation messages and highlight 24997 * each one of the requirements for the password 24998 * @param {string} clearClasses - which classes to clear 24999 */ 25000 25001 $passwordHelper.on('checkrequirement', function (e, value, clearClasses) { 25002 var $this = $(this).removeClass(clearClasses).removeClass('valid error empty'); 25003 var regex = new RegExp($this.data('val-regex')); 25004 25005 if (regex.test(value)) { 25006 $this.addClass("valid"); 25007 } else if (!regex.test(value) && $passwordInput.focus) { 25008 $this.addClass("empty error"); 25009 } else { 25010 $this.addClass("error"); 25011 } 25012 }); //show password checkbox 25013 25014 $showPassword.on('click', function (event) { 25015 var $checkbox = $(event.target); 25016 $passwordFields.each(function (index, element) { 25017 $(element).attr('type', $checkbox.prop('checked') ? 'text' : 'password'); 25018 }); 25019 }); 25020}); 25021 25022function validateFormFix(form, event) { 25023 base.validateForm.call(form, event || null); 25024} 25025 25026base.functions.validateForm = validateFormFix; 25027module.exports = base; 25028 25029/***/ }), 25030
25031/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/collapsibleItem.js": 25032/*!*******************************************************************************************************************!*\ 25033 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/collapsibleItem.js ***! 25034 \*******************************************************************************************************************/ 25035/*! no static exports found */ 25036/***/ (function(module, exports, __webpack_require__) { 25037 25038"use strict"; 25039 25040/** 25041* Overriding from base SFRA to fix nested collapsibles 25042*/ 25043 25044module.exports = function () { 25045 var sizes = ['xs', 'sm', 'md', 'lg', 'xl']; 25046 sizes.forEach(function (size) { 25047 var selector = '.collapsible-' + size + ' .title'; 25048 $('body').on('click', selector, function (e) { 25049 e.preventDefault(); 25050 $(this).closest('.collapsible-' + size).toggleClass('active'); 25051 25052 if ($(this).closest('.collapsible-' + size).hasClass('active')) { 25053 $(this).attr('aria-expanded', true); 25054 } else { 25055 $(this).attr('aria-expanded', false); 25056 } 25057 }); 25058 }); 25059}; 25060 25061/***/ }), 25062
25063/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/consentTracking.js": 25064/*!*******************************************************************************************************************!*\ 25065 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/consentTracking.js ***! 25066 \*******************************************************************************************************************/ 25067/*! no static exports found */ 25068/***/ (function(module, exports, __webpack_require__) { 25069 25070"use strict"; 25071 25072/** 25073 * Renders a modal window that will track the users consenting to accepting site tracking policy 25074 */ 25075 25076var _this = this; 25077 25078var consent = { 25079 getString: function getString(urlAccept, textAccept, urlReject, textReject) { 25080 //immediately return a calculate string value 25081 return "<div class=\"consent-drawer\" id=\"consent-tracking\" role=\"dialog\">\n <div class=\"consent-text-wrapper\"></div>\n <div class=\"consent-button-wrapper ml-auto\">\n <button class=\"affirm btn btn-primary\" data-url=\"".concat(urlAccept, "\" autofocus>\n ").concat(textAccept, "\n </button>\n </div>\n <div class=\"consent-button-wrapper\">\n <button class=\"decline btn btn-primary\" data-url=\"").concat(urlReject, "\" >\n ").concat(textReject, "\n </button>\n </div>\n </div>"); 25082 }, 25083 showConsentDrawer: function showConsentDrawer($trackingElement) { 25084 if ([undefined, null].indexOf($trackingElement) !== -1 || !$trackingElement.data('caonline') || $('#consent-tracking').length) { 25085 return; 25086 } 25087 25088 var namespace = '.consenttrackingdrawer ', 25089 urlContent = $trackingElement.data('url'), 25090 urlAccept = $trackingElement.data('accept'), 25091 textAccept = $trackingElement.data('accepttext'), 25092 urlReject = $trackingElement.data('reject'), 25093 textReject = $trackingElement.data('rejecttext'); 25094 var htmlString = consent.getString(urlAccept, textAccept, urlReject, textReject); 25095 $('body').append(htmlString); 25096 var $consentTracking = $('#consent-tracking'); 25097 $.ajax({ 25098 url: urlContent, 25099 type: 'get', 25100 dataType: 'html', 25101 context: $consentTracking, 25102 success: function success(response) { 25103 this.find('.consent-text-wrapper').html(response); 25104 }, 25105 error: function error() { 25106 this.remove(); 25107 } 25108 }); 25109 $consentTracking.find('.consent-button-wrapper button').on('click' + namespace, function (event) { 25110 event.preventDefault(); 25111 var url = $(event.target).data('url'); 25112 var queryString = { 25113 csrf_token: $('.tracking-consent').data('token') 25114 }; 25115 $.ajax({ 25116 url: url, 25117 type: 'post', 25118 dataType: 'json', 25119 data: queryString, 25120 context: $consentTracking, 25121 complete: function complete() { 25122 this.remove(); 25123 }, 25124 error: function error() { 25125 this.remove(); 25126 } 25127 }); 25128 }); 25129 }, 25130 init: function init() { 25131 var namespace = '.consenttracking ', 25132 $body = $('body'), 25133 $trackingConsent = $('.tracking-consent'); 25134 25135 if ($('.consented').length === 0 && $trackingConsent.hasClass('api-true')) { 25136 consent.showConsentDrawer($trackingConsent); 25137 } 25138 25139 $trackingConsent.each(function (index, element) { 25140 var $this = $(_this); 25141 25142 if ($this.hasClass('api-true')) { 25143 $this.on('click' + namespace, function () { 25144 consent.showConsentDrawer($this); 25145 }); 25146 } 25147 }); 25148 $('.js-tracking-consent-show').on('click' + namespace, function (e) { 25149 e.preventDefault(); 25150 consent.showConsentDrawer($trackingConsent); 25151 }); 25152 } 25153}; 25154module.exports = consent; 25155 25156/***/ }), 25157
25158/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/countrySelector.js": 25159/*!*******************************************************************************************************************!*\ 25160 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/countrySelector.js ***! 25161 \*******************************************************************************************************************/ 25162/*! no static exports found */ 25163/***/ (function(module, exports, __webpack_require__) { 25164 25165"use strict"; 25166 25167 25168var base = __webpack_require__(/*! base/components/countrySelector */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/countrySelector.js"); 25169 25170module.exports = function () { 25171 // initialize action to allow default behavior 25172 var $page = $('.page'); 25173 if (['', null, undefined].indexOf($page.data('action')) !== -1) $page.data('action', 'Home-Show'); 25174 return base.apply(this, arguments); 25175}; 25176 25177/***/ }), 25178
25179/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/einsteinRecs.js": 25180/*!****************************************************************************************************************!*\ 25181 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/einsteinRecs.js ***! 25182 \****************************************************************************************************************/ 25183/*! no static exports found */ 25184/***/ (function(module, exports, __webpack_require__) { 25185 25186"use strict"; 25187 25188 25189var einsteinUtils = __webpack_require__(/*! ./einsteinUtils */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/einsteinUtils.js"); 25190 25191var productTile = __webpack_require__(/*! ./productTile */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/productTile.js"); 25192 25193var abSlider = __webpack_require__(/*! ./slider */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/slider.js"); 25194 25195module.exports = {}; 25196/** 25197 * Gets all placeholder elements, which hold einstein recommendations queries the details from the 25198 * einstein engine and feeds them back to the dom element 25199 * @param {Object} e jquery event 25200 * @returns {Object} jquery targets 25201 */ 25202 25203module.exports.loadRecommendations = function (e) { 25204 var $context = $(this); 25205 var $recommendationTargets = $context.hasClass('.einstein-data') ? $context : $context.find('.einstein-data'); 25206 return $recommendationTargets.each(function () { 25207 var $recTrigger = $(this); 25208 var data = $recTrigger.data() || {}; 25209 var asyncUrl = data.url; 25210 einsteinUtils.getRecommendations(data, function (einsteinResponse) { 25211 var response = einsteinUtils.interpretResponse(data, einsteinResponse); // Add replace content URL 25212 25213 $.each(response, function (i, rec) { 25214 if (!rec || !rec.id) return null; 25215 var pidURL = asyncUrl; 25216 pidURL += (pidURL.indexOf('?') === -1 ? '?' : '&') + 'pid=' + rec.id; 25217 $recTrigger.find('.product[data-pid="placeholder"]:not([data-replace-content])').first().attr('data-replace-content', pidURL); //Must be attr to allow productTile.js async selector rule to catch recommendation 25218 }); // Remove empty slides 25219 25220 $recTrigger.find('.slide:has(.product[data-pid="placeholder"]:not([data-replace-content]))').remove(); // Prepare Slider Container 25221 25222 var $sliderContainer = $recTrigger.closest('.slider-container').removeClass('delay-init'); 25223 productTile.init($recTrigger.find('.product'), function (status) { 25224 // Re Initialize sliders to account for TileInclude Errors 25225 var tns = status.errors > 0 ? $sliderContainer.data('tns') : null; 25226 25227 if (tns) { 25228 tns.destroy(); 25229 tns.rebuild(); 25230 } 25231 }); // Initialize sliders 25232 25233 abSlider.initializeSliders($sliderContainer.parent()); 25234 }); 25235 }); 25236}; 25237 25238module.exports.init = function (context) { 25239 // Re-triggerable dom event 25240 $(document).off('load.einstein').on('load.einstein', module.exports.loadRecommendations); 25241 context = context && 'trigger' in context ? context : $(document); 25242 return context.triggerHandler('load.einstein'); 25243}; 25244 25245/***/ }), 25246
25247/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/einsteinUtils.js": 25248/*!*****************************************************************************************************************!*\ 25249 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/einsteinUtils.js ***! 25250 \*****************************************************************************************************************/ 25251/*! no static exports found */ 25252/***/ (function(module, exports, __webpack_require__) { 25253 25254"use strict"; 25255 25256 25257module.exports = {}; 25258/** 25259 * Validates and Return the cquotient namespace provided by the commerce cloud platform 25260 * @returns {Object} - einsteinUtils or null 25261 */ 25262 25263module.exports.getEinsteinUtils = function () { 25264 var einsteinUtils = window.CQuotient; 25265 25266 if (einsteinUtils && typeof einsteinUtils.getCQUserId === 'function' && typeof einsteinUtils.getCQCookieId === 'function') { 25267 return einsteinUtils; 25268 } 25269 25270 return null; 25271}; 25272/** 25273* Processes a recommendation tile, with an already initialized category specific anchors array 25274* @param {Object} data object to carry info to CQuotient calls 25275* @param {Function} callback handler function 25276*/ 25277 25278 25279module.exports.getRecommendations = function (data, callback) { 25280 var einsteinUtils = module.exports.getEinsteinUtils(); 25281 var params = { 25282 userId: einsteinUtils.getCQUserId(), 25283 cookieId: einsteinUtils.getCQCookieId(), 25284 ccver: '1.01' 25285 }; 25286 25287 if (data.anchors && data.anchors.length > 0) { 25288 params.anchors = data.anchors; 25289 } 25290 25291 if (einsteinUtils.getRecs) { 25292 einsteinUtils.getRecs(einsteinUtils.clientId, data.recommender, params, callback); 25293 } else { 25294 einsteinUtils.widgets = einsteinUtils.widgets || []; // eslint-disable-line no-param-reassign 25295 25296 einsteinUtils.widgets.push({ 25297 recommenderName: data.recommender, 25298 parameters: params, 25299 callback: callback 25300 }); 25301 } 25302}; 25303/** 25304 * Processes a response and format data structure 25305 * @param {Object} request object to carry info to CQuotient calls 25306 * @param {Object} response data returned from CQuotient calls 25307 * @returns {Object} 25308 */ 25309 25310 25311module.exports.interpretResponse = function (request, response) { 25312 return response[request.recommender].recs; 25313}; 25314 25315/***/ }), 25316
25317/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/footer.js": 25318/*!**********************************************************************************************************!*\ 25319 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/footer.js ***! 25320 \**********************************************************************************************************/ 25321/*! no static exports found */ 25322/***/ (function(module, exports, __webpack_require__) { 25323 25324"use strict"; 25325 25326 25327var scrollAnimate = __webpack_require__(/*! core/components/scrollAnimate */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/scrollAnimate.js"); 25328/** 25329 * appends params to a url 25330 * @param {string} data - data returned from the server's ajax call 25331 * @param {Object} button - button that was clicked for email sign-up 25332 */ 25333 25334 25335function displayMessage(success, msg) { 25336 var status = success ? 'alert-success' : 'alert-danger'; 25337 25338 if ($('.email-signup-message').length === 0) { 25339 $('body').append('<div class="email-signup-message"></div>'); 25340 } 25341 25342 $('.email-signup-message').append('<div class="email-signup-alert text-center alert ' + status + '">' + msg + '</div>'); 25343 setTimeout(function () { 25344 $('.email-signup-message').remove(); 25345 }, 3000); 25346} 25347 25348var footer = { 25349 'elementNameMap': { 25350 'hpEmailSignUp': 'emailId' 25351 }, 25352 'backToTop': function backToTop() { 25353 $('.back-to-top').click(function () { 25354 scrollAnimate(); 25355 }); 25356 }, 25357 'forms': 'footer .email-signup-form form', 25358 'init': function init() { 25359 var nameMap = this.elementNameMap; // Prevent Multi Form event collision 25360 25361 var $forms = $(this.forms); 25362 $forms.each(function () { 25363 var $form = $(this); 25364 var $inputs = $form.find(':input:not(:disabled)'); //TODO: Security Update with CSRF 25365 // Update Form Name for SFRA compatibility 25366 25367 if (nameMap) { 25368 $inputs.each(function () { 25369 var $input = $(this); 25370 var oldName = $input.attr('name'); 25371 var newName = oldName && nameMap[oldName]; 25372 25373 if (newName) { 25374 $input.attr('name', newName); 25375 } 25376 }); 25377 } 25378 25379 $form.on('submit', function (e, urlOverride) { 25380 e.preventDefault(); 25381 var $btn = $(this); 25382 var xhr = $form.data('xhr'); 25383 $form.data('xhr', $.ajax({ 25384 url: urlOverride || $form.attr('action'), 25385 type: $form.attr('method') || 'post', 25386 data: $inputs.serialize(), 25387 dataType: 'json', 25388 beforeSend: function beforeSend() { 25389 // Drop duplicate requests 25390 xhr && xhr.abort && xhr.abort(); 25391 $.spinner().start(); 25392 $btn.attr('disabled', true); 25393 }, 25394 success: function success(data) { 25395 displayMessage(data.success, data.msg); 25396 $form.trigger('footer:signup:success', data); 25397 }, 25398 error: function error($xhr, err, other) { 25399 var msg = $xhr.responseJSON && $xhr.responseJSON.message; 25400 displayMessage(false, msg); 25401 }, 25402 complete: function complete() { 25403 $.spinner().stop(); 25404 $btn.removeAttr('disabled'); 25405 $form[0].reset(); 25406 } 25407 })); 25408 }); // For SFRA compatibility 25409 25410 $form.find('.subscribe-email').on('click', function (e) { 25411 e.preventDefault(); 25412 $form.trigger('submit', $(this).data('href')); 25413 }); 25414 }); 25415 } 25416}; 25417module.exports = footer; 25418 25419/***/ }), 25420
25421/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/header.js": 25422/*!**********************************************************************************************************!*\ 25423 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/header.js ***! 25424 \**********************************************************************************************************/ 25425/*! no static exports found */ 25426/***/ (function(module, exports, __webpack_require__) { 25427 25428"use strict"; 25429 25430 25431var updateHeader = function updateHeader(status) { 25432 var $headerNav = $('.header-nav'); 25433 var headerNavHeight = $headerNav.outerHeight(); 25434 var $page = $('.page'); 25435 25436 if (status === 'fixed') { 25437 $headerNav.addClass('fixed'); 25438 25439 if (!$headerNav.closest('.transparent-header').length) { 25440 $page.css('margin-top', headerNavHeight + 'px'); 25441 } 25442 25443 $headerNav.removeClass('transparent-nav'); 25444 } else { 25445 $headerNav.removeClass('fixed'); 25446 $page.css('margin-top', ''); 25447 var isMobileOpen = $('body').hasClass('mobile-menu-in'); 25448 25449 if (!isMobileOpen) { 25450 $headerNav.addClass('transparent-nav'); 25451 } 25452 } 25453}; 25454 25455module.exports = function () { 25456 // Fix/unfix header to top of screen, dependent on class added by custom preference 25457 // Note: This is intentionally not using utilities/scroll.js so that it can fix immediately vs. being debounced. Should be replaced with CSS position:sticky once IE11 support is dropped. 25458 var hasFixedHeader = $('header').hasClass('fixed-header'); 25459 $(window).scroll(function (event) { 25460 if (hasFixedHeader) { 25461 var $headerBanner = $('.header-banner'); 25462 var headerBannerHeight = $headerBanner.length ? $headerBanner.outerHeight() : 0; 25463 var $preNavHeader = $('.pre-nav-header'); 25464 var preNavHeaderHeight = $preNavHeader.length ? $preNavHeader.outerHeight() : 0; 25465 var scrollTop = $(event.target).scrollTop(); 25466 25467 if (scrollTop > headerBannerHeight + preNavHeaderHeight) { 25468 updateHeader('fixed'); 25469 } else { 25470 updateHeader('unfixed'); 25471 } 25472 } 25473 }); 25474 var isMobile = window.isMobile(); 25475 25476 if ($('header').hasClass('transparent-header') && !isMobile) { 25477 $('.header-nav').hover(function () { 25478 $(this).removeClass('transparent-nav'); 25479 }, function () { 25480 $(this).addClass('transparent-nav'); 25481 }); 25482 } // Check for presence of content assets in MegaMenu 25483 25484 25485 var $megamenuDropdown = $('.megamenu > .dropdown-menu'); 25486 $megamenuDropdown.each(function (index, element) { 25487 var $megamenu = $(element); 25488 25489 if ($megamenu.find('.megamenu-asset-1').children().length) { 25490 $megamenu.addClass('has-asset-1'); 25491 } 25492 25493 if ($megamenu.find('.megamenu-asset-2').children().length) { 25494 $megamenu.addClass('has-asset-2'); 25495 } 25496 }); // Show/hide content assets on mobile based on category level 25497 25498 if (isMobile) { 25499 var $thirdMenuBackBtn = $('.megamenu .menu-subcategories > .dropdown-item'), 25500 $thirdSubLink = $('.megamenu .menu-subcategories > .dropdown-item > .dropdown-link'); 25501 $thirdSubLink.on('click', function () { 25502 $('.megamenu.show .menu-subcategories').parent('li').addClass('thirdCatOpen'); 25503 }); 25504 $thirdMenuBackBtn.on('click', function () { 25505 $('.megamenu.show .menu-subcategories').parent('li').removeClass('thirdCatOpen'); 25506 }); 25507 } 25508 25509 $('.main-menu .navbar-nav').on('mouseenter mouseleave', function () { 25510 $(this).toggleClass('nav-item-hover'); 25511 }); 25512 $('header .site-search').on('mouseenter', function (event) { 25513 var $siteSearch = $(event.target).closest('.site-search'); 25514 $siteSearch.addClass('expanded'); 25515 }); 25516 $('header .site-search').on('mouseleave', function (event) { 25517 var $siteSearch = $(event.target).closest('.site-search'); 25518 var $input = $siteSearch.find('input'); // Only collapse if the user isn't typing and hasn't entered text 25519 25520 if (!$input.is(':focus') && !$input.val()) { 25521 $siteSearch.removeClass('expanded'); 25522 } 25523 }); 25524 $('form[name=simpleSearch]').on('submit', function (event) { 25525 var $form = $(event.target); 25526 var $input = $('input[name=q]', $form); //keep search from submitting if query is empty 25527 25528 if ($input.val() == "") { 25529 $input.focus(); 25530 event.preventDefault(); 25531 } 25532 }); 25533}; 25534 25535/***/ }), 25536
25537/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/menu.js": 25538/*!********************************************************************************************************!*\ 25539 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/menu.js ***! 25540 \********************************************************************************************************/ 25541/*! no static exports found */ 25542/***/ (function(module, exports, __webpack_require__) { 25543 25544"use strict"; 25545 25546 25547var keyboardAccessibility = __webpack_require__(/*! base/components/keyboardAccessibility */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/keyboardAccessibility.js"); 25548 25549var SiteConstants = __webpack_require__(/*! constants/SiteConstants */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/scripts/constants/SiteConstants.js"); 25550 25551var hoverIntent = __webpack_require__(/*! jquery-hoverintent */ "../rvw_autobahn_core/node_modules/jquery-hoverintent/jquery.hoverIntent.js"); 25552 25553var headerUtils = __webpack_require__(/*! ../utilities/headerUtils */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/utilities/headerUtils.js"); 25554 25555function clearSelection(element) { 25556 var $currentPane = $(element).closest('.custom-dropdown.show'); 25557 $currentPane.removeClass('show'); // Adjust DOM after drawer finishes closing (mobile) or dropdown finishes hiding (desktop) 25558 25559 setTimeout(function () { 25560 $currentPane.find('.nav-link').attr('aria-expanded', 'false'); 25561 $currentPane.find('.dropdown-menu').attr('aria-hidden', 'true'); 25562 $currentPane.find('.top-category').detach(); 25563 $currentPane.find('.nav-menu').detach(); 25564 25565 if (!$currentPane.closest('.custom-dropdown.show').length) { 25566 $currentPane.closest('.menu-group').find('.nav.navbar-nav > li.nav-item > a').attr('aria-hidden', 'false'); 25567 } 25568 }, SiteConstants.TransitionSpeed); 25569} 25570 25571; 25572 25573function toggleDrawer(status) { 25574 var $header = $('header'); 25575 var $headerNav = $header.find('.header-nav'); 25576 var headerNavHeight = headerUtils.getHeaderHeight(); 25577 var $mainMenu = $header.find('.main-menu'); 25578 var $navbar = $mainMenu.find('.navbar-nav'); 25579 var $modalBackground = $('.modal-background'); 25580 25581 if (status === 'open') { 25582 $('html').scrollTop($headerNav.offset().top); 25583 $('html').addClass('lock-scroll'); 25584 $('body').addClass('mobile-menu-in'); 25585 $mainMenu.addClass('in').attr('aria-hidden', 'false').css('top', headerNavHeight).siblings().attr('aria-hidden', 'true'); 25586 $modalBackground.fadeIn(SiteConstants.TransitionSpeed).css('top', headerNavHeight); 25587 $header.siblings().attr('aria-hidden', 'true'); 25588 $navbar.find('.nav-link').first().focus(); 25589 } else { 25590 $('body').removeClass('mobile-menu-in'); 25591 $navbar.find('.nav-menu, .top-category').detach(); 25592 $navbar.find('.thirdCatOpen').removeClass('thirdCatOpen'); 25593 $navbar.find('.show').removeClass('show'); 25594 $mainMenu.removeClass('in').attr('aria-hidden', 'true').siblings().attr('aria-hidden', 'false'); 25595 $header.siblings().attr('aria-hidden', 'false'); 25596 $modalBackground.fadeOut(SiteConstants.TransitionSpeed); 25597 setTimeout(function () { 25598 $modalBackground.css('top', ''); 25599 $('html').removeClass('lock-scroll'); 25600 $headerNav.addClass('transparent-nav'); 25601 }, SiteConstants.TransitionSpeed); 25602 } 25603} 25604 25605; 25606 25607function headerBanner() { 25608 var headerBannerStatus = window.sessionStorage.getItem('hide_header_banner'); 25609 $('.header-banner .close').on('click', function () { 25610 $('.header-banner').addClass('d-none'); 25611 window.sessionStorage.setItem('hide_header_banner', '1'); 25612 }); 25613 25614 if (!headerBannerStatus || headerBannerStatus < 0) { 25615 $('.header-banner').removeClass('d-none'); 25616 } 25617} 25618 25619; 25620 25621function kbAccessibility() { 25622 keyboardAccessibility('.main-menu .nav-link, .main-menu .dropdown-link, .header-account-container > div, .header-support-container > div, .minicart > div', { 25623 40: function _(menuItem) { 25624 // down 25625 if (menuItem.hasClass('nav-item')) { 25626 // top level 25627 $('.navbar-nav .show').removeClass('show').children('.dropdown-menu').removeClass('show'); 25628 menuItem.addClass('show').children('.dropdown-menu').addClass('show'); 25629 menuItem.find('ul > li > a').first().focus(); 25630 $(this).attr('aria-expanded', 'true'); 25631 } else if (menuItem.is('.header-account-container, .header-support-container')) { 25632 // account/support 25633 menuItem.find('.custom-dropdown').addClass('show').children('.dropdown-menu').addClass('show'); 25634 menuItem.find('ul > li > a').first().focus(); 25635 menuItem.find('.dropdown-toggle').attr('aria-expanded', 'true'); 25636 } else { 25637 menuItem.removeClass('show').children('.dropdown-menu').removeClass('show'); 25638 25639 if (!(menuItem.next().length > 0)) { 25640 // if this is the last menuItem 25641 menuItem.parent().parent().find('li > a').first().focus(); // set focus to the first menuitem 25642 } else { 25643 menuItem.next().children().first().focus(); 25644 } 25645 } 25646 }, 25647 39: function _(menuItem) { 25648 // right 25649 if (menuItem.hasClass('nav-item')) { 25650 // top level 25651 menuItem.removeClass('show').children('.dropdown-menu').removeClass('show'); 25652 $(this).attr('aria-expanded', 'false'); 25653 menuItem.next().children().first().focus(); 25654 } else if (menuItem.is('.header-account-container, .header-support-container')) { 25655 // account/support 25656 menuItem.find('.custom-dropdown').addClass('show').children('.dropdown-menu').addClass('show'); 25657 menuItem.find('ul > li > a').first().focus(); 25658 menuItem.find('.dropdown-toggle').attr('aria-expanded', 'true'); 25659 } else if (menuItem.hasClass('dropdown')) { 25660 menuItem.addClass('show').children('.dropdown-menu').addClass('show'); 25661 $(this).attr('aria-expanded', 'true'); 25662 menuItem.find('ul > li > a').first().focus(); 25663 } 25664 }, 25665 38: function _(menuItem) { 25666 // up 25667 if (menuItem.hasClass('nav-item')) { 25668 // top level 25669 menuItem.removeClass('show').children('.dropdown-menu').removeClass('show'); 25670 $(this).attr('aria-expanded', 'false'); 25671 } else if (menuItem.is('.minicart')) { 25672 // minicart 25673 menuItem.find('.popover').removeClass('show'); 25674 } else if (menuItem.is('.header-account-container, .header-support-container')) { 25675 // account/support 25676 menuItem.find('.custom-dropdown').removeClass('show').children('.dropdown-menu').removeClass('show'); 25677 menuItem.find('.dropdown-toggle').attr('aria-expanded', 'false'); 25678 } else if (menuItem.prev().length === 0) { 25679 // first menuItem 25680 menuItem.parent().parent().removeClass('show').children('.nav-link').attr('aria-expanded', 'false');
25681 menuItem.parent().children().last().children().first().focus(); // set the focus to the last menuItem 25682 } else { 25683 menuItem.prev().children().first().focus(); 25684 } 25685 }, 25686 37: function _(menuItem) { 25687 // left 25688 if (menuItem.hasClass('nav-item')) { 25689 // top level 25690 menuItem.removeClass('show').children('.dropdown-menu').removeClass('show'); 25691 $(this).attr('aria-expanded', 'false'); 25692 menuItem.prev().children().first().focus(); 25693 } else if (menuItem.is('.minicart')) { 25694 // minicart 25695 menuItem.find('.popover').removeClass('show'); 25696 } else if (menuItem.is('.header-account-container, .header-support-container')) { 25697 // account/support 25698 menuItem.find('.custom-dropdown').removeClass('show').children('.dropdown-menu').removeClass('show'); 25699 menuItem.find('.dropdown-toggle').attr('aria-expanded', 'false'); 25700 } else { 25701 menuItem.closest('.show').removeClass('show').closest('li.show').removeClass('show').children().first().focus().attr('aria-expanded', 'false'); 25702 } 25703 }, 25704 27: function _(menuItem) { 25705 // escape 25706 if (menuItem.is('.minicart')) { 25707 // minicart 25708 menuItem.find('.popover').removeClass('show'); 25709 } else if (menuItem.is('.header-account-container, .header-support-container')) { 25710 // account/support 25711 menuItem.find('.custom-dropdown').removeClass('show').children('.dropdown-menu').removeClass('show'); 25712 menuItem.find('.dropdown-toggle').attr('aria-expanded', 'false'); 25713 } else { 25714 var parentMenu = menuItem.hasClass('show') ? menuItem : menuItem.closest('.show'); 25715 parentMenu.children('.show').removeClass('show'); 25716 parentMenu.removeClass('show').children('.nav-link').attr('aria-expanded', 'false'); 25717 parentMenu.children().first().focus(); 25718 } 25719 } 25720 }, function () { 25721 return $(this).parent(); 25722 }); 25723} 25724 25725function searchExpand() { 25726 //if only search icon is visible, show the input on focus 25727 $(".search-field").focus(function () { 25728 $(this).closest('.site-search').addClass('expanded'); 25729 }); 25730} 25731 25732; 25733 25734function dropdownMenu() { 25735 // Custom dropdown behaviors for top menu 25736 var $dropdownMenu = $('.custom-dropdown:not(.disabled) [data-toggle="dropdown"]'); 25737 $dropdownMenu.on('click', function (event) { 25738 event.stopPropagation(); // Prevent Bootstrap dropdown click events 25739 25740 if (window.isMobile()) { 25741 // Drawer behavior on mobile 25742 event.preventDefault(); 25743 var $dropdownLink = $(event.target); 25744 var $dropdown = $dropdownLink.closest('.custom-dropdown'); 25745 var $li = $('<li class="dropdown-item top-category" role="button"></li>'); 25746 var $closeMenu = $('<li class="nav-menu"></li>'); 25747 var link = $dropdownLink.clone().removeClass('dropdown-toggle').removeAttr('data-toggle').removeAttr('aria-expanded').attr('aria-haspopup', 'false'); 25748 $li.append(link); 25749 $closeMenu.append($('.close-menu').first().clone()); 25750 $dropdown.children('.dropdown-menu').prepend($li).prepend($closeMenu).attr('aria-hidden', 'false').find('a').removeAttr('tabindex', '-1'); 25751 $dropdown.addClass('show'); 25752 $dropdownLink.attr('aria-expanded', 'true'); 25753 $dropdown.closest('.menu-group').find('.nav.navbar-nav > li.nav-item > a').attr('aria-hidden', 'true'); 25754 $(link).focus(); 25755 $('.dropdown-menu').scrollTop(0); 25756 } 25757 }); // Desktop - open menu using hoverIntent to prevent unintentional opening 25758 25759 $dropdownMenu.hoverIntent({ 25760 over: function over(event) { 25761 if (!window.isMobile()) { 25762 var eventElement = event.target; // Close all dropdowns 25763 25764 $('.navbar-nav > li').each(function (index, element) { 25765 if (!$.contains(element, eventElement)) { 25766 var $navItem = $(element); 25767 $navItem.find('.show').each(function () { 25768 module.exports.clearSelection(element); 25769 }); 25770 25771 if ($navItem.hasClass('show')) { 25772 $navItem.removeClass('show'); 25773 $navItem.children('ul.dropdown-menu').removeClass('show'); 25774 $navItem.children('.nav-link').attr('aria-expanded', 'false'); 25775 } 25776 } 25777 }); // Open current dropdown 25778 25779 $(eventElement).parent().addClass('show'); 25780 $(eventElement).siblings('.dropdown-menu').addClass('show').attr('aria-hidden', 'false'); 25781 $(eventElement).attr('aria-expanded', 'true'); 25782 } 25783 }, 25784 out: function out() {// this 'out' handler is left empty, since it's triggered from parent, handled in mouseleave event below 25785 }, 25786 interval: 50 25787 }); // Desktop - close menu on mouseleave 25788 25789 $dropdownMenu.parent().on('mouseleave', function (event) { 25790 if (!window.isMobile()) { 25791 var $dropdown = $(event.currentTarget); // Close current dropdown 25792 25793 $dropdown.removeClass('show'); 25794 $dropdown.children('.dropdown-menu').removeClass('show').attr('aria-hidden', 'true'); 25795 $dropdown.children('.nav-link').attr('aria-expanded', 'false'); 25796 } 25797 }); 25798} 25799 25800; 25801 25802function megaLeftHover() { 25803 //Megamenu Mega-left menu 25804 $('.mega-left-menu-link').hoverIntent(function () { 25805 var menuName = this.id, 25806 menuRight = $('#' + menuName + '-right'), 25807 menuLeft = $(this).parent().parent(), 25808 menuRightParent = menuRight.closest('.mega-left'); 25809 25810 if (!window.isMobile()) { 25811 // clear classes 25812 menuLeft.find('.active').removeClass('active'); 25813 menuRightParent.removeClass('has-sub-asset'); 25814 menuRightParent.find('.active-list').removeClass('active-list'); // add classes 25815 25816 $(this).addClass('active'); 25817 menuRight.parent().addClass('active-list'); // add a class to the parent Ul if a third level asset is displayed; css-hides the top level asset 25818 25819 if (menuRight.parent().next().hasClass('sub-asset-1') || menuRight.parent().next().hasClass('sub-asset-2')) { 25820 menuRightParent.addClass('has-sub-asset'); 25821 } 25822 } 25823 }, 50); 25824} 25825 25826; 25827 25828function navbarBackBtn() { 25829 $('.navbar-nav').on('click', '.back', function (event) { 25830 event.preventDefault(); 25831 module.exports.clearSelection(event.target); 25832 }); 25833} 25834 25835; 25836 25837function navbarToggler() { 25838 $('.navbar-toggler').click(function (event) { 25839 event.preventDefault(); 25840 25841 if ($('body').hasClass('mobile-menu-in')) { 25842 module.exports.toggleDrawer('close'); 25843 $('.header-nav').addClass('transparent-nav'); 25844 } else { 25845 module.exports.toggleDrawer('open'); 25846 $('.header-nav').removeClass('transparent-nav'); 25847 } 25848 }); 25849 $('html').on('click', '.mobile-menu-in .modal-background', function () { 25850 return module.exports.toggleDrawer('close'); 25851 }); 25852} 25853 25854; 25855 25856function mobileSearchFix() {
25857 // Prevent iOS from scrolling to bad position on search field input focus 25858 $('.search-mobile .search-field').focus(function (event) { 25859 if (window.isMobile()) { 25860 var currentScrollPosition = $('html').scrollTop(); 25861 setTimeout(function () { 25862 $('html').scrollTop(currentScrollPosition); 25863 $('.modal-background').show(); 25864 }, SiteConstants.TransitionSpeed); 25865 } 25866 }); 25867} 25868 25869; 25870module.exports = { 25871 clearSelection: clearSelection, 25872 toggleDrawer: toggleDrawer, 25873 headerBanner: headerBanner, 25874 kbAccessibility: kbAccessibility, 25875 searchExpand: searchExpand, 25876 dropdownMenu: dropdownMenu, 25877 megaLeftHover: megaLeftHover, 25878 navbarBackBtn: navbarBackBtn, 25879 navbarToggler: navbarToggler, 25880 mobileSearchFix: mobileSearchFix 25881}; 25882 25883/***/ }), 25884
25885/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/miniCart.js": 25886/*!************************************************************************************************************!*\ 25887 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/miniCart.js ***! 25888 \************************************************************************************************************/ 25889/*! no static exports found */ 25890/***/ (function(module, exports, __webpack_require__) { 25891 25892"use strict"; 25893 25894 25895var SiteConstants = __webpack_require__(/*! constants/SiteConstants */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/scripts/constants/SiteConstants.js"); 25896 25897var updateMiniCart = true; 25898 25899function setMiniCartBodyMaxHeight(minicart) { 25900 var $minicart = $(minicart); 25901 var $minicartScrollable = $minicart.find('.product-summary'); 25902 var minicartHeight = $minicart.outerHeight(); 25903 var minicartScrollableHeight = $minicartScrollable.outerHeight(); 25904 var minicartNonScrollableHeight = minicartHeight - minicartScrollableHeight; 25905 var minicartOffset = $minicart.offset().top - $(window).scrollTop(); 25906 var subtractHeight = minicartOffset + minicartNonScrollableHeight + SiteConstants.Spacer; 25907 $minicartScrollable.css('max-height', 'calc(100vh - ' + subtractHeight + 'px)'); 25908} 25909 25910module.exports = function () { 25911 $('.minicart').on('count:update', function (event, count) { 25912 if (count && $.isNumeric(count.quantityTotal)) { 25913 $('.minicart .minicart-quantity').text(count.quantityTotal); 25914 $('.minicart .minicart-link').attr({ 25915 'aria-label': count.minicartCountOfItems, 25916 title: count.minicartCountOfItems 25917 }); 25918 } 25919 }); 25920 $('.minicart').on('mouseenter focusin touchstart', function () { 25921 if ($('.search:visible').length === 0) { 25922 return; 25923 } 25924 25925 var url = $('.minicart').data('action-url'); 25926 var count = parseInt($('.minicart .minicart-quantity').text(), 10); 25927 25928 if (count !== 0 && $('.minicart .popover.show').length === 0) { 25929 if (!updateMiniCart && !$('.minicart .popover').is(':empty')) { 25930 $('.minicart .popover').addClass('show'); 25931 return; 25932 } 25933 25934 $('.minicart .popover').addClass('show'); 25935 $('.minicart .popover').spinner().start(); 25936 $.get(url, function (data) { 25937 $('.minicart .popover').empty(); 25938 $('.minicart .popover').append(data); 25939 updateMiniCart = false; 25940 $.spinner().stop(); 25941 $('body').trigger('minicart:loaded', $('.minicart .popover')); 25942 }); 25943 } 25944 }); 25945 $('body').on('touchstart click', function (event) { 25946 if ($('.minicart').has(event.target).length <= 0) { 25947 $('.minicart .popover').removeClass('show'); 25948 } 25949 }); 25950 $('.minicart').on('mouseleave focusout', function (event) { 25951 if (event.type === 'focusout' && $('.minicart').has(event.target).length > 0 || event.type === 'mouseleave' && $(event.target).is('.minicart .quantity') || $('body').hasClass('modal-open')) { 25952 event.stopPropagation(); 25953 return; 25954 } 25955 25956 $('.minicart .popover').removeClass('show'); 25957 $('body').trigger('minicart:mouseleave_focusout'); 25958 }); 25959 $('body').on('change', '.minicart .quantity', function (event) { 25960 if ($(event.target).parents('.bonus-product-line-item').length && $('.cart-page').length) { 25961 location.reload(); 25962 } 25963 }); 25964 $('body').on('product:afterAddToCart cart:update', function () { 25965 updateMiniCart = true; 25966 }); 25967 $('body').on('minicart:loaded', function (event, minicart) { 25968 setMiniCartBodyMaxHeight(minicart); 25969 }); 25970}; 25971 25972/***/ }), 25973
25974/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/modal.js": 25975/*!*********************************************************************************************************!*\ 25976 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/modal.js ***! 25977 \*********************************************************************************************************/ 25978/*! no static exports found */ 25979/***/ (function(module, exports, __webpack_require__) { 25980 25981"use strict"; 25982 25983 25984function setModalBodyMaxHeight($modal) { 25985 var $modalBody = $modal.find('.modal-body'); 25986 var headerHeight = $modal.find('.modal-header').outerHeight(); 25987 var footerHeight = $modal.find('.modal-footer').length ? $modal.find('.modal-footer').outerHeight() : 0; 25988 var $modalDialog = $modal.find('.modal-dialog'); 25989 var dialogMarginTop = parseInt($modalDialog.css('margin-top').split('px')[0]); 25990 var dialogMarginBottom = parseInt($modalDialog.css('margin-bottom').split('px')[0]); 25991 var dialogMarginHeight = dialogMarginTop + dialogMarginBottom; 25992 var $modalContent = $modal.find('.modal-content'); 25993 var contentBorderTop = parseInt($modalContent.css('border-top-width').split('px')[0]); 25994 var contentBorderBottom = parseInt($modalContent.css('border-bottom-width').split('px')[0]); 25995 var subtractHeight = headerHeight + footerHeight + dialogMarginHeight + contentBorderTop + contentBorderBottom; 25996 $modalBody.css('max-height', '400px'); 25997 $modalBody.css('max-height', 'calc(100vh - ' + subtractHeight + 'px)'); 25998} 25999/** 26000 * Generates the modal window on the first call. 26001 * 26002 */ 26003 26004 26005function getModalHtmlElement(elementID, dialogClasses) { 26006 var id = elementID || 'customModal'; 26007 var qvPDPLink = id == 'quickViewModal' ? ' <a class="full-pdp-link" href=""></a>' : ''; 26008 dialogClasses = dialogClasses || ''; 26009 26010 if ($('#' + id).length !== 0) { 26011 $('#' + id).remove(); 26012 } 26013 26014 var htmlString = '<div class="modal fade" id="' + id + '" role="dialog">' + '<span class="enter-message sr-only"></span>' + '<div class="modal-dialog ' + dialogClasses + '">' + '<!-- Modal content-->' + '<div class="modal-content">' + '<div class="modal-header">' + qvPDPLink + ' <button type="button" class="close pull-right" data-dismiss="modal">' + ' <span aria-hidden="true">×</span>' + ' <span class="sr-only"> </span>' + ' </button>' + '</div>' + '<div class="modal-body"></div>' + '<div class="modal-footer"></div>' + '</div>' + '</div>' + '</div>'; 26015 $('body').append(htmlString); 26016} 26017 26018function onShownBsModal() { 26019 $('body').on('shown.bs.modal', '.modal', function () { 26020 $('body').trigger('modal:loaded', this); 26021 }); 26022} 26023 26024function onModalLoaded() { 26025 $('body').on('modal:loaded', function (event, modal) { 26026 var $modal = $(modal); // Check for modal-scrollbody helper class and adjust body max-height if found 26027 26028 if ($modal.find('.modal-scrollbody').length || $modal.find('.quick-view-dialog').length || $modal.find('.choose-bonus-product-dialog').length) { 26029 setModalBodyMaxHeight($modal); 26030 } 26031 }); 26032} 26033/** 26034 * Parse HTML code in Ajax response 26035 * 26036 * @param {string} html - Rendered HTML from quickview template 26037 * @return {QuickViewHtml} - QuickView content components 26038 */ 26039 26040 26041function parseHtml(html) { 26042 var $html = $('<div>').append($.parseHTML(html)); 26043 var body = $html.find('.product-quickview'); 26044 26045 if (body.length == 0) { 26046 body = $html.find('.modal-body').children(); 26047 } 26048 26049 var footer = $html.find('.modal-footer').children(); 26050 return { 26051 body: body, 26052 footer: footer 26053 }; 26054} 26055/** 26056 * replaces the content in the modal window on for the selected product variation. 26057 * @param {string} selectedValueUrl - url to be used to retrieve a new product model 26058 */ 26059 26060 26061function fillModalElement(selectedValueUrl, data, $modal) { 26062 $.ajax({ 26063 url: selectedValueUrl, 26064 method: 'GET', 26065 data: data, 26066 dataType: 'json', 26067 success: function success(data) { 26068 var parsedHtml = parseHtml(data.renderedTemplate); 26069 $modal.find('.modal-body').empty(); 26070 $modal.find('.modal-body').html(parsedHtml.body);
26071 $modal.find('.modal-footer').html(parsedHtml.footer); 26072 $modal.find('.modal-header .close .sr-only').text(data.closeButtonText); 26073 $modal.find('.enter-message').text(data.enterDialogMessage); 26074 $modal.modal('show'); 26075 26076 if (data.dialogTitle) { 26077 $modal.find('.modal-header').prepend('<div class="modal-title">' + data.dialogTitle + '</div>'); 26078 } 26079 } 26080 }); 26081} 26082 26083function initCustomModal() { 26084 $('body').on('click', '.custom-modal', function (e) { 26085 e.preventDefault(); 26086 var cid = $(this).attr('data-cid'); 26087 var title = $(this).attr('data-title'); 26088 var dialogClasses = $(this).attr('data-dialog-classes'); 26089 var selectedValueUrl = $(this).attr('href'); 26090 getModalHtmlElement('customModal', dialogClasses); 26091 fillModalElement(selectedValueUrl, { 26092 cid: cid, 26093 title: title 26094 }, $('#customModal')); 26095 }); 26096} 26097 26098module.exports = { 26099 setModalBodyMaxHeight: setModalBodyMaxHeight, 26100 getModalHtmlElement: getModalHtmlElement, 26101 onShownBsModal: onShownBsModal, 26102 onModalLoaded: onModalLoaded, 26103 parseHtml: parseHtml, 26104 init: function init() { 26105 onShownBsModal(); 26106 onModalLoaded(); 26107 initCustomModal(); 26108 } 26109}; 26110 26111/***/ }), 26112
26113/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/productTile.js": 26114/*!***************************************************************************************************************!*\ 26115 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/productTile.js ***! 26116 \***************************************************************************************************************/ 26117/*! no static exports found */ 26118/***/ (function(module, exports, __webpack_require__) { 26119 26120"use strict"; 26121 26122 26123var wishlistHelpers = __webpack_require__(/*! core/wishlist/components/helpers */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/helpers.js"); 26124 26125var promiseChains = [null, null, null, null, null, null, null], 26126 promiseIndex = 0; 26127module.exports = { 26128 selectors: { 26129 processing: '.processing', 26130 sending: '.sending' 26131 }, 26132 init: function init() { 26133 var $context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : $('.product[data-replace-content], .product [data-replace-content]'); 26134 var callbackfn = arguments.length > 1 ? arguments[1] : undefined; 26135 var scope = this, 26136 initErrors = 0; 26137 $context.filter(':not(' + scope.selectors.processing + ')').each(function (i, replace) { 26138 var $target = $(replace); 26139 var asyncUrl = $target.data('replace-content') || $target.attr('data-replace-content'); 26140 var deferment = $.Deferred(); 26141 26142 if (['', null, undefined].indexOf(asyncUrl) === -1) { 26143 // Only track deferment if url is requestable 26144 $target.data('deferment', deferment); 26145 promiseChains[promiseIndex] = (promiseChains[promiseIndex] || $.when()).then(function () { 26146 // Seperate deferment-ness of ajax request from actual deferment to allow failures to progress current promise group 26147 $target.data('$xhr', $.ajax({ 26148 url: asyncUrl, 26149 dataType: 'html', 26150 timeout: 60000, 26151 context: $target, 26152 beforeSend: function beforeSend() { 26153 this.addClass(scope.selectors.sending.replace(/\./gi, ' ')); 26154 }, 26155 error: function error() { 26156 var $slide = this.parent('.slide').add(this); 26157 $slide.eq(0).remove(); 26158 initErrors++; 26159 }, 26160 success: function success(data) { 26161 // Per AJAX response populate the product tile placeholder 26162 var $parent = $(this.parent()); 26163 this.replaceWith(data); //reinit tooltips for quick add to cart popover 26164 26165 $('body').trigger('tooltip:init'); 26166 var $wishlistLink = $parent.find('[data-wishlistpid]'); 26167 26168 if ($wishlistLink.length > 0) { 26169 wishlistHelpers.updateLinkData($wishlistLink); 26170 } 26171 }, 26172 complete: function complete() { 26173 deferment.resolve(); 26174 } 26175 })); 26176 return deferment; 26177 }); 26178 promiseIndex = (promiseIndex + 1) % promiseChains.length; 26179 } 26180 }); 26181 26182 if (callbackfn) { 26183 $.when.apply($, promiseChains).then(function () { 26184 return callbackfn.call(null, { 26185 errors: initErrors 26186 }); 26187 }); 26188 } 26189 } 26190}; 26191 26192/***/ }), 26193
26194/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/recaptcha.js": 26195/*!*************************************************************************************************************!*\ 26196 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/recaptcha.js ***! 26197 \*************************************************************************************************************/ 26198/*! no static exports found */ 26199/***/ (function(module, exports, __webpack_require__) { 26200 26201"use strict"; 26202 26203 26204function check(e, next) { 26205 if (typeof grecaptcha !== 'undefined' && grecaptcha) { 26206 grecaptcha.ready(function () { 26207 var actionName = 'submit' + (e && e.target ? (e.target.id + e.target.className).replace(/[^a-zA-Z0-9]+/g, '') : ''); 26208 grecaptcha.execute(window.CachedData.recaptchaSiteKey, { 26209 action: actionName 26210 }).then(function (token) { 26211 var recaptchaTokenInput = $("<input type='hidden' class='form-control' id='recaptchaToken' name='dwfrm_recaptcha_recaptchaToken' value=" + token + ">"); 26212 var recaptchaActionInput = $("<input type='hidden' class='form-control' id='recaptchaAction' name='dwfrm_recaptcha_recaptchaAction' value=" + actionName + ">"); 26213 26214 if (typeof next.data == 'string') { 26215 next.data += next.data.length === 0 ? '' : '&'; 26216 next.data += $.param(recaptchaTokenInput) + '&' + $.param(recaptchaActionInput); 26217 } else { 26218 next.data = next.data || {}; 26219 next.data['dwfrm_recaptcha_recaptchaToken'] = token; 26220 next.data['dwfrm_recaptcha_recaptchaAction'] = actionName; 26221 } 26222 26223 $.ajax(next); 26224 }); 26225 }); 26226 } else { 26227 $.ajax(next); 26228 } 26229} 26230 26231module.exports = { 26232 check: check 26233}; 26234 26235/***/ }), 26236
26237/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/scrollAnimate.js": 26238/*!*****************************************************************************************************************!*\ 26239 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/scrollAnimate.js ***! 26240 \*****************************************************************************************************************/ 26241/*! no static exports found */ 26242/***/ (function(module, exports, __webpack_require__) { 26243 26244"use strict"; 26245 26246 26247module.exports = function (element) { 26248 var hasFixedHeader = $('header').hasClass('fixed-header'); 26249 var hasFixedHeaderEnhanced = $('header').hasClass('fixed-header-enhanced'); 26250 var position = 0; 26251 26252 if (element && element.length) { 26253 if (hasFixedHeader || hasFixedHeaderEnhanced) { 26254 var headerNavHeight = $('.header-nav').length ? $('.header-nav').height() : 0; 26255 var headerBannerHeight = $('.header-banner').length ? $('.header-banner').height() : 0; 26256 var utilityBannerHeight = $('.utility-header').length ? $('.utility-header').height() : 0; 26257 var fullHeaderHeight = (headerNavHeight + headerBannerHeight + utilityBannerHeight) * 2; 26258 26259 if (element.offset().top > fullHeaderHeight) { 26260 position = element.length ? element.offset().top - headerNavHeight : 0; 26261 } 26262 } else { 26263 position = element.offset().top; 26264 } 26265 } 26266 26267 $('html, body').animate({ 26268 scrollTop: position 26269 }, 500); 26270 26271 if (!element) { 26272 $('.logo-home').focus(); 26273 } 26274}; 26275 26276/***/ }), 26277
26278/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/search.js": 26279/*!**********************************************************************************************************!*\ 26280 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/search.js ***! 26281 \**********************************************************************************************************/ 26282/*! no static exports found */ 26283/***/ (function(module, exports, __webpack_require__) { 26284 26285"use strict"; 26286 26287 26288function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 26289 26290var debounce = __webpack_require__(/*! lodash/debounce */ "../storefront-reference-architecture/node_modules/lodash/debounce.js"); 26291 26292var endpoint = $('.suggestions-wrapper').data('url'); 26293 26294var sitePreferencesUtils = __webpack_require__(/*! ../preferences/sitePreferencesUtils */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/preferences/sitePreferencesUtils.js"); 26295 26296var preferences = sitePreferencesUtils.getSitePreferences(); 26297 26298var SiteConstants = __webpack_require__(/*! constants/SiteConstants */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/scripts/constants/SiteConstants.js"); // Original vars from search.js 26299 26300 26301var minChars = preferences.headerSearchMinTermLength; 26302var UP_KEY = SiteConstants.UP_KEY; 26303var DOWN_KEY = SiteConstants.DOWN_KEY; 26304var DIRECTION_DOWN = SiteConstants.DIRECTION_DOWN; 26305var DIRECTION_UP = SiteConstants.DIRECTION_UP; 26306/** 26307 * Retrieves Suggestions element relative to scope 26308 * 26309 * @param {Object} scope - Search input field DOM element 26310 * @return {JQuery} - .suggestions-wrapper element 26311 */ 26312 26313function getSuggestionsWrapper(scope) { 26314 return $(scope).siblings('.suggestions-wrapper'); 26315} 26316/** 26317 * Determines whether DOM element is inside the .search-mobile class 26318 * 26319 * @param {Object} scope - DOM element, usually the input.search-field element 26320 * @return {boolean} - Whether DOM element is inside div.search-mobile 26321 */ 26322 26323 26324function isMobileSearch(scope) { 26325 return !!$(scope).closest('.search-mobile').length; 26326} 26327/** 26328 * Remove modal classes needed for mobile suggestions 26329 * 26330 */ 26331 26332 26333function clearModals() { 26334 $('body').removeClass('modal-open'); 26335 $('header').siblings().attr('aria-hidden', 'false'); 26336 $('.suggestions').removeClass('modal'); 26337} 26338/** 26339 * Apply modal classes needed for mobile suggestions 26340 * 26341 * @param {Object} scope - Search input field DOM element 26342 */ 26343 26344 26345function applyModals(scope) { 26346 if (module.exports.isMobileSearch(scope)) { 26347 $('body').addClass('modal-open'); 26348 $('header').siblings().attr('aria-hidden', 'true'); 26349 module.exports.getSuggestionsWrapper(scope).find('.suggestions').addClass('modal'); 26350 } 26351} 26352/** 26353 * Tear down Suggestions panel 26354 */ 26355 26356 26357function tearDownSuggestions() { 26358 $('input.search-field').val(''); 26359 module.exports.clearModals(); 26360 $('.search-mobile .suggestions').unbind('scroll'); 26361 $('.suggestions-wrapper').empty(); 26362} 26363/** 26364 * Toggle search field icon from search to close and vice-versa 26365 * 26366 * @param {string} action - Action to toggle to 26367 */ 26368 26369 26370function toggleSuggestionsIcon(action) { 26371 var mobileSearchIcon = '.search-mobile button.'; 26372 var iconSearch = 'fa-search'; 26373 var iconSearchClose = 'fa-close'; 26374 26375 if (action === 'close') { 26376 $(mobileSearchIcon + iconSearch).removeClass(iconSearch).addClass(iconSearchClose).attr('type', 'button'); 26377 } else { 26378 $(mobileSearchIcon + iconSearchClose).removeClass(iconSearchClose).addClass(iconSearch).attr('type', 'submit'); 26379 } 26380} 26381/** 26382 * Determines whether the "More Content Below" icon should be displayed 26383 * 26384 * @param {Object} scope - DOM element, usually the input.search-field element 26385 */ 26386 26387 26388function handleMoreContentBelowIcon(scope) { 26389 if ($(scope).scrollTop() + $(scope).innerHeight() >= $(scope)[0].scrollHeight) { 26390 $('.more-below').fadeOut(); 26391 } else { 26392 $('.more-below').fadeIn(); 26393 } 26394} 26395/** 26396 * Positions Suggestions panel on page 26397 * 26398 * @param {Object} scope - DOM element, usually the input.search-field element 26399 */ 26400 26401 26402function positionSuggestions(scope) { 26403 var outerHeight; 26404 var $scope; 26405 var $suggestions; 26406 var top; 26407 26408 if (module.exports.isMobileSearch(scope)) { 26409 $scope = $(scope); 26410 top = $scope.offset().top; 26411 outerHeight = $scope.outerHeight(); 26412 $suggestions = module.exports.getSuggestionsWrapper(scope).find('.suggestions'); 26413 $suggestions.css('top', top + outerHeight); 26414 module.exports.handleMoreContentBelowIcon(scope); // Unfortunately, we have to bind this dynamically, as the live scroll event was not 26415 // properly detecting dynamic suggestions element's scroll event 26416 26417 $suggestions.scroll(function () { 26418 module.exports.handleMoreContentBelowIcon(this); 26419 }); 26420 } 26421} 26422/** 26423 * Process Ajax response for SearchServices-GetSuggestions 26424 * 26425 * @param {Object|string} response - Empty object literal if null response or string with rendered 26426 * suggestions template contents 26427 */ 26428 26429 26430function processResponse(response) { 26431 var $suggestionsWrapper = module.exports.getSuggestionsWrapper(this).empty(); 26432 $.spinner().stop(); 26433 26434 if (_typeof(response) !== 'object') { 26435 $suggestionsWrapper.append(response).show(); 26436 $(this).siblings('.reset-button').addClass('d-sm-block'); 26437 module.exports.positionSuggestions(this); 26438 26439 if (isMobileSearch(this)) { 26440 module.exports.toggleSuggestionsIcon('close'); 26441 module.exports.applyModals(this); 26442 } // Trigger screen reader by setting aria-describedby with the new suggestion message. 26443 26444 26445 var suggestionsList = $('.suggestions .item'); 26446 26447 if ($(suggestionsList).length) { 26448 $('input.search-field').attr('aria-describedby', 'search-result-count'); 26449 } else { 26450 $('input.search-field').removeAttr('aria-describedby'); 26451 } 26452 } else { 26453 $suggestionsWrapper.hide(); 26454 } 26455} 26456/** 26457 * Retrieve suggestions 26458 * 26459 * @param {Object}
26459 scope - Search field DOM element 26460 */ 26461 26462 26463function getSuggestions(scope) { 26464 if ($(scope).val().length >= minChars) { 26465 $.spinner().start(); 26466 $.ajax({ 26467 context: scope, 26468 url: endpoint + encodeURIComponent($(scope).val()), 26469 method: 'GET', 26470 success: processResponse, 26471 error: function error() { 26472 $.spinner().stop(); 26473 } 26474 }); 26475 } else { 26476 module.exports.toggleSuggestionsIcon('search'); 26477 $(scope).siblings('.reset-button').removeClass('d-sm-block'); 26478 module.exports.clearModals(); 26479 module.exports.getSuggestionsWrapper(scope).empty(); 26480 } 26481} 26482/** 26483 * Handle Search Suggestion Keyboard Arrow Keys 26484 * 26485 * @param {Integer} direction takes positive or negative number constant, DIRECTION_UP (-1) or DIRECTION_DOWN (+1) 26486 */ 26487 26488 26489function handleArrow(direction) { 26490 // get all li elements in the suggestions list 26491 var suggestionsList = $('.suggestions .item'); 26492 26493 if (suggestionsList.filter('.selected').length === 0) { 26494 suggestionsList.first().addClass('selected'); 26495 $('input.search-field').each(function () { 26496 $(this).attr('aria-activedescendant', suggestionsList.first()[0].id); 26497 }); 26498 } else { 26499 suggestionsList.each(function (index) { 26500 var idx = index + direction; 26501 26502 if ($(this).hasClass('selected')) { 26503 $(this).removeClass('selected'); 26504 $(this).removeAttr('aria-selected'); 26505 26506 if (suggestionsList.eq(idx).length !== 0) { 26507 suggestionsList.eq(idx).addClass('selected'); 26508 suggestionsList.eq(idx).attr('aria-selected', true); 26509 $(this).removeProp('aria-selected'); 26510 $('input.search-field').each(function () { 26511 $(this).attr('aria-activedescendant', suggestionsList.eq(idx)[0].id); 26512 }); 26513 } else { 26514 suggestionsList.first().addClass('selected'); 26515 suggestionsList.first().attr('aria-selected', true); 26516 $('input.search-field').each(function () { 26517 $(this).attr('aria-activedescendant', suggestionsList.first()[0].id); 26518 }); 26519 } 26520 26521 return false; 26522 } 26523 26524 return true; 26525 }); 26526 } 26527} //Init functions below 26528 26529 26530function simpleSearch() { 26531 $('form[name="simpleSearch"]').submit(function (e) { 26532 var suggestionsList = $('.suggestions .item'); 26533 26534 if (suggestionsList.filter('.selected').length !== 0) { 26535 e.preventDefault(); 26536 suggestionsList.filter('.selected').find('a')[0].click(); 26537 } 26538 }); 26539} 26540 26541function searchKeyListener() { 26542 $('input.search-field').each(function () { 26543 /** 26544 * Use debounce to avoid making an Ajax call on every single key press by waiting a few 26545 * hundred milliseconds before making the request. Without debounce, the user sees the 26546 * browser blink with every key press. 26547 */ 26548 var debounceSuggestions = debounce(getSuggestions, 300); 26549 $(this).on('keyup focus', function (e) { 26550 // Capture Down/Up Arrow Key Events 26551 switch (e.which) { 26552 case DOWN_KEY: 26553 module.exports.handleArrow(DIRECTION_DOWN); 26554 e.preventDefault(); // prevent moving the cursor 26555 26556 break; 26557 26558 case UP_KEY: 26559 module.exports.handleArrow(DIRECTION_UP); 26560 e.preventDefault(); // prevent moving the cursor 26561 26562 break; 26563 26564 default: 26565 debounceSuggestions(this, e); 26566 } 26567 }); 26568 }); 26569} 26570 26571function hideSuggestions() { 26572 $('body').on('click', function (e) { 26573 if (!$('.suggestions').has(e.target).length && !$(e.target).hasClass('search-field')) { 26574 $('.suggestions').hide(); 26575 } 26576 }); 26577} 26578 26579function closeOnMobile() { 26580 $('body').on('click touchend', '.search-mobile button.fa-close', function (e) { 26581 e.preventDefault(); 26582 $('.suggestions').hide(); 26583 module.exports.toggleSuggestionsIcon('search'); 26584 module.exports.tearDownSuggestions(); 26585 }); 26586} 26587 26588function resetSearch() { 26589 $('.site-search .reset-button').on('click', function () { 26590 $(this).removeClass('d-sm-block'); 26591 }); 26592} 26593 26594module.exports = { 26595 getSuggestionsWrapper: getSuggestionsWrapper, 26596 isMobileSearch: isMobileSearch, 26597 clearModals: clearModals, 26598 applyModals: applyModals, 26599 tearDownSuggestions: tearDownSuggestions, 26600 toggleSuggestionsIcon: toggleSuggestionsIcon, 26601 handleMoreContentBelowIcon: handleMoreContentBelowIcon, 26602 positionSuggestions: positionSuggestions, 26603 processResponse: processResponse,
26604 getSuggestions: getSuggestions, 26605 handleArrow: handleArrow, 26606 simpleSearch: simpleSearch, 26607 searchKeyListener: searchKeyListener, 26608 hideSuggestions: hideSuggestions, 26609 closeOnMobile: closeOnMobile, 26610 resetSearch: resetSearch, 26611 init: function init() { 26612 module.exports.simpleSearch(); 26613 module.exports.searchKeyListener(); 26614 module.exports.hideSuggestions(); 26615 module.exports.closeOnMobile(); 26616 module.exports.resetSearch(); 26617 } 26618}; 26619 26620/***/ }), 26621
26622/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/slider.js": 26623/*!**********************************************************************************************************!*\ 26624 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/slider.js ***! 26625 \**********************************************************************************************************/ 26626/*! no static exports found */ 26627/***/ (function(module, exports, __webpack_require__) { 26628 26629"use strict"; 26630 26631 26632function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 26633 26634var tinySlider = __webpack_require__(/*! tiny-slider/src/tiny-slider */ "../rvw_autobahn_core/node_modules/tiny-slider/src/tiny-slider.js"); 26635 26636var zoom = __webpack_require__(/*! jquery-zoom */ "../rvw_autobahn_core/node_modules/jquery-zoom/jquery.zoom.js"); 26637 26638var imagesLoaded = __webpack_require__(/*! imagesloaded */ "../rvw_autobahn_core/node_modules/imagesloaded/imagesloaded.js"); 26639 26640__webpack_require__(/*! jquery.scrollintoview */ "../rvw_autobahn_core/node_modules/jquery.scrollintoview/jquery.scrollintoview.js"); 26641 26642var SiteConstants = __webpack_require__(/*! constants/SiteConstants */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/scripts/constants/SiteConstants.js"); 26643 26644var mediumBreakpoint = SiteConstants.BreakpointSizes.md; 26645var largeBreakpoint = SiteConstants.BreakpointSizes.lg; 26646var abSlider = {}; // Check custom attributes on slider element to get settings, falling back to defaults if not populated 26647 26648abSlider.getSliderAttributes = function ($slider) { 26649 var attributes = new Object(); // Autoplay (defaults to false) 26650 26651 attributes.autoplayDelay = parseInt($slider.attr('data-slider-autoplay')); 26652 attributes.autoplay = isNaN(attributes.autoplayDelay) ? false : true; 26653 attributes.autoplayTimeout = attributes.autoplay ? attributes.autoplayDelay : 5000; // Loop (defaults to true) 26654 26655 attributes.loop = $slider.attr('data-slider-loop') === 'false' ? false : true; // Number of items to show (defaults to 1 at all breakpoints) 26656 26657 attributes.itemsNumber = parseInt($slider.attr('data-slider-items')); 26658 attributes.items = isNaN(attributes.itemsNumber) ? 1 : attributes.itemsNumber; 26659 attributes.itemsNumberMedium = parseInt($slider.attr('data-slider-items-md')); 26660 attributes.itemsMedium = isNaN(attributes.itemsNumberMedium) ? 1 : attributes.itemsNumberMedium; 26661 attributes.itemsNumberLarge = parseInt($slider.attr('data-slider-items-lg')); 26662 attributes.itemsLarge = isNaN(attributes.itemsNumberLarge) ? 1 : attributes.itemsNumberLarge; // Gutter space between items (defaults to 0px) 26663 26664 attributes.gutter = parseInt($slider.attr('data-slider-gutter')) || 0; 26665 attributes.gutterMedium = parseInt($slider.attr('data-slider-gutter-md')) || 0; 26666 attributes.gutterLarge = parseInt($slider.attr('data-slider-gutter-lg')) || 0; // Slide animation speed (defaults to 300ms) 26667 26668 attributes.speed = parseInt($slider.attr('data-slider-speed')) || 300; // Slide animation (defaults to standard Carousel behavior) 26669 26670 attributes.mode = $slider.attr('data-slider-mode') || 'carousel'; 26671 attributes.animateIn = $slider.attr('data-slider-animatein') || 'no-animation'; 26672 attributes.animateOut = $slider.attr('data-slider-animateout') || 'no-animation'; // Thumbnail settings (defaults to false) 26673 // If a selector is set for [data-slider-thumbnail container], the rest of the settings populate automatically 26674 26675 var $thumbnailSlider = $($slider.attr('data-slider-thumbnail-container')); 26676 attributes.thumbnailContainer = $slider.attr('data-slider-thumbnail-container') || false; 26677 attributes.navContainer = $thumbnailSlider.length ? $thumbnailSlider.find('.slider')[0] : false; 26678 attributes.navAsThumbnails = attributes.navContainer === false ? false : true; 26679 attributes.controlsContainer = $thumbnailSlider.length ? $thumbnailSlider.find('.slider-thumbnail-controls')[0] : false; 26680 return attributes; 26681}; // Build parameter object to create a slider 26682 26683 26684abSlider.getSliderParams = function ($slider, slideItems) { 26685 var _responsive; 26686 26687 var attributes = abSlider.getSliderAttributes($slider); 26688 var params = { 26689 container: $slider.find('.slider')[0], 26690 loop: attributes.loop, 26691 items: attributes.items, 26692 autoplay: attributes.autoplay, 26693 autoplayTimeout: attributes.autoplayTimeout, 26694 autoplayHoverPause: true, 26695 mode: attributes.mode, 26696 gutter: attributes.gutter, 26697 speed: attributes.speed, 26698 navContainer: attributes.navContainer, 26699 navAsThumbnails: attributes.navAsThumbnails, 26700 controlsContainer: attributes.controlsContainer, 26701 preventScrollOnTouch: 'auto', 26702 // prevents mobile errors in chrome 26703 responsive: (_responsive = {}, _defineProperty(_responsive, mediumBreakpoint, {
26704 items: attributes.itemsMedium, 26705 gutter: attributes.gutterMedium 26706 }), _defineProperty(_responsive, largeBreakpoint, { 26707 items: attributes.itemsLarge, 26708 gutter: attributes.gutterLarge 26709 }), _responsive) 26710 }; 26711 26712 if (slideItems) { 26713 params.slideItems = slideItems; 26714 } 26715 26716 if (params.mode === 'gallery') { 26717 params.animateIn = attributes.animateIn; 26718 params.animateOut = attributes.animateOut; 26719 } 26720 26721 return params; 26722}; // Uses scrollintoview jQuery plugin (needed for IE11 support) to scroll the active thumbnail into view 26723// Note: Thumbnail container needs to be scrollable (overflow: auto) for this to work 26724 26725 26726abSlider.slideIntoView = function (slider) { 26727 if (slider.navContainer !== false && $(slider.navContainer).hasClass('slider')) { 26728 var $activeThumbnail = $(slider.navContainer).find('.tns-nav-active'); 26729 $activeThumbnail.scrollintoview(); 26730 } 26731}; // Build out slide html for replacing images on variant selection 26732 26733 26734abSlider.getUpdatedSlideItems = function (images, assets, isThumbnail) { 26735 var slideItems = []; 26736 images['large'].forEach(function (image) { 26737 var $slideElement = $('<div></div>').attr('class', 'slide'); 26738 var $imageElement = $('<img/>'); 26739 26740 if (!isThumbnail) { 26741 $slideElement.attr('data-zoom-image', images['hi-res'].length ? images['hi-res'][image.index].url : images['large'][image.index].url); 26742 } 26743 26744 $imageElement.attr({ 26745 'src': image.url, 26746 'alt': image.alt + ' image number ' + (parseInt(image.index) + 1).toFixed(0), 26747 'class': 'd-block img-fluid', 26748 'itemprop': 'image' 26749 }); 26750 $slideElement.append($imageElement); 26751 slideItems.push($slideElement[0]); 26752 }); 26753 abSlider.getPDPGalleryAssetSlides(slideItems, assets, isThumbnail); 26754 return slideItems; 26755}; // Fetch any additional slides needed from PDP Gallery Asset IDs attribute 26756 26757 26758abSlider.getPDPGalleryAssetSlides = function (slideItems, assets, isThumbnail) { 26759 var slideCount = slideItems.length; 26760 var hasVideo = false; 26761 assets.forEach(function (asset, index) { 26762 var $slideElement = $('<div class="pdp-gallery-asset"></div>'); 26763 var $imageElement = $('<img/>'); 26764 var $videoButton = $('<span class="video-thumbnail-button"></span>'); 26765 26766 if (asset.isVideo) { 26767 hasVideo = true; 26768 } 26769 26770 if (!isThumbnail) { 26771 $slideElement.attr('class', 'slide no-zoom'); // ajax call to get html for asset 26772 26773 $.ajax({ 26774 url: asset.assetRenderUrl, 26775 method: 'GET', 26776 success: function success(data) { 26777 var $sliderContainer = $slideElement.closest('.slider-container'); 26778 $slideElement.html(data); // after all assets are added, reinit any necessary javascript 26779 26780 if (index + 1 >= assets.length) { 26781 $slideElement.trigger('tooltip:init'); // reinit tooltips in case of hotspot asset 26782 26783 if (hasVideo) { 26784 $('body').trigger('ajax:load.ajaxEvents', [$sliderContainer]); // reinit videos in video/index.js 26785 26786 $('body').trigger('slider:videosLoaded'); // trigger custom event set up in bindSliderUpdateEvent 26787 } 26788 } 26789 }, 26790 error: function error(err) { 26791 console.error('There was an issue retrieving this asset: ', err); 26792 } 26793 }); 26794 } else { 26795 $slideElement.attr('class', 'slide video-container'); 26796 $imageElement.attr({ 26797 'src': asset.thumbnail, 26798 'alt': 'image number ' + (slideCount + 1).toFixed(0), 26799 'class': 'd-block img-fluid', 26800 'itemprop': 'image' 26801 }); 26802 } 26803 26804 slideCount++; 26805 $slideElement.append($imageElement); 26806 26807 if (asset.isVideo) { 26808 $slideElement.append($videoButton); 26809 } 26810 26811 slideItems.push($slideElement[0]); 26812 }); 26813}; // Listen for the slider:update event and reinitialize slider with new slides 26814 26815 26816abSlider.bindSliderUpdateEvent = function ($sliderContainer, slider) { 26817 $sliderContainer.off('slider:update').on('slider:update', '.slider', function (event, data) { 26818 var $updatedSliderContainer = $(event.target).closest('.slider-container'); 26819 var isThumbnail = $updatedSliderContainer.hasClass('slider-thumbnails'); // MARTIN MOD : pass zoom flag and videos through to getUpdatedSlideItems which is overridden in client core 26820 26821 var updatedSlideItems = data !== undefined ? abSlider.getUpdatedSlideItems(data.images, data.assets, data.videos, isThumbnail, data.zoom) : null; 26822 var updatedParams = abSlider.getSliderParams($updatedSliderContainer, updatedSlideItems); // Update carousel classes to handle number of images changing 26823 26824 if (isThumbnail) { 26825 var $thumbnailContainer = $updatedSliderContainer.closest('.primary-images-thumbn
26825ails'); 26826 var $mainImageContainer = $thumbnailContainer.prev('.primary-images-main'); 26827 26828 if (data.images.small && data.images.small.length > 1) { 26829 $thumbnailContainer.removeClass('d-none'); 26830 $mainImageContainer.addClass('product-has-thumbnails col-lg-9'); 26831 } else { 26832 $thumbnailContainer.addClass('d-none'); 26833 $mainImageContainer.removeClass('product-has-thumbnails col-lg-9'); 26834 } 26835 } // Remove and re-add slider markup if there are new slides to show 26836 26837 26838 if (updatedParams.slideItems) { 26839 var $newSliderElement = $('<div></div>').attr({ 26840 'class': 'slider', 26841 'id': updatedParams.container.id 26842 }); 26843 var $newSliderControls = $updatedSliderContainer.find('.slider-thumbnail-controls').addClass('d-none'); 26844 $newSliderElement.html(updatedParams.slideItems); 26845 $updatedSliderContainer.html($newSliderElement); 26846 updatedParams.container = $newSliderElement[0]; // If this is a thumbnails slider, also add the arrow controls and update the item count 26847 26848 if (isThumbnail) { 26849 $updatedSliderContainer.append($newSliderControls); 26850 updatedParams.items = updatedParams.slideItems.length; 26851 updatedParams.responsive[mediumBreakpoint].items = updatedParams.slideItems.length; 26852 updatedParams.responsive[largeBreakpoint].items = updatedParams.slideItems.length; 26853 } 26854 } // Reinitialize slider using new params 26855 26856 26857 slider = tinySlider.tns(updatedParams); 26858 slider.events.on('transitionEnd', abSlider.slideIntoView); 26859 abSlider.enableImageZoom($updatedSliderContainer); 26860 26861 if (isThumbnail) { 26862 abSlider.handleThumbnailArrows($updatedSliderContainer, slider); 26863 } else { 26864 // listen for videos getting updated from getUpdatedSlideItems function 26865 $('body').on('slider:videosLoaded', function () { 26866 abSlider.handleSliderVideos($updatedSliderContainer, slider); 26867 }); 26868 } 26869 }); 26870}; // Listen for the slider:destroy event 26871 26872 26873abSlider.bindSliderDestroyEvent = function ($sliderContainer, slider) { 26874 $sliderContainer.off('slider:destroy').on('slider:destroy', '.slider', function () { 26875 slider.destroy(); 26876 }); 26877}; // Enables zoomed images using jquery-zoom 26878 26879 26880abSlider.enableImageZoom = function ($sliderContainer) { 26881 if ($sliderContainer.closest('.primary-images').length && !$sliderContainer.hasClass('slider-thumbnails') && !window.isMobile()) { 26882 var $slides = $sliderContainer.find('.slide'); 26883 $slides.each(function (index, slide) { 26884 var $slide = $(slide); 26885 26886 if (!$slide.hasClass('no-zoom')) { 26887 var zoomImageUrl = $slide.data('zoom-image') || $slide.find('img').attr('src'); 26888 $slide.zoom({ 26889 url: zoomImageUrl, 26890 magnify: 1, 26891 touch: false 26892 }); 26893 } 26894 }); 26895 } 26896}; // Determine whether to show thumbnail arrows based on overflow state 26897 26898 26899abSlider.handleThumbnailArrows = function ($sliderContainer, slider) { 26900 if ($sliderContainer.hasClass('slider-thumbnails')) { 26901 var $slider = $sliderContainer.find('.slider'); 26902 var $arrows = $sliderContainer.find('.slider-thumbnail-controls'); 26903 var buffer = 5; // adding a buffer to prevent arrows from showing if the last slide is mostly visible 26904 26905 var containerSize; 26906 var sliderSize; 26907 $slider.imagesLoaded().done(function () { 26908 if (window.isMobile()) { 26909 containerSize = $sliderContainer.outerWidth(); 26910 sliderSize = $slider[0].scrollWidth; 26911 } else { 26912 containerSize = $sliderContainer.outerHeight(); 26913 sliderSize = $slider[0].scrollHeight; 26914 } 26915 26916 if (sliderSize - buffer >= containerSize) { 26917 $arrows.removeClass('d-none'); 26918 } 26919 }); 26920 } 26921}; // Check for videos and pause them when they're not in the active slide 26922 26923 26924abSlider.handleSliderVideos = function ($sliderContainer, slider) { 26925 var $videos = $sliderContainer.find('.hero-media.video-container, .experience-commerce_assets-video>.video-container'); 26926 26927 if ($videos.length) { 26928 slider.events.on('indexChanged', function () { 26929 $videos.each(function (_i, element) { 26930 var $videoContainer = $(element); 26931 var videoID = $videoContainer.find('.video-player').attr('id'); 26932 var player = window.Players[videoID]; 26933 26934 if (player) { 26935 if (!$videoContainer.closest('.tns-slide-active').length) { 26936 player.pause(); 26937 }
26937 else if (player.config.autoplay) { 26938 player.play(); 26939 } 26940 } 26941 }); 26942 }); 26943 } 26944}; // Handle Pause/Play Button 26945 26946 26947abSlider.bindPauseButton = function ($sliderContainer, slider) { 26948 var sliderButtonPlacement = $sliderContainer.attr('data-slider-pause-button-placement'); 26949 26950 if ($sliderContainer[0].hasAttribute('data-slider-autoplay') && $sliderContainer.attr('data-slider-autoplay') != 'false' && $sliderContainer[0].hasAttribute('data-slider-pause-button-placement') && $sliderContainer.attr('data-slider-pause-button-placement') != "none") { 26951 if (sliderButtonPlacement == 'with-pagination') { 26952 $sliderContainer.find('.tns-nav').addClass('with-pagination-btn').append('<a href="#" class="tns-nav-controller"><span class="sr-only">stop and start slider</span></a>'); 26953 } else { 26954 $sliderContainer.prepend('<a href="#" class="tns-nav-controller"><span class="sr-only">stop and start slider</span></a>'); 26955 } 26956 26957 ; 26958 $('.tns-nav-controller').addClass(sliderButtonPlacement); 26959 $sliderContainer.on('click', '.tns-nav-controller', function () { 26960 event.preventDefault(); 26961 $(this).toggleClass('pause'); 26962 $sliderContainer.toggleClass('slider-pause'); 26963 26964 if ($sliderContainer.hasClass('slider-pause')) { 26965 slider.pause(); 26966 } else { 26967 slider.play(); 26968 } 26969 }); 26970 } 26971}; 26972 26973abSlider.initializeSliders = function () { 26974 var $context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : $('body'); 26975 var scope = this; // delay-init is different from replace-content 26976 26977 var $sliderContainers = $context.find('.slider-container:not(.delay-init)'); 26978 $sliderContainers.each(function (i, slider) { 26979 var $sliderContainer = $(slider); 26980 var params = scope.getSliderParams($sliderContainer); 26981 var promisegroup = []; 26982 var $replace = $sliderContainer.find('[data-replace-content]'); 26983 $replace.each(function (i, replace) { 26984 var $target = $(replace); 26985 var deferment = $target.data('deferment'); 26986 26987 if (deferment && !deferment.isResolved && deferment.state() === 'pending') { 26988 promisegroup.push(deferment); 26989 } 26990 }); // Done will also execute if promise group is empty [] 26991 26992 $.when.apply($, promisegroup).done(function () { 26993 $(params.container).find('.slide:empty').remove(); 26994 scope.applyTinySlider($sliderContainer, params); 26995 }); 26996 }); 26997}; 26998 26999abSlider.applyTinySlider = function ($container, params) { 27000 if (!$container) return; 27001 var tslider = tinySlider.tns(params); 27002 27003 if (!!tslider) { 27004 tslider.events.on('transitionStart', this.slideIntoView); 27005 this.bindPauseButton($container, tslider); 27006 this.bindSliderUpdateEvent($container, tslider); 27007 this.bindSliderDestroyEvent($container, tslider); 27008 this.enableImageZoom($container); 27009 this.handleThumbnailArrows($container, tslider); 27010 this.handleSliderVideos($container, tslider); 27011 $('body').trigger('slider:init.sliderEvents', [$container]); 27012 } 27013 27014 $container.data('tns', tslider); 27015 $container.trigger('tooltip:init'); 27016}; 27017 27018abSlider.initializeQuickviewModalSliders = function () { 27019 $('body').off('quickview:ready').on('quickview:ready', function (event, modal) { 27020 abSlider.initializeSliders($(modal)); 27021 }); 27022}; 27023 27024abSlider.initializeWishlistModalSliders = function () { 27025 $('body').off('editwishlistproduct:ready').on('editwishlistproduct:ready', function (event, modal) { 27026 abSlider.initializeSliders($(modal)); 27027 }); 27028}; 27029 27030abSlider.initializeTargetSliders = function () { 27031 $('body').off('targetslider:ready').on('targetslider:ready', function (event, target) { 27032 abSlider.initializeSliders($(target)); 27033 }); 27034}; 27035 27036abSlider.init = function () { 27037 abSlider.initializeSliders(); 27038 abSlider.initializeQuickviewModalSliders(); 27039 abSlider.initializeWishlistModalSliders(); 27040 abSlider.initializeTargetSliders(); 27041}; 27042 27043module.exports = abSlider; 27044 27045/***/ }), 27046
27047/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/tabs.js": 27048/*!********************************************************************************************************!*\ 27049 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/tabs.js ***! 27050 \********************************************************************************************************/ 27051/*! no static exports found */ 27052/***/ (function(module, exports, __webpack_require__) { 27053 27054"use strict"; 27055 27056 27057var abSlider = __webpack_require__(/*! ./slider */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/slider.js"); 27058 27059function handleTabSliders() { 27060 var $tabPane = $('.tab-pane'); 27061 var $sliders = $tabPane.find('.slider-container'); 27062 $sliders.each(function (_i, slider) { 27063 var $tab = $(slider).closest('.nav-tabs-container').find('a[data-toggle="tab"]'); 27064 $tab.on('shown.bs.tab', function (event) { 27065 var scrollTop = $(document).scrollTop(); 27066 var $newTab = $(event.target.hash); 27067 var $newTabSlider = $newTab.find('.slider-container .slider'); 27068 $newTabSlider.trigger('slider:destroy'); 27069 abSlider.initializeSliders($newTab); 27070 $(document).scrollTop(scrollTop); // reset to original scroll position 27071 }); 27072 }); 27073} 27074 27075; 27076 27077function handleTabVideos() { 27078 var $tabPane = $('.tab-pane'); 27079 var $videos = $tabPane.find('.hero-media.video-container, .background-image.video-container, .experience-commerce_assets-video>.video-container'); 27080 27081 if ($videos.length) { 27082 $('a[data-toggle="tab"]').on('show.bs.tab', function (event) { 27083 var $newTab = $(event.target.hash); 27084 var newTabVideoId = $newTab.find('.video-player').attr('id'); 27085 var videoToPlay = window.Players[newTabVideoId]; 27086 var $oldTab = $(event.relatedTarget.hash); 27087 var oldTabVideoId = $oldTab.find('.video-player').attr('id'); 27088 var videoToPause = window.Players[oldTabVideoId]; 27089 27090 if (videoToPause) { 27091 videoToPause.pause(); 27092 } 27093 27094 if (videoToPlay) { 27095 videoToPlay.play(); 27096 } 27097 }); 27098 } 27099} 27100 27101; 27102 27103function updateTabOverflowClass($tabsContainer) { 27104 $tabsContainer.each(function (_index, tabContainer) { 27105 var $navContainer = $(tabContainer).find('.nav'); 27106 var $containerWidth = Math.floor($navContainer.outerWidth()); 27107 var $tabsWidth = 0; 27108 var $tabs = $navContainer.children(); 27109 $(tabContainer).css('--nav-tabs-height', $navContainer.height() + 'px'); 27110 $tabs.each(function (_index, tab) { 27111 $tabsWidth += Math.floor($(tab).outerWidth()); 27112 }); 27113 27114 if ($tabsWidth > $containerWidth) { 27115 $(tabContainer).addClass('has-overflow'); 27116 } else { 27117 $(tabContainer).removeClass('has-overflow'); 27118 } 27119 }); 27120} 27121 27122function handleTabOverflow() { 27123 var $tabsContainer = $('.nav-tabs-container'); 27124 27125 if ($tabsContainer.length && $tabsContainer.find('.nav').length) { 27126 module.exports.methods.updateTabOverflowClass($tabsContainer); 27127 $(window).resize(function () { 27128 module.exports.methods.updateTabOverflowClass($tabsContainer); 27129 }); 27130 } 27131} 27132 27133; 27134module.exports = { 27135 methods: { 27136 updateTabOverflowClass: updateTabOverflowClass 27137 }, 27138 handleTabSliders: handleTabSliders, 27139 handleTabVideos: handleTabVideos, 27140 handleTabOverflow: handleTabOverflow 27141}; 27142 27143/***/ }), 27144
27145/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/toast.js": 27146/*!*********************************************************************************************************!*\ 27147 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/toast.js ***! 27148 \*********************************************************************************************************/ 27149/*! no static exports found */ 27150/***/ (function(module, exports, __webpack_require__) { 27151 27152"use strict"; 27153 27154 27155function show(type, message, dismissible) { 27156 var dismissibleClass = dismissible ? 'alert-dismissible' : ''; 27157 var indexClass = 'alert-' + $('.toast-messages .alert').length || false; 27158 var closeButton = dismissible ? '<button type="button" class="btn close icon-close" data-dismiss="alert" aria-label="Close"></button>' : ''; 27159 27160 if (!$('.toast-messages').length) { 27161 $('body').append('<div class="toast-messages"></div>'); 27162 } 27163 27164 $('.toast-messages').append('<div class="alert alert-' + type + ' ' + indexClass + ' ' + dismissibleClass + '" role="alert">' + message + closeButton + '</div>'); // Remove non-dismissible alerts from the DOM after 5 seconds 27165 27166 setTimeout(function () { 27167 $('.toast-messages').find('.' + indexClass + ':not(.alert-dismissible)').remove(); 27168 }, 5000); 27169} 27170 27171module.exports = { 27172 methods: { 27173 show: show 27174 }, 27175 bindToastButtonClicks: function bindToastButtonClicks() { 27176 $('body').on('click', '[data-toast]', function (event) { 27177 event.preventDefault(); 27178 var $button = $(event.target); 27179 var type = $button.data('toast'); 27180 var message = $button.data('content'); 27181 var dismissible = $button.data('dismissible') || false; 27182 show(type, message, dismissible); 27183 }); 27184 } 27185}; 27186 27187/***/ }), 27188
27189/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/toolTip.js": 27190/*!***********************************************************************************************************!*\ 27191 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/toolTip.js ***! 27192 \***********************************************************************************************************/ 27193/*! no static exports found */ 27194/***/ (function(module, exports, __webpack_require__) { 27195 27196"use strict"; 27197 27198 27199function getTooltipTitle() { 27200 return $(this).find('.tooltip'); 27201} 27202 27203function enableTooltipsAndPopovers() { 27204 // Initialize tooltips. This also replaces the SFRA custom tooltip with the Bootstrap one 27205 // "trigger" is set to manual in order to add functionality to allow for tooltip to stay open on hover 27206 $('[data-toggle="tooltip"], .info-icon').tooltip({ 27207 title: getTooltipTitle, 27208 trigger: 'manual', 27209 sanitize: false // prevents removal of inline styles in tooltip content markup 27210 27211 }).on('mouseenter', function (buttonEnterEvent) { 27212 var $button = $(buttonEnterEvent.target).closest('[data-toggle="tooltip"]'); 27213 var showDelay = $button.data('delay') && $button.data('delay').show || 0; 27214 var hideDelay = $button.data('delay') && $button.data('delay').hide || 0; 27215 setTimeout(function () { 27216 $button.tooltip('show'); 27217 }, showDelay); 27218 $('body').on('mouseleave', '.tooltip', function (tooltipLeaveEvent) { 27219 setTimeout(function () { 27220 $(tooltipLeaveEvent.target).closest('.tooltip').tooltip('hide'); 27221 }, hideDelay); 27222 }); 27223 }).on('mouseleave', function (buttonLeaveEvent) { 27224 var $button = $(buttonLeaveEvent.target).closest('[data-toggle="tooltip"]'); 27225 var hideDelay = $button.data('delay') && $button.data('delay').hide || 0; 27226 setTimeout(function () { 27227 if (!$('.tooltip:hover').length) { 27228 $(buttonLeaveEvent.target).tooltip('hide'); 27229 } 27230 }, hideDelay); 27231 }); // Enables Bootstrap Popovers, which rely on the Tooltip library and provide extra functionality 27232 27233 $('[data-toggle="popover"]:not(.interactive)').popover({ 27234 html: true, 27235 trigger: 'focus', 27236 sanitize: false // prevents removal of inline styles in tooltip content markup 27237 27238 }); 27239 $('[data-toggle="popover"].interactive').popover({ 27240 html: true, 27241 sanitize: false // prevents removal of inline styles in tooltip content markup 27242 27243 }); 27244 27245 if ($('[data-toggle="popover"].interactive').length) { 27246 $(document).mouseup(function (e) { 27247 if ($('.popover.show').length) { 27248 var container = $('.popover.show'); // if the target of the click isn't the container nor a descendant of the container 27249 27250 if (!container.is(e.target) && container.has(e.target).length === 0) { 27251 $('[data-toggle="popover"].interactive').popover('hide'); 27252 } 27253 } 27254 }); 27255 } 27256} 27257 27258module.exports = function () { 27259 enableTooltipsAndPopovers(); 27260 $('body').on('tooltip:init', enableTooltipsAndPopovers); 27261}; 27262 27263/***/ }), 27264
27265/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/hosted.js": 27266/*!****************************************************************************************************************!*\ 27267 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/hosted.js ***! 27268 \****************************************************************************************************************/ 27269/*! no static exports found */ 27270/***/ (function(module, exports, __webpack_require__) { 27271 27272"use strict"; 27273 27274 27275var debounce = __webpack_require__(/*! lodash/debounce */ "../storefront-reference-architecture/node_modules/lodash/debounce.js"); 27276 27277var VideoHelper = __webpack_require__(/*! ./videoHelper */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/videoHelper.js"); 27278 27279var PlayerDefaults = { 27280 autoplay: false, 27281 controls: true, 27282 muted: false, 27283 loop: false, 27284 modal: false, 27285 hasThumb: false 27286}; 27287/** 27288 * initDomElements() 27289 * 27290 * Saves generalized references to DOM elements needed by the player to operate. 27291 * 27292 * player.domElements.$player - div used to init the player API, also holds the configuration data 27293 * player.domElements.$thumb - thumbnail/preview image that masks the player on screen while not playing 27294 * player.domElements.$cntr - outer div container used to attach dimensions when needed 27295 */ 27296 27297function initDomElements() { 27298 var player = this; 27299 var $elem = $('#' + player.id); 27300 player.domElements = { 27301 $player: $elem, 27302 $thumb: $elem.siblings('.video-thumbnail'), 27303 $cntr: $elem.closest('.video-container') 27304 }; 27305} 27306/** 27307 * initConfig() 27308 * 27309 * Parses and stores the configuration data attributes set by the content asset. 27310 * In case of parse error, fallback to this module's PlayerDefaults. 27311 */ 27312 27313 27314function initConfig() { 27315 var player = this; 27316 var playerAttrData = {}; 27317 27318 try { 27319 playerAttrData = JSON.parse(player.domElements.$player.attr('data-player-attr')); 27320 } catch (ex) { 27321 playerAttrData = PlayerDefaults; 27322 } 27323 27324 player.config = { 27325 autoplay: !!playerAttrData.autoplay, 27326 controls: !!playerAttrData.controls, 27327 muted: !!playerAttrData.mute, 27328 loop: !!playerAttrData.loop, 27329 hasThumb: playerAttrData.hasThumb, 27330 modal: !!playerAttrData.modal, 27331 videoId: player.domElements.$player.attr('data-video-id') 27332 }; 27333} 27334/** 27335 * createApiPlayer() 27336 * 27337 * Create and store the vendor specific API Player. 27338 * The configurations set in the content asset can be overridden for specific use cases, like turning off autoplay when closing the modal. 27339 * 27340 * Also attaches any needed playback events to the player. 27341 * 27342 * @param {object} overrides - attributes that can override the defined player.config attributes 27343 * @returns {Promise} - Vimeo player ready() Promise is returned so we don't make any calls too early 27344 */ 27345 27346 27347function createApiPlayer(overrides) { 27348 var player = this; 27349 var config = player.config; 27350 27351 var onReadyCallback = function onReadyCallback(e) { 27352 if (overrides.onReady) { 27353 overrides.onReady(e); 27354 delete overrides['onReady']; 27355 } 27356 }; // apply overrides attributes 27357 27358 27359 if (overrides) { 27360 config = $.extend({}, player.config, overrides); 27361 } 27362 27363 player.apiObj = new videojs(player.id, { 27364 autoplay: config.autoplay, 27365 playsinline: config.autoplay, 27366 controls: config.controls, 27367 loop: config.loop, 27368 muted: config.muted 27369 }, onReadyCallback); 27370 player.apiObj.on('pause', function () { 27371 // save the current location 27372 player.cache.time = player.apiObj.currentTime(); 27373 }); 27374 player.apiObj.on('ended', function () { 27375 $('body').trigger('video:ended', player); 27376 }); 27377} 27378/** 27379 * initPageEvents() 27380 * 27381 * Initializes any page load event logic for the player. 27382 */ 27383 27384 27385function initPageEvents() { 27386 var player = this; 27387 var $playerContainer = player.domElements.$cntr; // pause all players at init, before deciding if they should play 27388 27389 player.pause(); 27390 27391 if (player.config.hasThumb) { 27392 //handle thumbnail click 27393 player.domElements.$thumb.on('click', function (event) { 27394 event.preventDefault(); 27395 27396 if (player.config.modal) { 27397 player.launchModal(); 27398 } else { 27399 var paused = player.apiObj.paused(); 27400 27401 if (!paused) { 27402 player.pause(); 27403 } else {
27404 var playPromise = player.domElements.$player[0].play(); 27405 27406 if (playPromise !== undefined) { 27407 playPromise.then(function () { 27408 player.domElements.$thumb.addClass('faded'); 27409 })["catch"](function (error) { 27410 console.error('play error:', error); 27411 }); 27412 } 27413 } 27414 } 27415 }); 27416 } 27417 27418 if (player.domElements.$cntr.closest('.modal').length) { 27419 $(window).on('resize', debounce(function () { 27420 return player.removeSize(); 27421 }, 100)); 27422 } 27423 27424 if (VideoHelper.shouldPlay($playerContainer) && player.config.autoplay && !player.config.modal) { 27425 var autoplayPromise = player.domElements.$player[0].play(); 27426 27427 if (autoplayPromise !== undefined) { 27428 player.play(); 27429 } 27430 } 27431 27432 $(window).on('scrollUpdate', function () { 27433 if (VideoHelper.shouldPlay($playerContainer)) { 27434 if (player.config.autoplay && !player.config.modal) { 27435 var _autoplayPromise = player.domElements.$player[0].play(); 27436 27437 if (_autoplayPromise !== undefined) { 27438 player.play(); 27439 } 27440 } 27441 } else { 27442 if (!player.apiObj.paused()) { 27443 player.pause(); 27444 } 27445 } 27446 }); 27447} 27448 27449module.exports = function (playerId) { 27450 var player = this; 27451 this.id = playerId; 27452 this.type = 'hosted'; 27453 this.cache = {}; 27454 /********************************************************** 27455 ** Calls to initialize the player and event listeners ** 27456 **********************************************************/ 27457 27458 initDomElements.call(player); 27459 initConfig.call(player); 27460 createApiPlayer.call(player, { 27461 onReady: function onReady() { 27462 return initPageEvents.call(player); 27463 } 27464 }); 27465 /************************************** 27466 ** Generalized playback functions ** 27467 **************************************/ 27468 27469 this.play = function () { 27470 player.apiObj.play(); 27471 27472 if (player.domElements.$thumb.length && !player.config.modal) { 27473 player.domElements.$thumb.addClass('faded'); 27474 } 27475 }; 27476 27477 this.pause = function () { 27478 player.apiObj.pause(); 27479 27480 if (player.domElements.$thumb.length) { 27481 player.domElements.$thumb.removeClass('faded'); 27482 } 27483 }; 27484 27485 this.mute = function () { 27486 player.apiObj.getVolume().then(function (volume) { 27487 player.cache.volume = volume; 27488 }); 27489 player.apiObj.setVolume(0); 27490 }; 27491 27492 this.unmute = function () { 27493 var volume = 1; 27494 27495 if (player.cachedVolume) { 27496 volume = player.cache.volume; 27497 } 27498 27499 player.apiObj.setVolume(volume); 27500 }; 27501 /********************************************************* 27502 ** Functions to support playing the video in a modal ** 27503 *********************************************************/ 27504 27505 27506 this.setSize = function () { 27507 player.domElements.$cntr.css({ 27508 height: player.domElements.$cntr.outerHeight(), 27509 width: player.domElements.$cntr.outerWidth() 27510 }); 27511 }; 27512 27513 this.removeSize = function () { 27514 player.domElements.$cntr.css({ 27515 height: 'auto', 27516 width: 'auto' 27517 }); 27518 }; 27519 27520 this.setModal = function (VideoModal) { 27521 player.modal = VideoModal; 27522 }; 27523 27524 this.launchModal = function () { 27525 player.setSize(); 27526 player.modal.launch(player); 27527 }; 27528 /***************************************************** 27529 ** Event Handlers for the modal events ** 27530 *****************************************************/ 27531 27532 27533 this.getShowEventHandler = function () { 27534 var $modal = player.modal.getModalObj(); 27535 var $body = $('.modal-body', $modal).empty().removeClass(); 27536 $body.addClass('modal-body ' + player.domElements.$cntr.attr('class')); 27537 27538 if (player.apiObj && player.apiObj.dispose) { 27539 var $player = player.domElements.$player; // create new, uninitialized video element for use in modal 27540 27541 var $newPlayer = $('<video/>', { 27542 'data-asset-id': $player.data('asset-id'), 27543 'data-video': $player.data('video'), 27544 'data-player-attr': JSON.stringify($player.data('player-attr')), 27545 'data-video-id': $player.data('video-id'), 27546 'class': 'video-player video-js', 27547 'id': $player.attr('id') 27548 }); 27549 var $newPlayerSource = $('<source/>', { 27550 'src': $player.attr('data-video-id'), 27551 'type': $player.attr('data-filetype') 27552 }); // remove old player 27553 27554 delete player.apiObj; 27555 videojs($player[0]).dispose(); // add new player and update player properties 27556 27557 $newPlayer.append($newPlayerSource); 27558 $body.append($newPlayer); 27559 player.domElements.$player = $newPlayer; 27560 player.id = $newPlayer.attr('id'); 27561 } 27562 27563 createApiPlayer.call(player, { 27564 onReady: function onReady(e) { 27565 // set the current location if one is saved 27566 if (player.cache.time) { 27567 player.apiObj.currentTime(player.cache.time); 27568 } 27569 27570 player.play(); 27571 } 27572 }); 27573 }; 27574 27575 this.getHideEventHandler = function () { 27576 // save the current location 27577 player.cache.time = player.apiObj.currentTime(); 27578 27579 if (videojs.getPlayers()[player.id]) { 27580 delete videojs.getPlayers()[player.id]; 27581 } 27582 27583 createApiPlayer.call(player, { 27584 autoplay: false 27585 }); 27586 }; 27587 27588 return this; 27589}; 27590 27591/***/ }), 27592
27593/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/index.js": 27594/*!***************************************************************************************************************!*\ 27595 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/index.js ***! 27596 \***************************************************************************************************************/ 27597/*! no static exports found */ 27598/***/ (function(module, exports, __webpack_require__) { 27599 27600"use strict"; 27601 27602 27603var YouTube = __webpack_require__(/*! ./youtube */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/youtube.js"); 27604 27605var Vimeo = __webpack_require__(/*! ./vimeo */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/vimeo.js"); 27606 27607var Hosted = __webpack_require__(/*! ./hosted */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/hosted.js"); 27608 27609var VideoModal = __webpack_require__(/*! ./videoModal */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/videoModal.js"); 27610 27611var videojs = __webpack_require__(/*! video.js/dist/video.min.js */ "../rvw_autobahn_core/node_modules/video.js/dist/video.min.js"); 27612 27613window.Players = {}; 27614 27615var initPlayers = function initPlayers() { 27616 var $context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : $('body'); 27617 var isAjaxEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 27618 var $ytElements = $context.find('.video-player[data-video=youtube]'); 27619 var $vimeoElements = $context.find('.video-player[data-video=vimeo]'); 27620 var $hostedElements = $context.find('video[data-video=hosted]'); 27621 27622 if ($vimeoElements.length) { 27623 loadVimeoAPI().then(function () { 27624 $vimeoElements.each(function (index, element) { 27625 // don't create player for videos in sliders until slider has been initialized 27626 if (!$(element).closest('.slider-container').length || $context.is('.slider-container') && $(element).closest($context).length) { 27627 var playerId = getUniquePlayerId(index, element, isAjaxEvent); 27628
27629 if (!window.Players.hasOwnProperty(playerId) || isAjaxEvent) { 27630 window.Players[playerId] = new Vimeo(playerId); 27631 window.Players[playerId].setModal(VideoModal); 27632 } 27633 } 27634 }); 27635 })["catch"](function (err) { 27636 if (console && console.error) { 27637 console.error(err); 27638 } 27639 }); 27640 } 27641 27642 if ($ytElements.length) { 27643 loadYouTubeAPI().then(function () { 27644 $ytElements.each(function (index, element) { 27645 // don't create player for videos in sliders until slider has been initialized 27646 if (!$(element).closest('.slider-container').length || $context.is('.slider-container') && $(element).closest($context).length) { 27647 var playerId = getUniquePlayerId(index, element, isAjaxEvent); 27648 27649 if (!window.Players.hasOwnProperty(playerId) || isAjaxEvent) { 27650 window.Players[playerId] = new YouTube(playerId); 27651 window.Players[playerId].setModal(VideoModal); 27652 } 27653 } 27654 }); 27655 })["catch"](function (err) { 27656 if (console && console.error) { 27657 console.error(err); 27658 } 27659 }); 27660 } 27661 27662 if ($hostedElements.length) { 27663 window.videojs = videojs; 27664 $hostedElements.each(function (index, element) { 27665 // don't create player for videos in sliders until slider has been initialized 27666 if (!$(element).closest('.slider-container').length || $context.is('.slider-container') && $(element).closest($context).length) { 27667 var playerId = getUniquePlayerId(index, element, isAjaxEvent); 27668
27669 if (!window.Players.hasOwnProperty(playerId) || isAjaxEvent) { 27670 window.Players[playerId] = new Hosted(playerId); 27671 window.Players[playerId].setModal(VideoModal); 27672 } 27673 } 27674 }); 27675 } 27676 27677 if ($vimeoElements.length || $ytElements.length || $hostedElements.length) { 27678 $('body').on('video:ended', function (event, player) { 27679 if (player.domElements.$thumb.length) { 27680 player.domElements.$thumb.removeClass('faded'); 27681 } // prevent videos from replaying on scroll if they've already finished 27682 27683 27684 player.config.autoplay = false; 27685 }); // Reinitialze videos if slider loads, to allow creation of unique IDs 27686 27687 $('body').off('.sliderEvents').on('slider:init.sliderEvents', function (event, $sliderContainer) { 27688 initPlayers($sliderContainer); 27689 }); 27690 } // Initialize/reinitialize videos in case of ajax partial page load 27691 27692 27693 $('body').off('.ajaxEvents').on('ajax:load.ajaxEvents', function (event, $container) { 27694 initPlayers($container, true); 27695 }); 27696}; 27697 27698var ytPromise = null; 27699 27700var loadYouTubeAPI = function loadYouTubeAPI() { 27701 if (ytPromise) { 27702 return ytPromise; 27703 } 27704 27705 return ytPromise = new Promise(function (resolve) { 27706 var tag = document.createElement('script'); 27707 tag.src = "https://www.youtube.com/iframe_api"; 27708 27709 tag.onerror = function () { 27710 throw new Error('YouTube iframe API load error'); 27711 }; 27712 27713 var firstScriptTag = document.getElementsByTagName('script')[0]; 27714 firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 27715 27716 window.onYouTubeIframeAPIReady = function () { 27717 return resolve(); 27718 }; 27719 }); 27720}; 27721 27722var loadVimeoAPI = function loadVimeoAPI() { 27723 return new Promise(function (resolve) { 27724 var tag = document.createElement('script'); 27725 tag.src = "https://player.vimeo.com/api/player.js"; 27726 tag.onload = resolve; 27727 27728 tag.onerror = function () { 27729 throw new Error('Vimeo player SDK load error'); 27730 }; 27731 27732 var firstScriptTag = document.getElementsByTagName('script')[0]; 27733 firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 27734 }); 27735}; // handle cases where multiple videos with the same ID exist, like looping sliders 27736 27737 27738var getUniquePlayerId = function getUniquePlayerId(index, element, isAjaxEvent) { 27739 var playerId = $(element).attr('id'); 27740 27741 if (window.Players.hasOwnProperty(playerId) && !isAjaxEvent) { 27742 playerId = playerId + '-' + index; 27743 $(element).attr('id', playerId); 27744 } 27745 27746 return playerId; 27747}; 27748/** 27749 * TODO: 27750 * - document everything 27751 * - Youtube API pageload errors 27752 */ 27753 27754 27755module.exports = function () { 27756 return initPlayers(); 27757}; 27758 27759/***/ }), 27760
27761/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/videoHelper.js": 27762/*!*********************************************************************************************************************!*\ 27763 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/videoHelper.js ***! 27764 \*********************************************************************************************************************/ 27765/*! no static exports found */ 27766/***/ (function(module, exports, __webpack_require__) { 27767 27768"use strict"; 27769 // Checks if a video player is visible in the viewport 27770 27771function isPlayerVisible($playerContainer, onlyPlayWhenFullyInView) { 27772 var fitsInViewport = $playerContainer.height() - 10 <= $(window).height(); 27773 var pageTop = $(window).scrollTop(); 27774 var pageBottom = pageTop + $(window).height(); 27775 var elementTop = $playerContainer.offset().top; 27776 var elementBottom = elementTop + $playerContainer.height(); 27777 27778 if (onlyPlayWhenFullyInView && fitsInViewport) { 27779 return pageTop <= elementTop && pageBottom >= elementBottom; 27780 } else { 27781 return elementTop <= pageBottom && elementBottom >= pageTop; 27782 } 27783} // Checks if a video player is inside an inactive slide within a slider 27784 27785 27786function isPlayerInInactiveSlide($playerContainer) { 27787 return !!$playerContainer.closest('.slider').length && !$playerContainer.closest('.tns-slide-active').length && !$playerContainer.closest('.hero-button').length; 27788} // Checks if a video player is inside an inactive tab within a tab component 27789 27790 27791function isPlayerInInactiveTab($playerContainer) { 27792 return !!$playerContainer.closest('.tab-pane').length && !$playerContainer.closest('.tab-pane.active').length; 27793} // Check if a video should be played 27794 27795 27796function shouldPlay($playerContainer) { 27797 var onlyPlayWhenFullyInView = $playerContainer.data('play-when-fully-in-view'); 27798 return isPlayerVisible($playerContainer, onlyPlayWhenFullyInView) && !isPlayerInInactiveSlide($playerContainer) && !isPlayerInInactiveTab($playerContainer); 27799} 27800 27801module.exports = { 27802 shouldPlay: shouldPlay 27803}; 27804 27805/***/ }), 27806
27807/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/videoModal.js": 27808/*!********************************************************************************************************************!*\ 27809 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/videoModal.js ***! 27810 \********************************************************************************************************************/ 27811/*! no static exports found */ 27812/***/ (function(module, exports, __webpack_require__) { 27813 27814"use strict"; 27815 27816 27817var ModalTemplate = "<div id=\"videoModal\" class=\"video-modal modal fade\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"videoModal\">\n <div class=\"modal-dialog modal-lg\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\"></h5>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\"></div>\n </div>\n </div>\n </div>"; 27818var ModalStates = { 27819 NOT_READY: 0, 27820 READY: 1, 27821 OPEN: 2, 27822 CLOSED: 3 27823}; 27824 27825module.exports = function () { 27826 var myState = ModalStates.NOT_READY; 27827 var currentVideo = ''; 27828 27829 if (!$('#videoModal').length) { 27830 $(ModalTemplate).appendTo('body'); 27831 myState = ModalStates.READY; 27832 } 27833 27834 var $modal = $('#videoModal'); 27835 return { 27836 States: ModalStates, 27837 launch: function launch(player) { 27838 $modal.detach().appendTo('body'); // keep video modal on top of any other open modals 27839 //test if modal is already in use 27840 27841 if (myState === ModalStates.OPEN) { 27842 console.error('Cannot launch' + player.id + ', Modal is already in use for: ' + currentVideo); 27843 } else { 27844 $modal.on('show.bs.modal', function () { 27845 if (typeof player.getShowEventHandler === 'function') { 27846 player.getShowEventHandler(); 27847 } 27848 27849 myState = ModalStates.OPEN; 27850 currentVideo = player.id; 27851 }).on('shown.bs.modal', function () { 27852 if (typeof player.getShownEventHandler === 'function') { 27853 player.getShownEventHandler(); 27854 } 27855 }).on('hide.bs.modal', function () { 27856 if (typeof player.getHideEventHandler === 'function') { 27857 player.getHideEventHandler(); 27858 } 27859 27860 myState = ModalStates.CLOSED; 27861 }).on('hidden.bs.modal', function () { 27862 if (typeof player.getHiddenEventHandler === 'function') { 27863 player.getHiddenEventHandler(); 27864 } 27865 27866 $modal.modal('dispose'); 27867 }).modal(); 27868 } 27869 }, 27870 setState: function setState(state) { 27871 if (ModalStates[state]) { 27872 myState = state; 27873 } 27874 }, 27875 getState: function getState() { 27876 return myState; 27877 }, 27878 is: function is(state) { 27879 return myState === state; 27880 }, 27881 getModalObj: function getModalObj() { 27882 return $modal; 27883 } 27884 }; 27885}(); 27886 27887/***/ }), 27888
27889/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/vimeo.js": 27890/*!***************************************************************************************************************!*\ 27891 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/vimeo.js ***! 27892 \***************************************************************************************************************/ 27893/*! no static exports found */ 27894/***/ (function(module, exports, __webpack_require__) { 27895 27896"use strict"; 27897 27898 27899var debounce = __webpack_require__(/*! lodash/debounce */ "../storefront-reference-architecture/node_modules/lodash/debounce.js"); 27900 27901var VideoHelper = __webpack_require__(/*! ./videoHelper */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/videoHelper.js"); 27902 27903var PlayerDefaults = { 27904 autoplay: false, 27905 controls: true, 27906 muted: false, 27907 loop: false, 27908 modal: false, 27909 hasThumb: false 27910}; 27911/** 27912 * initDomElements() 27913 * 27914 * Saves generalized references to DOM elements needed by the player to operate. 27915 * 27916 * player.domElements.$player - div used to init the player API, also holds the configuration data 27917 * player.domElements.$thumb - thumbnail/preview image that masks the player on screen while not playing 27918 * player.domElements.$cntr - outer div container used to attach dimensions when needed 27919 */ 27920 27921function initDomElements() { 27922 var player = this; 27923 var $elem = $('#' + player.id); 27924 player.domElements = { 27925 $player: $elem, 27926 $thumb: $elem.siblings('.video-thumbnail'), 27927 $cntr: $elem.closest('.video-container') 27928 }; 27929} 27930/** 27931 * initConfig() 27932 * 27933 * Parses and stores the configuration data attributes set by the content asset. 27934 * In case of parse error, fallback to this module's PlayerDefaults. 27935 */ 27936 27937 27938function initConfig() { 27939 var player = this; 27940 var playerAttrData = {}; 27941 27942 try { 27943 playerAttrData = JSON.parse(player.domElements.$player.attr('data-player-attr')); 27944 } catch (ex) { 27945 playerAttrData = PlayerDefaults; 27946 } 27947 27948 player.config = { 27949 autoplay: !!playerAttrData.autoplay, 27950 controls: !!playerAttrData.controls, 27951 muted: !!playerAttrData.mute, 27952 loop: !!playerAttrData.loop, 27953 background: !!playerAttrData.autoplay && !playerAttrData.controls && !!playerAttrData.mute && !!playerAttrData.loop, 27954 autopause: !(!!playerAttrData.autoplay && !playerAttrData.controls && !!playerAttrData.mute), 27955 hasThumb: playerAttrData.hasThumb, 27956 modal: !!playerAttrData.modal, 27957 videoId: player.domElements.$player.attr('data-video-id') 27958 }; 27959} 27960/** 27961 * createApiPlayer() 27962 * 27963 * Create and store the vendor specific API Player. 27964 * The configurations set in the content asset can be overridden for specific use cases, like turning off autoplay when closing the modal. 27965 * 27966 * Also attaches any needed playback events to the player. 27967 * 27968 * @param {object} overrides - attributes that can override the defined player.config attributes 27969 * @returns {Promise} - Vimeo player ready() Promise is returned so we don't make any calls too early 27970 */ 27971 27972 27973function createApiPlayer(overrides) { 27974 var player = this; 27975 var config = player.config; // apply overrides attributes 27976 27977 if (overrides) { 27978 config = $.extend({}, player.config, overrides); 27979 } 27980 27981 player.apiObj = new Vimeo.Player(player.id, { 27982 id: config.videoId, 27983 autoplay: config.autoplay, 27984 controls: config.controls, 27985 loop: config.loop, 27986 muted: config.muted, 27987 background: config.background, 27988 autopause: config.autopause 27989 }); 27990 player.apiObj.on('pause', function () { 27991 // save the current location 27992 player.apiObj.getCurrentTime().then(function (seconds) { 27993 player.cache.time = seconds; 27994 }); 27995 }); 27996 player.apiObj.on('ended', function () { 27997 $('body').trigger('video:ended', player); 27998 }); 27999 return player.apiObj.ready(); 28000} 28001/** 28002 * initPageEvents() 28003 * 28004 * Initializes any page load event logic for the player. 28005 */ 28006 28007 28008function initPageEvents() { 28009 var player = this; 28010 var $playerContainer = player.domElements.$player.closest('.video-container'); // pause all players at init, before deciding if they should play 28011 28012 player.pause(); 28013 28014 if (player.config.hasThumb) { 28015 //handle thumbnail click 28016 player.domElements.$thumb.on('click', function (event) { 28017 event.preventDefault(); 28018 28019 if (player.config.modal) { 28020 player.launchModal(); 28021 } else { 28022 player.apiObj.getPaused().then(function (paused) { 28023 if (!paused) { 28024 player.pause(); 28025 } else { 28026 player.play(); 28027 } 28028 })["catch"](function (error) { 28029 return console.error('error getting paused status:', error); 28030 }); 28031 } 28032 }); 28033 } 28034 28035 if (player.domElements.$cntr.closest('.modal').length) { 28036 $(window).on('resize', debounce(function () { 28037 return player.removeSize(); 28038 }, 100)); 28039 } 28040 28041 if (VideoHelper.shouldPlay($playerContainer) && player.config.auto
28041play && !player.config.modal) { 28042 player.play(); // retrigger play method to ensure iOS autoplays 28043 28044 if (/iPad|iPhone|iPod/.test(navigator.userAgent)) { 28045 setTimeout(function () { 28046 player.play(); 28047 }, 500); 28048 } 28049 } 28050 28051 $(window).on('scrollUpdate', function () { 28052 if (VideoHelper.shouldPlay($playerContainer)) { 28053 if (player.config.autoplay && !player.config.modal) { 28054 player.apiObj.getPaused().then(function (paused) { 28055 if (paused) { 28056 player.play(); 28057 } 28058 })["catch"](function (error) { 28059 return console.error('error getting paused status:', error); 28060 }); 28061 } 28062 } else { 28063 player.apiObj.getPaused().then(function (paused) { 28064 if (!paused) { 28065 player.pause(); 28066 } 28067 })["catch"](function (error) { 28068 return console.error('error getting paused status:', error); 28069 }); 28070 } 28071 }); 28072} 28073 28074module.exports = function (playerId) { 28075 var player = this; 28076 this.id = playerId; 28077 this.type = 'vimeo'; 28078 this.cache = {}; 28079 /********************************************************** 28080 ** Calls to initialize the player and event listeners ** 28081 **********************************************************/ 28082 28083 initDomElements.call(player); 28084 initConfig.call(player); 28085 createApiPlayer.call(player).then(function () { 28086 return initPageEvents.call(player); 28087 }); 28088 /************************************** 28089 ** Generalized playback functions ** 28090 **************************************/ 28091 28092 this.play = function () { 28093 player.apiObj.play(); 28094 28095 if (player.domElements.$thumb.length && !player.config.modal) { 28096 player.domElements.$thumb.addClass('faded'); 28097 } 28098 }; 28099 28100 this.pause = function () { 28101 player.apiObj.pause(); 28102 28103 if (player.domElements.$thumb.length) { 28104 player.domElements.$thumb.removeClass('faded'); 28105 } 28106 }; 28107 28108 this.mute = function () { 28109 player.apiObj.getVolume().then(function (volume) { 28110 player.cache.volume = volume; 28111 }); 28112 player.apiObj.setVolume(0); 28113 }; 28114 28115 this.unmute = function () { 28116 var volume = 1; 28117 28118 if (player.cachedVolume) { 28119 volume = player.cache.volume; 28120 } 28121 28122 player.apiObj.setVolume(volume); 28123 }; 28124 /********************************************************* 28125 ** Functions to support playing the video in a modal ** 28126 *********************************************************/ 28127 28128 28129 this.setSize = function () { 28130 player.domElements.$cntr.css({ 28131 height: player.domElements.$cntr.outerHeight(), 28132 width: player.domElements.$cntr.outerWidth() 28133 }); 28134 }; 28135 28136 this.removeSize = function () { 28137 player.domElements.$cntr.css({ 28138 height: 'auto', 28139 width: 'auto' 28140 }); 28141 }; 28142 28143 this.setModal = function (VideoModal) { 28144 player.modal = VideoModal; 28145 }; 28146 28147 this.launchModal = function () { 28148 player.setSize(); 28149 player.modal.launch(player); 28150 }; 28151 /***************************************************** 28152 ** Event Handlers for the Bootstrap modal events ** 28153 *****************************************************/ 28154 28155 28156 this.getShowEventHandler = function () { 28157 var $modal = player.modal.getModalObj(); 28158 var $body = $('.modal-body', $modal).empty().removeClass(); 28159 $body.addClass('modal-body ' + player.domElements.$cntr.attr('class')); 28160 player.domElements.$player.appendTo($body); 28161 player.apiObj.destroy().then(function () { 28162 return createApiPlayer.call(player); 28163 }).then(function () { 28164 // set the current location if one is saved 28165 if (player.cache.time) { 28166 player.apiObj.setCurrentTime(player.cache.time); 28167 } 28168 28169 player.play(); 28170 }); 28171 }; 28172 28173 this.getHideEventHandler = function () { 28174 // save the current location 28175 player.apiObj.getCurrentTime().then(function (seconds) { 28176 player.cache.time = seconds; 28177 }).then(function () { 28178 // vimeo doesnt like to be moved around the DOM, and loses all its event listeners 28179 // so lets destroy and re-init whenever we move it to and from a modal 28180 player.domElements.$player.prependTo(player.domElements.$cntr); 28181 player.apiObj.destroy().then(function () { 28182 //create a new api player but dont let it autoplay 28183 createApiPlayer.call(player, { 28184 autoplay: false 28185 }); 28186 }); 28187 }); 28188 }; 28189 28190 return this; 28191}; 28192 28193/***/ }), 28194
28195/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/youtube.js": 28196/*!*****************************************************************************************************************!*\ 28197 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/youtube.js ***! 28198 \*****************************************************************************************************************/ 28199/*! no static exports found */ 28200/***/ (function(module, exports, __webpack_require__) { 28201 28202"use strict"; 28203 28204 28205var debounce = __webpack_require__(/*! lodash/debounce */ "../storefront-reference-architecture/node_modules/lodash/debounce.js"); 28206 28207var VideoHelper = __webpack_require__(/*! ./videoHelper */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/videoHelper.js"); 28208 28209var PlayerDefaults = { 28210 autoplay: 0, 28211 playsinline: 0, 28212 controls: 1, 28213 mute: 0, 28214 loop: 0, 28215 modal: false, 28216 hasThumb: false, 28217 playlist: '' 28218}; 28219var origin = window.location.protocol + '//' + window.location.host; 28220/** 28221 * initDomElements() 28222 * 28223 * Saves generalized references to DOM elements needed by the player to operate. 28224 * 28225 * player.domElements.$player - div used to init the player API, also holds the configuration data 28226 * player.domElements.$thumb - thumbnail/preview image that masks the player on screen while not playing 28227 * player.domElements.$cntr - outer div container used to attach dimensions when needed 28228 */ 28229 28230function initDomElements() { 28231 var player = this; 28232 var $elem = $('#' + player.id); 28233 player.domElements = { 28234 $player: $elem, 28235 $thumb: $elem.siblings('.video-thumbnail'), 28236 $cntr: $elem.closest('.video-container') 28237 }; 28238} 28239/** 28240 * initConfig() 28241 * 28242 * Parses and stores the configuration data attributes set by the content asset. 28243 * In case of parse error, fallback to this module's PlayerDefaults. 28244 */ 28245 28246 28247function initConfig() { 28248 var player = this; 28249 var playerAttrData = {}; 28250 28251 try { 28252 playerAttrData = JSON.parse(player.domElements.$player.attr('data-player-attr')); 28253 } catch (ex) { 28254 playerAttrData = PlayerDefaults; 28255 } 28256 28257 var videoId = player.domElements.$player.attr('data-video-id'); 28258 var playlist = playerAttrData.loop === 1 ? videoId : ''; 28259 player.config = { 28260 autoplay: playerAttrData.autoplay, 28261 playsinline: playerAttrData.autoplay === 1 ? 1 : 0, 28262 controls: playerAttrData.controls, 28263 mute: playerAttrData.mute, 28264 loop: playerAttrData.loop, 28265 hasThumb: playerAttrData.hasThumb, 28266 modal: playerAttrData.modal, 28267 videoId: videoId, 28268 modestbranding: 1 28269 }; 28270 28271 if (playlist != '') { 28272 player.config.playlist = playlist; 28273 } 28274} 28275/** 28276 * createApiPlayer() 28277 * 28278 * Create and store the vendor specific API Player. 28279 * The configurations set in the content asset can be overridden for specific use cases, like turning off autoplay when closing the modal. 28280 * 28281 * Also attaches any needed playback events to the player. 28282 * 28283 * @param {object} overrides - attributes that can override the defined player.config attributes 28284 */ 28285 28286 28287function createApiPlayer(overrides) { 28288 var player = this; 28289 var config = player.config; 28290 28291 var onReadyCallback = function onReadyCallback(e) { 28292 commonOnReady.call(player, e); 28293 28294 if (overrides.onReady) { 28295 overrides.onReady(e); 28296 delete overrides['onReady']; 28297 } 28298 }; // apply overrides attributes 28299 28300 28301 if (overrides) { 28302 config = $.extend({}, player.config, overrides); 28303 } 28304 28305 player.apiObj = new YT.Player(player.id, { 28306 videoId: config.videoId, 28307 playerVars: { 28308 autoplay: config.autoplay, 28309 playsinline: config.playsinline, 28310 controls: config.controls, 28311 mute: config.mute, 28312 loop: config.loop, 28313 playlist: config.playlist, 28314 enablejsapi: 1, 28315 origin: origin, 28316 widget_referrer: origin 28317 }, 28318 host: 'https://www.youtube.com', 28319 // prevents 'postMessage' origin mismatch error 28320 events: { 28321 onReady: onReadyCallback, 28322 onStateChange: function onStateChange(e) { 28323 if (e.data === YT.PlayerState.PAUSED) { 28324 // save the current location 28325 player.cache.time = e.target.getCurrentTime(); 28326 } else if (e.data === YT.PlayerState.PLAYING) {// not currently using the on play event, but it's here for future use 28327 } 28328 28329 if (e.data === 0) {
28330 $('body').trigger('video:ended', player); 28331 } 28332 }, 28333 onError: function onError(e) { 28334 if (console && console.error) { 28335 console.error('onError: ' + e.data); 28336 } 28337 } 28338 } 28339 }); 28340} 28341/** 28342 * initPageEvents() 28343 * 28344 * Initializes any page event logic for the player. 28345 */ 28346 28347 28348function initPageEvents() { 28349 var player = this; 28350 var $playerContainer = player.domElements.$player.closest('.video-container'); // pause all players at init, before deciding if they should play 28351 28352 player.pause(); // honor the auto mute settings when launching modal 28353 28354 if (player.config.mute === 1) { 28355 player.mute(); 28356 } else { 28357 player.unmute(); 28358 } 28359 28360 if (player.config.hasThumb) { 28361 //handle thumbnail click 28362 player.domElements.$thumb.on('click', function (event) { 28363 event.preventDefault(); 28364 28365 if (player.config.modal) { 28366 player.launchModal(); 28367 } else { 28368 var playerState = player.apiObj.getPlayerState(); 28369 var playing = playerState === 1; 28370 28371 if (playing) { 28372 player.pause(); 28373 } else { 28374 player.play(); 28375 } 28376 } 28377 }); 28378 } 28379 28380 if (player.domElements.$cntr.closest('.modal').length) { 28381 $(window).on('resize', debounce(function () { 28382 return player.removeSize(); 28383 }, 100)); 28384 } 28385 28386 if (VideoHelper.shouldPlay($playerContainer) && player.config.autoplay && !player.config.modal) { 28387 player.play(); 28388 } 28389 28390 $(window).on('scrollUpdate', function () { 28391 var playerState = player.apiObj.getPlayerState(); 28392 var playing = playerState === 1; 28393 28394 if (VideoHelper.shouldPlay($playerContainer)) { 28395 if (player.config.autoplay && !playing && !player.config.modal) { 28396 player.play(); 28397 } 28398 } else if (playing) { 28399 player.pause(); 28400 } 28401 }); 28402} 28403 28404function commonOnReady(e) { 28405 var player = this; // update player dom reference 28406 28407 player.domElements.$player = $('#' + player.id); // if we have an auto play, auto mute, modal, then honor the config, 28408 // else let the app maintain the volume state 28409 28410 if (typeof player.cache.mute !== 'undefined') { 28411 if (player.cache.mute === 1) { 28412 e.target.mute(); 28413 } else { 28414 e.target.unMute(); 28415 } 28416 28417 delete player.cache.mute; 28418 } 28419} 28420 28421module.exports = function (playerId) { 28422 var player = this; 28423 this.id = playerId; 28424 this.type = 'youtube'; 28425 this.cache = {}; 28426 /********************************************************** 28427 ** Calls to initialize the player and event listeners ** 28428 **********************************************************/ 28429 28430 initDomElements.call(player); 28431 initConfig.call(player); 28432 createApiPlayer.call(player, { 28433 onReady: function onReady() { 28434 return initPageEvents.call(player); 28435 } 28436 }); 28437 /*************************************** 28438 ** Generalized playback functions ** 28439 ***************************************/ 28440 28441 this.play = function () { 28442 player.apiObj.playVideo(); 28443 28444 if (player.domElements.$thumb.length && !player.config.modal) { 28445 player.domElements.$thumb.addClass('faded'); 28446 } 28447 }; 28448 28449 this.pause = function () { 28450 player.apiObj.pauseVideo(); 28451 28452 if (player.domElements.$thumb.length) { 28453 player.domElements.$thumb.removeClass('faded'); 28454 } 28455 }; 28456 28457 this.mute = function () { 28458 player.apiObj.mute(); 28459 player.cache.mute = 1; 28460 }; 28461 28462 this.unmute = function () { 28463 player.apiObj.unMute(); 28464 player.cache.mute = 0; 28465 }; 28466 /********************************************************* 28467 ** Functions to support playing the video in a modal ** 28468 *********************************************************/ 28469 28470 28471 this.setSize = function () { 28472 return player.domElements.$cntr.css({ 28473 height: player.domElements.$cntr.outerHeight(), 28474 width: player.domElements.$cntr.outerWidth() 28475 }); 28476 }; 28477 28478 this.removeSize = function () { 28479 return player.domElements.$cntr.css({ 28480 height: 'auto', 28481 width: 'auto' 28482 }); 28483 }; 28484 28485 this.setModal = function (VideoModal) { 28486 player.modal = VideoModal; 28487 }; 28488 28489 this.launchModal = function () { 28490 player.setSize(); 28491 player.modal.launch(player); 28492 }; 28493 /***************************************************** 28494 ** Event Handlers for the Bootstrap modal events ** 28495 *****************************************************/ 28496 28497
28498 this.getShowEventHandler = function () { 28499 // move the video player to the modal body 28500 var $modal = player.modal.getModalObj(); 28501 var $body = $('.modal-body', $modal).empty().removeClass(); 28502 $body.addClass('modal-body ' + player.domElements.$cntr.attr('class')); 28503 player.domElements.$player.appendTo($body); // rebuild the API player to maintain event handlers 28504 28505 if (player.apiObj && player.apiObj.destroy) { 28506 player.apiObj.destroy(); 28507 } 28508 28509 createApiPlayer.call(player, { 28510 onReady: function onReady(e) { 28511 // set the current location if one is saved 28512 if (player.cache.time) { 28513 player.apiObj.seekTo(player.cache.time, true); 28514 } 28515 28516 player.play(); 28517 } 28518 }); 28519 }; 28520 28521 this.getHideEventHandler = function () { 28522 // save current location 28523 player.cache.time = player.apiObj.getCurrentTime(); // move the video player from the modal back to its page container 28524 28525 player.domElements.$player.prependTo(player.domElements.$cntr); // rebuild the API player to maintain event handlers 28526 28527 if (player.apiObj && player.apiObj.destroy) { 28528 player.apiObj.destroy(); 28529 } 28530 28531 createApiPlayer.call(player, { 28532 autoplay: 0 28533 }); 28534 }; 28535 28536 return this; 28537}; 28538 28539/***/ }), 28540
28541/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/giftCertificate/giftCertificate.js": 28542/*!************************************************************************************************************************!*\ 28543 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/giftCertificate/giftCertificate.js ***! 28544 \************************************************************************************************************************/ 28545/*! no static exports found */ 28546/***/ (function(module, exports, __webpack_require__) { 28547 28548"use strict"; 28549 28550 28551var formErrors = __webpack_require__(/*! ../checkout/formErrors */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/checkout/formErrors.js"); 28552 28553var formValidation = __webpack_require__(/*! base/components/formValidation */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/formValidation.js"); 28554 28555var cart = __webpack_require__(/*! ../cart/cart */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/cart/cart.js"); 28556 28557var recaptcha = __webpack_require__(/*! ../components/recaptcha */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/recaptcha.js"); 28558/** 28559 * shows giftcert toast message 28560 * @param {string} data - data returned from the server's ajax call 28561 */ 28562 28563 28564function displayMessage(data, button) { 28565 $.spinner().stop(); 28566 $('.minicart').trigger('count:update', data); 28567 var status = data.success ? 'alert-success' : 'alert-danger'; 28568 28569 if ($('.add-giftcertificate-messages').length === 0) { 28570 $('body').append('<div class="add-giftcertificate-messages"></div>'); 28571 } 28572 28573 $('.add-giftcertificate-messages').append('<div class="alert text-center add-giftcertificate-alert text-center ' + status + '">' + (data.msg || 'There was an error') + '</div>'); 28574 setTimeout(function () { 28575 $('.add-giftcertificate-messages').remove(); 28576 28577 if (button) { 28578 button.removeAttr('disabled'); 28579 } 28580 }, 5000); 28581} 28582 28583function giftCertificateFormSubmission() { 28584 $('body').on('submit', 'form.GiftCertificateForm', function (e) { 28585 e.preventDefault(); 28586 var form = $(this); 28587 var isEdit = false; 28588 var button = form.find('.btn-add-giftcertificate-tocart'); 28589 28590 if (!button || !button.length) { 28591 button = form.find('.btn-update-giftcertificate-incart'); 28592 isEdit = true; 28593 } else { 28594 $('body').trigger('product:beforeAddToCart', this); 28595 } 28596 28597 form.parents('.card').spinner().start(); 28598 var url = form.attr('action'); 28599 var queryString = form.serialize() + '&format=ajax'; 28600 28601 if (isEdit) { 28602 queryString += '&uuid=' + button.data('uuid'); 28603 } 28604 28605 button.attr('disabled', true); 28606 recaptcha.check(e, { 28607 url: url, 28608 method: 'POST', 28609 dataType: 'json', 28610 data: queryString, 28611 success: function success(data) { 28612 if (data.success) { 28613 if (isEdit) { 28614 $('#editGiftCertificateLineItemModal').modal('hide'); 28615 cart.updateCartTotals(data.cartModel); 28616 updateGiftCertificateLineItem(data.cartModel, button.data('uuid')); 28617 $('body').trigger('cart:update', [data, button.data('uuid')]); 28618 } else { 28619 $('body').trigger('product:afterAddToCart', data); 28620 } 28621 28622 form.trigger('reset'); 28623 formErrors.clearPreviousErrors(form); 28624 } else { 28625 if (data.redirectUrl) { 28626 window.location.href = data.redirectUrl; 28627 } else { 28628 formValidation(form, data); 28629 } 28630 } 28631 28632 displayMessage(data, button); 28633 }, 28634 error: function error(err) { 28635 if (err.responseJSON.redirectUrl) { 28636 window.location.href = err.responseJSON.redirectUrl; 28637 } 28638 28639 displayMessage(err, button); 28640 } 28641 }); 28642 }); 28643} 28644 28645; 28646 28647function updateGiftCertificateLineItem(data, uuid) { 28648 var lineItem; 28649 28650 for (var i = 0; i < data.items.length; i++) { 28651 if (data.items[i].UUID === uuid) { 28652 lineItem = data.items[i]; 28653 break; 28654 } 28655 } 28656 28657 if (lineItem) { 28658 $('.dwfrm_giftCertificate_purchase_from-' + uuid + ' span').html(lineItem.senderName); 28659 $('.dwfrm_giftCertificate_purchase_from-' + uuid).data('value', lineItem.senderName); 28660 $('.dwfrm_giftCertificate_purchase_recipient-' + uuid + ' span').html(lineItem.recipientName); 28661 $('.dwfrm_giftCertificate_purchase_recipient-' + uuid).data('value', lineItem.recipientName); 28662 $('.dwfrm_giftCertificate_purchase_recipientEmail-' + uuid + ' span').html(lineItem.recipientEmail); 28663 $('.dwfrm_giftCertificate_purchase_recipientEmail-' + uuid).data('value', lineItem.recipientEmail); 28664 $('.dwfrm_giftCertificate_purchase_message-' + uuid + ' span').html(lineItem.message || ''); 28665 $('.dwfrm_giftCertificate_purchase_message-' + uuid).attr('title', lineItem.message || ''); 28666 $('.pricing.item-total-' + uuid).html(lineItem.priceTotal.price); 28667 $('.pricing.item-total-' + uuid).data('value', lineItem.priceTotal.priceValue + ''); 28668 } 28669} 28670 28671function checkBalanceFormSubmission() { 28672 $('body').on('submit', 'form.check-balance', function (e) { 28673 e.preventDefault(); 28674 var form = $(this); 28675 form.spinner().start(); 28676 var button = form.find('.js-checkbalancebutton'); 28677 var url = form.attr('action'); 28678 var queryString = form.serialize() + '&format=ajax'; 28679 button.attr('disabled', true); //because the error is not an html5 error typically (balance is 0 or does not exist) 28680 //we must clear the previous error + message manually 28681 28682 formErrors.clearPreviousErrors(form); 28683 recaptcha.check(e, { 28684 url: url, 28685 method: 'POST', 28686 dataType: 'json', 28687 data: queryString, 28688 success: function success(data) { 28689 if (data.success) { 28690 form.find('.balancemsg').html(data.balance); 28691 } else { 28692 form.find('.balancemsg').html(''); 28693 formValidation(form, data); 28694 28695 if (data.msg) { 28696 displayMessage(data, button); 28697 } 28698 } 28699 28700 $.spinner().stop(); 28701 button.removeAttr('disabled'); 28702 }, 28703 error: function error(err) { 28704 if (err.responseJSON.redirectUrl) { 28705 window.location.href = err.responseJSON.redirectUrl; 28706 } 28707 28708 displayMessage(err, button); 28709 } 28710 }); 28711 }); 28712} 28713 28714function applyGiftCertificateToBasket() { 28715 $('body').on('click', '.giftcertificate-information .js-applybalancebutton', function (e) { 28716 e.preventDefault(); 28717 var button = $(this); 28718 button.attr('disabled', true); 28719 var container = button.parents('.giftcertificate-information'); 28720 var checkoutForm = button.parents('form'); 28721 container.spinner().start(); 28722 var url = button.data('action'); //because the error is not an html5 error typically (balance is 0 or does not exist) 28723 //we must clear the previous error + message manually 28724 28725 formErrors.clearPreviousErrors(container); 28726 recaptcha.check(e, { 28727 url: url, 28728 method: 'POST', 28729 data: checkoutForm.serialize() + '&format=ajax', 28730 success: function success(data) { 28731 if (data.success) { 28732 displayMessage(data, button); 28733 $('.js-giftcertificatepaymentinstruments').html(data.template); 28734 $('body').trigger('checkout:updateCheckoutViewPaymentInformation', { 28735 order: data.order 28736 }); 28737 } else { 28738 if (data.redirectUrl) { 28739 window.location.href = data.redirectUrl; 28740 } else { 28741 container.find('.js-balancemsg').html(''); 28742 formValidation(container, data); 28743 28744 if (data.msg) { 28745 displayMessage(data, button); 28746 } 28747 } 28748 } 28749 28750 $.spinner().stop(); 28751 button.removeAttr('disabled'); 28752 }, 28753 error: function error(err) { 28754 if (err.responseJSON.redirectUrl) { 28755 window.location.href = err.responseJSON.redirectUrl; 28756 } 28757 28758 displayMessage(err, button); 28759 } 28760 }); 28761 }); 28762} 28763 28764function removeGiftCertificatePaymentInstrument() { 28765 $('body').on('click', '.js-remove-giftcertificate-pi', function (e) { 28766 e.preventDefault(); 28767 var button = $(this); 28768 button.attr('disabled', true); 28769 var container = button.parents('.giftcertificate-information'); 28770 container.spinner().start(); 28771 var url = button.data('action'); 28772 var giftCertificateCode = button.data('giftcertificatecode'); 28773 $.ajax({ 28774 url: url, 28775 method: 'POST', 28776 dataType: 'json', 28777 data: '&giftCertificateCode=' + giftCertificateCode, 28778 success: function success(data) { 28779 if (data.success) { 28780 $('.js-giftcertificatepaymentinstruments').html(data.template); 28781 $('body').trigger('checkout:updateCheckoutViewPaymentInformation', { 28782 order: data.order 28783 }); 28784 } 28785 28786 $.spinner().stop(); 28787 displayMessage(data, button); 28788 }, 28789 error: function error(err) { 28790 displayMessage(err, button); 28791 } 28792 }); 28793 }); 28794} 28795 28796module.exports = { 28797 displayMessage: displayMessage, 28798 giftCertificateFormSubmission: giftCertificateFormSubmission, 28799 updateGiftCertificateLineItem: updateGiftCertificateLineItem, 28800 checkBalanceFormSubmission: checkBalanceFormSubmission, 28801 applyGiftCertificateToBasket: applyGiftCertificateToBasket, 28802 removeGiftCertificatePaymentInstrument: removeGiftCertificatePaymentInstrument,
28803 init: function init() { 28804 module.exports.giftCertificateFormSubmission(); 28805 module.exports.checkBalanceFormSubmission(); 28806 module.exports.applyGiftCertificateToBasket(); 28807 module.exports.removeGiftCertificatePaymentInstrument(); 28808 } 28809}; 28810 28811/***/ }), 28812
28813/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/integrations/siteIntegrationsUtils.js": 28814/*!***************************************************************************************************************************!*\ 28815 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/integrations/siteIntegrationsUtils.js ***! 28816 \***************************************************************************************************************************/ 28817/*! no static exports found */ 28818/***/ (function(module, exports, __webpack_require__) { 28819 28820"use strict"; 28821 28822/** 28823 * This client-side js file just acts as a wrapper for the site preference config toggles 28824 * that are outputted by Controller: Integrations-OutputIntegrationsConfig 28825 */ 28826 28827function getIntegrationSettings() { 28828 if (window && window.CachedData && window.CachedData.siteIntegrations) { 28829 return window.CachedData.siteIntegrations; 28830 } 28831 28832 return {}; 28833} 28834 28835module.exports = { 28836 getIntegrationSettings: getIntegrationSettings 28837}; 28838 28839/***/ }), 28840
28841/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/main.js": 28842/*!*********************************************************************************************!*\ 28843 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/main.js ***! 28844 \*********************************************************************************************/ 28845/*! no static exports found */ 28846/***/ (function(module, exports, __webpack_require__) { 28847 28848var SiteConstants = __webpack_require__(/*! constants/SiteConstants */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/scripts/constants/SiteConstants.js"); 28849 28850window.jQuery = window.$ = __webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js"); 28851 28852window.isMobile = function () { 28853 return $(window).outerWidth() < SiteConstants.BreakpointSizes.lg; 28854}; 28855 28856var processInclude = __webpack_require__(/*! base/util */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js"); 28857/** 28858 * A list of base Files, leave these in order they are listed 28859 */ 28860 28861 28862var baseFiles = { 28863 menu: __webpack_require__(/*! ./components/menu */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/menu.js"), 28864 cookie: __webpack_require__(/*! base/components/cookie */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/cookie.js"), 28865 consentTracking: __webpack_require__(/*! ./components/consentTracking */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/consentTracking.js"), 28866 footer: __webpack_require__(/*! ./components/footer */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/footer.js"), 28867 miniCart: __webpack_require__(/*! ./components/miniCart */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/miniCart.js"), 28868 collapsibleItem: __webpack_require__(/*! ./components/collapsibleItem */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/collapsibleItem.js"), 28869 search: __webpack_require__(/*! ./components/search */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/search.js").init, 28870 clientSideValidation: __webpack_require__(/*! ./components/clientSideValidation */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/clientSideValidation.js"), 28871 countrySelector: __webpack_require__(/*! ./components/countrySelector */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/countrySelector.js"), 28872 header: __webpack_require__(/*! ./components/header */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/header.js"), 28873 tabs: __webpack_require__(/*! ./components/tabs */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/tabs.js"), 28874 toast: __webpack_require__(/*! ./components/toast */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/toast.js"), 28875 toolTip: __webpack_require__(/*! ./components/toolTip */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/toolTip.js"), 28876 video: __webpack_require__(/*! ./components/video */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/video/index.js"), 28877 tile: __webpack_require__(/*! ./product/tile */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/tile.js"), 28878 base: __webpack_require__(/*! ./product/base */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/base.js"), 28879 quickView: __webpack_require__(/*! ./product/quickView */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/quickView.js"), 28880 productTile: __webpack_require__(/*! ./components/productTile */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/productTile.js"), 28881 giftCertificate: __webpack_require__(/*! ./giftCertificate/giftCertificate */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/giftCertificate/giftCertificate.js").init, 28882 modal: __webpack_require__(/*! ./components/modal */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/modal.js").init, 28883 slider: __webpack_require__(/*! ./components/slider */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/slider.js").init, 28884 einsteinRecs: __webpack_require__(/*! ./components/einsteinRecs */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/einsteinRecs.js").init, 28885 wishlist: __webpack_require__(/*! ./wishlist/wishlist */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/wishlist.js"), 28886 cart: __webpack_require__(/*! ./cart */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/cart.js"), 28887 scroll: __webpack_require__(/*! ./utilities/scroll */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/utilities/scroll.js"), 28888 headerUtils: __webpack_require__(/*! ./utilities/headerUtils */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/utilities/headerUtils.js"), 28889 pageDesigner: __webpack_require__(/*! ./pageDesigner */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/pageDesigner/index.js"),
28890 storeLocator: __webpack_require__(/*! ./storeLocator/storeLocator */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/storeLocator/storeLocator.js") 28891}; 28892$(document).ready(function () { 28893 Object.keys(baseFiles).forEach(function (key) { 28894 processInclude(baseFiles[key]); 28895 }); 28896}); 28897 28898__webpack_require__(/*! ./thirdParty/bootstrap */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/thirdParty/bootstrap.js"); 28899 28900__webpack_require__(/*! focus-visible/dist/focus-visible.min.js */ "../rvw_autobahn_core/node_modules/focus-visible/dist/focus-visible.min.js"); 28901 28902__webpack_require__(/*! base/components/spinner */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/spinner.js"); 28903 28904module.exports = { 28905 baseFiles: baseFiles 28906}; 28907 28908/***/ }), 28909
28910/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/pageDesigner/button.js": 28911/*!************************************************************************************************************!*\ 28912 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/pageDesigner/button.js ***! 28913 \************************************************************************************************************/ 28914/*! no static exports found */ 28915/***/ (function(module, exports, __webpack_require__) { 28916 28917"use strict"; 28918 28919 28920module.exports = function () { 28921 // Move modal from button to body to prevent overflow issues, eliminating any duplicates 28922 if ($('.button.has-modal').length > 0) { 28923 $('.button.has-modal').each(function (index, button) { 28924 var $modal = $(button).find('.modal'); 28925 28926 if (!$('body > #' + $modal.attr('id')).length > 0) { 28927 $(button).find('.modal').appendTo('body'); 28928 } else { 28929 $modal.remove(); 28930 } 28931 }); 28932 } 28933}; 28934 28935/***/ }), 28936
28937/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/pageDesigner/hero.js": 28938/*!**********************************************************************************************************!*\ 28939 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/pageDesigner/hero.js ***! 28940 \**********************************************************************************************************/ 28941/*! no static exports found */ 28942/***/ (function(module, exports, __webpack_require__) { 28943 28944"use strict"; 28945 28946 28947module.exports = function () { 28948 // add class to sliders containing animated hero banners 28949 if ($('.slider').find('.hero-text[data-animation]')) { 28950 var heroAnimationSliders = $('.slider').find('.hero-text[data-animation]').closest('.slider-container'); 28951 28952 for (var i = 0; i < heroAnimationSliders.length; i++) { 28953 heroAnimationSliders[i].classList.add('hero-has-animation'); 28954 } 28955 } // if hero background video is set to play once, hide when finished and show replay button 28956 28957 28958 $('body').on('video:ended', function (event, player) { 28959 var $playerContainer = player.domElements.$cntr; 28960 28961 if ($playerContainer.hasClass('hero-media') && $playerContainer.data('play-once') === true) { 28962 var $replayButton = $playerContainer.next('.replay-video'); 28963 $playerContainer.addClass('video-stopped'); 28964 $replayButton.click(function (event) { 28965 $playerContainer.removeClass('video-stopped'); 28966 player.config.autoplay = true; 28967 28968 if (player.type === 'youtube') { 28969 player.apiObj.seekTo(0); 28970 } 28971 28972 if (player.type === 'hosted') { 28973 player.apiObj.currentTime(0); 28974 } 28975 28976 if (player.type === 'vimeo') { 28977 player.apiObj.setCurrentTime(0); 28978 } 28979 28980 player.play(); 28981 }); 28982 } 28983 }); 28984}; 28985 28986/***/ }), 28987
28988/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/pageDesigner/index.js": 28989/*!***********************************************************************************************************!*\ 28990 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/pageDesigner/index.js ***! 28991 \***********************************************************************************************************/ 28992/*! no static exports found */ 28993/***/ (function(module, exports, __webpack_require__) { 28994 28995"use strict"; 28996 28997 28998var Button = __webpack_require__(/*! ./button */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/pageDesigner/button.js"); 28999 29000var Hero = __webpack_require__(/*! ./hero */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/pageDesigner/hero.js"); 29001 29002function checkIfVisible($element, context) { 29003 var pageTop = $(window).scrollTop(); 29004 var pageBottom = pageTop + $(window).height(); 29005 var elementHeight = $element.height(); 29006 var elementTop = $element.offset().top; 29007 var elementBottom = elementTop + elementHeight; // on ititial load if animated element is already in or above viewable area, animate immediately 29008 29009 if (context === 'initialPageLoad' && elementTop <= pageBottom) { 29010 return true; 29011 } 29012 29013 if (context === 'reset') { 29014 // element is above fold 29015 return elementTop <= pageBottom; 29016 } else { 29017 // any portion of element is in viewport 29018 return elementTop <= pageBottom && elementBottom >= pageTop; 29019 } 29020} 29021 29022function animateIfVisible($elements, context) { 29023 $elements.each(function (index, element) { 29024 var $element = $(element); 29025 var animationClass = $element.data('animation'); 29026 var isVisible = checkIfVisible($element, context); 29027 29028 if (isVisible) { 29029 $element.removeClass('animation-initial-state').addClass(animationClass); 29030 } 29031 }); 29032} 29033 29034function resetAnimationElement($elements) { 29035 $elements.each(function (index, element) { 29036 var $element = $(element); 29037 var shouldReset = !$element.data('animation-play-once'); 29038 29039 if (shouldReset) { 29040 var animationClass = $element.data('animation'); 29041 var isVisible = checkIfVisible($element, 'reset'); 29042 29043 if (!isVisible) { 29044 $element.removeClass(animationClass).addClass('animation-initial-state'); 29045 void element.offsetWidth; // allows animation to retrigger 29046 } 29047 } 29048 }); 29049} 29050 29051function initScrollEvents() { 29052 // trigger animations when animated component is scrolled to 29053 var $animationElements = $('[data-animation]'); 29054 29055 if ($animationElements.length) { 29056 animateIfVisible($animationElements, 'initialPageLoad'); 29057 window.addEventListener('scrollUpdate', function (event) { 29058 var direction = event.detail.direction; 29059 29060 if (direction === 'down') { 29061 animateIfVisible($animationElements, null); 29062 } 29063 29064 if (direction === 'up') { 29065 resetAnimationElement($animationElements); 29066 } 29067 }); 29068 } 29069} 29070 29071; 29072module.exports = { 29073 initScrollEvents: initScrollEvents, 29074 button: Button, 29075 hero: Hero 29076}; 29077 29078/***/ }), 29079
29080/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/preferences/sitePreferencesUtils.js": 29081/*!*************************************************************************************************************************!*\ 29082 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/preferences/sitePreferencesUtils.js ***! 29083 \*************************************************************************************************************************/ 29084/*! no static exports found */ 29085/***/ (function(module, exports, __webpack_require__) { 29086 29087"use strict"; 29088 29089/** 29090 * This client-side js file just acts as a wrapper for the site preferences 29091 * that are outputted by AB Controller: Data-CachedData 29092 */ 29093 29094function getSitePreferences() { 29095 if (window && window.CachedData && window.CachedData.sitePreferences) { 29096 return window.CachedData.sitePreferences; 29097 } 29098 29099 return {}; 29100} 29101 29102module.exports = { 29103 getSitePreferences: getSitePreferences 29104}; 29105 29106/***/ }), 29107
29108/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/base.js": 29109/*!*****************************************************************************************************!*\ 29110 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/base.js ***! 29111 \*****************************************************************************************************/ 29112/*! no static exports found */ 29113/***/ (function(module, exports, __webpack_require__) { 29114 29115"use strict"; 29116 29117 29118var focusHelper = __webpack_require__(/*! base/components/focus */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/focus.js"); 29119 29120var abSlider = __webpack_require__(/*! core/components/slider */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/slider.js"); 29121 29122var siteIntegrations = __webpack_require__(/*! ../integrations/siteIntegrationsUtils */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/integrations/siteIntegrationsUtils.js"); 29123 29124var toggleObject = siteIntegrations.getIntegrationSettings(); 29125 29126var wishlistHelpers = __webpack_require__(/*! ../wishlist/components/helpers */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/helpers.js"); 29127/** 29128 * Retrieves the relevant pid value 29129 * @param {jquery} $el - DOM container for a given add to cart button 29130 * @return {string} - value to be used when adding product to cart 29131 */ 29132 29133 29134function getPidValue($el) { 29135 var pid; 29136 29137 if ($('#quickViewModal').hasClass('show') && !$('.product-set').length) { 29138 pid = $($el).closest('.modal-content').find('.product-quickview').data('pid'); 29139 } else if ($('.product-set-detail').length || $('.product-set').length) { 29140 pid = $($el).closest('.product-detail').find('.product-id').text(); 29141 } else if ($el.hasClass('single-variant-quick-add-to-cart')) { 29142 pid = $($el).data('pid'); 29143 } else if ($el.parents('.popover').length) { 29144 pid = $($el).closest('.product-detail.product-quick-add-to-cart').data('pid'); 29145 } else { 29146 pid = $('.product-detail:not(".bundle-item")').data('pid'); 29147 } 29148 29149 return pid; 29150} 29151/** 29152 * Retrieve contextual quantity selector 29153 * @param {jquery} $el - DOM container for the relevant quantity 29154 * @return {jquery} - quantity selector DOM container 29155 */ 29156 29157 29158function getQuantitySelector($el) { 29159 var quantitySelected; 29160 29161 if ($el && $('.set-items').length) { 29162 quantitySelected = $($el).closest('.product-detail').find('.quantity-select'); 29163 } else if ($el && $('.product-bundle').length) { 29164 var quantitySelectedModal = $($el).closest('.modal-footer').find('.quantity-select'); 29165 var quantitySelectedPDP = $($el).closest('.bundle-footer').find('.quantity-select'); 29166 29167 if (quantitySelectedModal.val() === undefined) { 29168 quantitySelected = quantitySelectedPDP; 29169 } else { 29170 quantitySelected = quantitySelectedModal; 29171 } 29172 } else { 29173 quantitySelected = $('.quantity-select'); 29174 } 29175 29176 return quantitySelected; 29177} 29178/** 29179 * Retrieves the value associated with the Quantity pull-down menu 29180 * @param {jquery} $el - DOM container for the relevant quantity 29181 * @return {string} - value found in the quantity input 29182 */ 29183 29184 29185function getQuantitySelected($el) { 29186 return this.getQuantitySelector($el).val(); 29187} 29188/** 29189 * Process the attribute values for an attribute that has image swatches 29190 * 29191 * @param {Object} attr - Attribute 29192 * @param {string} attr.id - Attribute ID 29193 * @param {Object[]} attr.values - Array of attribute value objects 29194 * @param {string} attr.values.value - Attribute coded value 29195 * @param {string} attr.values.url - URL to de/select an attribute value of the product 29196 * @param {boolean} attr.values.isSelectable - Flag as to whether an attribute value can be 29197 * selected. If there is no variant that corresponds to a specific combination of attribute 29198 * values, an attribute may be disabled in the Product Detail Page 29199 * @param {jQuery} $productContainer - DOM container for a given product 29200 * @param {Object} msgs - object containing resource messages 29201 */ 29202 29203
29204function processSwatchValues(attr, $productContainer, msgs) { 29205 if (attr.attributeId == 'color') { 29206 $productContainer.find('.color-display-value').text(attr.displayValue || ''); 29207 } 29208 29209 ; 29210 29211 if (attr.attributeId == 'size') { 29212 $productContainer.find('[data-attr="size"]').find('.non-color-display-value').text(attr.displayValue || ''); 29213 } 29214 29215 ; 29216 attr.values.forEach(function (attrValue) { 29217 var $attrValue = $productContainer.find('[data-attr="' + attr.id + '"] [data-attr-value="' + attrValue.value + '"]'); 29218 var $swatchButton = $attrValue.parent('button'); 29219 29220 if (attrValue.selected) { 29221 $attrValue.addClass('selected'); 29222 $attrValue.siblings('.selected-assistive-text').text(msgs.assistiveSelectedText); 29223 $attrValue.attr('selected', 'selected'); 29224 } else { 29225 $attrValue.removeClass('selected'); 29226 $attrValue.siblings('.selected-assistive-text').empty(); 29227 $attrValue.removeAttr('selected'); 29228 } 29229 29230 if (attrValue.url) { 29231 $swatchButton.attr('data-url', attrValue.url); 29232 } else { 29233 $swatchButton.removeAttr('data-url'); 29234 } // Disable if not selectable 29235 29236 29237 $attrValue.removeClass('selectable unselectable available unavailable out-of-stock'); 29238 $attrValue.addClass(attrValue.selectable ? 'selectable' : 'unselectable'); 29239 $attrValue.addClass(attrValue.available ? 'available' : toggleObject.viewOutOfStockItems ? 'out-of-stock' : 'unavailable'); 29240 $attrValue.attr('value', attrValue.url).removeAttr('disabled'); 29241 29242 if (!attrValue.selectable) { 29243 $attrValue.attr('disabled', true); 29244 } 29245 }); 29246} 29247/** 29248 * Check to see if the attribute button element can be clicked 29249 * 29250 * @param {Object} $attributeButtonElement - Attribute element button 29251 */ 29252 29253 29254function checkForClickableAttribute($attributeButtonElement) { 29255 return $attributeButtonElement.attr('disabled') || $attributeButtonElement.data('url') === null || $attributeButtonElement.find('.unselectable').length || $attributeButtonElement.find('.selected').length; 29256} 29257/** 29258 * Process attribute values associated with an attribute that does not have image swatches 29259 * 29260 * @param {Object} attr - Attribute 29261 * @param {string} attr.id - Attribute ID 29262 * @param {Object[]} attr.values - Array of attribute value objects 29263 * @param {string} attr.values.value - Attribute coded value 29264 * @param {string} attr.values.url - URL to de/select an attribute value of the product 29265 * @param {boolean} attr.values.isSelectable - Flag as to whether an attribute value can be 29266 * selected. If there is no variant that corresponds to a specific combination of attribute 29267 * values, an attribute may be disabled in the Product Detail Page 29268 * @param {jQuery} $productContainer - DOM container for a given product 29269 */ 29270 29271 29272function processNonSwatchValues(attr, $productContainer, msgs) { 29273 var viewOutOfStockItems = window.CachedData.siteIntegrations.viewOutOfStockItems; 29274 var $attr = '.custom-select[data-attr="' + attr.id + '"]'; 29275 var $defaultOption = $productContainer.find($attr + '.select-' + attr.id + ' option:first-child'); 29276 $defaultOption.attr('value', attr.resetUrl).attr('disabled', true); 29277 attr.values.forEach(function (attrValue) { 29278 var $attrValue = $productContainer.find($attr + ' [data-attr-value="' + attrValue.value + '"]'); 29279 $attrValue.attr('value', attrValue.url).removeAttr('disabled'); 29280 var currentSelectedOption = $productContainer.find($attr + '.select-' + attr.id + ' option:selected').eq(0); 29281 29282 if (!viewOutOfStockItems && (!attrValue.selectable || !attrValue.available)) { 29283 if (!attrValue.selectable) { 29284 $attrValue.attr('disabled', true); 29285 } //check if selected value is now unavailable, if so select the default option 29286 29287 29288 if (currentSelectedOption.data('attr-value') == attrValue.value) { 29289 $attrValue.removeAttr('selected'); 29290 $($attr).prop('selectedIndex', 0); 29291 } // append a msg to option to tell user its not available with selected options 29292 29293 29294 $attrValue.html(attrValue.displayValue + msgs.unavailableMsg); 29295 } else { 29296 $attrValue.html(attrValue.displayValue); 29297 29298 if (currentSelectedOption.text() == attrValue.displayValue) { 29299 $(currentSelectedOption).attr('selected', 'selected');
29300 $productContainer.find($attr).prop('selectedIndex', $(currentSelectedOption).index()); 29301 } 29302 } 29303 }); 29304} 29305/** 29306 * Routes the handling of attribute processing depending on whether the attribute has image 29307 * swatches or not 29308 * 29309 * @param {Object} attrs - Attribute 29310 * @param {string} attr.id - Attribute ID 29311 * @param {jQuery} $productContainer - DOM element for a given product 29312 * @param {Object} msgs - object containing resource messages 29313 */ 29314 29315 29316function updateAttrs(attrs, $productContainer, msgs) { 29317 var methods = this; //Get the available swatchable attribute array ['color','size'] (currently defined as a site pref, and added as a data attribute to the product container element 29318 29319 var attrsWithSwatches = $productContainer.data('swatchable-attributes'); 29320 attrs.forEach(function (attr) { 29321 if (attrsWithSwatches && attrsWithSwatches.indexOf(attr.attributeId) > -1) { 29322 methods.processSwatchValues(attr, $productContainer, msgs); 29323 } else { 29324 methods.processNonSwatchValues(attr, $productContainer, msgs); 29325 } 29326 }); 29327} 29328/** 29329 * Updates the availability status in the Product Detail Page 29330 * 29331 * @param {Object} response - Ajax response object after an 29332 * attribute value has been [de]selected 29333 * @param {jQuery} $productContainer - DOM element for a given product 29334 */ 29335 29336 29337function updateAvailabilityProcess(response, $productContainer) { 29338 var availabilityValue = ''; 29339 var availabilityMessages = response.product.availability.messages; 29340 29341 if (!response.product.readyToOrder) { 29342 availabilityValue = '<li><div>' + response.resources.info_selectforstock + '</div></li>'; 29343 } else { 29344 availabilityMessages.forEach(function (message) { 29345 availabilityValue += '<li><div>' + message + '</div></li>'; 29346 }); 29347 } 29348 29349 $($productContainer).trigger('product:updateAvailability', { 29350 product: response.product, 29351 $productContainer: $productContainer, 29352 message: availabilityValue, 29353 resources: response.resources 29354 }); 29355} 29356/** 29357 * Generates html for product attributes section 29358 * 29359 * @param {array} attributes - list of attributes 29360 * @return {string} - Compiled HTML 29361 */ 29362 29363 29364function getAttributesHtml(attributes) { 29365 if (!attributes) { 29366 return ''; 29367 } 29368 29369 var html = ''; 29370 attributes.forEach(function (attributeGroup) { 29371 if (attributeGroup.ID === 'mainAttributes') { 29372 attributeGroup.attributes.forEach(function (attribute) { 29373 html += '<div class="attribute-values">' + attribute.label + ': ' + attribute.value + '</div>'; 29374 }); 29375 } 29376 }); 29377 return html; 29378} 29379/** 29380 * @typedef UpdatedOptionValue 29381 * @type Object 29382 * @property {string} id - Option value ID for look up 29383 * @property {string} url - Updated option value selection URL 29384 */ 29385 29386/** 29387 * @typedef OptionSelectionResponse 29388 * @type Object 29389 * @property {string} priceHtml - Updated price HTML code 29390 * @property {Object} options - Updated Options 29391 * @property {string} options.id - Option ID 29392 * @property {UpdatedOptionValue[]} options.values - Option values 29393 */ 29394 29395/** 29396 * Updates DOM using post-option selection Ajax response 29397 * 29398 * @param {OptionSelectionResponse} optionsHtml - Ajax response optionsHtml from selecting a product option 29399 * @param {jQuery} $productContainer - DOM element for current product 29400 */ 29401 29402 29403function updateOptions(optionsHtml, $productContainer) { 29404 // Update options 29405 $productContainer.find('.product-options').empty().html(optionsHtml); 29406} 29407/** 29408 * Updates slider for PDP main images and thumbnails from response containing images 29409 * @param {Object[]} imgs - Array of large product images,along with related information 29410 * @param {jQuery} $productContainer - DOM element for a given product 29411 */ 29412 29413 29414function createSlider(images, assets, $productContainer) { 29415 var $sliderContainers = $productContainer.find('.slider-container'); 29416 var data = images !== null ? { 29417 images: images 29418 } : null; 29419 data.assets = assets || null; // Reversing order in which to update sliders so that thumbnails get initialized first 29420 29421 $($sliderContainers.get().reverse()).each(function (index, sliderContainer) { 29422 var $slider = $(sliderContainer).find('.slider'); // MARTIN MOD : carry through the no-zoom behavior from the previous variation 29423 29424 data.zoom = $slider.find('.no-zoom').length === 0; 29425 $slider.trigger('slider:update', data); 29426 }); 29427} 29428/** 29429 * Parses JSON from Ajax call made whenever an attribute value is [de]selected 29430 * @param {Object} response - response from Ajax call 29431 * @param {Object} response.product - Product object 29432 * @param {string} response.product.id - Product ID 29433 * @param {Object[]} response.product.variationAttributes - Product attributes 29434 * @param {Object[]} response.product.images - Product images 29435 * @param {boolean} response.product.hasRequiredAttrsSelected - Flag as to whether all required 29436 * attributes have been selected. Used partially to 29437 * determine whether the Add to Cart button can be enabled 29438 * @param {jQuery}
29438 $productContainer - DOM element for a given product. 29439 */ 29440 29441 29442function handleVariantResponse(response, $productContainer) { 29443 var isChoiceOfBonusProducts = $productContainer.parents('.choose-bonus-product-dialog').length > 0; 29444 var isVariant; 29445 var isSetItem = $productContainer.hasClass('product-set-item-detail') ? true : false; 29446 29447 if (response.product.variationAttributes) { 29448 this.updateAttrs(response.product.variationAttributes, $productContainer, response.resources); 29449 isVariant = response.product.productType === 'variant'; 29450 29451 if (isChoiceOfBonusProducts && isVariant) { 29452 $productContainer.parent('.bonus-product-item').data('pid', response.product.id); 29453 $productContainer.parent('.bonus-product-item').data('ready-to-order', response.product.readyToOrder); 29454 } 29455 } // Update primary images 29456 29457 29458 var primaryImages = response.product.images; 29459 var pdpGalleryAssets = response.product.pdpGalleryAssets; 29460 var $oldWishlistIcon = $productContainer.find('div.slide .wishlist-toggle-product').first().clone(true); 29461 this.createSlider(primaryImages, pdpGalleryAssets, $productContainer); // if variant is a product set item, update the sample image 29462 29463 if (isSetItem) { 29464 $productContainer.find('.product-set-item-main-image').attr('src', primaryImages.large[0].url).attr('alt', primaryImages.large[0].alt); 29465 } // Update pricing 29466 29467 29468 if (!isChoiceOfBonusProducts) { 29469 var $priceSelector = $('.prices .price', $productContainer).length ? $('.prices .price', $productContainer) : $('.prices .price'); 29470 $priceSelector.replaceWith(response.product.price.html); 29471 } // Update promotions 29472 29473 29474 $productContainer.find('.promotions').empty().html(response.product.promotionsHtml); 29475 this.updateAvailabilityProcess(response, $productContainer); 29476 29477 if (isChoiceOfBonusProducts) { 29478 var $selectButton = $productContainer.find('.select-bonus-product'); 29479 $selectButton.trigger('bonusproduct:updateSelectButton', { 29480 product: response.product, 29481 $productContainer: $productContainer 29482 }); 29483 } else { 29484 // Enable "Add to Cart" button if all required attributes have been selected 29485 $('button.add-to-cart, button.add-to-cart-global, button.update-cart-product-global').trigger('product:updateAddToCart', { 29486 product: response.product, 29487 $productContainer: $productContainer 29488 }).trigger('product:statusUpdate', response.product); 29489 } // Update attributes 29490 29491 29492 $productContainer.find('.main-attributes').empty().html(this.getAttributesHtml(response.product.attributes)); // Update wishlist 29493 29494 if ($oldWishlistIcon && $oldWishlistIcon.length) { 29495 var $newWishlistIcon = $oldWishlistIcon; 29496 $newWishlistIcon.attr('data-wishlistpid', response.product.wishlistpid); //Make heart icon accurate 29497 29498 var wishlist = __webpack_require__(/*! ../wishlist/components/helpers.js */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/helpers.js"); 29499 29500 wishlist.updateLinkData($newWishlistIcon); 29501 var $newSliderMainImages = $productContainer.find('div.primary-images-main div.slide img'); 29502 $newSliderMainImages.each(function (_i, newImage) { 29503 var $newImage = $(newImage); 29504 $newImage.after($newWishlistIcon.clone(true)); 29505 }); 29506 } 29507} 29508/** 29509 * @typespec UpdatedQuantity 29510 * @type Object 29511 * @property {boolean} selected - Whether the quantity has been selected 29512 * @property {string} value - The number of products to purchase 29513 * @property {string} url - Compiled URL that specifies variation attributes, product ID, options, 29514 * etc. 29515 */ 29516 29517/** 29518 * Updates the quantity DOM elements post Ajax call 29519 * @param {UpdatedQuantity[]} quantities - 29520 * @param {jQuery} $productContainer - DOM container for a given product 29521 */ 29522 29523 29524function updateQuantities(quantities, $productContainer) { 29525 if ($productContainer.parent('.bonus-product-item').length <= 0) { 29526 var optionsHtml = quantities.map(function (quantity) { 29527 var selected = quantity.selected ? ' selected ' : ''; 29528 return '<option value="' + quantity.value + '" data-url="' + quantity.url + '"' + selected + '>' + quantity.value + '</option>'; 29529 }).join('');
29530 this.getQuantitySelector($productContainer).empty().html(optionsHtml); 29531 } 29532} 29533/** 29534 * updates the product view when a product attribute is selected or deselected or when 29535 * changing quantity 29536 * @param {string} selectedValueUrl - the Url for the selected variation value 29537 * @param {string} selectedValueHtmlUrl - the url to fetch variation html 29538 * @param {jQuery} $productContainer - DOM element for current product 29539 */ 29540 29541 29542function attributeSelect(selectedValueUrl, selectedValueHtmlUrl, $productContainer) { 29543 var methods = this; 29544 29545 if (selectedValueUrl) { 29546 $('body').trigger('product:beforeAttributeSelect', { 29547 url: selectedValueUrl, 29548 container: $productContainer 29549 }); 29550 $.ajax({ 29551 url: selectedValueUrl, 29552 method: 'GET' 29553 }).then(function (data) { 29554 methods.handleVariantResponse(data, $productContainer); 29555 methods.updateOptions(data.product.optionsHtml, $productContainer); 29556 methods.updateQuantities(data.product.quantities, $productContainer); 29557 $('body').trigger('product:afterAttributeSelect', { 29558 data: data, 29559 container: $productContainer 29560 }); 29561 }).then(function () { 29562 /** 29563 * Fetch html updates for variation -- SFCC struggles to parse waincludes 29564 * in json responses so this is a necessary evil. 29565 */ 29566 if (selectedValueHtmlUrl && typeof selectedValueHtmlUrl !== 'undefined') { 29567 return $.ajax({ 29568 url: selectedValueHtmlUrl, 29569 method: 'GET', 29570 dataType: 'html' 29571 }).then(function (html) { 29572 var $html = $(html); 29573 var $collapseHtml = $html.find('.main-content-item'); 29574 var $tabHtml = $html.find('.tabs'); 29575 29576 if ($collapseHtml.length) { 29577 $productContainer.find('.main-content-item').replaceWith($collapseHtml); 29578 } else { 29579 $productContainer.find('.main-content-item').hide(); 29580 } 29581 29582 if ($tabHtml.length) { 29583 $productContainer.find('.tabs').replaceWith($tabHtml); 29584 } else { 29585 $productContainer.find('.tabs').hide(); 29586 } 29587 }); 29588 } 29589 }).then(function () { 29590 return $.spinner().stop(); 29591 })["catch"](function () { 29592 return $.spinner().stop(); 29593 }); 29594 } 29595} 29596/** 29597 * Retrieves url to use when adding a product to the cart 29598 * 29599 * @return {string} - The provided URL to use when adding a product to the cart 29600 */ 29601 29602 29603function getAddToCartUrl($productContainer) { 29604 return $productContainer.find('.add-to-cart-url').val(); 29605} 29606/** 29607 * Parses the html for a modal window 29608 * @param {string} html - representing the body and footer of the modal window 29609 * 29610 * @return {Object} - Object with properties body and footer. 29611 */ 29612 29613 29614function parseHtml(html) { 29615 var $html = $('<div>').append($.parseHTML(html)); 29616 var body = $html.find('.choice-of-bonus-product'); 29617 var footer = $html.find('.modal-footer').children(); 29618 return { 29619 body: body, 29620 footer: footer 29621 }; 29622} 29623/** 29624 * Retrieves url to use when adding a product to the cart 29625 * 29626 * @param {Object} data - data object used to fill in dynamic portions of the html 29627 */ 29628 29629 29630function chooseBonusProducts(data) { 29631 var methods = this; 29632 $('.modal-body').spinner().start(); 29633 29634 if ($('#chooseBonusProductModal').length !== 0) { 29635 $('#chooseBonusProductModal').remove(); 29636 } 29637 29638 var bonusUrl; 29639 29640 if (data.bonusChoiceRuleBased) { 29641 bonusUrl = data.showProductsUrlRuleBased; 29642 } else { 29643 bonusUrl = data.showProductsUrlListBased; 29644 } 29645 29646 var htmlString = '<!-- Modal -->' + '<div class="modal fade" id="chooseBonusProductModal" tabindex="-1" role="dialog">' + '<span class="enter-message sr-only" ></span>' + '<div class="modal-dialog choose-bonus-product-dialog" ' + 'data-total-qty="' + data.maxBonusItems + '"' + 'data-UUID="' + data.uuid + '"' + 'data-pliUUID="' + data.pliUUID + '"' + 'data-addToCartUrl="' + data.addToCartUrl + '"' + 'data-pageStart="0"' + 'data-pageSize="' + data.pageSize + '"' + 'data-moreURL="' + data.showProductsUrlRuleBased + '"' + 'data-bonusChoiceRuleBased="' + data.bonusChoiceRuleBased + '">' + '<!-- Modal content-->' + '<div class="modal-content">' + '<div class="modal-header">' + ' <span class="">' + data.labels.selectprods + '</span>' + ' <button type="button" class="close pull-right" data-dismiss="modal">
29646' + ' <span aria-hidden="true">×</span>' + ' <span class="sr-only"> </span>' + ' </button>' + '</div>' + '<div class="modal-body"></div>' + '<div class="modal-footer"></div>' + '</div>' + '</div>' + '</div>'; 29647 $('body').append(htmlString); 29648 $('.modal-body').spinner().start(); 29649 $.ajax({ 29650 url: bonusUrl, 29651 method: 'GET', 29652 dataType: 'json', 29653 success: function success(response) { 29654 var parsedHtml = methods.parseHtml(response.renderedTemplate); 29655 $('#chooseBonusProductModal .modal-body').empty(); 29656 $('#chooseBonusProductModal .enter-message').text(response.enterDialogMessage); 29657 $('#chooseBonusProductModal .modal-header .close .sr-only').text(response.closeButtonText); 29658 $('#chooseBonusProductModal .modal-body').html(parsedHtml.body); 29659 $('#chooseBonusProductModal .modal-footer').html(parsedHtml.footer); 29660 $('#chooseBonusProductModal').modal('show'); 29661 $.spinner().stop(); 29662 }, 29663 error: function error() { 29664 $.spinner().stop(); 29665 } 29666 }); 29667} 29668/** 29669 * Updates the Mini-Cart quantity value after the customer has pressed the "Add to Cart" button 29670 * @param {string} response - ajax response from clicking the add to cart button 29671 */ 29672 29673 29674function handlePostCartAdd(response) { 29675 // conditional added for response, sometimes it was failing when called on page load 29676 if (response) { 29677 $('.minicart').trigger('count:update', response); 29678 var messageType = response.error ? 'alert-danger' : 'alert-success'; // show add to cart toast 29679 29680 if (response.newBonusDiscountLineItem && Object.keys(response.newBonusDiscountLineItem).length !== 0) { 29681 this.chooseBonusProducts(response.newBonusDiscountLineItem); 29682 } else { 29683 if ($('.add-to-cart-messages').length === 0) { 29684 $('body').append('<div class="add-to-cart-messages"></div>'); 29685 } 29686 29687 $('.add-to-cart-messages').append('<div class="alert ' + messageType + ' add-to-basket-alert text-center" role="alert">' + response.message + '</div>'); 29688 setTimeout(function () { 29689 $('.add-to-basket-alert').remove(); 29690 }, 5000); 29691 } 29692 } 29693} 29694/** 29695 * Retrieves the bundle product item ID's for the Controller to replace bundle master product 29696 * items with their selected variants 29697 * 29698 * @return {string[]} - List of selected bundle product item ID's 29699 */ 29700 29701 29702function getChildProducts() { 29703 var childProducts = []; 29704 $('.bundle-item').each(function () { 29705 childProducts.push({ 29706 pid: $(this).find('.product-id').text(), 29707 quantity: parseInt($(this).find('label.quantity').data('quantity'), 10) 29708 }); 29709 }); 29710 return childProducts.length ? JSON.stringify(childProducts) : []; 29711} 29712/** 29713 * Retrieve product options 29714 * 29715 * @param {jQuery} $productContainer - DOM element for current product 29716 * @return {string} - Product options and their selected values 29717 */ 29718 29719 29720function getOptions($productContainer) { 29721 var options = $productContainer.find('.product-option').map(function () { 29722 var $elOption = $(this).find('.options-select'); 29723 var urlValue = $elOption.val(); 29724 var selectedValueId = $elOption.find('option[value="' + urlValue + '"]').data('value-id'); 29725 return { 29726 optionId: $(this).data('option-id'), 29727 selectedValueId: selectedValueId 29728 }; 29729 }).toArray(); 29730 return JSON.stringify(options); 29731} 29732/** 29733 * Makes a call to the server to report the event of adding an item to the cart 29734 * 29735 * @param {string | boolean} url - a string representing the end point to hit so that the event can be recorded, or false 29736 */ 29737 29738 29739function miniCartReportingUrl(url) { 29740 if (url) { 29741 $.ajax({ 29742 url: url, 29743 method: 'GET', 29744 success: function success() {// reporting urls hit on the server 29745 }, 29746 error: function error() {// no reporting urls hit on the server 29747 } 29748 }); 29749 } 29750} 29751 29752function enableQuantitySteppers() { 29753 var $context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : $('body'); 29754 var scope = this; 29755 var $steppers = $context.find('.quantity-stepper'); 29756 29757 if ($steppers.length) { 29758 $steppers.each(function (index, stepper) { 29759 var $stepper = $(stepper); 29760 scope.methods.updateQuantityStepperDisabledStates($stepper); 29761 scope.methods.bindQuantityStepperButtons($stepper); 29762 scope.methods.bindQuantityStepperInput($stepper); 29763 }); 29764 } 29765} 29766 29767function updateQuantityStepperDisabledStates($stepper) { 29768 var min = parseInt($stepper.attr('data-min')); 29769 var max = parseInt($stepper.attr('data-max')); 29770 var $input = $stepper.find('input'); 29771 var $minusButton = $stepper.find('[data-action="decrease"]'); 29772 var $plusButton = $stepper.find('[data-action="increase"]'); 29773 var value = !isNaN(parseInt($input.prop('data-qty'))) ? parseInt($input.prop('data-qty')) : parseInt($input.attr('data-qty')); 29774 29775 if (value <= min) {
29776 $minusButton.addClass('disabled'); 29777 } else { 29778 $minusButton.removeClass('disabled'); 29779 } 29780 29781 if (value >= max) { 29782 $plusButton.addClass('disabled'); 29783 } else { 29784 $plusButton.removeClass('disabled'); 29785 } 29786} 29787 29788function bindQuantityStepperButtons($stepper) { 29789 var methods = this; 29790 var $select = $stepper.prev('select'); 29791 var min = parseInt($stepper.data('min')); 29792 var max = parseInt($stepper.data('max')); 29793 $stepper.find('button').off('click').click(function (event) { 29794 event.preventDefault(); 29795 var $button = $(event.target); 29796 var action = $button.data('action'); 29797 var previousValue = parseInt($stepper.find('input').val()); 29798 var newValue = previousValue; 29799 29800 if (action === 'increase' && previousValue + 1 <= max) { 29801 newValue++; 29802 } 29803 29804 if (action === 'decrease' && previousValue - 1 >= min) { 29805 newValue--; 29806 } 29807 29808 if (newValue !== previousValue) { 29809 $select.find('option[value="' + newValue + '"]').prop('selected', true).change(); 29810 $stepper.find('input').prop('value', newValue).prop('data-qty', newValue); 29811 methods.updateQuantityStepperDisabledStates($stepper); 29812 $('body').trigger('quantityStepper:change', $stepper); 29813 } 29814 }); 29815} 29816 29817function bindQuantityStepperInput($stepper) { 29818 var methods = this; 29819 var $select = $stepper.prev('select'); 29820 var min = parseInt($stepper.data('min')); 29821 var max = parseInt($stepper.data('max')); 29822 $stepper.find('input').off('change').change(function (event) { 29823 var $input = $(event.target); 29824 var previousValue = !isNaN(parseInt($input.prop('data-qty'))) ? parseInt($input.prop('data-qty')) : parseInt($input.attr('data-qty')); 29825 var newValue = parseInt($input.val()); 29826 29827 if (!isNaN(newValue) && newValue <= max && newValue >= min) { 29828 $select.find('option[value="' + newValue + '"]').prop('selected', true).change(); 29829 $input.prop('value', newValue).prop('data-qty', newValue); 29830 methods.updateQuantityStepperDisabledStates($stepper); 29831 $('body').trigger('quantityStepper:change', $stepper); 29832 } else { 29833 $input.prop('value', previousValue); 29834 } 29835 }); 29836} 29837/** 29838 * Preselect Single Swatches if only one variant available and it is a swatch 29839 * 29840 * @param {object} $productContainer - DOM element holding attributes 29841 * @return {array} - The swatch elements that need to be selected - in this case it's just one 29842*/ 29843 29844 29845function preselectSingleSwatchesInContainer() { 29846 var containerSelector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'body'; 29847 var swatches = []; 29848 29849 if ($(containerSelector) && $(containerSelector).length > 0) { 29850 var attributes = $(containerSelector).find('.attribute'); 29851 $.each(attributes, function () { 29852 var disSwatch = $(this).find('.swatch'); 29853 29854 if (disSwatch.length == 1) { 29855 var firstswatch = $(disSwatch[0]); // If the single swatch is already preselected do not add it to the list to be selected (i.e. going straight to a variation's pdp) 29856 29857 if (!firstswatch.find('span.selectable').hasClass('selected')) { 29858 swatches.push(firstswatch); 29859 } //If we want to hide the attribute selection completely when there is only one choice 29860 //disSwatch.parents('.attribute').addClass('visually-hidden'); 29861 29862 } 29863 }); 29864 this.methods.selectSwatch(swatches); 29865 } 29866} 29867/** 29868 * Select Swatches takes an array of swatch dom elements that need to be preselected 29869 * 29870 * @param {array} The swatch elements that need to be selected 29871*/ 29872 29873 29874function selectSwatch(swatches) { 29875 var methods = this; 29876 29877 if (swatches.length > 0) { 29878 // This splice removes the first swatch element from the array, and stores it in the "swatch" variable 29879 var swatch = swatches.splice(0, 1)[0]; 29880 29881 if ($('.product-bundle').length) { 29882 var $productContainer = $('.bundle-main-product').length ? $(swatch).closest('.bundle-main-product') : $(swatch).closest('.product-bundle'); 29883 } else { 29884 var $productContainer = $(swatch).closest('.set-item'); 29885 } 29886
29887 if (!$productContainer.length) { 29888 $productContainer = $(swatch).closest('.product-detail'); 29889 } 29890 29891 $productContainer.find('.color-display-value').text($(swatch).data('displayvalue')); // This call triggers the selection of the current swatch element, and sends the new array to be passed back to this function afterward. 29892 29893 methods.attributeSelect($(swatch).attr('data-url'), $(swatch).attr('data-html-url'), $productContainer, function () { 29894 methods.selectSwatch(swatches); 29895 }); 29896 } 29897} 29898 29899function updateWishlistButtons() { 29900 var $oldWishlistIcon; 29901 $('body').on('product:beforeAttributeSelect', function (e, attrData) { 29902 $oldWishlistIcon = attrData.container.find('div.slide .wishlist-toggle-product').first().clone(true); 29903 }).on('product:afterAttributeSelect', function (e, attrData) { 29904 if ($oldWishlistIcon && $oldWishlistIcon.length) { 29905 var $newWishlistIcon = $oldWishlistIcon; 29906 var $newSliderMainImages = attrData.container.find('div.primary-images-main div.slide img'); 29907 $newWishlistIcon.attr('data-wishlistpid', attrData.wishlistpid); 29908 wishlistHelpers.updateLinkData($newWishlistIcon); 29909 $newSliderMainImages.each(function (_i, newImage) { 29910 var $newImage = $(newImage); 29911 $newImage.after($newWishlistIcon.clone(true)); 29912 }); 29913 } 29914 }); 29915} 29916 29917module.exports = { 29918 methods: { 29919 attributeSelect: attributeSelect, 29920 bindQuantityStepperButtons: bindQuantityStepperButtons, 29921 bindQuantityStepperInput: bindQuantityStepperInput, 29922 checkForClickableAttribute: checkForClickableAttribute, 29923 chooseBonusProducts: chooseBonusProducts, 29924 createSlider: createSlider, 29925 getAddToCartUrl: getAddToCartUrl, 29926 getAttributesHtml: getAttributesHtml, 29927 getChildProducts: getChildProducts, 29928 getOptions: getOptions, 29929 getPidValue: getPidValue, 29930 getQuantitySelected: getQuantitySelected, 29931 getQuantitySelector: getQuantitySelector, 29932 handlePostCartAdd: handlePostCartAdd, 29933 handleVariantResponse: handleVariantResponse, 29934 miniCartReportingUrl: miniCartReportingUrl, 29935 parseHtml: parseHtml, 29936 processNonSwatchValues: processNonSwatchValues, 29937 processSwatchValues: processSwatchValues, 29938 selectSwatch: selectSwatch, 29939 updateAttrs: updateAttrs, 29940 updateAvailabilityProcess: updateAvailabilityProcess, 29941 updateOptions: updateOptions, 29942 updateQuantities: updateQuantities, 29943 updateQuantityStepperDisabledStates: updateQuantityStepperDisabledStates, 29944 updateWishlistButtons: updateWishlistButtons 29945 }, 29946 29947 /********** 29948 * shared across QV and PDP 29949 */ 29950 addToCart: function addToCart() { 29951 var scope = this; // if qty stepper input has focus, we need to blur it so product data can update before button click 29952 29953 $(document).on('mouseenter', 'button.add-to-cart, button.add-to-cart-global', function (event) { 29954 var $button = $(event.target); 29955 var $container = $button.closest('.product-detail'); 29956 29957 if (!$container.length) { 29958 $container = $button.closest('.quick-view-dialog'); 29959 } 29960 29961 var $qtyStepperInput = $container.find('.quantity-stepper input'); 29962 29963 if ($qtyStepperInput.length && $qtyStepperInput.is(':focus')) { 29964 $qtyStepperInput.blur(); 29965 } 29966 }); 29967 $(document).on('click', 'button.add-to-cart, button.add-to-cart-global', function (event) { 29968 var addToCartUrl; 29969 var pid; 29970 var pidsObj; 29971 var setPids; 29972 var quantity; 29973 $('body').trigger('product:beforeAddToCart', this); 29974 29975 if ($('.set-items').length && $(this).hasClass('add-to-cart-global')) { 29976 setPids = []; 29977 var $products = $(this).closest('.product-detail').find('.product-set-item-detail'); 29978 29979 if (!$products.length) { 29980 if ($(this).closest('.quick-view-dialog').length) { 29981 $products = $(this).closest('.quick-view-dialog').find('.product-set-item-detail'); 29982 } else { 29983 $products = $('.product-detail'); // pagedesigner component 'Add all to cart btn' won't have .product-set-item-detail classes 29984 } 29985 } 29986 29987 $products.each(function () { 29988 if (!$(this).hasClass('product-set-detail')) { 29989 setPids.push({ 29990 pid: $(this).find('.product-id').text(), 29991 qty: $(this).find('.quantity-select').val(), 29992 options: scope.methods.getOptions($(this)) 29993 }); 29994 } 29995 }); 29996 pidsObj = JSON.stringify(setPids); 29997 } 29998 29999 pid = scope.methods.getPidValue($(this)); 30000 quantity = $(this).hasClass('single-variant-quick-add-to-cart') ? 1 : scope.methods.getQuantitySelected($(this));
30001 var $productContainer = $(this).closest('.product-detail'); 30002 30003 if (!$productContainer.length) { 30004 if ($(this).hasClass('single-variant-quick-add-to-cart')) { 30005 addToCartUrl = $(this).data('url'); 30006 } else { 30007 $productContainer = $(this).closest('.quick-view-dialog').find('.product-detail'); 30008 var $productModalbody = $(this).closest('.modal-content'); 30009 addToCartUrl = scope.methods.getAddToCartUrl($productModalbody); 30010 } 30011 } else { 30012 addToCartUrl = scope.methods.getAddToCartUrl($productContainer); 30013 } 30014 30015 var form = { 30016 pid: pid, 30017 pidsObj: pidsObj, 30018 childProducts: scope.methods.getChildProducts(), 30019 quantity: quantity, 30020 options: scope.methods.getOptions($productContainer) 30021 }; 30022 $(this).trigger('updateAddToCartFormData', form); 30023 30024 if (addToCartUrl) { 30025 $.ajax({ 30026 url: addToCartUrl, 30027 method: 'POST', 30028 data: form, 30029 success: function success(data) { 30030 scope.methods.handlePostCartAdd(data); 30031 $('body').trigger('product:afterAddToCart', data); 30032 $('body').trigger('product:afterAddToCartQuickview', data); //cart page quickview only 30033 30034 $.spinner().stop(); 30035 scope.methods.miniCartReportingUrl(data.reportingURL); 30036 }, 30037 error: function error() { 30038 $.spinner().stop(); 30039 } 30040 }); 30041 } 30042 }); 30043 }, 30044 quickAddToCart: function quickAddToCart() { 30045 $('body').on('product:singleSelectQuickAddToCart', function (e, response) { 30046 var addToCartUrl = getAddToCartUrl(response.container); 30047 var form = { 30048 pid: response.data.product.id, 30049 quantity: 1 30050 }; 30051 $(response.container).trigger('updateAddToCartFormData', form); 30052 30053 if (addToCartUrl) { 30054 $.ajax({ 30055 url: addToCartUrl, 30056 method: 'POST', 30057 data: form, 30058 success: function success(data) { 30059 handlePostCartAdd(data); 30060 $('body').trigger('product:afterAddToCart', data); 30061 $.spinner().stop(); 30062 miniCartReportingUrl(data.reportingURL); 30063 }, 30064 error: function error() { 30065 $.spinner().stop(); 30066 } 30067 }); 30068 } 30069 }); 30070 }, 30071 updateAvailability: function updateAvailability() { 30072 $('body').on('product:updateAvailability', function (e, response) { 30073 var $productContainer = response.$productContainer; // bundle individual products 30074 30075 $productContainer.find('.product-availability').data('ready-to-order', response.product.readyToOrder).data('available', response.product.available).find('.availability-msg').empty().html(response.message); //Quickview 30076 30077 var $dialog = $productContainer.closest('.quick-view-dialog'); 30078 30079 if ($dialog.length) { 30080 if ($dialog.find('.product-availability').length) { 30081 // bundle all products 30082 var allAvailable = $dialog.find('.product-availability').toArray().every(function (item) { 30083 return $(item).data('available'); 30084 }); 30085 var allReady = $dialog.find('.product-availability').toArray().every(function (item) { 30086 return $(item).data('ready-to-order'); 30087 }); 30088 $dialog.find('.global-availability').data('ready-to-order', allReady).data('available', allAvailable); 30089 $dialog.find('.global-availability .availability-msg').empty().html(allReady ? response.message : response.resources.info_selectforstock); 30090 } else { 30091 // single product 30092 $dialog.find('.global-availability').data('ready-to-order', response.product.readyToOrder).data('available', response.product.available).find('.availability-msg').empty().html(response.message); 30093 } //main PDP 30094 30095 } else { 30096 if ($productContainer.find('.global-availability').length) { 30097 var allAvailable = $productContainer.find('.product-availability').toArray().every(function (item) { 30098 return $(item).data('available'); 30099 }); 30100 var allReady = $productContainer.find('.product-availability').toArray().every(function (item) { 30101 return $(item).data('ready-to-order'); 30102 });
30103 $productContainer.find('.global-availability').data('ready-to-order', allReady).data('available', allAvailable); 30104 $productContainer.find('.global-availability .availability-msg').empty().html(allReady ? response.message : response.resources.info_selectforstock); 30105 } 30106 } 30107 }); 30108 }, 30109 availability: function availability() { 30110 var scope = this; 30111 $(document).on('change', '.quantity-select', function (e) { 30112 e.preventDefault(); 30113 var $productContainer = $(this).closest('.product-detail'); 30114 30115 if (!$productContainer.length) { 30116 $productContainer = $(this).closest('.modal-content').find('.product-quickview'); 30117 } 30118 30119 if ($('.bundle-items', $productContainer).length === 0) { 30120 scope.methods.attributeSelect($(e.currentTarget).find('option:selected').data('url'), $(e.currentTarget).find('option:selected').data('htmlUrl'), $productContainer); 30121 } 30122 }); 30123 }, 30124 updateSetItemsAvailability: function updateSetItemsAvailability() { 30125 var scope = this; 30126 $(document).on('change', '.product-set-quantity-select', function (e) { 30127 e.preventDefault(); 30128 var $productContainer = $(this).closest('.product-set-detail').find('.set-items'); 30129
30130 if (!$productContainer.length) { 30131 $productContainer = $(this).closest('.modal-content').find('.set-items'); 30132 } 30133 30134 var $quantitySelected = $(e.currentTarget).find('option:selected').val(); 30135 $productContainer.find('.product-set-item-detail').each(function () { 30136 var $setItemQuantity = $(this).find('.quantity-select'); 30137 var qtyStepper = $(this).find('.quantity-stepper'); 30138 $setItemQuantity.val($quantitySelected).find('option').each(function () { 30139 if (this.value == $quantitySelected) { 30140 $(this).prop('selected', 'selected'); 30141 $setItemQuantity.change(); 30142 30143 if (qtyStepper.length) { 30144 qtyStepper.find('input').val($quantitySelected).attr('data-qty', $quantitySelected); 30145 scope.methods.updateQuantityStepperDisabledStates(qtyStepper); 30146 } 30147 30148 return false; 30149 } 30150 }); 30151 }); 30152 }); 30153 }, 30154 updateAddToCart: function updateAddToCart() { 30155 $('body').on('product:updateAddToCart', function (e, response) { 30156 var $productContainer = response.$productContainer; // update local add to cart (for sets) 30157 30158 $productContainer.find('button.add-to-cart').attr('disabled', !response.product.readyToOrder || !response.product.available); // update global add to cart (single products, bundles) 30159 30160 var $dialog = $(response.$productContainer).closest('.quick-view-dialog'); 30161 30162 if ($dialog.length) { 30163 $dialog.find('.add-to-cart-global, .update-cart-product-global').attr('disabled', !$dialog.find('.global-availability').data('ready-to-order') || !$dialog.find('.global-availability').data('available')); 30164 } else { 30165 var enable = $productContainer.find('.product-availability').toArray().every(function (item) { 30166 return $(item).data('available') && $(item).data('ready-to-order'); 30167 }); 30168 $productContainer.find('button.add-to-cart-global').attr('disabled', !enable); 30169 } 30170 }); 30171 }, 30172 updateAttribute: function updateAttribute() { 30173 $('body').on('product:afterAttributeSelect', function (e, response) { 30174 response.container.find('#sizeChartModal').attr('data-product', response.data.product.id); //Quickview 30175 30176 if ($('.modal.show .product-quickview>.bundle-items').length) { 30177 $('.modal.show').find(response.container).data('pid', response.data.product.id); 30178 $('.modal.show').find(response.container).find('.product-id').text(response.data.product.id); 30179 } else if ($('.set-items').length) { 30180 response.container.find('.product-id').text(response.data.product.id); 30181 } else if ($('.modal.show .product-quickview').length) { 30182 $('.modal.show .product-quickview').data('pid', response.data.product.id); 30183 $('.modal.show .full-pdp-link').attr('href', response.data.product.selectedProductUrl); 30184 $('.modal.show').find(response.container).find('.product-id').text(response.data.product.id); //Main PDP 30185 } else if ($('.product-detail>.bundle-items').length) { 30186 response.container.data('pid', response.data.product.id); 30187 response.container.find('.product-id').text(response.data.product.id); 30188 } else if ($('.product-set-detail').eq(0)) { 30189 response.container.data('pid', response.data.product.id); 30190 response.container.find('.product-id').text(response.data.product.id); 30191 response.container.find('.add-to-cart').data('pid', response.data.product.id); 30192 } else { 30193 $('.product-detail .add-to-cart').data('pid', response.data.product.id); 30194 $('.product-id').text(response.data.product.id); 30195 $('.product-detail:not(".bundle-item")').data('pid', response.data.product.id); 30196 } 30197 }); 30198 }, 30199 quickViewLoaded: function quickViewLoaded() { 30200 var scope = this; 30201 $(document).on('quickview:ready', 'body', function (event, modal) { 30202 scope.enableQuantitySteppers($(modal)); 30203 }); 30204 }, 30205 miniCartLoaded: function miniCartLoaded() { 30206 var scope = this; 30207 $('body').on('minicart:loaded', function (event, minicart) { 30208 scope.enableQuantitySteppers($(minicart)); 30209 }); 30210 }, 30211 preselectSingleSwatchesInContainer: preselectSingleSwatchesInContainer, 30212 //Attributes that display as non-color swatches 30213 nonColorAttribute: function nonColorAttribute() { 30214 var scope = this; 30215 $(document).on('click', 'button.swatch:not(.color-attribute)', function (e) { 30216 e.preventDefault(); 30217 $('body').trigger('product:swatchClicked', [$(this), toggleObject]); // add trigger for any attribute click use (incl. nonClickable Attrs) 30218 30219 if (scope.methods.checkForClickableAttribute($(this)) && !toggleObject.viewOutOfStockItems) { 30220 return; 30221 } 30222 30223 if ($('.product-bundle').length) {
30224 var $productContainer = $('.bundle-main-product').length ? $(this).closest('.bundle-main-product') : $(this).closest('.product-bundle'); 30225 } else { 30226 var $productContainer = $(this).closest('.set-item'); 30227 } 30228 30229 if (!$productContainer.length) { 30230 $productContainer = $(this).closest('.product-detail'); 30231 } 30232 30233 scope.methods.attributeSelect($(this).attr('data-url'), $(this).attr('data-html-url'), $productContainer); 30234 $(this).closest('.non-color-attribute-swatches').find('.non-color-display-value').text($(this).find('.swatch-value').data('display-value')); 30235 }); 30236 }, 30237 //Attributes that display in a select dropdown (default) 30238 selectAttribute: function selectAttribute() { 30239 var scope = this; 30240 $(document).on('change', 'select[class*="select-"], .options-select', function (e) { 30241 e.preventDefault(); 30242 30243 if ($('.product-bundle').length) { 30244 var $productContainer = $('.bundle-main-product').length ? $(this).closest('.bundle-main-product') : $(this).closest('.product-bundle'); 30245 } else { 30246 var $productContainer = $(this).closest('.set-item'); 30247 } 30248
30249 if (!$productContainer.length) { 30250 $productContainer = $(this).closest('.product-detail'); 30251 } 30252 30253 scope.methods.attributeSelect(e.currentTarget.value, $(this).find('option:selected').data('htmlUrl'), $productContainer); 30254 }); 30255 }, 30256 //Attributes that display as color swatches 30257 colorAttribute: function colorAttribute() { 30258 var scope = this; // CLIENT MOD: Update to include any attribute with color in the attribute name 30259 30260 $(document).on('click', '[data-attr*="color"] button', function (e) { 30261 e.preventDefault(); 30262 $('body').trigger('product:swatchClicked', [$(this), toggleObject]); // add trigger for any attribute click use (incl. nonClickable Attrs) 30263 30264 if (scope.methods.checkForClickableAttribute($(this)) && !toggleObject.viewOutOfStockItems) { 30265 return; 30266 } 30267 30268 if ($('.product-bundle').length) { 30269 var $productContainer = $('.bundle-main-product').length ? $(this).closest('.bundle-main-product') : $(this).closest('.product-bundle'); 30270 } else { 30271 var $productContainer = $(this).closest('.set-item'); 30272 } 30273
30274 if (!$productContainer.length) { 30275 $productContainer = $(this).closest('.product-detail'); 30276 } 30277 30278 scope.methods.attributeSelect($(this).attr('data-url'), $(this).attr('data-html-url'), $productContainer); 30279 $productContainer.find('.color-display-value').text($(this).find('.swatch').data('displayvalue')); 30280 }); 30281 }, 30282 enableQuantitySteppers: enableQuantitySteppers, 30283 sizeChart: function sizeChart() { 30284 $('body').on('click', '.size-chart .size-chart-launcher', function (event) { 30285 event.preventDefault(); 30286 var url = $(event.target).attr('href'); 30287 var productId = $(event.target).closest('.product-detail').find('.product-id').html(); 30288 var $sizeChartModal = $('.modal[data-product=' + productId + ']'); 30289 var $modalBody = $sizeChartModal.find('.modal-body'); 30290 $.ajax({ 30291 url: url, 30292 type: 'get', 30293 dataType: 'html', 30294 success: function success(data) { 30295 $modalBody.html(data); 30296 } 30297 }); //if the sizechart is from a quickview append after all the modal-backdrops 30298 30299 if ($(event.target).parents('.product-quickview').length) { 30300 var $sizeChartContainer = $(event.target).closest('.size-chart'); 30301 $sizeChartModal.appendTo('body'); 30302 $sizeChartModal.on('hide.bs.modal', function (event) { 30303 $sizeChartModal.appendTo($sizeChartContainer); 30304 }); 30305 } 30306 30307 $sizeChartModal.modal('show'); 30308 }); 30309 $('body').on('click', '#sizeChartModal .close', function (event) { 30310 $(event.target).closest('#sizeChartModal').modal('hide'); 30311 }); 30312 }, 30313 30314 /********** 30315 * from cart 30316 */ 30317 bonusProductEdit: function bonusProductEdit() { 30318 var scope = this; 30319 $('body').on('bonusproduct:edit', function (event, data) { 30320 scope.methods.chooseBonusProducts(data); 30321 }); 30322 }, 30323 removeBonusProduct: function removeBonusProduct() { 30324 $(document).on('click', '.selected-pid .remove-bonus-product', function (event) { 30325 $(event.target).closest('.selected-pid').remove(); 30326 var $selected = $('#chooseBonusProductModal .selected-bonus-products .selected-pid'); 30327 var count = 0; 30328 30329 if ($selected.length) { 30330 $selected.each(function () { 30331 count += parseInt($(this).data('qty'), 10); 30332 }); 30333 } 30334 30335 $('.pre-cart-products').html(count); 30336 $('.selected-bonus-products .bonus-summary').removeClass('alert-danger'); 30337 $('body').trigger('modal:loaded', $('#chooseBonusProductModal')); // update quickview modal scroll height 30338 }); 30339 }, 30340 selectBonusProduct: function selectBonusProduct() { 30341 $(document).on('click', '.select-bonus-product', function () { 30342 var $choiceOfBonusProduct = $(this).parents('.choice-of-bonus-product'); 30343 var pid = $(this).data('pid'); 30344 var maxPids = $('.choose-bonus-product-dialog').data('total-qty'); 30345 var submittedQty = parseInt($choiceOfBonusProduct.find('.bonus-quantity-select').val(), 10); 30346 var totalQty = 0; 30347 $.each($('#chooseBonusProductModal .selected-bonus-products .selected-pid'), function () { 30348 totalQty += $(this).data('qty'); 30349 }); 30350 totalQty += submittedQty; 30351 var optionID = $choiceOfBonusProduct.find('.product-option').data('option-id'); 30352 var valueId = $choiceOfBonusProduct.find('.options-select option:selected').data('valueId'); 30353 30354 if (totalQty <= maxPids) { 30355 var selectedBonusProductHtml = '' + '<div class="selected-pid" ' + 'data-pid="' + pid + '"' + 'data-qty="' + submittedQty + '"' + 'data-optionID="' + (optionID || '') + '"' + 'data-option-selected-value="' + (valueId || '') + '"' + '>' + '<div class="bonus-product-name">' + $choiceOfBonusProduct.find('.product-name').html() + '</div>' + '<div class="remove-bonus-product"></div>' + '</div>'; 30356 $('#chooseBonusProductModal .selected-bonus-products .bonus-summary-products-container').append(selectedBonusProductHtml); 30357 $('.pre-cart-products').html(totalQty); 30358 $('.selected-bonus-products .bonus-summary').removeClass('alert-danger'); 30359 $('body').trigger('modal:loaded', $('#chooseBonusProductModal')); // update quickview modal scroll height 30360 } else { 30361 $('.selected-bonus-products .bonus-summary').addClass('alert-danger'); 30362 } 30363 }); 30364 }, 30365 enableBonusProductSelection: function enableBonusProductSelection() { 30366 $('body').on('bonusproduct:updateSelectButton', function (e, response) {
30367 $('button.select-bonus-product', response.$productContainer).attr('disabled', !response.product.readyToOrder || !response.product.available); 30368 var pid = response.product.id; 30369 $('button.select-bonus-product', response.$productContainer).data('pid', pid); 30370 }); 30371 }, 30372 focusChooseBonusProductModal: function focusChooseBonusProductModal() { 30373 var scope = this; 30374 $('body').on('shown.bs.modal', '#chooseBonusProductModal', function () { 30375 scope.enableQuantitySteppers($(this)); 30376 $('body').trigger('quickview:ready', $('#chooseBonusProductModal')); 30377 $('#chooseBonusProductModal').siblings().attr('aria-hidden', 'true'); 30378 $('#chooseBonusProductModal .close').focus(); 30379 }); 30380 }, 30381 showMoreBonusProducts: function showMoreBonusProducts() { 30382 var scope = this; 30383 $(document).on('click', '.show-more-bonus-products', function () { 30384 var url = $(this).data('url'); 30385 var $modalContent = $(this).closest('.modal').find('.modal-content'); 30386 $modalContent.spinner().start(); 30387 $.ajax({ 30388 url: url, 30389 method: 'GET', 30390 success: function success(response) { 30391 var parsedHtml = scope.methods.parseHtml(response.renderedTemplate); 30392 $modalContent.find('.modal-body').append(parsedHtml.body); 30393 $modalContent.find('.show-more-bonus-products:first').remove(); 30394 abSlider.initializeSliders($(parsedHtml.body)); 30395 scope.enableQuantitySteppers($(parsedHtml.body)); 30396 $modalContent.spinner().stop(); 30397 }, 30398 error: function error() { 30399 $modalContent.spinner().stop(); 30400 } 30401 }); 30402 }); 30403 }, 30404 addBonusProductsToCart: function addBonusProductsToCart() { 30405 $(document).on('click', '.add-bonus-products', function () { 30406 var $readyToOrderBonusProducts = $('.choose-bonus-product-dialog .selected-pid'); 30407 var queryString = '?pids='; 30408 var url = $('.choose-bonus-product-dialog').data('addtocarturl'); 30409 var pidsObject = { 30410 bonusProducts: [] 30411 }; 30412 $.each($readyToOrderBonusProducts, function () { 30413 var qtyOption = parseInt($(this).data('qty'), 10); 30414 var option = null; 30415 30416 if (qtyOption > 0) { 30417 if ($(this).data('optionid') && $(this).data('option-selected-value')) { 30418 option = {}; 30419 option.optionId = $(this).data('optionid'); 30420 option.productId = $(this).data('pid'); 30421 option.selectedValueId = $(this).data('option-selected-value'); 30422 } 30423 30424 pidsObject.bonusProducts.push({ 30425 pid: $(this).data('pid'), 30426 qty: qtyOption, 30427 options: [option] 30428 }); 30429 pidsObject.totalQty = parseInt($('.pre-cart-products').html(), 10); 30430 } 30431 }); 30432 queryString += JSON.stringify(pidsObject); 30433 queryString = queryString + '&uuid=' + $('.choose-bonus-product-dialog').data('uuid'); 30434 queryString = queryString + '&pliuuid=' + $('.choose-bonus-product-dialog').data('pliuuid'); 30435 $.spinner().start(); 30436 $.ajax({ 30437 url: url + queryString, 30438 method: 'POST', 30439 success: function success(data) { 30440 $.spinner().stop(); 30441 30442 if (data.error) { 30443 $('#chooseBonusProductModal').modal('hide'); 30444 30445 if ($('.add-to-cart-messages').length === 0) { 30446 $('body').append('<div class="add-to-cart-messages"></div>'); 30447 } 30448 30449 $('.add-to-cart-messages').append('<div class="alert alert-danger add-to-basket-alert text-center"' + ' role="alert">' + data.errorMessage + '</div>'); 30450 setTimeout(function () { 30451 $('.add-to-basket-alert').remove(); 30452 }, 3000); 30453 } else { 30454 $('.configure-bonus-product-attributes').html(data); 30455 $('.bonus-products-step2').removeClass('hidden-xl-down'); 30456 $('#chooseBonusProductModal').modal('hide'); 30457 30458 if ($('.add-to-cart-messages').length === 0) { 30459 $('body').append('<div class="add-to-cart-messages"></div>'); 30460 } 30461 30462 $('.minicart-quantity').html(data.totalQty); 30463 $('.add-to-cart-messages').append('<div class="alert alert-success add-to-basket-alert text-center"' + ' role="alert">
30463' + data.msgSuccess + '</div>'); 30464 setTimeout(function () { 30465 $('.add-to-basket-alert').remove(); 30466 30467 if ($('.cart-page').length) { 30468 location.reload(); 30469 } 30470 }, 1500); 30471 } 30472 }, 30473 error: function error() { 30474 $.spinner().stop(); 30475 } 30476 }); 30477 }); 30478 }, 30479 trapChooseBonusProductModalFocus: function trapChooseBonusProductModalFocus() { 30480 $('body').on('keydown', '#chooseBonusProductModal', function (e) { 30481 var focusParams = { 30482 event: e, 30483 containerSelector: '#chooseBonusProductModal', 30484 firstElementSelector: '.close', 30485 lastElementSelector: '.add-bonus-products' 30486 }; 30487 focusHelper.setTabNextFocus(focusParams); 30488 }); 30489 }, 30490 onClosingChooseBonusProductModal: function onClosingChooseBonusProductModal() { 30491 $('body').on('hidden.bs.modal', '#chooseBonusProductModal', function () { 30492 $('#chooseBonusProductModal').siblings().attr('aria-hidden', 'false'); 30493 }); 30494 }, 30495 updateHideShowOutOfStockInStockNotificationForm: function updateHideShowOutOfStockInStockNotificationForm() { 30496 if (toggleObject.viewOutOfStockItems && toggleObject.viewBackInStockNotificationForm) { 30497 $('body').on('product:afterAttributeSelect', function (e, attrData) { 30498 var $qtyCartContainer = attrData.container && attrData.container.find('.qty-cart-container'); 30499 30500 if ($qtyCartContainer) { 30501 $qtyCartContainer.each(function () { 30502 var $container = $(this); 30503 var $addToCartBtn = $container.find('.addtocartbutton'); 30504 var $qty = $container.find('.quantity'); 30505 var $bisnForm = $container.find('.bisnform'); 30506 var product = (attrData.data || {}).product || {}; 30507 $bisnForm.find('.submit-success').removeClass('submit-success'); 30508 $bisnForm.find(':input[name="pid"]').val(product.id || ''); 30509
30510 if (!!product.showBISN) { 30511 $addToCartBtn.addClass('d-none'); 30512 $qty.addClass('d-none'); 30513 $bisnForm.removeClass('d-none'); 30514 } else { 30515 $addToCartBtn.removeClass('d-none'); 30516 30517 if (!attrData.data.product.hideQty) { 30518 $qty.removeClass('d-none'); 30519 } 30520 30521 $bisnForm.addClass('d-none'); 30522 } 30523 }); 30524 } 30525 }); 30526 } 30527 }, 30528 notifyWhenBackInStock: function notifyWhenBackInStock() { 30529 $('body').on('submit', '.pdp-bisn-form', function (e) { 30530 e.preventDefault(); 30531 e.stopPropagation(); // 30532 // Submit the Subscribe Form 30533 // 30534 30535 var form = this, 30536 $form = $(form); 30537 $form.data('$xhr', $.ajax({ 30538 beforeSend: function beforeSend() { 30539 var $xhr = this.data('$xhr'); 30540 $xhr && $xhr.abort(); 30541 $form.removeClass('submit-error'); 30542 return form.checkValidity(); 30543 }, 30544 context: $form, 30545 data: $form.serialize(), 30546 method: $form.attr('method'), 30547 error: function error() { 30548 // Validate each input 30549 this.find(':input').each(function (input) { 30550 input.checkValidity(); 30551 }); 30552 console.error(this, arguments); 30553 debugger; 30554 }, 30555 success: function success(data) { 30556 if (data.success) { 30557 $form.addClass('submit-success'); 30558 $('body').trigger('subscribe:success', data); 30559 form.reset(); 30560 } else if (data.error) { 30561 $form.addClass('submit-error'); // Hide error after delay 30562 30563 setTimeout(function () { 30564 $form.removeClass('submit-error'); 30565 }, 5000); 30566 } 30567 }, 30568 url: $form.attr('action') 30569 })); 30570 }); 30571 } 30572}; 30573 30574/***/ }), 30575
30576/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/detail.js": 30577/*!*******************************************************************************************************!*\ 30578 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/detail.js ***! 30579 \*******************************************************************************************************/ 30580/*! no static exports found */ 30581/***/ (function(module, exports, __webpack_require__) { 30582 30583"use strict"; 30584 30585 30586module.exports = { 30587 updateAttributes: function updateAttributes() { 30588 $('body').on('product:statusUpdate', function (e, data) { 30589 var $productContainer = $('.product-detail[data-pid="' + data.id + '"]'); 30590 $productContainer.find('.main-content-group .product-attributes').empty().html(data.attributesHtml); 30591 $('body').trigger('tooltip:init'); 30592 30593 if ($('button.add-to-cart-global').length) { 30594 module.exports.updateAddAllToCart(); 30595 } 30596 }); 30597 }, 30598 updateHeadlinesAndTabs: function updateHeadlinesAndTabs() { 30599 $('body').on('product:afterAttributeSelect', function (e, data) { 30600 if (data && data.data && data.data.product && data.container) { 30601 var $productContainer = data.container; 30602 var product = data.data.product; 30603 30604 if (product.headline) { 30605 $productContainer.find('.product-headline').show().html(product.headline); 30606 } else { 30607 $productContainer.find('.product-headline').hide(); 30608 } 30609 30610 if (product.headlineDescription) { 30611 $productContainer.find('.product-headlinedescription').show().html(product.headlineDescription); 30612 } else { 30613 $productContainer.find('.product-headlinedescription').hide(); 30614 } 30615 } 30616 }); 30617 }, 30618 updateAddAllToCart: function updateAddAllToCart() { 30619 // if default variants are selected, enable the add all to cart btn on load 30620 if ($('button.add-to-cart-global').length) { 30621 var enable = $('.product-availability').toArray().every(function (item) { 30622 return $(item).data('available') && $(item).data('ready-to-order'); 30623 }); 30624 $('button.add-to-cart-global').attr('disabled', !enable); 30625 } 30626 }, 30627 copyProductLink: function copyProductLink() { 30628 $('body').on('click', '#fa-link', function () { 30629 event.preventDefault(); 30630 var $temp = $('<input>'); 30631 $('body').append($temp); 30632 $temp.val($('#shareUrl').val()).select(); 30633 document.execCommand('copy'); 30634 $temp.remove(); 30635 $('.copy-link-message').attr('role', 'alert'); 30636 $('.copy-link-message').removeClass('d-none'); 30637 setTimeout(function () { 30638 $('.copy-link-message').addClass('d-none'); 30639 }, 3000); 30640 }); 30641 }, 30642 showSpinner: function showSpinner() { 30643 $('body').on('product:beforeAddToCart, product:beforeAttributeSelect', function () { 30644 $.spinner().start(); 30645 }); 30646 }, 30647 setCollapsibleContentState: function setCollapsibleContentState() { 30648 var $collapsibleContentGroup = $('.collapsible-content-group'); 30649 $collapsibleContentGroup.each(function () { 30650 var expandCollapsibleContentGroup = $(this).data('expand'); 30651 30652 if (expandCollapsibleContentGroup == true) { 30653 $(this).addClass('active'); 30654 } 30655 }); 30656 } 30657}; 30658 30659/***/ }), 30660
30661/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/quickView.js": 30662/*!**********************************************************************************************************!*\ 30663 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/quickView.js ***! 30664 \**********************************************************************************************************/ 30665/*! no static exports found */ 30666/***/ (function(module, exports, __webpack_require__) { 30667 30668"use strict"; 30669 30670 30671var focusHelper = __webpack_require__(/*! base/components/focus */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/focus.js"); 30672 30673var modal = __webpack_require__(/*! ../components/modal */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/modal.js"); 30674 30675var _require = __webpack_require__(/*! ./detail */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/detail.js"), 30676 updateAddAllToCart = _require.updateAddAllToCart; 30677/** 30678 * @typedef {Object} QuickViewHtml 30679 * @property {string} body - Main Quick View body 30680 * @property {string} footer - Quick View footer content 30681 */ 30682 30683/** 30684 * replaces the content in the modal window on for the selected product variation. 30685 * @param {string} selectedValueUrl - url to be used to retrieve a new product model 30686 */ 30687 30688 30689function fillModalElement(selectedValueUrl) { 30690 var $modal = $('#quickViewModal'); 30691 $modal.find('.modal-body').spinner().start(); 30692 $.ajax({ 30693 url: selectedValueUrl, 30694 method: 'GET', 30695 dataType: 'json', 30696 success: function success(data) { 30697 var parsedHtml = modal.parseHtml(data.renderedTemplate); 30698 $modal.find('.modal-body').empty(); 30699 $modal.find('.modal-body').html(parsedHtml.body); // Append assets from PDP Gallery Asset IDs attribute 30700 30701 if ('pdpGalleryAssets' in data.product) { 30702 var pdpGalleryAssets = data.product.pdpGalleryAssets; 30703 var $assetSlides = $modal.find('.primary-images-main .pdp-gallery-asset'); 30704 var hasVideo = false; 30705 $assetSlides.each(function (index, slide) { 30706 var $slideElement = $(slide); 30707 var asset = pdpGalleryAssets[index]; 30708 30709 if (asset.isVideo) { 30710 hasVideo = true; 30711 } 30712 30713 $.ajax({ 30714 url: asset.assetRenderUrl, 30715 method: 'GET', 30716 success: function success(assetData) { 30717 var $sliderContainer = $slideElement.closest('.slider-container'); 30718 $slideElement.html(assetData); // after all assets are added, reinit any necessary javascript 30719 30720 if (index + 1 >= pdpGalleryAssets.length) { 30721 $('body').trigger('quickview:ready', $('#quickViewModal')); // sending custom event for slider init 30722 30723 $slideElement.trigger('tooltip:init'); // reinit tooltips in case of hotspot asset 30724 30725 if (hasVideo) { 30726 $('body').trigger('ajax:load.ajaxEvents', [$sliderContainer]); // reinit videos in video/index.js 30727 30728 $('body').trigger('slider:videosLoaded'); // trigger custom event set up in bindSliderUpdateEvent 30729 } 30730 } 30731 }, 30732 error: function error(err) { 30733 console.error('There was an issue retrieving this asset: ', err); 30734 } 30735 }); 30736 }); 30737 } 30738 30739 $modal.find('.modal-footer').html(parsedHtml.footer); 30740 $modal.find('.full-pdp-link').text(data.quickViewFullDetailMsg); 30741 $modal.find('.full-pdp-link').attr('href', data.productUrl); 30742 $modal.find('.modal-header .close .sr-only').text(data.closeButtonText); 30743 $modal.find('.enter-message').text(data.enterDialogMessage); 30744 $modal.find('#quickViewModal').modal('show'); 30745 30746 if (data.dialogTitle) { 30747 $modal.find('.modal-header').prepend('<div class="modal-title">' + data.dialogTitle + '</div>'); 30748 } 30749 30750 if (data.product.productType === 'set') { 30751 updateAddAllToCart(); 30752 } 30753 30754 $('body').trigger('modal:loaded', $('#quickViewModal')); // sending custom event for scroll body sizing 30755 30756 $('body').trigger('quickview:ready', $('#quickViewModal')); // sending custom event for slider init 30757 30758 $('body').trigger('tooltip:init'); 30759 $.spinner().stop(); 30760 }, 30761 error: function error() { 30762 $.spinner().stop(); 30763 } 30764 }); 30765} 30766/** 30767 * replaces the content in the popover for the selected product. 30768 */ 30769 30770 30771function fillPopoverElement(quickAddToCartUrl, popover) { 30772 var $popover = $('#' + popover); 30773 $.ajax({ 30774 url: quickAddToCartUrl, 30775 method: 'GET', 30776 dataType: 'json', 30777 success: function success(data) { 30778 $popover.find('.popover-body').html(data.renderedTemplate); 30779 $popover.popover('update'); 30780 } 30781 }); 30782} 30783 30784module.exports = { 30785 showQuickview: function showQuickview() { 30786 $('body').on('click', '.quickview', function (e) { 30787 e.preventDefault(); 30788 var selectedValueUrl = $(this).closest('a.quickview').attr('href'); 30789 $(e.target).trigger('quickview:show'); 30790 modal.getModalHtmlElement('quickViewModal', 'quick-view-dialog'); 30791 fillModalElement(selectedValueUrl); 30792 }); // BEGIN MARTIN CUSTOMIZATION 30793 30794 $('body').on('quickview:trigger', function (e, data) { 30795 var selectedValueUrl = data.url; 30796 $(e.target).trigger('quickview:show'); 30797 modal.getModalHtmlElement('quickViewModal', 'quick-view-dialog'); 30798 fillModalElement(selectedValueUrl); 30799 $('#quickViewModal').modal('show'); 30800 }); 30801 30802 if (window.wishlistpid) { 30803 if (window.isproducttile && !window.bypassquickview) { 30804 // If this is a product tile, first show the quickview modal to allow for variant selection 30805 var wishlistGetProductUrl = window.CachedData.wishlistQuickViewUrl + '?pid=' + window.wishlistpid; 30806 $('body').trigger('quickview:trigger', { 30807 url: wishlistGetProductUrl 30808 }); 30809 } else { 30810 $('#wishlistModalShowLists').data('multiSelect', false).data('pid', window.wishlistpid).modal('show'); 30811 } 30812 } // END MARTIN CUSTOMIZATION 30813 30814 }, 30815 showQuickAddToCart: function showQuickAddToCart() { 30816 $('body').on('click', '.quick-add-to-cart', function (e) { 30817 e.preventDefault(); 30818 var quickAddToCartUrl = $(this).closest('.quick-add-to-cart').data('url'); 30819 var popover = $(this).closest('.quick-add-to-cart').attr('aria-describedby'); 30820 $(e.target).trigger('quickAddToCart:show'); 30821 fillPopoverElement(quickAddToCartUrl, popover); 30822 }); 30823 }, 30824 reInitShowQuickAddToCart: function reInitShowQuickAddToCart() { 30825 $('body').on('search:sort--success search:showMore--success search:filter--success', function () { 30826 $('body').trigger('tooltip:init'); 30827 }); 30828 }, 30829 hideQuickAddToCartSingleSelect: function hideQuickAddToCartSingleSelect() { 30830 $('body').on('product:afterAttributeSelect', function (e, response) { 30831 if ($(response.container).hasClass('product-quick-add-to-cart') && $('.product-quick-add-to-cart .single-select-quick-add-to-cart').length) { 30832 $('body').trigger('product:singleSelectQuickAddToCart', response); 30833 $('[data-toggle="popover"].interactive').popover('hide'); 30834 } 30835 }); 30836 }, 30837 hideQuickAddToCart: function hideQuickAddToCart() { 30838 $('body').on('product:afterAddToCart', function (e) { 30839 $('[data-toggle="popover"].interactive').popover('hide'); 30840 }); 30841 }, 30842 focusQuickview: function focusQuickview() { 30843 $('body').on('shown.bs.modal', '#quickViewModal', function () { 30844 $('#quickViewModal').siblings().attr('aria-hidden', 'false'); 30845 $('#quickViewModal .close').focus(); 30846 }); 30847 }, 30848 trapQuickviewFocus: function trapQuickviewFocus() { 30849 $('body').on('keydown', '#quickViewModal', function (e) { 30850 var focusParams = { 30851 event: e, 30852 containerSelector: '#quickViewModal', 30853 firstElementSelector: '.full-pdp-link', 30854 lastElementSelector: '.qv-product-edit-add', 30855 nextToLastElementSelector: '.modal-footer .quantity-select' 30856 }; 30857 focusHelper.setTabNextFocus(focusParams); 30858 }); 30859 }, 30860 showSpinner: function showSpinner() { 30861 $('body').on('product:beforeAddToCart', function (e, data) { 30862 $(data).closest('.modal-content').spinner().start(); 30863 }); 30864 }, 30865 hideDialog: function hideDialog() { 30866 $('body').on('product:afterAddToCart', function () { 30867 $('#quickViewModal').modal('hide'); 30868 $('#quickViewModal').siblings().attr('aria-hidden', 'true'); 30869 }); 30870 }, 30871 beforeUpdateAttribute: function beforeUpdateAttribute() { 30872 $('body').on('product:beforeAttributeSelect', function () { 30873 $('.modal.show .modal-content').spinner().start(); 30874 }); 30875 } 30876}; 30877 30878/***/ }), 30879
30880/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/tile.js": 30881/*!*****************************************************************************************************!*\ 30882 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/tile.js ***! 30883 \*****************************************************************************************************/ 30884/*! no static exports found */ 30885/***/ (function(module, exports, __webpack_require__) { 30886 30887"use strict"; 30888 30889 30890function swatchSwitch(el) { 30891 var $swatch = el; 30892 var $tileParent = $swatch.parents('.product-tile'); 30893 var pid = $tileParent.attr('data-pid'); 30894 var $tileImage = $tileParent.find('.product-tile-image'); 30895 var $tileImageHover = $tileParent.find('.product-tile-image-secondary'); 30896 $tileParent.find('.swatch.selected').removeClass('selected'); 30897 $swatch.addClass('selected'); //Replace main image and secondary image 30898 30899 if ($swatch.data('hover-image') && $swatch.data('hover-image') != '') { 30900 var swatchImageUrl = $swatch.data('hover-image'); 30901 $tileImage.attr('src', swatchImageUrl); 30902 30903 if ($tileImageHover.length > 0 && $swatch.data('hover-image-secondary')) { 30904 var swatchSecondaryImageUrl = $swatch.data('hover-image-secondary'); 30905 $tileImage.data('alt-img-url', swatchSecondaryImageUrl); 30906 $tileImageHover.attr('src', swatchSecondaryImageUrl); 30907 } 30908 } //replace main link and Quickview link 30909 30910 30911 var swatchLink = $swatch.parents('.swatch-link'); 30912 var splitSwatchLink = swatchLink.attr('href').split('?'); 30913 var swatchLinkAttributes = splitSwatchLink[1]; //main Image Link 30914 30915 var mainImageLink = $tileParent.find('.product-tile-image-link'); 30916 var mainImageLinkSplit = mainImageLink.attr('href').split('?'); 30917 mainImageLink.attr('href', mainImageLinkSplit[0] + '?' + swatchLinkAttributes); //main Quickview Link 30918 30919 var mainQuickViewLink = $tileParent.find('a.quickview'); 30920 30921 if (mainQuickViewLink.length) { 30922 // strip pid from params for quickview (gets added when Storefront URLs are disabled) 30923 var quickviewSwatchUrl = new URL(swatchLink.attr('href'), window.location.origin); 30924 quickviewSwatchUrl.searchParams["delete"]('pid'); 30925 var quickviewQueryString = quickviewSwatchUrl.search.split('?')[1]; 30926 mainQuickViewLink.attr('href', mainQuickViewLink.attr('href').split('?')[0] + '?' + 'pid=' + pid + '&' + quickviewQueryString); 30927 } 30928} 30929 30930function hijackSwatchClick() { 30931 if (window.isMobile()) { 30932 $('body').on('click.swatch-link', '.product-tile .swatch-link', function (e) { 30933 e.preventDefault(); 30934 var $swatch = $(this).find('.swatch'); 30935 module.exports.methods.swatchSwitch($swatch); 30936 }); 30937 } else { 30938 $('body').off('click.swatch-link'); 30939 } 30940} 30941 30942module.exports = { 30943 hijackSwatchClick: hijackSwatchClick, 30944 mouseEnter: function mouseEnter() { 30945 $('body').on('mouseenter', '.product-tile .swatch', function (e) { 30946 var $swatch = $(this); 30947 module.exports.methods.swatchSwitch($swatch); 30948 }); 30949 }, 30950 resize: function resize() { 30951 $(window).on('resize', function () { 30952 module.exports.hijackSwatchClick(); 30953 }); 30954 }, 30955 methods: { 30956 swatchSwitch: swatchSwitch 30957 } 30958}; 30959 30960/***/ }), 30961
30962/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/storeLocator/storeLocator.js": 30963/*!******************************************************************************************************************!*\ 30964 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/storeLocator/storeLocator.js ***! 30965 \******************************************************************************************************************/ 30966/*! no static exports found */ 30967/***/ (function(module, exports, __webpack_require__) { 30968 30969"use strict"; 30970/* globals google */ 30971 30972 30973var googleMapsPromise = __webpack_require__(/*! ../thirdParty/googleMaps */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/thirdParty/googleMaps.js"); 30974/** 30975 * appends params to a url 30976 * @param {string} url - Original url 30977 * @param {Object} params - Parameters to append 30978 * @returns {string} result url with appended parameters 30979 */ 30980 30981 30982function appendToUrl(url, params) { 30983 var newUrl = url; 30984 newUrl += (newUrl.indexOf('?') !== -1 ? '&' : '?') + Object.keys(params).map(function (key) { 30985 return key + '=' + encodeURIComponent(params[key]); 30986 }).join('&'); 30987 return newUrl; 30988} 30989/** 30990 * Uses google maps api to render a map 30991 */ 30992 30993 30994function maps() { 30995 var map; 30996 var infowindow = new google.maps.InfoWindow(); 30997 var mapdiv = $('.map-canvas').attr('data-locations'); 30998 var bounds = new google.maps.LatLngBounds(); 30999 var zoom = 4; 31000 mapdiv = JSON.parse(mapdiv); 31001 31002 if (mapdiv.length === 1) { 31003 zoom = 18; // set zoom more specifically if single store 31004 } // Init U.S. Map in the center of the viewport 31005 31006 31007 var latlng = new google.maps.LatLng(37.09024, -95.712891); 31008 var mapOptions = { 31009 scrollwheel: false, 31010 zoom: zoom, 31011 center: latlng 31012 }; 31013 map = new google.maps.Map($('.map-canvas')[0], mapOptions); 31014 Object.keys(mapdiv).forEach(function (key) { 31015 var item = mapdiv[key]; 31016 var label = parseInt(key, 10) + 1; 31017 var storeLocation = new google.maps.LatLng(item.latitude, item.longitude); 31018 var marker = new google.maps.Marker({ 31019 position: storeLocation, 31020 type: item.storeType.value, 31021 map: map, 31022 title: item.name, 31023 icon: { 31024 url: item.backgroundImage, 31025 size: new google.maps.Size(45, 45), 31026 scaledSize: new google.maps.Size(45, 45), 31027 labelOrigin: new google.maps.Point(24, 17) 31028 }, 31029 label: { 31030 text: label.toString(), 31031 color: item.color, 31032 fontSize: '14px' 31033 } 31034 }); 31035 marker.addListener('click', function () { 31036 infowindow.setOptions({ 31037 content: item.infoWindowHtml 31038 }); 31039 infowindow.open(map, marker); 31040 }); // Create a minimum bound based on a set of storeLocations 31041 31042 bounds.extend(marker.position); // If there is only one store, center the map on that store 31043 31044 if (mapdiv.length === 1) { 31045 map.setCenter(storeLocation); 31046 } 31047 }); // Fit the all the store marks in the center of a minimum bounds when any store has been found, unless there is a single store result 31048 31049 if (mapdiv && mapdiv.length > 1) { 31050 map.fitBounds(bounds); 31051 } 31052} 31053/** 31054 * Renders the results of the search and updates the map 31055 * @param {Object} data - Response from the server 31056 */ 31057 31058 31059function updateStoresResults(data, scope) { 31060 var $resultsDiv = scope.find('.results'); 31061 var $mapDiv = $('.map-canvas'); //Not scoped to support multiple maps on page yet 31062 31063 var hasResults = data.stores.length > 0; 31064 31065 if (!hasResults) { 31066 if ('noInventoryStores' in data) { 31067 scope.find('.store-locator-no-results-for-product').show(); 31068 } else { 31069 scope.find('.store-locator-no-results').show(); 31070 } 31071 31072 scope.find('.filter-results').hide(); 31073 $resultsDiv.attr('data-has-results', false); 31074 } else { 31075 scope.find('.store-locator-no-results').hide(); 31076 scope.find('.store-locator-no-results-for-product').hide(); 31077 scope.find('.filter-results').show(); 31078 $resultsDiv.attr('data-has-results', true); 31079 } 31080 31081 $resultsDiv.empty().data('has-results', hasResults).data('radius', data.radius).data('search-key', data.searchKey).data('store-type', data.storeType); 31082 $mapDiv.attr('data-locations', data.locations); 31083 31084 if ($mapDiv.data('has-google-api')) { 31085 googleMapsPromise().then(function () { 31086 return module.exports.methods.maps(); 31087 }); 31088 } else { 31089 $('.store-locator-no-apiKey').show(); 31090 } 31091 31092 if (data.storesResultsHtml) { 31093 $resultsDiv.append(data.storesResultsHtml); 31094 } 31095 31096 if (data.noInventoryStoresHtml) { 31097 $resultsDiv.append(data.noInventoryStoresHtml); 31098 } 31099 31100 if (hasResults) { 31101 $.each(data.storeTypes, function (storeType) { 31102 var storeTypeValue = data.storeTypes[storeType].value || data.storeTypes[storeType].value; 31103 31104 if (scope.find('.results [data-store-type="' + storeTypeValue + '"]').length > 0) { 31105 scope.find('.filter-results [data-filter="' + storeTypeValue + '"]').show(); 31106 } 31107 }); 31108 } 31109} 31110/** 31111 * Search for stores with new zip code 31112 * @param {HTMLElement} element - the target html element 31113 * @returns {boolean} false to prevent default event 31114 */ 31115 31116 31117function search(element) { 31118 var dialog = element.closest('.in-store-inventory-dialog'); 31119 var spinner = dialog.length ? dialog.spinner() : $.spinner(); 31120 spinner.start(); 31121 var scope = element.closest('.store-locator-container'); 31122 var $form = element.closest('.store-locator'); 31123 var radius = scope.find('.results').data('radius'); 31124 var postalCode = $form.find('[name="postalCode"]').val() ? $.trim($form.find('[name="postalCode"]').val()) : ''; 31125 var url = $form.attr('action');
31126 var urlParams = { 31127 radius: radius 31128 }; 31129 var isForm = $form.is('form'); 31130 var payload = { 31131 postalCode: postalCode 31132 }; 31133 31134 if (isForm) { 31135 payload = decodeURI($form.serialize()).replace(/\s/g, ''); 31136 } 31137 31138 url = module.exports.methods.appendToUrl(url, urlParams); 31139 $.ajax({ 31140 url: url, 31141 type: $form.attr('method'), 31142 data: payload, 31143 dataType: 'json', 31144 success: function success(data) { 31145 module.exports.methods.updateStoresResults(data, scope); 31146 scope.find('.select-store').prop('disabled', true); 31147 }, 31148 complete: function complete() { 31149 spinner.stop(); 31150 } 31151 }); 31152 return false; 31153} 31154 31155module.exports = { 31156 init: function init() { 31157 if ($('.map-canvas').data('has-google-api')) { 31158 googleMapsPromise().then(function () { 31159 return module.exports.methods.maps(); 31160 }); 31161 } else { 31162 $('.store-locator-no-apiKey').show(); 31163 } 31164 }, 31165 detectLocation: function detectLocation() { 31166 // clicking on detect location. 31167 $('body').on('click', '.detect-location', function (e) { 31168 var scope = $(this).closest('.store-locator-container'); 31169 $.spinner().start(); 31170 31171 if (!navigator.geolocation) { 31172 $.spinner().stop(); 31173 return; 31174 } 31175 31176 navigator.geolocation.getCurrentPosition(function (position) { 31177 var $detectLocationButton = scope.find('.detect-location'); 31178 var url = $detectLocationButton.data('action'); 31179 var radius = scope.find('.results').data('radius'); 31180 var urlParams = { 31181 radius: radius, 31182 lat: position.coords.latitude, 31183 "long": position.coords.longitude 31184 }; 31185 url = module.exports.methods.appendToUrl(url, urlParams); 31186 $.ajax({ 31187 url: url, 31188 type: 'get', 31189 dataType: 'json', 31190 success: function success(data) { 31191 $.spinner().stop(); 31192 module.exports.methods.updateStoresResults(data, scope); 31193 scope.find('.select-store').prop('disabled', true); 31194 scope.find('.detect-location-invalid').removeClass('d-block'); 31195 } 31196 }).fail(function () { 31197 $.spinner().stop(); 31198 }); 31199 }, function () { 31200 $.spinner().stop(); 31201 scope.find('.detect-location-invalid').addClass('d-block'); 31202 }, { 31203 timeout: 5000 31204 }); 31205 }); 31206 }, 31207 search: function search() { 31208 $('body').on('submit', '.store-locator-container form.store-locator', function (e) { 31209 e.preventDefault(); 31210 return module.exports.methods.search($(this)); 31211 }); 31212 $('body').on('click', '.store-locator-container .btn-storelocator-search[type="button"]', function (e) { 31213 e.preventDefault(); 31214 return module.exports.methods.search($(this)); 31215 }); 31216 }, 31217 changeRadius: function changeRadius() { 31218 $('body').on('change', '.store-locator-container .radius', function () { 31219 var radius = $(this).val(); 31220 var scope = $(this).closest('.store-locator-container'); 31221 var searchKeys = scope.find('.results').data('search-key'); 31222 var url = $(this).data('action-url'); 31223 var urlParams = {}; 31224 31225 if (searchKeys.postalCode) { 31226 urlParams = { 31227 radius: radius, 31228 postalCode: searchKeys.postalCode 31229 }; 31230 } else if (searchKeys.lat && searchKeys["long"]) { 31231 urlParams = { 31232 radius: radius, 31233 lat: searchKeys.lat, 31234 "long": searchKeys["long"] 31235 }; 31236 } 31237 31238 scope.find('.filter-results [data-filter]').removeClass('active btn-primary').addClass('btn-secondary').hide(); 31239 scope.find('.filter-results [data-filter="all"]').addClass('active btn-primary').removeClass('btn-secondary').show(); 31240 url = module.exports.methods.appendToUrl(url, urlParams); 31241 var dialog = $(this).closest('.in-store-inventory-dialog'); 31242 var spinner = dialog.length ? dialog.spinner() : $.spinner(); 31243 spinner.start(); 31244 $.ajax({ 31245 url: url, 31246 type: 'get', 31247 dataType: 'json', 31248 success: function success(data) { 31249 module.exports.methods.updateStoresResults(data, scope); 31250 scope.find('.select-store').prop('disabled', true); 31251 }, 31252 complete: function complete() { 31253 spinner.stop(); 31254 } 31255 }); 31256 }); 31257 }, 31258 filterResults: function filterResults() { 31259 var $filters = $('.filter-results [data-filter]'); 31260 $filters.on('click', function (e) { 31261 e.preventDefault(); 31262 var scope = $(this).closest('.store-locator-container'); 31263 $filters.removeClass('active btn-primary').addClass('btn-secondary'); 31264 $(this).addClass('active btn-primary').removeClass('btn-secondary'); 31265 var $filterType = $(this).attr('data-filter'); 31266 var radius = scope.find('.results').data('radius'); 31267 var searchKeys = scope.find('.results').data('search-key'); 31268 var url = scope.find('.filter-results').data('action-url');
31269 var urlParams = {}; 31270 31271 if (searchKeys.postalCode) { 31272 urlParams = { 31273 radius: radius, 31274 postalCode: searchKeys.postalCode, 31275 storeType: $filterType 31276 }; 31277 } else if (searchKeys.lat && searchKeys["long"]) { 31278 urlParams = { 31279 radius: radius, 31280 lat: searchKeys.lat, 31281 "long": searchKeys["long"], 31282 storeType: $filterType 31283 }; 31284 } 31285 31286 url = module.exports.methods.appendToUrl(url, urlParams); 31287 var dialog = scope.find('.radius').closest('.in-store-inventory-dialog'); 31288 var spinner = dialog.length ? dialog.spinner() : $.spinner(); 31289 spinner.start(); 31290 $.ajax({ 31291 url: url, 31292 type: 'get', 31293 dataType: 'json', 31294 success: function success(data) { 31295 module.exports.methods.updateStoresResults(data, scope); 31296 scope.find('.select-store').prop('disabled', true); 31297 }, 31298 complete: function complete() { 31299 spinner.stop(); 31300 } 31301 }); 31302 }); 31303 }, 31304 selectStore: function selectStore() { 31305 $('body').on('click', '.store-locator-container .select-store', function (e) { 31306 e.preventDefault(); 31307 var scope = $(this).closest('.store-locator-container'); 31308 var selectedStore = scope.find('input.select-store-input:checked'); 31309 var data = { 31310 storeID: selectedStore.val(), 31311 searchRadius: scope.find('#radius').val(), 31312 searchPostalCode: scope.find('.results').data('search-key').postalCode, 31313 storeDetailsHtml: selectedStore.siblings('label').find('.store-details').html(), 31314 storeInfoJSON: selectedStore.data('store-info') || {}, 31315 event: e, 31316 scope: scope 31317 }; 31318 $('body').trigger('store:selected', data); 31319 }); 31320 }, 31321 updateSelectStoreButton: function updateSelectStoreButton() { 31322 $('body').on('change', '.select-store-input', function () { 31323 $('.select-store').prop('disabled', false); 31324 }); 31325 }, 31326 clickSelectStoreInHeader: function clickSelectStoreInHeader() { 31327 $('body').on('click', '.js-store-picker-header', function (e) { 31328 var modalSelector = '#home-store-picker-container'; 31329 var $target = $(e.currentTarget); 31330 var modalAppendedToBody = $('body').children(modalSelector).length > 0; 31331 var $modal = $target.find(modalSelector); 31332 31333 if (!modalAppendedToBody && $modal.length > 0) { 31334 // remove all modals from inside store selectors (mobile and desktop) and append to body 31335 $(document.querySelectorAll(modalSelector)).remove(); 31336 $('body').append($modal); 31337 $modal.modal('show'); 31338 } else { 31339 $modal = $('body').children(modalSelector); 31340 $modal.modal('show'); 31341 } 31342 }); 31343 }, 31344 storeSelectedInHeader: function storeSelectedInHeader() { 31345 $('body').on('store:selected', function (e, data) { 31346 if (data.scope.parents('#home-store-picker-container').length) { 31347 var spinner = data.scope.spinner(); 31348 spinner.start(); 31349 $.ajax({ 31350 url: module.exports.methods.appendToUrl(data.scope.data('setpreferredstoreactionurl'), { 31351 preferredStoreID: data.storeID 31352 }), 31353 type: 'get', 31354 dataType: 'json', 31355 success: function success(result) { 31356 if (result && result.success) { 31357 var $prompt = $('.js-storelocator-header-prompt'); 31358 var promptText = $prompt.data('prompt-text'); 31359 data.scope.find('.store-locator-failed-to-set-preferred').hide(); 31360 data.scope.closest('.modal').modal('hide'); 31361 $prompt.html(promptText + ': ' + data.storeInfoJSON.name); 31362 $prompt.attr('title', data.storeInfoJSON.name); 31363 } else { 31364 data.scope.find('.store-locator-failed-to-set-preferred').show(); 31365 } 31366 }, 31367 complete: function complete() { 31368 spinner.stop(); 31369 } 31370 }).fail(function () { 31371 data.scope.find('.store-locator-failed-to-set-preferred').show(); 31372 }); 31373 } 31374 }); 31375 }, 31376 selectStoreInSearch: function selectStoreInSearch() { 31377 $('body').on('click', '.store-select-map', function (e) { 31378 e.preventDefault(); 31379 var scope = $(this); 31380 var storeName = scope.data('store-name'); 31381 scope.spinner().start(); 31382 $.ajax({ 31383 url: scope.data('action'), 31384 type: 'get', 31385 dataType: 'json', 31386 success: function success(result) { 31387 if (result && result.success) { 31388 var $prompt = $('.js-storelocator-header-prompt'); 31389 var promptText = $prompt.data('prompt-text'); 31390 scope.closest('.store-locator-failed-to-set-preferred').hide(); 31391 $prompt.html(promptText + ': ' + storeName); 31392 $prompt.attr('title', storeName); 31393 } else { 31394 scope.closest('.store-locator-failed-to-set-preferred').show(); 31395 } 31396 }, 31397 complete: function complete() { 31398 scope.spinner().stop(); 31399 } 31400 }).fail(function () { 31401 scope.closest('.store-locator-failed-to-set-preferred').show(); 31402 }); 31403 }); 31404 }, 31405 methods: { 31406 appendToUrl: appendToUrl, 31407 maps: maps, 31408 updateStoresResults: updateStoresResults, 31409 search: search 31410 } 31411}; 31412 31413/***/ }), 31414
31415/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/thirdParty/bootstrap.js": 31416/*!*************************************************************************************************************!*\ 31417 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/thirdParty/bootstrap.js ***! 31418 \*************************************************************************************************************/ 31419/*! no static exports found */ 31420/***/ (function(module, exports, __webpack_require__) { 31421 31422__webpack_require__(/*! bootstrap/js/src/util.js */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/util.js"); 31423 31424__webpack_require__(/*! bootstrap/js/src/alert.js */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/alert.js"); // require('bootstrap/js/src/button.js'); 31425 31426 31427__webpack_require__(/*! bootstrap/js/src/carousel.js */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/carousel.js"); 31428 31429__webpack_require__(/*! bootstrap/js/src/collapse.js */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/collapse.js"); 31430 31431__webpack_require__(/*! bootstrap/js/src/dropdown.js */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/dropdown.js"); 31432 31433__webpack_require__(/*! bootstrap/js/src/modal.js */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/modal.js"); 31434 31435__webpack_require__(/*! bootstrap/js/src/scrollspy.js */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/scrollspy.js"); 31436 31437__webpack_require__(/*! bootstrap/js/src/tab.js */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/tab.js"); 31438 31439__webpack_require__(/*! bootstrap/js/src/tooltip.js */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/tooltip.js"); 31440 31441__webpack_require__(/*! bootstrap/js/src/popover.js */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/popover.js"); 31442 31443/***/ }), 31444
31445/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/thirdParty/googleMaps.js": 31446/*!**************************************************************************************************************!*\ 31447 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/thirdParty/googleMaps.js ***! 31448 \**************************************************************************************************************/ 31449/*! no static exports found */ 31450/***/ (function(module, exports) { 31451 31452var googleMapsPromise = null; 31453 31454module.exports = function () { 31455 if (googleMapsPromise) { 31456 return googleMapsPromise; 31457 } 31458 31459 if (!window.CachedData.googleMapsApi || window.google) { 31460 googleMapsPromise = Promise.resolve(); 31461 } else { 31462 googleMapsPromise = $.getScript(window.CachedData.googleMapsApi); 31463 } 31464 31465 return googleMapsPromise; 31466}; 31467 31468/***/ }), 31469
31470/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/utilities/headerUtils.js": 31471/*!**************************************************************************************************************!*\ 31472 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/utilities/headerUtils.js ***! 31473 \**************************************************************************************************************/ 31474/*! no static exports found */ 31475/***/ (function(module, exports, __webpack_require__) { 31476 31477"use strict"; 31478 // Creating a global getHeaderHeight function since its used more than once 31479// used in: 31480// search.js 31481// menu.js 31482 31483function getHeaderHeight() { 31484 var $header = $('header'); 31485 var $headerBanner = $header.find('.header-banner'); 31486 var $headerNav = $header.find('.header-nav'); 31487 var $preNavHeader = $header.find('.pre-nav-header'); 31488 var $preNavHeaderHeight = $preNavHeader && $preNavHeader.length > 0 ? $preNavHeader.outerHeight() : 0; 31489 var headerNavHeight = !$headerBanner.hasClass('d-none') ? $headerNav.outerHeight() + $headerBanner.outerHeight() + $preNavHeaderHeight : $headerNav.outerHeight() + $preNavHeaderHeight; 31490 return headerNavHeight; 31491} 31492 31493module.exports = { 31494 getHeaderHeight: getHeaderHeight 31495}; 31496 31497/***/ }), 31498
31499/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/utilities/scroll.js": 31500/*!*********************************************************************************************************!*\ 31501 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/utilities/scroll.js ***! 31502 \*********************************************************************************************************/ 31503/*! no static exports found */ 31504/***/ (function(module, exports, __webpack_require__) { 31505 31506"use strict"; 31507 // Polyfill for creating CustomEvents on IE11 31508// code pulled from: 31509// https://github.com/d4tocchini/customevent-polyfill 31510// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill 31511 31512function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 31513 31514function _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); } } 31515 31516function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 31517 31518(function () { 31519 if (typeof window === 'undefined') { 31520 return; 31521 } 31522 31523 try { 31524 var ce = new window.CustomEvent('test', { 31525 cancelable: true 31526 }); 31527 ce.preventDefault(); 31528 31529 if (ce.defaultPrevented !== true) { 31530 // IE has problems with .preventDefault() on custom events 31531 // http://stackoverflow.com/questions/23349191 31532 throw new Error('Could not prevent default'); 31533 } 31534 } catch (e) { 31535 var CustomEvent = function CustomEvent(event, params) { 31536 var evt, origPrevent; 31537 params = params || {}; 31538 params.bubbles = !!params.bubbles; 31539 params.cancelable = !!params.cancelable; 31540 evt = document.createEvent('CustomEvent'); 31541 evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); 31542 origPrevent = evt.preventDefault; 31543 31544 evt.preventDefault = function () { 31545 origPrevent.call(this); 31546 31547 try { 31548 Object.defineProperty(this, 'defaultPrevented', { 31549 get: function get() { 31550 return true; 31551 } 31552 }); 31553 } catch (e) { 31554 this.defaultPrevented = true; 31555 } 31556 }; 31557 31558 return evt; 31559 }; 31560 31561 CustomEvent.prototype = window.Event.prototype; 31562 window.CustomEvent = CustomEvent; // expose definition to window 31563 } 31564})(); 31565 31566var ScrollDirection = /*#__PURE__*/function () { 31567 function ScrollDirection() { 31568 _classCallCheck(this, ScrollDirection); 31569 31570 this.$html = $('html'); // Element to add CSS classnames 31571 31572 this.window = window; // Element to listen to scroll events 31573 31574 this.direction = null; // Current scroll direction 31575 31576 this.headerHeight = null; // Track header's height 31577 31578 this.headerNavHeight = null; // Track sticky portion of header's height 31579 31580 this.headerNavOffsetTop = 0; // Track header's distance from top of page 31581 31582 this.isScrolling = false; // Page is scrolling 31583 31584 this.last = 0; // Last scroll position 31585 31586 this.stickyHeader = false; // Show CSS header 31587 31588 this.timeout = null; // Timeout event for scroll handler 31589 31590 this.threshold = 10; // How far to allow scroll before triggering scroll events 31591 31592 this.init(); // Initialize scroll handlers 31593 } 31594 31595 _createClass(ScrollDirection, [{ 31596 key: "init", 31597 value: function init() { 31598 // Check if we can use Passive Event Listening 31599 var passiveIfSupported = false; 31600 31601 try { 31602 window.addEventListener('test', null, Object.defineProperty({}, 'passive', { 31603 get: function get() { 31604 passiveIfSupported = { 31605 passive: true 31606 }; 31607 } 31608 })); 31609 } catch (err) {} // Add Event Listeners 31610 31611 31612 this.listener = this.detectDirection.bind(this); 31613 this.resize = this.detectResize.bind(this); 31614 this.window.addEventListener('scroll', this.listener, passiveIfSupported); 31615 this.window.addEventListener('resize', this.resize, passiveIfSupported); // Do initial Size Detection 31616 31617 this.detectResize(); 31618 } 31619 }, { 31620 key: "detectDirection", 31621 value: function detectDirection() { 31622 // Get Scroll Position 31623 var scrolled = this.window.scrollY || this.window.scrollTop || this.window.pageYOffset; // Check if New Scroll Position Breaks Threshold 31624 31625 if (Math.abs(scrolled - this.last) >= this.threshold) { 31626 var currentDirection = scrolled > this.last ? 'down' : 'up'; // Check if Scrolling 31627 31628 if (scrolled !== this.last && !this.isScrolling) { 31629 this.onScrollStart(); 31630 } // Check if Header exists and if we should trigger Sticky Header 31631 31632 31633 if (this.headerHeight) { 31634 if (scrolled > this.headerHeight && !this.stickyHeader && this.direction === 'up') { 31635 this.stickyHeader = true; 31636 this.$html.addClass('sticky-header'); // Fire Custom Event `stickyHeaderChange` 31637 31638 this.window.dispatchEvent(new CustomEvent('stickyHeaderChange', { 31639 detail: { 31640 direction: this.direction, 31641 last: this.last, 31642 stickyHeader: this.stickyHeader 31643 } 31644 })); 31645 } else if (scrolled < this.headerHeight && this.stickyHeader) { 31646 this.stickyHeader = false;
31647 this.$html.removeClass('sticky-header'); // Fire Custom Event `stickyHeaderChange` 31648 31649 this.window.dispatchEvent(new CustomEvent('stickyHeaderChange', { 31650 detail: { 31651 direction: this.direction, 31652 last: this.last, 31653 stickyHeader: this.stickyHeader 31654 } 31655 })); 31656 } 31657 } // Detect Direction Change 31658 31659 31660 if (this.direction !== currentDirection) { 31661 this.onDirectionChange(currentDirection); 31662 } // Update Last Scroll Position 31663 31664 31665 this.last = scrolled; // Fire Custom Event `scrollUpdate` 31666 31667 this.window.dispatchEvent(new CustomEvent('scrollUpdate', { 31668 detail: { 31669 direction: this.direction, 31670 last: this.last, 31671 stickyHeader: this.stickyHeader 31672 } 31673 })); 31674 } // Clear Last Timeout before Recreating it 31675 31676 31677 if (this.timeout) { 31678 clearTimeout(this.timeout); 31679 } // Fire Stop Scroll Event shortly after Scrolling Stops 31680 31681 31682 this.timeout = setTimeout(this.onScrollStop.bind(this), 500); 31683 } 31684 }, { 31685 key: "detectResize", 31686 value: function detectResize() { 31687 // Get Header Height - will only exist if headerFixed preference is set to 'Enhanced' 31688 var $header = $('.fixed-header-enhanced'); 31689 31690 if ($header.length) { 31691 var $headerNav = $header.find('.header-nav'); 31692 this.headerHeight = $header.outerHeight(); 31693 this.headerNavHeight = $headerNav.outerHeight(); 31694 this.$html.css('--header-height', this.headerNavHeight + 'px'); // change to position static before getting offset 31695 31696 $headerNav.css('position', 'static'); 31697 this.headerNavOffsetTop = $headerNav.offset().top; 31698 $headerNav.css('position', ''); 31699 } 31700 } 31701 }, { 31702 key: "onDirectionChange", 31703 value: function onDirectionChange(direction) { 31704 this.direction = direction; // Update Scroll Classes 31705 31706 this.$html.addClass('scroll-direction-' + this.direction); 31707 this.$html.removeClass('scroll-direction-' + (this.direction == 'down' ? 'up' : 'down')); // Fire Custom Event `scrollDirectionChange` 31708 31709 this.window.dispatchEvent(new CustomEvent('scrollDirectionChange', { 31710 detail: { 31711 direction: this.direction, 31712 last: this.last, 31713 stickyHeader: this.stickyHeader 31714 } 31715 })); 31716 } 31717 }, { 31718 key: "onScrollStart", 31719 value: function onScrollStart() { 31720 this.$html.addClass('is-scrolling'); 31721 this.isScrolling = true; // Fire Custom Event `scrollStart` 31722 31723 this.window.dispatchEvent(new CustomEvent('scrollStart', { 31724 detail: { 31725 direction: this.direction, 31726 last: this.last, 31727 stickyHeader: this.stickyHeader 31728 } 31729 })); 31730 } 31731 }, { 31732 key: "onScrollStop", 31733 value: function onScrollStop() { 31734 this.$html.removeClass('is-scrolling'); 31735 this.isScrolling = false; 31736 this.timeout = null; // Fire Custom Event `scrollStop` 31737 31738 this.window.dispatchEvent(new CustomEvent('scrollStop', { 31739 detail: { 31740 direction: this.direction, 31741 last: this.last, 31742 stickyHeader: this.stickyHeader 31743 } 31744 })); 31745 } 31746 }]); 31747 31748 return ScrollDirection; 31749}(); 31750 31751module.exports = function () { 31752 $(document).ready(function () { 31753 new ScrollDirection(); 31754 }); 31755}; 31756 31757/***/ }), 31758
31759/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/helpers.js": 31760/*!********************************************************************************************************************!*\ 31761 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/helpers.js ***! 31762 \********************************************************************************************************************/ 31763/*! no static exports found */ 31764/***/ (function(module, exports, __webpack_require__) { 31765 31766"use strict"; 31767 // TODO: REVISIT ON IF THIS SHOULD BE DONE SERVER SIDE 31768 31769/** 31770 * update window product list experience data 31771 * @param {string} data - data returned from the server's ajax call 31772 */ 31773 31774var updateUncachedData = function updateUncachedData(data) { 31775 var wishlistPIDs = new Set(window.UncachedData.wishlistPIDs); 31776 var updatedPid = data.pid.toString(); 31777 31778 if (data.actionType === 'change') { 31779 var newPid = data.pidUpdated.toString(); 31780 wishlistPIDs["delete"](updatedPid); 31781 wishlistPIDs.add(newPid); 31782 } else if (data.actionType === 'add') { 31783 wishlistPIDs.add(updatedPid); 31784 } else if (data.actionType === 'remove') { 31785 wishlistPIDs["delete"](updatedPid); 31786 } 31787 31788 window.UncachedData.wishlistPIDs = Array.from(wishlistPIDs); 31789}; 31790/** 31791 * update clicked links attributes and text 31792 * @param {Object} specificLinks - jQuery object representing selection of product list experience links 31793 */ 31794 31795 31796var updateLinkData = function updateLinkData(specificLinks, data) { 31797 if (!window || !window.UncachedData || !window.UncachedData.wishlistPIDs) { 31798 return; 31799 } 31800 31801 var wishlistLinks = specificLinks || $('[data-wishlistpid]'); 31802 31803 if (!wishlistLinks || !wishlistLinks.length) { 31804 return; 31805 } 31806 31807 var wishlistPIDs = new Set(window.UncachedData.wishlistPIDs); 31808 wishlistLinks.each(function (_i, wishlistLink) { 31809 var $wishlistLink = $(wishlistLink); 31810 var wishlistpid = $wishlistLink.attr('data-wishlistpid'); 31811 31812 if (wishlistpid) { 31813 var isInWishlist = wishlistPIDs.has(wishlistpid); 31814 $wishlistLink.attr('data-inwishlist', isInWishlist); 31815 31816 if (isInWishlist) { 31817 $wishlistLink.attr('title', $wishlistLink.attr('data-removemessage')); 31818 31819 if ($wishlistLink.data('includetext') === true) { 31820 $wishlistLink.find('span').html($wishlistLink.attr('data-removemessage')); 31821 } 31822 } else { 31823 $wishlistLink.attr('title', $wishlistLink.attr('data-addmessage')); 31824 31825 if ($wishlistLink.data('includetext') === true) { 31826 $wishlistLink.find('span').html($wishlistLink.attr('data-addmessage')); 31827 } 31828 } 31829 31830 var icon = $wishlistLink.find('.wishlist-icon'); 31831 31832 if (icon && icon.length) { 31833 $(icon).toggleClass('selected', isInWishlist); 31834 } 31835 31836 if (data && data.wishlistQuantities) { 31837 $wishlistLink.attr('data-wishlistquantity', data.wishlistQuantities).data('wishlistquantity', data.wishlistQuantities); 31838 } else { 31839 $wishlistLink.attr('data-wishlistquantity', 1).data('wishlistquantity', 1); 31840 } 31841 } 31842 }); 31843}; 31844 31845var openToast = function openToast(data) { 31846 if (data.pid) { 31847 $('.wishlist-toast').trigger('show', function ($toast) { 31848 if (data.wishlistName) { 31849 $toast.find('.wishlist-name').html(data.wishlistName); 31850 } else { 31851 $toast.find('.wishlist-name').html($toast.data().defaultWishlistName); 31852 } 31853 31854 $toast.find('.message .manage').attr('href', data.wishlistUrl); 31855 31856 if (data.manageLabel) { 31857 $toast.find('.message .manage').html(data.manageLabel); 31858 } else { 31859 $toast.find('.message .manage').html($toast.data().defaultManageLabelWishlist); 31860 } 31861 31862 $toast.attr({ 31863 'data-product-id': data.pid, 31864 'data-wishlist-id': data.wishlistId 31865 }).data('product-id', data.pid).data('wishlist-id', data.wishlistId); 31866 31867 if (data.wishlistQuantities) { 31868 $toast.attr('data-wishlist-quantities', data.wishlistQuantities).data('wishlist-quantities', data.wishlistQuantities); 31869 } 31870 31871 if (data.productOptions) { 31872 $toast.attr({ 31873 'data-product-options': data.productOptions 31874 }).data('product-options', data.productOptions); 31875 } 31876 31877 if (data.wishlistActionType === 'add') { 31878 $toast.find('.message.remove, .message.both').addClass('d-none'); 31879 $toast.find('.message.add').removeClass('d-none'); 31880 } else if (data.wishlistActionType === 'remove') { 31881 $toast.find('.message.remove').removeClass('d-none'); 31882 $toast.find('.message.add, .message.both').addClass('d-none'); 31883 } else { 31884 $toast.find('.message.both').removeClass('d-none'); 31885 $toast.find('.message.add, .message.remove').addClass('d-none'); 31886 } 31887 }); 31888 } 31889}; 31890 31891var getUrlParam = function getUrlParam(paramName) { 31892 var queryString = window.location.search;
31893 var urlParams = new URLSearchParams(queryString); 31894 return urlParams.get(paramName); 31895}; 31896 31897module.exports = { 31898 openToast: openToast, 31899 updateLinkData: updateLinkData, 31900 updateUncachedData: updateUncachedData, 31901 getUrlParam: getUrlParam 31902}; 31903 31904/***/ }), 31905
31906/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/modalShowLists.js": 31907/*!***************************************************************************************************************************!*\ 31908 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/modalShowLists.js ***! 31909 \***************************************************************************************************************************/ 31910/*! no static exports found */ 31911/***/ (function(module, exports, __webpack_require__) { 31912 31913"use strict"; 31914 31915 31916var wishlistHelpers = __webpack_require__(/*! core/wishlist/components/helpers */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/helpers.js"); 31917 31918var toastHelpers = __webpack_require__(/*! core/components/toast */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/toast.js"); 31919 31920var cart = __webpack_require__(/*! core/cart */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/cart.js"); 31921 31922var base = __webpack_require__(/*! core/product/base */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/base.js"); 31923 31924var getPid = function getPid() { 31925 return $('#wishlistModalShowLists').data().pid; 31926}; 31927 31928var getListItemIds = function getListItemIds() { 31929 return $('#wishlistModalShowLists').data().listItemIds; 31930}; 31931 31932var getListId = function getListId() { 31933 return $('#wishlistModalShowLists').data().listId; 31934}; 31935 31936var getListAction = function getListAction() { 31937 var $modal = $('#wishlistModalShowLists'); 31938 return !$modal.data().action ? 'add' : $modal.data().action; 31939}; 31940 31941var getQuantity = function getQuantity() { 31942 if ($('#wishlistModalShowLists').data().quantity) { 31943 return $('#wishlistModalShowLists').data().quantity; 31944 } else { 31945 return 1; 31946 } 31947}; 31948 31949var updateWishlistProducts = function updateWishlistProducts($html) { 31950 // if we have a new DOM replace the old DOM 31951 if ($html) { 31952 $('#wishlistModalShowLists').find('.wishlist-modal-show-lists-toggle-lists').replaceWith($html); // if we don't have a new DOM then just empty it out 31953 } else { 31954 $('#wishlistModalShowLists').find('.wishlist-modal-show-lists-toggle-lists').empty(); 31955 } 31956}; 31957 31958var updateModalListDataState = function updateModalListDataState() { 31959 var $modal = $('#wishlistModalShowLists'); 31960 var modalListDataState = $modal.data().modalListDataState; 31961 var selectedLists = $modal.find('.js-toggle.selected'); 31962 var selectedListIds = []; 31963 31964 var getListDiff = function getListDiff(list1, list2) { 31965 var misses = []; 31966 31967 for (var item = 0; item < list1.length; item++) { 31968 var found = false; 31969 31970 for (var ii = 0; ii < list2.length; ii++) { 31971 if (list2[ii].wishlistId === list1[item].wishlistId) { 31972 found = true; 31973 } 31974 } 31975 31976 if (!found) { 31977 misses.push(list1[item]); 31978 } 31979 } 31980 31981 return misses; 31982 }; //get all the lists that are selected 31983 31984 31985 selectedLists.each(function () { 31986 selectedListIds.push({ 31987 pid: module.exports.methods.getPid(), 31988 wishlistId: $(this).data('wishlistId'), 31989 wishlistName: $(this).data('wishlistName'), 31990 wishlistQuantities: $(this).data('wishlistPidQuantity'), 31991 wishlistUrl: $(this).data('wishlistUrl') 31992 }); 31993 }); //save off the initial set of selected lists so we know what we started with 31994 31995 if (!modalListDataState.listsInitial) { 31996 modalListDataState.listsInitial = selectedListIds; 31997 } //save the lists as it after a change happened or if this is the initial load 31998 31999 32000 modalListDataState.listsCurrent = selectedListIds; //figure if any lists have been removed 32001 32002 modalListDataState.removed = getListDiff(modalListDataState.listsInitial, modalListDataState.listsCurrent); //figure if any lists have been added 32003 32004 modalListDataState.added = getListDiff(modalListDataState.listsCurrent, modalListDataState.listsInitial); //look to see if anything changed then set the isChange flag 32005 32006 if (modalListDataState.added.length || modalListDataState.removed.length) { 32007 modalListDataState.isChanged = true; 32008 } else { 32009 modalListDataState.isChanged = false;
32010 } 32011 32012 if (modalListDataState.added.length && modalListDataState.removed.length) { 32013 modalListDataState.wishlistActionType = 'both'; 32014 } else if (modalListDataState.added.length) { 32015 modalListDataState.wishlistActionType = 'add'; 32016 } else if (modalListDataState.removed) { 32017 modalListDataState.wishlistActionType = 'remove'; 32018 } else { 32019 modalListDataState.wishlistActionType = 'none'; 32020 } 32021 32022 modalListDataState.toast = {}; 32023 32024 if (modalListDataState.wishlistActionType === 'remove' && modalListDataState.removed.length === 1) { 32025 // only removed 1 32026 modalListDataState.toast = modalListDataState.removed[0]; 32027 modalListDataState.toast.wishlistActionType = modalListDataState.wishlistActionType; 32028 } else if (modalListDataState.wishlistActionType === 'remove' && modalListDataState.removed.length > 1) { 32029 // removed several 32030 modalListDataState.toast.wishlistId = []; 32031 modalListDataState.toast.wishlistQuantities = []; 32032 modalListDataState.toast.pid = module.exports.methods.getPid(); 32033 var i; 32034 32035 for (i = 0; i < modalListDataState.removed.length; i++) { 32036 modalListDataState.toast.wishlistId.push(modalListDataState.removed[i].wishlistId); 32037 modalListDataState.toast.wishlistQuantities.push(modalListDataState.removed[i].wishlistQuantities); 32038 } 32039 32040 modalListDataState.toast.wishlistActionType = modalListDataState.wishlistActionType; 32041 } else if (modalListDataState.wishlistActionType === 'add' && modalListDataState.added.length === 1) { 32042 // only added 1 32043 modalListDataState.toast = modalListDataState.added[0]; 32044 modalListDataState.toast.wishlistActionType = modalListDataState.wishlistActionType; 32045 } else if (modalListDataState.wishlistActionType === 'add' && modalListDataState.added.length > 1) { 32046 // added several 32047 modalListDataState.toast.wishlistActionType = 'both'; 32048 } else if (modalListDataState.wishlistActionType === 'both') { 32049 // multiple adds or multiple removals 32050 modalListDataState.toast.wishlistActionType = modalListDataState.wishlistActionType; 32051 } else { 32052 // no changes 32053 modalListDataState.toast.wishlistActionType = modalListDataState.wishlistActionType; 32054 } 32055 32056 $modal.data().modalListDataState = modalListDataState; 32057}; 32058 32059var switchListViewsRegistered = function switchListViewsRegistered() { 32060 $('#wishlistModalShowLists').find('.wishlist-modal-show-lists-toggle-lists, .wishlist-modal-show-lists-toggle-list-form, .modal-footer').toggleClass('d-none'); 32061 $('#wishlistModalShowLists').find('.wishlist-modal-show-lists-header-close, .wishlist-modal-show-lists-header-back').toggleClass('show'); 32062}; 32063 32064var eventShow = function eventShow(e) { 32065 var $this = $(this); 32066 var action = module.exports.methods.getListAction(); 32067 var dataParams = {}; 32068 $this.data('modalListDataState', {}); 32069 $this.find('.modal-content').spinner().start(); 32070 $('.wishlist-toast').trigger('dismiss'); 32071 32072 if (action === 'move') { 32073 $('.wishlist-modal-show-lists-add').hide(); 32074 dataParams = { 32075 listIdOriginal: $this.data().listId, 32076 listItemIds: JSON.stringify(module.exports.methods.getListItemIds()), 32077 action: action 32078 }; 32079 } else { 32080 $('.wishlist-modal-show-lists-move').hide(); 32081 dataParams = { 32082 pid: module.exports.methods.getPid(), 32083 action: action 32084 }; 32085 } 32086 32087 $.ajax({ 32088 url: $this.find('.modal-body').data().url, 32089 type: 'POST', 32090 dataType: 'html', 32091 data: dataParams, 32092 success: function success(html) { 32093 module.exports.methods.updateWishlistProducts($(html)); 32094 module.exports.methods.updateModalListDataState(); 32095 $this.find('.modal-content').spinner().stop(); 32096 } 32097 }); 32098 module.exports.methods.addListEventListenersWindow(); 32099}; 32100 32101var eventHidden = function eventHidden(e) { 32102 module.exports.methods.removeListEventListenersWindow(); 32103 module.exports.methods.updateWishlistProducts(); 32104 wishlistHelpers.openToast($('#wishlistModalShowLists').data().modalListDataState.toast); 32105}; 32106 32107var eventStopPropagation = function eventStopPropagation(e) { 32108 e.stopPropagation(); 32109}; 32110 32111var eventClickWindow = function eventClickWindow(e) { 32112 $('#wishlistModalShowLists').modal('toggle'); 32113}; 32114
32115var eventKeyupName = function eventKeyupName(e) { 32116 var $this = $(this); 32117 var $invalidFeedback = $this.next('.invalid-feedback'); 32118 var $submitButton = $('.wishlist-create-list-form .create'); 32119 var namesExisting = $('#wishlistModalShowLists [data-list-names]').data().listNames.split('|'); 32120 var nameNew = $this.val().replace(/[^A-Za-z0-9]/g, '').toLowerCase(); 32121 32122 if (nameNew !== '' && namesExisting.indexOf(nameNew) !== -1) { 32123 $submitButton.attr('disabled', 'disabled'); 32124 $invalidFeedback.text($this.data().errorDuplicateName).addClass('d-block'); 32125 $this.addClass('is-invalid'); 32126 } else { 32127 $submitButton.removeAttr('disabled'); 32128 $invalidFeedback.text('').removeClass('d-block'); 32129 $this.removeClass('is-invalid'); 32130 } 32131}; 32132 32133var eventToggleProductOnWishlist = function eventToggleProductOnWishlist(e) { 32134 e.preventDefault(); 32135 var $listButton = $(this); 32136 var $productContainer = $('.product-detail[data-pid=' + $listButton.data().pid + ']'); 32137 var options = base.methods.getOptions($productContainer); 32138 options ? $listButton.attr('data-product-options', JSON.stringify(options)) : ''; 32139 $listButton.closest('.modal-content').spinner().start(); 32140 $.ajax({ 32141 url: $listButton.data().url, 32142 method: 'POST', 32143 dataType: 'json', 32144 data: { 32145 pid: module.exports.methods.getPid(), 32146 wishlistId: $listButton.data().wishlistId, 32147 quantity: module.exports.methods.getQuantity(), 32148 options: options 32149 }, 32150 success: function success(data) { 32151 var $html = $(data.renderedTemplate); 32152 32153 if (!data.error && $html.length) { 32154 var $modal = $('#wishlistModalShowLists'); 32155 var productListSelectedCount = $html.find('.selected').length; 32156 module.exports.methods.updateWishlistProducts($html); 32157 module.exports.methods.updateModalListDataState(); 32158 wishlistHelpers.updateUncachedData({ 32159 actionType: productListSelectedCount ? 'add' : 'remove', 32160 pid: module.exports.methods.getPid() 32161 }); 32162 wishlistHelpers.updateLinkData(); 32163 32164 if (!$modal.data().multiSelect) { 32165 $modal.one('hidden.bs.modal', function () { 32166 wishlistHelpers.openToast($listButton.data()); 32167 }).modal('hide'); 32168 } 32169 32170 if ($modal.data().removeFromCart && $listButton.data().wishlistActionType === 'add') { 32171 var urlParams = { 32172 pid: module.exports.methods.getPid(), 32173 uuid: $modal.data().cartUUID 32174 }; 32175 cart.removeProductFromCart({ 32176 url: cart.appendToUrl($modal.data().urlRemoveFromCart, urlParams), 32177 uuid: urlParams.uuid, 32178 pid: module.exports.methods.getPid() 32179 }); 32180 } 32181 } else { 32182 toastHelpers.methods.show('danger', data.message, true); 32183 } 32184 32185 $listButton.closest('.modal-content').spinner().stop(); 32186 }, 32187 error: function error() { 32188 $listButton.closest('.modal-content').spinner().stop(); 32189 } 32190 }); 32191}; 32192 32193var eventMoveProductsToWishlist = function eventMoveProductsToWishlist(e) { 32194 e.preventDefault(); 32195 var $modal = $('#wishlistModalShowLists'); 32196 var $listButton = $(this); 32197 $listButton.closest('.modal-content').spinner().start(); 32198 $.ajax({ 32199 url: $listButton.data().url, 32200 method: 'POST', 32201 dataType: 'json', 32202 data: { 32203 listItemIds: JSON.stringify($modal.data().listItemIds), 32204 productListIdOriginal: module.exports.methods.getListId(), 32205 productListIdNew: $listButton.data().wishlistId, 32206 keepInOriginalList: $modal.find('.keep').is(':checked') 32207 }, 32208 success: function success(data) { 32209 var $productsHtml = $(data.renderedTemplate); 32210 32211 if (!data.error && $productsHtml.length) { 32212 $('.wishlist-details').trigger('updateProducts', $productsHtml); 32213 32214 if (!$modal.data().multiSelect) { 32215 $modal.modal('hide'); 32216 } 32217 32218 toastHelpers.methods.show('success', data.message, false); 32219 } else { 32220 toastHelpers.methods.show('danger', data.message, true); 32221 } 32222 32223 $listButton.closest('.modal-content').spinner().stop(); 32224 }, 32225 error: function error() { 32226 $listButton.closest('.modal-content').spinner().stop(); 32227 } 32228 }); 32229}; 32230 32231var eventToggleNewWishlistForm = function eventToggleNewWishlistForm(e) { 32232 e.preventDefault(); 32233 module.exports.methods.switchListViewsRegistered(); 32234 $('#wishlistModalShowLists #newProductListName').val('').removeClass('is-invalid').next('.invali
32234d-feedback').text('').removeClass('d-block'); 32235 $('.wishlist-create-list-form .create').removeAttr('disabled'); 32236}; 32237 32238var eventSubmitNewWishlistForm = function eventSubmitNewWishlistForm(e) { 32239 e.preventDefault(); 32240 var $newProductListName = $('#newProductListName'); 32241 32242 if ($newProductListName.val() && $newProductListName.val().length > 1) { 32243 $newProductListName.removeClass('is-invalid'); 32244 $newProductListName.closest('.modal-body').spinner().start(); 32245 $.ajax({ 32246 url: $(e.target).data().url, 32247 method: 'POST', 32248 dataType: 'json', 32249 data: { 32250 name: $newProductListName.val(), 32251 pid: module.exports.methods.getPid(), 32252 view: 'modalShowLists', 32253 listIdOriginal: module.exports.methods.getListId(), 32254 action: module.exports.methods.getListAction() 32255 }, 32256 success: function success(data) { 32257 var $html = $(data.renderedTemplate); 32258 32259 if (!data.error && $html.length) { 32260 module.exports.methods.updateWishlistProducts($html); 32261 module.exports.methods.updateModalListDataState(); 32262 } else { 32263 toastHelpers.methods.show('danger', data.message, true); 32264 } 32265 32266 $newProductListName.closest('.modal-body').spinner().stop(); 32267 }, 32268 error: function error() { 32269 $newProductListName.closest('.modal-body').spinner().stop(); 32270 } 32271 }); 32272 module.exports.methods.switchListViewsRegistered(); 32273 $newProductListName.val(''); 32274 } else { 32275 $newProductListName.addClass('is-invalid'); 32276 } 32277}; 32278 32279var eventClickRemove = function eventClickRemove(e) { 32280 e.preventDefault(); 32281 var target = e.currentTarget; 32282 var pid = target.dataset.pid; 32283 $(target).closest('.modal-body').spinner().start(); 32284 $.ajax({ 32285 url: target.dataset.url, 32286 method: 'POST', 32287 dataType: 'json', 32288 data: { 32289 pid: pid 32290 }, 32291 success: function success(data) { 32292 if (!data.error) { 32293 wishlistHelpers.updateUncachedData({ 32294 actionType: 'remove', 32295 pid: pid 32296 }); 32297 wishlistHelpers.updateLinkData(); 32298 $('.wishlist-modal-show-lists').modal('hide'); 32299 wishlistHelpers.openToast({ 32300 pid: pid, 32301 wishlistId: data.wishlistIds, 32302 wishlistQuantities: data.wishlistsQuantities, 32303 wishlistName: data.wishlistName, 32304 wishlistUrl: data.wishlistUrl, 32305 wishlistActionType: 'remove' 32306 }); 32307 } else { 32308 toastHelpers.methods.show('danger', data.message, true); 32309 } 32310 32311 $(target).closest('.modal-body').spinner().stop(); 32312 }, 32313 error: function error() { 32314 $('.wishlist-modal-show-lists').modal('hide'); 32315 $(target).closest('.modal-body').spinner().stop(); 32316 } 32317 }); 32318}; 32319 32320var addListEventListenersWindow = function addListEventListenersWindow() { 32321 $(window).on('click', module.exports.methods.eventClickWindow); 32322}; 32323 32324var removeListEventListenersWindow = function removeListEventListenersWindow() { 32325 $(window).off('click', module.exports.methods.eventClickWindow); 32326}; 32327 32328var addListEventListeners = function addListEventListeners() { 32329 $('#wishlistModalShowLists').on('click', module.exports.methods.eventStopPropagation).on('show.bs.modal', module.exports.methods.eventShow).on('hidden.bs.modal', module.exports.methods.eventHidden).on('keyup', '#newProductListName', module.exports.methods.eventKeyupName).on('click', '.js-header-back', module.exports.methods.eventToggleNewWishlistForm).on('click', '.wishlist-show-new-list-form-btn, .wishlist-modal-show-lists-toggle-list-form .cancel', module.exports.methods.eventToggleNewWishlistForm).on('click', '.js-toggle', module.exports.methods.eventToggleProductOnWishlist).on('click', '.js-move', module.exports.methods.eventMoveProductsToWishlist).on('submit', '.wishlist-modal-show-lists-toggle-list-form form', module.exports.methods.eventSubmitNewWishlistForm).on('click', '.js-remove-from-all', module.exports.methods.eventClickRemove); 32330 $('#wishlistModalShowLists').data('modalListDataState', {}); 32331}; 32332 32333module.exports = { 32334 methods: { 32335 getPid: getPid, 32336 getListItemIds: getListItemIds, 32337 getListId: getListId, 32338 getListAction: getListAction, 32339 getQuantity: getQuantity, 32340 updateWishlistProducts: updateWishlistProducts, 32341 updateModalListDataState: updateModalListDataState, 32342 switchListViewsRegistered: switchListViewsRegistered, 32343 eventShow: eventShow, 32344 eventHidden: eventHidden, 32345 eventStopPropagation: eventStopPropagation, 32346 eventClickWindow: eventClickWindow,
32347 eventKeyupName: eventKeyupName, 32348 eventToggleProductOnWishlist: eventToggleProductOnWishlist, 32349 eventMoveProductsToWishlist: eventMoveProductsToWishlist, 32350 eventToggleNewWishlistForm: eventToggleNewWishlistForm, 32351 eventSubmitNewWishlistForm: eventSubmitNewWishlistForm, 32352 eventClickRemove: eventClickRemove, 32353 addListEventListenersWindow: addListEventListenersWindow, 32354 removeListEventListenersWindow: removeListEventListenersWindow 32355 }, 32356 addListEventListeners: addListEventListeners 32357}; 32358 32359/***/ }), 32360
32361/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/toast.js": 32362/*!******************************************************************************************************************!*\ 32363 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/toast.js ***! 32364 \******************************************************************************************************************/ 32365/*! no static exports found */ 32366/***/ (function(module, exports, __webpack_require__) { 32367 32368"use strict"; 32369 32370 32371var wishlistHelpers = __webpack_require__(/*! core/wishlist/components/helpers */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/helpers.js"); 32372 32373var toastRecycleTime = 500; 32374 32375var dismiss = function dismiss($toast) { 32376 $toast.removeClass('show').attr('tabindex', '-1'); 32377 module.exports.methods.removeEventListenersWindow(); 32378}; 32379 32380var show = function show($toast) { 32381 $toast.addClass('show').attr('tabindex', '0').trigger('focus'); 32382 module.exports.methods.addEventListenersWindow(); 32383}; 32384 32385var eventClickUndo = function eventClickUndo(e) { 32386 e.preventDefault(); 32387 var $this = $(this); 32388 var $toast = $this.parents('.wishlist-toast'); 32389 var url; 32390 var wishlistId; 32391 var wishlistQuantities; 32392 var productOptions; 32393 32394 if (typeof $toast.data().wishlistId === 'string') { 32395 url = $this.data().urlList; 32396 wishlistId = $toast.data().wishlistId; 32397 wishlistQuantities = $toast.data().wishlistQuantities; 32398 productOptions = $toast.data().productOptions; 32399 } else { 32400 url = $this.data().urlLists; 32401 wishlistId = $toast.data().wishlistId.join('|'); 32402 wishlistQuantities = $toast.data().wishlistQuantities.join('|'); 32403 productOptions = $toast.data().productOptions; 32404 } 32405 32406 $.ajax({ 32407 url: url, 32408 method: 'POST', 32409 dataType: 'json', 32410 data: { 32411 pid: $toast.data().productId, 32412 wishlistId: wishlistId, 32413 wishlistQuantities: wishlistQuantities, 32414 productOptions: productOptions 32415 }, 32416 success: function success(data) { 32417 if (!data.error) { 32418 wishlistHelpers.updateUncachedData({ 32419 actionType: data.wishlistActionType, 32420 pid: data.pid 32421 }); 32422 wishlistHelpers.updateLinkData(); 32423 wishlistHelpers.openToast(data); 32424 } else { 32425 toastHelpers.methods.show('danger', data.message, true); 32426 } 32427 } 32428 }); 32429}; 32430 32431var eventClickWindow = function eventClickWindow(e) { 32432 if (!$(e.target).is('[data-toast-trigger]')) { 32433 module.exports.methods.dismiss($('.wishlist-toast')); 32434 } 32435}; 32436 32437var eventKeyPressEscapeWindow = function eventKeyPressEscapeWindow(e) { 32438 if (e.key && e.key === 'Escape') { 32439 module.exports.methods.dismiss($('.wishlist-toast')); 32440 } 32441}; 32442 32443var eventStopPropagation = function eventStopPropagation(e) { 32444 e.stopPropagation(); 32445}; 32446 32447var eventDismissButton = function eventDismissButton(e) { 32448 e.preventDefault(); 32449 module.exports.methods.dismiss($(this).parents('.wishlist-toast')); 32450}; 32451 32452var eventShow = function eventShow(e, callback) { 32453 e.preventDefault(); 32454 var $toast = $(this); 32455 32456 if ($toast.hasClass('show')) { 32457 module.exports.methods.dismiss($toast); 32458 setTimeout(function () { 32459 if (callback) { 32460 callback($toast, 33); 32461 } 32462 32463 module.exports.methods.show($toast); 32464 }, toastRecycleTime); 32465 } else { 32466 if (callback) { 32467 callback($toast); 32468 } 32469 32470 module.exports.methods.show($toast); 32471 } 32472}; 32473 32474var eventDismiss = function eventDismiss(e, callback) { 32475 e.preventDefault(); 32476 var $toast = $(this); 32477 module.exports.methods.dismiss($toast); 32478 32479 if (callback) { 32480 callback($toast); 32481 } 32482}; 32483 32484var addEventListenersToast = function addEventListenersToast() { 32485 $('.wishlist-toast').on('click', module.exports.methods.eventStopPropagation).on('click', '.undo', module.exports.methods.eventClickUndo).on('click', '[data-toast-dismiss]', module.exports.methods.eventDismissButton).on('show', module.exports.methods.eventShow).on('dismiss', module.exports.methods.eventDismiss); 32486}; 32487 32488var addEventListenersWindow = function addEventListenersWindow() { 32489 $(window).on('keydown', module.exports.methods.eventKeyPressEscapeWindow).on('click', module.exports.methods.eventClickWindow); 32490}; 32491 32492var removeEventListenersWindow = function removeEventListenersWindow() { 32493 $(window).off('keydown', module.exports.methods.eventKeyPressEscapeWindow).off('click', module.exports.methods.eventClickWindow); 32494}; 32495 32496module.exports = { 32497 methods: { 32498 dismiss: dismiss, 32499 show: show, 32500 eventClickUndo: eventClickUndo, 32501 eventClickWindow: eventClickWindow,
32502 eventKeyPressEscapeWindow: eventKeyPressEscapeWindow, 32503 eventStopPropagation: eventStopPropagation, 32504 eventDismissButton: eventDismissButton, 32505 eventShow: eventShow, 32506 eventDismiss: eventDismiss, 32507 addEventListenersWindow: addEventListenersWindow, 32508 removeEventListenersWindow: removeEventListenersWindow 32509 }, 32510 addEventListenersToast: addEventListenersToast 32511}; 32512 32513/***/ }), 32514
32515/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/toggleProduct.js": 32516/*!**************************************************************************************************************************!*\ 32517 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/toggleProduct.js ***! 32518 \**************************************************************************************************************************/ 32519/*! no static exports found */ 32520/***/ (function(module, exports, __webpack_require__) { 32521 32522"use strict"; 32523 32524 32525var wishlistHelpers = __webpack_require__(/*! core/wishlist/components/helpers */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/helpers.js"); 32526 32527var swatchChange = function swatchChange($swatch) { 32528 var $tileParent = $swatch.parents('.product-tile'); //main Product List Link 32529 32530 if ($swatch.attr('data-wishlistpid')) { 32531 module.exports.methods.toggleButtonSelectedState($tileParent, $swatch.attr('data-wishlistpid')); 32532 } 32533}; 32534 32535var hijackSwatchClick = function hijackSwatchClick() { 32536 if (window.isMobile()) { 32537 $('body').on('click.swatch-link', '.product-tile .swatch-link', module.exports.methods.eventHijackSwatchClick); 32538 } else { 32539 $('body').off('click.swatch-link'); 32540 } 32541}; 32542 32543var toggleButtonSelectedState = function toggleButtonSelectedState($container, pid) { 32544 //Make heart icon accurate 32545 var mainWishlist = $container.find('.wishlist-toggle-product'); 32546 32547 if (mainWishlist.length) { 32548 mainWishlist.attr('data-wishlistpid', pid); //Make heart icon accurate 32549 32550 wishlistHelpers.updateLinkData(mainWishlist); 32551 } 32552}; 32553 32554var toggleProductGuest = function toggleProductGuest(data) { 32555 $.ajax({ 32556 url: data.url, 32557 method: 'POST', 32558 dataType: 'json', 32559 data: { 32560 pid: data.wishlistpid, 32561 quantity: data.wishlistquantity 32562 }, 32563 success: function success(data) { 32564 if (!data.error) { 32565 wishlistHelpers.updateUncachedData({ 32566 actionType: data.wishlistActionType, 32567 pid: data.pid 32568 }); 32569 wishlistHelpers.updateLinkData(false, data); 32570 data.guest = true; 32571 wishlistHelpers.openToast(data); 32572 } else { 32573 toastHelpers.methods.show('danger', data.message, true); 32574 } 32575 } 32576 }); 32577}; 32578 32579var eventClickHeart = function eventClickHeart(event) { 32580 event.preventDefault(); 32581 var $this = $(event.currentTarget); 32582 var wishlistpid = event.currentTarget.dataset.wishlistpid; 32583 var isProductTile = $this.closest('.product-tile').length > 0; // BEGIN MARTIN CUSTOMIZATION 32584 32585 if (!window.UncachedData.customer.isAuthenticated) { 32586 $('body').trigger('initFlyout', { 32587 url: window.CachedData.flyoutFlyoutLoginUrl + '?wishlistpid=' + wishlistpid + '&isproducttile=' + isProductTile + '&bypassquickview=' + event.currentTarget.dataset.bypassquickview 32588 }); 32589 return; 32590 } 32591 32592 if (isProductTile && event.currentTarget.dataset.bypassquickview !== 'true') { 32593 if (event.currentTarget.dataset.inwishlist === 'false') { 32594 // If this is a product tile, first show the quickview modal to allow for variant selection 32595 var wishlistGetProductUrl = window.CachedData.wishlistQuickViewUrl + '?pid=' + wishlistpid; 32596 $('body').trigger('quickview:trigger', { 32597 url: wishlistGetProductUrl 32598 }); 32599 return; 32600 } 32601 } 32602 32603 if ($('#quickViewModal.show .modal-footer .wishlist-toggle-product').length > 0) { 32604 // If the modal is currently showing, grab the pid and dismiss the modal 32605 var $quickViewModal = $('#quickViewModal'); 32606 $quickViewModal.modal('hide'); 32607 wishlistpid = $quickViewModal.find('.btn-add-wishlist').data('pid-updated') || $quickViewModal.find('.btn-add-wishlist').data('pid'); 32608 } // END MARTIN CUSTOMIZATION 32609 32610 32611 if (window.UncachedData.customer.isAuthenticated) { 32612 $('#wishlistModalShowLists').data('multiSelect', false).data('pid', wishlistpid).modal('show', $this); 32613 } else { 32614 module.exports.methods.toggleProductGuest(event.currentTarget.dataset); 32615 } 32616}; 32617 32618var eventMouseEnterSwatch = function eventMouseEnterSwatch() { 32619 module.exports.methods.swatchChange($(this)); 32620}; 32621 32622var eventAfterAttributeSelect = function eventAfterAttributeSelect(_event, payload) { 32623 module.exports.methods.toggleButtonSelectedState(payload.container, payload.data.product.wishlistpid); 32624}; 32625 32626var eventHijackSwatchClick = function eventHijackSwatchClick(event) { 32627 event.preventDefault(); 32628 module.exports.methods.swatchChange($(this).find('.swatch')); 32629}; 32630 32631var addListEventListeners = function addListEventListeners() { 32632 $('body').on('click', '.wishlist-toggle-product', module.exports.methods.eventClickHeart).on('mouseenter', '.product-tile .swatch', module.exports.methods.eventMouseEnterSwatch).on('product:afterAttributeSelect', module.exports.methods.eventAfterAttributeSelect); 32633 $(window).on('resize', function () { 32634 module.exports.methods.hijackSwatchClick(); 32635 }); 32636 module.exports.methods.hijackSwatchClick(); 32637 wishlistHelpers.updateLinkData(); 32638}; 32639 32640module.exports = { 32641 methods: { 32642 swatchChange: swatchChange, 32643 hijackSwatchClick: hijackSwatchClick, 32644 toggleButtonSelectedState: toggleButtonSelectedState, 32645 toggleProductGuest: toggleProductGuest, 32646 eventClickHeart: eventClickHeart, 32647 eventMouseEnterSwatch: eventMouseEnterSwatch, 32648 eventAfterAttributeSelect: eventAfterAttributeSelect, 32649 eventHijackSwatchClick: eventHijackSwatchClick 32650 }, 32651 addListEventListeners: addListEventListeners 32652}; 32653 32654/***/ }), 32655
32656/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/detail.js": 32657/*!********************************************************************************************************!*\ 32658 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/detail.js ***! 32659 \********************************************************************************************************/ 32660/*! no static exports found */ 32661/***/ (function(module, exports, __webpack_require__) { 32662 32663"use strict"; 32664 32665 32666var productBase = __webpack_require__(/*! core/product/base */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/base.js"); 32667 32668var toastHelpers = __webpack_require__(/*! core/components/toast */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/toast.js"); 32669 32670var wishlistHelpers = __webpack_require__(/*! core/wishlist/components/helpers */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/helpers.js"); 32671 32672var shareUrlHelpTimeout = 2000; 32673 32674var unsetSelectedProductsState = function unsetSelectedProductsState() { 32675 $('.wishlist-details-nav').addClass('open'); 32676 $('.wishlist-details-deselect').addClass('d-none'); 32677 $('.wishlist-details-public-toggle').removeClass('d-none').addClass('show'); 32678 $('#wishlistOverlayDetailSelected').trigger('close'); 32679 $('.wishlist-details').find('.wishlist-card-product').trigger('unselect'); 32680}; 32681 32682var toggleSelectedProductsState = function toggleSelectedProductsState() { 32683 if ($('.wishlist-card-product[data-selected="true"]').length) { 32684 $('.wishlist-details-nav').removeClass('open'); 32685 $('.wishlist-details-deselect').removeClass('d-none'); 32686 $('.wishlist-details-public-toggle').removeClass('show').addClass('d-none'); 32687 32688 if ($('.wishlist-card-product.product-type-master[data-selected="true"]').length || $('.wishlist-card-product.unavailable[data-selected="true"]').length) { 32689 $('.wishlist-overlay-detail-selected-add').attr('disabled', true); 32690 } else { 32691 $('.wishlist-overlay-detail-selected-add').attr('disabled', false); 32692 } 32693 32694 $('#wishlistOverlayDetailSelected').trigger('open'); 32695 } else { 32696 unsetSelectedProductsState(); 32697 } 32698}; 32699 32700var eventKeyPressEscapeWindow = function eventKeyPressEscapeWindow(e) { 32701 if (e.key && e.key === 'Escape') { 32702 unsetSelectedProductsState(); 32703 } 32704}; 32705 32706var eventUpdateProducts = function eventUpdateProducts(e, $products) { 32707 $.spinner().start(); 32708 unsetSelectedProductsState(); 32709 $('.wishlist-details').find('.wishlist-details-products').replaceWith($products); 32710 productBase.enableQuantitySteppers(); 32711 $.spinner().stop(); 32712}; 32713 32714var eventClickSelectAll = function eventClickSelectAll(e) { 32715 e.preventDefault(); 32716 $('.wishlist-details').find('.wishlist-card-product').trigger('select'); 32717 toggleSelectedProductsState(); 32718}; 32719 32720var eventClickDeselect = function eventClickDeselect(e) { 32721 e.preventDefault(); 32722 unsetSelectedProductsState(); 32723}; 32724 32725var eventClickShare = function eventClickShare(e) { 32726 e.preventDefault(); 32727}; 32728 32729var eventClickAddToCart = function eventClickAddToCart(e) { 32730 e.preventDefault(); 32731 var $this = $(this); 32732 var $products = $this.parents('.wishlist-details').find('.wishlist-card-product:not(.unavailable):not(.product-type-master)'); 32733 var addToCartUrl = $this.data().url; 32734 var pidsObj = []; 32735 $products.each(function () { 32736 var $product = $(this); 32737 32738 if ($product.hasClass('product-type-set')) { 32739 var toastMessage = $product.data('message'); 32740 toastHelpers.methods.show('danger', toastMessage, true); 32741 } else { 32742 pidsObj.push({ 32743 pid: $product.data().pid, 32744 qty: $product.find('.wishlist-card-product-quantity').val(), 32745 options: $product.find('.wishlist-card-product-add').attr('data-options') 32746 }); 32747 } 32748 }); 32749 32750 if (pidsObj.length) { 32751 $.spinner().start(); 32752 pidsObj = JSON.stringify(pidsObj); 32753 $.ajax({ 32754 url: addToCartUrl, 32755 method: 'POST', 32756 data: { 32757 pidsObj: pidsObj 32758 }, 32759 success: function success(data) { 32760 productBase.methods.handlePostCartAdd(data); 32761 $('body').trigger('product:afterAddToCart', data); 32762 productBase.methods.miniCartReportingUrl(data.reportingURL, data.error); 32763 $.spinner().stop(); 32764 }, 32765 error: function error() { 32766 $.spinner().stop(); 32767 } 32768 }); 32769 } 32770}; 32771 32772var eventShowMore = function eventShowMore(e) { 32773 e.stopPropagation(); 32774 e.preventDefault(); 32775 var showMoreUrl = $(this).data('url'); 32776 $.spinner().start(); 32777 $.ajax({ 32778 url: showMoreUrl, 32779 data: { 32780 selectedUrl: showMoreUrl 32781 }, 32782 method: 'GET', 32783 success: function success(response) { 32784 var $updatedProducts = $(response).find('.wishlist-details-products'); 32785 $('.wishlist-details-products').replaceWith($updatedProducts); 32786 window.history.replaceState(null, '', showMoreUrl); 32787 $.spinner().stop(); 32788 }, 32789 error: function error() { 32790 $.spinner().stop(); 32791 } 32792 }); 32793}; 32794 32795var addDetailEventListeners = function addDetailEventListeners() { 32796 if ($('.wishlist-details').length) { 32797 $(window).on('keydown', module.exports.methods.eventKeyPressEscapeWindow); 32798 $('.wishlist-details').on('updateProducts', module.exports.methods.eventUpdateProducts).on('afterSelectProduct', module.exports.methods.toggleSelectedProductsState).on('unselectAllProducts', module.exports.methods.unsetSelectedProductsState).on('click', '.wishlist-details-select-all', module.exports.methods.eventClickSelectAll).on('click', '.wishlist-details-share', module.exports.methods.eventClickShare).on('click', '.wishlist-details-add-cart', module.exports.methods.eventClickAddToCart).on('click', '.wishlist-details-deselect', module.exports.methods.eventClickDeselect).on('click', '.show-more-wishlist-products .btn', module.exports.methods.eventShowMore); 32799 } 32800}; 32801/** 32802 * Share List Modal 32803 */ 32804 32805 32806var shareListModalEventSubmitCopy = function shareListModalEventSubmitCopy(e) { 32807 e.preventDefault(); 32808 var $shareUrlHelp = $('#wishlistExperienceShareUrlHelp'); 32809 var copyText = document.getElementById('wishlistExperienceShareUrl'); 32810 copyText.select(); 32811 copyText.setSelectionRange(0, 99999); 32812 navigator.clipboard.writeText(copyText.value); 32813 $shareUrlHelp.removeClass('d-none'); 32814 setTimeout(function () { 32815 $shareUrlHelp.addClass('d-none'); 32816 }, shareUrlHelpTimeout); 32817}; 32818 32819var shareListModalEventClose = function shareListModalEventClose() { 32820 //reset the forms 32821 var $shareUrl = $('#wishlistExperienceShareUrl'); 32822 $shareUrl.val($shareUrl.data().url); 32823 $('#wishlistExperienceShareEmail').val(''); 32824}; 32825 32826var addShareListModalEventListeners = function addShareListModalEventListeners() { 32827 if ($('.wishlist-details').length) { 32828 $('#wishlistModalShareList').on('submit', '.copy', module.exports.methods.shareListModalEventSubmitCopy).on('hidden.bs.modal', module.exports.methods.shareListModalEventClose); 32829 } 32830}; 32831/** 32832 * Delete Products Modal 32833 */ 32834 32835 32836var deleteProductsModalEventClose = function deleteProductsModalEventClose(e) { 32837 $(this).data({ 32838 listId: '', 32839 listItemIds: '' 32840 }); 32841}; 32842 32843var deleteProductsModalEventClickDelete = function deleteProductsModalEventClickDelete(e) { 32844 e.preventDefault(); 32845 var $modal = $('#wishlistModalDeleteProducts'); 32846 var detailPageSize = wishlistHelpers.getUrlParam('sz') ? Number(wishlistHelpers.getUrlParam('sz')) : null; 32847 $.spinner().start(); 32848 $.ajax({ 32849 url: $modal.data().url, 32850 method: 'POST', 32851 dataType: 'json', 32852 data: { 32853 listId: $modal.data().listId, 32854 listItemIds: JSON.stringify($modal.data().listItemIds), 32855 detailPageSize: detailPageSize 32856 }, 32857 success: function success(data) { 32858 var $productsHtml = $(data.renderedTemplate); 32859 32860 if (!data.error && $productsHtml.length) { 32861 $('.wishlist-details').trigger('updateProducts', $productsHtml); 32862 $('.wishlist-overlay-detail-selected').trigger('close'); 32863 } else { 32864 toastHelpers.methods.show('danger', data.message, true); 32865 $.spinner().stop(); 32866 } 32867 32868 $modal.modal('hide'); 32869 }, 32870 error: function error() { 32871 $modal.modal('hide'); 32872 $.spinner().stop(); 32873 } 32874 }); 32875}; 32876 32877var addDeleteProductsModalEventListeners = function addDeleteProductsModalEventListeners() { 32878 if ($('.wishlist-details').length) { 32879 $('#wishlistModalDeleteProducts').on('click', '.wishlist-modal-delete-list-delete-button', module.exports.methods.deleteProductsModalEventClickDelete).on('hidden.bs.modal', module.exports.methods.deleteProductsModalEventClose); 32880 } 32881}; 32882/** 32883 * Overlay Detail Selected 32884 */ 32885 32886 32887var closeOverlay = function closeOverlay() { 32888 $('.wishlist-overlay-detail-selected').attr('tabindex', -1).attr('aria-hidden', 'true').removeClass('open'); 32889}; 32890 32891var overlayDeselectAll = function overlayDeselectAll() { 32892 $('.wishlist-details').trigger('unselectAllProducts'); 32893}; 32894 32895var overlayGetSelectedListAndProducts = function overlayGetSelectedListAndProducts() { 32896 var $productListDetail = $('.wishlist-details'); 32897 var $products = $productListDetail.find('.wishlist-card-product[data-selected="true"]'); 32898 var listId = $productListDetail.data().listId; 32899 var pids = []; 32900 var listItemIds = []; 32901 var pidsObj = []; 32902 $products.each(function () { 32903 var $product = $(this); 32904 pids.push($product.data().pid); 32905 listItemIds.push($product.data().listItemId); 32906 pidsObj.push({ 32907 pid: $product.data().pid, 32908 qty: $product.find('.wishlist-card-product-quantity').val(), 32909 options: $product.find('.wishlist-card-product-add').attr('data-options') 32910 }); 32911 }); 32912 return { 32913 listId: listId, 32914 listItemIds: listItemIds, 32915 pids: pids, 32916 pidsObj: pidsObj 32917 }; 32918}; 32919 32920var eventOpenOverlay = function eventOpenOverlay() { 32921 $(this).attr('tabindex', 0).attr('aria-hidden', 'false').addClass('open'); 32922}; 32923 32924var eventOverlayClickAddToCart = function eventOverlayClickAddToCart(e) { 32925 e.preventDefault(); 32926 var selectedListAndProducts = module.exports.methods.overlayGetSelectedListAndProducts(); 32927 var addToCartUrl = $(this).data().url; 32928 32929 if (selectedListAndProducts.pidsObj.length) { 32930 $.spinner().start(); 32931 selectedListAndProducts.pidsObj = JSON.stringify(selectedListAndProducts.pidsObj); 32932 $.ajax({ 32933 url: addToCartUrl, 32934 method: 'POST', 32935 data: { 32936 pidsObj: selectedListAndProducts.pidsObj 32937 }, 32938 success: function success(data) { 32939 productBase.methods.handlePostCartAdd(data); 32940 $('body').trigger('product:afterAddToCart', data); 32941 module.exports.methods.overlayDeselectAll(); 32942 productBase.methods.miniCartReportingUrl(data.reportingURL, data.error); 32943 $.spinner().stop(); 32944 }, 32945 error: function error() { 32946 $.spinner().stop(); 32947 } 32948 }); 32949 } 32950}; 32951 32952var eventOverlayClickShare = function eventOverlayClickShare(e) { 32953 e.preventDefault(); 32954}; 32955 32956var eventOverlayClickMove = function eventOverlayClickMove(e) { 32957 e.preventDefault(); 32958 var selectedListAndProducts = module.exports.methods.overlayGetSelectedListAndProducts(); 32959 $('#wishlistModalShowLists').data('listId', selectedListAndProducts.listId).data('listItemIds', selectedListAndProducts.listItemIds).data('multiSelect', false).data('action', 'move').modal('show'); 32960 module.exports.methods.overlayDeselectAll(); 32961}; 32962 32963var eventOverlayClickRemove = function eventOverlayClickRemove(e) { 32964 e.preventDefault(); 32965 var selectedListAndProducts = module.exports.methods.overlayGetSelectedListAndProducts(); 32966 $('#wishlistModalDeleteProducts').data('listId', selectedListAndProducts.listId).data('listItemIds', selectedListAndProducts.listItemIds).modal('show'); 32967}; 32968 32969var addOverlayDetailSelectedEventListeners = function addOverlayDetailSelectedEventListeners() { 32970 if ($('.wishlist-details').length) { 32971 $('.wishlist-overlay-detail-selected').on('open', module.exports.methods.eventOpenOverlay).on('close', module.exports.methods.closeOverlay).on('click', '.wishlist-overlay-detail-selected-close', module.exports.methods.overlayDeselectAll).on('click', '.wishlist-overlay-detail-selected-add', module.exports.methods.eventOverlayClickAddToCart).on('click', '.wishlist-overlay-detail-selected-share', module.exports.methods.eventOverlayClickShare).on('click', '.wishlist-overlay-detail-selected-move', module.exports.methods.eventOverlayClickMove).on('click', '.wishlist-overlay-detail-selected-remove', module.exports.methods.eventOverlayClickRemove); 32972 } 32973}; 32974/** 32975 * Card Product 32976 */ 32977 32978 32979var cardProductEventSelect = function cardProductEventSelect(e) { 32980 $(e.target).attr('data-selected', true).data('selected', true).find('.wishlist-card-product-toggle').addClass('selected'); 32981}; 32982 32983var cardProductEventUnselect = function cardProductEventUnselect(e) { 32984 $(e.target).attr('data-selected', false).data('selected', false).find('.wishlist-card-product-toggle').removeClass('selected'); 32985}; 32986 32987var cardProductEventChangeQuantity = function cardProductEventChangeQuantity(e) { 32988 var $this = $(this); 32989 var $cardProduct = $this.parents('.wishlist-card-product'); 32990 $.ajax({ 32991 url: $cardProduct.data().url, 32992 method: 'POST', 32993 data: { 32994 quantity: $this.val(), 32995 wishlistId: $cardProduct.data().listId, 32996 productListItemId: $cardProduct.data().listItemId 32997 }, 32998 dataType: 'json', 32999 success: function success(data) { 33000 if (data.error) { 33001 toastHelpers.methods.show('danger', data.message, true); 33002 } 33003 } 33004 }); 33005}; 33006 33007var cardProductEventClickAddCart = function cardProductEventClickAddCart(e) { 33008 e.preventDefault(); 33009 $.spinner().start(); 33010 var $this = $(this); 33011 var $cardProduct = $this.parents('.wishlist-card-product'); 33012 var addToCartUrl = $this.data().url; 33013 var pid = $cardProduct.data('pid'); 33014 var quantity = $cardProduct.find('.wishlist-card-product-quantity').val(); 33015 var options = JSON.stringify($this.data().options); 33016 $.ajax({ 33017 url: addToCartUrl, 33018 method: 'POST', 33019 data: { 33020 pid: pid, 33021 quantity: quantity, 33022 options: options 33023 }, 33024 dataType: 'json', 33025 success: function success(data) { 33026 productBase.methods.handlePostCartAdd(data); 33027 $('body').trigger('product:afterAddToCart', data); 33028 productBase.methods.miniCartReportingUrl(data.reportingURL, data.error); 33029 $.spinner().stop(); 33030 }, 33031 error: function error() { 33032 $.spinner().stop(); 33033 } 33034 }); 33035}; 33036 33037var cardProductEventClickRemove = function cardProductEventClickRemove(e) { 33038 e.preventDefault(); 33039 $('#wishlistModalDeleteProduct').modal('show', $(this)); 33040}; 33041 33042var cardProductEventClickCheckbox = function cardProductEventClickCheckbox(e) { 33043 e.preventDefault(); 33044 var $this = $(this); 33045 var $cardProduct = $this.parents('.wishlist-card-product'); 33046 33047 if ($cardProduct.data().selected === true) { 33048 $this.removeClass('selected'); 33049 $cardProduct.attr('data-selected', false).data('selected', false); 33050 } else { 33051 $this.addClass('selected'); 33052 $cardProduct.attr('data-selected', true).data('selected', true); 33053 } 33054 33055 $('.wishlist-details').trigger('afterSelectProduct'); 33056}; 33057 33058var addCardProductEventListeners = function addCardProductEventListeners() { 33059 if ($('.wishlist-details').length) { 33060 $('body').on('select', '.wishlist-card-product', module.exports.methods.cardProductEventSelect).on('unselect', '.wishlist-card-product', module.exports.methods.cardProductEventUnselect).on('click', '.wishlist-card-product-toggle', module.exports.methods.cardProductEventClickCheckbox).on('change', '.wishlist-card-product-quantity', module.exports.methods.cardProductEventChangeQuantity).on('click', '.wishlist-card-product-add', module.exports.methods.cardProductEventClickAddCart).on('click', '.wishlist-card-product-remove', module.exports.methods.cardProductEventClickRemove); 33061 } 33062}; 33063/** 33064 * Delete Product Modal 33065 */ 33066 33067 33068var deleteProductModalEventShow = function deleteProductModalEventShow(e) { 33069 $(this).attr({ 33070 'data-list-id': e.relatedTarget.data().listId, 33071 'data-list-item-id': e.relatedTarget.data().listItemId 33072 }).data({ 33073 listId: e.relatedTarget.data().listId, 33074 listItemId: e.relatedTarget.data().listItemId 33075 }); 33076}; 33077 33078var deleteProductModalEventClose = function deleteProductModalEventClose(e) { 33079 $(this).attr({ 33080 'data-list-id': '', 33081 'data-list-item-id': '' 33082 }).data({ 33083 listId: '', 33084 listItemId: '' 33085 }); 33086}; 33087 33088var deleteProductModalEventClickDelete = function deleteProductModalEventClickDelete(e) { 33089 e.preventDefault(); 33090 var $modal = $('#wishlistModalDeleteProduct'); 33091 var detailPageSize = wishlistHelper
33091s.getUrlParam('sz') ? Number(wishlistHelpers.getUrlParam('sz')) : null; 33092 $.spinner().start(); 33093 $.ajax({ 33094 url: $modal.data().url, 33095 method: 'POST', 33096 dataType: 'json', 33097 data: { 33098 listId: $modal.data().listId, 33099 listItemId: $modal.data().listItemId, 33100 detailPageSize: detailPageSize 33101 }, 33102 success: function success(data) { 33103 var $productsHtml = $(data.renderedTemplate); 33104 33105 if (!data.error && $productsHtml.length) { 33106 $('.wishlist-details').trigger('updateProducts', $productsHtml); 33107 } else { 33108 toastHelpers.methods.show('danger', data.message, true); 33109 $.spinner().stop(); 33110 } 33111 33112 $modal.modal('hide'); 33113 }, 33114 error: function error() { 33115 $modal.modal('hide'); 33116 $.spinner().stop(); 33117 } 33118 }); 33119}; 33120 33121var addModalDeleteProductEventListeners = function addModalDeleteProductEventListeners() { 33122 if ($('.wishlist-details').length) { 33123 $('#wishlistModalDeleteProduct').on('click', '.wishlist-modal-delete-product-delete-btn', module.exports.methods.deleteProductModalEventClickDelete).on('show.bs.modal', module.exports.methods.deleteProductModalEventShow).on('hidden.bs.modal', module.exports.methods.deleteProductModalEventClose); 33124 } 33125}; 33126/** 33127 * Quickview Modal 33128 */ 33129 33130 33131var quickviewModalEventClickUpdate = function quickviewModalEventClickUpdate(e) { 33132 e.preventDefault(e); 33133 var $this = $(this); 33134 var $modal = $('#quickViewModal'); 33135 var detailPageSize = wishlistHelpers.getUrlParam('sz') ? Number(wishlistHelpers.getUrlParam('sz')) : null; 33136 var form = { 33137 pid: $this.data().pid, 33138 pidUpdated: $this.data().pidUpdated, 33139 uuid: $this.data().uuid, 33140 listId: $('.wishlist-details').data().listId, 33141 selectedOptionValueIds: productBase.methods.getOptions($modal), 33142 detailPageSize: detailPageSize 33143 }; 33144 $modal.find('.modal-content').spinner().start(); 33145 $.ajax({ 33146 url: $this.data().url, 33147 type: 'POST', 33148 data: form, 33149 dataType: 'json', 33150 success: function success(data) { 33151 var $productsHtml = $(data.renderedTemplate); 33152 33153 if (!data.error && $productsHtml.length) { 33154 $('.wishlist-details').trigger('updateProducts', $productsHtml); 33155 wishlistHelpers.updateUncachedData({ 33156 actionType: 'change', 33157 pid: form.pid, 33158 pidUpdated: form.pidUpdated 33159 }); 33160 } else { 33161 toastHelpers.methods.show('danger', data.message, true); 33162 $modal.find('.modal-content').spinner().stop(); 33163 } 33164 33165 $modal.modal('hide'); 33166 }, 33167 error: function error() { 33168 $modal.modal('hide'); 33169 $modal.find('.modal-content').spinner().stop(); 33170 } 33171 }); 33172}; 33173 33174var quickviewModalEventUpdateFromQuickView = function quickviewModalEventUpdateFromQuickView(e, payload) { 33175 var $updateButton = payload.container.closest('.modal').find('.btn-update-wishlist, .btn-add-wishlist'); 33176 33177 if (!$updateButton.length) { 33178 return; 33179 } 33180 33181 if (payload.data.product.masterId) { 33182 $updateButton.data('pid-updated', payload.data.product.id).attr('data-pid-updated', payload.data.product.id).removeAttr('disabled'); 33183 } else { 33184 $updateButton.data('pid-updated', payload.data.product.id).attr('data-pid-updated', payload.data.product.id); 33185 } 33186}; 33187 33188var addQuickviewModalventListeners = function addQuickviewModalventListeners() { 33189 if ($('.wishlist-details').length) { 33190 $('body').on('click', '.btn-update-wishlist', module.exports.methods.quickviewModalEventClickUpdate); 33191 } 33192 33193 $('body').on('product:afterAttributeSelect', module.exports.methods.quickviewModalEventUpdateFromQuickView); 33194}; 33195/** 33196 * Detail Notes 33197 */ 33198 33199 33200var addDetailNotesEventListeners = function addDetailNotesEventListeners() { 33201 if ($('.wishlist-details').length) { 33202 $('#wishlistDetailNotes').data('currentNoteText', $('#wishlistDetailNotesText').val()); 33203 $('#wishlistDetailNotes').on('click', '.wishlist-detail-notes-toggle', function (event) { 33204 event.preventDefault(); 33205 $('.wishlist-detail-notes-text-show').add($('.wishlist-detail-notes-text-hide')).toggleClass('d-none'); 33206 }).on('blur', '#wishlistDetailNotesText', function () { 33207 var $detailNotes = $('#wishlistDetailNotes'); 33208 var $detailNotesTextarea = $detailNotes.find('#wishlistDetailNotesText'); 33209 var currentNoteText = $detailNotes.data('currentNoteText').trim(); 33210 var updatedNoteText = $detailNotesTextarea.val().trim(); 33211 33212 if (updatedNoteText !== currentNoteText) { 33213 $detailNotes.data('currentNoteText', updatedNoteText); 33214 $.ajax({ 33215 url: $detailNotes.data().url, 33216 method: 'POST', 33217 dataType: 'json', 33218 data: { 33219 wishlistId: $detailNotes.data().wishlistId, 33220 productListDescription: updatedNoteText 33221 }, 33222 success: function success(data) { 33223 if (data.error) { 33224 toastHelpers.methods.show('danger', data.message, true); 33225 } 33226 } 33227 }); 33228 } 33229 }); 33230 } 33231}; 33232 33233module.exports = { 33234 methods: { 33235 unsetSelectedProductsState: unsetSelectedProductsState, 33236 toggleSelectedProductsState: toggleSelectedProductsState,
33237 eventKeyPressEscapeWindow: eventKeyPressEscapeWindow, 33238 eventUpdateProducts: eventUpdateProducts, 33239 eventClickSelectAll: eventClickSelectAll, 33240 eventClickDeselect: eventClickDeselect, 33241 eventClickShare: eventClickShare, 33242 eventClickAddToCart: eventClickAddToCart, 33243 eventShowMore: eventShowMore, 33244 shareListModalEventSubmitCopy: shareListModalEventSubmitCopy, 33245 shareListModalEventClose: shareListModalEventClose, 33246 deleteProductsModalEventClose: deleteProductsModalEventClose, 33247 deleteProductsModalEventClickDelete: deleteProductsModalEventClickDelete, 33248 closeOverlay: closeOverlay, 33249 overlayDeselectAll: overlayDeselectAll, 33250 overlayGetSelectedListAndProducts: overlayGetSelectedListAndProducts, 33251 eventOpenOverlay: eventOpenOverlay, 33252 eventOverlayClickAddToCart: eventOverlayClickAddToCart, 33253 eventOverlayClickShare: eventOverlayClickShare, 33254 eventOverlayClickMove: eventOverlayClickMove, 33255 eventOverlayClickRemove: eventOverlayClickRemove, 33256 cardProductEventSelect: cardProductEventSelect, 33257 cardProductEventUnselect: cardProductEventUnselect, 33258 cardProductEventChangeQuantity: cardProductEventChangeQuantity, 33259 cardProductEventClickAddCart: cardProductEventClickAddCart, 33260 cardProductEventClickRemove: cardProductEventClickRemove, 33261 cardProductEventClickCheckbox: cardProductEventClickCheckbox, 33262 deleteProductModalEventShow: deleteProductModalEventShow, 33263 deleteProductModalEventClose: deleteProductModalEventClose, 33264 deleteProductModalEventClickDelete: deleteProductModalEventClickDelete, 33265 quickviewModalEventClickUpdate: quickviewModalEventClickUpdate, 33266 quickviewModalEventUpdateFromQuickView: quickviewModalEventUpdateFromQuickView 33267 }, 33268 addDetailEventListeners: addDetailEventListeners, 33269 addShareListModalEventListeners: addShareListModalEventListeners, 33270 addDeleteProductsModalEventListeners: addDeleteProductsModalEventListeners, 33271 addOverlayDetailSelectedEventListeners: addOverlayDetailSelectedEventListeners, 33272 addCardProductEventListeners: addCardProductEventListeners, 33273 addModalDeleteProductEventListeners: addModalDeleteProductEventListeners, 33274 addQuickviewModalventListeners: addQuickviewModalventListeners, 33275 addDetailNotesEventListeners: addDetailNotesEventListeners 33276}; 33277 33278/***/ }), 33279
33280/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/landing.js": 33281/*!*********************************************************************************************************!*\ 33282 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/landing.js ***! 33283 \*********************************************************************************************************/ 33284/*! no static exports found */ 33285/***/ (function(module, exports, __webpack_require__) { 33286 33287"use strict"; 33288 33289 33290var toastHelpers = __webpack_require__(/*! core/components/toast */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/toast.js"); 33291 33292var wishlistHelpers = __webpack_require__(/*! core/wishlist/components/helpers */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/helpers.js"); 33293 33294var eventShowMore = function eventShowMore(e) { 33295 e.stopPropagation(); 33296 e.preventDefault(); 33297 var showMoreUrl = $(this).data('url'); 33298 $.spinner().start(); 33299 $.ajax({ 33300 url: showMoreUrl, 33301 data: { 33302 selectedUrl: showMoreUrl 33303 }, 33304 method: 'GET', 33305 success: function success(response) { 33306 var $updatedList = $(response).find('.list-container'); 33307 $('.list-container').replaceWith($updatedList); 33308 window.history.replaceState(null, '', showMoreUrl); 33309 $.spinner().stop(); 33310 }, 33311 error: function error() { 33312 $.spinner().stop(); 33313 } 33314 }); 33315}; 33316 33317var updateModalCreateListNames = function updateModalCreateListNames() { 33318 if ($('.wishlist-landing').length) { 33319 var listNames = $('.wishlist-landing .lists').data('listNames'); 33320 var listNamesArray = []; 33321 33322 if (listNames) { 33323 listNamesArray = listNames.split('|'); 33324 } 33325 33326 $('#wishlistModalCreateList, #wishlistModalEditList').data('listNames', listNamesArray); 33327 } 33328}; 33329 33330var eventUpdateLists = function eventUpdateLists(e, data) { 33331 var $landing = $('.wishlist-landing'); 33332 $.spinner().start(); 33333 $landing.find('.lists').replaceWith(data.$lists); 33334 33335 if (data.$lists.data('listNames') === '') { 33336 $landing.find('.lists').addClass('d-none'); 33337 $landing.find('.wishlist-message-empty').removeClass('d-none'); 33338 } else { 33339 $landing.find('.lists').removeClass('d-none'); 33340 $landing.find('.wishlist-message-empty').addClass('d-none'); 33341 } 33342 33343 module.exports.updateModalCreateListNames(); 33344 $.spinner().stop(); 33345}; 33346 33347var eventOpenEditList = function eventOpenEditList(e, data) { 33348 $('#wishlistModalEditList').attr({ 33349 'data-wishlist-id': data.wishlistId, 33350 'data-wishlist-name': data.wishlistName 33351 }).data({ 33352 wishlistId: data.wishlistId, 33353 wishlistName: data.wishlistName 33354 }).modal('show'); 33355}; 33356 33357var eventOpenDeleteList = function eventOpenDeleteList(e, wishlistId) { 33358 $('#wishlistModalDeleteList').attr('data-wishlist-id', wishlistId).data('wishlistId', wishlistId).modal('show'); 33359}; 33360 33361var eventClickToggle = function eventClickToggle(e) { 33362 $('.list-container .notes').toggleClass('show'); 33363 $('.wishlist-landing-notes-text-show, .wishlist-landing-notes-text-hide').toggleClass('d-none'); 33364}; 33365 33366var addLandingEventListeners = function addLandingEventListeners() { 33367 if ($('.wishlist-landing').length) { 33368 $('.wishlist-landing').on('click', '.show-more-wishlists .btn', module.exports.methods.eventShowMore).on('openDeleteList', module.exports.methods.eventOpenDeleteList).on('openEditList', module.exports.methods.eventOpenEditList).on('updateLists', module.exports.methods.eventUpdateLists).on('click', '.wishlist-landing-notes-toggle', module.exports.methods.eventClickToggle).on('click', '.js-wishlist-card-list-edit-modal', function (event) { 33369 event.preventDefault(); 33370 $('.wishlist-landing').trigger('openEditList', $(event.target).data()); 33371 }); 33372 } 33373}; 33374 33375function createSearchResultsModal() { 33376 if ($('#wishlistSearchResultsModal').length !== 0) { 33377 $('#wishlistSearchResultsModal').remove(); 33378 } 33379 33380 var modalTemplate = "\n <div id=\"wishlistSearchResultsModal\" class=\"modal fade wishlist-search-results-modal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"wishlistSearchResultsModal\">\n <div class=\"modal-dialog modal-scrollbody\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\"></h5>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">
33380\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <ul class=\"wishlist-search-results\"></ul>\n </div>\n </div>\n </div>\n </div>\n "; 33381 $('body').append(modalTemplate); 33382} 33383 33384var searchWishlists = function searchWishlists() { 33385 if ($('.wishlist-landing').length) { 33386 $('body').on('click', '#searchWishlistBtn', function (event) { 33387 event.preventDefault(); 33388 var $target = $(event.target); 33389 var url = $target.data('url'); 33390 var $emailInput = $('#searchWishlistEmail'); 33391 var emailValue = $emailInput.val(); 33392 var emailPattern = $emailInput.attr('pattern'); // form validation 33393 33394 $('#searchForLists').find('.is-invalid').removeClass('is-invalid'); 33395 33396 if (!emailValue) { 33397 $emailInput.addClass('is-invalid').next('.invalid-feedback').text($emailInput.data('missing-msg')); 33398 return false; 33399 } else if (!RegExp(emailPattern).test(emailValue)) { 33400 $emailInput.addClass('is-invalid').next('.invalid-feedback').text($emailInput.data('pattern-mismatch-msg')); 33401 return false; 33402 } 33403 33404 $.ajax({ 33405 url: url, 33406 type: 'POST', 33407 dataType: 'json', 33408 data: $('#searchForLists').serialize(), 33409 success: function success(data) { 33410 if (!data.error) { 33411 // set up modal 33412 module.exports.methods.createSearchResultsModal(); 33413 var $resultsModal = $('#wishlistSearchResultsModal'); 33414 $resultsModal.find('.modal-title').text(data.message); 33415 $resultsModal.modal('show'); // add search results to modal 33416 33417 var $resultsList = $resultsModal.find('.wishlist-search-results'); 33418 33419 if (data.results.hits.length > 0) { 33420 data.results.hits.forEach(function (hit) { 33421 $resultsList.append("\n <li class=\"wishlist-search-results-item\">\n <a class=\"wishlist-search-results-link\" href=\"".concat(hit.url, "\">\n <span class=\"wishlist-search-results-name\">").concat(hit.name, "</span>\n <span class=\"wishlist-search-results-count\">(").concat(hit.count, " ").concat(hit.countLabel, ")</span>\n </a>\n </li>\n ")); 33422 }); 33423 } else { 33424 $resultsList.replaceWith("\n <p class=\"wishlist-no-results\">".concat($target.data('no-results'), "</p>\n ")); 33425 } 33426 } else { 33427 toastHelpers.methods.show('danger', data.message, true); 33428 } 33429 33430 $('[data-toggle="popover"].interactive').popover('hide'); 33431 } 33432 }); 33433 return true; 33434 }); 33435 } 33436}; 33437/** 33438 * Create List Modal 33439 */ 33440 33441 33442var createListModalEventClose = function createListModalEventClose(e) { 33443 $('#wishlistModalCreateList #newProductListName').val('').removeClass('is-invalid').next('.invalid-feedback').text('').removeClass('d-block'); 33444 $('.wishlist-create-list-form .create').removeAttr('disabled'); 33445}; 33446 33447var createListModalEventKeyupName = function createListModalEventKeyupName(e) { 33448 var $this = $(this); 33449 var $invalidFeedback = $this.next('.invalid-feedback'); 33450 var $submitButton = $('.wishlist-create-list-form .create'); 33451 var name = $this.val().replace(/[^A-Za-z0-9]/g, '').toLowerCase(); 33452 var listNames = $('#wishlistModalCreateList').data().listNames; 33453 33454 if (listNames && listNames.indexOf(name) !== -1) { 33455 $submitButton.attr('disabled', 'disabled'); 33456 $invalidFeedback.text($this.data().errorDuplicateName).addClass('d-block'); 33457 $this.addClass('is-invalid'); 33458 } else { 33459 $submitButton.removeAttr('disabled'); 33460 $invalidFeedback.text('').removeClass('d-block'); 33461 $this.removeClass('is-invalid'); 33462 } 33463}; 33464 33465var createListModalEventSubmitCreate = function createListModalEventSubmitCreate(e) { 33466 e.preventDefault(); 33467 var $this = $(this); 33468 var $modal = $('#wishlistModalCreateList'); 33469 var $productListNameElement = $this.find('#newProductListName'); 33470 var wishlistName = $productListNameElement.val(); 33471 var landingPageSize = wishlistHelpers.getUrlParam('sz') ? Number(wishlistHelpers.getUrlParam('sz')) : null; 33472 33473 if (wishlistName && wishlistName !== '') { 33474 $productListNameElement.removeClass('is-invalid'); 33475 $.spinner().start(); 33476 $.ajax({ 33477 url: $this.data().url, 33478 method: 'POST', 33479 dataType: 'json', 33480 data: { 33481 name: wishlistName, 33482 view: 'landing', 33483 landingPageSize: landingPageSize 33484 }, 33485 success: function success(data) { 33486 var $listsHtml = $(data.renderedTemplate).find('.lists'); 33487 33488 if ($listsHtml.length && !data.error) { 33489 $('.wishlist-landing').trigger('updateLists', { 33490 $lists: $listsHtml 33491 }); 33492 } else { 33493 toastHelpers.methods.show('danger', data.message, true); 33494 $.spinner().stop(); 33495 } 33496 33497 $modal.modal('hide'); 33498 $productListNameElement.val(''); 33499 }, 33500 error: function error() { 33501 $modal.modal('hide'); 33502 $productListNameElement.val(''); 33503 $.spinner().stop(); 33504 } 33505 }); 33506 $('#wishlistModalCreateList').modal('hide'); 33507 } else { 33508 $productListNameElement.addClass('is-invalid'); 33509 } 33510}; 33511 33512var addCreateListModalEventListeners = function addCreateListModalEventListeners() { 33513 if ($('.wishlist-landing').length) { 33514 $('#wishlistModalCreateList').on('submit', '.wishlist-create-list-form', module.exports.methods.createListModalEventSubmitCreate).on('keyup', '#newProductListName', module.exports.methods.createListModalEventKeyupName).on('hidden.bs.modal', module.exports.methods.createListModalEventClose); 33515 } 33516}; 33517/** 33518 * Edit List Modal 33519 */ 33520 33521 33522var editListModalEventShow = function editListModalEventShow(e) { 33523 var $this = $(this); 33524 $this.find('#editProductListName').val($this.data().wishlistName); 33525}; 33526 33527var editListModalEventClose = function editListModalEventClose(e) { 33528 $(this).removeAttr('data-wishlist-id').removeAttr('data-wishlist-name').removeData('wishlistId').removeData('wishlistName').find('#editProductListName').val('
33528').removeClass('is-invalid').next('.invalid-feedback').text('').removeClass('d-block'); 33529 $('.wishlist-edit-list-form .save').removeAttr('disabled'); 33530}; 33531 33532var editListModalEventKeyupName = function editListModalEventKeyupName(e) { 33533 var $this = $(this); 33534 var $invalidFeedback = $this.next('.invalid-feedback'); 33535 var $submitButton = $('.wishlist-edit-list-form .save'); 33536 var nameOriginal = $('#wishlistModalEditList').data('wishlistName').replace(/[^A-Za-z0-9]/g, '').toLowerCase(); 33537 var nameNew = $this.val().replace(/[^A-Za-z0-9]/g, '').toLowerCase(); 33538 33539 if (nameOriginal !== nameNew && $('#wishlistModalEditList').data().listNames.indexOf(nameNew) !== -1) { 33540 $submitButton.attr('disabled', 'disabled'); 33541 $invalidFeedback.text($this.data().errorDuplicateName).addClass('d-block'); 33542 $this.addClass('is-invalid'); 33543 } else { 33544 $submitButton.removeAttr('disabled'); 33545 $invalidFeedback.text('').removeClass('d-block'); 33546 $this.removeClass('is-invalid'); 33547 } 33548}; 33549 33550var editListModalEventSubmitForm = function editListModalEventSubmitForm(e) { 33551 e.preventDefault(); 33552 var $modal = $('#wishlistModalEditList'); 33553 var landingPageSize = wishlistHelpers.getUrlParam('sz') ? Number(wishlistHelpers.getUrlParam('sz')) : null; 33554 $modal.find('.modal-content').spinner().start(); 33555 $.ajax({ 33556 url: $modal.data().url, 33557 method: 'POST', 33558 dataType: 'json', 33559 data: { 33560 wishlistId: $modal.data().wishlistId, 33561 wishlistName: $('#editProductListName').val(), 33562 landingPageSize: landingPageSize 33563 }, 33564 success: function success(data) { 33565 var $listsHtml = $(data.renderedTemplate).find('.lists'); 33566 33567 if ($listsHtml.length && !data.error) { 33568 $('.wishlist-landing').trigger('updateLists', { 33569 $lists: $listsHtml 33570 }); 33571 } else { 33572 toastHelpers.methods.show('danger', data.message, true); 33573 $modal.find('.modal-content').spinner().stop(); 33574 } 33575 33576 $modal.modal('hide'); 33577 }, 33578 error: function error() { 33579 $modal.modal('hide'); 33580 $modal.find('.modal-content').spinner().stop(); 33581 } 33582 }); 33583}; 33584 33585var editListModalEventClickDelete = function editListModalEventClickDelete(e) { 33586 e.preventDefault(); 33587 var $modal = $('#wishlistModalEditList'); 33588 var wishlistId = $modal.data().wishlistId; 33589 $modal.modal('hide'); 33590 $('.wishlist-landing').trigger('openDeleteList', wishlistId); 33591}; 33592 33593var editListModalAddEventListeners = function editListModalAddEventListeners() { 33594 if ($('.wishlist-landing').length) { 33595 $('#wishlistModalEditList').on('show.bs.modal', module.exports.methods.editListModalEventShow).on('hidden.bs.modal', module.exports.methods.editListModalEventClose).on('keyup', '#editProductListName', module.exports.methods.editListModalEventKeyupName).on('submit', '.wishlist-edit-list-form', module.exports.methods.editListModalEventSubmitForm).on('click', '.delete', module.exports.methods.editListModalEventClickDelete); 33596 } 33597}; 33598/** 33599 * Delete List Modal 33600 */ 33601 33602 33603var deleteListModalEventClose = function deleteListModalEventClose(e) { 33604 $(this).attr({ 33605 'data-wishlist-id': '' 33606 }).data({ 33607 wishlistId: '' 33608 }); 33609}; 33610 33611var deleteListModalEventClickDelete = function deleteListModalEventClickDelete(e) { 33612 e.preventDefault(); 33613 var $modal = $('#wishlistModalDeleteList'); 33614 var landingPageSize = wishlistHelpers.getUrlParam('sz') ? Number(wishlistHelpers.getUrlParam('sz')) : null; 33615 $modal.find('.modal-content').spinner().start(); 33616 $.ajax({ 33617 url: $modal.data().url, 33618 method: 'POST', 33619 dataType: 'json', 33620 data: { 33621 wishlistId: $modal.data().wishlistId, 33622 landingPageSize: landingPageSize 33623 }, 33624 success: function success(data) { 33625 var $listsHtml = $(data.renderedTemplate).find('.lists'); 33626 33627 if ($listsHtml.length && !data.error) { 33628 $('.wishlist-landing').trigger('updateLists', { 33629 $lists: $listsHtml 33630 }); 33631 } else { 33632 toastHelpers.methods.show('danger', data.message, true); 33633 $modal.find('.modal-content').spinner().stop(); 33634 } 33635 33636 $modal.modal('hide'); 33637 }, 33638 error: function error() { 33639 $modal.find('.modal-content').spinner().stop(); 33640 $modal.modal('hide'); 33641 } 33642 }); 33643}; 33644 33645var deleteListModalAddEventListeners = function deleteListModalAddEventListeners() { 33646 if ($('.wishlist-landing').length) { 33647 $('#wishlistModalDeleteList').on('click', '.wishlist-modal-delete-list-delete-button', module.exports.methods.deleteListModalEventClickDelete).on('hidden.bs.modal', module.exports.methods.deleteListModalEventClose); 33648 } 33649}; 33650 33651module.exports = { 33652 methods: { 33653 eventShowMore: eventShowMore, 33654 eventUpdateLists: eventUpdateLists, 33655 eventOpenEditList: eventOpenEditList, 33656 eventOpenDeleteList: eventOpenDeleteList, 33657 eventClickToggle: eventClickToggle, 33658 createSearchResultsModal: createSearchResultsModal, 33659 createListModalEventClose: createListModalEventClose, 33660 createListModalEventKeyupName: createListModalEventKeyupName, 33661 createListModalEventSubmitCreate: createListModalEventSubmitCreate, 33662 editListModalEventShow: editListModalEventShow, 33663 editListModalEventClose: editListModalEventClose, 33664 editListModalEventKeyupName: editListModalEventKeyupName, 33665 editListModalEventSubmitForm: editListModalEventSubmitForm, 33666 editListModalEventClickDelete: editListModalEventClickDelete, 33667 deleteListModalEventClose: deleteListModalEventClose, 33668 deleteListModalEventClickDelete: deleteListModalEventClickDelete 33669 }, 33670 addLandingEventListeners: addLandingEventListeners, 33671 updateModalCreateListNames: updateModalCreateListNames, 33672 searchWishlists: searchWishlists, 33673 addCreateListModalEventListeners: addCreateListModalEventListeners, 33674 editListModalAddEventListeners: editListModalAddEventListeners, 33675 deleteListModalAddEventListeners: deleteListModalAddEventListeners 33676}; 33677 33678/***/ }), 33679
33680/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/wishlist.js": 33681/*!**********************************************************************************************************!*\ 33682 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/wishlist.js ***! 33683 \**********************************************************************************************************/ 33684/*! no static exports found */ 33685/***/ (function(module, exports, __webpack_require__) { 33686 33687"use strict"; 33688 33689 33690var modal = __webpack_require__(/*! core/components/modal */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/modal.js"); 33691 33692var base = __webpack_require__(/*! core/product/base */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/base.js"); 33693 33694var focusHelper = __webpack_require__(/*! base/components/focus */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/focus.js"); 33695 33696var processInclude = __webpack_require__(/*! base/util */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js"); 33697 33698var editWishlistProductModalSelector = '#editWishlistProductModal'; //TODO RVW: theres some old functions in here from the deprecated wishlist that should be removed 33699 33700/** 33701 * shows wishlist toast message 33702 * @param {string} data - data returned from the server's ajax call 33703 */ 33704 33705function displayMessage(data) { 33706 $.spinner().stop(); 33707 var status = data.success ? 'alert-success' : 'alert-danger'; 33708 33709 if ($('.add-to-wishlist-messages').length === 0) { 33710 $('body').append('<div class="add-to-wishlist-messages toast-messages"></div>'); 33711 } 33712 33713 $('.add-to-wishlist-messages').append('<div class="alert text-center add-to-wishlist-alert text-center ' + status + '">' + data.msg + '</div>'); 33714 setTimeout(function () { 33715 $('.add-to-wishlist-messages').remove(); 33716 }, 5000); 33717} 33718/** 33719 * update window wishlist data 33720 * @param {string} data - data returned from the server's ajax call 33721 */ 33722 33723 33724function updateWishlistUncachedData(data) { 33725 if (data.success) { 33726 var wishlistPIDs = new Set(window.UncachedData.wishlistPIDs); 33727 33728 if (data.add) { 33729 wishlistPIDs.add(data.wishlistpid); 33730 } else { 33731 wishlistPIDs["delete"](data.wishlistpid); 33732 } 33733 33734 window.UncachedData.wishlistPIDs = Array.from(wishlistPIDs); 33735 } 33736} 33737/** 33738 * update clicked links attributes and text 33739 * @param {Object} specificLinks - jQuery object representing selection of wishlist links 33740 */ 33741 33742 33743function updateWishlistLinkData(specificLinks) { 33744 if (!window || !window.UncachedData || !window.UncachedData.wishlistPIDs) { 33745 return; 33746 } 33747 33748 var wishlistLinks = specificLinks || $('a.wishlist'); 33749 33750 if (!wishlistLinks || !wishlistLinks.length) { 33751 return; 33752 } 33753 33754 var wishlistPIDs = new Set(window.UncachedData.wishlistPIDs); 33755 wishlistLinks.each(function (_i, wishlistLink) { 33756 var $wishlistLink = $(wishlistLink); 33757 var wishlistpid = $wishlistLink.attr('data-wishlistpid'); 33758 33759 if (wishlistpid) { 33760 var isInWishlist = wishlistPIDs.has(wishlistpid); 33761 $wishlistLink.attr('data-inwishlist', isInWishlist); 33762 33763 if (isInWishlist) { 33764 $wishlistLink.attr('title', $wishlistLink.attr('data-removemessage')); 33765 33766 if ($wishlistLink.data('includetext') === true) { 33767 $wishlistLink.find('span').html($wishlistLink.attr('data-removemessage')); 33768 } 33769 } else { 33770 $wishlistLink.attr('title', $wishlistLink.attr('data-addmessage')); 33771 33772 if ($wishlistLink.data('includeicon') === true) { 33773 $wishlistLink.find('span').html($wishlistLink.attr('data-addmessage')); 33774 } 33775 } 33776 33777 var icon = $wishlistLink.find('.wishlist-icon'); 33778 33779 if (icon && icon.length) { 33780 $(icon).toggleClass('selected', isInWishlist); 33781 } 33782 } 33783 }); 33784} 33785/** 33786 * update clicked links attributes and text 33787 * @param {string} data - data returned from the server's ajax call 33788 * @param {Object} $targetElement - the element that needs caused the need for a modal change 33789 */ 33790 33791 33792function updateWishlistCartStatus(data, $targetElement) { 33793 if (data.success && data.add && $targetElement.hasClass('move')) { 33794 var itemToMove = { 33795 actionUrl: $targetElement.data('nextaction'), 33796 productID: $targetElement.data('wishlistpid'), 33797 productName: $targetElement.data('productname'), 33798 uuid: $targetElement.data('uuid') 33799 }; // listener prefills #removeProductModal 33800 33801 $('body').trigger('afterRemoveFromCart', itemToMove); 33802 setTimeout(function () { 33803 $('#removeProductModal').modal(); 33804 }, 1000); 33805 } 33806} 33807/** 33808 * update display of items after a cart update (edit item in modal on cart show) 33809 */ 33810 33811 33812function cartUpdate() { 33813 $('body').on('cart:update', function (e, data, uuid) { 33814 var updatedProduct = $('a.wishlist[data-uuid=' + uuid + ']'); 33815 33816 if (updatedProduct.length) { 33817 //TODO RVW is this good enough or do I need to update wishlist icon name/messaging etc... 33818 updatedProduct.attr('data-wishlistpid', data.newProductId); 33819 module.exports.updateWishlistLinkData(); 33820 } 33821 }); 33822} 33823/** 33824 * attach onclick for wishlist icon toggle functionality 33825 */ 33826 33827 33828function toggleWishlist() { 33829 $('body').on('click', 'a.wishlist', function (e) { 33830 var clicked = $(this); 33831 e.preventDefault(); 33832 var url = clicked.attr('href'); 33833 var wishlistpid = clicked.attr('data-wishlistpid'); 33834 33835 if (!url || !wishlistpid) { 33836 return; 33837 } 33838 33839 var core = __webpack_require__(/*! core/product/base */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/base.js"); 33840 33841 $.spinner().start(); 33842 $.ajax({ 33843 url: url, 33844 type: 'post', 33845 dataType: 'json', 33846 data: { 33847 wishlistpid: wishlistpid, 33848 selectedOptionValueIds: core.methods.getOptions(clicked.parents('.product-detail')), 33849 isCart: clicked.hasClass('move') 33850 }, 33851 success: function success(data) { 33852 module.exports.methods.displayMessage(data); 33853 module.exports.methods.updateWishlistUncachedData(data); 33854 module.exports.updateWishlistLinkData(); 33855 module.exports.methods.updateWishlistCartStatus(data, clicked); 33856 }, 33857 error: function error(err) { 33858 module.exports.methods.displayMessage(err); 33859 } 33860 }); 33861 }); 33862} 33863/** 33864 * make link button work on wishlist social icons to create a sharing url 33865 */ 33866 33867 33868function copyWishlistLink() { 33869 $('body').on('click', '.wl-social .share-link', function () { 33870 var $temp = $('<input>'); 33871 $('body').append($temp); 33872 $temp.val($('#wlShareUrl').val()).select(); 33873 document.execCommand('copy'); 33874 $temp.remove(); 33875 $('.copy-link-message').removeClass('d-none'); 33876 setTimeout(function () { 33877 $('.copy-link-message').addClass('d-none'); 33878 }, 3000); 33879 }); 33880} 33881/** 33882 * attach on quickview:ready listener so that icon is correct in quickview on load 33883 */ 33884 33885
33886function updateQuickView(e) { 33887 $('body').on('quickview:ready', function () { 33888 module.exports.updateWishlistLinkData(); 33889 }); 33890} 33891/** 33892 * attach on click on wishlist-show edit button to launch modal 33893 */ 33894 33895 33896function viewProductViaEdit() { 33897 $('body').on('click', '.edit-add-to-wishlist .edit', function (e) { 33898 e.preventDefault(); 33899 var editProductUrl = $(this).attr('href'); 33900 $(e.target).trigger('editwishlistproduct:show'); 33901 modal.getModalHtmlElement('editWishlistProductModal', 'quick-view-dialog'); 33902 fillModalElement(editProductUrl); 33903 }); 33904} 33905/** 33906 * replaces the content in the modal window for product variation to be edited. 33907 * @param {string} editProductUrl - url to be used to retrieve a new product model 33908 */ 33909//TODO RVW unified in some way with quickView.js fillModalElement function? 33910 33911 33912function fillModalElement(editProductUrl) { 33913 var $modal = $(editWishlistProductModalSelector); 33914 $modal.find('.modal-body').spinner().start(); 33915 $.ajax({ 33916 url: editProductUrl, 33917 method: 'GET', 33918 dataType: 'json', 33919 success: function success(data) { 33920 var parsedHtml = modal.parseHtml(data.renderedTemplate); 33921 $modal.find('.modal-body').empty(); 33922 $modal.find('.modal-body').html(parsedHtml.body); 33923 $modal.find('.modal-footer').html(parsedHtml.footer); 33924 $modal.find('.modal-header .close .sr-only').text(data.closeButtonText); 33925 $modal.find('.enter-message').text(data.enterDialogMessage); 33926 $modal.find(editWishlistProductModalSelector).modal('show'); 33927 $('body').trigger('editwishlistproduct:ready', $(editWishlistProductModalSelector)); 33928 $.spinner().stop(); 33929 }, 33930 error: function error() { 33931 $.spinner().stop(); 33932 } 33933 }); 33934} 33935/** 33936 * handles opening wishlist modal 33937 */ 33938 33939 33940function focusEditWishlistProductModal() { 33941 $('body').on('shown.bs.modal', editWishlistProductModalSelector, function () { 33942 $(editWishlistProductModalSelector).siblings().attr('aria-hidden', 'true'); 33943 $(editWishlistProductModalSelector + ' .close').focus(); 33944 }); 33945} 33946/** 33947 * handles closing wishlist modal 33948 */ 33949 33950 33951function onClosingEditWishlistProductModal() { 33952 $('body').on('hidden.bs.modal', editWishlistProductModalSelector, function () { 33953 $(editWishlistProductModalSelector).remove(); 33954 $('.modal-backdrop').remove(); 33955 $('body').removeClass('modal-open'); 33956 $(editWishlistProductModalSelector).siblings().attr('aria-hidden', 'false'); 33957 }); 33958} 33959/** 33960 * handles tabbing on wishlist modal 33961 */ 33962 33963 33964function trapEditWishlistProductModalFocus() { 33965 $('body').on('keydown', editWishlistProductModalSelector, function (e) { 33966 var focusParams = { 33967 event: e, 33968 containerSelector: editWishlistProductModalSelector, 33969 firstElementSelector: '.close', 33970 lastElementSelector: '.btn-update-wishlist', 33971 nextToLastElementSelector: '.select-size' 33972 }; 33973 focusHelper.setTabNextFocus(focusParams); 33974 }); 33975} 33976/** 33977 * renders the list up to a given page number 33978 * @param {number} pageNumber - current page number 33979 * @param {boolean} spinner - if the spinner has already started 33980 * @param {string} focusElementSelector - selector of the element to focus on 33981 */ 33982 33983 33984function renderNewPageOfItems(pageNumber, spinner, focusElementSelector) { 33985 var publicView = $('.wishlist-item-cards-data').data('public-view'); 33986 var listUUID = $('.wishlist-item-cards-data').data('uuid'); 33987 var url = $('.wishlist-item-cards-data').data('href'); 33988 33989 if (spinner) { 33990 $.spinner().start(); 33991 } 33992 33993 var scrollPosition = document.documentElement.scrollTop; 33994 var newPageNumber = pageNumber; 33995 $.ajax({ 33996 url: url, 33997 method: 'get', 33998 data: { 33999 pageNumber: ++newPageNumber, 34000 publicView: publicView, 34001 id: listUUID 34002 } 34003 }).done(function (data) { 34004 $('.wishlist-item-cards').empty(); 34005 $('body .wishlist-item-cards').parent().html(data); 34006 base.enableQuantitySteppers(); 34007 34008 if (focusElementSelector) { 34009 $(focusElementSelector).focus(); 34010 } else { 34011 document.documentElement.scrollTop = scrollPosition; 34012 } 34013 }).fail(function () { 34014 $('.more-wl-items').remove(); 34015 }); 34016 $.spinner().stop(); 34017} 34018/** 34019 * handles add to cart on click for add to cart button on wishlist-show and others 34020 */ 34021 34022 34023function addToCartFromWishlist() { 34024 $('body').on('click', '.add-to-cart', function () { 34025 var pid; 34026 var addToCartUrl; 34027 var pidsQty; 34028 $('body').trigger('product:beforeAddToCart', this); 34029 pid = $(this).data('pid'); 34030 addToCartUrl = $(this).data('url'); 34031 pidsQty = parseInt($(this).closest('.product-info').find('.quantity').val(), 10); 34032 var form = { 34033 pid: pid, 34034 quantity: pidsQty 34035 }; 34036 34037 if ($(this).data('option')) { 34038 form.options = JSON.stringify($(this).data('option')); 34039 } 34040 34041 $(this).trigger('updateAddToCartFormData', form); 34042 34043 if (addToCartUrl) { 34044 $.ajax({ 34045 url: addToCartUrl, 34046 method: 'POST', 34047 data: form, 34048 success: function success(data) { 34049 module.exports.methods.handlePostCartAdd(data); 34050 $('body').trigger('product:afterAddToCart', data); 34051 $.spinner().stop(); 34052 base.methods.miniCartReportingUrl(data.reportingURL, data.error); 34053 }, 34054 error: function error() { 34055 $.spinner().stop(); 34056 } 34057 }); 34058 } 34059 }); 34060} 34061/** 34062 * Updates the Mini-Cart quantity value after the customer has pressed the "Add to Cart" button 34063 * @param {string} response - ajax response from clicking the add to cart button 34064 */ 34065 34066 34067function handlePostCartAdd(response) { 34068 $('.minicart').trigger('count:update', response); 34069 var messageType = response.error ? 'alert-danger' : 'alert-success'; 34070 34071 if ($('.add-to-cart-messages').length === 0) { 34072 $('body').append('<div class="add-to-cart-messages"></div>'); 34073 } 34074 34075 $('.add-to-cart-messages').append('<div class="alert ' + messageType + ' add-to-basket-alert text-center" role="alert">
34075' + response.message + '</div>'); 34076 setTimeout(function () { 34077 $('.add-to-basket-alert').remove(); 34078 }, 5000); 34079} 34080/** 34081 * attaches on click for checkbox to toggle public status for whole list on wishslist show 34082 */ 34083 34084 34085function toggleWishlistStatus() { 34086 $('#isPublicList').on('click', function () { 34087 var listID = $('#isPublicList').data('id'); 34088 module.exports.methods.updatePublicStatus(listID, null, null); 34089 }); 34090} 34091/** 34092 * attaches on click for checkbox to toggle public status for individual items on wishlist show 34093 */ 34094 34095 34096function toggleWishlistItemStatus() { 34097 $('body').on('click', '.wishlist-item-checkbox', function () { 34098 var itemID = $(this).closest('.wishlist-hide').find('.custom-control-input').data('id'); 34099 var el = $(this).siblings('input'); 34100 34101 var resetCheckBox = function resetCheckBox() { 34102 return el.prop('checked') ? el.prop('checked', false) : el.prop('checked', true); 34103 }; 34104 34105 module.exports.methods.updatePublicStatus(null, itemID, resetCheckBox); 34106 }); 34107} 34108/** 34109 * attaches on click for checkbox to toggle disabled status on button for list 34110 */ 34111 34112 34113function toggleDisabled(btn) { 34114 //btn.attr('disabled', (true ? false : true)) 34115 btn[btn.attr('disabled') ? 'removeAttr' : 'attr']('disabled', true); 34116} 34117/** 34118 * toggles the public / private status of the item or wishlist item 34119 * @param {string} listID - the order model 34120 * @param {string} itemID - the customer model 34121 * @param {Object} callback - function to run if the ajax call returns with an 34122 * error so that the checkbox can be reset to it's original state 34123 */ 34124 34125 34126function updatePublicStatus(listID, itemID, callback) { 34127 var url = $('#isPublicList').data('url'); 34128 $.spinner().start(); 34129 $.ajax({ 34130 url: url, 34131 type: 'post', 34132 dataType: 'json', 34133 data: { 34134 listID: listID, 34135 itemID: itemID 34136 }, 34137 success: function success(data) { 34138 if (callback && !data.success) { 34139 callback(); 34140 } 34141 34142 if ($('.wishlist-details-share').length) { 34143 toggleDisabled($('.wishlist-details-share')); 34144 } 34145 34146 module.exports.methods.displayMessage(data, null); 34147 }, 34148 error: function error(err) { 34149 if (callback) { 34150 callback(); 34151 } 34152 34153 module.exports.methods.displayMessage(err); 34154 } 34155 }); 34156} 34157/** 34158 * attaches on click for clicking the "x" from wishlist show or account show 34159 */ 34160 34161 34162function removeFromWishlist() { 34163 $('body').on('click', '.remove-from-wishlist', function (e) { 34164 e.preventDefault(); 34165 var url = $(this).data('url'); 34166 var elMyAccount = $('.account-page').length; // If user is in my account page, call Wishlist-RemoveProductAccount() end point and replace html with response 34167 34168 if (elMyAccount > 0) { 34169 $('.wishlist-account-card').spinner().start(); 34170 $.ajax({ 34171 url: url, 34172 type: 'get', 34173 dataType: 'html', 34174 data: {}, 34175 success: function success(html) { 34176 $('.wishlist-account-card>.order-card').remove(); 34177 $('.wishlist-account-card').append(html); 34178 $('.wishlist-account-card').spinner().stop(); 34179 }, 34180 error: function error() { 34181 var $elToAppend = $('.wishlist-account-card'); 34182 $elToAppend.spinner().stop(); 34183 var msg = $elToAppend.data('error-msg'); 34184 module.exports.methods.displayMessage($elToAppend, msg); 34185 } 34186 }); // else user is in wishlist landing page, call Wishlist-RemoveProduct() end point and re-render container page 34187 } else { 34188 $.spinner().start(); 34189 $.ajax({ 34190 url: url, 34191 type: 'get', 34192 dataType: 'json', 34193 data: {}, 34194 success: function success() { 34195 var pageNumber = $('.wishlist-item-cards-data').data('page-number') - 1; 34196 module.exports.methods.renderNewPageOfItems(pageNumber, false); 34197 }, 34198 error: function error() { 34199 $.spinner().stop(); 34200 var $elToAppendWL = $('.wishlist-item-cards'); 34201 var msg = $elToAppendWL.data('error-msg'); 34202 module.exports.methods.displayMessage($elToAppendWL, msg); 34203 } 34204 }); 34205 } 34206 }); 34207} 34208 34209function moreWLItems() { 34210 $('body').on('click', '.more-wl-items', function () { 34211 var pageNumber = $('.wishlist-item-cards-data').data('page-number'); 34212 module.exports.methods.renderNewPageOfItems(pageNumber, true); 34213 }); 34214} 34215 34216module.exports = { 34217 methods: { 34218 updateWishlistUncachedData: updateWishlistUncachedData, 34219 updateWishlistCartStatus: updateWishlistCartStatus, 34220 displayMessage: displayMessage, 34221 renderNewPageOfItems: renderNewPageOfItems, 34222 handlePostCartAdd: handlePostCartAdd, 34223 updatePublicStatus: updatePublicStatus 34224 }, 34225 cartUpdate: cartUpdate, 34226 toggleWishlist: toggleWishlist, 34227 updateWishlistLinkData: updateWishlistLinkData, 34228 copyWishlistLink: copyWishlistLink,
34229 updateQuickView: updateQuickView, 34230 viewProductViaEdit: viewProductViaEdit, 34231 focusEditWishlistProductModal: focusEditWishlistProductModal, 34232 onClosingEditWishlistProductModal: onClosingEditWishlistProductModal, 34233 trapEditWishlistProductModalFocus: trapEditWishlistProductModalFocus, 34234 addToCartFromWishlist: addToCartFromWishlist, 34235 toggleWishlistStatus: toggleWishlistStatus, 34236 toggleWishlistItemStatus: toggleWishlistItemStatus, 34237 removeFromWishlist: removeFromWishlist, 34238 moreWLItems: moreWLItems, 34239 baseFiles: { 34240 wishlistLanding: __webpack_require__(/*! core/wishlist/landing */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/landing.js"), 34241 wishlistDetail: __webpack_require__(/*! core/wishlist/detail */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/detail.js"), 34242 wishlistShowLists: __webpack_require__(/*! core/wishlist/components/modalShowLists */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/modalShowLists.js"), 34243 wishlistToggleProduct: __webpack_require__(/*! core/wishlist/components/toggleProduct */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/toggleProduct.js"), 34244 wishlistToast: __webpack_require__(/*! core/wishlist/components/toast */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/wishlist/components/toast.js") 34245 } 34246}; 34247$(function () { 34248 Object.keys(module.exports.baseFiles).forEach(function (key) { 34249 processInclude(module.exports.baseFiles[key]); 34250 }); 34251}); 34252 34253/***/ }), 34254
34255/***/ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/scripts/constants/SiteConstants.js": 34256/*!******************************************************************************************************!*\ 34257 !*** ../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/scripts/constants/SiteConstants.js ***! 34258 \******************************************************************************************************/ 34259/*! no static exports found */ 34260/***/ (function(module, exports, __webpack_require__) { 34261 34262"use strict"; 34263 // These values should always match the variables set in _variables.scss and the contentImageBreakpoints site pref 34264 34265module.exports.BreakpointSizes = { 34266 'sm': 544, 34267 'md': 769, 34268 'lg': 1024, 34269 'xl': 1440 34270}; 34271module.exports.TransitionSpeed = 200; 34272module.exports.ComponentAnimationDelay = 0; 34273module.exports.Spacer = 16; 34274module.exports.placeholderImagePaths = { 34275 'thumbnail': '/images/gray.png', 34276 'imageMissing': '/images/placeholder.png' 34277}; 34278module.exports.defaultMapMarker = { 34279 'color': 'white', 34280 'backgroundImage': '/images/icons/map-marker-default.svg' 34281}; 34282module.exports.defaultStoreType = { 34283 'id': 0, 34284 'displayValue': 'Retail', 34285 'value': 'retail' 34286}; // These are used in cartridge/client/default/js/components/search.js 34287 34288module.exports.UP_KEY = 38; 34289module.exports.DOWN_KEY = 40; 34290module.exports.DIRECTION_DOWN = 1; 34291module.exports.DIRECTION_UP = -1; 34292 34293/***/ }), 34294
vendor: 3,714 bytes, lines 34295-34423
34295/***/ "../rvw_autobahn_core/node_modules/ev-emitter/ev-emitter.js": 34296/*!******************************************************************!*\ 34297 !*** ../rvw_autobahn_core/node_modules/ev-emitter/ev-emitter.js ***! 34298 \******************************************************************/ 34299/*! no static exports found */ 34300/***/ (function(module, exports, __webpack_require__) { 34301 34302var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 34303 34304/** 34305 * EvEmitter v1.1.0 34306 * Lil' event emitter 34307 * MIT License 34308 */ 34309 34310/* jshint unused: true, undef: true, strict: true */ 34311(function (global, factory) { 34312 // universal module definition 34313 34314 /* jshint strict: false */ 34315 34316 /* globals define, module, window */ 34317 if (true) { 34318 // AMD - RequireJS 34319 !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 34320 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 34321 (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : 34322 __WEBPACK_AMD_DEFINE_FACTORY__), 34323 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 34324 } else {} 34325})(typeof window != 'undefined' ? window : this, function () { 34326 "use strict"; 34327 34328 function EvEmitter() {} 34329 34330 var proto = EvEmitter.prototype; 34331 34332 proto.on = function (eventName, listener) { 34333 if (!eventName || !listener) { 34334 return; 34335 } // set events hash 34336 34337 34338 var events = this._events = this._events || {}; // set listeners array 34339 34340 var listeners = events[eventName] = events[eventName] || []; // only add once 34341 34342 if (listeners.indexOf(listener) == -1) { 34343 listeners.push(listener); 34344 } 34345 34346 return this; 34347 }; 34348 34349 proto.once = function (eventName, listener) { 34350 if (!eventName || !listener) { 34351 return; 34352 } // add event 34353 34354 34355 this.on(eventName, listener); // set once flag 34356 // set onceEvents hash 34357 34358 var onceEvents = this._onceEvents = this._onceEvents || {}; // set onceListeners object 34359 34360 var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {}; // set flag 34361 34362 onceListeners[listener] = true; 34363 return this; 34364 }; 34365 34366 proto.off = function (eventName, listener) { 34367 var listeners = this._events && this._events[eventName]; 34368 34369 if (!listeners || !listeners.length) { 34370 return; 34371 } 34372 34373 var index = listeners.indexOf(listener); 34374 34375 if (index != -1) { 34376 listeners.splice(index, 1); 34377 } 34378 34379 return this; 34380 }; 34381 34382 proto.emitEvent = function (eventName, args) { 34383 var listeners = this._events && this._events[eventName]; 34384 34385 if (!listeners || !listeners.length) { 34386 return; 34387 } // copy over to avoid interference if .off() in listener 34388 34389 34390 listeners = listeners.slice(0); 34391 args = args || []; // once stuff 34392 34393 var onceListeners = this._onceEvents && this._onceEvents[eventName]; 34394 34395 for (var i = 0; i < listeners.length; i++) { 34396 var listener = listeners[i]; 34397 var isOnce = onceListeners && onceListeners[listener]; 34398 34399 if (isOnce) { 34400 // remove listener 34401 // remove before trigger to prevent recursion 34402 this.off(eventName, listener); // unset once flag 34403 34404 delete onceListeners[listener]; 34405 } // trigger listener 34406 34407 34408 listener.apply(this, args); 34409 } 34410 34411 return this; 34412 }; 34413 34414 proto.allOff = function () { 34415 delete this._events; 34416 delete this._onceEvents; 34417 }; 34418 34419 return EvEmitter; 34420}); 34421 34422/***/ }), 34423
vendor: 4,892 bytes, lines 34424-34514
34424/***/ "../rvw_autobahn_core/node_modules/focus-visible/dist/focus-visible.min.js": 34425/*!*********************************************************************************!*\ 34426 !*** ../rvw_autobahn_core/node_modules/focus-visible/dist/focus-visible.min.js ***! 34427 \*********************************************************************************/ 34428/*! no static exports found */ 34429/***/ (function(module, exports, __webpack_require__) { 34430 34431var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 34432 34433!function (e, t) { 34434 "object" == ( false ? undefined : _typeof(exports)) && "undefined" != typeof module ? t() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (t), 34435 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 34436 (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : 34437 __WEBPACK_AMD_DEFINE_FACTORY__), 34438 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 34439}(0, function () { 34440 "use strict"; 34441 34442 function e(e) { 34443 var t = !0, 34444 n = !1, 34445 o = null, 34446 d = { 34447 text: !0, 34448 search: !0, 34449 url: !0, 34450 tel: !0, 34451 email: !0, 34452 password: !0, 34453 number: !0, 34454 date: !0, 34455 month: !0, 34456 week: !0, 34457 time: !0, 34458 datetime: !0, 34459 "datetime-local": !0 34460 }; 34461 34462 function i(e) { 34463 return !!(e && e !== document && "HTML" !== e.nodeName && "BODY" !== e.nodeName && "classList" in e && "contains" in e.classList); 34464 } 34465 34466 function s(e) { 34467 e.classList.contains("focus-visible") || (e.classList.add("focus-visible"), e.setAttribute("data-focus-visible-added", "")); 34468 } 34469 34470 function u(e) { 34471 t = !1; 34472 } 34473 34474 function a() { 34475 document.addEventListener("mousemove", c), document.addEventListener("mousedown", c), document.addEventListener("mouseup", c), document.addEventListener("pointermove", c), document.addEventListener("pointerdown", c), document.addEventListener("pointerup", c), document.addEventListener("touchmove", c), document.addEventListener("touchstart", c), document.addEventListener("touchend", c); 34476 } 34477 34478 function c(e) { 34479 e.target.nodeName && "html" === e.target.nodeName.toLowerCase() || (t = !1, document.removeEventListener("mousemove", c), document.removeEventListener("mousedown", c), document.removeEventListener("mouseup", c), document.removeEventListener("pointermove", c), document.removeEventListener("pointerdown", c), document.removeEventListener("pointerup", c), document.removeEventListener("touchmove", c), document.removeEventListener("touchstart", c), document.removeEventListener("touchend", c)); 34480 } 34481 34482 document.addEventListener("keydown", function (n) { 34483 n.metaKey || n.altKey || n.ctrlKey || (i(e.activeElement) && s(e.activeElement), t = !0); 34484 }, !0), document.addEventListener("mousedown", u, !0), document.addEventListener("pointerdown", u, !0), document.addEventListener("touchstart", u, !0), document.addEventListener("visibilitychange", function (e) { 34485 "hidden" === document.visibilityState && (n && (t = !0), a()); 34486 }, !0), a(), e.addEventListener("focus", function (e) { 34487 var n, o, u; 34488 i(e.target) && (t || (n = e.target, o = n.type, "INPUT" === (u = n.tagName) && d[o] && !n.readOnly || "TEXTAREA" === u && !n.readOnly || n.isContentEditable)) && s(e.target); 34489 }, !0), e.addEventListener("blur", function (e) { 34490 var t; 34491 i(e.target) && (e.target.classList.contains("focus-visible") || e.target.hasAttribute("data-focus-visible-added")) && (n = !0, window.clearTimeout(o), o = window.setTimeout(function () { 34492 n = !1; 34493 }, 100), (t = e.target).hasAttribute("data-focus-visible-added") && (t.classList.remove("focus-visible"), t.removeAttribute("data-focus-visible-added"))); 34494 }, !0), e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host ? e.host.setAttribute("data-js-focus-visible", "") : e.nodeType === Node.DOCUMENT_NODE && (document.documentElement.classList.add("js-focus-visible"), document.documentElement.setAttribute("data-js-focus-visible", "")); 34495 } 34496 34497 if ("undefined" != typeof window && "undefined" != typeof document) { 34498 var t; 34499 window.applyFocusVisiblePolyfill = e; 34500 34501 try { 34502 t = new CustomEvent("focus-visible-polyfill-ready"); 34503 } catch (e) { 34504 (t = document.createEvent("CustomEvent")).initCustomEvent("focus-visible-polyfill-ready", !1, !1, {}); 34505 } 34506 34507 window.dispatchEvent(t); 34508 } 34509 34510 "undefined" != typeof document && e(document); 34511}); 34512 34513/***/ }), 34514
vendor: 986 bytes, lines 34515-34542
34515/***/ "../rvw_autobahn_core/node_modules/global/document.js": 34516/*!************************************************************!*\ 34517 !*** ../rvw_autobahn_core/node_modules/global/document.js ***! 34518 \************************************************************/ 34519/*! no static exports found */ 34520/***/ (function(module, exports, __webpack_require__) { 34521 34522/* WEBPACK VAR INJECTION */(function(global) {var topLevel = typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : {}; 34523 34524var minDoc = __webpack_require__(/*! min-document */ 4); 34525 34526var doccy; 34527 34528if (typeof document !== 'undefined') { 34529 doccy = document; 34530} else { 34531 doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4']; 34532 34533 if (!doccy) { 34534 doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc; 34535 } 34536} 34537 34538module.exports = doccy; 34539/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../sfra-webpack-builder/node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 34540 34541/***/ }), 34542
vendor: 806 bytes, lines 34543-34566
34543/***/ "../rvw_autobahn_core/node_modules/global/window.js": 34544/*!**********************************************************!*\ 34545 !*** ../rvw_autobahn_core/node_modules/global/window.js ***! 34546 \**********************************************************/ 34547/*! no static exports found */ 34548/***/ (function(module, exports, __webpack_require__) { 34549 34550/* WEBPACK VAR INJECTION */(function(global) {var win; 34551 34552if (typeof window !== "undefined") { 34553 win = window; 34554} else if (typeof global !== "undefined") { 34555 win = global; 34556} else if (typeof self !== "undefined") { 34557 win = self; 34558} else { 34559 win = {}; 34560} 34561 34562module.exports = win; 34563/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../sfra-webpack-builder/node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 34564 34565/***/ }), 34566
vendor: 11,086 bytes, lines 34567-34950
34567/***/ "../rvw_autobahn_core/node_modules/imagesloaded/imagesloaded.js": 34568/*!**********************************************************************!*\ 34569 !*** ../rvw_autobahn_core/node_modules/imagesloaded/imagesloaded.js ***! 34570 \**********************************************************************/ 34571/*! no static exports found */ 34572/***/ (function(module, exports, __webpack_require__) { 34573 34574var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 34575 34576/*! 34577 * imagesLoaded v4.1.4 34578 * JavaScript is all like "You images are done yet or what?" 34579 * MIT License 34580 */ 34581(function (window, factory) { 34582 'use strict'; // universal module definition 34583 34584 /*global define: false, module: false, require: false */ 34585 34586 if (true) { 34587 // AMD 34588 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ev-emitter/ev-emitter */ "../rvw_autobahn_core/node_modules/ev-emitter/ev-emitter.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (EvEmitter) { 34589 return factory(window, EvEmitter); 34590 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 34591 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 34592 } else {} 34593})(typeof window !== 'undefined' ? window : this, // -------------------------- factory -------------------------- // 34594function factory(window, EvEmitter) { 34595 'use strict'; 34596 34597 var $ = window.jQuery; 34598 var console = window.console; // -------------------------- helpers -------------------------- // 34599 // extend objects 34600 34601 function extend(a, b) { 34602 for (var prop in b) { 34603 a[prop] = b[prop]; 34604 } 34605 34606 return a; 34607 } 34608 34609 var arraySlice = Array.prototype.slice; // turn element or nodeList into an array 34610 34611 function makeArray(obj) { 34612 if (Array.isArray(obj)) { 34613 // use object if already an array 34614 return obj; 34615 } 34616 34617 var isArrayLike = _typeof(obj) == 'object' && typeof obj.length == 'number'; 34618 34619 if (isArrayLike) { 34620 // convert nodeList to array 34621 return arraySlice.call(obj); 34622 } // array of single index 34623 34624 34625 return [obj]; 34626 } // -------------------------- imagesLoaded -------------------------- // 34627 34628 /** 34629 * @param {Array, Element, NodeList, String} elem 34630 * @param {Object or Function} options - if function, use as callback 34631 * @param {Function} onAlways - callback function 34632 */ 34633 34634 34635 function ImagesLoaded(elem, options, onAlways) { 34636 // coerce ImagesLoaded() without new, to be new ImagesLoaded() 34637 if (!(this instanceof ImagesLoaded)) { 34638 return new ImagesLoaded(elem, options, onAlways); 34639 } // use elem as selector string 34640 34641 34642 var queryElem = elem; 34643 34644 if (typeof elem == 'string') { 34645 queryElem = document.querySelectorAll(elem); 34646 } // bail if bad element 34647 34648 34649 if (!queryElem) { 34650 console.error('Bad element for imagesLoaded ' + (queryElem || elem)); 34651 return; 34652 } 34653 34654 this.elements = makeArray(queryElem); 34655 this.options = extend({}, this.options); // shift arguments if no options set 34656 34657 if (typeof options == 'function') { 34658 onAlways = options; 34659 } else { 34660 extend(this.options, options); 34661 } 34662 34663 if (onAlways) { 34664 this.on('always', onAlways); 34665 } 34666 34667 this.getImages(); 34668 34669 if ($) { 34670 // add jQuery Deferred object 34671 this.jqDeferred = new $.Deferred(); 34672 } // HACK check async to allow time to bind listeners 34673 34674 34675 setTimeout(this.check.bind(this)); 34676 } 34677 34678 ImagesLoaded.prototype = Object.create(EvEmitter.prototype); 34679 ImagesLoaded.prototype.options = {}; 34680 34681 ImagesLoaded.prototype.getImages = function () { 34682 this.images = []; // filter & find items if we have an item selector 34683 34684 this.elements.forEach(this.addElementImages, this); 34685 }; 34686 /** 34687 * @param {Node} element 34688 */ 34689 34690 34691 ImagesLoaded.prototype.addElementImages = function (elem) { 34692 // filter siblings 34693 if (elem.nodeName == 'IMG') { 34694 this.addImage(elem); 34695 } // get background image on element 34696 34697 34698 if (this.options.background === true) { 34699 this.addElementBackgroundImages(elem); 34700 } // find children 34701 // no non-element nodes, #143 34702 34703 34704 var nodeType = elem.nodeType; 34705 34706 if (!nodeType || !elementNodeTypes[nodeType]) { 34707 return; 34708 } 34709 34710 var childImgs = elem.querySelectorAll('img'); // concat childElems to filterFound array 34711 34712 for (var i = 0; i < childImgs.length; i++) { 34713 var img = childImgs[i]; 34714 this.addImage(img); 34715 } // get child background images 34716 34717 34718 if (typeof this.options.background == 'string') { 34719 var children = elem.querySelectorAll(this.options.background); 34720 34721 for (i = 0; i < children.length; i++) { 34722 var child = children[i]; 34723 this.addElementBackgroundImages(child); 34724 } 34725 } 34726 }; 34727 34728 var elementNodeTypes = { 34729 1: true, 34730 9: true, 34731 11: true 34732 }; 34733 34734 ImagesLoaded.prototype.addElementBackgroundImages = function (elem) { 34735 var style = getComputedStyle(elem); 34736 34737 if (!style) { 34738 // Firefox returns null if in a hidden iframe https://bugzil.la/548397 34739 return; 34740 } // get url inside url("...") 34741 34742 34743 var reURL = /url\((['"])?(.*?)\1\)/gi; 34744 var matches = reURL.exec(style.backgroundImage); 34745 34746 while (matches !== null) { 34747 var url = matches && matches[2]; 34748 34749 if (url) { 34750 this.addBackground(url, elem); 34751 } 34752 34753 matches = reURL.exec(style.backgroundImage); 34754 } 34755 }; 34756 /** 34757 * @param {Image} img 34758 */ 34759 34760 34761 ImagesLoaded.prototype.addImage = function (img) { 34762 var loadingImage = new LoadingImage(img); 34763 this.images.push(loadingImage); 34764 }; 34765 34766 ImagesLoaded.prototype.addBackground = function (url, elem) { 34767 var background = new Background(url, elem); 34768 this.images.push(background); 34769 }; 34770 34771 ImagesLoaded.prototype.check = function () { 34772 var _this = this; 34773 34774 this.progressedCount = 0; 34775 this.hasAnyBroken = false; // complete if no images 34776 34777 if (!this.images.length) { 34778 this.complete(); 34779 return; 34780 } 34781 34782 function onProgress(image, elem, message) { 34783 // HACK - Chrome triggers event before object properties have changed. #83 34784 setTimeout(function () { 34785 _this.progress(image, elem, message); 34786 }); 34787 } 34788 34789 this.images.forEach(function (loadingImage) { 34790 loadingImage.once('progress', onProgress); 34791 loadingImage.check(); 34792 }); 34793 }; 34794 34795 ImagesLoaded.prototype.progress = function (image, elem, message) { 34796 this.progressedCount++; 34797 this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; // progress event 34798 34799 this.emitEvent('progress', [this, image, elem]); 34800 34801 if (this.jqDeferred && this.jqDeferred.notify) { 34802 this.jqDeferred.notify(this, image); 34803 } // check if completed 34804 34805 34806 if (this.progressedCount == this.images.length) { 34807 this.complete(); 34808 } 34809 34810 if (this.options.debug && console) { 34811 console.log('progress: ' + message, image, elem); 34812 } 34813 }; 34814 34815 ImagesLoaded.prototype.complete = function () { 34816 var eventName = this.hasAnyBroken ? 'fail' : 'done'; 34817 this.isComplete = true; 34818 this.emitEvent(eventName, [this]); 34819 this.emitEvent('always', [this]); 34820 34821 if (this.jqDeferred) { 34822 var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve'; 34823 this.jqDeferred[jqMethod](this); 34824 } 34825 }; // -------------------------- -------------------------- // 34826 34827 34828 function LoadingImage(img) { 34829 this.img = img; 34830 } 34831 34832 LoadingImage.prototype = Object.create(EvEmitter.prototype); 34833 34834 LoadingImage.prototype.check = function () { 34835 // If complete is true and browser supports natural sizes, 34836 // try to check for image status manually. 34837 var isComplete = this.getIsImageComplete(); 34838 34839 if (isComplete) { 34840 // report based on naturalWidth 34841 this.confirm(this.img.naturalWidth !== 0, 'naturalWidth'); 34842 return; 34843 } // If none of the checks above matched, simulate loading on detached element. 34844 34845 34846 this.proxyImage = new Image(); 34847 this.proxyImage.addEventListener('load', this); 34848 this.proxyImage.addEventListener('error', this); // bind to image as well for Firefox. #191 34849 34850 this.img.addEventListener('load', this); 34851 this.img.addEventListener('error', this); 34852 this.proxyImage.src = this.img.src; 34853 }; 34854 34855 LoadingImage.prototype.getIsImageComplete = function () { 34856 // check for non-zero, non-undefined naturalWidth 34857 // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671 34858 return this.img.complete && this.img.naturalWidth; 34859 }; 34860 34861 LoadingImage.prototype.confirm = function (isLoaded, message) { 34862 this.isLoaded = isLoaded; 34863 this.emitEvent('progress', [this, this.img, message]); 34864 }; // ----- events ----- // 34865 // trigger specified handler for event type 34866 34867 34868 LoadingImage.prototype.handleEvent = function (event) { 34869 var method = 'on' + event.type; 34870 34871 if (this[method]) { 34872 this[method](event); 34873 } 34874 }; 34875 34876 LoadingImage.prototype.onload = function () { 34877 this.confirm(true, 'onload'); 34878 this.unbindEvents(); 34879 }; 34880 34881 LoadingImage.prototype.onerror = function () { 34882 this.confirm(false, 'onerror'); 34883 this.unbindEvents(); 34884 }; 34885 34886 LoadingImage.prototype.unbindEvents = function () { 34887 this.proxyImage.removeEventListener('load', this); 34888 this.proxyImage.removeEventListener('error', this); 34889 this.img.removeEventListener('load', this); 34890 this.img.removeEventListener('error', this); 34891 }; // -------------------------- Background -------------------------- // 34892 34893 34894 function Background(url, element) { 34895 this.url = url; 34896 this.element = element; 34897 this.img = new Image(); 34898 } // inherit LoadingImage prototype 34899 34900 34901 Background.prototype = Object.create(LoadingImage.prototype); 34902 34903 Background.prototype.check = function () { 34904 this.img.addEventListener('load', this); 34905 this.img.addEventListener('error', this); 34906 this.img.src = this.url; // check if image is already complete 34907 34908 var isComplete = this.getIsImageComplete(); 34909 34910 if (isComplete) { 34911 this.confirm(this.img.naturalWidth !== 0, 'naturalWidth'); 34912 this.unbindEvents(); 34913 } 34914 }; 34915 34916 Background.prototype.unbindEvents = function () { 34917 this.img.removeEventListener('load', this); 34918 this.img.removeEventListener('error', this); 34919 }; 34920 34921 Background.prototype.confirm = function (isLoaded, message) { 34922 this.isLoaded = isLoaded; 34923 this.emitEvent('progress', [this, this.element, message]); 34924 }; // -------------------------- jQuery -------------------------- // 34925 34926 34927 ImagesLoaded.makeJQueryPlugin = function (jQuery) { 34928 jQuery = jQuery || window.jQuery; 34929 34930 if (!jQuery) { 34931 return; 34932 } // set local variable 34933 34934 34935 $ = jQuery; // $().imagesLoaded() 34936 34937 $.fn.imagesLoaded = function (options, callback) { 34938 var instance = new ImagesLoaded(this, options, callback); 34939 return instance.jqDeferred.promise($(this)); 34940 }; 34941 }; // try making plugin 34942 34943 34944 ImagesLoaded.makeJQueryPlugin(); // -------------------------- -------------------------- // 34945 34946 return ImagesLoaded; 34947}); 34948 34949/***/ }), 34950
vendor: 7,946 bytes, lines 34951-35160
34951/***/ "../rvw_autobahn_core/node_modules/jquery-hoverintent/jquery.hoverIntent.js": 34952/*!**********************************************************************************!*\ 34953 !*** ../rvw_autobahn_core/node_modules/jquery-hoverintent/jquery.hoverIntent.js ***! 34954 \**********************************************************************************/ 34955/*! no static exports found */ 34956/***/ (function(module, exports, __webpack_require__) { 34957 34958var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 34959 34960/*! 34961 * hoverIntent v1.10.1 // 2019.10.05 // jQuery v1.7.0+ 34962 * http://briancherne.github.io/jquery-hoverIntent/ 34963 * 34964 * You may use hoverIntent under the terms of the MIT license. Basically that 34965 * means you are free to use hoverIntent as long as this header is left intact. 34966 * Copyright 2007-2019 Brian Cherne 34967 */ 34968 34969/** 34970 * hoverIntent is similar to jQuery's built-in "hover" method except that 34971 * instead of firing the handlerIn function immediately, hoverIntent checks 34972 * to see if the user's mouse has slowed down (beneath the sensitivity 34973 * threshold) before firing the event. The handlerOut function is only 34974 * called after a matching handlerIn. 34975 * 34976 * // basic usage ... just like .hover() 34977 * .hoverIntent( handlerIn, handlerOut ) 34978 * .hoverIntent( handlerInOut ) 34979 * 34980 * // basic usage ... with event delegation! 34981 * .hoverIntent( handlerIn, handlerOut, selector ) 34982 * .hoverIntent( handlerInOut, selector ) 34983 * 34984 * // using a basic configuration object 34985 * .hoverIntent( config ) 34986 * 34987 * @param handlerIn function OR configuration object 34988 * @param handlerOut function OR selector for delegation OR undefined 34989 * @param selector selector OR undefined 34990 * @author Brian Cherne <brian(at)cherne(dot)net> 34991 */ 34992; 34993 34994(function (factory) { 34995 'use strict'; 34996 34997 if (true) { 34998 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 34999 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 35000 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 35001 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 35002 } else {} 35003})(function ($) { 35004 'use strict'; // default configuration values 35005 35006 var _cfg = { 35007 interval: 100, 35008 sensitivity: 6, 35009 timeout: 0 35010 }; // counter used to generate an ID for each instance 35011 35012 var INSTANCE_COUNT = 0; // current X and Y position of mouse, updated during mousemove tracking (shared across instances) 35013 35014 var cX, cY; // saves the current pointer position coordinates based on the given mousemove event 35015 35016 var track = function track(ev) { 35017 cX = ev.pageX; 35018 cY = ev.pageY; 35019 }; // compares current and previous mouse positions 35020 35021 35022 var compare = function compare(ev, $el, s, cfg) { 35023 // compare mouse positions to see if pointer has slowed enough to trigger `over` function 35024 if (Math.sqrt((s.pX - cX) * (s.pX - cX) + (s.pY - cY) * (s.pY - cY)) < cfg.sensitivity) { 35025 $el.off(s.event, track); 35026 delete s.timeoutId; // set hoverIntent state as active for this element (permits `out` handler to trigger) 35027 35028 s.isActive = true; // overwrite old mouseenter event coordinates with most recent pointer position 35029 35030 ev.pageX = cX; 35031 ev.pageY = cY; // clear coordinate data from state object 35032 35033 delete s.pX; 35034 delete s.pY; 35035 return cfg.over.apply($el[0], [ev]); 35036 } else { 35037 // set previous coordinates for next comparison 35038 s.pX = cX; 35039 s.pY = cY; // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) 35040 35041 s.timeoutId = setTimeout(function () { 35042 compare(ev, $el, s, cfg); 35043 }, cfg.interval); 35044 } 35045 }; // triggers given `out` function at configured `timeout` after a mouseleave and clears state 35046 35047 35048 var delay = function delay(ev, $el, s, out) { 35049 var data = $el.data('hoverIntent'); 35050 35051 if (data) { 35052 delete data[s.id]; 35053 } 35054 35055 return out.apply($el[0], [ev]); 35056 }; 35057 35058 $.fn.hoverIntent = function (handlerIn, handlerOut, selector) { 35059 // instance ID, used as a key to store and retrieve state information on an element 35060 var instanceId = INSTANCE_COUNT++; // extend the default configuration and parse parameters 35061 35062 var cfg = $.extend({}, _cfg); 35063 35064 if ($.isPlainObject(handlerIn)) { 35065 cfg = $.extend(cfg, handlerIn); 35066 35067 if (!$.isFunction(cfg.out)) { 35068 cfg.out = cfg.over; 35069 } 35070 } else if ($.isFunction(handlerOut)) { 35071 cfg = $.extend(cfg, { 35072 over: handlerIn, 35073 out: handlerOut, 35074 selector: selector 35075 }); 35076 } else { 35077 cfg = $.extend(cfg, { 35078 over: handlerIn, 35079 out: handlerIn, 35080 selector: handlerOut 35081 }); 35082 } // A private function for handling mouse 'hovering' 35083 35084 35085 var handleHover = function handleHover(e) { 35086 // cloned event to pass to handlers (copy required for event object to be passed in IE) 35087 var ev = $.extend({}, e); // the current target of the mouse event, wrapped in a jQuery object 35088 35089 var $el = $(this); // read hoverIntent data from element (or initialize if not present) 35090 35091 var hoverIntentData = $el.data('hoverIntent'); 35092 35093 if (!hoverIntentData) { 35094 $el.data('hoverIntent', hoverIntentData = {}); 35095 } // read per-instance state from element (or initialize if not present) 35096 35097 35098 var state = hoverIntentData[instanceId]; 35099 35100 if (!state) { 35101 hoverIntentData[instanceId] = state = { 35102 id: instanceId 35103 }; 35104 } // state properties: 35105 // id = instance ID, used to clean up data 35106 // timeoutId = timeout ID, reused for tracking mouse position and delaying "out" handler 35107 // isActive = plugin state, true after `over` is called just until `out` is called 35108 // pX, pY = previously-measured pointer coordinates, updated at each polling interval 35109 // event = string representing the namespaced event used for mouse tracking 35110 // clear any existing timeout 35111 35112 35113 if (state.timeoutId) { 35114 state.timeoutId = clearTimeout(state.timeoutId); 35115 } // namespaced event used to register and unregister mousemove tracking 35116 35117 35118 var mousemove = state.event = 'mousemove.hoverIntent.hoverIntent' + instanceId; // handle the event, based on its type 35119 35120 if (e.type === 'mouseenter') { 35121 // do nothing if already active 35122 if (state.isActive) { 35123 return; 35124 } // set "previous" X and Y position based on initial entry point 35125 35126 35127 state.pX = ev.pageX; 35128 state.pY = ev.pageY; // update "current" X and Y position based on mousemove 35129 35130 $el.off(mousemove, track).on(mousemove, track); // start polling interval (self-calling timeout) to compare mouse coordinates over time 35131 35132 state.timeoutId = setTimeout(function () { 35133 compare(ev, $el, state, cfg); 35134 }, cfg.interval); 35135 } else { 35136 // "mouseleave" 35137 // do nothing if not already active 35138 if (!state.isActive) { 35139 return; 35140 } // unbind expensive mousemove event 35141 35142 35143 $el.off(mousemove, track); // if hoverIntent state is true, then call the mouseOut function after the specified delay 35144 35145 state.timeoutId = setTimeout(function () { 35146 delay(ev, $el, state, cfg.out); 35147 }, cfg.timeout); 35148 } 35149 }; // listen for mouseenter and mouseleave 35150 35151 35152 return this.on({ 35153 'mouseenter.hoverIntent': handleHover, 35154 'mouseleave.hoverIntent': handleHover 35155 }, cfg.selector); 35156 }; 35157}); 35158 35159/***/ }), 35160
vendor: 6,863 bytes, lines 35161-35377
35161/***/ "../rvw_autobahn_core/node_modules/jquery-zoom/jquery.zoom.js": 35162/*!********************************************************************!*\ 35163 !*** ../rvw_autobahn_core/node_modules/jquery-zoom/jquery.zoom.js ***! 35164 \********************************************************************/ 35165/*! no static exports found */ 35166/***/ (function(module, exports) { 35167 35168/*! 35169 Zoom 1.7.21 35170 license: MIT 35171 http://www.jacklmoore.com/zoom 35172*/ 35173(function ($) { 35174 var defaults = { 35175 url: false, 35176 callback: false, 35177 target: false, 35178 duration: 120, 35179 on: 'mouseover', 35180 // other options: grab, click, toggle 35181 touch: true, 35182 // enables a touch fallback 35183 onZoomIn: false, 35184 onZoomOut: false, 35185 magnify: 1 35186 }; // Core Zoom Logic, independent of event listeners. 35187 35188 $.zoom = function (target, source, img, magnify) { 35189 var targetHeight, 35190 targetWidth, 35191 sourceHeight, 35192 sourceWidth, 35193 xRatio, 35194 yRatio, 35195 offset, 35196 $target = $(target), 35197 position = $target.css('position'), 35198 $source = $(source); // The parent element needs positioning so that the zoomed element can be correctly positioned within. 35199 35200 target.style.position = /(absolute|fixed)/.test(position) ? position : 'relative'; 35201 target.style.overflow = 'hidden'; 35202 img.style.width = img.style.height = ''; 35203 $(img).addClass('zoomImg').css({ 35204 position: 'absolute', 35205 top: 0, 35206 left: 0, 35207 opacity: 0, 35208 width: img.width * magnify, 35209 height: img.height * magnify, 35210 border: 'none', 35211 maxWidth: 'none', 35212 maxHeight: 'none' 35213 }).appendTo(target); 35214 return { 35215 init: function init() { 35216 targetWidth = $target.outerWidth(); 35217 targetHeight = $target.outerHeight(); 35218 35219 if (source === target) { 35220 sourceWidth = targetWidth; 35221 sourceHeight = targetHeight; 35222 } else { 35223 sourceWidth = $source.outerWidth(); 35224 sourceHeight = $source.outerHeight(); 35225 } 35226 35227 xRatio = (img.width - targetWidth) / sourceWidth; 35228 yRatio = (img.height - targetHeight) / sourceHeight; 35229 offset = $source.offset(); 35230 }, 35231 move: function move(e) { 35232 var left = e.pageX - offset.left, 35233 top = e.pageY - offset.top; 35234 top = Math.max(Math.min(top, sourceHeight), 0); 35235 left = Math.max(Math.min(left, sourceWidth), 0); 35236 img.style.left = left * -xRatio + 'px'; 35237 img.style.top = top * -yRatio + 'px'; 35238 } 35239 }; 35240 }; 35241 35242 $.fn.zoom = function (options) { 35243 return this.each(function () { 35244 var settings = $.extend({}, defaults, options || {}), 35245 //target will display the zoomed image 35246 target = settings.target && $(settings.target)[0] || this, 35247 //source will provide zoom location info (thumbnail) 35248 source = this, 35249 $source = $(source), 35250 img = document.createElement('img'), 35251 $img = $(img), 35252 mousemove = 'mousemove.zoom', 35253 clicked = false, 35254 touched = false; // If a url wasn't specified, look for an image element. 35255 35256 if (!settings.url) { 35257 var srcElement = source.querySelector('img'); 35258 35259 if (srcElement) { 35260 settings.url = srcElement.getAttribute('data-src') || srcElement.currentSrc || srcElement.src; 35261 } 35262 35263 if (!settings.url) { 35264 return; 35265 } 35266 } 35267 35268 $source.one('zoom.destroy', function (position, overflow) { 35269 $source.off(".zoom"); 35270 target.style.position = position; 35271 target.style.overflow = overflow; 35272 img.onload = null; 35273 $img.remove(); 35274 }.bind(this, target.style.position, target.style.overflow)); 35275 35276 img.onload = function () { 35277 var zoom = $.zoom(target, source, img, settings.magnify); 35278 35279 function start(e) { 35280 zoom.init(); 35281 zoom.move(e); // Skip the fade-in for IE8 and lower since it chokes on fading-in 35282 // and changing position based on mousemovement at the same time. 35283 35284 $img.stop().fadeTo($.support.opacity ? settings.duration : 0, 1, $.isFunction(settings.onZoomIn) ? settings.onZoomIn.call(img) : false); 35285 } 35286 35287 function stop() { 35288 $img.stop().fadeTo(settings.duration, 0, $.isFunction(settings.onZoomOut) ? settings.onZoomOut.call(img) : false); 35289 } // Mouse events 35290 35291 35292 if (settings.on === 'grab') { 35293 $source.on('mousedown.zoom', function (e) { 35294 if (e.which === 1) { 35295 $(document).one('mouseup.zoom', function () { 35296 stop(); 35297 $(document).off(mousemove, zoom.move); 35298 }); 35299 start(e); 35300 $(document).on(mousemove, zoom.move); 35301 e.preventDefault(); 35302 } 35303 }); 35304 } else if (settings.on === 'click') { 35305 $source.on('click.zoom', function (e) { 35306 if (clicked) { 35307 // bubble the event up to the document to trigger the unbind. 35308 return; 35309 } else { 35310 clicked = true; 35311 start(e); 35312 $(document).on(mousemove, zoom.move); 35313 $(document).one('click.zoom', function () { 35314 stop(); 35315 clicked = false; 35316 $(document).off(mousemove, zoom.move); 35317 }); 35318 return false; 35319 } 35320 }); 35321 } else if (settings.on === 'toggle') { 35322 $source.on('click.zoom', function (e) { 35323 if (clicked) { 35324 stop(); 35325 } else { 35326 start(e); 35327 } 35328 35329 clicked = !clicked; 35330 }); 35331 } else if (settings.on === 'mouseover') { 35332 zoom.init(); // Preemptively call init because IE7 will fire the mousemove handler before the hover handler. 35333 35334 $source.on('mouseenter.zoom', start).on('mouseleave.zoom', stop).on(mousemove, zoom.move); 35335 } // Touch fallback 35336 35337 35338 if (settings.touch) { 35339 $source.on('touchstart.zoom', function (e) { 35340 e.preventDefault(); 35341 35342 if (touched) { 35343 touched = false; 35344 stop(); 35345 } else { 35346 touched = true; 35347 start(e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]); 35348 } 35349 }).on('touchmove.zoom', function (e) { 35350 e.preventDefault(); 35351 zoom.move(e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]); 35352 }).on('touchend.zoom', function (e) { 35353 e.preventDefault(); 35354 35355 if (touched) { 35356 touched = false; 35357 stop(); 35358 } 35359 }); 35360 } 35361 35362 if ($.isFunction(settings.callback)) { 35363 settings.callback.call(img); 35364 } 35365 }; 35366 35367 img.setAttribute('role', 'presentation'); 35368 img.alt = ''; 35369 img.src = settings.url; 35370 }); 35371 }; 35372 35373 $.fn.zoom.defaults = defaults; 35374})(window.jQuery); 35375 35376/***/ }), 35377
vendor: 10,398 bytes, lines 35378-35645
35378/***/ "../rvw_autobahn_core/node_modules/jquery.scrollintoview/jquery.scrollintoview.js": 35379/*!****************************************************************************************!*\ 35380 !*** ../rvw_autobahn_core/node_modules/jquery.scrollintoview/jquery.scrollintoview.js ***! 35381 \****************************************************************************************/ 35382/*! no static exports found */ 35383/***/ (function(module, exports, __webpack_require__) { 35384 35385var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 35386 35387/*! 35388 * jQuery scrollintoview() plugin and :scrollable selector filter 35389 * 35390 * Version 1.9.4 (06 April 2016) 35391 * Requires jQuery 1.4 or newer 35392 * 35393 * Copyright (c) 2011 Robert Koritnik 35394 * Licensed under the terms of the MIT license 35395 * http://www.opensource.org/licenses/mit-license.php 35396 */ 35397!function (root, factory) { 35398 if (true) { 35399 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 35400 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 35401 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 35402 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 35403 } else {} 35404}(this, function ($) { 35405 var converter = { 35406 vertical: { 35407 x: false, 35408 y: true 35409 }, 35410 horizontal: { 35411 x: true, 35412 y: false 35413 }, 35414 both: { 35415 x: true, 35416 y: true 35417 }, 35418 x: { 35419 x: true, 35420 y: false 35421 }, 35422 y: { 35423 x: false, 35424 y: true 35425 } 35426 }; 35427 var settings = { 35428 duration: "fast", 35429 direction: "both", 35430 viewPadding: 0 35431 }; 35432 var rootrx = /^(?:html)$/i; // gets border dimensions 35433 35434 var borders = function borders(domElement, styles) { 35435 styles = styles || (document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(domElement, null) : domElement.currentStyle); 35436 var px = document.defaultView && document.defaultView.getComputedStyle ? true : false; 35437 var b = { 35438 top: parseFloat(px ? styles.borderTopWidth : $.css(domElement, "borderTopWidth")) || 0, 35439 left: parseFloat(px ? styles.borderLeftWidth : $.css(domElement, "borderLeftWidth")) || 0, 35440 bottom: parseFloat(px ? styles.borderBottomWidth : $.css(domElement, "borderBottomWidth")) || 0, 35441 right: parseFloat(px ? styles.borderRightWidth : $.css(domElement, "borderRightWidth")) || 0 35442 }; 35443 return { 35444 top: b.top, 35445 left: b.left, 35446 bottom: b.bottom, 35447 right: b.right, 35448 vertical: b.top + b.bottom, 35449 horizontal: b.left + b.right 35450 }; 35451 }; 35452 35453 var dimensions = function dimensions($element) { 35454 var elem = $element[0], 35455 isRoot = rootrx.test(elem.nodeName), 35456 $elem = isRoot ? $(window) : $element; 35457 return { 35458 border: isRoot ? { 35459 top: 0, 35460 left: 0, 35461 bottom: 0, 35462 right: 0 35463 } : borders(elem), 35464 scroll: { 35465 top: $elem.scrollTop(), 35466 left: $elem.scrollLeft(), 35467 maxtop: elem.scrollHeight - elem.clientHeight, 35468 maxleft: elem.scrollWidth - elem.clientWidth 35469 }, 35470 scrollbar: isRoot ? { 35471 right: 0, 35472 bottom: 0 35473 } : { 35474 right: $elem.innerWidth() - elem.clientWidth, 35475 bottom: $elem.innerHeight() - elem.clientHeight 35476 }, 35477 rect: isRoot ? { 35478 top: 0, 35479 left: 0, 35480 bottom: elem.clientHeight, 35481 right: elem.clientWidth 35482 } : elem.getBoundingClientRect() 35483 }; 35484 }; 35485 35486 $.fn.extend({ 35487 scrollintoview: function scrollintoview(options) { 35488 /// <summary>Scrolls the first element in the set into view by scrolling its closest scrollable parent.</summary> 35489 /// <param name="options" type="Object">Additional options that can configure scrolling: 35490 /// duration (default: "fast") - jQuery animation speed (can be a duration string or number of milliseconds) 35491 /// direction (default: "both") - select possible scrollings ("vertical" or "y", "horizontal" or "x", "both") 35492 /// complete (default: none) - a function to call when scrolling completes (called in context of the DOM element being scrolled) 35493 /// </param> 35494 /// <return type="jQuery">Returns the same jQuery set that this function was run on.</return> 35495 options = $.extend({}, settings, options); 35496 options.direction = converter[typeof options.direction === "string" && options.direction.toLowerCase()] || converter.both; 35497 35498 if (typeof options.viewPadding == "number") { 35499 options.viewPadding = { 35500 x: options.viewPadding, 35501 y: options.viewPadding 35502 }; 35503 } else if (_typeof(options.viewPadding) == "object") { 35504 if (options.viewPadding.x == undefined) { 35505 options.viewPadding.x = 0; 35506 } 35507 35508 if (options.viewPadding.y == undefined) { 35509 options.viewPadding.y = 0; 35510 } 35511 } 35512 35513 var dirStr = ""; 35514 if (options.direction.x === true) dirStr = "horizontal"; 35515 if (options.direction.y === true) dirStr = dirStr ? "both" : "vertical"; 35516 var el = this.eq(0); 35517 var scroller = el.parent().closest(":scrollable(" + dirStr + ")"); // check if there's anything to scroll in the first place 35518 35519 if (scroller.length > 0) { 35520 scroller = scroller.eq(0); 35521 var dim = { 35522 e: dimensions(el), 35523 s: dimensions(scroller) 35524 }; 35525 var rel = { 35526 top: dim.e.rect.top - (dim.s.rect.top + dim.s.border.top), 35527 bottom: dim.s.rect.bottom - dim.s.border.bottom - dim.s.scrollbar.bottom - dim.e.rect.bottom, 35528 left: dim.e.rect.left - (dim.s.rect.left + dim.s.border.left), 35529 right: dim.s.rect.right - dim.s.border.right - dim.s.scrollbar.right - dim.e.rect.right 35530 }; 35531 var animProperties = {}; // vertical scroll 35532 35533 if (options.direction.y === true) { 35534 if (rel.top < 0) { 35535 animProperties.scrollTop = Math.max(0, dim.s.scroll.top + rel.top - options.viewPadding.y); 35536 } else if (rel.top > 0 && rel.bottom < 0) { 35537 animProperties.scrollTop = Math.min(dim.s.scroll.top + Math.min(rel.top, -rel.bottom) + options.viewPadding.y, dim.s.scroll.maxtop); 35538 } 35539 } // horizontal scroll 35540 35541 35542 if (options.direction.x === true) { 35543 if (rel.left < 0) { 35544 animProperties.scrollLeft = Math.max(0, dim.s.scroll.left + rel.left - options.viewPadding.x); 35545 } else if (rel.left > 0 && rel.right < 0) { 35546 animProperties.scrollLeft = Math.min(dim.s.scroll.left + Math.min(rel.left, -rel.right) + options.viewPadding.x, dim.s.scroll.maxleft); 35547 } 35548 } // scroll if needed 35549 35550 35551 if (!$.isEmptyObject(animProperties)) { 35552 var animateStep = function animateStep(now, tween) { 35553 scrollExpect[tween.prop] = Math.floor(now); 35554 }; 35555 35556 var onscroll = function onscroll(event) { 35557 $.each(scrollExpect, function (key, value) { 35558 if (Math.floor(scrollListener[key]()) != Math.floor(value)) { 35559 options.complete = null; // don't run complete function if the scrolling was interrupted 35560 35561 scroller.stop('scrollintoview'); 35562 } 35563 }); 35564 }; 35565 35566 var scrollExpect = {}, 35567 scrollListener = scroller; 35568 35569 if (rootrx.test(scroller[0].nodeName)) { 35570 scroller = $("html,body"); 35571 scrollListener = $(window); 35572 } 35573 35574 ; 35575 scrollListener.on('scroll', onscroll); 35576 scroller.stop('scrollintoview').animate(animProperties, { 35577 duration: options.duration, 35578 step: animateStep, 35579 queue: 'scrollintoview' 35580 }).eq(0) // we want function to be called just once (ref. "html,body") 35581 .queue('scrollintoview', function (next) { 35582 scrollListener.off('scroll', onscroll); 35583 $.isFunction(options.complete) && options.complete.call(scroller[0]); 35584 next(); 35585 }); 35586 scroller.dequeue('scrollintoview'); 35587 } else { 35588 // when there's nothing to scroll, just call the "complete" function 35589 $.isFunction(options.complete) && options.complete.call(scroller[0]); 35590 } 35591 } // return set back 35592 35593 35594 return this; 35595 } 35596 }); 35597 var scrollValue = { 35598 auto: true, 35599 scroll: true, 35600 visible: false, 35601 hidden: false 35602 }; 35603 35604 var scroll = function scroll(element, direction) { 35605 direction = converter[typeof direction === "string" && direction.toLowerCase()] || converter.both; 35606 var styles = document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(element, null) : element.currentStyle; 35607 var overflow = { 35608 x: scrollValue[styles.overflowX.toLowerCase()] || false, 35609 y: scrollValue[styles.overflowY.toLowerCase()] || false, 35610 isRoot: rootrx.test(element.nodeName) 35611 }; // check if completely unscrollable (exclude HTML element because it's special) 35612 35613 if (!overflow.x && !overflow.y && !overflow.isRoot) { 35614 return false; 35615 } 35616 35617 var size = { 35618 height: { 35619 scroll: element.scrollHeight, 35620 client: element.clientHeight 35621 }, 35622 width: { 35623 scroll: element.scrollWidth, 35624 client: element.clientWidth 35625 }, 35626 // check overflow.x/y because iPad (and possibly other tablets) don't dislay scrollbars 35627 scrollableX: function scrollableX() { 35628 return (overflow.x || overflow.isRoot) && this.width.scroll > this.width.client; 35629 }, 35630 scrollableY: function scrollableY() { 35631 return (overflow.y || overflow.isRoot) && this.height.scroll > this.height.client; 35632 } 35633 }; 35634 return direction.y && size.scrollableY() || direction.x && size.scrollableX(); 35635 }; 35636 35637 $.expr[":"].scrollable = $.expr.createPseudo(function (direction) { 35638 return function (element) { 35639 return scroll(element, direction); 35640 }; 35641 }); 35642}); 35643 35644/***/ }), 35645
vendor: 317,426 bytes, lines 35646-45120
35646/***/ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js": 35647/*!***************************************************************!*\ 35648 !*** ../rvw_autobahn_core/node_modules/jquery/dist/jquery.js ***! 35649 \***************************************************************/ 35650/*! no static exports found */ 35651/***/ (function(module, exports, __webpack_require__) { 35652 35653/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 35654 35655/*! 35656 * jQuery JavaScript Library v3.6.0 35657 * https://jquery.com/ 35658 * 35659 * Includes Sizzle.js 35660 * https://sizzlejs.com/ 35661 * 35662 * Copyright OpenJS Foundation and other contributors 35663 * Released under the MIT license 35664 * https://jquery.org/license 35665 * 35666 * Date: 2021-03-02T17:08Z 35667 */ 35668(function (global, factory) { 35669 "use strict"; 35670 35671 if (( false ? undefined : _typeof(module)) === "object" && _typeof(module.exports) === "object") { 35672 // For CommonJS and CommonJS-like environments where a proper `window` 35673 // is present, execute the factory and get jQuery. 35674 // For environments that do not have a `window` with a `document` 35675 // (such as Node.js), expose a factory as module.exports. 35676 // This accentuates the need for the creation of a real `window`. 35677 // e.g. var jQuery = require("jquery")(window); 35678 // See ticket #14549 for more info. 35679 module.exports = global.document ? factory(global, true) : function (w) { 35680 if (!w.document) { 35681 throw new Error("jQuery requires a window with a document"); 35682 } 35683 35684 return factory(w); 35685 }; 35686 } else { 35687 factory(global); 35688 } // Pass this if window is not defined yet 35689 35690})(typeof window !== "undefined" ? window : this, function (window, noGlobal) { 35691 // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 35692 // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode 35693 // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common 35694 // enough that all such attempts are guarded in a try block. 35695 "use strict"; 35696 35697 var arr = []; 35698 var getProto = Object.getPrototypeOf; 35699 var _slice = arr.slice; 35700 var flat = arr.flat ? function (array) { 35701 return arr.flat.call(array); 35702 } : function (array) { 35703 return arr.concat.apply([], array); 35704 }; 35705 var push = arr.push; 35706 var indexOf = arr.indexOf; 35707 var class2type = {}; 35708 var toString = class2type.toString; 35709 var hasOwn = class2type.hasOwnProperty; 35710 var fnToString = hasOwn.toString; 35711 var ObjectFunctionString = fnToString.call(Object); 35712 var support = {}; 35713 35714 var isFunction = function isFunction(obj) { 35715 // Support: Chrome <=57, Firefox <=52 35716 // In some browsers, typeof returns "function" for HTML <object> elements 35717 // (i.e., `typeof document.createElement( "object" ) === "function"`). 35718 // We don't want to classify *any* DOM node as a function. 35719 // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 35720 // Plus for old WebKit, typeof returns "function" for HTML collections 35721 // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) 35722 return typeof obj === "function" && typeof obj.nodeType !== "number" && typeof obj.item !== "function"; 35723 }; 35724 35725 var isWindow = function isWindow(obj) { 35726 return obj != null && obj === obj.window; 35727 }; 35728 35729 var document = window.document; 35730 var preservedScriptAttributes = { 35731 type: true, 35732 src: true, 35733 nonce: true, 35734 noModule: true 35735 }; 35736 35737 function DOMEval(code, node, doc) { 35738 doc = doc || document; 35739 var i, 35740 val, 35741 script = doc.createElement("script"); 35742 script.text = code; 35743 35744 if (node) { 35745 for (i in preservedScriptAttributes) { 35746 // Support: Firefox 64+, Edge 18+ 35747 // Some browsers don't support the "nonce" property on scripts. 35748 // On the other hand, just using `getAttribute` is not enough as 35749 // the `nonce` attribute is reset to an empty string whenever it 35750 // becomes browsing-context connected. 35751 // See https://github.com/whatwg/html/issues/2369 35752 // See https://html.spec.whatwg.org/#nonce-attributes 35753 // The `node.getAttribute` check was added for the sake of 35754 // `jQuery.globalEval` so that it can fake a nonce-containing node 35755 // via an object. 35756 val = node[i] || node.getAttribute && node.getAttribute(i); 35757 35758 if (val) { 35759 script.setAttribute(i, val); 35760 } 35761 } 35762 } 35763 35764 doc.head.appendChild(script).parentNode.removeChild(script); 35765 } 35766 35767 function toType(obj) { 35768 if (obj == null) { 35769 return obj + ""; 35770 } // Support: Android <=2.3 only (functionish RegExp) 35771 35772 35773 return _typeof(obj) === "object" || typeof obj === "function" ? class2type[toString.call(obj)] || "object" : _typeof(obj); 35774 } 35775 /* global Symbol */ 35776 // Defining this global in .eslintrc.json would create a danger of using the global 35777 // unguarded in another place, it seems safer to define global only for this module 35778 35779 35780 var version = "3.6.0", 35781 // Define a local copy of jQuery 35782 jQuery = function jQuery(selector, context) { 35783 // The jQuery object is actually just the init constructor 'enhanced' 35784 // Need init if jQuery is called (just allow error to be thrown if not included) 35785 return new jQuery.fn.init(selector, context); 35786 }; 35787 35788 jQuery.fn = jQuery.prototype = { 35789 // The current version of jQuery being used 35790 jquery: version, 35791 constructor: jQuery, 35792 // The default length of a jQuery object is 0 35793 length: 0, 35794 toArray: function toArray() { 35795 return _slice.call(this); 35796 }, 35797 // Get the Nth element in the matched element set OR 35798 // Get the whole matched element set as a clean array 35799 get: function get(num) { 35800 // Return all the elements in a clean array 35801 if (num == null) { 35802 return _slice.call(this); 35803 } // Return just the one element from the set 35804 35805 35806 return num < 0 ? this[num + this.length] : this[num]; 35807 }, 35808 // Take an array of elements and push it onto the stack 35809 // (returning the new matched element set) 35810 pushStack: function pushStack(elems) { 35811 // Build a new jQuery matched element set 35812 var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference) 35813 35814 ret.prevObject = this; // Return the newly-formed element set 35815 35816 return ret; 35817 }, 35818 // Execute a callback for every element in the matched set. 35819 each: function each(callback) { 35820 return jQuery.each(this, callback); 35821 }, 35822 map: function map(callback) { 35823 return this.pushStack(jQuery.map(this, function (elem, i) { 35824 return callback.call(elem, i, elem); 35825 })); 35826 }, 35827 slice: function slice() { 35828 return this.pushStack(_slice.apply(this, arguments)); 35829 }, 35830 first: function first() { 35831 return this.eq(0); 35832 }, 35833 last: function last() { 35834 return this.eq(-1); 35835 }, 35836 even: function even() { 35837 return this.pushStack(jQuery.grep(this, function (_elem, i) { 35838 return (i + 1) % 2; 35839 })); 35840 }, 35841 odd: function odd() { 35842 return this.pushStack(jQuery.grep(this, function (_elem, i) { 35843 return i % 2; 35844 })); 35845 }, 35846 eq: function eq(i) { 35847 var len = this.length, 35848 j = +i + (i < 0 ? len : 0); 35849 return this.pushStack(j >= 0 && j < len ? [this[j]] : []); 35850 }, 35851 end: function end() { 35852 return this.prevObject || this.constructor(); 35853 }, 35854 // For internal use only. 35855 // Behaves like an Array's method, not like a jQuery method. 35856 push: push, 35857 sort: arr.sort, 35858 splice: arr.splice 35859 }; 35860 35861 jQuery.extend = jQuery.fn.extend = function () { 35862 var options, 35863 name, 35864 src, 35865 copy, 35866 copyIsArray, 35867 clone, 35868 target = arguments[0] || {}, 35869 i = 1, 35870 length = arguments.length, 35871 deep = false; // Handle a deep copy situation 35872 35873 if (typeof target === "boolean") { 35874 deep = target; // Skip the boolean and the target 35875 35876 target = arguments[i] || {}; 35877 i++; 35878 } // Handle case when target is a string or something (possible in deep copy) 35879 35880 35881 if (_typeof(target) !== "object" && !isFunction(target)) { 35882 target = {}; 35883 } // Extend jQuery itself if only one argument is passed 35884 35885 35886 if (i === length) { 35887 target = this; 35888 i--; 35889 } 35890 35891 for (; i < length; i++) { 35892 // Only deal with non-null/undefined values 35893 if ((options = arguments[i]) != null) { 35894 // Extend the base object 35895 for (name in options) { 35896 copy = options[name]; // Prevent Object.prototype pollution 35897 // Prevent never-ending loop 35898 35899 if (name === "__proto__" || target === copy) { 35900 continue; 35901 } // Recurse if we're merging plain objects or arrays 35902 35903 35904 if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) { 35905 src = target[name]; // Ensure proper type for the source value 35906 35907 if (copyIsArray && !Array.isArray(src)) { 35908 clone = []; 35909 } else if (!copyIsArray && !jQuery.isPlainObject(src)) { 35910 clone = {}; 35911 } else { 35912 clone = src; 35913 } 35914 35915 copyIsArray = false; // Never move original objects, clone them 35916 35917 target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values 35918 } else if (copy !== undefined) { 35919 target[name] = copy; 35920 } 35921 } 35922 } 35923 } // Return the modified object 35924 35925 35926 return target; 35927 }; 35928 35929 jQuery.extend({ 35930 // Unique for each copy of jQuery on the page 35931 expando: "jQuery" + (version + Math.random()).replace(/\D/g, ""), 35932 // Assume jQuery is ready without the ready module 35933 isReady: true, 35934 error: function error(msg) { 35935 throw new Error(msg); 35936 }, 35937 noop: function noop() {}, 35938 isPlainObject: function isPlainObject(obj) { 35939 var proto, Ctor; // Detect obvious negatives 35940 // Use toString instead of jQuery.type to catch host objects 35941 35942 if (!obj || toString.call(obj) !== "[object Object]") { 35943 return false; 35944 } 35945 35946 proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain 35947 35948 if (!proto) { 35949 return true; 35950 } // Objects with prototype are plain iff they were constructed by a global Object function 35951 35952 35953 Ctor = hasOwn.call(proto, "constructor") && proto.constructor; 35954 return typeof Ctor === "function" && fnToString.call(Ctor) === ObjectFunctionString; 35955 }, 35956 isEmptyObject: function isEmptyObject(obj) { 35957 var name; 35958 35959 for (name in obj) { 35960 return false; 35961 } 35962 35963 return true; 35964 }, 35965 // Evaluates a script in a provided context; falls back to the global one 35966 // if not specified. 35967 globalEval: function globalEval(code, options, doc) { 35968 DOMEval(code, { 35969 nonce: options && options.nonce 35970 }, doc); 35971 }, 35972 each: function each(obj, callback) { 35973 var length, 35974 i = 0; 35975 35976 if (isArrayLike(obj)) { 35977 length = obj.length; 35978 35979 for (; i < length; i++) { 35980 if (callback.call(obj[i], i, obj[i]) === false) { 35981 break; 35982 } 35983 } 35984 } else { 35985 for (i in obj) { 35986 if (callback.call(obj[i], i, obj[i]) === false) { 35987 break; 35988 } 35989 } 35990 } 35991 35992 return obj; 35993 }, 35994 // results is for internal usage only 35995 makeArray: function makeArray(arr, results) { 35996 var ret = results || []; 35997 35998 if (arr != null) { 35999 if (isArrayLike(Object(arr))) { 36000 jQuery.merge(ret, typeof arr === "string" ? [arr] : arr); 36001 } else { 36002 push.call(ret, arr); 36003 } 36004 } 36005 36006 return ret; 36007 }, 36008 inArray: function inArray(elem, arr, i) { 36009 return arr == null ? -1 : indexOf.call(arr, elem, i); 36010 }, 36011 // Support: Android <=4.0 only, PhantomJS 1 only 36012 // push.apply(_, arraylike) throws on ancient WebKit 36013 merge: function merge(first, second) { 36014 var len = +second.length, 36015 j = 0, 36016 i = first.length; 36017 36018 for (; j < len; j++) { 36019 first[i++] = second[j]; 36020 } 36021 36022 first.length = i; 36023 return first; 36024 }, 36025 grep: function grep(elems, callback, invert) { 36026 var callbackInverse, 36027 matches = [], 36028 i = 0, 36029 length = elems.length, 36030 callbackExpect = !invert; // Go through the array, only saving the items 36031 // that pass the validator function 36032 36033 for (; i < length; i++) { 36034 callbackInverse = !callback(elems[i], i); 36035 36036 if (callbackInverse !== callbackExpect) { 36037 matches.push(elems[i]); 36038 } 36039 } 36040 36041 return matches; 36042 }, 36043 // arg is for internal usage only 36044 map: function map(elems, callback, arg) { 36045 var length, 36046 value, 36047 i = 0, 36048 ret = []; // Go through the array, translating each of the items to their new values 36049 36050 if (isArrayLike(elems)) { 36051 length = elems.length; 36052 36053 for (; i < length; i++) { 36054 value = callback(elems[i], i, arg); 36055 36056 if (value != null) { 36057 ret.push(value); 36058 } 36059 } // Go through every key on the object, 36060 36061 } else { 36062 for (i in elems) { 36063 value = callback(elems[i], i, arg); 36064 36065 if (value != null) { 36066 ret.push(value); 36067 } 36068 } 36069 } // Flatten any nested arrays 36070 36071 36072 return flat(ret); 36073 }, 36074 // A global GUID counter for objects 36075 guid: 1, 36076 // jQuery.support is not used in Core but other projects attach their 36077 // properties to it so it needs to exist. 36078 support: support 36079 }); 36080 36081 if (typeof Symbol === "function") { 36082 jQuery.fn[Symbol.iterator] = arr[Symbol.iterator]; 36083 } // Populate the class2type map 36084 36085 36086 jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (_i, name) { 36087 class2type["[object " + name + "]"] = name.toLowerCase(); 36088 }); 36089 36090 function isArrayLike(obj) { 36091 // Support: real iOS 8.2 only (not reproducible in simulator) 36092 // `in` check used to prevent JIT error (gh-2145) 36093 // hasOwn isn't used here due to false negatives 36094 // regarding Nodelist length in IE 36095 var length = !!obj && "length" in obj && obj.length, 36096 type = toType(obj); 36097 36098 if (isFunction(obj) || isWindow(obj)) { 36099 return false; 36100 } 36101 36102 return type === "array" || length === 0 || typeof length === "number" && length > 0 && length - 1 in obj; 36103 } 36104 36105 var Sizzle = 36106 /*! 36107 * Sizzle CSS Selector Engine v2.3.6 36108 * https://sizzlejs.com/ 36109 * 36110 * Copyright JS Foundation and other contributors 36111 * Released under the MIT license 36112 * https://js.foundation/ 36113 * 36114 * Date: 2021-02-16 36115 */ 36116 function (window) { 36117 var i, 36118 support, 36119 Expr, 36120 getText, 36121 isXML, 36122 tokenize, 36123 compile, 36124 select, 36125 outermostContext, 36126 sortInput, 36127 hasDuplicate, 36128 // Local document vars 36129 setDocument, 36130 document, 36131 docElem, 36132 documentIsHTML, 36133 rbuggyQSA, 36134 rbuggyMatches, 36135 matches, 36136 contains, 36137 // Instance-specific data 36138 expando = "sizzle" + 1 * new Date(), 36139 preferredDoc = window.document, 36140 dirruns = 0, 36141 done = 0, 36142 classCache = createCache(), 36143 tokenCache = createCache(), 36144 compilerCache = createCache(), 36145 nonnativeSelectorCache = createCache(), 36146 sortOrder = function sortOrder(a, b) { 36147 if (a === b) { 36148 hasDuplicate = true; 36149 } 36150 36151 return 0; 36152 }, 36153 // Instance methods 36154 hasOwn = {}.hasOwnProperty, 36155 arr = [], 36156 pop = arr.pop, 36157 pushNative = arr.push, 36158 push = arr.push, 36159 slice = arr.slice, 36160 // Use a stripped-down indexOf as it's faster than native 36161 // https://jsperf.com/thor-indexof-vs-for/5 36162 indexOf = function indexOf(list, elem) { 36163 var i = 0, 36164 len = list.length; 36165 36166 for (; i < len; i++) { 36167 if (list[i] === elem) { 36168 return i; 36169 } 36170 } 36171 36172 return -1; 36173 }, 36174 booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + "ismap|loop|multiple|open|readonly|required|scoped", 36175 // Regular expressions 36176 // http://www.w3.org/TR/css3-selectors/#whitespace 36177 whitespace = "[\\x20\\t\\r\\n\\f]", 36178 // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram 36179 identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", 36180 // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors 36181 attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + // Operator (capture 2) 36182 "*([*^$|!~]?=)" + whitespace + // "Attribute values must be CSS identifiers [capture 5] 36183 // or strings [capture 3 or capture 4]" 36184 "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + "*\\]", 36185 pseudos = ":(" + identifier + ")(?:\\((" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: 36186 // 1. quoted (capture 3; capture 4 or capture 5) 36187 "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + // 2. simple (capture 6) 36188 "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + // 3. anything else (capture 2) 36189 ".*" + ")\\)|)", 36190 // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter 36191 rwhitespace = new RegExp(whitespace + "+", "g"), 36192 rtrim = new RegExp("^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g"), 36193 rcomma = new RegExp("^" + whitespace + "*," + whitespace + "*"), 36194 rcombinators = new RegExp("^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*"), 36195 rdescend = new RegExp(whitespace + "|>"), 36196 rpseudo = new RegExp(pseudos), 36197 ridentifier = new RegExp("^" + identifier + "$"), 36198 matchExpr = { 36199 "ID": new RegExp("^#(" + identifier + ")"), 36200 "CLASS": new RegExp("^\\.(" + identifier + ")"), 36201 "TAG": new RegExp("^(" + identifier + "|[*])"), 36202 "ATTR": new RegExp("^" + attributes), 36203 "PSEUDO": new RegExp("^" + pseudos), 36204 "CHILD": new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i"), 36205 "bool": new RegExp("^(?:" + booleans + ")$", "i"), 36206 // For use in libraries implementing .is() 36207 // We use this for POS matching in `select` 36208 "needsContext": new RegExp("^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i") 36209 }, 36210 rhtml = /HTML$/i, 36211 rinputs = /^(?:input|select|textarea|button)$/i, 36212 rheader = /^h\d$/i, 36213 rnative = /^[^{]+\{\s*\[native \w/, 36214 // Easily-parseable/retrievable ID or TAG or CLASS selectors 36215 rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 36216 rsibling = /[+~]/, 36217 // CSS escapes 36218 // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters 36219 runescape = new RegExp("\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g"), 36220 funescape = function funescape(escape, nonHex) { 36221 var high = "0x" + escape.slice(1) - 0x10000; 36222 return nonHex ? // Strip the backslash prefix from a non-hex escape sequence 36223 nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point 36224 // Support: IE <=11+ 36225 // For values outside the Basic Multilingual Plane (BMP), manually construct a 36226 // surrogate pair 36227 high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00); 36228 }, 36229 // CSS string/identifier serialization 36230 // https://drafts.csswg.org/cssom/#common-serializing-idioms 36231 rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, 36232 fcssescape = function fcssescape(ch, asCodePoint) { 36233 if (asCodePoint) { 36234 // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER 36235 if (ch === "\0") { 36236 return "\uFFFD"; 36237 } // Control characters and (dependent upon position) numbers get escaped as code points 36238 36239 36240 return ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " "; 36241 } // Other potentially-special ASCII characters get backslash-escaped 36242 36243 36244 return "\\" + ch; 36245 }, 36246 // Used for iframes 36247 // See setDocument() 36248 // Removing the function wrapper causes a "Permission Denied" 36249 // error in IE 36250 unloadHandler = function unloadHandler() { 36251 setDocument(); 36252 }, 36253 inDisabledFieldset = addCombinator(function (elem) { 36254 return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; 36255 }, { 36256 dir: "parentNode", 36257 next: "legend" 36258 }); // Optimize for push.apply( _, NodeList ) 36259 36260 36261 try { 36262 push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0 36263 // Detect silently failing push.apply 36264 // eslint-disable-next-line no-unused-expressions 36265 36266 arr[preferredDoc.childNodes.length].nodeType; 36267 } catch (e) { 36268 push = { 36269 apply: arr.length ? // Leverage slice if possible 36270 function (target, els) { 36271 pushNative.apply(target, slice.call(els)); 36272 } : // Support: IE<9 36273 // Otherwise append directly 36274 function (target, els) { 36275 var j = target.length, 36276 i = 0; // Can't trust NodeList.length 36277 36278 while (target[j++] = els[i++]) {} 36279 36280 target.length = j - 1; 36281 } 36282 }; 36283 } 36284 36285 function Sizzle(selector, context, results, seed) { 36286 var m, 36287 i, 36288 elem, 36289 nid, 36290 match, 36291 groups, 36292 newSelector, 36293 newContext = context && context.ownerDocument, 36294 // nodeType defaults to 9, since context defaults to document 36295 nodeType = context ? context.nodeType : 9; 36296 results = results || []; // Return early from calls with invalid selector or context 36297 36298 if (typeof selector !== "string" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) { 36299 return results; 36300 } // Try to shortcut find operations (as opposed to filters) in HTML documents 36301 36302 36303 if (!seed) { 36304 setDocument(context); 36305 context = context || document; 36306 36307 if (documentIsHTML) { 36308 // If the selector is sufficiently simple, try using a "get*By*" DOM method 36309 // (excepting DocumentFragment context, where the methods don't exist) 36310 if (nodeType !== 11 && (match = rquickExpr.exec(selector))) { 36311 // ID selector 36312 if (m = match[1]) { 36313 // Document context 36314 if (nodeType === 9) { 36315 if (elem = context.getElementById(m)) { 36316 // Support: IE, Opera, Webkit 36317 // TODO: identify versions 36318 // getElementById can match elements by name instead of ID 36319 if (elem.id === m) { 36320 results.push(elem); 36321 return results; 36322 } 36323 } else { 36324 return results; 36325 } // Element context 36326 36327 } else { 36328 // Support: IE, Opera, Webkit 36329 // TODO: identify versions 36330 // getElementById can match elements by name instead of ID 36331 if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) { 36332 results.push(elem); 36333 return results; 36334 } 36335 } // Type selector 36336 36337 } else if (match[2]) { 36338 push.apply(results, context.getElementsByTagName(selector)); 36339 return results; // Class selector 36340 } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) { 36341 push.apply(results, context.getElementsByClassName(m)); 36342 return results; 36343 } 36344 } // Take advantage of querySelectorAll 36345 36346 36347 if (support.qsa && !nonnativeSelectorCache[selector + " "] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only 36348 // Exclude object elements 36349 nodeType !== 1 || context.nodeName.toLowerCase() !== "object")) { 36350 newSelector = selector; 36351 newContext = context; // qSA considers elements outside a scoping root when evaluating child or 36352 // descendant combinators, which is not what we want. 36353 // In such cases, we work around the behavior by prefixing every selector in the 36354 // list with an ID selector referencing the scope context. 36355 // The technique has to be used as well when a leading combinator is used 36356 // as such selectors are not recognized by querySelectorAll. 36357 // Thanks to Andrew Dupont for this technique. 36358 36359 if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) { 36360 // Expand context for sibling selectors 36361 newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser 36362 // supports it & if we're not changing the context. 36363 36364 if (newContext !== context || !support.scope) { 36365 // Capture the context ID, setting it first if necessary 36366 if (nid = context.getAttribute("id")) { 36367 nid = nid.replace(rcssescape, fcssescape); 36368 } else { 36369 context.setAttribute("id", nid = expando); 36370 } 36371 } // Prefix every selector in the list 36372 36373 36374 groups = tokenize(selector); 36375 i = groups.length; 36376 36377 while (i--) { 36378 groups[i] = (nid ? "#" + nid : ":scope") + " " + toSelector(groups[i]); 36379 } 36380 36381 newSelector = groups.join(","); 36382 } 36383 36384 try { 36385 push.apply(results, newContext.querySelectorAll(newSelector)); 36386 return results; 36387 } catch (qsaError) { 36388 nonnativeSelectorCache(selector, true); 36389 } finally { 36390 if (nid === expando) { 36391 context.removeAttribute("id"); 36392 } 36393 } 36394 } 36395 } 36396 } // All others 36397 36398 36399 return select(selector.replace(rtrim, "$1"), context, results, seed); 36400 } 36401 /** 36402 * Create key-value caches of limited size 36403 * @returns {function(string, object)} Returns the Object data after storing it on itself with 36404 * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) 36405 * deleting the oldest entry 36406 */ 36407 36408 36409 function createCache() { 36410 var keys = []; 36411 36412 function cache(key, value) { 36413 // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) 36414 if (keys.push(key + " ") > Expr.cacheLength) { 36415 // Only keep the most recent entries 36416 delete cache[keys.shift()]; 36417 } 36418 36419 return cache[key + " "] = value; 36420 } 36421 36422 return cache; 36423 } 36424 /** 36425 * Mark a function for special use by Sizzle 36426 * @param {Function} fn The function to mark 36427 */ 36428 36429 36430 function markFunction(fn) { 36431 fn[expando] = true; 36432 return fn; 36433 } 36434 /** 36435 * Support testing using an element 36436 * @param {Function} fn Passed the created element and returns a boolean result 36437 */ 36438 36439 36440 function assert(fn) { 36441 var el = document.createElement("fieldset"); 36442 36443 try { 36444 return !!fn(el); 36445 } catch (e) { 36446 return false; 36447 } finally { 36448 // Remove from its parent by default 36449 if (el.parentNode) { 36450 el.parentNode.removeChild(el); 36451 } // release memory in IE 36452 36453 36454 el = null; 36455 } 36456 } 36457 /** 36458 * Adds the same handler for all of the specified attrs 36459 * @param {String} attrs Pipe-separated list of attributes 36460 * @param {Function} handler The method that will be applied 36461 */ 36462 36463 36464 function addHandle(attrs, handler) { 36465 var arr = attrs.split("|"), 36466 i = arr.length; 36467 36468 while (i--) { 36469 Expr.attrHandle[arr[i]] = handler; 36470 } 36471 } 36472 /** 36473 * Checks document order of two siblings 36474 * @param {Element} a 36475 * @param {Element} b 36476 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b 36477 */ 36478 36479 36480 function siblingCheck(a, b) { 36481 var cur = b && a, 36482 diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes 36483 36484 if (diff) { 36485 return diff; 36486 } // Check if b follows a 36487 36488 36489 if (cur) { 36490 while (cur = cur.nextSibling) { 36491 if (cur === b) { 36492 return -1; 36493 } 36494 } 36495 } 36496 36497 return a ? 1 : -1; 36498 } 36499 /** 36500 * Returns a function to use in pseudos for input types 36501 * @param {String} type 36502 */ 36503 36504 36505 function createInputPseudo(type) { 36506 return function (elem) { 36507 var name = elem.nodeName.toLowerCase(); 36508 return name === "input" && elem.type === type; 36509 }; 36510 } 36511 /** 36512 * Returns a function to use in pseudos for buttons 36513 * @param {String} type 36514 */ 36515 36516 36517 function createButtonPseudo(type) { 36518 return function (elem) { 36519 var name = elem.nodeName.toLowerCase(); 36520 return (name === "input" || name === "button") && elem.type === type; 36521 }; 36522 } 36523 /** 36524 * Returns a function to use in pseudos for :enabled/:disabled 36525 * @param {Boolean} disabled true for :disabled; false for :enabled 36526 */ 36527 36528 36529 function createDisabledPseudo(disabled) { 36530 // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable 36531 return function (elem) { 36532 // Only certain elements can match :enabled or :disabled 36533 // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled 36534 // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled 36535 if ("form" in elem) { 36536 // Check for inherited disabledness on relevant non-disabled elements: 36537 // * listed form-associated elements in a disabled fieldset 36538 // https://html.spec.whatwg.org/multipage/forms.html#category-listed 36539 // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled 36540 // * option elements in a disabled optgroup 36541 // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled 36542 // All such elements have a "form" property. 36543 if (elem.parentNode && elem.disabled === false) { 36544 // Option elements defer to a parent optgroup if present 36545 if ("label" in elem) { 36546 if ("label" in elem.parentNode) { 36547 return elem.parentNode.disabled === disabled; 36548 } else { 36549 return elem.disabled === disabled; 36550 } 36551 } // Support: IE 6 - 11 36552 // Use the isDisabled shortcut property to check for disabled fieldset ancestors 36553 36554 36555 return elem.isDisabled === disabled || // Where there is no isDisabled, check manually 36556 36557 /* jshint -W018 */ 36558 elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled; 36559 } 36560 36561 return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property. 36562 // Some victims get caught in our net (label, legend, menu, track), but it shouldn't 36563 // even exist on them, let alone have a boolean value. 36564 } else if ("label" in elem) { 36565 return elem.disabled === disabled; 36566 } // Remaining elements are neither :enabled nor :disabled 36567 36568 36569 return false; 36570 }; 36571 } 36572 /** 36573 * Returns a function to use in pseudos for positionals 36574 * @param {Function} fn 36575 */ 36576 36577 36578 function createPositionalPseudo(fn) { 36579 return markFunction(function (argument) { 36580 argument = +argument; 36581 return markFunction(function (seed, matches) { 36582 var j, 36583 matchIndexes = fn([], seed.length, argument), 36584 i = matchIndexes.length; // Match elements found at the specified indexes 36585 36586 while (i--) { 36587 if (seed[j = matchIndexes[i]]) { 36588 seed[j] = !(matches[j] = seed[j]); 36589 } 36590 } 36591 }); 36592 }); 36593 } 36594 /** 36595 * Checks a node for validity as a Sizzle context 36596 * @param {Element|Object=} context 36597 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value 36598 */ 36599 36600 36601 function testContext(context) { 36602 return context && typeof context.getElementsByTagName !== "undefined" && context; 36603 } // Expose support vars for convenience 36604 36605 36606 support = Sizzle.support = {}; 36607 /** 36608 * Detects XML nodes 36609 * @param {Element|Object} elem An element or a document 36610 * @returns {Boolean} True iff elem is a non-HTML XML node 36611 */ 36612 36613 isXML = Sizzle.isXML = function (elem) { 36614 var namespace = elem && elem.namespaceURI, 36615 docElem = elem && (elem.ownerDocument || elem).documentElement; // Support: IE <=8 36616 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes 36617 // https://bugs.jquery.com/ticket/4833 36618 36619 return !rhtml.test(namespace || docElem && docElem.nodeName || "HTML"); 36620 }; 36621 /** 36622 * Sets document-related variables once based on the current document 36623 * @param {Element|Object} [doc] An element or document object to use to set the document 36624 * @returns {Object} Returns the current document 36625 */ 36626 36627 36628 setDocument = Sizzle.setDocument = function (node) { 36629 var hasCompare, 36630 subWindow, 36631 doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected 36632 // Support: IE 11+, Edge 17 - 18+ 36633 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 36634 // two documents; shallow comparisons work. 36635 // eslint-disable-next-line eqeqeq 36636 36637 if (doc == document || doc.nodeType !== 9 || !doc.documentElement) { 36638 return document; 36639 } // Update global variables 36640 36641 36642 document = doc; 36643 docElem = document.documentElement; 36644 documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+ 36645 // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) 36646 // Support: IE 11+, Edge 17 - 18+ 36647 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 36648 // two documents; shallow comparisons work. 36649 // eslint-disable-next-line eqeqeq 36650 36651 if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) { 36652 // Support: IE 11, Edge 36653 if (subWindow.addEventListener) { 36654 subWindow.addEventListener("unload", unloadHandler, false); // Support: IE 9 - 10 only 36655 } else if (subWindow.attachEvent) { 36656 subWindow.attachEvent("onunload", unloadHandler); 36657 } 36658 } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, 36659 // Safari 4 - 5 only, Opera <=11.6 - 12.x only 36660 // IE/Edge & older browsers don't support the :scope pseudo-class. 36661 // Support: Safari 6.0 only 36662 // Safari 6.0 supports :scope but it's an alias of :root there. 36663 36664 36665 support.scope = assert(function (el) { 36666 docElem.appendChild(el).appendChild(document.createElement("div")); 36667 return typeof el.querySelectorAll !== "undefined" && !el.querySelectorAll(":scope fieldset div").length; 36668 }); 36669 /* Attributes 36670 ---------------------------------------------------------------------- */ 36671 // Support: IE<8 36672 // Verify that getAttribute really returns attributes and not properties 36673 // (excepting IE8 booleans) 36674 36675 support.attributes = assert(function (el) { 36676 el.className = "i"; 36677 return !el.getAttribute("className"); 36678 }); 36679 /* getElement(s)By* 36680 ---------------------------------------------------------------------- */ 36681 // Check if getElementsByTagName("*") returns only elements 36682 36683 support.getElementsByTagName = assert(function (el) { 36684 el.appendChild(document.createComment("")); 36685 return !el.getElementsByTagName("*").length; 36686 }); // Support: IE<9 36687 36688 support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10 36689 // Check if getElementById returns elements by name 36690 // The broken getElementById methods don't pick up programmatically-set names, 36691 // so use a roundabout getElementsByName test 36692 36693 support.getById = assert(function (el) { 36694 docElem.appendChild(el).id = expando; 36695 return !document.getElementsByName || !document.getElementsByName(expando).length; 36696 }); // ID filter and find 36697 36698 if (support.getById) { 36699 Expr.filter["ID"] = function (id) { 36700 var attrId = id.replace(runescape, funescape); 36701 return function (elem) { 36702 return elem.getAttribute("id") === attrId; 36703 }; 36704 }; 36705 36706 Expr.find["ID"] = function (id, context) { 36707 if (typeof context.getElementById !== "undefined" && documentIsHTML) { 36708 var elem = context.getElementById(id); 36709 return elem ? [elem] : []; 36710 } 36711 }; 36712 } else { 36713 Expr.filter["ID"] = function (id) { 36714 var attrId = id.replace(runescape, funescape); 36715 return function (elem) { 36716 var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); 36717 return node && node.value === attrId; 36718 }; 36719 }; // Support: IE 6 - 7 only 36720 // getElementById is not reliable as a find shortcut 36721 36722 36723 Expr.find["ID"] = function (id, context) { 36724 if (typeof context.getElementById !== "undefined" && documentIsHTML) { 36725 var node, 36726 i, 36727 elems, 36728 elem = context.getElementById(id); 36729 36730 if (elem) { 36731 // Verify the id attribute 36732 node = elem.getAttributeNode("id"); 36733 36734 if (node && node.value === id) { 36735 return [elem]; 36736 } // Fall back on getElementsByName 36737 36738 36739 elems = context.getElementsByName(id); 36740 i = 0; 36741 36742 while (elem = elems[i++]) { 36743 node = elem.getAttributeNode("id"); 36744 36745 if (node && node.value === id) { 36746 return [elem]; 36747 } 36748 } 36749 } 36750 36751 return []; 36752 } 36753 }; 36754 } // Tag 36755 36756 36757 Expr.find["TAG"] = support.getElementsByTagName ? function (tag, context) { 36758 if (typeof context.getElementsByTagName !== "undefined") { 36759 return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN 36760 } else if (support.qsa) { 36761 return context.querySelectorAll(tag); 36762 } 36763 } : function (tag, context) { 36764 var elem, 36765 tmp = [], 36766 i = 0, 36767 // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too 36768 results = context.getElementsByTagName(tag); // Filter out possible comments 36769 36770 if (tag === "*") { 36771 while (elem = results[i++]) { 36772 if (elem.nodeType === 1) { 36773 tmp.push(elem); 36774 } 36775 } 36776 36777 return tmp; 36778 } 36779 36780 return results; 36781 }; // Class 36782 36783 Expr.find["CLASS"] = support.getElementsByClassName && function (className, context) { 36784 if (typeof context.getElementsByClassName !== "undefined" && documentIsHTML) { 36785 return context.getElementsByClassName(className); 36786 } 36787 }; 36788 /* QSA/matchesSelector 36789 ---------------------------------------------------------------------- */ 36790 // QSA and matchesSelector support 36791 // matchesSelector(:active) reports false when true (IE9/Opera 11.5) 36792 36793 36794 rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21) 36795 // We allow this because of a bug in IE8/9 that throws an error 36796 // whenever `document.activeElement` is accessed on an iframe 36797 // So, we allow :focus to pass through QSA all the time to avoid the IE error 36798 // See https://bugs.jquery.com/ticket/13378 36799 36800 rbuggyQSA = []; 36801 36802 if (support.qsa = rnative.test(document.querySelectorAll)) { 36803 // Build QSA regex 36804 // Regex strategy adopted from Diego Perini 36805 assert(function (el) { 36806 var input; // Select is set to empty string on purpose 36807 // This is to test IE's treatment of not explicitly 36808 // setting a boolean content attribute, 36809 // since its presence should be enough 36810 // https://bugs.jquery.com/ticket/12359 36811 36812 docElem.appendChild(el).innerHTML = "<a id='" + expando + "'></a>" + "<select id='" + expando + "-\r\\' msallowcapture=''>" + "<option selected=''></option></select>"; // Support: IE8, Opera 11-12.16 36813 // Nothing should be selected when empty strings follow ^= or $= or *= 36814 // The test attribute must be unknown in Opera but "safe" for WinRT 36815 // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section 36816 36817 if (el.querySelectorAll("[msallowcapture^='']").length) { 36818 rbuggyQSA.push("[*^$]=" + whitespace + "*(?:''|\"\")"); 36819 } // Support: IE8 36820 // Boolean attributes and "value" are not treated correctly 36821 36822 36823 if (!el.querySelectorAll("[selected]").length) { 36824 rbuggyQSA.push("\\[" + whitespace + "*(?:value|" + booleans + ")"); 36825 } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ 36826 36827 36828 if (!el.querySelectorAll("[id~=" + expando + "-]").length) { 36829 rbuggyQSA.push("~="); 36830 } // Support: IE 11+, Edge 15 - 18+ 36831 // IE 11/Edge don't find elements on a `[name='']` query in some cases. 36832 // Adding a temporary attribute to the document before the selection works 36833 // around the issue. 36834 // Interestingly, IE 10 & older don't seem to have the issue. 36835 36836 36837 input = document.createElement("input"); 36838 input.setAttribute("name", ""); 36839 el.appendChild(input); 36840 36841 if (!el.querySelectorAll("[name='']").length) { 36842 rbuggyQSA.push("\\[" + whitespace + "*name" + whitespace + "*=" + whitespace + "*(?:''|\"\")"); 36843 } // Webkit/Opera - :checked should return selected option elements 36844 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 36845 // IE8 throws error here and will not see later tests 36846 36847 36848 if (!el.querySelectorAll(":checked").length) { 36849 rbuggyQSA.push(":checked"); 36850 } // Support: Safari 8+, iOS 8+ 36851 // https://bugs.webkit.org/show_bug.cgi?id=136851 36852 // In-page `selector#id sibling-combinator selector` fails 36853 36854 36855 if (!el.querySelectorAll("a#" + expando + "+*").length) { 36856 rbuggyQSA.push(".#.+[+~]"); 36857 } // Support: Firefox <=3.6 - 5 only 36858 // Old Firefox doesn't throw on a badly-escaped identifier. 36859 36860 36861 el.querySelectorAll("\\\f"); 36862 rbuggyQSA.push("[\\r\\n\\f]"); 36863 }); 36864 assert(function (el) { 36865 el.innerHTML = "<a href='' disabled='disabled'></a>" + "<select disabled='disabled'><option/></select>"; // Support: Windows 8 Native Apps 36866 // The type and name attributes are restricted during .innerHTML assignment 36867 36868 var input = document.createElement("input"); 36869 input.setAttribute("type", "hidden"); 36870 el.appendChild(input).setAttribute("name", "D"); // Support: IE8 36871 // Enforce case-sensitivity of name attribute 36872 36873 if (el.querySelectorAll("[name=d]").length) { 36874 rbuggyQSA.push("name" + whitespace + "*[*^$|!~]?="); 36875 } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) 36876 // IE8 throws error here and will not see later tests 36877 36878 36879 if (el.querySelectorAll(":enabled").length !== 2) { 36880 rbuggyQSA.push(":enabled", ":disabled"); 36881 } // Support: IE9-11+ 36882 // IE's :disabled selector does not pick up the children of disabled fieldsets 36883 36884 36885 docElem.appendChild(el).disabled = true; 36886 36887 if (el.querySelectorAll(":disabled").length !== 2) { 36888 rbuggyQSA.push(":enabled", ":disabled"); 36889 } // Support: Opera 10 - 11 only 36890 // Opera 10-11 does not throw on post-comma invalid pseudos 36891 36892 36893 el.querySelectorAll("*,:x"); 36894 rbuggyQSA.push(",.*:"); 36895 }); 36896 } 36897 36898 if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) { 36899 assert(function (el) { 36900 // Check to see if it's possible to do matchesSelector 36901 // on a disconnected node (IE 9) 36902 support.disconnectedMatch = matches.call(el, "*"); // This should fail with an exception 36903 // Gecko does not error, returns false instead 36904 36905 matches.call(el, "[s!='']:x"); 36906 rbuggyMatches.push("!=", pseudos); 36907 }); 36908 } 36909 36910 rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join("|")); 36911 rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join("|")); 36912 /* Contains 36913 ---------------------------------------------------------------------- */ 36914 36915 hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another 36916 // Purposefully self-exclusive 36917 // As in, an element does not contain itself 36918 36919 contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) { 36920 var adown = a.nodeType === 9 ? a.documentElement : a, 36921 bup = b && b.parentNode; 36922 return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16)); 36923 } : function (a, b) { 36924 if (b) { 36925 while (b = b.parentNode) { 36926 if (b === a) { 36927 return true; 36928 } 36929 } 36930 } 36931 36932 return false; 36933 }; 36934 /* Sorting 36935 ---------------------------------------------------------------------- */ 36936 // Document order sorting 36937 36938 sortOrder = hasCompare ? function (a, b) { 36939 // Flag for duplicate removal 36940 if (a === b) { 36941 hasDuplicate = true; 36942 return 0; 36943 } // Sort on method existence if only one input has compareDocumentPosition 36944 36945 36946 var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; 36947 36948 if (compare) { 36949 return compare; 36950 } // Calculate position if both inputs belong to the same document 36951 // Support: IE 11+, Edge 17 - 18+ 36952 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 36953 // two documents; shallow comparisons work. 36954 // eslint-disable-next-line eqeqeq 36955 36956 36957 compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected 36958 1; // Disconnected nodes 36959 36960 if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) { 36961 // Choose the first element that is related to our preferred document 36962 // Support: IE 11+, Edge 17 - 18+ 36963 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 36964 // two documents; shallow comparisons work. 36965 // eslint-disable-next-line eqeqeq 36966 if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) { 36967 return -1; 36968 } // Support: IE 11+, Edge 17 - 18+ 36969 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 36970 // two documents; shallow comparisons work. 36971 // eslint-disable-next-line eqeqeq 36972 36973 36974 if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) { 36975 return 1; 36976 } // Maintain original order 36977 36978 36979 return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; 36980 } 36981 36982 return compare & 4 ? -1 : 1; 36983 } : function (a, b) { 36984 // Exit early if the nodes are identical 36985 if (a === b) { 36986 hasDuplicate = true; 36987 return 0; 36988 } 36989 36990 var cur, 36991 i = 0, 36992 aup = a.parentNode, 36993 bup = b.parentNode, 36994 ap = [a], 36995 bp = [b]; // Parentless nodes are either documents or disconnected 36996 36997 if (!aup || !bup) { 36998 // Support: IE 11+, Edge 17 - 18+ 36999 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 37000 // two documents; shallow comparisons work. 37001 37002 /* eslint-disable eqeqeq */ 37003 return a == document ? -1 : b == document ? 1 : 37004 /* eslint-enable eqeqeq */ 37005 aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check 37006 } else if (aup === bup) { 37007 return siblingCheck(a, b); 37008 } // Otherwise we need full lists of their ancestors for comparison 37009 37010 37011 cur = a; 37012 37013 while (cur = cur.parentNode) { 37014 ap.unshift(cur); 37015 } 37016 37017 cur = b; 37018 37019 while (cur = cur.parentNode) { 37020 bp.unshift(cur); 37021 } // Walk down the tree looking for a discrepancy 37022 37023 37024 while (ap[i] === bp[i]) { 37025 i++; 37026 } 37027 37028 return i ? // Do a sibling check if the nodes have a common ancestor 37029 siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first 37030 // Support: IE 11+, Edge 17 - 18+ 37031 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 37032 // two documents; shallow comparisons work. 37033 37034 /* eslint-disable eqeqeq */ 37035 ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 : 37036 /* eslint-enable eqeqeq */ 37037 0; 37038 }; 37039 return document; 37040 }; 37041 37042 Sizzle.matches = function (expr, elements) { 37043 return Sizzle(expr, null, null, elements); 37044 }; 37045 37046 Sizzle.matchesSelector = function (elem, expr) { 37047 setDocument(elem); 37048 37049 if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + " "] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) { 37050 try { 37051 var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes 37052 37053 if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document 37054 // fragment in IE 9 37055 elem.document && elem.document.nodeType !== 11) { 37056 return ret; 37057 } 37058 } catch (e) { 37059 nonnativeSelectorCache(expr, true); 37060 } 37061 } 37062 37063 return Sizzle(expr, document, null, [elem]).length > 0; 37064 }; 37065 37066 Sizzle.contains = function (context, elem) { 37067 // Set document vars if needed 37068 // Support: IE 11+, Edge 17 - 18+ 37069 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 37070 // two documents; shallow comparisons work. 37071 // eslint-disable-next-line eqeqeq 37072 if ((context.ownerDocument || context) != document) { 37073 setDocument(context); 37074 } 37075 37076 return contains(context, elem); 37077 }; 37078 37079 Sizzle.attr = function (elem, name) { 37080 // Set document vars if needed 37081 // Support: IE 11+, Edge 17 - 18+ 37082 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 37083 // two documents; shallow comparisons work. 37084 // eslint-disable-next-line eqeqeq 37085 if ((elem.ownerDocument || elem) != document) { 37086 setDocument(elem); 37087 } 37088 37089 var fn = Expr.attrHandle[name.toLowerCase()], 37090 // Don't get fooled by Object.prototype properties (jQuery #13807) 37091 val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined; 37092 return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; 37093 }; 37094 37095 Sizzle.escape = function (sel) { 37096 return (sel + "").replace(rcssescape, fcssescape); 37097 }; 37098 37099 Sizzle.error = function (msg) { 37100 throw new Error("Syntax error, unrecognized expression: " + msg); 37101 }; 37102 /** 37103 * Document sorting and removing duplicates 37104 * @param {ArrayLike} results 37105 */ 37106 37107 37108 Sizzle.uniqueSort = function (results) { 37109 var elem, 37110 duplicates = [], 37111 j = 0, 37112 i = 0; // Unless we *know* we can detect duplicates, assume their presence 37113 37114 hasDuplicate = !support.detectDuplicates; 37115 sortInput = !support.sortStable && results.slice(0); 37116 results.sort(sortOrder); 37117 37118 if (hasDuplicate) { 37119 while (elem = results[i++]) { 37120 if (elem === results[i]) { 37121 j = duplicates.push(i); 37122 } 37123 } 37124 37125 while (j--) { 37126 results.splice(duplicates[j], 1); 37127 } 37128 } // Clear input after sorting to release objects 37129 // See https://github.com/jquery/sizzle/pull/225 37130 37131 37132 sortInput = null; 37133 return results; 37134 }; 37135 /** 37136 * Utility function for retrieving the text value of an array of DOM nodes 37137 * @param {Array|Element} elem 37138 */ 37139 37140 37141 getText = Sizzle.getText = function (elem) { 37142 var node, 37143 ret = "", 37144 i = 0, 37145 nodeType = elem.nodeType; 37146 37147 if (!nodeType) { 37148 // If no nodeType, this is expected to be an array 37149 while (node = elem[i++]) { 37150 // Do not traverse comment nodes 37151 ret += getText(node); 37152 } 37153 } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) { 37154 // Use textContent for elements 37155 // innerText usage removed for consistency of new lines (jQuery #11153) 37156 if (typeof elem.textContent === "string") { 37157 return elem.textContent; 37158 } else { 37159 // Traverse its children 37160 for (elem = elem.firstChild; elem; elem = elem.nextSibling) { 37161 ret += getText(elem); 37162 } 37163 } 37164 } else if (nodeType === 3 || nodeType === 4) { 37165 return elem.nodeValue; 37166 } // Do not include comment or processing instruction nodes 37167 37168 37169 return ret; 37170 }; 37171 37172 Expr = Sizzle.selectors = { 37173 // Can be adjusted by the user 37174 cacheLength: 50, 37175 createPseudo: markFunction, 37176 match: matchExpr, 37177 attrHandle: {}, 37178 find: {}, 37179 relative: { 37180 ">": { 37181 dir: "parentNode", 37182 first: true 37183 }, 37184 " ": { 37185 dir: "parentNode" 37186 }, 37187 "+": { 37188 dir: "previousSibling", 37189 first: true 37190 }, 37191 "~": { 37192 dir: "previousSibling" 37193 } 37194 }, 37195 preFilter: { 37196 "ATTR": function ATTR(match) { 37197 match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted 37198 37199 match[3] = (match[3] || match[4] || match[5] || "").replace(runescape, funescape); 37200 37201 if (match[2] === "~=") { 37202 match[3] = " " + match[3] + " "; 37203 } 37204 37205 return match.slice(0, 4); 37206 }, 37207 "CHILD": function CHILD(match) { 37208 /* matches from matchExpr["CHILD"] 37209 1 type (only|nth|...) 37210 2 what (child|of-type) 37211 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) 37212 4 xn-component of xn+y argument ([+-]?\d*n|) 37213 5 sign of xn-component 37214 6 x of xn-component 37215 7 sign of y-component 37216 8 y of y-component 37217 */ 37218 match[1] = match[1].toLowerCase(); 37219 37220 if (match[1].slice(0, 3) === "nth") { 37221 // nth-* requires argument 37222 if (!match[3]) { 37223 Sizzle.error(match[0]); 37224 } // numeric x and y parameters for Expr.filter.CHILD 37225 // remember that false/true cast respectively to 0/1 37226 37227 37228 match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === "even" || match[3] === "odd")); 37229 match[5] = +(match[7] + match[8] || match[3] === "odd"); // other types prohibit arguments 37230 } else if (match[3]) { 37231 Sizzle.error(match[0]); 37232 } 37233 37234 return match; 37235 }, 37236 "PSEUDO": function PSEUDO(match) { 37237 var excess, 37238 unquoted = !match[6] && match[2]; 37239 37240 if (matchExpr["CHILD"].test(match[0])) { 37241 return null; 37242 } // Accept quoted arguments as-is 37243 37244 37245 if (match[3]) { 37246 match[2] = match[4] || match[5] || ""; // Strip excess characters from unquoted arguments 37247 } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively) 37248 excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis 37249 excess = unquoted.indexOf(")", unquoted.length - excess) - unquoted.length)) { 37250 // excess is a negative index 37251 match[0] = match[0].slice(0, excess); 37252 match[2] = unquoted.slice(0, excess); 37253 } // Return only captures needed by the pseudo filter method (type and argument) 37254 37255 37256 return match.slice(0, 3); 37257 } 37258 }, 37259 filter: { 37260 "TAG": function TAG(nodeNameSelector) { 37261 var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase(); 37262 return nodeNameSelector === "*" ? function () { 37263 return true; 37264 } : function (elem) { 37265 return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; 37266 }; 37267 }, 37268 "CLASS": function CLASS(className) { 37269 var pattern = classCache[className + " "]; 37270 return pattern || (pattern = new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)")) && classCache(className, function (elem) { 37271 return pattern.test(typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || ""); 37272 }); 37273 }, 37274 "ATTR": function ATTR(name, operator, check) { 37275 return function (elem) { 37276 var result = Sizzle.attr(elem, name); 37277 37278 if (result == null) { 37279 return operator === "!="; 37280 } 37281 37282 if (!operator) { 37283 return true; 37284 } 37285 37286 result += ""; 37287 /* eslint-disable max-len */ 37288 37289 return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf(check) === 0 : operator === "*=" ? check && result.indexOf(check) > -1 : operator === "$=" ? check && result.slice(-check.length) === check : operator === "~=" ? (" " + result.replace(rwhitespace, " ") + " ").indexOf(check) > -1 : operator === "|=" ? result === check || result.slice(0, check.length + 1) === check + "-" : false; 37290 /* eslint-enable max-len */ 37291 }; 37292 }, 37293 "CHILD": function CHILD(type, what, _argument, first, last) { 37294 var simple = type.slice(0, 3) !== "nth", 37295 forward = type.slice(-4) !== "last", 37296 ofType = what === "of-type"; 37297 return first === 1 && last === 0 ? // Shortcut for :nth-*(n) 37298 function (elem) { 37299 return !!elem.parentNode; 37300 } : function (elem, _context, xml) { 37301 var cache, 37302 uniqueCache, 37303 outerCache, 37304 node, 37305 nodeIndex, 37306 start, 37307 dir = simple !== forward ? "nextSibling" : "previousSibling", 37308 parent = elem.parentNode, 37309 name = ofType && elem.nodeName.toLowerCase(), 37310 useCache = !xml && !ofType, 37311 diff = false; 37312 37313 if (parent) { 37314 // :(first|last|only)-(child|of-type) 37315 if (simple) { 37316 while (dir) { 37317 node = elem; 37318 37319 while (node = node[dir]) { 37320 if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) { 37321 return false; 37322 } 37323 } // Reverse direction for :only-* (if we haven't yet done so) 37324 37325 37326 start = dir = type === "only" && !start && "nextSibling"; 37327 } 37328 37329 return true; 37330 } 37331 37332 start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent` 37333 37334 if (forward && useCache) { 37335 // Seek `elem` from a previously-cached index 37336 // ...in a gzip-friendly way 37337 node = parent; 37338 outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only 37339 // Defend against cloned attroperties (jQuery gh-1709) 37340 37341 uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {}); 37342 cache = uniqueCache[type] || []; 37343 nodeIndex = cache[0] === dirruns && cache[1]; 37344 diff = nodeIndex && cache[2]; 37345 node = nodeIndex && parent.childNodes[nodeIndex]; 37346 37347 while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start 37348 diff = nodeIndex = 0) || start.pop()) { 37349 // When found, cache indexes on `parent` and break 37350 if (node.nodeType === 1 && ++diff && node === elem) { 37351 uniqueCache[type] = [dirruns, nodeIndex, diff]; 37352 break; 37353 } 37354 } 37355 } else { 37356 // Use previously-cached element index if available 37357 if (useCache) { 37358 // ...in a gzip-friendly way 37359 node = elem; 37360 outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only 37361 // Defend against cloned attroperties (jQuery gh-1709) 37362 37363 uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {}); 37364 cache = uniqueCache[type] || []; 37365 nodeIndex = cache[0] === dirruns && cache[1]; 37366 diff = nodeIndex; 37367 } // xml :nth-child(...) 37368 // or :nth-last-child(...) or :nth(-last)?-of-type(...) 37369 37370 37371 if (diff === false) { 37372 // Use the same loop as above to seek `elem` from the start 37373 while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) { 37374 if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) { 37375 // Cache the index of each encountered element 37376 if (useCache) { 37377 outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only 37378 // Defend against cloned attroperties (jQuery gh-1709) 37379 37380 uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {}); 37381 uniqueCache[type] = [dirruns, diff]; 37382 } 37383 37384 if (node === elem) { 37385 break; 37386 } 37387 } 37388 } 37389 } 37390 } // Incorporate the offset, then check against cycle size 37391 37392 37393 diff -= last; 37394 return diff === first || diff % first === 0 && diff / first >= 0; 37395 } 37396 }; 37397 }, 37398 "PSEUDO": function PSEUDO(pseudo, argument) { 37399 // pseudo-class names are case-insensitive 37400 // http://www.w3.org/TR/selectors/#pseudo-classes 37401 // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters 37402 // Remember that setFilters inherits from pseudos 37403 var args, 37404 fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error("unsupported pseudo: " + pseudo); // The user may use createPseudo to indicate that 37405 // arguments are needed to create the filter function 37406 // just as Sizzle does 37407 37408 if (fn[expando]) { 37409 return fn(argument); 37410 } // But maintain support for old signatures 37411 37412 37413 if (fn.length > 1) { 37414 args = [pseudo, pseudo, "", argument]; 37415 return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) { 37416 var idx, 37417 matched = fn(seed, argument), 37418 i = matched.length; 37419 37420 while (i--) { 37421 idx = indexOf(seed, matched[i]); 37422 seed[idx] = !(matches[idx] = matched[i]); 37423 } 37424 }) : function (elem) { 37425 return fn(elem, 0, args); 37426 }; 37427 } 37428 37429 return fn; 37430 } 37431 }, 37432 pseudos: { 37433 // Potentially complex pseudos 37434 "not": markFunction(function (selector) { 37435 // Trim the selector passed to compile 37436 // to avoid treating leading and trailing 37437 // spaces as combinators 37438 var input = [], 37439 results = [], 37440 matcher = compile(selector.replace(rtrim, "$1")); 37441 return matcher[expando] ? markFunction(function (seed, matches, _context, xml) { 37442 var elem, 37443 unmatched = matcher(seed, null, xml, []), 37444 i = seed.length; // Match elements unmatched by `matcher` 37445 37446 while (i--) { 37447 if (elem = unmatched[i]) { 37448 seed[i] = !(matches[i] = elem); 37449 } 37450 } 37451 }) : function (elem, _context, xml) { 37452 input[0] = elem; 37453 matcher(input, null, xml, results); // Don't keep the element (issue #299) 37454 37455 input[0] = null; 37456 return !results.pop(); 37457 }; 37458 }), 37459 "has": markFunction(function (selector) { 37460 return function (elem) { 37461 return Sizzle(selector, elem).length > 0; 37462 }; 37463 }), 37464 "contains": markFunction(function (text) { 37465 text = text.replace(runescape, funescape); 37466 return function (elem) { 37467 return (elem.textContent || getText(elem)).indexOf(text) > -1; 37468 }; 37469 }), 37470 // "Whether an element is represented by a :lang() selector 37471 // is based solely on the element's language value 37472 // being equal to the identifier C, 37473 // or beginning with the identifier C immediately followed by "-". 37474 // The matching of C against the element's language value is performed case-insensitively. 37475 // The identifier C does not have to be a valid language name." 37476 // http://www.w3.org/TR/selectors/#lang-pseudo 37477 "lang": markFunction(function (lang) { 37478 // lang value must be a valid identifier 37479 if (!ridentifier.test(lang || "")) { 37480 Sizzle.error("unsupported lang: " + lang); 37481 } 37482 37483 lang = lang.replace(runescape, funescape).toLowerCase(); 37484 return function (elem) { 37485 var elemLang; 37486 37487 do { 37488 if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute("xml:lang") || elem.getAttribute("lang")) { 37489 elemLang = elemLang.toLowerCase(); 37490 return elemLang === lang || elemLang.indexOf(lang + "-") === 0; 37491 } 37492 } while ((elem = elem.parentNode) && elem.nodeType === 1); 37493 37494 return false; 37495 }; 37496 }), 37497 // Miscellaneous 37498 "target": function target(elem) { 37499 var hash = window.location && window.location.hash; 37500 return hash && hash.slice(1) === elem.id; 37501 }, 37502 "root": function root(elem) { 37503 return elem === docElem; 37504 }, 37505 "focus": function focus(elem) { 37506 return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); 37507 }, 37508 // Boolean properties 37509 "enabled": createDisabledPseudo(false), 37510 "disabled": createDisabledPseudo(true), 37511 "checked": function checked(elem) { 37512 // In CSS3, :checked should return both checked and selected elements 37513 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 37514 var nodeName = elem.nodeName.toLowerCase(); 37515 return nodeName === "input" && !!elem.checked || nodeName === "option" && !!elem.selected; 37516 }, 37517 "selected": function selected(elem) { 37518 // Accessing this property makes selected-by-default 37519 // options in Safari work properly 37520 if (elem.parentNode) { 37521 // eslint-disable-next-line no-unused-expressions 37522 elem.parentNode.selectedIndex; 37523 } 37524 37525 return elem.selected === true; 37526 }, 37527 // Contents 37528 "empty": function empty(elem) { 37529 // http://www.w3.org/TR/selectors/#empty-pseudo 37530 // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), 37531 // but not by others (comment: 8; processing instruction: 7; etc.) 37532 // nodeType < 6 works because attributes (2) do not appear as children 37533 for (elem = elem.firstChild; elem; elem = elem.nextSibling) { 37534 if (elem.nodeType < 6) { 37535 return false; 37536 } 37537 } 37538 37539 return true; 37540 }, 37541 "parent": function parent(elem) { 37542 return !Expr.pseudos["empty"](elem); 37543 }, 37544 // Element/input types 37545 "header": function header(elem) { 37546 return rheader.test(elem.nodeName); 37547 }, 37548 "input": function input(elem) { 37549 return rinputs.test(elem.nodeName); 37550 }, 37551 "button": function button(elem) { 37552 var name = elem.nodeName.toLowerCase(); 37553 return name === "input" && elem.type === "button" || name === "button"; 37554 }, 37555 "text": function text(elem) { 37556 var attr; 37557 return elem.nodeName.toLowerCase() === "input" && elem.type === "text" && ( // Support: IE<8 37558 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" 37559 (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text"); 37560 }, 37561 // Position-in-collection 37562 "first": createPositionalPseudo(function () { 37563 return [0]; 37564 }), 37565 "last": createPositionalPseudo(function (_matchIndexes, length) { 37566 return [length - 1]; 37567 }), 37568 "eq": createPositionalPseudo(function (_matchIndexes, length, argument) { 37569 return [argument < 0 ? argument + length : argument]; 37570 }), 37571 "even": createPositionalPseudo(function (matchIndexes, length) { 37572 var i = 0; 37573 37574 for (; i < length; i += 2) { 37575 matchIndexes.push(i); 37576 } 37577 37578 return matchIndexes; 37579 }), 37580 "odd": createPositionalPseudo(function (matchIndexes, length) { 37581 var i = 1; 37582 37583 for (; i < length; i += 2) { 37584 matchIndexes.push(i); 37585 } 37586 37587 return matchIndexes; 37588 }), 37589 "lt": createPositionalPseudo(function (matchIndexes, length, argument) { 37590 var i = argument < 0 ? argument + length : argument > length ? length : argument; 37591 37592 for (; --i >= 0;) { 37593 matchIndexes.push(i); 37594 } 37595 37596 return matchIndexes; 37597 }), 37598 "gt": createPositionalPseudo(function (matchIndexes, length, argument) { 37599 var i = argument < 0 ? argument + length : argument; 37600 37601 for (; ++i < length;) { 37602 matchIndexes.push(i); 37603 } 37604 37605 return matchIndexes; 37606 }) 37607 } 37608 }; 37609 Expr.pseudos["nth"] = Expr.pseudos["eq"]; // Add button/input type pseudos 37610 37611 for (i in { 37612 radio: true, 37613 checkbox: true, 37614 file: true, 37615 password: true, 37616 image: true 37617 }) { 37618 Expr.pseudos[i] = createInputPseudo(i); 37619 } 37620 37621 for (i in { 37622 submit: true, 37623 reset: true 37624 }) { 37625 Expr.pseudos[i] = createButtonPseudo(i); 37626 } // Easy API for creating new setFilters 37627 37628 37629 function setFilters() {} 37630 37631 setFilters.prototype = Expr.filters = Expr.pseudos; 37632 Expr.setFilters = new setFilters(); 37633 37634 tokenize = Sizzle.tokenize = function (selector, parseOnly) { 37635 var matched, 37636 match, 37637 tokens, 37638 type, 37639 soFar, 37640 groups, 37641 preFilters, 37642 cached = tokenCache[selector + " "]; 37643 37644 if (cached) { 37645 return parseOnly ? 0 : cached.slice(0); 37646 } 37647 37648 soFar = selector; 37649 groups = []; 37650 preFilters = Expr.preFilter; 37651 37652 while (soFar) { 37653 // Comma and first run 37654 if (!matched || (match = rcomma.exec(soFar))) { 37655 if (match) { 37656 // Don't consume trailing commas as valid 37657 soFar = soFar.slice(match[0].length) || soFar; 37658 } 37659 37660 groups.push(tokens = []); 37661 } 37662 37663 matched = false; // Combinators 37664 37665 if (match = rcombinators.exec(soFar)) { 37666 matched = match.shift(); 37667 tokens.push({ 37668 value: matched, 37669 // Cast descendant combinators to space 37670 type: match[0].replace(rtrim, " ") 37671 }); 37672 soFar = soFar.slice(matched.length); 37673 } // Filters 37674 37675 37676 for (type in Expr.filter) { 37677 if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) { 37678 matched = match.shift(); 37679 tokens.push({ 37680 value: matched, 37681 type: type, 37682 matches: match 37683 }); 37684 soFar = soFar.slice(matched.length); 37685 } 37686 } 37687 37688 if (!matched) { 37689 break; 37690 } 37691 } // Return the length of the invalid excess 37692 // if we're just parsing 37693 // Otherwise, throw an error or return tokens 37694 37695 37696 return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens 37697 tokenCache(selector, groups).slice(0); 37698 }; 37699 37700 function toSelector(tokens) { 37701 var i = 0, 37702 len = tokens.length, 37703 selector = ""; 37704 37705 for (; i < len; i++) { 37706 selector += tokens[i].value; 37707 } 37708 37709 return selector; 37710 } 37711 37712 function addCombinator(matcher, combinator, base) { 37713 var dir = combinator.dir, 37714 skip = combinator.next, 37715 key = skip || dir, 37716 checkNonElements = base && key === "parentNode", 37717 doneName = done++; 37718 return combinator.first ? // Check against closest ancestor/preceding element 37719 function (elem, context, xml) { 37720 while (elem = elem[dir]) { 37721 if (elem.nodeType === 1 || checkNonElements) { 37722 return matcher(elem, context, xml); 37723 } 37724 } 37725 37726 return false; 37727 } : // Check against all ancestor/preceding elements 37728 function (elem, context, xml) { 37729 var oldCache, 37730 uniqueCache, 37731 outerCache, 37732 newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching 37733 37734 if (xml) { 37735 while (elem = elem[dir]) { 37736 if (elem.nodeType === 1 || checkNonElements) { 37737 if (matcher(elem, context, xml)) { 37738 return true; 37739 } 37740 } 37741 } 37742 } else { 37743 while (elem = elem[dir]) { 37744 if (elem.nodeType === 1 || checkNonElements) { 37745 outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only 37746 // Defend against cloned attroperties (jQuery gh-1709) 37747 37748 uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {}); 37749 37750 if (skip && skip === elem.nodeName.toLowerCase()) { 37751 elem = elem[dir] || elem; 37752 } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) { 37753 // Assign to newCache so results back-propagate to previous elements 37754 return newCache[2] = oldCache[2]; 37755 } else { 37756 // Reuse newcache so results back-propagate to previous elements 37757 uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking 37758 37759 if (newCache[2] = matcher(elem, context, xml)) { 37760 return true; 37761 } 37762 } 37763 } 37764 } 37765 } 37766 37767 return false; 37768 }; 37769 } 37770 37771 function elementMatcher(matchers) { 37772 return matchers.length > 1 ? function (elem, context, xml) { 37773 var i = matchers.length; 37774 37775 while (i--) { 37776 if (!matchers[i](elem, context, xml)) { 37777 return false; 37778 } 37779 } 37780 37781 return true; 37782 } : matchers[0]; 37783 } 37784 37785 function multipleContexts(selector, contexts, results) { 37786 var i = 0, 37787 len = contexts.length; 37788 37789 for (; i < len; i++) { 37790 Sizzle(selector, contexts[i], results); 37791 } 37792 37793 return results; 37794 } 37795 37796 function condense(unmatched, map, filter, context, xml) { 37797 var elem, 37798 newUnmatched = [], 37799 i = 0, 37800 len = unmatched.length, 37801 mapped = map != null; 37802 37803 for (; i < len; i++) { 37804 if (elem = unmatched[i]) { 37805 if (!filter || filter(elem, context, xml)) { 37806 newUnmatched.push(elem); 37807 37808 if (mapped) { 37809 map.push(i); 37810 } 37811 } 37812 } 37813 } 37814 37815 return newUnmatched; 37816 } 37817 37818 function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) { 37819 if (postFilter && !postFilter[expando]) { 37820 postFilter = setMatcher(postFilter); 37821 } 37822 37823 if (postFinder && !postFinder[expando]) { 37824 postFinder = setMatcher(postFinder, postSelector); 37825 } 37826 37827 return markFunction(function (seed, results, context, xml) { 37828 var temp, 37829 i, 37830 elem, 37831 preMap = [], 37832 postMap = [], 37833 preexisting = results.length, 37834 // Get initial elements from seed or context 37835 elems = seed || multipleContexts(selector || "*", context.nodeType ? [context] : context, []), 37836 // Prefilter to get matcher input, preserving a map for seed-results synchronization 37837 matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems, 37838 matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, 37839 postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary 37840 [] : // ...otherwise use results directly 37841 results : matcherIn; // Find primary matches 37842 37843 if (matcher) { 37844 matcher(matcherIn, matcherOut, context, xml); 37845 } // Apply postFilter 37846 37847 37848 if (postFilter) { 37849 temp = condense(matcherOut, postMap); 37850 postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn 37851 37852 i = temp.length; 37853 37854 while (i--) { 37855 if (elem = temp[i]) { 37856 matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem); 37857 } 37858 } 37859 } 37860 37861 if (seed) { 37862 if (postFinder || preFilter) { 37863 if (postFinder) { 37864 // Get the final matcherOut by condensing this intermediate into postFinder contexts 37865 temp = []; 37866 i = matcherOut.length; 37867 37868 while (i--) { 37869 if (elem = matcherOut[i]) { 37870 // Restore matcherIn since elem is not yet a final match 37871 temp.push(matcherIn[i] = elem); 37872 } 37873 } 37874 37875 postFinder(null, matcherOut = [], temp, xml); 37876 } // Move matched elements from seed to results to keep them synchronized 37877 37878 37879 i = matcherOut.length; 37880 37881 while (i--) { 37882 if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) { 37883 seed[temp] = !(results[temp] = elem); 37884 } 37885 } 37886 } // Add elements to results, through postFinder if defined 37887 37888 } else { 37889 matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut); 37890 37891 if (postFinder) { 37892 postFinder(null, results, matcherOut, xml); 37893 } else { 37894 push.apply(results, matcherOut); 37895 } 37896 } 37897 }); 37898 } 37899 37900 function matcherFromTokens(tokens) { 37901 var checkContext, 37902 matcher, 37903 j, 37904 len = tokens.length, 37905 leadingRelative = Expr.relative[tokens[0].type], 37906 implicitRelative = leadingRelative || Expr.relative[" "], 37907 i = leadingRelative ? 1 : 0, 37908 // The foundational matcher ensures that elements are reachable from top-level context(s) 37909 matchContext = addCombinator(function (elem) { 37910 return elem === checkContext; 37911 }, implicitRelative, true), 37912 matchAnyContext = addCombinator(function (elem) { 37913 return indexOf(checkContext, elem) > -1; 37914 }, implicitRelative, true), 37915 matchers = [function (elem, context, xml) { 37916 var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299) 37917 37918 checkContext = null; 37919 return ret; 37920 }]; 37921 37922 for (; i < len; i++) { 37923 if (matcher = Expr.relative[tokens[i].type]) { 37924 matchers = [addCombinator(elementMatcher(matchers), matcher)]; 37925 } else { 37926 matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher 37927 37928 if (matcher[expando]) { 37929 // Find the next relative operator (if any) for proper handling 37930 j = ++i; 37931 37932 for (; j < len; j++) { 37933 if (Expr.relative[tokens[j].type]) { 37934 break; 37935 } 37936 } 37937 37938 return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*` 37939 tokens.slice(0, i - 1).concat({ 37940 value: tokens[i - 2].type === " " ? "*" : "" 37941 })).replace(rtrim, "$1"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens)); 37942 } 37943 37944 matchers.push(matcher); 37945 } 37946 } 37947 37948 return elementMatcher(matchers); 37949 } 37950 37951 function matcherFromGroupMatchers(elementMatchers, setMatchers) { 37952 var bySet = setMatchers.length > 0, 37953 byElement = elementMatchers.length > 0, 37954 superMatcher = function superMatcher(seed, context, xml, results, outermost) { 37955 var elem, 37956 j, 37957 matcher, 37958 matchedCount = 0, 37959 i = "0", 37960 unmatched = seed && [], 37961 setMatched = [], 37962 contextBackup = outermostContext, 37963 // We must always have either seed elements or outermost context 37964 elems = seed || byElement && Expr.find["TAG"]("*", outermost), 37965 // Use integer dirruns iff this is the outermost matcher 37966 dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1, 37967 len = elems.length; 37968 37969 if (outermost) { 37970 // Support: IE 11+, Edge 17 - 18+ 37971 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 37972 // two documents; shallow comparisons work. 37973 // eslint-disable-next-line eqeqeq 37974 outermostContext = context == document || context || outermost; 37975 } // Add elements passing elementMatchers directly to results 37976 // Support: IE<9, Safari 37977 // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id 37978 37979 37980 for (; i !== len && (elem = elems[i]) != null; i++) { 37981 if (byElement && elem) { 37982 j = 0; // Support: IE 11+, Edge 17 - 18+ 37983 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 37984 // two documents; shallow comparisons work. 37985 // eslint-disable-next-line eqeqeq 37986 37987 if (!context && elem.ownerDocument != document) { 37988 setDocument(elem); 37989 xml = !documentIsHTML; 37990 } 37991 37992 while (matcher = elementMatchers[j++]) { 37993 if (matcher(elem, context || document, xml)) { 37994 results.push(elem); 37995 break; 37996 } 37997 } 37998 37999 if (outermost) { 38000 dirruns = dirrunsUnique; 38001 } 38002 } // Track unmatched elements for set filters 38003 38004 38005 if (bySet) { 38006 // They will have gone through all possible matchers 38007 if (elem = !matcher && elem) { 38008 matchedCount--; 38009 } // Lengthen the array for every element, matched or not 38010 38011 38012 if (seed) { 38013 unmatched.push(elem); 38014 } 38015 } 38016 } // `i` is now the count of elements visited above, and adding it to `matchedCount` 38017 // makes the latter nonnegative. 38018 38019 38020 matchedCount += i; // Apply set filters to unmatched elements 38021 // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` 38022 // equals `i`), unless we didn't visit _any_ elements in the above loop because we have 38023 // no element matchers and no seed. 38024 // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that 38025 // case, which will result in a "00" `matchedCount` that differs from `i` but is also 38026 // numerically zero. 38027 38028 if (bySet && i !== matchedCount) { 38029 j = 0; 38030 38031 while (matcher = setMatchers[j++]) { 38032 matcher(unmatched, setMatched, context, xml); 38033 } 38034 38035 if (seed) { 38036 // Reintegrate element matches to eliminate the need for sorting 38037 if (matchedCount > 0) { 38038 while (i--) { 38039 if (!(unmatched[i] || setMatched[i])) { 38040 setMatched[i] = pop.call(results); 38041 } 38042 } 38043 } // Discard index placeholder values to get only actual matches 38044 38045 38046 setMatched = condense(setMatched); 38047 } // Add matches to results 38048 38049 38050 push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting 38051 38052 if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) { 38053 Sizzle.uniqueSort(results); 38054 } 38055 } // Override manipulation of globals by nested matchers 38056 38057 38058 if (outermost) { 38059 dirruns = dirrunsUnique; 38060 outermostContext = contextBackup; 38061 } 38062 38063 return unmatched; 38064 }; 38065 38066 return bySet ? markFunction(superMatcher) : superMatcher; 38067 } 38068 38069 compile = Sizzle.compile = function (selector, match 38070 /* Internal Use Only */ 38071 ) { 38072 var i, 38073 setMatchers = [], 38074 elementMatchers = [], 38075 cached = compilerCache[selector + " "]; 38076 38077 if (!cached) { 38078 // Generate a function of recursive functions that can be used to check each element 38079 if (!match) { 38080 match = tokenize(selector); 38081 } 38082 38083 i = match.length; 38084 38085 while (i--) { 38086 cached = matcherFromTokens(match[i]); 38087 38088 if (cached[expando]) { 38089 setMatchers.push(cached); 38090 } else { 38091 elementMatchers.push(cached); 38092 } 38093 } // Cache the compiled function 38094 38095 38096 cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization 38097 38098 cached.selector = selector; 38099 } 38100 38101 return cached; 38102 }; 38103 /** 38104 * A low-level selection function that works with Sizzle's compiled 38105 * selector functions 38106 * @param {String|Function} selector A selector or a pre-compiled 38107 * selector function built with Sizzle.compile 38108 * @param {Element} context 38109 * @param {Array} [results] 38110 * @param {Array} [seed] A set of elements to match against 38111 */ 38112 38113 38114 select = Sizzle.select = function (selector, context, results, seed) { 38115 var i, 38116 tokens, 38117 token, 38118 type, 38119 find, 38120 compiled = typeof selector === "function" && selector, 38121 match = !seed && tokenize(selector = compiled.selector || selector); 38122 results = results || []; // Try to minimize operations if there is only one selector in the list and no seed 38123 // (the latter of which guarantees us context) 38124 38125 if (match.length === 1) { 38126 // Reduce context if the leading compound selector is an ID 38127 tokens = match[0] = match[0].slice(0); 38128 38129 if (tokens.length > 2 && (token = tokens[0]).type === "ID" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) { 38130 context = (Expr.find["ID"](token.matches[0].replace(runescape, funescape), context) || [])[0]; 38131 38132 if (!context) { 38133 return results; // Precompiled matchers will still verify ancestry, so step up a level 38134 } else if (compiled) { 38135 context = context.parentNode; 38136 } 38137 38138 selector = selector.slice(tokens.shift().value.length); 38139 } // Fetch a seed set for right-to-left matching 38140 38141 38142 i = matchExpr["needsContext"].test(selector) ? 0 : tokens.length; 38143 38144 while (i--) { 38145 token = tokens[i]; // Abort if we hit a combinator 38146 38147 if (Expr.relative[type = token.type]) { 38148 break; 38149 } 38150 38151 if (find = Expr.find[type]) { 38152 // Search, expanding context for leading sibling combinators 38153 if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) { 38154 // If seed is empty or no tokens remain, we can return early 38155 tokens.splice(i, 1); 38156 selector = seed.length && toSelector(tokens); 38157 38158 if (!selector) { 38159 push.apply(results, seed); 38160 return results; 38161 } 38162 38163 break; 38164 } 38165 } 38166 } 38167 } // Compile and execute a filtering function if one is not provided 38168 // Provide `match` to avoid retokenization if we modified the selector above 38169 38170 38171 (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context); 38172 return results; 38173 }; // One-time assignments 38174 // Sort stability 38175 38176 38177 support.sortStable = expando.split("").sort(sortOrder).join("") === expando; // Support: Chrome 14-35+ 38178 // Always assume duplicates if they aren't passed to the comparison function 38179 38180 support.detectDuplicates = !!hasDuplicate; // Initialize against the default document 38181 38182 setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) 38183 // Detached nodes confoundingly follow *each other* 38184 38185 support.sortDetached = assert(function (el) { 38186 // Should return 1, but returns 4 (following) 38187 return el.compareDocumentPosition(document.createElement("fieldset")) & 1; 38188 }); // Support: IE<8 38189 // Prevent attribute/property "interpolation" 38190 // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx 38191 38192 if (!assert(function (el) { 38193 el.innerHTML = "<a href='#'></a>"; 38194 return el.firstChild.getAttribute("href") === "#"; 38195 })) { 38196 addHandle("type|href|height|width", function (elem, name, isXML) { 38197 if (!isXML) { 38198 return elem.getAttribute(name, name.toLowerCase() === "type" ? 1 : 2); 38199 } 38200 }); 38201 } // Support: IE<9 38202 // Use defaultValue in place of getAttribute("value") 38203 38204 38205 if (!support.attributes || !assert(function (el) { 38206 el.innerHTML = "<input/>"; 38207 el.firstChild.setAttribute("value", ""); 38208 return el.firstChild.getAttribute("value") === ""; 38209 })) { 38210 addHandle("value", function (elem, _name, isXML) { 38211 if (!isXML && elem.nodeName.toLowerCase() === "input") { 38212 return elem.defaultValue; 38213 } 38214 }); 38215 } // Support: IE<9 38216 // Use getAttributeNode to fetch booleans when getAttribute lies 38217 38218 38219 if (!assert(function (el) { 38220 return el.getAttribute("disabled") == null; 38221 })) { 38222 addHandle(booleans, function (elem, name, isXML) { 38223 var val; 38224 38225 if (!isXML) { 38226 return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; 38227 } 38228 }); 38229 } 38230 38231 return Sizzle; 38232 }(window); 38233 38234 jQuery.find = Sizzle; 38235 jQuery.expr = Sizzle.selectors; // Deprecated 38236 38237 jQuery.expr[":"] = jQuery.expr.pseudos; 38238 jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; 38239 jQuery.text = Sizzle.getText; 38240 jQuery.isXMLDoc = Sizzle.isXML; 38241 jQuery.contains = Sizzle.contains; 38242 jQuery.escapeSelector = Sizzle.escape; 38243 38244 var dir = function dir(elem, _dir, until) { 38245 var matched = [], 38246 truncate = until !== undefined; 38247 38248 while ((elem = elem[_dir]) && elem.nodeType !== 9) { 38249 if (elem.nodeType === 1) { 38250 if (truncate && jQuery(elem).is(until)) { 38251 break; 38252 } 38253 38254 matched.push(elem); 38255 } 38256 } 38257 38258 return matched; 38259 }; 38260 38261 var _siblings = function siblings(n, elem) { 38262 var matched = []; 38263 38264 for (; n; n = n.nextSibling) { 38265 if (n.nodeType === 1 && n !== elem) { 38266 matched.push(n); 38267 } 38268 } 38269 38270 return matched; 38271 }; 38272 38273 var rneedsContext = jQuery.expr.match.needsContext; 38274 38275 function nodeName(elem, name) { 38276 return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); 38277 } 38278 38279 var rsingleTag = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; // Implement the identical functionality for filter and not 38280 38281 function winnow(elements, qualifier, not) { 38282 if (isFunction(qualifier)) { 38283 return jQuery.grep(elements, function (elem, i) { 38284 return !!qualifier.call(elem, i, elem) !== not; 38285 }); 38286 } // Single element 38287 38288 38289 if (qualifier.nodeType) { 38290 return jQuery.grep(elements, function (elem) { 38291 return elem === qualifier !== not; 38292 }); 38293 } // Arraylike of elements (jQuery, arguments, Array) 38294 38295 38296 if (typeof qualifier !== "string") { 38297 return jQuery.grep(elements, function (elem) { 38298 return indexOf.call(qualifier, elem) > -1 !== not; 38299 }); 38300 } // Filtered directly for both simple and complex selectors 38301 38302 38303 return jQuery.filter(qualifier, elements, not); 38304 } 38305 38306 jQuery.filter = function (expr, elems, not) { 38307 var elem = elems[0]; 38308 38309 if (not) { 38310 expr = ":not(" + expr + ")"; 38311 } 38312 38313 if (elems.length === 1 && elem.nodeType === 1) { 38314 return jQuery.find.matchesSelector(elem, expr) ? [elem] : []; 38315 } 38316 38317 return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) { 38318 return elem.nodeType === 1; 38319 })); 38320 }; 38321 38322 jQuery.fn.extend({ 38323 find: function find(selector) { 38324 var i, 38325 ret, 38326 len = this.length, 38327 self = this; 38328 38329 if (typeof selector !== "string") { 38330 return this.pushStack(jQuery(selector).filter(function () { 38331 for (i = 0; i < len; i++) { 38332 if (jQuery.contains(self[i], this)) { 38333 return true; 38334 } 38335 } 38336 })); 38337 } 38338 38339 ret = this.pushStack([]); 38340 38341 for (i = 0; i < len; i++) { 38342 jQuery.find(selector, self[i], ret); 38343 } 38344 38345 return len > 1 ? jQuery.uniqueSort(ret) : ret; 38346 }, 38347 filter: function filter(selector) { 38348 return this.pushStack(winnow(this, selector || [], false)); 38349 }, 38350 not: function not(selector) { 38351 return this.pushStack(winnow(this, selector || [], true)); 38352 }, 38353 is: function is(selector) { 38354 return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set 38355 // so $("p:first").is("p:last") won't return true for a doc with two "p". 38356 typeof selector === "string" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length; 38357 } 38358 }); // Initialize a jQuery object 38359 // A central reference to the root jQuery(document) 38360 38361 var rootjQuery, 38362 // A simple way to check for HTML strings 38363 // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) 38364 // Strict HTML recognition (#11290: must start with <) 38365 // Shortcut simple #id case for speed 38366 rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, 38367 init = jQuery.fn.init = function (selector, context, root) { 38368 var match, elem; // HANDLE: $(""), $(null), $(undefined), $(false) 38369 38370 if (!selector) { 38371 return this; 38372 } // Method init() accepts an alternate rootjQuery 38373 // so migrate can support jQuery.sub (gh-2101) 38374 38375 38376 root = root || rootjQuery; // Handle HTML strings 38377 38378 if (typeof selector === "string") { 38379 if (selector[0] === "<" && selector[selector.length - 1] === ">" && selector.length >= 3) { 38380 // Assume that strings that start and end with <> are HTML and skip the regex check 38381 match = [null, selector, null]; 38382 } else { 38383 match = rquickExpr.exec(selector); 38384 } // Match html or make sure no context is specified for #id 38385 38386 38387 if (match && (match[1] || !context)) { 38388 // HANDLE: $(html) -> $(array) 38389 if (match[1]) { 38390 context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat 38391 // Intentionally let the error be thrown if parseHTML is not present 38392 38393 jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props) 38394 38395 if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) { 38396 for (match in context) { 38397 // Properties of context are called as methods if possible 38398 if (isFunction(this[match])) { 38399 this[match](context[match]); // ...and otherwise set as attributes 38400 } else { 38401 this.attr(match, context[match]); 38402 } 38403 } 38404 } 38405 38406 return this; // HANDLE: $(#id) 38407 } else { 38408 elem = document.getElementById(match[2]); 38409 38410 if (elem) { 38411 // Inject the element directly into the jQuery object 38412 this[0] = elem; 38413 this.length = 1; 38414 } 38415 38416 return this; 38417 } // HANDLE: $(expr, $(...)) 38418 38419 } else if (!context || context.jquery) { 38420 return (context || root).find(selector); // HANDLE: $(expr, context) 38421 // (which is just equivalent to: $(context).find(expr) 38422 } else { 38423 return this.constructor(context).find(selector); 38424 } // HANDLE: $(DOMElement) 38425 38426 } else if (selector.nodeType) { 38427 this[0] = selector; 38428 this.length = 1; 38429 return this; // HANDLE: $(function) 38430 // Shortcut for document ready 38431 } else if (isFunction(selector)) { 38432 return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present 38433 selector(jQuery); 38434 } 38435 38436 return jQuery.makeArray(selector, this); 38437 }; // Give the init function the jQuery prototype for later instantiation 38438 38439 38440 init.prototype = jQuery.fn; // Initialize central reference 38441 38442 rootjQuery = jQuery(document); 38443 var rparentsprev = /^(?:parents|prev(?:Until|All))/, 38444 // Methods guaranteed to produce a unique set when starting from a unique set 38445 guaranteedUnique = { 38446 children: true, 38447 contents: true, 38448 next: true, 38449 prev: true 38450 }; 38451 jQuery.fn.extend({ 38452 has: function has(target) { 38453 var targets = jQuery(target, this), 38454 l = targets.length; 38455 return this.filter(function () { 38456 var i = 0; 38457 38458 for (; i < l; i++) { 38459 if (jQuery.contains(this, targets[i])) { 38460 return true; 38461 } 38462 } 38463 }); 38464 }, 38465 closest: function closest(selectors, context) { 38466 var cur, 38467 i = 0, 38468 l = this.length, 38469 matched = [], 38470 targets = typeof selectors !== "string" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context 38471 38472 if (!rneedsContext.test(selectors)) { 38473 for (; i < l; i++) { 38474 for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) { 38475 // Always skip document fragments 38476 if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle 38477 cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) { 38478 matched.push(cur); 38479 break; 38480 } 38481 } 38482 } 38483 } 38484 38485 return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched); 38486 }, 38487 // Determine the position of an element within the set 38488 index: function index(elem) { 38489 // No argument, return index in parent 38490 if (!elem) { 38491 return this[0] && this[0].parentNode ? this.first().prevAll().length : -1; 38492 } // Index in selector 38493 38494 38495 if (typeof elem === "string") { 38496 return indexOf.call(jQuery(elem), this[0]); 38497 } // Locate the position of the desired element 38498 38499 38500 return indexOf.call(this, // If it receives a jQuery object, the first element is used 38501 elem.jquery ? elem[0] : elem); 38502 }, 38503 add: function add(selector, context) { 38504 return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context)))); 38505 }, 38506 addBack: function addBack(selector) { 38507 return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector)); 38508 } 38509 }); 38510 38511 function sibling(cur, dir) { 38512 while ((cur = cur[dir]) && cur.nodeType !== 1) {} 38513 38514 return cur; 38515 } 38516 38517 jQuery.each({ 38518 parent: function parent(elem) { 38519 var parent = elem.parentNode; 38520 return parent && parent.nodeType !== 11 ? parent : null; 38521 }, 38522 parents: function parents(elem) { 38523 return dir(elem, "parentNode"); 38524 }, 38525 parentsUntil: function parentsUntil(elem, _i, until) { 38526 return dir(elem, "parentNode", until); 38527 }, 38528 next: function next(elem) { 38529 return sibling(elem, "nextSibling"); 38530 }, 38531 prev: function prev(elem) { 38532 return sibling(elem, "previousSibling"); 38533 }, 38534 nextAll: function nextAll(elem) { 38535 return dir(elem, "nextSibling"); 38536 }, 38537 prevAll: function prevAll(elem) { 38538 return dir(elem, "previousSibling"); 38539 }, 38540 nextUntil: function nextUntil(elem, _i, until) { 38541 return dir(elem, "nextSibling", until); 38542 }, 38543 prevUntil: function prevUntil(elem, _i, until) { 38544 return dir(elem, "previousSibling", until); 38545 }, 38546 siblings: function siblings(elem) { 38547 return _siblings((elem.parentNode || {}).firstChild, elem); 38548 }, 38549 children: function children(elem) { 38550 return _siblings(elem.firstChild); 38551 }, 38552 contents: function contents(elem) { 38553 if (elem.contentDocument != null && // Support: IE 11+ 38554 // <object> elements with no `data` attribute has an object 38555 // `contentDocument` with a `null` prototype. 38556 getProto(elem.contentDocument)) { 38557 return elem.contentDocument; 38558 } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only 38559 // Treat the template element as a regular one in browsers that 38560 // don't support it. 38561 38562 38563 if (nodeName(elem, "template")) { 38564 elem = elem.content || elem; 38565 } 38566 38567 return jQuery.merge([], elem.childNodes); 38568 } 38569 }, function (name, fn) { 38570 jQuery.fn[name] = function (until, selector) { 38571 var matched = jQuery.map(this, fn, until); 38572 38573 if (name.slice(-5) !== "Until") { 38574 selector = until; 38575 } 38576 38577 if (selector && typeof selector === "string") { 38578 matched = jQuery.filter(selector, matched); 38579 } 38580 38581 if (this.length > 1) { 38582 // Remove duplicates 38583 if (!guaranteedUnique[name]) { 38584 jQuery.uniqueSort(matched); 38585 } // Reverse order for parents* and prev-derivatives 38586 38587 38588 if (rparentsprev.test(name)) { 38589 matched.reverse(); 38590 } 38591 } 38592 38593 return this.pushStack(matched); 38594 }; 38595 }); 38596 var rnothtmlwhite = /[^\x20\t\r\n\f]+/g; // Convert String-formatted options into Object-formatted ones 38597 38598 function createOptions(options) { 38599 var object = {}; 38600 jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) { 38601 object[flag] = true; 38602 }); 38603 return object; 38604 } 38605 /* 38606 * Create a callback list using the following parameters: 38607 * 38608 * options: an optional list of space-separated options that will change how 38609 * the callback list behaves or a more traditional option object 38610 * 38611 * By default a callback list will act like an event callback list and can be 38612 * "fired" multiple times. 38613 * 38614 * Possible options: 38615 * 38616 * once: will ensure the callback list can only be fired once (like a Deferred) 38617 * 38618 * memory: will keep track of previous values and will call any callback added 38619 * after the list has been fired right away with the latest "memorized" 38620 * values (like a Deferred) 38621 * 38622 * unique: will ensure a callback can only be added once (no duplicate in the list) 38623 * 38624 * stopOnFalse: interrupt callings when a callback returns false 38625 * 38626 */ 38627 38628 38629 jQuery.Callbacks = function (options) { 38630 // Convert options from String-formatted to Object-formatted if needed 38631 // (we check in cache first) 38632 options = typeof options === "string" ? createOptions(options) : jQuery.extend({}, options); 38633 38634 var // Flag to know if list is currently firing 38635 firing, 38636 // Last fire value for non-forgettable lists 38637 memory, 38638 // Flag to know if list was already fired 38639 _fired, 38640 // Flag to prevent firing 38641 _locked, 38642 // Actual callback list 38643 list = [], 38644 // Queue of execution data for repeatable lists 38645 queue = [], 38646 // Index of currently firing callback (modified by add/remove as needed) 38647 firingIndex = -1, 38648 // Fire callbacks 38649 fire = function fire() { 38650 // Enforce single-firing 38651 _locked = _locked || options.once; // Execute callbacks for all pending executions, 38652 // respecting firingIndex overrides and runtime changes 38653 38654 _fired = firing = true; 38655 38656 for (; queue.length; firingIndex = -1) { 38657 memory = queue.shift(); 38658 38659 while (++firingIndex < list.length) { 38660 // Run callback and check for early termination 38661 if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) { 38662 // Jump to end and forget the data so .add doesn't re-fire 38663 firingIndex = list.length; 38664 memory = false; 38665 } 38666 } 38667 } // Forget the data if we're done with it 38668 38669 38670 if (!options.memory) { 38671 memory = false; 38672 } 38673 38674 firing = false; // Clean up if we're done firing for good 38675 38676 if (_locked) { 38677 // Keep an empty list if we have data for future add calls 38678 if (memory) { 38679 list = []; // Otherwise, this object is spent 38680 } else { 38681 list = ""; 38682 } 38683 } 38684 }, 38685 // Actual Callbacks object 38686 self = { 38687 // Add a callback or a collection of callbacks to the list 38688 add: function add() { 38689 if (list) { 38690 // If we have memory from a past run, we should fire after adding 38691 if (memory && !firing) { 38692 firingIndex = list.length - 1; 38693 queue.push(memory); 38694 } 38695 38696 (function add(args) { 38697 jQuery.each(args, function (_, arg) { 38698 if (isFunction(arg)) { 38699 if (!options.unique || !self.has(arg)) { 38700 list.push(arg); 38701 } 38702 } else if (arg && arg.length && toType(arg) !== "string") { 38703 // Inspect recursively 38704 add(arg); 38705 } 38706 }); 38707 })(arguments); 38708 38709 if (memory && !firing) { 38710 fire(); 38711 } 38712 } 38713 38714 return this; 38715 }, 38716 // Remove a callback from the list 38717 remove: function remove() { 38718 jQuery.each(arguments, function (_, arg) { 38719 var index; 38720 38721 while ((index = jQuery.inArray(arg, list, index)) > -1) { 38722 list.splice(index, 1); // Handle firing indexes 38723 38724 if (index <= firingIndex) { 38725 firingIndex--; 38726 } 38727 } 38728 }); 38729 return this; 38730 }, 38731 // Check if a given callback is in the list. 38732 // If no argument is given, return whether or not list has callbacks attached. 38733 has: function has(fn) { 38734 return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0; 38735 }, 38736 // Remove all callbacks from the list 38737 empty: function empty() { 38738 if (list) { 38739 list = []; 38740 } 38741 38742 return this; 38743 }, 38744 // Disable .fire and .add 38745 // Abort any current/pending executions 38746 // Clear all callbacks and values 38747 disable: function disable() { 38748 _locked = queue = []; 38749 list = memory = ""; 38750 return this; 38751 }, 38752 disabled: function disabled() { 38753 return !list; 38754 }, 38755 // Disable .fire 38756 // Also disable .add unless we have memory (since it would have no effect) 38757 // Abort any pending executions 38758 lock: function lock() { 38759 _locked = queue = []; 38760 38761 if (!memory && !firing) { 38762 list = memory = ""; 38763 } 38764 38765 return this; 38766 }, 38767 locked: function locked() { 38768 return !!_locked; 38769 }, 38770 // Call all callbacks with the given context and arguments 38771 fireWith: function fireWith(context, args) { 38772 if (!_locked) { 38773 args = args || []; 38774 args = [context, args.slice ? args.slice() : args]; 38775 queue.push(args); 38776 38777 if (!firing) { 38778 fire(); 38779 } 38780 } 38781 38782 return this; 38783 }, 38784 // Call all the callbacks with the given arguments 38785 fire: function fire() { 38786 self.fireWith(this, arguments); 38787 return this; 38788 }, 38789 // To know if the callbacks have already been called at least once 38790 fired: function fired() { 38791 return !!_fired; 38792 } 38793 }; 38794 38795 return self; 38796 }; 38797 38798 function Identity(v) { 38799 return v; 38800 } 38801 38802 function Thrower(ex) { 38803 throw ex; 38804 } 38805 38806 function adoptValue(value, resolve, reject, noValue) { 38807 var method; 38808 38809 try { 38810 // Check for promise aspect first to privilege synchronous behavior 38811 if (value && isFunction(method = value.promise)) { 38812 method.call(value).done(resolve).fail(reject); // Other thenables 38813 } else if (value && isFunction(method = value.then)) { 38814 method.call(value, resolve, reject); // Other non-thenables 38815 } else { 38816 // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: 38817 // * false: [ value ].slice( 0 ) => resolve( value ) 38818 // * true: [ value ].slice( 1 ) => resolve() 38819 resolve.apply(undefined, [value].slice(noValue)); 38820 } // For Promises/A+, convert exceptions into rejections 38821 // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in 38822 // Deferred#then to conditionally suppress rejection. 38823 38824 } catch (value) { 38825 // Support: Android 4.0 only 38826 // Strict mode functions invoked without .call/.apply get global-object context 38827 reject.apply(undefined, [value]); 38828 } 38829 } 38830 38831 jQuery.extend({ 38832 Deferred: function Deferred(func) { 38833 var tuples = [// action, add listener, callbacks, 38834 // ... .then handlers, argument index, [final state] 38835 ["notify", "progress", jQuery.Callbacks("memory"), jQuery.Callbacks("memory"), 2], ["resolve", "done", jQuery.Callbacks("once memory"), jQuery.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", jQuery.Callbacks("once memory"), jQuery.Callbacks("once memory"), 1, "rejected"]], 38836 _state = "pending", 38837 _promise = { 38838 state: function state() { 38839 return _state; 38840 }, 38841 always: function always() { 38842 deferred.done(arguments).fail(arguments); 38843 return this; 38844 }, 38845 "catch": function _catch(fn) { 38846 return _promise.then(null, fn); 38847 }, 38848 // Keep pipe for back-compat 38849 pipe: function pipe() 38850 /* fnDone, fnFail, fnProgress */ 38851 { 38852 var fns = arguments; 38853 return jQuery.Deferred(function (newDefer) { 38854 jQuery.each(tuples, function (_i, tuple) { 38855 // Map tuples (progress, done, fail) to arguments (done, fail, progress) 38856 var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify }) 38857 // deferred.done(function() { bind to newDefer or newDefer.resolve }) 38858 // deferred.fail(function() { bind to newDefer or newDefer.reject }) 38859 38860 deferred[tuple[1]](function () { 38861 var returned = fn && fn.apply(this, arguments); 38862 38863 if (returned && isFunction(returned.promise)) { 38864 returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject); 38865 } else { 38866 newDefer[tuple[0] + "With"](this, fn ? [returned] : arguments); 38867 } 38868 }); 38869 }); 38870 fns = null; 38871 }).promise(); 38872 }, 38873 then: function then(onFulfilled, onRejected, onProgress) { 38874 var maxDepth = 0; 38875 38876 function resolve(depth, deferred, handler, special) { 38877 return function () { 38878 var that = this, 38879 args = arguments, 38880 mightThrow = function mightThrow() { 38881 var returned, then; // Support: Promises/A+ section 2.3.3.3.3 38882 // https://promisesaplus.com/#point-59 38883 // Ignore double-resolution attempts 38884 38885 if (depth < maxDepth) { 38886 return; 38887 } 38888 38889 returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1 38890 // https://promisesaplus.com/#point-48 38891 38892 if (returned === deferred.promise()) { 38893 throw new TypeError("Thenable self-resolution"); 38894 } // Support: Promises/A+ sections 2.3.3.1, 3.5 38895 // https://promisesaplus.com/#point-54 38896 // https://promisesaplus.com/#point-75 38897 // Retrieve `then` only once 38898 38899 38900 then = returned && ( // Support: Promises/A+ section 2.3.4 38901 // https://promisesaplus.com/#point-64 38902 // Only check objects and functions for thenability 38903 _typeof(returned) === "object" || typeof returned === "function") && returned.then; // Handle a returned thenable 38904 38905 if (isFunction(then)) { 38906 // Special processors (notify) just wait for resolution 38907 if (special) { 38908 then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress 38909 } else { 38910 // ...and disregard older resolution values 38911 maxDepth++; 38912 then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith)); 38913 } // Handle all other returned values 38914 38915 } else { 38916 // Only substitute handlers pass on context 38917 // and multiple values (non-spec behavior) 38918 if (handler !== Identity) { 38919 that = undefined; 38920 args = [returned]; 38921 } // Process the value(s) 38922 // Default process is resolve 38923 38924 38925 (special || deferred.resolveWith)(that, args); 38926 } 38927 }, 38928 // Only normal processors (resolve) catch and reject exceptions 38929 process = special ? mightThrow : function () { 38930 try { 38931 mightThrow(); 38932 } catch (e) { 38933 if (jQuery.Deferred.exceptionHook) { 38934 jQuery.Deferred.exceptionHook(e, process.stackTrace); 38935 } // Support: Promises/A+ section 2.3.3.3.4.1 38936 // https://promisesaplus.com/#point-61 38937 // Ignore post-resolution exceptions 38938 38939 38940 if (depth + 1 >= maxDepth) { 38941 // Only substitute handlers pass on context 38942 // and multiple values (non-spec behavior) 38943 if (handler !== Thrower) { 38944 that = undefined; 38945 args = [e]; 38946 } 38947 38948 deferred.rejectWith(that, args); 38949 } 38950 } 38951 }; // Support: Promises/A+ section 2.3.3.3.1 38952 // https://promisesaplus.com/#point-57 38953 // Re-resolve promises immediately to dodge false rejection from 38954 // subsequent errors 38955 38956 38957 if (depth) { 38958 process(); 38959 } else { 38960 // Call an optional hook to record the stack, in case of exception 38961 // since it's otherwise lost when execution goes async 38962 if (jQuery.Deferred.getStackHook) { 38963 process.stackTrace = jQuery.Deferred.getStackHook(); 38964 } 38965 38966 window.setTimeout(process); 38967 } 38968 }; 38969 } 38970 38971 return jQuery.Deferred(function (newDefer) { 38972 // progress_handlers.add( ... ) 38973 tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... ) 38974 38975 tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... ) 38976 38977 tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower)); 38978 }).promise(); 38979 }, 38980 // Get a promise for this deferred 38981 // If obj is provided, the promise aspect is added to the object 38982 promise: function promise(obj) { 38983 return obj != null ? jQuery.extend(obj, _promise) : _promise; 38984 } 38985 }, 38986 deferred = {}; // Add list-specific methods 38987 38988 jQuery.each(tuples, function (i, tuple) { 38989 var list = tuple[2], 38990 stateString = tuple[5]; // promise.progress = list.add 38991 // promise.done = list.add 38992 // promise.fail = list.add 38993 38994 _promise[tuple[1]] = list.add; // Handle state 38995 38996 if (stateString) { 38997 list.add(function () { 38998 // state = "resolved" (i.e., fulfilled) 38999 // state = "rejected" 39000 _state = stateString; 39001 }, // rejected_callbacks.disable 39002 // fulfilled_callbacks.disable 39003 tuples[3 - i][2].disable, // rejected_handlers.disable 39004 // fulfilled_handlers.disable 39005 tuples[3 - i][3].disable, // progress_callbacks.lock 39006 tuples[0][2].lock, // progress_handlers.lock 39007 tuples[0][3].lock); 39008 } // progress_handlers.fire 39009 // fulfilled_handlers.fire 39010 // rejected_handlers.fire 39011 39012 39013 list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) } 39014 // deferred.resolve = function() { deferred.resolveWith(...) } 39015 // deferred.reject = function() { deferred.rejectWith(...) } 39016 39017 deferred[tuple[0]] = function () { 39018 deferred[tuple[0] + "With"](this === deferred ? undefined : this, arguments); 39019 return this; 39020 }; // deferred.notifyWith = list.fireWith 39021 // deferred.resolveWith = list.fireWith 39022 // deferred.rejectWith = list.fireWith 39023 39024 39025 deferred[tuple[0] + "With"] = list.fireWith; 39026 }); // Make the deferred a promise 39027 39028 _promise.promise(deferred); // Call given func if any 39029 39030 39031 if (func) { 39032 func.call(deferred, deferred); 39033 } // All done! 39034 39035 39036 return deferred; 39037 }, 39038 // Deferred helper 39039 when: function when(singleValue) { 39040 var // count of uncompleted subordinates 39041 remaining = arguments.length, 39042 // count of unprocessed arguments 39043 i = remaining, 39044 // subordinate fulfillment data 39045 resolveContexts = Array(i), 39046 resolveValues = _slice.call(arguments), 39047 // the primary Deferred 39048 primary = jQuery.Deferred(), 39049 // subordinate callback factory 39050 updateFunc = function updateFunc(i) { 39051 return function (value) { 39052 resolveContexts[i] = this; 39053 resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value; 39054 39055 if (! --remaining) { 39056 primary.resolveWith(resolveContexts, resolveValues); 39057 } 39058 }; 39059 }; // Single- and empty arguments are adopted like Promise.resolve 39060 39061 39062 if (remaining <= 1) { 39063 adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000) 39064 39065 if (primary.state() === "pending" || isFunction(resolveValues[i] && resolveValues[i].then)) { 39066 return primary.then(); 39067 } 39068 } // Multiple arguments are aggregated like Promise.all array elements 39069 39070 39071 while (i--) { 39072 adoptValue(resolveValues[i], updateFunc(i), primary.reject); 39073 } 39074 39075 return primary.promise(); 39076 } 39077 }); // These usually indicate a programmer mistake during development, 39078 // warn about them ASAP rather than swallowing them by default. 39079 39080 var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 39081 39082 jQuery.Deferred.exceptionHook = function (error, stack) { 39083 // Support: IE 8 - 9 only 39084 // Console exists when dev tools are open, which can happen at any time 39085 if (window.console && window.console.warn && error && rerrorNames.test(error.name)) { 39086 window.console.warn("jQuery.Deferred exception: " + error.message, error.stack, stack); 39087 } 39088 }; 39089 39090 jQuery.readyException = function (error) { 39091 window.setTimeout(function () { 39092 throw error; 39093 }); 39094 }; // The deferred used on DOM ready 39095 39096 39097 var readyList = jQuery.Deferred(); 39098 39099 jQuery.fn.ready = function (fn) { 39100 readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup 39101 // happens at the time of error handling instead of callback 39102 // registration. 39103 ["catch"](function (error) { 39104 jQuery.readyException(error); 39105 }); 39106 return this; 39107 }; 39108 39109 jQuery.extend({ 39110 // Is the DOM ready to be used? Set to true once it occurs. 39111 isReady: false, 39112 // A counter to track how many items to wait for before 39113 // the ready event fires. See #6781 39114 readyWait: 1, 39115 // Handle when the DOM is ready 39116 ready: function ready(wait) { 39117 // Abort if there are pending holds or we're already ready 39118 if (wait === true ? --jQuery.readyWait : jQuery.isReady) { 39119 return; 39120 } // Remember that the DOM is ready 39121 39122 39123 jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be 39124 39125 if (wait !== true && --jQuery.readyWait > 0) { 39126 return; 39127 } // If there are functions bound, to execute 39128 39129 39130 readyList.resolveWith(document, [jQuery]); 39131 } 39132 }); 39133 jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method 39134 39135 function completed() { 39136 document.removeEventListener("DOMContentLoaded", completed); 39137 window.removeEventListener("load", completed); 39138 jQuery.ready(); 39139 } // Catch cases where $(document).ready() is called 39140 // after the browser event has already occurred. 39141 // Support: IE <=9 - 10 only 39142 // Older IE sometimes signals "interactive" too soon 39143 39144 39145 if (document.readyState === "complete" || document.readyState !== "loading" && !document.documentElement.doScroll) { 39146 // Handle it asynchronously to allow scripts the opportunity to delay ready 39147 window.setTimeout(jQuery.ready); 39148 } else { 39149 // Use the handy event callback 39150 document.addEventListener("DOMContentLoaded", completed); // A fallback to window.onload, that will always work 39151 39152 window.addEventListener("load", completed); 39153 } // Multifunctional method to get and set values of a collection 39154 // The value/s can optionally be executed if it's a function 39155 39156 39157 var access = function access(elems, fn, key, value, chainable, emptyGet, raw) { 39158 var i = 0, 39159 len = elems.length, 39160 bulk = key == null; // Sets many values 39161 39162 if (toType(key) === "object") { 39163 chainable = true; 39164 39165 for (i in key) { 39166 access(elems, fn, i, key[i], true, emptyGet, raw); 39167 } // Sets one value 39168 39169 } else if (value !== undefined) { 39170 chainable = true; 39171 39172 if (!isFunction(value)) { 39173 raw = true; 39174 } 39175 39176 if (bulk) { 39177 // Bulk operations run against the entire set 39178 if (raw) { 39179 fn.call(elems, value); 39180 fn = null; // ...except when executing function values 39181 } else { 39182 bulk = fn; 39183 39184 fn = function fn(elem, _key, value) { 39185 return bulk.call(jQuery(elem), value); 39186 }; 39187 } 39188 } 39189 39190 if (fn) { 39191 for (; i < len; i++) { 39192 fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key))); 39193 } 39194 } 39195 } 39196 39197 if (chainable) { 39198 return elems; 39199 } // Gets 39200 39201 39202 if (bulk) { 39203 return fn.call(elems); 39204 } 39205 39206 return len ? fn(elems[0], key) : emptyGet; 39207 }; // Matches dashed string for camelizing 39208 39209 39210 var rmsPrefix = /^-ms-/, 39211 rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace() 39212 39213 function fcamelCase(_all, letter) { 39214 return letter.toUpperCase(); 39215 } // Convert dashed to camelCase; used by the css and data modules 39216 // Support: IE <=9 - 11, Edge 12 - 15 39217 // Microsoft forgot to hump their vendor prefix (#9572) 39218 39219 39220 function camelCase(string) { 39221 return string.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase); 39222 } 39223 39224 var acceptData = function acceptData(owner) { 39225 // Accepts only: 39226 // - Node 39227 // - Node.ELEMENT_NODE 39228 // - Node.DOCUMENT_NODE 39229 // - Object 39230 // - Any 39231 return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType; 39232 }; 39233 39234 function Data() { 39235 this.expando = jQuery.expando + Data.uid++; 39236 } 39237 39238 Data.uid = 1; 39239 Data.prototype = { 39240 cache: function cache(owner) { 39241 // Check if the owner object already has a cache 39242 var value = owner[this.expando]; // If not, create one 39243 39244 if (!value) { 39245 value = {}; // We can accept data for non-element nodes in modern browsers, 39246 // but we should not, see #8335. 39247 // Always return an empty object. 39248 39249 if (acceptData(owner)) { 39250 // If it is a node unlikely to be stringify-ed or looped over 39251 // use plain assignment 39252 if (owner.nodeType) { 39253 owner[this.expando] = value; // Otherwise secure it in a non-enumerable property 39254 // configurable must be true to allow the property to be 39255 // deleted when data is removed 39256 } else { 39257 Object.defineProperty(owner, this.expando, { 39258 value: value, 39259 configurable: true 39260 }); 39261 } 39262 } 39263 } 39264 39265 return value; 39266 }, 39267 set: function set(owner, data, value) { 39268 var prop, 39269 cache = this.cache(owner); // Handle: [ owner, key, value ] args 39270 // Always use camelCase key (gh-2257) 39271 39272 if (typeof data === "string") { 39273 cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args 39274 } else { 39275 // Copy the properties one-by-one to the cache object 39276 for (prop in data) { 39277 cache[camelCase(prop)] = data[prop]; 39278 } 39279 } 39280 39281 return cache; 39282 }, 39283 get: function get(owner, key) { 39284 return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257) 39285 owner[this.expando] && owner[this.expando][camelCase(key)]; 39286 }, 39287 access: function access(owner, key, value) { 39288 // In cases where either: 39289 // 39290 // 1. No key was specified 39291 // 2. A string key was specified, but no value provided 39292 // 39293 // Take the "read" path and allow the get method to determine 39294 // which value to return, respectively either: 39295 // 39296 // 1. The entire cache object 39297 // 2. The data stored at the key 39298 // 39299 if (key === undefined || key && typeof key === "string" && value === undefined) { 39300 return this.get(owner, key); 39301 } // When the key is not a string, or both a key and value 39302 // are specified, set or extend (existing objects) with either: 39303 // 39304 // 1. An object of properties 39305 // 2. A key and value 39306 // 39307 39308 39309 this.set(owner, key, value); // Since the "set" path can have two possible entry points 39310 // return the expected data based on which path was taken[*] 39311 39312 return value !== undefined ? value : key; 39313 }, 39314 remove: function remove(owner, key) { 39315 var i, 39316 cache = owner[this.expando]; 39317 39318 if (cache === undefined) { 39319 return; 39320 } 39321 39322 if (key !== undefined) { 39323 // Support array or space separated string of keys 39324 if (Array.isArray(key)) { 39325 // If key is an array of keys... 39326 // We always set camelCase keys, so remove that. 39327 key = key.map(camelCase); 39328 } else { 39329 key = camelCase(key); // If a key with the spaces exists, use it. 39330 // Otherwise, create an array by matching non-whitespace 39331 39332 key = key in cache ? [key] : key.match(rnothtmlwhite) || []; 39333 } 39334 39335 i = key.length; 39336 39337 while (i--) { 39338 delete cache[key[i]]; 39339 } 39340 } // Remove the expando if there's no more data 39341 39342 39343 if (key === undefined || jQuery.isEmptyObject(cache)) { 39344 // Support: Chrome <=35 - 45 39345 // Webkit & Blink performance suffers when deleting properties 39346 // from DOM nodes, so set to undefined instead 39347 // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) 39348 if (owner.nodeType) { 39349 owner[this.expando] = undefined; 39350 } else { 39351 delete owner[this.expando]; 39352 } 39353 } 39354 }, 39355 hasData: function hasData(owner) { 39356 var cache = owner[this.expando]; 39357 return cache !== undefined && !jQuery.isEmptyObject(cache); 39358 } 39359 }; 39360 var dataPriv = new Data(); 39361 var dataUser = new Data(); // Implementation Summary 39362 // 39363 // 1. Enforce API surface and semantic compatibility with 1.9.x branch 39364 // 2. Improve the module's maintainability by reducing the storage 39365 // paths to a single mechanism. 39366 // 3. Use the same single mechanism to support "private" and "user" data. 39367 // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) 39368 // 5. Avoid exposing implementation details on user objects (eg. expando properties) 39369 // 6. Provide a clear path for implementation upgrade to WeakMap in 2014 39370 39371 var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 39372 rmultiDash = /[A-Z]/g; 39373 39374 function getData(data) { 39375 if (data === "true") { 39376 return true; 39377 } 39378 39379 if (data === "false") { 39380 return false; 39381 } 39382 39383 if (data === "null") { 39384 return null; 39385 } // Only convert to a number if it doesn't change the string 39386 39387 39388 if (data === +data + "") { 39389 return +data; 39390 } 39391 39392 if (rbrace.test(data)) { 39393 return JSON.parse(data); 39394 } 39395 39396 return data; 39397 } 39398 39399 function dataAttr(elem, key, data) { 39400 var name; // If nothing was found internally, try to fetch any 39401 // data from the HTML5 data-* attribute 39402 39403 if (data === undefined && elem.nodeType === 1) { 39404 name = "data-" + key.replace(rmultiDash, "-$&").toLowerCase(); 39405 data = elem.getAttribute(name); 39406 39407 if (typeof data === "string") { 39408 try { 39409 data = getData(data); 39410 } catch (e) {} // Make sure we set the data so it isn't changed later 39411 39412 39413 dataUser.set(elem, key, data); 39414 } else { 39415 data = undefined; 39416 } 39417 } 39418 39419 return data; 39420 } 39421 39422 jQuery.extend({ 39423 hasData: function hasData(elem) { 39424 return dataUser.hasData(elem) || dataPriv.hasData(elem); 39425 }, 39426 data: function data(elem, name, _data) { 39427 return dataUser.access(elem, name, _data); 39428 }, 39429 removeData: function removeData(elem, name) { 39430 dataUser.remove(elem, name); 39431 }, 39432 // TODO: Now that all calls to _data and _removeData have been replaced 39433 // with direct calls to dataPriv methods, these can be deprecated. 39434 _data: function _data(elem, name, data) { 39435 return dataPriv.access(elem, name, data); 39436 }, 39437 _removeData: function _removeData(elem, name) { 39438 dataPriv.remove(elem, name); 39439 } 39440 }); 39441 jQuery.fn.extend({ 39442 data: function data(key, value) { 39443 var i, 39444 name, 39445 data, 39446 elem = this[0], 39447 attrs = elem && elem.attributes; // Gets all values 39448 39449 if (key === undefined) { 39450 if (this.length) { 39451 data = dataUser.get(elem); 39452 39453 if (elem.nodeType === 1 && !dataPriv.get(elem, "hasDataAttrs")) { 39454 i = attrs.length; 39455 39456 while (i--) { 39457 // Support: IE 11 only 39458 // The attrs elements can be null (#14894) 39459 if (attrs[i]) { 39460 name = attrs[i].name; 39461 39462 if (name.indexOf("data-") === 0) { 39463 name = camelCase(name.slice(5)); 39464 dataAttr(elem, name, data[name]); 39465 } 39466 } 39467 } 39468 39469 dataPriv.set(elem, "hasDataAttrs", true); 39470 } 39471 } 39472 39473 return data; 39474 } // Sets multiple values 39475 39476 39477 if (_typeof(key) === "object") { 39478 return this.each(function () { 39479 dataUser.set(this, key); 39480 }); 39481 } 39482 39483 return access(this, function (value) { 39484 var data; // The calling jQuery object (element matches) is not empty 39485 // (and therefore has an element appears at this[ 0 ]) and the 39486 // `value` parameter was not undefined. An empty jQuery object 39487 // will result in `undefined` for elem = this[ 0 ] which will 39488 // throw an exception if an attempt to read a data cache is made. 39489 39490 if (elem && value === undefined) { 39491 // Attempt to get data from the cache 39492 // The key will always be camelCased in Data 39493 data = dataUser.get(elem, key); 39494 39495 if (data !== undefined) { 39496 return data; 39497 } // Attempt to "discover" the data in 39498 // HTML5 custom data-* attrs 39499 39500 39501 data = dataAttr(elem, key); 39502 39503 if (data !== undefined) { 39504 return data; 39505 } // We tried really hard, but the data doesn't exist. 39506 39507 39508 return; 39509 } // Set the data... 39510 39511 39512 this.each(function () { 39513 // We always store the camelCased key 39514 dataUser.set(this, key, value); 39515 }); 39516 }, null, value, arguments.length > 1, null, true); 39517 }, 39518 removeData: function removeData(key) { 39519 return this.each(function () { 39520 dataUser.remove(this, key); 39521 }); 39522 } 39523 }); 39524 jQuery.extend({ 39525 queue: function queue(elem, type, data) { 39526 var queue; 39527 39528 if (elem) { 39529 type = (type || "fx") + "queue"; 39530 queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup 39531 39532 if (data) { 39533 if (!queue || Array.isArray(data)) { 39534 queue = dataPriv.access(elem, type, jQuery.makeArray(data)); 39535 } else { 39536 queue.push(data); 39537 } 39538 } 39539 39540 return queue || []; 39541 } 39542 }, 39543 dequeue: function dequeue(elem, type) { 39544 type = type || "fx"; 39545 39546 var queue = jQuery.queue(elem, type), 39547 startLength = queue.length, 39548 fn = queue.shift(), 39549 hooks = jQuery._queueHooks(elem, type), 39550 next = function next() { 39551 jQuery.dequeue(elem, type); 39552 }; // If the fx queue is dequeued, always remove the progress sentinel 39553 39554 39555 if (fn === "inprogress") { 39556 fn = queue.shift(); 39557 startLength--; 39558 } 39559 39560 if (fn) { 39561 // Add a progress sentinel to prevent the fx queue from being 39562 // automatically dequeued 39563 if (type === "fx") { 39564 queue.unshift("inprogress"); 39565 } // Clear up the last queue stop function 39566 39567 39568 delete hooks.stop; 39569 fn.call(elem, next, hooks); 39570 } 39571 39572 if (!startLength && hooks) { 39573 hooks.empty.fire(); 39574 } 39575 }, 39576 // Not public - generate a queueHooks object, or return the current one 39577 _queueHooks: function _queueHooks(elem, type) { 39578 var key = type + "queueHooks"; 39579 return dataPriv.get(elem, key) || dataPriv.access(elem, key, { 39580 empty: jQuery.Callbacks("once memory").add(function () { 39581 dataPriv.remove(elem, [type + "queue", key]); 39582 }) 39583 }); 39584 } 39585 }); 39586 jQuery.fn.extend({ 39587 queue: function queue(type, data) { 39588 var setter = 2; 39589 39590 if (typeof type !== "string") { 39591 data = type; 39592 type = "fx"; 39593 setter--; 39594 } 39595 39596 if (arguments.length < setter) { 39597 return jQuery.queue(this[0], type); 39598 } 39599 39600 return data === undefined ? this : this.each(function () { 39601 var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue 39602 39603 jQuery._queueHooks(this, type); 39604 39605 if (type === "fx" && queue[0] !== "inprogress") { 39606 jQuery.dequeue(this, type); 39607 } 39608 }); 39609 }, 39610 dequeue: function dequeue(type) { 39611 return this.each(function () { 39612 jQuery.dequeue(this, type); 39613 }); 39614 }, 39615 clearQueue: function clearQueue(type) { 39616 return this.queue(type || "fx", []); 39617 }, 39618 // Get a promise resolved when queues of a certain type 39619 // are emptied (fx is the type by default) 39620 promise: function promise(type, obj) { 39621 var tmp, 39622 count = 1, 39623 defer = jQuery.Deferred(), 39624 elements = this, 39625 i = this.length, 39626 resolve = function resolve() { 39627 if (! --count) { 39628 defer.resolveWith(elements, [elements]); 39629 } 39630 }; 39631 39632 if (typeof type !== "string") { 39633 obj = type; 39634 type = undefined; 39635 } 39636 39637 type = type || "fx"; 39638 39639 while (i--) { 39640 tmp = dataPriv.get(elements[i], type + "queueHooks"); 39641 39642 if (tmp && tmp.empty) { 39643 count++; 39644 tmp.empty.add(resolve); 39645 } 39646 } 39647 39648 resolve(); 39649 return defer.promise(obj); 39650 } 39651 }); 39652 var pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source; 39653 var rcssNum = new RegExp("^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i"); 39654 var cssExpand = ["Top", "Right", "Bottom", "Left"]; 39655 var documentElement = document.documentElement; 39656 39657 var isAttached = function isAttached(elem) { 39658 return jQuery.contains(elem.ownerDocument, elem); 39659 }, 39660 composed = { 39661 composed: true 39662 }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only 39663 // Check attachment across shadow DOM boundaries when possible (gh-3504) 39664 // Support: iOS 10.0-10.2 only 39665 // Early iOS 10 versions support `attachShadow` but not `getRootNode`, 39666 // leading to errors. We need to check for `getRootNode`. 39667 39668 39669 if (documentElement.getRootNode) { 39670 isAttached = function isAttached(elem) { 39671 return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument; 39672 }; 39673 } 39674 39675 var isHiddenWithinTree = function isHiddenWithinTree(elem, el) { 39676 // isHiddenWithinTree might be called from jQuery#filter function; 39677 // in that case, element will be second argument 39678 elem = el || elem; // Inline style trumps all 39679 39680 return elem.style.display === "none" || elem.style.display === "" && // Otherwise, check computed style 39681 // Support: Firefox <=43 - 45 39682 // Disconnected elements can have computed display: none, so first confirm that elem is 39683 // in the document. 39684 isAttached(elem) && jQuery.css(elem, "display") === "none"; 39685 }; 39686 39687 function adjustCSS(elem, prop, valueParts, tween) { 39688 var adjusted, 39689 scale, 39690 maxIterations = 20, 39691 currentValue = tween ? function () { 39692 return tween.cur(); 39693 } : function () { 39694 return jQuery.css(elem, prop, ""); 39695 }, 39696 initial = currentValue(), 39697 unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? "" : "px"), 39698 // Starting value computation is required for potential unit mismatches 39699 initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== "px" && +initial) && rcssNum.exec(jQuery.css(elem, prop)); 39700 39701 if (initialInUnit && initialInUnit[3] !== unit) { 39702 // Support: Firefox <=54 39703 // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) 39704 initial = initial / 2; // Trust units reported by jQuery.css 39705 39706 unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point 39707 39708 initialInUnit = +initial || 1; 39709 39710 while (maxIterations--) { 39711 // Evaluate and update our best guess (doubling guesses that zero out). 39712 // Finish if the scale equals or crosses 1 (making the old*new product non-positive). 39713 jQuery.style(elem, prop, initialInUnit + unit); 39714 39715 if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) { 39716 maxIterations = 0; 39717 } 39718 39719 initialInUnit = initialInUnit / scale; 39720 } 39721 39722 initialInUnit = initialInUnit * 2; 39723 jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on 39724 39725 valueParts = valueParts || []; 39726 } 39727 39728 if (valueParts) { 39729 initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified 39730 39731 adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2]; 39732 39733 if (tween) { 39734 tween.unit = unit; 39735 tween.start = initialInUnit; 39736 tween.end = adjusted; 39737 } 39738 } 39739 39740 return adjusted; 39741 } 39742 39743 var defaultDisplayMap = {}; 39744 39745 function getDefaultDisplay(elem) { 39746 var temp, 39747 doc = elem.ownerDocument, 39748 nodeName = elem.nodeName, 39749 display = defaultDisplayMap[nodeName]; 39750 39751 if (display) { 39752 return display; 39753 } 39754 39755 temp = doc.body.appendChild(doc.createElement(nodeName)); 39756 display = jQuery.css(temp, "display"); 39757 temp.parentNode.removeChild(temp); 39758 39759 if (display === "none") { 39760 display = "block"; 39761 } 39762 39763 defaultDisplayMap[nodeName] = display; 39764 return display; 39765 } 39766 39767 function showHide(elements, show) { 39768 var display, 39769 elem, 39770 values = [], 39771 index = 0, 39772 length = elements.length; // Determine new display value for elements that need to change 39773 39774 for (; index < length; index++) { 39775 elem = elements[index]; 39776 39777 if (!elem.style) { 39778 continue; 39779 } 39780 39781 display = elem.style.display; 39782 39783 if (show) { 39784 // Since we force visibility upon cascade-hidden elements, an immediate (and slow) 39785 // check is required in this first loop unless we have a nonempty display value (either 39786 // inline or about-to-be-restored) 39787 if (display === "none") { 39788 values[index] = dataPriv.get(elem, "display") || null; 39789 39790 if (!values[index]) { 39791 elem.style.display = ""; 39792 } 39793 } 39794 39795 if (elem.style.display === "" && isHiddenWithinTree(elem)) { 39796 values[index] = getDefaultDisplay(elem); 39797 } 39798 } else { 39799 if (display !== "none") { 39800 values[index] = "none"; // Remember what we're overwriting 39801 39802 dataPriv.set(elem, "display", display); 39803 } 39804 } 39805 } // Set the display of the elements in a second loop to avoid constant reflow 39806 39807 39808 for (index = 0; index < length; index++) { 39809 if (values[index] != null) { 39810 elements[index].style.display = values[index]; 39811 } 39812 } 39813 39814 return elements; 39815 } 39816 39817 jQuery.fn.extend({ 39818 show: function show() { 39819 return showHide(this, true); 39820 }, 39821 hide: function hide() { 39822 return showHide(this); 39823 }, 39824 toggle: function toggle(state) { 39825 if (typeof state === "boolean") { 39826 return state ? this.show() : this.hide(); 39827 } 39828 39829 return this.each(function () { 39830 if (isHiddenWithinTree(this)) { 39831 jQuery(this).show(); 39832 } else { 39833 jQuery(this).hide(); 39834 } 39835 }); 39836 } 39837 }); 39838 var rcheckableType = /^(?:checkbox|radio)$/i; 39839 var rtagName = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; 39840 var rscriptType = /^$|^module$|\/(?:java|ecma)script/i; 39841 39842 (function () { 39843 var fragment = document.createDocumentFragment(), 39844 div = fragment.appendChild(document.createElement("div")), 39845 input = document.createElement("input"); // Support: Android 4.0 - 4.3 only 39846 // Check state lost if the name is set (#11217) 39847 // Support: Windows Web Apps (WWA) 39848 // `name` and `type` must use .setAttribute for WWA (#14901) 39849 39850 input.setAttribute("type", "radio"); 39851 input.setAttribute("checked", "checked"); 39852 input.setAttribute("name", "t"); 39853 div.appendChild(input); // Support: Android <=4.1 only 39854 // Older WebKit doesn't clone checked state correctly in fragments 39855 39856 support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only 39857 // Make sure textarea (and checkbox) defaultValue is properly cloned 39858 39859 div.innerHTML = "<textarea>x</textarea>"; 39860 support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only 39861 // IE <=9 replaces <option> tags with their contents when inserted outside of 39862 // the select element. 39863 39864 div.innerHTML = "<option></option>"; 39865 support.option = !!div.lastChild; 39866 })(); // We have to close these tags to support XHTML (#13200) 39867 39868 39869 var wrapMap = { 39870 // XHTML parsers do not magically insert elements in the 39871 // same way that tag soup parsers do. So we cannot shorten 39872 // this by omitting <tbody> or other required elements. 39873 thead: [1, "<table>", "</table>"], 39874 col: [2, "<table><colgroup>", "</colgroup></table>"], 39875 tr: [2, "<table><tbody>", "</tbody></table>"], 39876 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], 39877 _default: [0, "", ""] 39878 }; 39879 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 39880 wrapMap.th = wrapMap.td; // Support: IE <=9 only 39881 39882 if (!support.option) { 39883 wrapMap.optgroup = wrapMap.option = [1, "<select multiple='multiple'>", "</select>"]; 39884 } 39885 39886 function getAll(context, tag) { 39887 // Support: IE <=9 - 11 only 39888 // Use typeof to avoid zero-argument method invocation on host objects (#15151) 39889 var ret; 39890 39891 if (typeof context.getElementsByTagName !== "undefined") { 39892 ret = context.getElementsByTagName(tag || "*"); 39893 } else if (typeof context.querySelectorAll !== "undefined") { 39894 ret = context.querySelectorAll(tag || "*"); 39895 } else { 39896 ret = []; 39897 } 39898 39899 if (tag === undefined || tag && nodeName(context, tag)) { 39900 return jQuery.merge([context], ret); 39901 } 39902 39903 return ret; 39904 } // Mark scripts as having already been evaluated 39905 39906 39907 function setGlobalEval(elems, refElements) { 39908 var i = 0, 39909 l = elems.length; 39910 39911 for (; i < l; i++) { 39912 dataPriv.set(elems[i], "globalEval", !refElements || dataPriv.get(refElements[i], "globalEval")); 39913 } 39914 } 39915 39916 var rhtml = /<|&#?\w+;/; 39917 39918 function buildFragment(elems, context, scripts, selection, ignored) { 39919 var elem, 39920 tmp, 39921 tag, 39922 wrap, 39923 attached, 39924 j, 39925 fragment = context.createDocumentFragment(), 39926 nodes = [], 39927 i = 0, 39928 l = elems.length; 39929 39930 for (; i < l; i++) { 39931 elem = elems[i]; 39932 39933 if (elem || elem === 0) { 39934 // Add nodes directly 39935 if (toType(elem) === "object") { 39936 // Support: Android <=4.0 only, PhantomJS 1 only 39937 // push.apply(_, arraylike) throws on ancient WebKit 39938 jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node 39939 } else if (!rhtml.test(elem)) { 39940 nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes 39941 } else { 39942 tmp = tmp || fragment.appendChild(context.createElement("div")); // Deserialize a standard representation 39943 39944 tag = (rtagName.exec(elem) || ["", ""])[1].toLowerCase(); 39945 wrap = wrapMap[tag] || wrapMap._default; 39946 tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content 39947 39948 j = wrap[0]; 39949 39950 while (j--) { 39951 tmp = tmp.lastChild; 39952 } // Support: Android <=4.0 only, PhantomJS 1 only 39953 // push.apply(_, arraylike) throws on ancient WebKit 39954 39955 39956 jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container 39957 39958 tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392) 39959 39960 tmp.textContent = ""; 39961 } 39962 } 39963 } // Remove wrapper from fragment 39964 39965 39966 fragment.textContent = ""; 39967 i = 0; 39968 39969 while (elem = nodes[i++]) { 39970 // Skip elements already in the context collection (trac-4087) 39971 if (selection && jQuery.inArray(elem, selection) > -1) { 39972 if (ignored) { 39973 ignored.push(elem); 39974 } 39975 39976 continue; 39977 } 39978 39979 attached = isAttached(elem); // Append to fragment 39980 39981 tmp = getAll(fragment.appendChild(elem), "script"); // Preserve script evaluation history 39982 39983 if (attached) { 39984 setGlobalEval(tmp); 39985 } // Capture executables 39986 39987 39988 if (scripts) { 39989 j = 0; 39990 39991 while (elem = tmp[j++]) { 39992 if (rscriptType.test(elem.type || "")) { 39993 scripts.push(elem); 39994 } 39995 } 39996 } 39997 } 39998 39999 return fragment; 40000 } 40001 40002 var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; 40003 40004 function returnTrue() { 40005 return true; 40006 } 40007 40008 function returnFalse() { 40009 return false; 40010 } // Support: IE <=9 - 11+ 40011 // focus() and blur() are asynchronous, except when they are no-op. 40012 // So expect focus to be synchronous when the element is already active, 40013 // and blur to be synchronous when the element is not already active. 40014 // (focus and blur are always synchronous in other supported browsers, 40015 // this just defines when we can count on it). 40016 40017 40018 function expectSync(elem, type) { 40019 return elem === safeActiveElement() === (type === "focus"); 40020 } // Support: IE <=9 only 40021 // Accessing document.activeElement can throw unexpectedly 40022 // https://bugs.jquery.com/ticket/13393 40023 40024 40025 function safeActiveElement() { 40026 try { 40027 return document.activeElement; 40028 } catch (err) {} 40029 } 40030 40031 function _on(elem, types, selector, data, fn, one) { 40032 var origFn, type; // Types can be a map of types/handlers 40033 40034 if (_typeof(types) === "object") { 40035 // ( types-Object, selector, data ) 40036 if (typeof selector !== "string") { 40037 // ( types-Object, data ) 40038 data = data || selector; 40039 selector = undefined; 40040 } 40041 40042 for (type in types) { 40043 _on(elem, type, selector, data, types[type], one); 40044 } 40045 40046 return elem; 40047 } 40048 40049 if (data == null && fn == null) { 40050 // ( types, fn ) 40051 fn = selector; 40052 data = selector = undefined; 40053 } else if (fn == null) { 40054 if (typeof selector === "string") { 40055 // ( types, selector, fn ) 40056 fn = data; 40057 data = undefined; 40058 } else { 40059 // ( types, data, fn ) 40060 fn = data; 40061 data = selector; 40062 selector = undefined; 40063 } 40064 } 40065 40066 if (fn === false) { 40067 fn = returnFalse; 40068 } else if (!fn) { 40069 return elem; 40070 } 40071 40072 if (one === 1) { 40073 origFn = fn; 40074 40075 fn = function fn(event) { 40076 // Can use an empty set, since event contains the info 40077 jQuery().off(event); 40078 return origFn.apply(this, arguments); 40079 }; // Use same guid so caller can remove using origFn 40080 40081 40082 fn.guid = origFn.guid || (origFn.guid = jQuery.guid++); 40083 } 40084 40085 return elem.each(function () { 40086 jQuery.event.add(this, types, fn, data, selector); 40087 }); 40088 } 40089 /* 40090 * Helper functions for managing events -- not part of the public interface. 40091 * Props to Dean Edwards' addEvent library for many of the ideas. 40092 */ 40093 40094 40095 jQuery.event = { 40096 global: {}, 40097 add: function add(elem, types, handler, data, selector) { 40098 var handleObjIn, 40099 eventHandle, 40100 tmp, 40101 events, 40102 t, 40103 handleObj, 40104 special, 40105 handlers, 40106 type, 40107 namespaces, 40108 origType, 40109 elemData = dataPriv.get(elem); // Only attach events to objects that accept data 40110 40111 if (!acceptData(elem)) { 40112 return; 40113 } // Caller can pass in an object of custom data in lieu of the handler 40114 40115 40116 if (handler.handler) { 40117 handleObjIn = handler; 40118 handler = handleObjIn.handler; 40119 selector = handleObjIn.selector; 40120 } // Ensure that invalid selectors throw exceptions at attach time 40121 // Evaluate against documentElement in case elem is a non-element node (e.g., document) 40122 40123 40124 if (selector) { 40125 jQuery.find.matchesSelector(documentElement, selector); 40126 } // Make sure that the handler has a unique ID, used to find/remove it later 40127 40128 40129 if (!handler.guid) { 40130 handler.guid = jQuery.guid++; 40131 } // Init the element's event structure and main handler, if this is the first 40132 40133 40134 if (!(events = elemData.events)) { 40135 events = elemData.events = Object.create(null); 40136 } 40137 40138 if (!(eventHandle = elemData.handle)) { 40139 eventHandle = elemData.handle = function (e) { 40140 // Discard the second event of a jQuery.event.trigger() and 40141 // when an event is called after a page has unloaded 40142 return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined; 40143 }; 40144 } // Handle multiple events separated by a space 40145 40146 40147 types = (types || "").match(rnothtmlwhite) || [""]; 40148 t = types.length; 40149 40150 while (t--) { 40151 tmp = rtypenamespace.exec(types[t]) || []; 40152 type = origType = tmp[1]; 40153 namespaces = (tmp[2] || "").split(".").sort(); // There *must* be a type, no attaching namespace-only handlers 40154 40155 if (!type) { 40156 continue; 40157 } // If event changes its type, use the special event handlers for the changed type 40158 40159 40160 special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type 40161 40162 type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type 40163 40164 special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers 40165 40166 handleObj = jQuery.extend({ 40167 type: type, 40168 origType: origType, 40169 data: data, 40170 handler: handler, 40171 guid: handler.guid, 40172 selector: selector, 40173 needsContext: selector && jQuery.expr.match.needsContext.test(selector), 40174 namespace: namespaces.join(".") 40175 }, handleObjIn); // Init the event handler queue if we're the first 40176 40177 if (!(handlers = events[type])) { 40178 handlers = events[type] = []; 40179 handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false 40180 40181 if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) { 40182 if (elem.addEventListener) { 40183 elem.addEventListener(type, eventHandle); 40184 } 40185 } 40186 } 40187 40188 if (special.add) { 40189 special.add.call(elem, handleObj); 40190 40191 if (!handleObj.handler.guid) { 40192 handleObj.handler.guid = handler.guid; 40193 } 40194 } // Add to the element's handler list, delegates in front 40195 40196 40197 if (selector) { 40198 handlers.splice(handlers.delegateCount++, 0, handleObj); 40199 } else { 40200 handlers.push(handleObj); 40201 } // Keep track of which events have ever been used, for event optimization 40202 40203 40204 jQuery.event.global[type] = true; 40205 } 40206 }, 40207 // Detach an event or set of events from an element 40208 remove: function remove(elem, types, handler, selector, mappedTypes) { 40209 var j, 40210 origCount, 40211 tmp, 40212 events, 40213 t, 40214 handleObj, 40215 special, 40216 handlers, 40217 type, 40218 namespaces, 40219 origType, 40220 elemData = dataPriv.hasData(elem) && dataPriv.get(elem); 40221 40222 if (!elemData || !(events = elemData.events)) { 40223 return; 40224 } // Once for each type.namespace in types; type may be omitted 40225 40226 40227 types = (types || "").match(rnothtmlwhite) || [""]; 40228 t = types.length; 40229 40230 while (t--) { 40231 tmp = rtypenamespace.exec(types[t]) || []; 40232 type = origType = tmp[1]; 40233 namespaces = (tmp[2] || "").split(".").sort(); // Unbind all events (on this namespace, if provided) for the element 40234 40235 if (!type) { 40236 for (type in events) { 40237 jQuery.event.remove(elem, type + types[t], handler, selector, true); 40238 } 40239 40240 continue; 40241 } 40242 40243 special = jQuery.event.special[type] || {}; 40244 type = (selector ? special.delegateType : special.bindType) || type; 40245 handlers = events[type] || []; 40246 tmp = tmp[2] && new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)"); // Remove matching events 40247 40248 origCount = j = handlers.length; 40249 40250 while (j--) { 40251 handleObj = handlers[j]; 40252 40253 if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === "**" && handleObj.selector)) { 40254 handlers.splice(j, 1); 40255 40256 if (handleObj.selector) { 40257 handlers.delegateCount--; 40258 } 40259 40260 if (special.remove) { 40261 special.remove.call(elem, handleObj); 40262 } 40263 } 40264 } // Remove generic event handler if we removed something and no more handlers exist 40265 // (avoids potential for endless recursion during removal of special event handlers) 40266 40267 40268 if (origCount && !handlers.length) { 40269 if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) { 40270 jQuery.removeEvent(elem, type, elemData.handle); 40271 } 40272 40273 delete events[type]; 40274 } 40275 } // Remove data and the expando if it's no longer used 40276 40277 40278 if (jQuery.isEmptyObject(events)) { 40279 dataPriv.remove(elem, "handle events"); 40280 } 40281 }, 40282 dispatch: function dispatch(nativeEvent) { 40283 var i, 40284 j, 40285 ret, 40286 matched, 40287 handleObj, 40288 handlerQueue, 40289 args = new Array(arguments.length), 40290 // Make a writable jQuery.Event from the native event object 40291 event = jQuery.event.fix(nativeEvent), 40292 handlers = (dataPriv.get(this, "events") || Object.create(null))[event.type] || [], 40293 special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event 40294 40295 args[0] = event; 40296 40297 for (i = 1; i < arguments.length; i++) { 40298 args[i] = arguments[i]; 40299 } 40300 40301 event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired 40302 40303 if (special.preDispatch && special.preDispatch.call(this, event) === false) { 40304 return; 40305 } // Determine handlers 40306 40307 40308 handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us 40309 40310 i = 0; 40311 40312 while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) { 40313 event.currentTarget = matched.elem; 40314 j = 0; 40315 40316 while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) { 40317 // If the event is namespaced, then each handler is only invoked if it is 40318 // specially universal or its namespaces are a superset of the event's. 40319 if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) { 40320 event.handleObj = handleObj; 40321 event.data = handleObj.data; 40322 ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args); 40323 40324 if (ret !== undefined) { 40325 if ((event.result = ret) === false) { 40326 event.preventDefault(); 40327 event.stopPropagation(); 40328 } 40329 } 40330 } 40331 } 40332 } // Call the postDispatch hook for the mapped type 40333 40334 40335 if (special.postDispatch) { 40336 special.postDispatch.call(this, event); 40337 } 40338 40339 return event.result; 40340 }, 40341 handlers: function handlers(event, _handlers) { 40342 var i, 40343 handleObj, 40344 sel, 40345 matchedHandlers, 40346 matchedSelectors, 40347 handlerQueue = [], 40348 delegateCount = _handlers.delegateCount, 40349 cur = event.target; // Find delegate handlers 40350 40351 if (delegateCount && // Support: IE <=9 40352 // Black-hole SVG <use> instance trees (trac-13180) 40353 cur.nodeType && // Support: Firefox <=42 40354 // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) 40355 // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click 40356 // Support: IE 11 only 40357 // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) 40358 !(event.type === "click" && event.button >= 1)) { 40359 for (; cur !== this; cur = cur.parentNode || this) { 40360 // Don't check non-elements (#13208) 40361 // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) 40362 if (cur.nodeType === 1 && !(event.type === "click" && cur.disabled === true)) { 40363 matchedHandlers = []; 40364 matchedSelectors = {}; 40365 40366 for (i = 0; i < delegateCount; i++) { 40367 handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203) 40368 40369 sel = handleObj.selector + " "; 40370 40371 if (matchedSelectors[sel] === undefined) { 40372 matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length; 40373 } 40374 40375 if (matchedSelectors[sel]) { 40376 matchedHandlers.push(handleObj); 40377 } 40378 } 40379 40380 if (matchedHandlers.length) { 40381 handlerQueue.push({ 40382 elem: cur, 40383 handlers: matchedHandlers 40384 }); 40385 } 40386 } 40387 } 40388 } // Add the remaining (directly-bound) handlers 40389 40390 40391 cur = this; 40392 40393 if (delegateCount < _handlers.length) { 40394 handlerQueue.push({ 40395 elem: cur, 40396 handlers: _handlers.slice(delegateCount) 40397 }); 40398 } 40399 40400 return handlerQueue; 40401 }, 40402 addProp: function addProp(name, hook) { 40403 Object.defineProperty(jQuery.Event.prototype, name, { 40404 enumerable: true, 40405 configurable: true, 40406 get: isFunction(hook) ? function () { 40407 if (this.originalEvent) { 40408 return hook(this.originalEvent); 40409 } 40410 } : function () { 40411 if (this.originalEvent) { 40412 return this.originalEvent[name]; 40413 } 40414 }, 40415 set: function set(value) { 40416 Object.defineProperty(this, name, { 40417 enumerable: true, 40418 configurable: true, 40419 writable: true, 40420 value: value 40421 }); 40422 } 40423 }); 40424 }, 40425 fix: function fix(originalEvent) { 40426 return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent); 40427 }, 40428 special: { 40429 load: { 40430 // Prevent triggered image.load events from bubbling to window.load 40431 noBubble: true 40432 }, 40433 click: { 40434 // Utilize native event to ensure correct state for checkable inputs 40435 setup: function setup(data) { 40436 // For mutual compressibility with _default, replace `this` access with a local var. 40437 // `|| data` is dead code meant only to preserve the variable through minification. 40438 var el = this || data; // Claim the first handler 40439 40440 if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { 40441 // dataPriv.set( el, "click", ... ) 40442 leverageNative(el, "click", returnTrue); 40443 } // Return false to allow normal processing in the caller 40444 40445 40446 return false; 40447 }, 40448 trigger: function trigger(data) { 40449 // For mutual compressibility with _default, replace `this` access with a local var. 40450 // `|| data` is dead code meant only to preserve the variable through minification. 40451 var el = this || data; // Force setup before triggering a click 40452 40453 if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { 40454 leverageNative(el, "click"); 40455 } // Return non-false to allow normal event-path propagation 40456 40457 40458 return true; 40459 }, 40460 // For cross-browser consistency, suppress native .click() on links 40461 // Also prevent it if we're currently inside a leveraged native-event stack 40462 _default: function _default(event) { 40463 var target = event.target; 40464 return rcheckableType.test(target.type) && target.click && nodeName(target, "input") && dataPriv.get(target, "click") || nodeName(target, "a"); 40465 } 40466 }, 40467 beforeunload: { 40468 postDispatch: function postDispatch(event) { 40469 // Support: Firefox 20+ 40470 // Firefox doesn't alert if the returnValue field is not set. 40471 if (event.result !== undefined && event.originalEvent) { 40472 event.originalEvent.returnValue = event.result; 40473 } 40474 } 40475 } 40476 } 40477 }; // Ensure the presence of an event listener that handles manually-triggered 40478 // synthetic events by interrupting progress until reinvoked in response to 40479 // *native* events that it fires directly, ensuring that state changes have 40480 // already occurred before other listeners are invoked. 40481 40482 function leverageNative(el, type, expectSync) { 40483 // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add 40484 if (!expectSync) { 40485 if (dataPriv.get(el, type) === undefined) { 40486 jQuery.event.add(el, type, returnTrue); 40487 } 40488 40489 return; 40490 } // Register the controller as a special universal handler for all event namespaces 40491 40492 40493 dataPriv.set(el, type, false); 40494 jQuery.event.add(el, type, { 40495 namespace: false, 40496 handler: function handler(event) { 40497 var notAsync, 40498 result, 40499 saved = dataPriv.get(this, type); 40500 40501 if (event.isTrigger & 1 && this[type]) { 40502 // Interrupt processing of the outer synthetic .trigger()ed event 40503 // Saved data should be false in such cases, but might be a leftover capture object 40504 // from an async native handler (gh-4350) 40505 if (!saved.length) { 40506 // Store arguments for use when handling the inner native event 40507 // There will always be at least one argument (an event object), so this array 40508 // will not be confused with a leftover capture object. 40509 saved = _slice.call(arguments); 40510 dataPriv.set(this, type, saved); // Trigger the native event and capture its result 40511 // Support: IE <=9 - 11+ 40512 // focus() and blur() are asynchronous 40513 40514 notAsync = expectSync(this, type); 40515 this[type](); 40516 result = dataPriv.get(this, type); 40517 40518 if (saved !== result || notAsync) { 40519 dataPriv.set(this, type, false); 40520 } else { 40521 result = {}; 40522 } 40523 40524 if (saved !== result) { 40525 // Cancel the outer synthetic event 40526 event.stopImmediatePropagation(); 40527 event.preventDefault(); // Support: Chrome 86+ 40528 // In Chrome, if an element having a focusout handler is blurred by 40529 // clicking outside of it, it invokes the handler synchronously. If 40530 // that handler calls `.remove()` on the element, the data is cleared, 40531 // leaving `result` undefined. We need to guard against this. 40532 40533 return result && result.value; 40534 } // If this is an inner synthetic event for an event with a bubbling surrogate 40535 // (focus or blur), assume that the surrogate already propagated from triggering the 40536 // native event and prevent that from happening again here. 40537 // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the 40538 // bubbling surrogate propagates *after* the non-bubbling base), but that seems 40539 // less bad than duplication. 40540 40541 } else if ((jQuery.event.special[type] || {}).delegateType) { 40542 event.stopPropagation(); 40543 } // If this is a native event triggered above, everything is now in order 40544 // Fire an inner synthetic event with the original arguments 40545 40546 } else if (saved.length) { 40547 // ...and capture the result 40548 dataPriv.set(this, type, { 40549 value: jQuery.event.trigger( // Support: IE <=9 - 11+ 40550 // Extend with the prototype to reset the above stopImmediatePropagation() 40551 jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this) 40552 }); // Abort handling of the native event 40553 40554 event.stopImmediatePropagation(); 40555 } 40556 } 40557 }); 40558 } 40559 40560 jQuery.removeEvent = function (elem, type, handle) { 40561 // This "if" is needed for plain objects 40562 if (elem.removeEventListener) { 40563 elem.removeEventListener(type, handle); 40564 } 40565 }; 40566 40567 jQuery.Event = function (src, props) { 40568 // Allow instantiation without the 'new' keyword 40569 if (!(this instanceof jQuery.Event)) { 40570 return new jQuery.Event(src, props); 40571 } // Event object 40572 40573 40574 if (src && src.type) { 40575 this.originalEvent = src; 40576 this.type = src.type; // Events bubbling up the document may have been marked as prevented 40577 // by a handler lower down the tree; reflect the correct value. 40578 40579 this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only 40580 src.returnValue === false ? returnTrue : returnFalse; // Create target properties 40581 // Support: Safari <=6 - 7 only 40582 // Target should not be a text node (#504, #13143) 40583 40584 this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target; 40585 this.currentTarget = src.currentTarget; 40586 this.relatedTarget = src.relatedTarget; // Event type 40587 } else { 40588 this.type = src; 40589 } // Put explicitly provided properties onto the event object 40590 40591 40592 if (props) { 40593 jQuery.extend(this, props); 40594 } // Create a timestamp if incoming event doesn't have one 40595 40596 40597 this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed 40598 40599 this[jQuery.expando] = true; 40600 }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding 40601 // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html 40602 40603 40604 jQuery.Event.prototype = { 40605 constructor: jQuery.Event, 40606 isDefaultPrevented: returnFalse, 40607 isPropagationStopped: returnFalse, 40608 isImmediatePropagationStopped: returnFalse, 40609 isSimulated: false, 40610 preventDefault: function preventDefault() { 40611 var e = this.originalEvent; 40612 this.isDefaultPrevented = returnTrue; 40613 40614 if (e && !this.isSimulated) { 40615 e.preventDefault(); 40616 } 40617 }, 40618 stopPropagation: function stopPropagation() { 40619 var e = this.originalEvent; 40620 this.isPropagationStopped = returnTrue; 40621 40622 if (e && !this.isSimulated) { 40623 e.stopPropagation(); 40624 } 40625 }, 40626 stopImmediatePropagation: function stopImmediatePropagation() { 40627 var e = this.originalEvent; 40628 this.isImmediatePropagationStopped = returnTrue; 40629 40630 if (e && !this.isSimulated) { 40631 e.stopImmediatePropagation(); 40632 } 40633 40634 this.stopPropagation(); 40635 } 40636 }; // Includes all common event props including KeyEvent and MouseEvent specific props 40637 40638 jQuery.each({ 40639 altKey: true, 40640 bubbles: true, 40641 cancelable: true, 40642 changedTouches: true, 40643 ctrlKey: true, 40644 detail: true, 40645 eventPhase: true, 40646 metaKey: true, 40647 pageX: true, 40648 pageY: true, 40649 shiftKey: true, 40650 view: true, 40651 "char": true, 40652 code: true, 40653 charCode: true, 40654 key: true, 40655 keyCode: true, 40656 button: true, 40657 buttons: true, 40658 clientX: true, 40659 clientY: true, 40660 offsetX: true, 40661 offsetY: true, 40662 pointerId: true, 40663 pointerType: true, 40664 screenX: true, 40665 screenY: true, 40666 targetTouches: true, 40667 toElement: true, 40668 touches: true, 40669 which: true 40670 }, jQuery.event.addProp); 40671 jQuery.each({ 40672 focus: "focusin", 40673 blur: "focusout" 40674 }, function (type, delegateType) { 40675 jQuery.event.special[type] = { 40676 // Utilize native event if possible so blur/focus sequence is correct 40677 setup: function setup() { 40678 // Claim the first handler 40679 // dataPriv.set( this, "focus", ... ) 40680 // dataPriv.set( this, "blur", ... ) 40681 leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller 40682 40683 return false; 40684 }, 40685 trigger: function trigger() { 40686 // Force setup before trigger 40687 leverageNative(this, type); // Return non-false to allow normal event-path propagation 40688 40689 return true; 40690 }, 40691 // Suppress native focus or blur as it's already being fired 40692 // in leverageNative. 40693 _default: function _default() { 40694 return true; 40695 }, 40696 delegateType: delegateType 40697 }; 40698 }); // Create mouseenter/leave events using mouseover/out and event-time checks 40699 // so that event delegation works in jQuery. 40700 // Do the same for pointerenter/pointerleave and pointerover/pointerout 40701 // 40702 // Support: Safari 7 only 40703 // Safari sends mouseenter too often; see: 40704 // https://bugs.chromium.org/p/chromium/issues/detail?id=470258 40705 // for the description of the bug (it existed in older Chrome versions as well). 40706 40707 jQuery.each({ 40708 mouseenter: "mouseover", 40709 mouseleave: "mouseout", 40710 pointerenter: "pointerover", 40711 pointerleave: "pointerout" 40712 }, function (orig, fix) { 40713 jQuery.event.special[orig] = { 40714 delegateType: fix, 40715 bindType: fix, 40716 handle: function handle(event) { 40717 var ret, 40718 target = this, 40719 related = event.relatedTarget, 40720 handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target. 40721 // NB: No relatedTarget if the mouse left/entered the browser window 40722 40723 if (!related || related !== target && !jQuery.contains(target, related)) { 40724 event.type = handleObj.origType; 40725 ret = handleObj.handler.apply(this, arguments); 40726 event.type = fix; 40727 } 40728 40729 return ret; 40730 } 40731 }; 40732 }); 40733 jQuery.fn.extend({ 40734 on: function on(types, selector, data, fn) { 40735 return _on(this, types, selector, data, fn); 40736 }, 40737 one: function one(types, selector, data, fn) { 40738 return _on(this, types, selector, data, fn, 1); 40739 }, 40740 off: function off(types, selector, fn) { 40741 var handleObj, type; 40742 40743 if (types && types.preventDefault && types.handleObj) { 40744 // ( event ) dispatched jQuery.Event 40745 handleObj = types.handleObj; 40746 jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler); 40747 return this; 40748 } 40749 40750 if (_typeof(types) === "object") { 40751 // ( types-object [, selector] ) 40752 for (type in types) { 40753 this.off(type, selector, types[type]); 40754 } 40755 40756 return this; 40757 } 40758 40759 if (selector === false || typeof selector === "function") { 40760 // ( types [, fn] ) 40761 fn = selector; 40762 selector = undefined; 40763 } 40764 40765 if (fn === false) { 40766 fn = returnFalse; 40767 } 40768 40769 return this.each(function () { 40770 jQuery.event.remove(this, types, fn, selector); 40771 }); 40772 } 40773 }); 40774 var // Support: IE <=10 - 11, Edge 12 - 13 only 40775 // In IE/Edge using regex groups here causes severe slowdowns. 40776 // See https://connect.microsoft.com/IE/feedback/details/1736512/ 40777 rnoInnerhtml = /<script|<style|<link/i, 40778 // checked="checked" or checked 40779 rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, 40780 rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; // Prefer a tbody over its parent table for containing new rows 40781 40782 function manipulationTarget(elem, content) { 40783 if (nodeName(elem, "table") && nodeName(content.nodeType !== 11 ? content : content.firstChild, "tr")) { 40784 return jQuery(elem).children("tbody")[0] || elem; 40785 } 40786 40787 return elem; 40788 } // Replace/restore the type attribute of script elements for safe DOM manipulation 40789 40790 40791 function disableScript(elem) { 40792 elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; 40793 return elem; 40794 } 40795 40796 function restoreScript(elem) { 40797 if ((elem.type || "").slice(0, 5) === "true/") { 40798 elem.type = elem.type.slice(5); 40799 } else { 40800 elem.removeAttribute("type"); 40801 } 40802 40803 return elem; 40804 } 40805 40806 function cloneCopyEvent(src, dest) { 40807 var i, l, type, pdataOld, udataOld, udataCur, events; 40808 40809 if (dest.nodeType !== 1) { 40810 return; 40811 } // 1. Copy private data: events, handlers, etc. 40812 40813 40814 if (dataPriv.hasData(src)) { 40815 pdataOld = dataPriv.get(src); 40816 events = pdataOld.events; 40817 40818 if (events) { 40819 dataPriv.remove(dest, "handle events"); 40820 40821 for (type in events) { 40822 for (i = 0, l = events[type].length; i < l; i++) { 40823 jQuery.event.add(dest, type, events[type][i]); 40824 } 40825 } 40826 } 40827 } // 2. Copy user data 40828 40829 40830 if (dataUser.hasData(src)) { 40831 udataOld = dataUser.access(src); 40832 udataCur = jQuery.extend({}, udataOld); 40833 dataUser.set(dest, udataCur); 40834 } 40835 } // Fix IE bugs, see support tests 40836 40837 40838 function fixInput(src, dest) { 40839 var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button. 40840 40841 if (nodeName === "input" && rcheckableType.test(src.type)) { 40842 dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options 40843 } else if (nodeName === "input" || nodeName === "textarea") { 40844 dest.defaultValue = src.defaultValue; 40845 } 40846 } 40847 40848 function domManip(collection, args, callback, ignored) { 40849 // Flatten any nested arrays 40850 args = flat(args); 40851 var fragment, 40852 first, 40853 scripts, 40854 hasScripts, 40855 node, 40856 doc, 40857 i = 0, 40858 l = collection.length, 40859 iNoClone = l - 1, 40860 value = args[0], 40861 valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit 40862 40863 if (valueIsFunction || l > 1 && typeof value === "string" && !support.checkClone && rchecked.test(value)) { 40864 return collection.each(function (index) { 40865 var self = collection.eq(index); 40866 40867 if (valueIsFunction) { 40868 args[0] = value.call(this, index, self.html()); 40869 } 40870 40871 domManip(self, args, callback, ignored); 40872 }); 40873 } 40874 40875 if (l) { 40876 fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored); 40877 first = fragment.firstChild; 40878 40879 if (fragment.childNodes.length === 1) { 40880 fragment = first; 40881 } // Require either new content or an interest in ignored elements to invoke the callback 40882 40883 40884 if (first || ignored) { 40885 scripts = jQuery.map(getAll(fragment, "script"), disableScript); 40886 hasScripts = scripts.length; // Use the original fragment for the last item 40887 // instead of the first because it can end up 40888 // being emptied incorrectly in certain situations (#8070). 40889 40890 for (; i < l; i++) { 40891 node = fragment; 40892 40893 if (i !== iNoClone) { 40894 node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration 40895 40896 if (hasScripts) { 40897 // Support: Android <=4.0 only, PhantomJS 1 only 40898 // push.apply(_, arraylike) throws on ancient WebKit 40899 jQuery.merge(scripts, getAll(node, "script")); 40900 } 40901 } 40902 40903 callback.call(collection[i], node, i); 40904 } 40905 40906 if (hasScripts) { 40907 doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts 40908 40909 jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion 40910 40911 for (i = 0; i < hasScripts; i++) { 40912 node = scripts[i]; 40913 40914 if (rscriptType.test(node.type || "") && !dataPriv.access(node, "globalEval") && jQuery.contains(doc, node)) { 40915 if (node.src && (node.type || "").toLowerCase() !== "module") { 40916 // Optional AJAX dependency, but won't run scripts if not present 40917 if (jQuery._evalUrl && !node.noModule) { 40918 jQuery._evalUrl(node.src, { 40919 nonce: node.nonce || node.getAttribute("nonce") 40920 }, doc); 40921 } 40922 } else { 40923 DOMEval(node.textContent.replace(rcleanScript, ""), node, doc); 40924 } 40925 } 40926 } 40927 } 40928 } 40929 } 40930 40931 return collection; 40932 } 40933 40934 function _remove(elem, selector, keepData) { 40935 var node, 40936 nodes = selector ? jQuery.filter(selector, elem) : elem, 40937 i = 0; 40938 40939 for (; (node = nodes[i]) != null; i++) { 40940 if (!keepData && node.nodeType === 1) { 40941 jQuery.cleanData(getAll(node)); 40942 } 40943 40944 if (node.parentNode) { 40945 if (keepData && isAttached(node)) { 40946 setGlobalEval(getAll(node, "script")); 40947 } 40948 40949 node.parentNode.removeChild(node); 40950 } 40951 } 40952 40953 return elem; 40954 } 40955 40956 jQuery.extend({ 40957 htmlPrefilter: function htmlPrefilter(html) { 40958 return html; 40959 }, 40960 clone: function clone(elem, dataAndEvents, deepDataAndEvents) { 40961 var i, 40962 l, 40963 srcElements, 40964 destElements, 40965 clone = elem.cloneNode(true), 40966 inPage = isAttached(elem); // Fix IE cloning issues 40967 40968 if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) { 40969 // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 40970 destElements = getAll(clone); 40971 srcElements = getAll(elem); 40972 40973 for (i = 0, l = srcElements.length; i < l; i++) { 40974 fixInput(srcElements[i], destElements[i]); 40975 } 40976 } // Copy the events from the original to the clone 40977 40978 40979 if (dataAndEvents) { 40980 if (deepDataAndEvents) { 40981 srcElements = srcElements || getAll(elem); 40982 destElements = destElements || getAll(clone); 40983 40984 for (i = 0, l = srcElements.length; i < l; i++) { 40985 cloneCopyEvent(srcElements[i], destElements[i]); 40986 } 40987 } else { 40988 cloneCopyEvent(elem, clone); 40989 } 40990 } // Preserve script evaluation history 40991 40992 40993 destElements = getAll(clone, "script"); 40994 40995 if (destElements.length > 0) { 40996 setGlobalEval(destElements, !inPage && getAll(elem, "script")); 40997 } // Return the cloned set 40998 40999 41000 return clone; 41001 }, 41002 cleanData: function cleanData(elems) { 41003 var data, 41004 elem, 41005 type, 41006 special = jQuery.event.special, 41007 i = 0; 41008 41009 for (; (elem = elems[i]) !== undefined; i++) { 41010 if (acceptData(elem)) { 41011 if (data = elem[dataPriv.expando]) { 41012 if (data.events) { 41013 for (type in data.events) { 41014 if (special[type]) { 41015 jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead 41016 } else { 41017 jQuery.removeEvent(elem, type, data.handle); 41018 } 41019 } 41020 } // Support: Chrome <=35 - 45+ 41021 // Assign undefined instead of using delete, see Data#remove 41022 41023 41024 elem[dataPriv.expando] = undefined; 41025 } 41026 41027 if (elem[dataUser.expando]) { 41028 // Support: Chrome <=35 - 45+ 41029 // Assign undefined instead of using delete, see Data#remove 41030 elem[dataUser.expando] = undefined; 41031 } 41032 } 41033 } 41034 } 41035 }); 41036 jQuery.fn.extend({ 41037 detach: function detach(selector) { 41038 return _remove(this, selector, true); 41039 }, 41040 remove: function remove(selector) { 41041 return _remove(this, selector); 41042 }, 41043 text: function text(value) { 41044 return access(this, function (value) { 41045 return value === undefined ? jQuery.text(this) : this.empty().each(function () { 41046 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 41047 this.textContent = value; 41048 } 41049 }); 41050 }, null, value, arguments.length); 41051 }, 41052 append: function append() { 41053 return domManip(this, arguments, function (elem) { 41054 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 41055 var target = manipulationTarget(this, elem); 41056 target.appendChild(elem); 41057 } 41058 }); 41059 }, 41060 prepend: function prepend() { 41061 return domManip(this, arguments, function (elem) { 41062 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 41063 var target = manipulationTarget(this, elem); 41064 target.insertBefore(elem, target.firstChild); 41065 } 41066 }); 41067 }, 41068 before: function before() { 41069 return domManip(this, arguments, function (elem) { 41070 if (this.parentNode) { 41071 this.parentNode.insertBefore(elem, this); 41072 } 41073 }); 41074 }, 41075 after: function after() { 41076 return domManip(this, arguments, function (elem) { 41077 if (this.parentNode) { 41078 this.parentNode.insertBefore(elem, this.nextSibling); 41079 } 41080 }); 41081 }, 41082 empty: function empty() { 41083 var elem, 41084 i = 0; 41085 41086 for (; (elem = this[i]) != null; i++) { 41087 if (elem.nodeType === 1) { 41088 // Prevent memory leaks 41089 jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes 41090 41091 elem.textContent = ""; 41092 } 41093 } 41094 41095 return this; 41096 }, 41097 clone: function clone(dataAndEvents, deepDataAndEvents) { 41098 dataAndEvents = dataAndEvents == null ? false : dataAndEvents; 41099 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 41100 return this.map(function () { 41101 return jQuery.clone(this, dataAndEvents, deepDataAndEvents); 41102 }); 41103 }, 41104 html: function html(value) { 41105 return access(this, function (value) { 41106 var elem = this[0] || {}, 41107 i = 0, 41108 l = this.length; 41109 41110 if (value === undefined && elem.nodeType === 1) { 41111 return elem.innerHTML; 41112 } // See if we can take a shortcut and just use innerHTML 41113 41114 41115 if (typeof value === "string" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || ["", ""])[1].toLowerCase()]) { 41116 value = jQuery.htmlPrefilter(value); 41117 41118 try { 41119 for (; i < l; i++) { 41120 elem = this[i] || {}; // Remove element nodes and prevent memory leaks 41121 41122 if (elem.nodeType === 1) { 41123 jQuery.cleanData(getAll(elem, false)); 41124 elem.innerHTML = value; 41125 } 41126 } 41127 41128 elem = 0; // If using innerHTML throws an exception, use the fallback method 41129 } catch (e) {} 41130 } 41131 41132 if (elem) { 41133 this.empty().append(value); 41134 } 41135 }, null, value, arguments.length); 41136 }, 41137 replaceWith: function replaceWith() { 41138 var ignored = []; // Make the changes, replacing each non-ignored context element with the new content 41139 41140 return domManip(this, arguments, function (elem) { 41141 var parent = this.parentNode; 41142 41143 if (jQuery.inArray(this, ignored) < 0) { 41144 jQuery.cleanData(getAll(this)); 41145 41146 if (parent) { 41147 parent.replaceChild(elem, this); 41148 } 41149 } // Force callback invocation 41150 41151 }, ignored); 41152 } 41153 }); 41154 jQuery.each({ 41155 appendTo: "append", 41156 prependTo: "prepend", 41157 insertBefore: "before", 41158 insertAfter: "after", 41159 replaceAll: "replaceWith" 41160 }, function (name, original) { 41161 jQuery.fn[name] = function (selector) { 41162 var elems, 41163 ret = [], 41164 insert = jQuery(selector), 41165 last = insert.length - 1, 41166 i = 0; 41167 41168 for (; i <= last; i++) { 41169 elems = i === last ? this : this.clone(true); 41170 jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only 41171 // .get() because push.apply(_, arraylike) throws on ancient WebKit 41172 41173 push.apply(ret, elems.get()); 41174 } 41175 41176 return this.pushStack(ret); 41177 }; 41178 }); 41179 var rnumnonpx = new RegExp("^(" + pnum + ")(?!px)[a-z%]+$", "i"); 41180 41181 var getStyles = function getStyles(elem) { 41182 // Support: IE <=11 only, Firefox <=30 (#15098, #14150) 41183 // IE throws on elements created in popups 41184 // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 41185 var view = elem.ownerDocument.defaultView; 41186 41187 if (!view || !view.opener) { 41188 view = window; 41189 } 41190 41191 return view.getComputedStyle(elem); 41192 }; 41193 41194 var swap = function swap(elem, options, callback) { 41195 var ret, 41196 name, 41197 old = {}; // Remember the old values, and insert the new ones 41198 41199 for (name in options) { 41200 old[name] = elem.style[name]; 41201 elem.style[name] = options[name]; 41202 } 41203 41204 ret = callback.call(elem); // Revert the old values 41205 41206 for (name in options) { 41207 elem.style[name] = old[name]; 41208 } 41209 41210 return ret; 41211 }; 41212 41213 var rboxStyle = new RegExp(cssExpand.join("|"), "i"); 41214 41215 (function () { 41216 // Executing both pixelPosition & boxSizingReliable tests require only one layout 41217 // so they're executed at the same time to save the second computation. 41218 function computeStyleTests() { 41219 // This is a singleton, we need to execute it only once 41220 if (!div) { 41221 return; 41222 } 41223 41224 container.style.cssText = "position:absolute;left:-11111px;width:60px;" + "margin-top:1px;padding:0;border:0"; 41225 div.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + "margin:auto;border:1px;padding:1px;" + "width:60%;top:1%"; 41226 documentElement.appendChild(container).appendChild(div); 41227 var divStyle = window.getComputedStyle(div); 41228 pixelPositionVal = divStyle.top !== "1%"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 41229 41230 reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 41231 // Some styles come back with percentage values, even though they shouldn't 41232 41233 div.style.right = "60%"; 41234 pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only 41235 // Detect misreporting of content dimensions for box-sizing:border-box elements 41236 41237 boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only 41238 // Detect overflow:scroll screwiness (gh-3699) 41239 // Support: Chrome <=64 41240 // Don't get tricked when zoom affects offsetWidth (gh-4029) 41241 41242 div.style.position = "absolute"; 41243 scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12; 41244 documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and 41245 // it will also be a sign that checks already performed 41246 41247 div = null; 41248 } 41249 41250 function roundPixelMeasures(measure) { 41251 return Math.round(parseFloat(measure)); 41252 } 41253 41254 var pixelPositionVal, 41255 boxSizingReliableVal, 41256 scrollboxSizeVal, 41257 pixelBoxStylesVal, 41258 reliableTrDimensionsVal, 41259 reliableMarginLeftVal, 41260 container = document.createElement("div"), 41261 div = document.createElement("div"); // Finish early in limited (non-browser) environments 41262 41263 if (!div.style) { 41264 return; 41265 } // Support: IE <=9 - 11 only 41266 // Style of cloned element affects source element cloned (#8908) 41267 41268 41269 div.style.backgroundClip = "content-box"; 41270 div.cloneNode(true).style.backgroundClip = ""; 41271 support.clearCloneStyle = div.style.backgroundClip === "content-box"; 41272 jQuery.extend(support, { 41273 boxSizingReliable: function boxSizingReliable() { 41274 computeStyleTests(); 41275 return boxSizingReliableVal; 41276 }, 41277 pixelBoxStyles: function pixelBoxStyles() { 41278 computeStyleTests(); 41279 return pixelBoxStylesVal; 41280 }, 41281 pixelPosition: function pixelPosition() { 41282 computeStyleTests(); 41283 return pixelPositionVal; 41284 }, 41285 reliableMarginLeft: function reliableMarginLeft() { 41286 computeStyleTests(); 41287 return reliableMarginLeftVal; 41288 }, 41289 scrollboxSize: function scrollboxSize() { 41290 computeStyleTests(); 41291 return scrollboxSizeVal; 41292 }, 41293 // Support: IE 9 - 11+, Edge 15 - 18+ 41294 // IE/Edge misreport `getComputedStyle` of table rows with width/height 41295 // set in CSS while `offset*` properties report correct values. 41296 // Behavior in IE 9 is more subtle than in newer versions & it passes 41297 // some versions of this test; make sure not to make it pass there! 41298 // 41299 // Support: Firefox 70+ 41300 // Only Firefox includes border widths 41301 // in computed dimensions. (gh-4529) 41302 reliableTrDimensions: function reliableTrDimensions() { 41303 var table, tr, trChild, trStyle; 41304 41305 if (reliableTrDimensionsVal == null) { 41306 table = document.createElement("table"); 41307 tr = document.createElement("tr"); 41308 trChild = document.createElement("div"); 41309 table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; 41310 tr.style.cssText = "border:1px solid"; // Support: Chrome 86+ 41311 // Height set through cssText does not get applied. 41312 // Computed height then comes back as 0. 41313 41314 tr.style.height = "1px"; 41315 trChild.style.height = "9px"; // Support: Android 8 Chrome 86+ 41316 // In our bodyBackground.html iframe, 41317 // display for all div elements is set to "inline", 41318 // which causes a problem only in Android 8 Chrome 86. 41319 // Ensuring the div is display: block 41320 // gets around this issue. 41321 41322 trChild.style.display = "block"; 41323 documentElement.appendChild(table).appendChild(tr).appendChild(trChild); 41324 trStyle = window.getComputedStyle(tr); 41325 reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight; 41326 documentElement.removeChild(table); 41327 } 41328 41329 return reliableTrDimensionsVal; 41330 } 41331 }); 41332 })(); 41333 41334 function curCSS(elem, name, computed) { 41335 var width, 41336 minWidth, 41337 maxWidth, 41338 ret, 41339 // Support: Firefox 51+ 41340 // Retrieving style before computed somehow 41341 // fixes an issue with getting wrong values 41342 // on detached elements 41343 style = elem.style; 41344 computed = computed || getStyles(elem); // getPropertyValue is needed for: 41345 // .css('filter') (IE 9 only, #12537) 41346 // .css('--customProperty) (#3144) 41347 41348 if (computed) { 41349 ret = computed.getPropertyValue(name) || computed[name]; 41350 41351 if (ret === "" && !isAttached(elem)) { 41352 ret = jQuery.style(elem, name); 41353 } // A tribute to the "awesome hack by Dean Edwards" 41354 // Android Browser returns percentage for some values, 41355 // but width seems to be reliably pixels. 41356 // This is against the CSSOM draft spec: 41357 // https://drafts.csswg.org/cssom/#resolved-values 41358 41359 41360 if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) { 41361 // Remember the original values 41362 width = style.width; 41363 minWidth = style.minWidth; 41364 maxWidth = style.maxWidth; // Put in the new values to get a computed value out 41365 41366 style.minWidth = style.maxWidth = style.width = ret; 41367 ret = computed.width; // Revert the changed values 41368 41369 style.width = width; 41370 style.minWidth = minWidth; 41371 style.maxWidth = maxWidth; 41372 } 41373 } 41374 41375 return ret !== undefined ? // Support: IE <=9 - 11 only 41376 // IE returns zIndex value as an integer. 41377 ret + "" : ret; 41378 } 41379 41380 function addGetHookIf(conditionFn, hookFn) { 41381 // Define the hook, we'll check on the first run if it's really needed. 41382 return { 41383 get: function get() { 41384 if (conditionFn()) { 41385 // Hook not needed (or it's not possible to use it due 41386 // to missing dependency), remove it. 41387 delete this.get; 41388 return; 41389 } // Hook needed; redefine it so that the support test is not executed again. 41390 41391 41392 return (this.get = hookFn).apply(this, arguments); 41393 } 41394 }; 41395 } 41396 41397 var cssPrefixes = ["Webkit", "Moz", "ms"], 41398 emptyStyle = document.createElement("div").style, 41399 vendorProps = {}; // Return a vendor-prefixed property or undefined 41400 41401 function vendorPropName(name) { 41402 // Check for vendor prefixed names 41403 var capName = name[0].toUpperCase() + name.slice(1), 41404 i = cssPrefixes.length; 41405 41406 while (i--) { 41407 name = cssPrefixes[i] + capName; 41408 41409 if (name in emptyStyle) { 41410 return name; 41411 } 41412 } 41413 } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property 41414 41415 41416 function finalPropName(name) { 41417 var _final = jQuery.cssProps[name] || vendorProps[name]; 41418 41419 if (_final) { 41420 return _final; 41421 } 41422 41423 if (name in emptyStyle) { 41424 return name; 41425 } 41426 41427 return vendorProps[name] = vendorPropName(name) || name; 41428 } 41429 41430 var // Swappable if display is none or starts with table 41431 // except "table", "table-cell", or "table-caption" 41432 // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display 41433 rdisplayswap = /^(none|table(?!-c[ea]).+)/, 41434 rcustomProp = /^--/, 41435 cssShow = { 41436 position: "absolute", 41437 visibility: "hidden", 41438 display: "block" 41439 }, 41440 cssNormalTransform = { 41441 letterSpacing: "0", 41442 fontWeight: "400" 41443 }; 41444 41445 function setPositiveNumber(_elem, value, subtract) { 41446 // Any relative (+/-) values have already been 41447 // normalized at this point 41448 var matches = rcssNum.exec(value); 41449 return matches ? // Guard against undefined "subtract", e.g., when used as in cssHooks 41450 Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || "px") : value; 41451 } 41452 41453 function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) { 41454 var i = dimension === "width" ? 1 : 0, 41455 extra = 0, 41456 delta = 0; // Adjustment may not be necessary 41457 41458 if (box === (isBorderBox ? "border" : "content")) { 41459 return 0; 41460 } 41461 41462 for (; i < 4; i += 2) { 41463 // Both box models exclude margin 41464 if (box === "margin") { 41465 delta += jQuery.css(elem, box + cssExpand[i], true, styles); 41466 } // If we get here with a content-box, we're seeking "padding" or "border" or "margin" 41467 41468 41469 if (!isBorderBox) { 41470 // Add padding 41471 delta += jQuery.css(elem, "padding" + cssExpand[i], true, styles); // For "border" or "margin", add border 41472 41473 if (box !== "padding") { 41474 delta += jQuery.css(elem, "border" + cssExpand[i] + "Width", true, styles); // But still keep track of it otherwise 41475 } else { 41476 extra += jQuery.css(elem, "border" + cssExpand[i] + "Width", true, styles); 41477 } // If we get here with a border-box (content + padding + border), we're seeking "content" or 41478 // "padding" or "margin" 41479 41480 } else { 41481 // For "content", subtract padding 41482 if (box === "content") { 41483 delta -= jQuery.css(elem, "padding" + cssExpand[i], true, styles); 41484 } // For "content" or "padding", subtract border 41485 41486 41487 if (box !== "margin") { 41488 delta -= jQuery.css(elem, "border" + cssExpand[i] + "Width", true, styles); 41489 } 41490 } 41491 } // Account for positive content-box scroll gutter when requested by providing computedVal 41492 41493 41494 if (!isBorderBox && computedVal >= 0) { 41495 // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border 41496 // Assuming integer scroll gutter, subtract the rest and round down 41497 delta += Math.max(0, Math.ceil(elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter 41498 // Use an explicit zero to avoid NaN (gh-3964) 41499 )) || 0; 41500 } 41501 41502 return delta; 41503 } 41504 41505 function getWidthOrHeight(elem, dimension, extra) { 41506 // Start with computed style 41507 var styles = getStyles(elem), 41508 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). 41509 // Fake content-box until we know it's needed to know the true value. 41510 boxSizingNeeded = !support.boxSizingReliable() || extra, 41511 isBorderBox = boxSizingNeeded && jQuery.css(elem, "boxSizing", false, styles) === "border-box", 41512 valueIsBorderBox = isBorderBox, 41513 val = curCSS(elem, dimension, styles), 41514 offsetProp = "offset" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54 41515 // Return a confounding non-pixel value or feign ignorance, as appropriate. 41516 41517 if (rnumnonpx.test(val)) { 41518 if (!extra) { 41519 return val; 41520 } 41521 41522 val = "auto"; 41523 } // Support: IE 9 - 11 only 41524 // Use offsetWidth/offsetHeight for when box sizing is unreliable. 41525 // In those cases, the computed value can be trusted to be border-box. 41526 41527 41528 if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+ 41529 // IE/Edge misreport `getComputedStyle` of table rows with width/height 41530 // set in CSS while `offset*` properties report correct values. 41531 // Interestingly, in some cases IE 9 doesn't suffer from this issue. 41532 !support.reliableTrDimensions() && nodeName(elem, "tr") || // Fall back to offsetWidth/offsetHeight when value is "auto" 41533 // This happens for inline elements with no explicit setting (gh-3571) 41534 val === "auto" || // Support: Android <=4.1 - 4.3 only 41535 // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) 41536 !parseFloat(val) && jQuery.css(elem, "display", false, styles) === "inline") && // Make sure the element is visible & connected 41537 elem.getClientRects().length) { 41538 isBorderBox = jQuery.css(elem, "boxSizing", false, styles) === "border-box"; // Where available, offsetWidth/offsetHeight approximate border box dimensions. 41539 // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the 41540 // retrieved value as a content box dimension. 41541 41542 valueIsBorderBox = offsetProp in elem; 41543 41544 if (valueIsBorderBox) { 41545 val = elem[offsetProp]; 41546 } 41547 } // Normalize "" and auto 41548 41549 41550 val = parseFloat(val) || 0; // Adjust for the element's box model 41551 41552 return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? "border" : "content"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589) 41553 val) + "px"; 41554 } 41555 41556 jQuery.extend({ 41557 // Add in style property hooks for overriding the default 41558 // behavior of getting and setting a style property 41559 cssHooks: { 41560 opacity: { 41561 get: function get(elem, computed) { 41562 if (computed) { 41563 // We should always get a number back from opacity 41564 var ret = curCSS(elem, "opacity"); 41565 return ret === "" ? "1" : ret; 41566 } 41567 } 41568 } 41569 }, 41570 // Don't automatically add "px" to these possibly-unitless properties 41571 cssNumber: { 41572 "animationIterationCount": true, 41573 "columnCount": true, 41574 "fillOpacity": true, 41575 "flexGrow": true, 41576 "flexShrink": true, 41577 "fontWeight": true, 41578 "gridArea": true, 41579 "gridColumn": true, 41580 "gridColumnEnd": true, 41581 "gridColumnStart": true, 41582 "gridRow": true, 41583 "gridRowEnd": true, 41584 "gridRowStart": true, 41585 "lineHeight": true, 41586 "opacity": true, 41587 "order": true, 41588 "orphans": true, 41589 "widows": true, 41590 "zIndex": true, 41591 "zoom": true 41592 }, 41593 // Add in properties whose names you wish to fix before 41594 // setting or getting the value 41595 cssProps: {}, 41596 // Get and set the style property on a DOM Node 41597 style: function style(elem, name, value, extra) { 41598 // Don't set styles on text and comment nodes 41599 if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) { 41600 return; 41601 } // Make sure that we're working with the right name 41602 41603 41604 var ret, 41605 type, 41606 hooks, 41607 origName = camelCase(name), 41608 isCustomProp = rcustomProp.test(name), 41609 style = elem.style; // Make sure that we're working with the right name. We don't 41610 // want to query the value if it is a CSS custom property 41611 // since they are user-defined. 41612 41613 if (!isCustomProp) { 41614 name = finalPropName(origName); 41615 } // Gets hook for the prefixed version, then unprefixed version 41616 41617 41618 hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value 41619 41620 if (value !== undefined) { 41621 type = _typeof(value); // Convert "+=" or "-=" to relative numbers (#7345) 41622 41623 if (type === "string" && (ret = rcssNum.exec(value)) && ret[1]) { 41624 value = adjustCSS(elem, name, ret); // Fixes bug #9237 41625 41626 type = "number"; 41627 } // Make sure that null and NaN values aren't set (#7116) 41628 41629 41630 if (value == null || value !== value) { 41631 return; 41632 } // If a number was passed in, add the unit (except for certain CSS properties) 41633 // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append 41634 // "px" to a few hardcoded values. 41635 41636 41637 if (type === "number" && !isCustomProp) { 41638 value += ret && ret[3] || (jQuery.cssNumber[origName] ? "" : "px"); 41639 } // background-* props affect original clone's values 41640 41641 41642 if (!support.clearCloneStyle && value === "" && name.indexOf("background") === 0) { 41643 style[name] = "inherit"; 41644 } // If a hook was provided, use that value, otherwise just set the specified value 41645 41646 41647 if (!hooks || !("set" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) { 41648 if (isCustomProp) { 41649 style.setProperty(name, value); 41650 } else { 41651 style[name] = value; 41652 } 41653 } 41654 } else { 41655 // If a hook was provided get the non-computed value from there 41656 if (hooks && "get" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) { 41657 return ret; 41658 } // Otherwise just get the value from the style object 41659 41660 41661 return style[name]; 41662 } 41663 }, 41664 css: function css(elem, name, extra, styles) { 41665 var val, 41666 num, 41667 hooks, 41668 origName = camelCase(name), 41669 isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't 41670 // want to modify the value if it is a CSS custom property 41671 // since they are user-defined. 41672 41673 if (!isCustomProp) { 41674 name = finalPropName(origName); 41675 } // Try prefixed name followed by the unprefixed name 41676 41677 41678 hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there 41679 41680 if (hooks && "get" in hooks) { 41681 val = hooks.get(elem, true, extra); 41682 } // Otherwise, if a way to get the computed value exists, use that 41683 41684 41685 if (val === undefined) { 41686 val = curCSS(elem, name, styles); 41687 } // Convert "normal" to computed value 41688 41689 41690 if (val === "normal" && name in cssNormalTransform) { 41691 val = cssNormalTransform[name]; 41692 } // Make numeric if forced or a qualifier was provided and val looks numeric 41693 41694 41695 if (extra === "" || extra) { 41696 num = parseFloat(val); 41697 return extra === true || isFinite(num) ? num || 0 : val; 41698 } 41699 41700 return val; 41701 } 41702 }); 41703 jQuery.each(["height", "width"], function (_i, dimension) { 41704 jQuery.cssHooks[dimension] = { 41705 get: function get(elem, computed, extra) { 41706 if (computed) { 41707 // Certain elements can have dimension info if we invisibly show them 41708 // but it must have a current display style that would benefit 41709 return rdisplayswap.test(jQuery.css(elem, "display")) && ( // Support: Safari 8+ 41710 // Table columns in Safari have non-zero offsetWidth & zero 41711 // getBoundingClientRect().width unless display is changed. 41712 // Support: IE <=11 only 41713 // Running getBoundingClientRect on a disconnected node 41714 // in IE throws an error. 41715 !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () { 41716 return getWidthOrHeight(elem, dimension, extra); 41717 }) : getWidthOrHeight(elem, dimension, extra); 41718 } 41719 }, 41720 set: function set(elem, value, extra) { 41721 var matches, 41722 styles = getStyles(elem), 41723 // Only read styles.position if the test has a chance to fail 41724 // to avoid forcing a reflow. 41725 scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === "absolute", 41726 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) 41727 boxSizingNeeded = scrollboxSizeBuggy || extra, 41728 isBorderBox = boxSizingNeeded && jQuery.css(elem, "boxSizing", false, styles) === "border-box", 41729 subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and 41730 // faking a content-box to get border and padding (gh-3699) 41731 41732 if (isBorderBox && scrollboxSizeBuggy) { 41733 subtract -= Math.ceil(elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, "border", false, styles) - 0.5); 41734 } // Convert to pixels if value adjustment is needed 41735 41736 41737 if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || "px") !== "px") { 41738 elem.style[dimension] = value; 41739 value = jQuery.css(elem, dimension); 41740 } 41741 41742 return setPositiveNumber(elem, value, subtract); 41743 } 41744 }; 41745 }); 41746 jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) { 41747 if (computed) { 41748 return (parseFloat(curCSS(elem, "marginLeft")) || elem.getBoundingClientRect().left - swap(elem, { 41749 marginLeft: 0 41750 }, function () { 41751 return elem.getBoundingClientRect().left; 41752 })) + "px"; 41753 } 41754 }); // These hooks are used by animate to expand properties 41755 41756 jQuery.each({ 41757 margin: "", 41758 padding: "", 41759 border: "Width" 41760 }, function (prefix, suffix) { 41761 jQuery.cssHooks[prefix + suffix] = { 41762 expand: function expand(value) { 41763 var i = 0, 41764 expanded = {}, 41765 // Assumes a single number if not a string 41766 parts = typeof value === "string" ? value.split(" ") : [value]; 41767 41768 for (; i < 4; i++) { 41769 expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0]; 41770 } 41771 41772 return expanded; 41773 } 41774 }; 41775 41776 if (prefix !== "margin") { 41777 jQuery.cssHooks[prefix + suffix].set = setPositiveNumber; 41778 } 41779 }); 41780 jQuery.fn.extend({ 41781 css: function css(name, value) { 41782 return access(this, function (elem, name, value) { 41783 var styles, 41784 len, 41785 map = {}, 41786 i = 0; 41787 41788 if (Array.isArray(name)) { 41789 styles = getStyles(elem); 41790 len = name.length; 41791 41792 for (; i < len; i++) { 41793 map[name[i]] = jQuery.css(elem, name[i], false, styles); 41794 } 41795 41796 return map; 41797 } 41798 41799 return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name); 41800 }, name, value, arguments.length > 1); 41801 } 41802 }); 41803 41804 function Tween(elem, options, prop, end, easing) { 41805 return new Tween.prototype.init(elem, options, prop, end, easing); 41806 } 41807 41808 jQuery.Tween = Tween; 41809 Tween.prototype = { 41810 constructor: Tween, 41811 init: function init(elem, options, prop, end, easing, unit) { 41812 this.elem = elem; 41813 this.prop = prop; 41814 this.easing = easing || jQuery.easing._default; 41815 this.options = options; 41816 this.start = this.now = this.cur(); 41817 this.end = end; 41818 this.unit = unit || (jQuery.cssNumber[prop] ? "" : "px"); 41819 }, 41820 cur: function cur() { 41821 var hooks = Tween.propHooks[this.prop]; 41822 return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this); 41823 }, 41824 run: function run(percent) { 41825 var eased, 41826 hooks = Tween.propHooks[this.prop]; 41827 41828 if (this.options.duration) { 41829 this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration); 41830 } else { 41831 this.pos = eased = percent; 41832 } 41833 41834 this.now = (this.end - this.start) * eased + this.start; 41835 41836 if (this.options.step) { 41837 this.options.step.call(this.elem, this.now, this); 41838 } 41839 41840 if (hooks && hooks.set) { 41841 hooks.set(this); 41842 } else { 41843 Tween.propHooks._default.set(this); 41844 } 41845 41846 return this; 41847 } 41848 }; 41849 Tween.prototype.init.prototype = Tween.prototype; 41850 Tween.propHooks = { 41851 _default: { 41852 get: function get(tween) { 41853 var result; // Use a property on the element directly when it is not a DOM element, 41854 // or when there is no matching style property that exists. 41855 41856 if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) { 41857 return tween.elem[tween.prop]; 41858 } // Passing an empty string as a 3rd parameter to .css will automatically 41859 // attempt a parseFloat and fallback to a string if the parse fails. 41860 // Simple values such as "10px" are parsed to Float; 41861 // complex values such as "rotate(1rad)" are returned as-is. 41862 41863 41864 result = jQuery.css(tween.elem, tween.prop, ""); // Empty strings, null, undefined and "auto" are converted to 0. 41865 41866 return !result || result === "auto" ? 0 : result; 41867 }, 41868 set: function set(tween) { 41869 // Use step hook for back compat. 41870 // Use cssHook if its there. 41871 // Use .style if available and use plain properties where available. 41872 if (jQuery.fx.step[tween.prop]) { 41873 jQuery.fx.step[tween.prop](tween); 41874 } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) { 41875 jQuery.style(tween.elem, tween.prop, tween.now + tween.unit); 41876 } else { 41877 tween.elem[tween.prop] = tween.now; 41878 } 41879 } 41880 } 41881 }; // Support: IE <=9 only 41882 // Panic based approach to setting things on disconnected nodes 41883 41884 Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { 41885 set: function set(tween) { 41886 if (tween.elem.nodeType && tween.elem.parentNode) { 41887 tween.elem[tween.prop] = tween.now; 41888 } 41889 } 41890 }; 41891 jQuery.easing = { 41892 linear: function linear(p) { 41893 return p; 41894 }, 41895 swing: function swing(p) { 41896 return 0.5 - Math.cos(p * Math.PI) / 2; 41897 }, 41898 _default: "swing" 41899 }; 41900 jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point 41901 41902 jQuery.fx.step = {}; 41903 var fxNow, 41904 inProgress, 41905 rfxtypes = /^(?:toggle|show|hide)$/, 41906 rrun = /queueHooks$/; 41907 41908 function schedule() { 41909 if (inProgress) { 41910 if (document.hidden === false && window.requestAnimationFrame) { 41911 window.requestAnimationFrame(schedule); 41912 } else { 41913 window.setTimeout(schedule, jQuery.fx.interval); 41914 } 41915 41916 jQuery.fx.tick(); 41917 } 41918 } // Animations created synchronously will run synchronously 41919 41920 41921 function createFxNow() { 41922 window.setTimeout(function () { 41923 fxNow = undefined; 41924 }); 41925 return fxNow = Date.now(); 41926 } // Generate parameters to create a standard animation 41927 41928 41929 function genFx(type, includeWidth) { 41930 var which, 41931 i = 0, 41932 attrs = { 41933 height: type 41934 }; // If we include width, step value is 1 to do all cssExpand values, 41935 // otherwise step value is 2 to skip over Left and Right 41936 41937 includeWidth = includeWidth ? 1 : 0; 41938 41939 for (; i < 4; i += 2 - includeWidth) { 41940 which = cssExpand[i]; 41941 attrs["margin" + which] = attrs["padding" + which] = type; 41942 } 41943 41944 if (includeWidth) { 41945 attrs.opacity = attrs.width = type; 41946 } 41947 41948 return attrs; 41949 } 41950 41951 function createTween(value, prop, animation) { 41952 var tween, 41953 collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners["*"]), 41954 index = 0, 41955 length = collection.length; 41956 41957 for (; index < length; index++) { 41958 if (tween = collection[index].call(animation, prop, value)) { 41959 // We're done with this property 41960 return tween; 41961 } 41962 } 41963 } 41964 41965 function defaultPrefilter(elem, props, opts) { 41966 var prop, 41967 value, 41968 toggle, 41969 hooks, 41970 oldfire, 41971 propTween, 41972 restoreDisplay, 41973 display, 41974 isBox = "width" in props || "height" in props, 41975 anim = this, 41976 orig = {}, 41977 style = elem.style, 41978 hidden = elem.nodeType && isHiddenWithinTree(elem), 41979 dataShow = dataPriv.get(elem, "fxshow"); // Queue-skipping animations hijack the fx hooks 41980 41981 if (!opts.queue) { 41982 hooks = jQuery._queueHooks(elem, "fx"); 41983 41984 if (hooks.unqueued == null) { 41985 hooks.unqueued = 0; 41986 oldfire = hooks.empty.fire; 41987 41988 hooks.empty.fire = function () { 41989 if (!hooks.unqueued) { 41990 oldfire(); 41991 } 41992 }; 41993 } 41994 41995 hooks.unqueued++; 41996 anim.always(function () { 41997 // Ensure the complete handler is called before this completes 41998 anim.always(function () { 41999 hooks.unqueued--; 42000 42001 if (!jQuery.queue(elem, "fx").length) { 42002 hooks.empty.fire(); 42003 } 42004 }); 42005 }); 42006 } // Detect show/hide animations 42007 42008 42009 for (prop in props) { 42010 value = props[prop]; 42011 42012 if (rfxtypes.test(value)) { 42013 delete props[prop]; 42014 toggle = toggle || value === "toggle"; 42015 42016 if (value === (hidden ? "hide" : "show")) { 42017 // Pretend to be hidden if this is a "show" and 42018 // there is still data from a stopped show/hide 42019 if (value === "show" && dataShow && dataShow[prop] !== undefined) { 42020 hidden = true; // Ignore all other no-op show/hide data 42021 } else { 42022 continue; 42023 } 42024 } 42025 42026 orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop); 42027 } 42028 } // Bail out if this is a no-op like .hide().hide() 42029 42030 42031 propTween = !jQuery.isEmptyObject(props); 42032 42033 if (!propTween && jQuery.isEmptyObject(orig)) { 42034 return; 42035 } // Restrict "overflow" and "display" styles during box animations 42036 42037 42038 if (isBox && elem.nodeType === 1) { 42039 // Support: IE <=9 - 11, Edge 12 - 15 42040 // Record all 3 overflow attributes because IE does not infer the shorthand 42041 // from identically-valued overflowX and overflowY and Edge just mirrors 42042 // the overflowX value there. 42043 opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade 42044 42045 restoreDisplay = dataShow && dataShow.display; 42046 42047 if (restoreDisplay == null) { 42048 restoreDisplay = dataPriv.get(elem, "display"); 42049 } 42050 42051 display = jQuery.css(elem, "display"); 42052 42053 if (display === "none") { 42054 if (restoreDisplay) { 42055 display = restoreDisplay; 42056 } else { 42057 // Get nonempty value(s) by temporarily forcing visibility 42058 showHide([elem], true); 42059 restoreDisplay = elem.style.display || restoreDisplay; 42060 display = jQuery.css(elem, "display"); 42061 showHide([elem]); 42062 } 42063 } // Animate inline elements as inline-block 42064 42065 42066 if (display === "inline" || display === "inline-block" && restoreDisplay != null) { 42067 if (jQuery.css(elem, "float") === "none") { 42068 // Restore the original display value at the end of pure show/hide animations 42069 if (!propTween) { 42070 anim.done(function () { 42071 style.display = restoreDisplay; 42072 }); 42073 42074 if (restoreDisplay == null) { 42075 display = style.display; 42076 restoreDisplay = display === "none" ? "" : display; 42077 } 42078 } 42079 42080 style.display = "inline-block"; 42081 } 42082 } 42083 } 42084 42085 if (opts.overflow) { 42086 style.overflow = "hidden"; 42087 anim.always(function () { 42088 style.overflow = opts.overflow[0]; 42089 style.overflowX = opts.overflow[1]; 42090 style.overflowY = opts.overflow[2]; 42091 }); 42092 } // Implement show/hide animations 42093 42094 42095 propTween = false; 42096 42097 for (prop in orig) { 42098 // General show/hide setup for this element animation 42099 if (!propTween) { 42100 if (dataShow) { 42101 if ("hidden" in dataShow) { 42102 hidden = dataShow.hidden; 42103 } 42104 } else { 42105 dataShow = dataPriv.access(elem, "fxshow", { 42106 display: restoreDisplay 42107 }); 42108 } // Store hidden/visible for toggle so `.stop().toggle()` "reverses" 42109 42110 42111 if (toggle) { 42112 dataShow.hidden = !hidden; 42113 } // Show elements before animating them 42114 42115 42116 if (hidden) { 42117 showHide([elem], true); 42118 } 42119 /* eslint-disable no-loop-func */ 42120 42121 42122 anim.done(function () { 42123 /* eslint-enable no-loop-func */ 42124 // The final step of a "hide" animation is actually hiding the element 42125 if (!hidden) { 42126 showHide([elem]); 42127 } 42128 42129 dataPriv.remove(elem, "fxshow"); 42130 42131 for (prop in orig) { 42132 jQuery.style(elem, prop, orig[prop]); 42133 } 42134 }); 42135 } // Per-property setup 42136 42137 42138 propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim); 42139 42140 if (!(prop in dataShow)) { 42141 dataShow[prop] = propTween.start; 42142 42143 if (hidden) { 42144 propTween.end = propTween.start; 42145 propTween.start = 0; 42146 } 42147 } 42148 } 42149 } 42150 42151 function propFilter(props, specialEasing) { 42152 var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass 42153 42154 for (index in props) { 42155 name = camelCase(index); 42156 easing = specialEasing[name]; 42157 value = props[index]; 42158 42159 if (Array.isArray(value)) { 42160 easing = value[1]; 42161 value = props[index] = value[0]; 42162 } 42163 42164 if (index !== name) { 42165 props[name] = value; 42166 delete props[index]; 42167 } 42168 42169 hooks = jQuery.cssHooks[name]; 42170 42171 if (hooks && "expand" in hooks) { 42172 value = hooks.expand(value); 42173 delete props[name]; // Not quite $.extend, this won't overwrite existing keys. 42174 // Reusing 'index' because we have the correct "name" 42175 42176 for (index in value) { 42177 if (!(index in props)) { 42178 props[index] = value[index]; 42179 specialEasing[index] = easing; 42180 } 42181 } 42182 } else { 42183 specialEasing[name] = easing; 42184 } 42185 } 42186 } 42187 42188 function Animation(elem, properties, options) { 42189 var result, 42190 stopped, 42191 index = 0, 42192 length = Animation.prefilters.length, 42193 deferred = jQuery.Deferred().always(function () { 42194 // Don't match elem in the :animated selector 42195 delete tick.elem; 42196 }), 42197 tick = function tick() { 42198 if (stopped) { 42199 return false; 42200 } 42201 42202 var currentTime = fxNow || createFxNow(), 42203 remaining = Math.max(0, animation.startTime + animation.duration - currentTime), 42204 // Support: Android 2.3 only 42205 // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) 42206 temp = remaining / animation.duration || 0, 42207 percent = 1 - temp, 42208 index = 0, 42209 length = animation.tweens.length; 42210 42211 for (; index < length; index++) { 42212 animation.tweens[index].run(percent); 42213 } 42214 42215 deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield 42216 42217 if (percent < 1 && length) { 42218 return remaining; 42219 } // If this was an empty animation, synthesize a final progress notification 42220 42221 42222 if (!length) { 42223 deferred.notifyWith(elem, [animation, 1, 0]); 42224 } // Resolve the animation and report its conclusion 42225 42226 42227 deferred.resolveWith(elem, [animation]); 42228 return false; 42229 }, 42230 animation = deferred.promise({ 42231 elem: elem, 42232 props: jQuery.extend({}, properties), 42233 opts: jQuery.extend(true, { 42234 specialEasing: {}, 42235 easing: jQuery.easing._default 42236 }, options), 42237 originalProperties: properties, 42238 originalOptions: options, 42239 startTime: fxNow || createFxNow(), 42240 duration: options.duration, 42241 tweens: [], 42242 createTween: function createTween(prop, end) { 42243 var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing); 42244 animation.tweens.push(tween); 42245 return tween; 42246 }, 42247 stop: function stop(gotoEnd) { 42248 var index = 0, 42249 // If we are going to the end, we want to run all the tweens 42250 // otherwise we skip this part 42251 length = gotoEnd ? animation.tweens.length : 0; 42252 42253 if (stopped) { 42254 return this; 42255 } 42256 42257 stopped = true; 42258 42259 for (; index < length; index++) { 42260 animation.tweens[index].run(1); 42261 } // Resolve when we played the last frame; otherwise, reject 42262 42263 42264 if (gotoEnd) { 42265 deferred.notifyWith(elem, [animation, 1, 0]); 42266 deferred.resolveWith(elem, [animation, gotoEnd]); 42267 } else { 42268 deferred.rejectWith(elem, [animation, gotoEnd]); 42269 } 42270 42271 return this; 42272 } 42273 }), 42274 props = animation.props; 42275 42276 propFilter(props, animation.opts.specialEasing); 42277 42278 for (; index < length; index++) { 42279 result = Animation.prefilters[index].call(animation, elem, props, animation.opts); 42280 42281 if (result) { 42282 if (isFunction(result.stop)) { 42283 jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result); 42284 } 42285 42286 return result; 42287 } 42288 } 42289 42290 jQuery.map(props, createTween, animation); 42291 42292 if (isFunction(animation.opts.start)) { 42293 animation.opts.start.call(elem, animation); 42294 } // Attach callbacks from options 42295 42296 42297 animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always); 42298 jQuery.fx.timer(jQuery.extend(tick, { 42299 elem: elem, 42300 anim: animation, 42301 queue: animation.opts.queue 42302 })); 42303 return animation; 42304 } 42305 42306 jQuery.Animation = jQuery.extend(Animation, { 42307 tweeners: { 42308 "*": [function (prop, value) { 42309 var tween = this.createTween(prop, value); 42310 adjustCSS(tween.elem, prop, rcssNum.exec(value), tween); 42311 return tween; 42312 }] 42313 }, 42314 tweener: function tweener(props, callback) { 42315 if (isFunction(props)) { 42316 callback = props; 42317 props = ["*"]; 42318 } else { 42319 props = props.match(rnothtmlwhite); 42320 } 42321 42322 var prop, 42323 index = 0, 42324 length = props.length; 42325 42326 for (; index < length; index++) { 42327 prop = props[index]; 42328 Animation.tweeners[prop] = Animation.tweeners[prop] || []; 42329 Animation.tweeners[prop].unshift(callback); 42330 } 42331 }, 42332 prefilters: [defaultPrefilter], 42333 prefilter: function prefilter(callback, prepend) { 42334 if (prepend) { 42335 Animation.prefilters.unshift(callback); 42336 } else { 42337 Animation.prefilters.push(callback); 42338 } 42339 } 42340 }); 42341 42342 jQuery.speed = function (speed, easing, fn) { 42343 var opt = speed && _typeof(speed) === "object" ? jQuery.extend({}, speed) : { 42344 complete: fn || !fn && easing || isFunction(speed) && speed, 42345 duration: speed, 42346 easing: fn && easing || easing && !isFunction(easing) && easing 42347 }; // Go to the end state if fx are off 42348 42349 if (jQuery.fx.off) { 42350 opt.duration = 0; 42351 } else { 42352 if (typeof opt.duration !== "number") { 42353 if (opt.duration in jQuery.fx.speeds) { 42354 opt.duration = jQuery.fx.speeds[opt.duration]; 42355 } else { 42356 opt.duration = jQuery.fx.speeds._default; 42357 } 42358 } 42359 } // Normalize opt.queue - true/undefined/null -> "fx" 42360 42361 42362 if (opt.queue == null || opt.queue === true) { 42363 opt.queue = "fx"; 42364 } // Queueing 42365 42366 42367 opt.old = opt.complete; 42368 42369 opt.complete = function () { 42370 if (isFunction(opt.old)) { 42371 opt.old.call(this); 42372 } 42373 42374 if (opt.queue) { 42375 jQuery.dequeue(this, opt.queue); 42376 } 42377 }; 42378 42379 return opt; 42380 }; 42381 42382 jQuery.fn.extend({ 42383 fadeTo: function fadeTo(speed, to, easing, callback) { 42384 // Show any hidden elements after setting opacity to 0 42385 return this.filter(isHiddenWithinTree).css("opacity", 0).show() // Animate to the value specified 42386 .end().animate({ 42387 opacity: to 42388 }, speed, easing, callback); 42389 }, 42390 animate: function animate(prop, speed, easing, callback) { 42391 var empty = jQuery.isEmptyObject(prop), 42392 optall = jQuery.speed(speed, easing, callback), 42393 doAnimation = function doAnimation() { 42394 // Operate on a copy of prop so per-property easing won't be lost 42395 var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately 42396 42397 if (empty || dataPriv.get(this, "finish")) { 42398 anim.stop(true); 42399 } 42400 }; 42401 42402 doAnimation.finish = doAnimation; 42403 return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation); 42404 }, 42405 stop: function stop(type, clearQueue, gotoEnd) { 42406 var stopQueue = function stopQueue(hooks) { 42407 var stop = hooks.stop; 42408 delete hooks.stop; 42409 stop(gotoEnd); 42410 }; 42411 42412 if (typeof type !== "string") { 42413 gotoEnd = clearQueue; 42414 clearQueue = type; 42415 type = undefined; 42416 } 42417 42418 if (clearQueue) { 42419 this.queue(type || "fx", []); 42420 } 42421 42422 return this.each(function () { 42423 var dequeue = true, 42424 index = type != null && type + "queueHooks", 42425 timers = jQuery.timers, 42426 data = dataPriv.get(this); 42427 42428 if (index) { 42429 if (data[index] && data[index].stop) { 42430 stopQueue(data[index]); 42431 } 42432 } else { 42433 for (index in data) { 42434 if (data[index] && data[index].stop && rrun.test(index)) { 42435 stopQueue(data[index]); 42436 } 42437 } 42438 } 42439 42440 for (index = timers.length; index--;) { 42441 if (timers[index].elem === this && (type == null || timers[index].queue === type)) { 42442 timers[index].anim.stop(gotoEnd); 42443 dequeue = false; 42444 timers.splice(index, 1); 42445 } 42446 } // Start the next in the queue if the last step wasn't forced. 42447 // Timers currently will call their complete callbacks, which 42448 // will dequeue but only if they were gotoEnd. 42449 42450 42451 if (dequeue || !gotoEnd) { 42452 jQuery.dequeue(this, type); 42453 } 42454 }); 42455 }, 42456 finish: function finish(type) { 42457 if (type !== false) { 42458 type = type || "fx"; 42459 } 42460 42461 return this.each(function () { 42462 var index, 42463 data = dataPriv.get(this), 42464 queue = data[type + "queue"], 42465 hooks = data[type + "queueHooks"], 42466 timers = jQuery.timers, 42467 length = queue ? queue.length : 0; // Enable finishing flag on private data 42468 42469 data.finish = true; // Empty the queue first 42470 42471 jQuery.queue(this, type, []); 42472 42473 if (hooks && hooks.stop) { 42474 hooks.stop.call(this, true); 42475 } // Look for any active animations, and finish them 42476 42477 42478 for (index = timers.length; index--;) { 42479 if (timers[index].elem === this && timers[index].queue === type) { 42480 timers[index].anim.stop(true); 42481 timers.splice(index, 1); 42482 } 42483 } // Look for any animations in the old queue and finish them 42484 42485 42486 for (index = 0; index < length; index++) { 42487 if (queue[index] && queue[index].finish) { 42488 queue[index].finish.call(this); 42489 } 42490 } // Turn off finishing flag 42491 42492 42493 delete data.finish; 42494 }); 42495 } 42496 }); 42497 jQuery.each(["toggle", "show", "hide"], function (_i, name) { 42498 var cssFn = jQuery.fn[name]; 42499 42500 jQuery.fn[name] = function (speed, easing, callback) { 42501 return speed == null || typeof speed === "boolean" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback); 42502 }; 42503 }); // Generate shortcuts for custom animations 42504 42505 jQuery.each({ 42506 slideDown: genFx("show"), 42507 slideUp: genFx("hide"), 42508 slideToggle: genFx("toggle"), 42509 fadeIn: { 42510 opacity: "show" 42511 }, 42512 fadeOut: { 42513 opacity: "hide" 42514 }, 42515 fadeToggle: { 42516 opacity: "toggle" 42517 } 42518 }, function (name, props) { 42519 jQuery.fn[name] = function (speed, easing, callback) { 42520 return this.animate(props, speed, easing, callback); 42521 }; 42522 }); 42523 jQuery.timers = []; 42524 42525 jQuery.fx.tick = function () { 42526 var timer, 42527 i = 0, 42528 timers = jQuery.timers; 42529 fxNow = Date.now(); 42530 42531 for (; i < timers.length; i++) { 42532 timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal) 42533 42534 if (!timer() && timers[i] === timer) { 42535 timers.splice(i--, 1); 42536 } 42537 } 42538 42539 if (!timers.length) { 42540 jQuery.fx.stop(); 42541 } 42542 42543 fxNow = undefined; 42544 }; 42545 42546 jQuery.fx.timer = function (timer) { 42547 jQuery.timers.push(timer); 42548 jQuery.fx.start(); 42549 }; 42550 42551 jQuery.fx.interval = 13; 42552 42553 jQuery.fx.start = function () { 42554 if (inProgress) { 42555 return; 42556 } 42557 42558 inProgress = true; 42559 schedule(); 42560 }; 42561 42562 jQuery.fx.stop = function () { 42563 inProgress = null; 42564 }; 42565 42566 jQuery.fx.speeds = { 42567 slow: 600, 42568 fast: 200, 42569 // Default speed 42570 _default: 400 42571 }; // Based off of the plugin by Clint Helfers, with permission. 42572 // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ 42573 42574 jQuery.fn.delay = function (time, type) { 42575 time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; 42576 type = type || "fx"; 42577 return this.queue(type, function (next, hooks) { 42578 var timeout = window.setTimeout(next, time); 42579 42580 hooks.stop = function () { 42581 window.clearTimeout(timeout); 42582 }; 42583 }); 42584 }; 42585 42586 (function () { 42587 var input = document.createElement("input"), 42588 select = document.createElement("select"), 42589 opt = select.appendChild(document.createElement("option")); 42590 input.type = "checkbox"; // Support: Android <=4.3 only 42591 // Default value for a checkbox should be "on" 42592 42593 support.checkOn = input.value !== ""; // Support: IE <=11 only 42594 // Must access selectedIndex to make default options select 42595 42596 support.optSelected = opt.selected; // Support: IE <=11 only 42597 // An input loses its value after becoming a radio 42598 42599 input = document.createElement("input"); 42600 input.value = "t"; 42601 input.type = "radio"; 42602 support.radioValue = input.value === "t"; 42603 })(); 42604 42605 var boolHook, 42606 attrHandle = jQuery.expr.attrHandle; 42607 jQuery.fn.extend({ 42608 attr: function attr(name, value) { 42609 return access(this, jQuery.attr, name, value, arguments.length > 1); 42610 }, 42611 removeAttr: function removeAttr(name) { 42612 return this.each(function () { 42613 jQuery.removeAttr(this, name); 42614 }); 42615 } 42616 }); 42617 jQuery.extend({ 42618 attr: function attr(elem, name, value) { 42619 var ret, 42620 hooks, 42621 nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes 42622 42623 if (nType === 3 || nType === 8 || nType === 2) { 42624 return; 42625 } // Fallback to prop when attributes are not supported 42626 42627 42628 if (typeof elem.getAttribute === "undefined") { 42629 return jQuery.prop(elem, name, value); 42630 } // Attribute hooks are determined by the lowercase version 42631 // Grab necessary hook if one is defined 42632 42633 42634 if (nType !== 1 || !jQuery.isXMLDoc(elem)) { 42635 hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined); 42636 } 42637 42638 if (value !== undefined) { 42639 if (value === null) { 42640 jQuery.removeAttr(elem, name); 42641 return; 42642 } 42643 42644 if (hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) { 42645 return ret; 42646 } 42647 42648 elem.setAttribute(name, value + ""); 42649 return value; 42650 } 42651 42652 if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { 42653 return ret; 42654 } 42655 42656 ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined 42657 42658 return ret == null ? undefined : ret; 42659 }, 42660 attrHooks: { 42661 type: { 42662 set: function set(elem, value) { 42663 if (!support.radioValue && value === "radio" && nodeName(elem, "input")) { 42664 var val = elem.value; 42665 elem.setAttribute("type", value); 42666 42667 if (val) { 42668 elem.value = val; 42669 } 42670 42671 return value; 42672 } 42673 } 42674 } 42675 }, 42676 removeAttr: function removeAttr(elem, value) { 42677 var name, 42678 i = 0, 42679 // Attribute names can contain non-HTML whitespace characters 42680 // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 42681 attrNames = value && value.match(rnothtmlwhite); 42682 42683 if (attrNames && elem.nodeType === 1) { 42684 while (name = attrNames[i++]) { 42685 elem.removeAttribute(name); 42686 } 42687 } 42688 } 42689 }); // Hooks for boolean attributes 42690 42691 boolHook = { 42692 set: function set(elem, value, name) { 42693 if (value === false) { 42694 // Remove boolean attributes when set to false 42695 jQuery.removeAttr(elem, name); 42696 } else { 42697 elem.setAttribute(name, name); 42698 } 42699 42700 return name; 42701 } 42702 }; 42703 jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g), function (_i, name) { 42704 var getter = attrHandle[name] || jQuery.find.attr; 42705 42706 attrHandle[name] = function (elem, name, isXML) { 42707 var ret, 42708 handle, 42709 lowercaseName = name.toLowerCase(); 42710 42711 if (!isXML) { 42712 // Avoid an infinite loop by temporarily removing this function from the getter 42713 handle = attrHandle[lowercaseName]; 42714 attrHandle[lowercaseName] = ret; 42715 ret = getter(elem, name, isXML) != null ? lowercaseName : null; 42716 attrHandle[lowercaseName] = handle; 42717 } 42718 42719 return ret; 42720 }; 42721 }); 42722 var rfocusable = /^(?:input|select|textarea|button)$/i, 42723 rclickable = /^(?:a|area)$/i; 42724 jQuery.fn.extend({ 42725 prop: function prop(name, value) { 42726 return access(this, jQuery.prop, name, value, arguments.length > 1); 42727 }, 42728 removeProp: function removeProp(name) { 42729 return this.each(function () { 42730 delete this[jQuery.propFix[name] || name]; 42731 }); 42732 } 42733 }); 42734 jQuery.extend({ 42735 prop: function prop(elem, name, value) { 42736 var ret, 42737 hooks, 42738 nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes 42739 42740 if (nType === 3 || nType === 8 || nType === 2) { 42741 return; 42742 } 42743 42744 if (nType !== 1 || !jQuery.isXMLDoc(elem)) { 42745 // Fix name and attach hooks 42746 name = jQuery.propFix[name] || name; 42747 hooks = jQuery.propHooks[name]; 42748 } 42749 42750 if (value !== undefined) { 42751 if (hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) { 42752 return ret; 42753 } 42754 42755 return elem[name] = value; 42756 } 42757 42758 if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { 42759 return ret; 42760 } 42761 42762 return elem[name]; 42763 }, 42764 propHooks: { 42765 tabIndex: { 42766 get: function get(elem) { 42767 // Support: IE <=9 - 11 only 42768 // elem.tabIndex doesn't always return the 42769 // correct value when it hasn't been explicitly set 42770 // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ 42771 // Use proper attribute retrieval(#12072) 42772 var tabindex = jQuery.find.attr(elem, "tabindex"); 42773 42774 if (tabindex) { 42775 return parseInt(tabindex, 10); 42776 } 42777 42778 if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) { 42779 return 0; 42780 } 42781 42782 return -1; 42783 } 42784 } 42785 }, 42786 propFix: { 42787 "for": "htmlFor", 42788 "class": "className" 42789 } 42790 }); // Support: IE <=11 only 42791 // Accessing the selectedIndex property 42792 // forces the browser to respect setting selected 42793 // on the option 42794 // The getter ensures a default option is selected 42795 // when in an optgroup 42796 // eslint rule "no-unused-expressions" is disabled for this code 42797 // since it considers such accessions noop 42798 42799 if (!support.optSelected) { 42800 jQuery.propHooks.selected = { 42801 get: function get(elem) { 42802 /* eslint no-unused-expressions: "off" */ 42803 var parent = elem.parentNode; 42804 42805 if (parent && parent.parentNode) { 42806 parent.parentNode.selectedIndex; 42807 } 42808 42809 return null; 42810 }, 42811 set: function set(elem) { 42812 /* eslint no-unused-expressions: "off" */ 42813 var parent = elem.parentNode; 42814 42815 if (parent) { 42816 parent.selectedIndex; 42817 42818 if (parent.parentNode) { 42819 parent.parentNode.selectedIndex; 42820 } 42821 } 42822 } 42823 }; 42824 } 42825 42826 jQuery.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { 42827 jQuery.propFix[this.toLowerCase()] = this; 42828 }); // Strip and collapse whitespace according to HTML spec 42829 // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace 42830 42831 function stripAndCollapse(value) { 42832 var tokens = value.match(rnothtmlwhite) || []; 42833 return tokens.join(" "); 42834 } 42835 42836 function getClass(elem) { 42837 return elem.getAttribute && elem.getAttribute("class") || ""; 42838 } 42839 42840 function classesToArray(value) { 42841 if (Array.isArray(value)) { 42842 return value; 42843 } 42844 42845 if (typeof value === "string") { 42846 return value.match(rnothtmlwhite) || []; 42847 } 42848 42849 return []; 42850 } 42851 42852 jQuery.fn.extend({ 42853 addClass: function addClass(value) { 42854 var classes, 42855 elem, 42856 cur, 42857 curValue, 42858 clazz, 42859 j, 42860 finalValue, 42861 i = 0; 42862 42863 if (isFunction(value)) { 42864 return this.each(function (j) { 42865 jQuery(this).addClass(value.call(this, j, getClass(this))); 42866 }); 42867 } 42868 42869 classes = classesToArray(value); 42870 42871 if (classes.length) { 42872 while (elem = this[i++]) { 42873 curValue = getClass(elem); 42874 cur = elem.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; 42875 42876 if (cur) { 42877 j = 0; 42878 42879 while (clazz = classes[j++]) { 42880 if (cur.indexOf(" " + clazz + " ") < 0) { 42881 cur += clazz + " "; 42882 } 42883 } // Only assign if different to avoid unneeded rendering. 42884 42885 42886 finalValue = stripAndCollapse(cur); 42887 42888 if (curValue !== finalValue) { 42889 elem.setAttribute("class", finalValue); 42890 } 42891 } 42892 } 42893 } 42894 42895 return this; 42896 }, 42897 removeClass: function removeClass(value) { 42898 var classes, 42899 elem, 42900 cur, 42901 curValue, 42902 clazz, 42903 j, 42904 finalValue, 42905 i = 0; 42906 42907 if (isFunction(value)) { 42908 return this.each(function (j) { 42909 jQuery(this).removeClass(value.call(this, j, getClass(this))); 42910 }); 42911 } 42912 42913 if (!arguments.length) { 42914 return this.attr("class", ""); 42915 } 42916 42917 classes = classesToArray(value); 42918 42919 if (classes.length) { 42920 while (elem = this[i++]) { 42921 curValue = getClass(elem); // This expression is here for better compressibility (see addClass) 42922 42923 cur = elem.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; 42924 42925 if (cur) { 42926 j = 0; 42927 42928 while (clazz = classes[j++]) { 42929 // Remove *all* instances 42930 while (cur.indexOf(" " + clazz + " ") > -1) { 42931 cur = cur.replace(" " + clazz + " ", " "); 42932 } 42933 } // Only assign if different to avoid unneeded rendering. 42934 42935 42936 finalValue = stripAndCollapse(cur); 42937 42938 if (curValue !== finalValue) { 42939 elem.setAttribute("class", finalValue); 42940 } 42941 } 42942 } 42943 } 42944 42945 return this; 42946 }, 42947 toggleClass: function toggleClass(value, stateVal) { 42948 var type = _typeof(value), 42949 isValidValue = type === "string" || Array.isArray(value); 42950 42951 if (typeof stateVal === "boolean" && isValidValue) { 42952 return stateVal ? this.addClass(value) : this.removeClass(value); 42953 } 42954 42955 if (isFunction(value)) { 42956 return this.each(function (i) { 42957 jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal); 42958 }); 42959 } 42960 42961 return this.each(function () { 42962 var className, i, self, classNames; 42963 42964 if (isValidValue) { 42965 // Toggle individual class names 42966 i = 0; 42967 self = jQuery(this); 42968 classNames = classesToArray(value); 42969 42970 while (className = classNames[i++]) { 42971 // Check each className given, space separated list 42972 if (self.hasClass(className)) { 42973 self.removeClass(className); 42974 } else { 42975 self.addClass(className); 42976 } 42977 } // Toggle whole class name 42978 42979 } else if (value === undefined || type === "boolean") { 42980 className = getClass(this); 42981 42982 if (className) { 42983 // Store className if set 42984 dataPriv.set(this, "__className__", className); 42985 } // If the element has a class name or if we're passed `false`, 42986 // then remove the whole classname (if there was one, the above saved it). 42987 // Otherwise bring back whatever was previously saved (if anything), 42988 // falling back to the empty string if nothing was stored. 42989 42990 42991 if (this.setAttribute) { 42992 this.setAttribute("class", className || value === false ? "" : dataPriv.get(this, "__className__") || ""); 42993 } 42994 } 42995 }); 42996 }, 42997 hasClass: function hasClass(selector) { 42998 var className, 42999 elem, 43000 i = 0; 43001 className = " " + selector + " "; 43002 43003 while (elem = this[i++]) { 43004 if (elem.nodeType === 1 && (" " + stripAndCollapse(getClass(elem)) + " ").indexOf(className) > -1) { 43005 return true; 43006 } 43007 } 43008 43009 return false; 43010 } 43011 }); 43012 var rreturn = /\r/g; 43013 jQuery.fn.extend({ 43014 val: function val(value) { 43015 var hooks, 43016 ret, 43017 valueIsFunction, 43018 elem = this[0]; 43019 43020 if (!arguments.length) { 43021 if (elem) { 43022 hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()]; 43023 43024 if (hooks && "get" in hooks && (ret = hooks.get(elem, "value")) !== undefined) { 43025 return ret; 43026 } 43027 43028 ret = elem.value; // Handle most common string cases 43029 43030 if (typeof ret === "string") { 43031 return ret.replace(rreturn, ""); 43032 } // Handle cases where value is null/undef or number 43033 43034 43035 return ret == null ? "" : ret; 43036 } 43037 43038 return; 43039 } 43040 43041 valueIsFunction = isFunction(value); 43042 return this.each(function (i) { 43043 var val; 43044 43045 if (this.nodeType !== 1) { 43046 return; 43047 } 43048 43049 if (valueIsFunction) { 43050 val = value.call(this, i, jQuery(this).val()); 43051 } else { 43052 val = value; 43053 } // Treat null/undefined as ""; convert numbers to string 43054 43055 43056 if (val == null) { 43057 val = ""; 43058 } else if (typeof val === "number") { 43059 val += ""; 43060 } else if (Array.isArray(val)) { 43061 val = jQuery.map(val, function (value) { 43062 return value == null ? "" : value + ""; 43063 }); 43064 } 43065 43066 hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting 43067 43068 if (!hooks || !("set" in hooks) || hooks.set(this, val, "value") === undefined) { 43069 this.value = val; 43070 } 43071 }); 43072 } 43073 }); 43074 jQuery.extend({ 43075 valHooks: { 43076 option: { 43077 get: function get(elem) { 43078 var val = jQuery.find.attr(elem, "value"); 43079 return val != null ? val : // Support: IE <=10 - 11 only 43080 // option.text throws exceptions (#14686, #14858) 43081 // Strip and collapse whitespace 43082 // https://html.spec.whatwg.org/#strip-and-collapse-whitespace 43083 stripAndCollapse(jQuery.text(elem)); 43084 } 43085 }, 43086 select: { 43087 get: function get(elem) { 43088 var value, 43089 option, 43090 i, 43091 options = elem.options, 43092 index = elem.selectedIndex, 43093 one = elem.type === "select-one", 43094 values = one ? null : [], 43095 max = one ? index + 1 : options.length; 43096 43097 if (index < 0) { 43098 i = max; 43099 } else { 43100 i = one ? index : 0; 43101 } // Loop through all the selected options 43102 43103 43104 for (; i < max; i++) { 43105 option = options[i]; // Support: IE <=9 only 43106 // IE8-9 doesn't update selected after form reset (#2551) 43107 43108 if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup 43109 !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, "optgroup"))) { 43110 // Get the specific value for the option 43111 value = jQuery(option).val(); // We don't need an array for one selects 43112 43113 if (one) { 43114 return value; 43115 } // Multi-Selects return an array 43116 43117 43118 values.push(value); 43119 } 43120 } 43121 43122 return values; 43123 }, 43124 set: function set(elem, value) { 43125 var optionSet, 43126 option, 43127 options = elem.options, 43128 values = jQuery.makeArray(value), 43129 i = options.length; 43130 43131 while (i--) { 43132 option = options[i]; 43133 /* eslint-disable no-cond-assign */ 43134 43135 if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) { 43136 optionSet = true; 43137 } 43138 /* eslint-enable no-cond-assign */ 43139 43140 } // Force browsers to behave consistently when non-matching value is set 43141 43142 43143 if (!optionSet) { 43144 elem.selectedIndex = -1; 43145 } 43146 43147 return values; 43148 } 43149 } 43150 } 43151 }); // Radios and checkboxes getter/setter 43152 43153 jQuery.each(["radio", "checkbox"], function () { 43154 jQuery.valHooks[this] = { 43155 set: function set(elem, value) { 43156 if (Array.isArray(value)) { 43157 return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1; 43158 } 43159 } 43160 }; 43161 43162 if (!support.checkOn) { 43163 jQuery.valHooks[this].get = function (elem) { 43164 return elem.getAttribute("value") === null ? "on" : elem.value; 43165 }; 43166 } 43167 }); // Return jQuery for attributes-only inclusion 43168 43169 support.focusin = "onfocusin" in window; 43170 43171 var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, 43172 stopPropagationCallback = function stopPropagationCallback(e) { 43173 e.stopPropagation(); 43174 }; 43175 43176 jQuery.extend(jQuery.event, { 43177 trigger: function trigger(event, data, elem, onlyHandlers) { 43178 var i, 43179 cur, 43180 tmp, 43181 bubbleType, 43182 ontype, 43183 handle, 43184 special, 43185 lastElement, 43186 eventPath = [elem || document], 43187 type = hasOwn.call(event, "type") ? event.type : event, 43188 namespaces = hasOwn.call(event, "namespace") ? event.namespace.split(".") : []; 43189 cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes 43190 43191 if (elem.nodeType === 3 || elem.nodeType === 8) { 43192 return; 43193 } // focus/blur morphs to focusin/out; ensure we're not firing them right now 43194 43195 43196 if (rfocusMorph.test(type + jQuery.event.triggered)) { 43197 return; 43198 } 43199 43200 if (type.indexOf(".") > -1) { 43201 // Namespaced trigger; create a regexp to match event type in handle() 43202 namespaces = type.split("."); 43203 type = namespaces.shift(); 43204 namespaces.sort(); 43205 } 43206 43207 ontype = type.indexOf(":") < 0 && "on" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string 43208 43209 event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === "object" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) 43210 43211 event.isTrigger = onlyHandlers ? 2 : 3; 43212 event.namespace = namespaces.join("."); 43213 event.rnamespace = event.namespace ? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null; // Clean up the event in case it is being reused 43214 43215 event.result = undefined; 43216 43217 if (!event.target) { 43218 event.target = elem; 43219 } // Clone any incoming data and prepend the event, creating the handler arg list 43220 43221 43222 data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines 43223 43224 special = jQuery.event.special[type] || {}; 43225 43226 if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) { 43227 return; 43228 } // Determine event propagation path in advance, per W3C events spec (#9951) 43229 // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) 43230 43231 43232 if (!onlyHandlers && !special.noBubble && !isWindow(elem)) { 43233 bubbleType = special.delegateType || type; 43234 43235 if (!rfocusMorph.test(bubbleType + type)) { 43236 cur = cur.parentNode; 43237 } 43238 43239 for (; cur; cur = cur.parentNode) { 43240 eventPath.push(cur); 43241 tmp = cur; 43242 } // Only add window if we got to document (e.g., not plain obj or detached DOM) 43243 43244 43245 if (tmp === (elem.ownerDocument || document)) { 43246 eventPath.push(tmp.defaultView || tmp.parentWindow || window); 43247 } 43248 } // Fire handlers on the event path 43249 43250 43251 i = 0; 43252 43253 while ((cur = eventPath[i++]) && !event.isPropagationStopped()) { 43254 lastElement = cur; 43255 event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler 43256 43257 handle = (dataPriv.get(cur, "events") || Object.create(null))[event.type] && dataPriv.get(cur, "handle"); 43258 43259 if (handle) { 43260 handle.apply(cur, data); 43261 } // Native handler 43262 43263 43264 handle = ontype && cur[ontype]; 43265 43266 if (handle && handle.apply && acceptData(cur)) { 43267 event.result = handle.apply(cur, data); 43268 43269 if (event.result === false) { 43270 event.preventDefault(); 43271 } 43272 } 43273 } 43274 43275 event.type = type; // If nobody prevented the default action, do it now 43276 43277 if (!onlyHandlers && !event.isDefaultPrevented()) { 43278 if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) { 43279 // Call a native DOM method on the target with the same name as the event. 43280 // Don't do default actions on window, that's where global variables be (#6170) 43281 if (ontype && isFunction(elem[type]) && !isWindow(elem)) { 43282 // Don't re-trigger an onFOO event when we call its FOO() method 43283 tmp = elem[ontype]; 43284 43285 if (tmp) { 43286 elem[ontype] = null; 43287 } // Prevent re-triggering of the same event, since we already bubbled it above 43288 43289 43290 jQuery.event.triggered = type; 43291 43292 if (event.isPropagationStopped()) { 43293 lastElement.addEventListener(type, stopPropagationCallback); 43294 } 43295 43296 elem[type](); 43297 43298 if (event.isPropagationStopped()) { 43299 lastElement.removeEventListener(type, stopPropagationCallback); 43300 } 43301 43302 jQuery.event.triggered = undefined; 43303 43304 if (tmp) { 43305 elem[ontype] = tmp; 43306 } 43307 } 43308 } 43309 } 43310 43311 return event.result; 43312 }, 43313 // Piggyback on a donor event to simulate a different one 43314 // Used only for `focus(in | out)` events 43315 simulate: function simulate(type, elem, event) { 43316 var e = jQuery.extend(new jQuery.Event(), event, { 43317 type: type, 43318 isSimulated: true 43319 }); 43320 jQuery.event.trigger(e, null, elem); 43321 } 43322 }); 43323 jQuery.fn.extend({ 43324 trigger: function trigger(type, data) { 43325 return this.each(function () { 43326 jQuery.event.trigger(type, data, this); 43327 }); 43328 }, 43329 triggerHandler: function triggerHandler(type, data) { 43330 var elem = this[0]; 43331 43332 if (elem) { 43333 return jQuery.event.trigger(type, data, elem, true); 43334 } 43335 } 43336 }); // Support: Firefox <=44 43337 // Firefox doesn't have focus(in | out) events 43338 // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 43339 // 43340 // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 43341 // focus(in | out) events fire after focus & blur events, 43342 // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order 43343 // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 43344 43345 if (!support.focusin) { 43346 jQuery.each({ 43347 focus: "focusin", 43348 blur: "focusout" 43349 }, function (orig, fix) { 43350 // Attach a single capturing handler on the document while someone wants focusin/focusout 43351 var handler = function handler(event) { 43352 jQuery.event.simulate(fix, event.target, jQuery.event.fix(event)); 43353 }; 43354 43355 jQuery.event.special[fix] = { 43356 setup: function setup() { 43357 // Handle: regular nodes (via `this.ownerDocument`), window 43358 // (via `this.document`) & document (via `this`). 43359 var doc = this.ownerDocument || this.document || this, 43360 attaches = dataPriv.access(doc, fix); 43361 43362 if (!attaches) { 43363 doc.addEventListener(orig, handler, true); 43364 } 43365 43366 dataPriv.access(doc, fix, (attaches || 0) + 1); 43367 }, 43368 teardown: function teardown() { 43369 var doc = this.ownerDocument || this.document || this, 43370 attaches = dataPriv.access(doc, fix) - 1; 43371 43372 if (!attaches) { 43373 doc.removeEventListener(orig, handler, true); 43374 dataPriv.remove(doc, fix); 43375 } else { 43376 dataPriv.access(doc, fix, attaches); 43377 } 43378 } 43379 }; 43380 }); 43381 } 43382 43383 var location = window.location; 43384 var nonce = { 43385 guid: Date.now() 43386 }; 43387 var rquery = /\?/; // Cross-browser xml parsing 43388 43389 jQuery.parseXML = function (data) { 43390 var xml, parserErrorElem; 43391 43392 if (!data || typeof data !== "string") { 43393 return null; 43394 } // Support: IE 9 - 11 only 43395 // IE throws on parseFromString with invalid input. 43396 43397 43398 try { 43399 xml = new window.DOMParser().parseFromString(data, "text/xml"); 43400 } catch (e) {} 43401 43402 parserErrorElem = xml && xml.getElementsByTagName("parsererror")[0]; 43403 43404 if (!xml || parserErrorElem) { 43405 jQuery.error("Invalid XML: " + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) { 43406 return el.textContent; 43407 }).join("\n") : data)); 43408 } 43409 43410 return xml; 43411 }; 43412 43413 var rbracket = /\[\]$/, 43414 rCRLF = /\r?\n/g, 43415 rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, 43416 rsubmittable = /^(?:input|select|textarea|keygen)/i; 43417 43418 function buildParams(prefix, obj, traditional, add) { 43419 var name; 43420 43421 if (Array.isArray(obj)) { 43422 // Serialize array item. 43423 jQuery.each(obj, function (i, v) { 43424 if (traditional || rbracket.test(prefix)) { 43425 // Treat each array item as a scalar. 43426 add(prefix, v); 43427 } else { 43428 // Item is non-scalar (array or object), encode its numeric index. 43429 buildParams(prefix + "[" + (_typeof(v) === "object" && v != null ? i : "") + "]", v, traditional, add); 43430 } 43431 }); 43432 } else if (!traditional && toType(obj) === "object") { 43433 // Serialize object item. 43434 for (name in obj) { 43435 buildParams(prefix + "[" + name + "]", obj[name], traditional, add); 43436 } 43437 } else { 43438 // Serialize scalar item. 43439 add(prefix, obj); 43440 } 43441 } // Serialize an array of form elements or a set of 43442 // key/values into a query string 43443 43444 43445 jQuery.param = function (a, traditional) { 43446 var prefix, 43447 s = [], 43448 add = function add(key, valueOrFunction) { 43449 // If value is a function, invoke it and use its return value 43450 var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction; 43451 s[s.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value == null ? "" : value); 43452 }; 43453 43454 if (a == null) { 43455 return ""; 43456 } // If an array was passed in, assume that it is an array of form elements. 43457 43458 43459 if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) { 43460 // Serialize the form elements 43461 jQuery.each(a, function () { 43462 add(this.name, this.value); 43463 }); 43464 } else { 43465 // If traditional, encode the "old" way (the way 1.3.2 or older 43466 // did it), otherwise encode params recursively. 43467 for (prefix in a) { 43468 buildParams(prefix, a[prefix], traditional, add); 43469 } 43470 } // Return the resulting serialization 43471 43472 43473 return s.join("&"); 43474 }; 43475 43476 jQuery.fn.extend({ 43477 serialize: function serialize() { 43478 return jQuery.param(this.serializeArray()); 43479 }, 43480 serializeArray: function serializeArray() { 43481 return this.map(function () { 43482 // Can add propHook for "elements" to filter or add form elements 43483 var elements = jQuery.prop(this, "elements"); 43484 return elements ? jQuery.makeArray(elements) : this; 43485 }).filter(function () { 43486 var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works 43487 43488 return this.name && !jQuery(this).is(":disabled") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type)); 43489 }).map(function (_i, elem) { 43490 var val = jQuery(this).val(); 43491 43492 if (val == null) { 43493 return null; 43494 } 43495 43496 if (Array.isArray(val)) { 43497 return jQuery.map(val, function (val) { 43498 return { 43499 name: elem.name, 43500 value: val.replace(rCRLF, "\r\n") 43501 }; 43502 }); 43503 } 43504 43505 return { 43506 name: elem.name, 43507 value: val.replace(rCRLF, "\r\n") 43508 }; 43509 }).get(); 43510 } 43511 }); 43512 var r20 = /%20/g, 43513 rhash = /#.*$/, 43514 rantiCache = /([?&])_=[^&]*/, 43515 rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, 43516 // #7653, #8125, #8152: local protocol detection 43517 rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, 43518 rnoContent = /^(?:GET|HEAD)$/, 43519 rprotocol = /^\/\//, 43520 43521 /* Prefilters 43522 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) 43523 * 2) These are called: 43524 * - BEFORE asking for a transport 43525 * - AFTER param serialization (s.data is a string if s.processData is true) 43526 * 3) key is the dataType 43527 * 4) the catchall symbol "*" can be used 43528 * 5) execution will start with transport dataType and THEN continue down to "*" if needed 43529 */ 43530 prefilters = {}, 43531 43532 /* Transports bindings 43533 * 1) key is the dataType 43534 * 2) the catchall symbol "*" can be used 43535 * 3) selection will start with transport dataType and THEN go to "*" if needed 43536 */ 43537 transports = {}, 43538 // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression 43539 allTypes = "*/".concat("*"), 43540 // Anchor tag for parsing the document origin 43541 originAnchor = document.createElement("a"); 43542 originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport 43543 43544 function addToPrefiltersOrTransports(structure) { 43545 // dataTypeExpression is optional and defaults to "*" 43546 return function (dataTypeExpression, func) { 43547 if (typeof dataTypeExpression !== "string") { 43548 func = dataTypeExpression; 43549 dataTypeExpression = "*"; 43550 } 43551 43552 var dataType, 43553 i = 0, 43554 dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || []; 43555 43556 if (isFunction(func)) { 43557 // For each dataType in the dataTypeExpression 43558 while (dataType = dataTypes[i++]) { 43559 // Prepend if requested 43560 if (dataType[0] === "+") { 43561 dataType = dataType.slice(1) || "*"; 43562 (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append 43563 } else { 43564 (structure[dataType] = structure[dataType] || []).push(func); 43565 } 43566 } 43567 } 43568 }; 43569 } // Base inspection function for prefilters and transports 43570 43571 43572 function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) { 43573 var inspected = {}, 43574 seekingTransport = structure === transports; 43575 43576 function inspect(dataType) { 43577 var selected; 43578 inspected[dataType] = true; 43579 jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) { 43580 var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR); 43581 43582 if (typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[dataTypeOrTransport]) { 43583 options.dataTypes.unshift(dataTypeOrTransport); 43584 inspect(dataTypeOrTransport); 43585 return false; 43586 } else if (seekingTransport) { 43587 return !(selected = dataTypeOrTransport); 43588 } 43589 }); 43590 return selected; 43591 } 43592 43593 return inspect(options.dataTypes[0]) || !inspected["*"] && inspect("*"); 43594 } // A special extend for ajax options 43595 // that takes "flat" options (not to be deep extended) 43596 // Fixes #9887 43597 43598 43599 function ajaxExtend(target, src) { 43600 var key, 43601 deep, 43602 flatOptions = jQuery.ajaxSettings.flatOptions || {}; 43603 43604 for (key in src) { 43605 if (src[key] !== undefined) { 43606 (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key]; 43607 } 43608 } 43609 43610 if (deep) { 43611 jQuery.extend(true, target, deep); 43612 } 43613 43614 return target; 43615 } 43616 /* Handles responses to an ajax request: 43617 * - finds the right dataType (mediates between content-type and expected dataType) 43618 * - returns the corresponding response 43619 */ 43620 43621 43622 function ajaxHandleResponses(s, jqXHR, responses) { 43623 var ct, 43624 type, 43625 finalDataType, 43626 firstDataType, 43627 contents = s.contents, 43628 dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process 43629 43630 while (dataTypes[0] === "*") { 43631 dataTypes.shift(); 43632 43633 if (ct === undefined) { 43634 ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); 43635 } 43636 } // Check if we're dealing with a known content-type 43637 43638 43639 if (ct) { 43640 for (type in contents) { 43641 if (contents[type] && contents[type].test(ct)) { 43642 dataTypes.unshift(type); 43643 break; 43644 } 43645 } 43646 } // Check to see if we have a response for the expected dataType 43647 43648 43649 if (dataTypes[0] in responses) { 43650 finalDataType = dataTypes[0]; 43651 } else { 43652 // Try convertible dataTypes 43653 for (type in responses) { 43654 if (!dataTypes[0] || s.converters[type + " " + dataTypes[0]]) { 43655 finalDataType = type; 43656 break; 43657 } 43658 43659 if (!firstDataType) { 43660 firstDataType = type; 43661 } 43662 } // Or just use first one 43663 43664 43665 finalDataType = finalDataType || firstDataType; 43666 } // If we found a dataType 43667 // We add the dataType to the list if needed 43668 // and return the corresponding response 43669 43670 43671 if (finalDataType) { 43672 if (finalDataType !== dataTypes[0]) { 43673 dataTypes.unshift(finalDataType); 43674 } 43675 43676 return responses[finalDataType]; 43677 } 43678 } 43679 /* Chain conversions given the request and the original response 43680 * Also sets the responseXXX fields on the jqXHR instance 43681 */ 43682 43683 43684 function ajaxConvert(s, response, jqXHR, isSuccess) { 43685 var conv2, 43686 current, 43687 conv, 43688 tmp, 43689 prev, 43690 converters = {}, 43691 // Work with a copy of dataTypes in case we need to modify it for conversion 43692 dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys 43693 43694 if (dataTypes[1]) { 43695 for (conv in s.converters) { 43696 converters[conv.toLowerCase()] = s.converters[conv]; 43697 } 43698 } 43699 43700 current = dataTypes.shift(); // Convert to each sequential dataType 43701 43702 while (current) { 43703 if (s.responseFields[current]) { 43704 jqXHR[s.responseFields[current]] = response; 43705 } // Apply the dataFilter if provided 43706 43707 43708 if (!prev && isSuccess && s.dataFilter) { 43709 response = s.dataFilter(response, s.dataType); 43710 } 43711 43712 prev = current; 43713 current = dataTypes.shift(); 43714 43715 if (current) { 43716 // There's only work to do if current dataType is non-auto 43717 if (current === "*") { 43718 current = prev; // Convert response if prev dataType is non-auto and differs from current 43719 } else if (prev !== "*" && prev !== current) { 43720 // Seek a direct converter 43721 conv = converters[prev + " " + current] || converters["* " + current]; // If none found, seek a pair 43722 43723 if (!conv) { 43724 for (conv2 in converters) { 43725 // If conv2 outputs current 43726 tmp = conv2.split(" "); 43727 43728 if (tmp[1] === current) { 43729 // If prev can be converted to accepted input 43730 conv = converters[prev + " " + tmp[0]] || converters["* " + tmp[0]]; 43731 43732 if (conv) { 43733 // Condense equivalence converters 43734 if (conv === true) { 43735 conv = converters[conv2]; // Otherwise, insert the intermediate dataType 43736 } else if (converters[conv2] !== true) { 43737 current = tmp[0]; 43738 dataTypes.unshift(tmp[1]); 43739 } 43740 43741 break; 43742 } 43743 } 43744 } 43745 } // Apply converter (if not an equivalence) 43746 43747 43748 if (conv !== true) { 43749 // Unless errors are allowed to bubble, catch and return them 43750 if (conv && s["throws"]) { 43751 response = conv(response); 43752 } else { 43753 try { 43754 response = conv(response); 43755 } catch (e) { 43756 return { 43757 state: "parsererror", 43758 error: conv ? e : "No conversion from " + prev + " to " + current 43759 }; 43760 } 43761 } 43762 } 43763 } 43764 } 43765 } 43766 43767 return { 43768 state: "success", 43769 data: response 43770 }; 43771 } 43772 43773 jQuery.extend({ 43774 // Counter for holding the number of active queries 43775 active: 0, 43776 // Last-Modified header cache for next request 43777 lastModified: {}, 43778 etag: {}, 43779 ajaxSettings: { 43780 url: location.href, 43781 type: "GET", 43782 isLocal: rlocalProtocol.test(location.protocol), 43783 global: true, 43784 processData: true, 43785 async: true, 43786 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 43787 43788 /* 43789 timeout: 0, 43790 data: null, 43791 dataType: null, 43792 username: null, 43793 password: null, 43794 cache: null, 43795 throws: false, 43796 traditional: false, 43797 headers: {}, 43798 */ 43799 accepts: { 43800 "*": allTypes, 43801 text: "text/plain", 43802 html: "text/html", 43803 xml: "application/xml, text/xml", 43804 json: "application/json, text/javascript" 43805 }, 43806 contents: { 43807 xml: /\bxml\b/, 43808 html: /\bhtml/, 43809 json: /\bjson\b/ 43810 }, 43811 responseFields: { 43812 xml: "responseXML", 43813 text: "responseText", 43814 json: "responseJSON" 43815 }, 43816 // Data converters 43817 // Keys separate source (or catchall "*") and destination types with a single space 43818 converters: { 43819 // Convert anything to text 43820 "* text": String, 43821 // Text to html (true = no transformation) 43822 "text html": true, 43823 // Evaluate text as a json expression 43824 "text json": JSON.parse, 43825 // Parse text as xml 43826 "text xml": jQuery.parseXML 43827 }, 43828 // For options that shouldn't be deep extended: 43829 // you can add your own custom options here if 43830 // and when you create one that shouldn't be 43831 // deep extended (see ajaxExtend) 43832 flatOptions: { 43833 url: true, 43834 context: true 43835 } 43836 }, 43837 // Creates a full fledged settings object into target 43838 // with both ajaxSettings and settings fields. 43839 // If target is omitted, writes into ajaxSettings. 43840 ajaxSetup: function ajaxSetup(target, settings) { 43841 return settings ? // Building a settings object 43842 ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings 43843 ajaxExtend(jQuery.ajaxSettings, target); 43844 }, 43845 ajaxPrefilter: addToPrefiltersOrTransports(prefilters), 43846 ajaxTransport: addToPrefiltersOrTransports(transports), 43847 // Main method 43848 ajax: function ajax(url, options) { 43849 // If url is an object, simulate pre-1.5 signature 43850 if (_typeof(url) === "object") { 43851 options = url; 43852 url = undefined; 43853 } // Force options to be an object 43854 43855 43856 options = options || {}; 43857 43858 var transport, 43859 // URL without anti-cache param 43860 cacheURL, 43861 // Response headers 43862 responseHeadersString, 43863 responseHeaders, 43864 // timeout handle 43865 timeoutTimer, 43866 // Url cleanup var 43867 urlAnchor, 43868 // Request state (becomes false upon send and true upon completion) 43869 completed, 43870 // To know if global events are to be dispatched 43871 fireGlobals, 43872 // Loop variable 43873 i, 43874 // uncached part of the url 43875 uncached, 43876 // Create the final options object 43877 s = jQuery.ajaxSetup({}, options), 43878 // Callbacks context 43879 callbackContext = s.context || s, 43880 // Context for global events is callbackContext if it is a DOM node or jQuery collection 43881 globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event, 43882 // Deferreds 43883 deferred = jQuery.Deferred(), 43884 completeDeferred = jQuery.Callbacks("once memory"), 43885 // Status-dependent callbacks 43886 _statusCode = s.statusCode || {}, 43887 // Headers (they are sent all at once) 43888 requestHeaders = {}, 43889 requestHeadersNames = {}, 43890 // Default abort message 43891 strAbort = "canceled", 43892 // Fake xhr 43893 jqXHR = { 43894 readyState: 0, 43895 // Builds headers hashtable if needed 43896 getResponseHeader: function getResponseHeader(key) { 43897 var match; 43898 43899 if (completed) { 43900 if (!responseHeaders) { 43901 responseHeaders = {}; 43902 43903 while (match = rheaders.exec(responseHeadersString)) { 43904 responseHeaders[match[1].toLowerCase() + " "] = (responseHeaders[match[1].toLowerCase() + " "] || []).concat(match[2]); 43905 } 43906 } 43907 43908 match = responseHeaders[key.toLowerCase() + " "]; 43909 } 43910 43911 return match == null ? null : match.join(", "); 43912 }, 43913 // Raw string 43914 getAllResponseHeaders: function getAllResponseHeaders() { 43915 return completed ? responseHeadersString : null; 43916 }, 43917 // Caches the header 43918 setRequestHeader: function setRequestHeader(name, value) { 43919 if (completed == null) { 43920 name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name; 43921 requestHeaders[name] = value; 43922 } 43923 43924 return this; 43925 }, 43926 // Overrides response content-type header 43927 overrideMimeType: function overrideMimeType(type) { 43928 if (completed == null) { 43929 s.mimeType = type; 43930 } 43931 43932 return this; 43933 }, 43934 // Status-dependent callbacks 43935 statusCode: function statusCode(map) { 43936 var code; 43937 43938 if (map) { 43939 if (completed) { 43940 // Execute the appropriate callbacks 43941 jqXHR.always(map[jqXHR.status]); 43942 } else { 43943 // Lazy-add the new callbacks in a way that preserves old ones 43944 for (code in map) { 43945 _statusCode[code] = [_statusCode[code], map[code]]; 43946 } 43947 } 43948 } 43949 43950 return this; 43951 }, 43952 // Cancel the request 43953 abort: function abort(statusText) { 43954 var finalText = statusText || strAbort; 43955 43956 if (transport) { 43957 transport.abort(finalText); 43958 } 43959 43960 done(0, finalText); 43961 return this; 43962 } 43963 }; // Attach deferreds 43964 43965 43966 deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it) 43967 // Handle falsy url in the settings object (#10093: consistency with old signature) 43968 // We also use the url parameter if available 43969 43970 s.url = ((url || s.url || location.href) + "").replace(rprotocol, location.protocol + "//"); // Alias method option to type as per ticket #12004 43971 43972 s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list 43973 43974 s.dataTypes = (s.dataType || "*").toLowerCase().match(rnothtmlwhite) || [""]; // A cross-domain request is in order when the origin doesn't match the current origin. 43975 43976 if (s.crossDomain == null) { 43977 urlAnchor = document.createElement("a"); // Support: IE <=8 - 11, Edge 12 - 15 43978 // IE throws exception on accessing the href property if url is malformed, 43979 // e.g. http://example.com:80x/ 43980 43981 try { 43982 urlAnchor.href = s.url; // Support: IE <=8 - 11 only 43983 // Anchor's host property isn't correctly set when s.url is relative 43984 43985 urlAnchor.href = urlAnchor.href; 43986 s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== urlAnchor.protocol + "//" + urlAnchor.host; 43987 } catch (e) { 43988 // If there is an error parsing the URL, assume it is crossDomain, 43989 // it can be rejected by the transport if it is invalid 43990 s.crossDomain = true; 43991 } 43992 } // Convert data if not already a string 43993 43994 43995 if (s.data && s.processData && typeof s.data !== "string") { 43996 s.data = jQuery.param(s.data, s.traditional); 43997 } // Apply prefilters 43998 43999 44000 inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there 44001 44002 if (completed) { 44003 return jqXHR; 44004 } // We can fire global events as of now if asked to 44005 // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) 44006 44007 44008 fireGlobals = jQuery.event && s.global; // Watch for a new set of requests 44009 44010 if (fireGlobals && jQuery.active++ === 0) { 44011 jQuery.event.trigger("ajaxStart"); 44012 } // Uppercase the type 44013 44014 44015 s.type = s.type.toUpperCase(); // Determine if request has content 44016 44017 s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since 44018 // and/or If-None-Match header later on 44019 // Remove hash to simplify url manipulation 44020 44021 cacheURL = s.url.replace(rhash, ""); // More options handling for requests with no content 44022 44023 if (!s.hasContent) { 44024 // Remember the hash so we can put it back 44025 uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url 44026 44027 if (s.data && (s.processData || typeof s.data === "string")) { 44028 cacheURL += (rquery.test(cacheURL) ? "&" : "?") + s.data; // #9682: remove data so that it's not used in an eventual retry 44029 44030 delete s.data; 44031 } // Add or update anti-cache param if needed 44032 44033 44034 if (s.cache === false) { 44035 cacheURL = cacheURL.replace(rantiCache, "$1"); 44036 uncached = (rquery.test(cacheURL) ? "&" : "?") + "_=" + nonce.guid++ + uncached; 44037 } // Put hash and anti-cache on the URL that will be requested (gh-1732) 44038 44039 44040 s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658) 44041 } else if (s.data && s.processData && (s.contentType || "").indexOf("application/x-www-form-urlencoded") === 0) { 44042 s.data = s.data.replace(r20, "+"); 44043 } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 44044 44045 44046 if (s.ifModified) { 44047 if (jQuery.lastModified[cacheURL]) { 44048 jqXHR.setRequestHeader("If-Modified-Since", jQuery.lastModified[cacheURL]); 44049 } 44050 44051 if (jQuery.etag[cacheURL]) { 44052 jqXHR.setRequestHeader("If-None-Match", jQuery.etag[cacheURL]); 44053 } 44054 } // Set the correct header, if data is being sent 44055 44056 44057 if (s.data && s.hasContent && s.contentType !== false || options.contentType) { 44058 jqXHR.setRequestHeader("Content-Type", s.contentType); 44059 } // Set the Accepts header for the server, depending on the dataType 44060 44061 44062 jqXHR.setRequestHeader("Accept", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== "*" ? ", " + allTypes + "; q=0.01" : "") : s.accepts["*"]); // Check for headers option 44063 44064 for (i in s.headers) { 44065 jqXHR.setRequestHeader(i, s.headers[i]); 44066 } // Allow custom headers/mimetypes and early abort 44067 44068 44069 if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) { 44070 // Abort if not done already and return 44071 return jqXHR.abort(); 44072 } // Aborting is no longer a cancellation 44073 44074 44075 strAbort = "abort"; // Install callbacks on deferreds 44076 44077 completeDeferred.add(s.complete); 44078 jqXHR.done(s.success); 44079 jqXHR.fail(s.error); // Get transport 44080 44081 transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort 44082 44083 if (!transport) { 44084 done(-1, "No Transport"); 44085 } else { 44086 jqXHR.readyState = 1; // Send global event 44087 44088 if (fireGlobals) { 44089 globalEventContext.trigger("ajaxSend", [jqXHR, s]); 44090 } // If request was aborted inside ajaxSend, stop there 44091 44092 44093 if (completed) { 44094 return jqXHR; 44095 } // Timeout 44096 44097 44098 if (s.async && s.timeout > 0) { 44099 timeoutTimer = window.setTimeout(function () { 44100 jqXHR.abort("timeout"); 44101 }, s.timeout); 44102 } 44103 44104 try { 44105 completed = false; 44106 transport.send(requestHeaders, done); 44107 } catch (e) { 44108 // Rethrow post-completion exceptions 44109 if (completed) { 44110 throw e; 44111 } // Propagate others as results 44112 44113 44114 done(-1, e); 44115 } 44116 } // Callback for when everything is done 44117 44118 44119 function done(status, nativeStatusText, responses, headers) { 44120 var isSuccess, 44121 success, 44122 error, 44123 response, 44124 modified, 44125 statusText = nativeStatusText; // Ignore repeat invocations 44126 44127 if (completed) { 44128 return; 44129 } 44130 44131 completed = true; // Clear timeout if it exists 44132 44133 if (timeoutTimer) { 44134 window.clearTimeout(timeoutTimer); 44135 } // Dereference transport for early garbage collection 44136 // (no matter how long the jqXHR object will be used) 44137 44138 44139 transport = undefined; // Cache response headers 44140 44141 responseHeadersString = headers || ""; // Set readyState 44142 44143 jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful 44144 44145 isSuccess = status >= 200 && status < 300 || status === 304; // Get response data 44146 44147 if (responses) { 44148 response = ajaxHandleResponses(s, jqXHR, responses); 44149 } // Use a noop converter for missing script but not if jsonp 44150 44151 44152 if (!isSuccess && jQuery.inArray("script", s.dataTypes) > -1 && jQuery.inArray("json", s.dataTypes) < 0) { 44153 s.converters["text script"] = function () {}; 44154 } // Convert no matter what (that way responseXXX fields are always set) 44155 44156 44157 response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining 44158 44159 if (isSuccess) { 44160 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 44161 if (s.ifModified) { 44162 modified = jqXHR.getResponseHeader("Last-Modified"); 44163 44164 if (modified) { 44165 jQuery.lastModified[cacheURL] = modified; 44166 } 44167 44168 modified = jqXHR.getResponseHeader("etag"); 44169 44170 if (modified) { 44171 jQuery.etag[cacheURL] = modified; 44172 } 44173 } // if no content 44174 44175 44176 if (status === 204 || s.type === "HEAD") { 44177 statusText = "nocontent"; // if not modified 44178 } else if (status === 304) { 44179 statusText = "notmodified"; // If we have data, let's convert it 44180 } else { 44181 statusText = response.state; 44182 success = response.data; 44183 error = response.error; 44184 isSuccess = !error; 44185 } 44186 } else { 44187 // Extract error from statusText and normalize for non-aborts 44188 error = statusText; 44189 44190 if (status || !statusText) { 44191 statusText = "error"; 44192 44193 if (status < 0) { 44194 status = 0; 44195 } 44196 } 44197 } // Set data for the fake xhr object 44198 44199 44200 jqXHR.status = status; 44201 jqXHR.statusText = (nativeStatusText || statusText) + ""; // Success/Error 44202 44203 if (isSuccess) { 44204 deferred.resolveWith(callbackContext, [success, statusText, jqXHR]); 44205 } else { 44206 deferred.rejectWith(callbackContext, [jqXHR, statusText, error]); 44207 } // Status-dependent callbacks 44208 44209 44210 jqXHR.statusCode(_statusCode); 44211 _statusCode = undefined; 44212 44213 if (fireGlobals) { 44214 globalEventContext.trigger(isSuccess ? "ajaxSuccess" : "ajaxError", [jqXHR, s, isSuccess ? success : error]); 44215 } // Complete 44216 44217 44218 completeDeferred.fireWith(callbackContext, [jqXHR, statusText]); 44219 44220 if (fireGlobals) { 44221 globalEventContext.trigger("ajaxComplete", [jqXHR, s]); // Handle the global AJAX counter 44222 44223 if (! --jQuery.active) { 44224 jQuery.event.trigger("ajaxStop"); 44225 } 44226 } 44227 } 44228 44229 return jqXHR; 44230 }, 44231 getJSON: function getJSON(url, data, callback) { 44232 return jQuery.get(url, data, callback, "json"); 44233 }, 44234 getScript: function getScript(url, callback) { 44235 return jQuery.get(url, undefined, callback, "script"); 44236 } 44237 }); 44238 jQuery.each(["get", "post"], function (_i, method) { 44239 jQuery[method] = function (url, data, callback, type) { 44240 // Shift arguments if data argument was omitted 44241 if (isFunction(data)) { 44242 type = type || callback; 44243 callback = data; 44244 data = undefined; 44245 } // The url can be an options object (which then must have .url) 44246 44247 44248 return jQuery.ajax(jQuery.extend({ 44249 url: url, 44250 type: method, 44251 dataType: type, 44252 data: data, 44253 success: callback 44254 }, jQuery.isPlainObject(url) && url)); 44255 }; 44256 }); 44257 jQuery.ajaxPrefilter(function (s) { 44258 var i; 44259 44260 for (i in s.headers) { 44261 if (i.toLowerCase() === "content-type") { 44262 s.contentType = s.headers[i] || ""; 44263 } 44264 } 44265 }); 44266 44267 jQuery._evalUrl = function (url, options, doc) { 44268 return jQuery.ajax({ 44269 url: url, 44270 // Make this explicit, since user can override this through ajaxSetup (#11264) 44271 type: "GET", 44272 dataType: "script", 44273 cache: true, 44274 async: false, 44275 global: false, 44276 // Only evaluate the response if it is successful (gh-4126) 44277 // dataFilter is not invoked for failure responses, so using it instead 44278 // of the default converter is kludgy but it works. 44279 converters: { 44280 "text script": function textScript() {} 44281 }, 44282 dataFilter: function dataFilter(response) { 44283 jQuery.globalEval(response, options, doc); 44284 } 44285 }); 44286 }; 44287 44288 jQuery.fn.extend({ 44289 wrapAll: function wrapAll(html) { 44290 var wrap; 44291 44292 if (this[0]) { 44293 if (isFunction(html)) { 44294 html = html.call(this[0]); 44295 } // The elements to wrap the target around 44296 44297 44298 wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true); 44299 44300 if (this[0].parentNode) { 44301 wrap.insertBefore(this[0]); 44302 } 44303 44304 wrap.map(function () { 44305 var elem = this; 44306 44307 while (elem.firstElementChild) { 44308 elem = elem.firstElementChild; 44309 } 44310 44311 return elem; 44312 }).append(this); 44313 } 44314 44315 return this; 44316 }, 44317 wrapInner: function wrapInner(html) { 44318 if (isFunction(html)) { 44319 return this.each(function (i) { 44320 jQuery(this).wrapInner(html.call(this, i)); 44321 }); 44322 } 44323 44324 return this.each(function () { 44325 var self = jQuery(this), 44326 contents = self.contents(); 44327 44328 if (contents.length) { 44329 contents.wrapAll(html); 44330 } else { 44331 self.append(html); 44332 } 44333 }); 44334 }, 44335 wrap: function wrap(html) { 44336 var htmlIsFunction = isFunction(html); 44337 return this.each(function (i) { 44338 jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html); 44339 }); 44340 }, 44341 unwrap: function unwrap(selector) { 44342 this.parent(selector).not("body").each(function () { 44343 jQuery(this).replaceWith(this.childNodes); 44344 }); 44345 return this; 44346 } 44347 }); 44348 44349 jQuery.expr.pseudos.hidden = function (elem) { 44350 return !jQuery.expr.pseudos.visible(elem); 44351 }; 44352 44353 jQuery.expr.pseudos.visible = function (elem) { 44354 return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); 44355 }; 44356 44357 jQuery.ajaxSettings.xhr = function () { 44358 try { 44359 return new window.XMLHttpRequest(); 44360 } catch (e) {} 44361 }; 44362 44363 var xhrSuccessStatus = { 44364 // File protocol always yields status code 0, assume 200 44365 0: 200, 44366 // Support: IE <=9 only 44367 // #1450: sometimes IE returns 1223 when it should be 204 44368 1223: 204 44369 }, 44370 xhrSupported = jQuery.ajaxSettings.xhr(); 44371 support.cors = !!xhrSupported && "withCredentials" in xhrSupported; 44372 support.ajax = xhrSupported = !!xhrSupported; 44373 jQuery.ajaxTransport(function (options) { 44374 var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest 44375 44376 44377 if (support.cors || xhrSupported && !options.crossDomain) { 44378 return { 44379 send: function send(headers, complete) { 44380 var i, 44381 xhr = options.xhr(); 44382 xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided 44383 44384 if (options.xhrFields) { 44385 for (i in options.xhrFields) { 44386 xhr[i] = options.xhrFields[i]; 44387 } 44388 } // Override mime type if needed 44389 44390 44391 if (options.mimeType && xhr.overrideMimeType) { 44392 xhr.overrideMimeType(options.mimeType); 44393 } // X-Requested-With header 44394 // For cross-domain requests, seeing as conditions for a preflight are 44395 // akin to a jigsaw puzzle, we simply never set it to be sure. 44396 // (it can always be set on a per-request basis or even using ajaxSetup) 44397 // For same-domain requests, won't change header if already provided. 44398 44399 44400 if (!options.crossDomain && !headers["X-Requested-With"]) { 44401 headers["X-Requested-With"] = "XMLHttpRequest"; 44402 } // Set headers 44403 44404 44405 for (i in headers) { 44406 xhr.setRequestHeader(i, headers[i]); 44407 } // Callback 44408 44409 44410 _callback = function callback(type) { 44411 return function () { 44412 if (_callback) { 44413 _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null; 44414 44415 if (type === "abort") { 44416 xhr.abort(); 44417 } else if (type === "error") { 44418 // Support: IE <=9 only 44419 // On a manual native abort, IE9 throws 44420 // errors on any property access that is not readyState 44421 if (typeof xhr.status !== "number") { 44422 complete(0, "error"); 44423 } else { 44424 complete( // File: protocol always yields status 0; see #8605, #14207 44425 xhr.status, xhr.statusText); 44426 } 44427 } else { 44428 complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only 44429 // IE9 has no XHR2 but throws on binary (trac-11426) 44430 // For XHR2 non-text, let the caller handle it (gh-2498) 44431 (xhr.responseType || "text") !== "text" || typeof xhr.responseText !== "string" ? { 44432 binary: xhr.response 44433 } : { 44434 text: xhr.responseText 44435 }, xhr.getAllResponseHeaders()); 44436 } 44437 } 44438 }; 44439 }; // Listen to events 44440 44441 44442 xhr.onload = _callback(); 44443 errorCallback = xhr.onerror = xhr.ontimeout = _callback("error"); // Support: IE 9 only 44444 // Use onreadystatechange to replace onabort 44445 // to handle uncaught aborts 44446 44447 if (xhr.onabort !== undefined) { 44448 xhr.onabort = errorCallback; 44449 } else { 44450 xhr.onreadystatechange = function () { 44451 // Check readyState before timeout as it changes 44452 if (xhr.readyState === 4) { 44453 // Allow onerror to be called first, 44454 // but that will not handle a native abort 44455 // Also, save errorCallback to a variable 44456 // as xhr.onerror cannot be accessed 44457 window.setTimeout(function () { 44458 if (_callback) { 44459 errorCallback(); 44460 } 44461 }); 44462 } 44463 }; 44464 } // Create the abort callback 44465 44466 44467 _callback = _callback("abort"); 44468 44469 try { 44470 // Do send the request (this may raise an exception) 44471 xhr.send(options.hasContent && options.data || null); 44472 } catch (e) { 44473 // #14683: Only rethrow if this hasn't been notified as an error yet 44474 if (_callback) { 44475 throw e; 44476 } 44477 } 44478 }, 44479 abort: function abort() { 44480 if (_callback) { 44481 _callback(); 44482 } 44483 } 44484 }; 44485 } 44486 }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) 44487 44488 jQuery.ajaxPrefilter(function (s) { 44489 if (s.crossDomain) { 44490 s.contents.script = false; 44491 } 44492 }); // Install script dataType 44493 44494 jQuery.ajaxSetup({ 44495 accepts: { 44496 script: "text/javascript, application/javascript, " + "application/ecmascript, application/x-ecmascript" 44497 }, 44498 contents: { 44499 script: /\b(?:java|ecma)script\b/ 44500 }, 44501 converters: { 44502 "text script": function textScript(text) { 44503 jQuery.globalEval(text); 44504 return text; 44505 } 44506 } 44507 }); // Handle cache's special case and crossDomain 44508 44509 jQuery.ajaxPrefilter("script", function (s) { 44510 if (s.cache === undefined) { 44511 s.cache = false; 44512 } 44513 44514 if (s.crossDomain) { 44515 s.type = "GET"; 44516 } 44517 }); // Bind script tag hack transport 44518 44519 jQuery.ajaxTransport("script", function (s) { 44520 // This transport only deals with cross domain or forced-by-attrs requests 44521 if (s.crossDomain || s.scriptAttrs) { 44522 var script, _callback2; 44523 44524 return { 44525 send: function send(_, complete) { 44526 script = jQuery("<script>").attr(s.scriptAttrs || {}).prop({ 44527 charset: s.scriptCharset, 44528 src: s.url 44529 }).on("load error", _callback2 = function callback(evt) { 44530 script.remove(); 44531 _callback2 = null; 44532 44533 if (evt) { 44534 complete(evt.type === "error" ? 404 : 200, evt.type); 44535 } 44536 }); // Use native DOM manipulation to avoid our domManip AJAX trickery 44537 44538 document.head.appendChild(script[0]); 44539 }, 44540 abort: function abort() { 44541 if (_callback2) { 44542 _callback2(); 44543 } 44544 } 44545 }; 44546 } 44547 }); 44548 var oldCallbacks = [], 44549 rjsonp = /(=)\?(?=&|$)|\?\?/; // Default jsonp settings 44550 44551 jQuery.ajaxSetup({ 44552 jsonp: "callback", 44553 jsonpCallback: function jsonpCallback() { 44554 var callback = oldCallbacks.pop() || jQuery.expando + "_" + nonce.guid++; 44555 this[callback] = true; 44556 return callback; 44557 } 44558 }); // Detect, normalize options and install callbacks for jsonp requests 44559 44560 jQuery.ajaxPrefilter("json jsonp", function (s, originalSettings, jqXHR) { 44561 var callbackName, 44562 overwritten, 44563 responseContainer, 44564 jsonProp = s.jsonp !== false && (rjsonp.test(s.url) ? "url" : typeof s.data === "string" && (s.contentType || "").indexOf("application/x-www-form-urlencoded") === 0 && rjsonp.test(s.data) && "data"); // Handle iff the expected data type is "jsonp" or we have a parameter to set 44565 44566 if (jsonProp || s.dataTypes[0] === "jsonp") { 44567 // Get callback name, remembering preexisting value associated with it 44568 callbackName = s.jsonpCallback = isFunction(s.jsonpCallback) ? s.jsonpCallback() : s.jsonpCallback; // Insert callback into url or form data 44569 44570 if (jsonProp) { 44571 s[jsonProp] = s[jsonProp].replace(rjsonp, "$1" + callbackName); 44572 } else if (s.jsonp !== false) { 44573 s.url += (rquery.test(s.url) ? "&" : "?") + s.jsonp + "=" + callbackName; 44574 } // Use data converter to retrieve json after script execution 44575 44576 44577 s.converters["script json"] = function () { 44578 if (!responseContainer) { 44579 jQuery.error(callbackName + " was not called"); 44580 } 44581 44582 return responseContainer[0]; 44583 }; // Force json dataType 44584 44585 44586 s.dataTypes[0] = "json"; // Install callback 44587 44588 overwritten = window[callbackName]; 44589 44590 window[callbackName] = function () { 44591 responseContainer = arguments; 44592 }; // Clean-up function (fires after converters) 44593 44594 44595 jqXHR.always(function () { 44596 // If previous value didn't exist - remove it 44597 if (overwritten === undefined) { 44598 jQuery(window).removeProp(callbackName); // Otherwise restore preexisting value 44599 } else { 44600 window[callbackName] = overwritten; 44601 } // Save back as free 44602 44603 44604 if (s[callbackName]) { 44605 // Make sure that re-using the options doesn't screw things around 44606 s.jsonpCallback = originalSettings.jsonpCallback; // Save the callback name for future use 44607 44608 oldCallbacks.push(callbackName); 44609 } // Call if it was a function and we have a response 44610 44611 44612 if (responseContainer && isFunction(overwritten)) { 44613 overwritten(responseContainer[0]); 44614 } 44615 44616 responseContainer = overwritten = undefined; 44617 }); // Delegate to script 44618 44619 return "script"; 44620 } 44621 }); // Support: Safari 8 only 44622 // In Safari 8 documents created via document.implementation.createHTMLDocument 44623 // collapse sibling forms: the second one becomes a child of the first one. 44624 // Because of that, this security measure has to be disabled in Safari 8. 44625 // https://bugs.webkit.org/show_bug.cgi?id=137337 44626 44627 support.createHTMLDocument = function () { 44628 var body = document.implementation.createHTMLDocument("").body; 44629 body.innerHTML = "<form></form><form></form>"; 44630 return body.childNodes.length === 2; 44631 }(); // Argument "data" should be string of html 44632 // context (optional): If specified, the fragment will be created in this context, 44633 // defaults to document 44634 // keepScripts (optional): If true, will include scripts passed in the html string 44635 44636 44637 jQuery.parseHTML = function (data, context, keepScripts) { 44638 if (typeof data !== "string") { 44639 return []; 44640 } 44641 44642 if (typeof context === "boolean") { 44643 keepScripts = context; 44644 context = false; 44645 } 44646 44647 var base, parsed, scripts; 44648 44649 if (!context) { 44650 // Stop scripts or inline event handlers from being executed immediately 44651 // by using document.implementation 44652 if (support.createHTMLDocument) { 44653 context = document.implementation.createHTMLDocument(""); // Set the base href for the created document 44654 // so any parsed elements with URLs 44655 // are based on the document's URL (gh-2965) 44656 44657 base = context.createElement("base"); 44658 base.href = document.location.href; 44659 context.head.appendChild(base); 44660 } else { 44661 context = document; 44662 } 44663 } 44664 44665 parsed = rsingleTag.exec(data); 44666 scripts = !keepScripts && []; // Single tag 44667 44668 if (parsed) { 44669 return [context.createElement(parsed[1])]; 44670 } 44671 44672 parsed = buildFragment([data], context, scripts); 44673 44674 if (scripts && scripts.length) { 44675 jQuery(scripts).remove(); 44676 } 44677 44678 return jQuery.merge([], parsed.childNodes); 44679 }; 44680 /** 44681 * Load a url into a page 44682 */ 44683 44684 44685 jQuery.fn.load = function (url, params, callback) { 44686 var selector, 44687 type, 44688 response, 44689 self = this, 44690 off = url.indexOf(" "); 44691 44692 if (off > -1) { 44693 selector = stripAndCollapse(url.slice(off)); 44694 url = url.slice(0, off); 44695 } // If it's a function 44696 44697 44698 if (isFunction(params)) { 44699 // We assume that it's the callback 44700 callback = params; 44701 params = undefined; // Otherwise, build a param string 44702 } else if (params && _typeof(params) === "object") { 44703 type = "POST"; 44704 } // If we have elements to modify, make the request 44705 44706 44707 if (self.length > 0) { 44708 jQuery.ajax({ 44709 url: url, 44710 // If "type" variable is undefined, then "GET" method will be used. 44711 // Make value of this field explicit since 44712 // user can override it through ajaxSetup method 44713 type: type || "GET", 44714 dataType: "html", 44715 data: params 44716 }).done(function (responseText) { 44717 // Save response for use in complete callback 44718 response = arguments; 44719 self.html(selector ? // If a selector was specified, locate the right elements in a dummy div 44720 // Exclude scripts to avoid IE 'Permission Denied' errors 44721 jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector) : // Otherwise use the full result 44722 responseText); // If the request succeeds, this function gets "data", "status", "jqXHR" 44723 // but they are ignored because response was set above. 44724 // If it fails, this function gets "jqXHR", "status", "error" 44725 }).always(callback && function (jqXHR, status) { 44726 self.each(function () { 44727 callback.apply(this, response || [jqXHR.responseText, status, jqXHR]); 44728 }); 44729 }); 44730 } 44731 44732 return this; 44733 }; 44734 44735 jQuery.expr.pseudos.animated = function (elem) { 44736 return jQuery.grep(jQuery.timers, function (fn) { 44737 return elem === fn.elem; 44738 }).length; 44739 }; 44740 44741 jQuery.offset = { 44742 setOffset: function setOffset(elem, options, i) { 44743 var curPosition, 44744 curLeft, 44745 curCSSTop, 44746 curTop, 44747 curOffset, 44748 curCSSLeft, 44749 calculatePosition, 44750 position = jQuery.css(elem, "position"), 44751 curElem = jQuery(elem), 44752 props = {}; // Set position first, in-case top/left are set even on static elem 44753 44754 if (position === "static") { 44755 elem.style.position = "relative"; 44756 } 44757 44758 curOffset = curElem.offset(); 44759 curCSSTop = jQuery.css(elem, "top"); 44760 curCSSLeft = jQuery.css(elem, "left"); 44761 calculatePosition = (position === "absolute" || position === "fixed") && (curCSSTop + curCSSLeft).indexOf("auto") > -1; // Need to be able to calculate position if either 44762 // top or left is auto and position is either absolute or fixed 44763 44764 if (calculatePosition) { 44765 curPosition = curElem.position(); 44766 curTop = curPosition.top; 44767 curLeft = curPosition.left; 44768 } else { 44769 curTop = parseFloat(curCSSTop) || 0; 44770 curLeft = parseFloat(curCSSLeft) || 0; 44771 } 44772 44773 if (isFunction(options)) { 44774 // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) 44775 options = options.call(elem, i, jQuery.extend({}, curOffset)); 44776 } 44777 44778 if (options.top != null) { 44779 props.top = options.top - curOffset.top + curTop; 44780 } 44781 44782 if (options.left != null) { 44783 props.left = options.left - curOffset.left + curLeft; 44784 } 44785 44786 if ("using" in options) { 44787 options.using.call(elem, props); 44788 } else { 44789 curElem.css(props); 44790 } 44791 } 44792 }; 44793 jQuery.fn.extend({ 44794 // offset() relates an element's border box to the document origin 44795 offset: function offset(options) { 44796 // Preserve chaining for setter 44797 if (arguments.length) { 44798 return options === undefined ? this : this.each(function (i) { 44799 jQuery.offset.setOffset(this, options, i); 44800 }); 44801 } 44802 44803 var rect, 44804 win, 44805 elem = this[0]; 44806 44807 if (!elem) { 44808 return; 44809 } // Return zeros for disconnected and hidden (display: none) elements (gh-2310) 44810 // Support: IE <=11 only 44811 // Running getBoundingClientRect on a 44812 // disconnected node in IE throws an error 44813 44814 44815 if (!elem.getClientRects().length) { 44816 return { 44817 top: 0, 44818 left: 0 44819 }; 44820 } // Get document-relative position by adding viewport scroll to viewport-relative gBCR 44821 44822 44823 rect = elem.getBoundingClientRect(); 44824 win = elem.ownerDocument.defaultView; 44825 return { 44826 top: rect.top + win.pageYOffset, 44827 left: rect.left + win.pageXOffset 44828 }; 44829 }, 44830 // position() relates an element's margin box to its offset parent's padding box 44831 // This corresponds to the behavior of CSS absolute positioning 44832 position: function position() { 44833 if (!this[0]) { 44834 return; 44835 } 44836 44837 var offsetParent, 44838 offset, 44839 doc, 44840 elem = this[0], 44841 parentOffset = { 44842 top: 0, 44843 left: 0 44844 }; // position:fixed elements are offset from the viewport, which itself always has zero offset 44845 44846 if (jQuery.css(elem, "position") === "fixed") { 44847 // Assume position:fixed implies availability of getBoundingClientRect 44848 offset = elem.getBoundingClientRect(); 44849 } else { 44850 offset = this.offset(); // Account for the *real* offset parent, which can be the document or its root element 44851 // when a statically positioned element is identified 44852 44853 doc = elem.ownerDocument; 44854 offsetParent = elem.offsetParent || doc.documentElement; 44855 44856 while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && jQuery.css(offsetParent, "position") === "static") { 44857 offsetParent = offsetParent.parentNode; 44858 } 44859 44860 if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) { 44861 // Incorporate borders into its offset, since they are outside its content origin 44862 parentOffset = jQuery(offsetParent).offset(); 44863 parentOffset.top += jQuery.css(offsetParent, "borderTopWidth", true); 44864 parentOffset.left += jQuery.css(offsetParent, "borderLeftWidth", true); 44865 } 44866 } // Subtract parent offsets and element margins 44867 44868 44869 return { 44870 top: offset.top - parentOffset.top - jQuery.css(elem, "marginTop", true), 44871 left: offset.left - parentOffset.left - jQuery.css(elem, "marginLeft", true) 44872 }; 44873 }, 44874 // This method will return documentElement in the following cases: 44875 // 1) For the element inside the iframe without offsetParent, this method will return 44876 // documentElement of the parent window 44877 // 2) For the hidden or detached element 44878 // 3) For body or html element, i.e. in case of the html node - it will return itself 44879 // 44880 // but those exceptions were never presented as a real life use-cases 44881 // and might be considered as more preferable results. 44882 // 44883 // This logic, however, is not guaranteed and can change at any point in the future 44884 offsetParent: function offsetParent() { 44885 return this.map(function () { 44886 var offsetParent = this.offsetParent; 44887 44888 while (offsetParent && jQuery.css(offsetParent, "position") === "static") { 44889 offsetParent = offsetParent.offsetParent; 44890 } 44891 44892 return offsetParent || documentElement; 44893 }); 44894 } 44895 }); // Create scrollLeft and scrollTop methods 44896 44897 jQuery.each({ 44898 scrollLeft: "pageXOffset", 44899 scrollTop: "pageYOffset" 44900 }, function (method, prop) { 44901 var top = "pageYOffset" === prop; 44902 44903 jQuery.fn[method] = function (val) { 44904 return access(this, function (elem, method, val) { 44905 // Coalesce documents and windows 44906 var win; 44907 44908 if (isWindow(elem)) { 44909 win = elem; 44910 } else if (elem.nodeType === 9) { 44911 win = elem.defaultView; 44912 } 44913 44914 if (val === undefined) { 44915 return win ? win[prop] : elem[method]; 44916 } 44917 44918 if (win) { 44919 win.scrollTo(!top ? val : win.pageXOffset, top ? val : win.pageYOffset); 44920 } else { 44921 elem[method] = val; 44922 } 44923 }, method, val, arguments.length); 44924 }; 44925 }); // Support: Safari <=7 - 9.1, Chrome <=37 - 49 44926 // Add the top/left cssHooks using jQuery.fn.position 44927 // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 44928 // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 44929 // getComputedStyle returns percent when specified for top/left/bottom/right; 44930 // rather than make the css module depend on the offset module, just check for it here 44931 44932 jQuery.each(["top", "left"], function (_i, prop) { 44933 jQuery.cssHooks[prop] = addGetHookIf(support.pixelPosition, function (elem, computed) { 44934 if (computed) { 44935 computed = curCSS(elem, prop); // If curCSS returns percentage, fallback to offset 44936 44937 return rnumnonpx.test(computed) ? jQuery(elem).position()[prop] + "px" : computed; 44938 } 44939 }); 44940 }); // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods 44941 44942 jQuery.each({ 44943 Height: "height", 44944 Width: "width" 44945 }, function (name, type) { 44946 jQuery.each({ 44947 padding: "inner" + name, 44948 content: type, 44949 "": "outer" + name 44950 }, function (defaultExtra, funcName) { 44951 // Margin is only for outerHeight, outerWidth 44952 jQuery.fn[funcName] = function (margin, value) { 44953 var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), 44954 extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); 44955 return access(this, function (elem, type, value) { 44956 var doc; 44957 44958 if (isWindow(elem)) { 44959 // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729) 44960 return funcName.indexOf("outer") === 0 ? elem["inner" + name] : elem.document.documentElement["client" + name]; 44961 } // Get document width or height 44962 44963 44964 if (elem.nodeType === 9) { 44965 doc = elem.documentElement; // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], 44966 // whichever is greatest 44967 44968 return Math.max(elem.body["scroll" + name], doc["scroll" + name], elem.body["offset" + name], doc["offset" + name], doc["client" + name]); 44969 } 44970 44971 return value === undefined ? // Get width or height on the element, requesting but not forcing parseFloat 44972 jQuery.css(elem, type, extra) : // Set width or height on the element 44973 jQuery.style(elem, type, value, extra); 44974 }, type, chainable ? margin : undefined, chainable); 44975 }; 44976 }); 44977 }); 44978 jQuery.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (_i, type) { 44979 jQuery.fn[type] = function (fn) { 44980 return this.on(type, fn); 44981 }; 44982 }); 44983 jQuery.fn.extend({ 44984 bind: function bind(types, data, fn) { 44985 return this.on(types, null, data, fn); 44986 }, 44987 unbind: function unbind(types, fn) { 44988 return this.off(types, null, fn); 44989 }, 44990 delegate: function delegate(selector, types, data, fn) { 44991 return this.on(types, selector, data, fn); 44992 }, 44993 undelegate: function undelegate(selector, types, fn) { 44994 // ( namespace ) or ( selector, types [, fn] ) 44995 return arguments.length === 1 ? this.off(selector, "**") : this.off(types, selector || "**", fn); 44996 }, 44997 hover: function hover(fnOver, fnOut) { 44998 return this.mouseenter(fnOver).mouseleave(fnOut || fnOver); 44999 } 45000 }); 45001 jQuery.each(("blur focus focusin focusout resize scroll click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup contextmenu").split(" "), function (_i, name) { 45002 // Handle event binding 45003 jQuery.fn[name] = function (data, fn) { 45004 return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name); 45005 }; 45006 }); // Support: Android <=4.0 only 45007 // Make sure we trim BOM and NBSP 45008 45009 var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; // Bind a function to a context, optionally partially applying any 45010 // arguments. 45011 // jQuery.proxy is deprecated to promote standards (specifically Function#bind) 45012 // However, it is not slated for removal any time soon 45013 45014 jQuery.proxy = function (fn, context) { 45015 var tmp, args, proxy; 45016 45017 if (typeof context === "string") { 45018 tmp = fn[context]; 45019 context = fn; 45020 fn = tmp; 45021 } // Quick check to determine if target is callable, in the spec 45022 // this throws a TypeError, but we will just return undefined. 45023 45024 45025 if (!isFunction(fn)) { 45026 return undefined; 45027 } // Simulated bind 45028 45029 45030 args = _slice.call(arguments, 2); 45031 45032 proxy = function proxy() { 45033 return fn.apply(context || this, args.concat(_slice.call(arguments))); 45034 }; // Set the guid of unique handler to the same of original handler, so it can be removed 45035 45036 45037 proxy.guid = fn.guid = fn.guid || jQuery.guid++; 45038 return proxy; 45039 }; 45040 45041 jQuery.holdReady = function (hold) { 45042 if (hold) { 45043 jQuery.readyWait++; 45044 } else { 45045 jQuery.ready(true); 45046 } 45047 }; 45048 45049 jQuery.isArray = Array.isArray; 45050 jQuery.parseJSON = JSON.parse; 45051 jQuery.nodeName = nodeName; 45052 jQuery.isFunction = isFunction; 45053 jQuery.isWindow = isWindow; 45054 jQuery.camelCase = camelCase; 45055 jQuery.type = toType; 45056 jQuery.now = Date.now; 45057 45058 jQuery.isNumeric = function (obj) { 45059 // As of jQuery 3.0, isNumeric is limited to 45060 // strings and numbers (primitives or objects) 45061 // that can be coerced to finite numbers (gh-2662) 45062 var type = jQuery.type(obj); 45063 return (type === "number" || type === "string") && // parseFloat NaNs numeric-cast false positives ("") 45064 // ...but misinterprets leading-number strings, particularly hex literals ("0x...") 45065 // subtraction forces infinities to NaN 45066 !isNaN(obj - parseFloat(obj)); 45067 }; 45068 45069 jQuery.trim = function (text) { 45070 return text == null ? "" : (text + "").replace(rtrim, ""); 45071 }; // Register as a named AMD module, since jQuery can be concatenated with other 45072 // files that may use define, but not via a proper concatenation script that 45073 // understands anonymous AMD modules. A named AMD is safest and most robust 45074 // way to register. Lowercase jquery is used because AMD module names are 45075 // derived from file names, and jQuery is normally delivered in a lowercase 45076 // file name. Do this after creating the global so that if an AMD module wants 45077 // to call noConflict to hide this version of jQuery, it will work. 45078 // Note that for maximum portability, libraries that are not jQuery should 45079 // declare themselves as anonymous modules, and avoid setting a global if an 45080 // AMD loader is present. jQuery is a special case. For more information, see 45081 // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 45082 45083 45084 if (true) { 45085 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { 45086 return jQuery; 45087 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 45088 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 45089 } 45090 45091 var // Map over jQuery in case of overwrite 45092 _jQuery = window.jQuery, 45093 // Map over the $ in case of overwrite 45094 _$ = window.$; 45095 45096 jQuery.noConflict = function (deep) { 45097 if (window.$ === jQuery) { 45098 window.$ = _$; 45099 } 45100 45101 if (deep && window.jQuery === jQuery) { 45102 window.jQuery = _jQuery; 45103 } 45104 45105 return jQuery; 45106 }; // Expose jQuery and $ identifiers, even in AMD 45107 // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 45108 // and CommonJS for browser emulators (#13566) 45109 45110 45111 if (typeof noGlobal === "undefined") { 45112 window.jQuery = window.$ = jQuery; 45113 } 45114 45115 return jQuery; 45116}); 45117/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../sfra-webpack-builder/node_modules/webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module))) 45118 45119/***/ }), 45120
vendor: 89,140 bytes, lines 45121-47748
45121/***/ "../rvw_autobahn_core/node_modules/popper.js/dist/esm/popper.js": 45122/*!**********************************************************************!*\ 45123 !*** ../rvw_autobahn_core/node_modules/popper.js/dist/esm/popper.js ***! 45124 \**********************************************************************/ 45125/*! exports provided: default */ 45126/***/ (function(module, __webpack_exports__, __webpack_require__) { 45127 45128"use strict"; 45129__webpack_require__.r(__webpack_exports__); 45130/* WEBPACK VAR INJECTION */(function(global) {/**! 45131 * @fileOverview Kickass library to create and place poppers near their reference elements. 45132 * @version 1.16.1 45133 * @license 45134 * Copyright (c) 2016 Federico Zivolo and contributors 45135 * 45136 * Permission is hereby granted, free of charge, to any person obtaining a copy 45137 * of this software and associated documentation files (the "Software"), to deal 45138 * in the Software without restriction, including without limitation the rights 45139 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 45140 * copies of the Software, and to permit persons to whom the Software is 45141 * furnished to do so, subject to the following conditions: 45142 * 45143 * The above copyright notice and this permission notice shall be included in all 45144 * copies or substantial portions of the Software. 45145 * 45146 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 45147 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 45148 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 45149 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 45150 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 45151 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 45152 * SOFTWARE. 45153 */ 45154var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined'; 45155 45156var timeoutDuration = function () { 45157 var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; 45158 45159 for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { 45160 if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { 45161 return 1; 45162 } 45163 } 45164 45165 return 0; 45166}(); 45167 45168function microtaskDebounce(fn) { 45169 var called = false; 45170 return function () { 45171 if (called) { 45172 return; 45173 } 45174 45175 called = true; 45176 window.Promise.resolve().then(function () { 45177 called = false; 45178 fn(); 45179 }); 45180 }; 45181} 45182 45183function taskDebounce(fn) { 45184 var scheduled = false; 45185 return function () { 45186 if (!scheduled) { 45187 scheduled = true; 45188 setTimeout(function () { 45189 scheduled = false; 45190 fn(); 45191 }, timeoutDuration); 45192 } 45193 }; 45194} 45195 45196var supportsMicroTasks = isBrowser && window.Promise; 45197/** 45198* Create a debounced version of a method, that's asynchronously deferred 45199* but called in the minimum time possible. 45200* 45201* @method 45202* @memberof Popper.Utils 45203* @argument {Function} fn 45204* @returns {Function} 45205*/ 45206 45207var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; 45208/** 45209 * Check if the given variable is a function 45210 * @method 45211 * @memberof Popper.Utils 45212 * @argument {Any} functionToCheck - variable to check 45213 * @returns {Boolean} answer to: is a function? 45214 */ 45215 45216function isFunction(functionToCheck) { 45217 var getType = {}; 45218 return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; 45219} 45220/** 45221 * Get CSS computed property of the given element 45222 * @method 45223 * @memberof Popper.Utils 45224 * @argument {Eement} element 45225 * @argument {String} property 45226 */ 45227 45228 45229function getStyleComputedProperty(element, property) { 45230 if (element.nodeType !== 1) { 45231 return []; 45232 } // NOTE: 1 DOM access here 45233 45234 45235 var window = element.ownerDocument.defaultView; 45236 var css = window.getComputedStyle(element, null); 45237 return property ? css[property] : css; 45238} 45239/** 45240 * Returns the parentNode or the host of the element 45241 * @method 45242 * @memberof Popper.Utils 45243 * @argument {Element} element 45244 * @returns {Element} parent 45245 */ 45246 45247 45248function getParentNode(element) { 45249 if (element.nodeName === 'HTML') { 45250 return element; 45251 } 45252 45253 return element.parentNode || element.host; 45254} 45255/** 45256 * Returns the scrolling parent of the given element 45257 * @method 45258 * @memberof Popper.Utils 45259 * @argument {Element} element 45260 * @returns {Element} scroll parent 45261 */ 45262 45263 45264function getScrollParent(element) { 45265 // Return body, `getScroll` will take care to get the correct `scrollTop` from it 45266 if (!element) { 45267 return document.body; 45268 } 45269 45270 switch (element.nodeName) { 45271 case 'HTML': 45272 case 'BODY': 45273 return element.ownerDocument.body; 45274 45275 case '#document': 45276 return element.body; 45277 } // Firefox want us to check `-x` and `-y` variations as well 45278 45279 45280 var _getStyleComputedProp = getStyleComputedProperty(element), 45281 overflow = _getStyleComputedProp.overflow, 45282 overflowX = _getStyleComputedProp.overflowX, 45283 overflowY = _getStyleComputedProp.overflowY; 45284 45285 if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { 45286 return element; 45287 } 45288 45289 return getScrollParent(getParentNode(element)); 45290} 45291/** 45292 * Returns the reference node of the reference object, or the reference object itself. 45293 * @method 45294 * @memberof Popper.Utils 45295 * @param {Element|Object} reference - the reference element (the popper will be relative to this) 45296 * @returns {Element} parent 45297 */ 45298 45299 45300function getReferenceNode(reference) { 45301 return reference && reference.referenceNode ? reference.referenceNode : reference; 45302} 45303 45304var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); 45305var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); 45306/** 45307 * Determines if the browser is Internet Explorer 45308 * @method 45309 * @memberof Popper.Utils 45310 * @param {Number} version to check 45311 * @returns {Boolean} isIE 45312 */ 45313 45314function isIE(version) { 45315 if (version === 11) { 45316 return isIE11; 45317 } 45318 45319 if (version === 10) { 45320 return isIE10; 45321 } 45322 45323 return isIE11 || isIE10; 45324} 45325/** 45326 * Returns the offset parent of the given element 45327 * @method 45328 * @memberof Popper.Utils 45329 * @argument {Element} element 45330 * @returns {Element} offset parent 45331 */ 45332 45333 45334function getOffsetParent(element) { 45335 if (!element) { 45336 return document.documentElement; 45337 } 45338 45339 var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here 45340 45341 var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent 45342 45343 while (offsetParent === noOffsetParent && element.nextElementSibling) { 45344 offsetParent = (element = element.nextElementSibling).offsetParent; 45345 } 45346 45347 var nodeName = offsetParent && offsetParent.nodeName; 45348 45349 if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { 45350 return element ? element.ownerDocument.documentElement : document.documentElement; 45351 } // .offsetParent will return the closest TH, TD or TABLE in case 45352 // no offsetParent is present, I hate this job... 45353 45354 45355 if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { 45356 return getOffsetParent(offsetParent); 45357 } 45358 45359 return offsetParent; 45360} 45361 45362function isOffsetContainer(element) { 45363 var nodeName = element.nodeName; 45364 45365 if (nodeName === 'BODY') { 45366 return false; 45367 } 45368 45369 return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; 45370} 45371/** 45372 * Finds the root node (document, shadowDOM root) of the given element 45373 * @method 45374 * @memberof Popper.Utils 45375 * @argument {Element} node 45376 * @returns {Element} root node 45377 */ 45378 45379 45380function getRoot(node) { 45381 if (node.parentNode !== null) { 45382 return getRoot(node.parentNode); 45383 } 45384 45385 return node; 45386} 45387/** 45388 * Finds the offset parent common to the two provided nodes 45389 * @method 45390 * @memberof Popper.Utils 45391 * @argument {Element} element1 45392 * @argument {Element} element2 45393 * @returns {Element} common offset parent 45394 */ 45395 45396 45397function findCommonOffsetParent(element1, element2) { 45398 // This check is needed to avoid errors in case one of the elements isn't defined for any reason 45399 if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { 45400 return document.documentElement; 45401 } // Here we make sure to give as "start" the element that comes first in the DOM 45402 45403 45404 var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; 45405 var start = order ? element1 : element2; 45406 var end = order ? element2 : element1; // Get common ancestor container 45407 45408 var range = document.createRange(); 45409 range.setStart(start, 0); 45410 range.setEnd(end, 0); 45411 var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document 45412 45413 if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { 45414 if (isOffsetContainer(commonAncestorContainer)) { 45415 return commonAncestorContainer; 45416 } 45417 45418 return getOffsetParent(commonAncestorContainer); 45419 } // one of the nodes is inside shadowDOM, find which one 45420 45421 45422 var element1root = getRoot(element1); 45423 45424 if (element1root.host) { 45425 return findCommonOffsetParent(element1root.host, element2); 45426 } else { 45427 return findCommonOffsetParent(element1, getRoot(element2).host); 45428 } 45429} 45430/** 45431 * Gets the scroll value of the given element in the given side (top and left) 45432 * @method 45433 * @memberof Popper.Utils 45434 * @argument {Element} element 45435 * @argument {String} side `top` or `left` 45436 * @returns {number} amount of scrolled pixels 45437 */ 45438 45439 45440function getScroll(element) { 45441 var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; 45442 var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; 45443 var nodeName = element.nodeName; 45444 45445 if (nodeName === 'BODY' || nodeName === 'HTML') { 45446 var html = element.ownerDocument.documentElement; 45447 var scrollingElement = element.ownerDocument.scrollingElement || html; 45448 return scrollingElement[upperSide]; 45449 } 45450 45451 return element[upperSide]; 45452} 45453/* 45454 * Sum or subtract the element scroll values (left and top) from a given rect object 45455 * @method 45456 * @memberof Popper.Utils 45457 * @param {Object} rect - Rect object you want to change 45458 * @param {HTMLElement} element - The element from the function reads the scroll values 45459 * @param {Boolean} subtract - set to true if you want to subtract the scroll values 45460 * @return {Object} rect - The modifier rect object 45461 */ 45462 45463 45464function includeScroll(rect, element) { 45465 var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 45466 var scrollTop = getScroll(element, 'top'); 45467 var scrollLeft = getScroll(element, 'left'); 45468 var modifier = subtract ? -1 : 1; 45469 rect.top += scrollTop * modifier; 45470 rect.bottom += scrollTop * modifier; 45471 rect.left += scrollLeft * modifier; 45472 rect.right += scrollLeft * modifier; 45473 return rect; 45474} 45475/* 45476 * Helper to detect borders of a given element 45477 * @method 45478 * @memberof Popper.Utils 45479 * @param {CSSStyleDeclaration} styles 45480 * Result of `getStyleComputedProperty` on the given element 45481 * @param {String} axis - `x` or `y` 45482 * @return {number} borders - The borders size of the given axis 45483 */ 45484 45485 45486function getBordersSize(styles, axis) { 45487 var sideA = axis === 'x' ? 'Left' : 'Top'; 45488 var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; 45489 return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']); 45490} 45491 45492function getSize(axis, body, html, computedStyle) { 45493 return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0); 45494} 45495 45496function getWindowSizes(document) { 45497 var body = document.body; 45498 var html = document.documentElement; 45499 var computedStyle = isIE(10) && getComputedStyle(html); 45500 return { 45501 height: getSize('Height', body, html, computedStyle), 45502 width: getSize('Width', body, html, computedStyle) 45503 }; 45504} 45505 45506var classCallCheck = function classCallCheck(instance, Constructor) { 45507 if (!(instance instanceof Constructor)) { 45508 throw new TypeError("Cannot call a class as a function"); 45509 } 45510}; 45511 45512var createClass = function () { 45513 function defineProperties(target, props) { 45514 for (var i = 0; i < props.length; i++) { 45515 var descriptor = props[i]; 45516 descriptor.enumerable = descriptor.enumerable || false; 45517 descriptor.configurable = true; 45518 if ("value" in descriptor) descriptor.writable = true; 45519 Object.defineProperty(target, descriptor.key, descriptor); 45520 } 45521 } 45522 45523 return function (Constructor, protoProps, staticProps) { 45524 if (protoProps) defineProperties(Constructor.prototype, protoProps); 45525 if (staticProps) defineProperties(Constructor, staticProps); 45526 return Constructor; 45527 }; 45528}(); 45529 45530var defineProperty = function defineProperty(obj, key, value) { 45531 if (key in obj) { 45532 Object.defineProperty(obj, key, { 45533 value: value, 45534 enumerable: true, 45535 configurable: true, 45536 writable: true 45537 }); 45538 } else { 45539 obj[key] = value; 45540 } 45541 45542 return obj; 45543}; 45544 45545var _extends = Object.assign || function (target) { 45546 for (var i = 1; i < arguments.length; i++) { 45547 var source = arguments[i]; 45548 45549 for (var key in source) { 45550 if (Object.prototype.hasOwnProperty.call(source, key)) { 45551 target[key] = source[key]; 45552 } 45553 } 45554 } 45555 45556 return target; 45557}; 45558/** 45559 * Given element offsets, generate an output similar to getBoundingClientRect 45560 * @method 45561 * @memberof Popper.Utils 45562 * @argument {Object} offsets 45563 * @returns {Object} ClientRect like output 45564 */ 45565 45566 45567function getClientRect(offsets) { 45568 return _extends({}, offsets, { 45569 right: offsets.left + offsets.width, 45570 bottom: offsets.top + offsets.height 45571 }); 45572} 45573/** 45574 * Get bounding client rect of given element 45575 * @method 45576 * @memberof Popper.Utils 45577 * @param {HTMLElement} element 45578 * @return {Object} client rect 45579 */ 45580 45581 45582function getBoundingClientRect(element) { 45583 var rect = {}; // IE10 10 FIX: Please, don't ask, the element isn't 45584 // considered in DOM in some circumstances... 45585 // This isn't reproducible in IE10 compatibility mode of IE11 45586 45587 try { 45588 if (isIE(10)) { 45589 rect = element.getBoundingClientRect(); 45590 var scrollTop = getScroll(element, 'top'); 45591 var scrollLeft = getScroll(element, 'left'); 45592 rect.top += scrollTop; 45593 rect.left += scrollLeft; 45594 rect.bottom += scrollTop; 45595 rect.right += scrollLeft; 45596 } else { 45597 rect = element.getBoundingClientRect(); 45598 } 45599 } catch (e) {} 45600 45601 var result = { 45602 left: rect.left, 45603 top: rect.top, 45604 width: rect.right - rect.left, 45605 height: rect.bottom - rect.top 45606 }; // subtract scrollbar size from sizes 45607 45608 var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {}; 45609 var width = sizes.width || element.clientWidth || result.width; 45610 var height = sizes.height || element.clientHeight || result.height; 45611 var horizScrollbar = element.offsetWidth - width; 45612 var vertScrollbar = element.offsetHeight - height; // if an hypothetical scrollbar is detected, we must be sure it's not a `border` 45613 // we make this check conditional for performance reasons 45614 45615 if (horizScrollbar || vertScrollbar) { 45616 var styles = getStyleComputedProperty(element); 45617 horizScrollbar -= getBordersSize(styles, 'x'); 45618 vertScrollbar -= getBordersSize(styles, 'y'); 45619 result.width -= horizScrollbar; 45620 result.height -= vertScrollbar; 45621 } 45622 45623 return getClientRect(result); 45624} 45625 45626function getOffsetRectRelativeToArbitraryNode(children, parent) { 45627 var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 45628 var isIE10 = isIE(10); 45629 var isHTML = parent.nodeName === 'HTML'; 45630 var childrenRect = getBoundingClientRect(children); 45631 var parentRect = getBoundingClientRect(parent); 45632 var scrollParent = getScrollParent(children); 45633 var styles = getStyleComputedProperty(parent); 45634 var borderTopWidth = parseFloat(styles.borderTopWidth); 45635 var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc 45636 45637 if (fixedPosition && isHTML) { 45638 parentRect.top = Math.max(parentRect.top, 0); 45639 parentRect.left = Math.max(parentRect.left, 0); 45640 } 45641 45642 var offsets = getClientRect({ 45643 top: childrenRect.top - parentRect.top - borderTopWidth, 45644 left: childrenRect.left - parentRect.left - borderLeftWidth, 45645 width: childrenRect.width, 45646 height: childrenRect.height 45647 }); 45648 offsets.marginTop = 0; 45649 offsets.marginLeft = 0; // Subtract margins of documentElement in case it's being used as parent 45650 // we do this only on HTML because it's the only element that behaves 45651 // differently when margins are applied to it. The margins are included in 45652 // the box of the documentElement, in the other cases not. 45653 45654 if (!isIE10 && isHTML) { 45655 var marginTop = parseFloat(styles.marginTop); 45656 var marginLeft = parseFloat(styles.marginLeft); 45657 offsets.top -= borderTopWidth - marginTop; 45658 offsets.bottom -= borderTopWidth - marginTop; 45659 offsets.left -= borderLeftWidth - marginLeft; 45660 offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them 45661 45662 offsets.marginTop = marginTop; 45663 offsets.marginLeft = marginLeft; 45664 } 45665 45666 if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { 45667 offsets = includeScroll(offsets, parent); 45668 } 45669 45670 return offsets; 45671} 45672 45673function getViewportOffsetRectRelativeToArtbitraryNode(element) { 45674 var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 45675 var html = element.ownerDocument.documentElement; 45676 var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); 45677 var width = Math.max(html.clientWidth, window.innerWidth || 0); 45678 var height = Math.max(html.clientHeight, window.innerHeight || 0); 45679 var scrollTop = !excludeScroll ? getScroll(html) : 0; 45680 var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0; 45681 var offset = { 45682 top: scrollTop - relativeOffset.top + relativeOffset.marginTop, 45683 left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, 45684 width: width, 45685 height: height 45686 }; 45687 return getClientRect(offset); 45688} 45689/** 45690 * Check if the given element is fixed or is inside a fixed parent 45691 * @method 45692 * @memberof Popper.Utils 45693 * @argument {Element} element 45694 * @argument {Element} customContainer 45695 * @returns {Boolean} answer to "isFixed?" 45696 */ 45697 45698 45699function isFixed(element) { 45700 var nodeName = element.nodeName; 45701 45702 if (nodeName === 'BODY' || nodeName === 'HTML') { 45703 return false; 45704 } 45705 45706 if (getStyleComputedProperty(element, 'position') === 'fixed') { 45707 return true; 45708 } 45709 45710 var parentNode = getParentNode(element); 45711 45712 if (!parentNode) { 45713 return false; 45714 } 45715 45716 return isFixed(parentNode); 45717} 45718/** 45719 * Finds the first parent of an element that has a transformed property defined 45720 * @method 45721 * @memberof Popper.Utils 45722 * @argument {Element} element 45723 * @returns {Element} first transformed parent or documentElement 45724 */ 45725 45726 45727function getFixedPositionOffsetParent(element) { 45728 // This check is needed to avoid errors in case one of the elements isn't defined for any reason 45729 if (!element || !element.parentElement || isIE()) { 45730 return document.documentElement; 45731 } 45732 45733 var el = element.parentElement; 45734 45735 while (el && getStyleComputedProperty(el, 'transform') === 'none') { 45736 el = el.parentElement; 45737 } 45738 45739 return el || document.documentElement; 45740} 45741/** 45742 * Computed the boundaries limits and return them 45743 * @method 45744 * @memberof Popper.Utils 45745 * @param {HTMLElement} popper 45746 * @param {HTMLElement} reference 45747 * @param {number} padding 45748 * @param {HTMLElement} boundariesElement - Element used to define the boundaries 45749 * @param {Boolean} fixedPosition - Is in fixed position mode 45750 * @returns {Object} Coordinates of the boundaries 45751 */ 45752 45753 45754function getBoundaries(popper, reference, padding, boundariesElement) { 45755 var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here 45756 45757 var boundaries = { 45758 top: 0, 45759 left: 0 45760 }; 45761 var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case 45762 45763 if (boundariesElement === 'viewport') { 45764 boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition); 45765 } else { 45766 // Handle other cases based on DOM element used as boundaries 45767 var boundariesNode = void 0; 45768 45769 if (boundariesElement === 'scrollParent') { 45770 boundariesNode = getScrollParent(getParentNode(reference)); 45771 45772 if (boundariesNode.nodeName === 'BODY') { 45773 boundariesNode = popper.ownerDocument.documentElement; 45774 } 45775 } else if (boundariesElement === 'window') { 45776 boundariesNode = popper.ownerDocument.documentElement; 45777 } else { 45778 boundariesNode = boundariesElement; 45779 } 45780 45781 var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation 45782 45783 if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { 45784 var _getWindowSizes = getWindowSizes(popper.ownerDocument), 45785 height = _getWindowSizes.height, 45786 width = _getWindowSizes.width; 45787 45788 boundaries.top += offsets.top - offsets.marginTop; 45789 boundaries.bottom = height + offsets.top; 45790 boundaries.left += offsets.left - offsets.marginLeft; 45791 boundaries.right = width + offsets.left; 45792 } else { 45793 // for all the other DOM elements, this one is good 45794 boundaries = offsets; 45795 } 45796 } // Add paddings 45797 45798 45799 padding = padding || 0; 45800 var isPaddingNumber = typeof padding === 'number'; 45801 boundaries.left += isPaddingNumber ? padding : padding.left || 0; 45802 boundaries.top += isPaddingNumber ? padding : padding.top || 0; 45803 boundaries.right -= isPaddingNumber ? padding : padding.right || 0; 45804 boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; 45805 return boundaries; 45806} 45807 45808function getArea(_ref) { 45809 var width = _ref.width, 45810 height = _ref.height; 45811 return width * height; 45812} 45813/** 45814 * Utility used to transform the `auto` placement to the placement with more 45815 * available space. 45816 * @method 45817 * @memberof Popper.Utils 45818 * @argument {Object} data - The data object generated by update method 45819 * @argument {Object} options - Modifiers configuration and options 45820 * @returns {Object} The data object, properly modified 45821 */ 45822 45823 45824function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { 45825 var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; 45826 45827 if (placement.indexOf('auto') === -1) { 45828 return placement; 45829 } 45830 45831 var boundaries = getBoundaries(popper, reference, padding, boundariesElement); 45832 var rects = { 45833 top: { 45834 width: boundaries.width, 45835 height: refRect.top - boundaries.top 45836 }, 45837 right: { 45838 width: boundaries.right - refRect.right, 45839 height: boundaries.height 45840 }, 45841 bottom: { 45842 width: boundaries.width, 45843 height: boundaries.bottom - refRect.bottom 45844 }, 45845 left: { 45846 width: refRect.left - boundaries.left, 45847 height: boundaries.height 45848 } 45849 }; 45850 var sortedAreas = Object.keys(rects).map(function (key) { 45851 return _extends({ 45852 key: key 45853 }, rects[key], { 45854 area: getArea(rects[key]) 45855 }); 45856 }).sort(function (a, b) { 45857 return b.area - a.area; 45858 }); 45859 var filteredAreas = sortedAreas.filter(function (_ref2) { 45860 var width = _ref2.width, 45861 height = _ref2.height; 45862 return width >= popper.clientWidth && height >= popper.clientHeight; 45863 }); 45864 var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; 45865 var variation = placement.split('-')[1]; 45866 return computedPlacement + (variation ? '-' + variation : ''); 45867} 45868/** 45869 * Get offsets to the reference element 45870 * @method 45871 * @memberof Popper.Utils 45872 * @param {Object} state 45873 * @param {Element} popper - the popper element 45874 * @param {Element} reference - the reference element (the popper will be relative to this) 45875 * @param {Element} fixedPosition - is in fixed position mode 45876 * @returns {Object} An object containing the offsets which will be applied to the popper 45877 */ 45878 45879 45880function getReferenceOffsets(state, popper, reference) { 45881 var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; 45882 var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); 45883 return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); 45884} 45885/** 45886 * Get the outer sizes of the given element (offset size + margins) 45887 * @method 45888 * @memberof Popper.Utils 45889 * @argument {Element} element 45890 * @returns {Object} object containing width and height properties 45891 */ 45892 45893 45894function getOuterSizes(element) { 45895 var window = element.ownerDocument.defaultView; 45896 var styles = window.getComputedStyle(element); 45897 var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); 45898 var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); 45899 var result = { 45900 width: element.offsetWidth + y, 45901 height: element.offsetHeight + x 45902 }; 45903 return result; 45904} 45905/** 45906 * Get the opposite placement of the given one 45907 * @method 45908 * @memberof Popper.Utils 45909 * @argument {String} placement 45910 * @returns {String} flipped placement 45911 */ 45912 45913 45914function getOppositePlacement(placement) { 45915 var hash = { 45916 left: 'right', 45917 right: 'left', 45918 bottom: 'top', 45919 top: 'bottom' 45920 }; 45921 return placement.replace(/left|right|bottom|top/g, function (matched) { 45922 return hash[matched]; 45923 }); 45924} 45925/** 45926 * Get offsets to the popper 45927 * @method 45928 * @memberof Popper.Utils 45929 * @param {Object} position - CSS position the Popper will get applied 45930 * @param {HTMLElement} popper - the popper element 45931 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) 45932 * @param {String} placement - one of the valid placement options 45933 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper 45934 */ 45935 45936 45937function getPopperOffsets(popper, referenceOffsets, placement) { 45938 placement = placement.split('-')[0]; // Get popper node sizes 45939 45940 var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object 45941 45942 var popperOffsets = { 45943 width: popperRect.width, 45944 height: popperRect.height 45945 }; // depending by the popper placement we have to compute its offsets slightly differently 45946 45947 var isHoriz = ['right', 'left'].indexOf(placement) !== -1; 45948 var mainSide = isHoriz ? 'top' : 'left'; 45949 var secondarySide = isHoriz ? 'left' : 'top'; 45950 var measurement = isHoriz ? 'height' : 'width'; 45951 var secondaryMeasurement = !isHoriz ? 'height' : 'width'; 45952 popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; 45953 45954 if (placement === secondarySide) { 45955 popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; 45956 } else { 45957 popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; 45958 } 45959 45960 return popperOffsets; 45961} 45962/** 45963 * Mimics the `find` method of Array 45964 * @method 45965 * @memberof Popper.Utils 45966 * @argument {Array} arr 45967 * @argument prop 45968 * @argument value 45969 * @returns index or -1 45970 */ 45971 45972 45973function find(arr, check) { 45974 // use native find if supported 45975 if (Array.prototype.find) { 45976 return arr.find(check); 45977 } // use `filter` to obtain the same behavior of `find` 45978 45979 45980 return arr.filter(check)[0]; 45981} 45982/** 45983 * Return the index of the matching object 45984 * @method 45985 * @memberof Popper.Utils 45986 * @argument {Array} arr 45987 * @argument prop 45988 * @argument value 45989 * @returns index or -1 45990 */ 45991 45992 45993function findIndex(arr, prop, value) { 45994 // use native findIndex if supported 45995 if (Array.prototype.findIndex) { 45996 return arr.findIndex(function (cur) { 45997 return cur[prop] === value; 45998 }); 45999 } // use `find` + `indexOf` if `findIndex` isn't supported 46000 46001 46002 var match = find(arr, function (obj) { 46003 return obj[prop] === value; 46004 }); 46005 return arr.indexOf(match); 46006} 46007/** 46008 * Loop trough the list of modifiers and run them in order, 46009 * each of them will then edit the data object. 46010 * @method 46011 * @memberof Popper.Utils 46012 * @param {dataObject} data 46013 * @param {Array} modifiers 46014 * @param {String} ends - Optional modifier name used as stopper 46015 * @returns {dataObject} 46016 */ 46017 46018 46019function runModifiers(modifiers, data, ends) { 46020 var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); 46021 modifiersToRun.forEach(function (modifier) { 46022 if (modifier['function']) { 46023 // eslint-disable-line dot-notation 46024 console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); 46025 } 46026 46027 var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation 46028 46029 if (modifier.enabled && isFunction(fn)) { 46030 // Add properties to offsets to make them a complete clientRect object 46031 // we do this before each modifier to make sure the previous one doesn't 46032 // mess with these values 46033 data.offsets.popper = getClientRect(data.offsets.popper); 46034 data.offsets.reference = getClientRect(data.offsets.reference); 46035 data = fn(data, modifier); 46036 } 46037 }); 46038 return data; 46039} 46040/** 46041 * Updates the position of the popper, computing the new offsets and applying 46042 * the new style.<br /> 46043 * Prefer `scheduleUpdate` over `update` because of performance reasons. 46044 * @method 46045 * @memberof Popper 46046 */ 46047 46048 46049function update() { 46050 // if popper is destroyed, don't perform any further update 46051 if (this.state.isDestroyed) { 46052 return; 46053 } 46054 46055 var data = { 46056 instance: this, 46057 styles: {}, 46058 arrowStyles: {}, 46059 attributes: {}, 46060 flipped: false, 46061 offsets: {} 46062 }; // compute reference element offsets 46063 46064 data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // compute auto placement, store placement inside the data object, 46065 // modifiers will be able to edit `placement` if needed 46066 // and refer to originalPlacement to know the original value 46067 46068 data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement` 46069 46070 data.originalPlacement = data.placement; 46071 data.positionFixed = this.options.positionFixed; // compute the popper offsets 46072 46073 data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); 46074 data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers 46075 46076 data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback 46077 // the other ones will call `onUpdate` callback 46078 46079 if (!this.state.isCreated) { 46080 this.state.isCreated = true; 46081 this.options.onCreate(data); 46082 } else { 46083 this.options.onUpdate(data); 46084 } 46085} 46086/** 46087 * Helper used to know if the given modifier is enabled. 46088 * @method 46089 * @memberof Popper.Utils 46090 * @returns {Boolean} 46091 */ 46092 46093 46094function isModifierEnabled(modifiers, modifierName) { 46095 return modifiers.some(function (_ref) { 46096 var name = _ref.name, 46097 enabled = _ref.enabled; 46098 return enabled && name === modifierName; 46099 }); 46100} 46101/** 46102 * Get the prefixed supported property name 46103 * @method 46104 * @memberof Popper.Utils 46105 * @argument {String} property (camelCase) 46106 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) 46107 */ 46108 46109 46110function getSupportedPropertyName(property) { 46111 var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; 46112 var upperProp = property.charAt(0).toUpperCase() + property.slice(1); 46113 46114 for (var i = 0; i < prefixes.length; i++) { 46115 var prefix = prefixes[i]; 46116 var toCheck = prefix ? '' + prefix + upperProp : property; 46117 46118 if (typeof document.body.style[toCheck] !== 'undefined') { 46119 return toCheck; 46120 } 46121 } 46122 46123 return null; 46124} 46125/** 46126 * Destroys the popper. 46127 * @method 46128 * @memberof Popper 46129 */ 46130 46131 46132function destroy() { 46133 this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled 46134 46135 if (isModifierEnabled(this.modifiers, 'applyStyle')) { 46136 this.popper.removeAttribute('x-placement'); 46137 this.popper.style.position = ''; 46138 this.popper.style.top = ''; 46139 this.popper.style.left = ''; 46140 this.popper.style.right = ''; 46141 this.popper.style.bottom = ''; 46142 this.popper.style.willChange = ''; 46143 this.popper.style[getSupportedPropertyName('transform')] = ''; 46144 } 46145 46146 this.disableEventListeners(); // remove the popper if user explicitly asked for the deletion on destroy 46147 // do not use `remove` because IE11 doesn't support it 46148 46149 if (this.options.removeOnDestroy) { 46150 this.popper.parentNode.removeChild(this.popper); 46151 } 46152 46153 return this; 46154} 46155/** 46156 * Get the window associated with the element 46157 * @argument {Element} element 46158 * @returns {Window} 46159 */ 46160 46161 46162function getWindow(element) { 46163 var ownerDocument = element.ownerDocument; 46164 return ownerDocument ? ownerDocument.defaultView : window; 46165} 46166 46167function attachToScrollParents(scrollParent, event, callback, scrollParents) { 46168 var isBody = scrollParent.nodeName === 'BODY'; 46169 var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; 46170 target.addEventListener(event, callback, { 46171 passive: true 46172 }); 46173 46174 if (!isBody) { 46175 attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); 46176 } 46177 46178 scrollParents.push(target); 46179} 46180/** 46181 * Setup needed event listeners used to update the popper position 46182 * @method 46183 * @memberof Popper.Utils 46184 * @private 46185 */ 46186 46187 46188function setupEventListeners(reference, options, state, updateBound) { 46189 // Resize event listener on window 46190 state.updateBound = updateBound; 46191 getWindow(reference).addEventListener('resize', state.updateBound, { 46192 passive: true 46193 }); // Scroll event listener on scroll parents 46194 46195 var scrollElement = getScrollParent(reference); 46196 attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); 46197 state.scrollElement = scrollElement; 46198 state.eventsEnabled = true; 46199 return state; 46200} 46201/** 46202 * It will add resize/scroll events and start recalculating 46203 * position of the popper element when they are triggered. 46204 * @method 46205 * @memberof Popper 46206 */ 46207 46208 46209function enableEventListeners() { 46210 if (!this.state.eventsEnabled) { 46211 this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); 46212 } 46213} 46214/** 46215 * Remove event listeners used to update the popper position 46216 * @method 46217 * @memberof Popper.Utils 46218 * @private 46219 */ 46220 46221 46222function removeEventListeners(reference, state) { 46223 // Remove resize event listener on window 46224 getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents 46225 46226 state.scrollParents.forEach(function (target) { 46227 target.removeEventListener('scroll', state.updateBound); 46228 }); // Reset state 46229 46230 state.updateBound = null; 46231 state.scrollParents = []; 46232 state.scrollElement = null; 46233 state.eventsEnabled = false; 46234 return state; 46235} 46236/** 46237 * It will remove resize/scroll events and won't recalculate popper position 46238 * when they are triggered. It also won't trigger `onUpdate` callback anymore, 46239 * unless you call `update` method manually. 46240 * @method 46241 * @memberof Popper 46242 */ 46243 46244 46245function disableEventListeners() { 46246 if (this.state.eventsEnabled) { 46247 cancelAnimationFrame(this.scheduleUpdate); 46248 this.state = removeEventListeners(this.reference, this.state); 46249 } 46250} 46251/** 46252 * Tells if a given input is a number 46253 * @method 46254 * @memberof Popper.Utils 46255 * @param {*} input to check 46256 * @return {Boolean} 46257 */ 46258 46259 46260function isNumeric(n) { 46261 return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); 46262} 46263/** 46264 * Set the style to the given popper 46265 * @method 46266 * @memberof Popper.Utils 46267 * @argument {Element} element - Element to apply the style to 46268 * @argument {Object} styles 46269 * Object with a list of properties and values which will be applied to the element 46270 */ 46271 46272 46273function setStyles(element, styles) { 46274 Object.keys(styles).forEach(function (prop) { 46275 var unit = ''; // add unit if the value is numeric and is one of the following 46276 46277 if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { 46278 unit = 'px'; 46279 } 46280 46281 element.style[prop] = styles[prop] + unit; 46282 }); 46283} 46284/** 46285 * Set the attributes to the given popper 46286 * @method 46287 * @memberof Popper.Utils 46288 * @argument {Element} element - Element to apply the attributes to 46289 * @argument {Object} styles 46290 * Object with a list of properties and values which will be applied to the element 46291 */ 46292 46293 46294function setAttributes(element, attributes) { 46295 Object.keys(attributes).forEach(function (prop) { 46296 var value = attributes[prop]; 46297 46298 if (value !== false) { 46299 element.setAttribute(prop, attributes[prop]); 46300 } else { 46301 element.removeAttribute(prop); 46302 } 46303 }); 46304} 46305/** 46306 * @function 46307 * @memberof Modifiers 46308 * @argument {Object} data - The data object generated by `update` method 46309 * @argument {Object} data.styles - List of style properties - values to apply to popper element 46310 * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element 46311 * @argument {Object} options - Modifiers configuration and options 46312 * @returns {Object} The same data object 46313 */ 46314 46315 46316function applyStyle(data) { 46317 // any property present in `data.styles` will be applied to the popper, 46318 // in this way we can make the 3rd party modifiers add custom styles to it 46319 // Be aware, modifiers could override the properties defined in the previous 46320 // lines of this modifier! 46321 setStyles(data.instance.popper, data.styles); // any property present in `data.attributes` will be applied to the popper, 46322 // they will be set as HTML attributes of the element 46323 46324 setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties 46325 46326 if (data.arrowElement && Object.keys(data.arrowStyles).length) { 46327 setStyles(data.arrowElement, data.arrowStyles); 46328 } 46329 46330 return data; 46331} 46332/** 46333 * Set the x-placement attribute before everything else because it could be used 46334 * to add margins to the popper margins needs to be calculated to get the 46335 * correct popper offsets. 46336 * @method 46337 * @memberof Popper.modifiers 46338 * @param {HTMLElement} reference - The reference element used to position the popper 46339 * @param {HTMLElement} popper - The HTML element used as popper 46340 * @param {Object} options - Popper.js options 46341 */ 46342 46343 46344function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { 46345 // compute reference element offsets 46346 var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // compute auto placement, store placement inside the data object, 46347 // modifiers will be able to edit `placement` if needed 46348 // and refer to originalPlacement to know the original value 46349 46350 var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); 46351 popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because 46352 // without the position applied we can't guarantee correct computations 46353 46354 setStyles(popper, { 46355 position: options.positionFixed ? 'fixed' : 'absolute' 46356 }); 46357 return options; 46358} 46359/** 46360 * @function 46361 * @memberof Popper.Utils 46362 * @argument {Object} data - The data object generated by `update` method 46363 * @argument {Boolean} shouldRound - If the offsets should be rounded at all 46364 * @returns {Object} The popper's position offsets rounded 46365 * 46366 * The tale of pixel-perfect positioning. It's still not 100% perfect, but as 46367 * good as it can be within reason. 46368 * Discussion here: https://github.com/FezVrasta/popper.js/pull/715 46369 * 46370 * Low DPI screens cause a popper to be blurry if not using full pixels (Safari 46371 * as well on High DPI screens). 46372 * 46373 * Firefox prefers no rounding for positioning and does not have blurriness on 46374 * high DPI screens. 46375 * 46376 * Only horizontal placement and left/right values need to be considered. 46377 */ 46378 46379 46380function getRoundedOffsets(data, shouldRound) { 46381 var _data$offsets = data.offsets, 46382 popper = _data$offsets.popper, 46383 reference = _data$offsets.reference; 46384 var round = Math.round, 46385 floor = Math.floor; 46386 46387 var noRound = function noRound(v) { 46388 return v; 46389 }; 46390 46391 var referenceWidth = round(reference.width); 46392 var popperWidth = round(popper.width); 46393 var isVertical = ['left', 'right'].indexOf(data.placement) !== -1; 46394 var isVariation = data.placement.indexOf('-') !== -1; 46395 var sameWidthParity = referenceWidth % 2 === popperWidth % 2; 46396 var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1; 46397 var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor; 46398 var verticalToInteger = !shouldRound ? noRound : round; 46399 return { 46400 left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left), 46401 top: verticalToInteger(popper.top), 46402 bottom: verticalToInteger(popper.bottom), 46403 right: horizontalToInteger(popper.right) 46404 }; 46405} 46406 46407var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent); 46408/** 46409 * @function 46410 * @memberof Modifiers 46411 * @argument {Object} data - The data object generated by `update` method 46412 * @argument {Object} options - Modifiers configuration and options 46413 * @returns {Object} The data object, properly modified 46414 */ 46415 46416function computeStyle(data, options) { 46417 var x = options.x, 46418 y = options.y; 46419 var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2 46420 46421 var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { 46422 return modifier.name === 'applyStyle'; 46423 }).gpuAcceleration; 46424 46425 if (legacyGpuAccelerationOption !== undefined) { 46426 console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); 46427 } 46428 46429 var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; 46430 var offsetParent = getOffsetParent(data.instance.popper); 46431 var offsetParentRect = getBoundingClientRect(offsetParent); // Styles 46432 46433 var styles = { 46434 position: popper.position 46435 }; 46436 var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox); 46437 var sideA = x === 'bottom' ? 'top' : 'bottom'; 46438 var sideB = y === 'right' ? 'left' : 'right'; // if gpuAcceleration is set to `true` and transform is supported, 46439 // we use `translate3d` to apply the position to the popper we 46440 // automatically use the supported prefixed version if needed 46441 46442 var prefixedProperty = getSupportedPropertyName('transform'); // now, let's make a step back and look at this code closely (wtf?) 46443 // If the content of the popper grows once it's been positioned, it 46444 // may happen that the popper gets misplaced because of the new content 46445 // overflowing its reference element 46446 // To avoid this problem, we provide two options (x and y), which allow 46447 // the consumer to define the offset origin. 46448 // If we position a popper on top of a reference element, we can set 46449 // `x` to `top` to make the popper grow towards its top instead of 46450 // its bottom. 46451 46452 var left = void 0, 46453 top = void 0; 46454 46455 if (sideA === 'bottom') { 46456 // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar) 46457 // and not the bottom of the html element 46458 if (offsetParent.nodeName === 'HTML') { 46459 top = -offsetParent.clientHeight + offsets.bottom; 46460 } else { 46461 top = -offsetParentRect.height + offsets.bottom; 46462 } 46463 } else { 46464 top = offsets.top; 46465 } 46466 46467 if (sideB === 'right') { 46468 if (offsetParent.nodeName === 'HTML') { 46469 left = -offsetParent.clientWidth + offsets.right; 46470 } else { 46471 left = -offsetParentRect.width + offsets.right; 46472 } 46473 } else { 46474 left = offsets.left; 46475 } 46476 46477 if (gpuAcceleration && prefixedProperty) { 46478 styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; 46479 styles[sideA] = 0; 46480 styles[sideB] = 0; 46481 styles.willChange = 'transform'; 46482 } else { 46483 // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties 46484 var invertTop = sideA === 'bottom' ? -1 : 1; 46485 var invertLeft = sideB === 'right' ? -1 : 1; 46486 styles[sideA] = top * invertTop; 46487 styles[sideB] = left * invertLeft; 46488 styles.willChange = sideA + ', ' + sideB; 46489 } // Attributes 46490 46491 46492 var attributes = { 46493 'x-placement': data.placement 46494 }; // Update `data` attributes, styles and arrowStyles 46495 46496 data.attributes = _extends({}, attributes, data.attributes); 46497 data.styles = _extends({}, styles, data.styles); 46498 data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles); 46499 return data; 46500} 46501/** 46502 * Helper used to know if the given modifier depends from another one.<br /> 46503 * It checks if the needed modifier is listed and enabled. 46504 * @method 46505 * @memberof Popper.Utils 46506 * @param {Array} modifiers - list of modifiers 46507 * @param {String} requestingName - name of requesting modifier 46508 * @param {String} requestedName - name of requested modifier 46509 * @returns {Boolean} 46510 */ 46511 46512 46513function isModifierRequired(modifiers, requestingName, requestedName) { 46514 var requesting = find(modifiers, function (_ref) { 46515 var name = _ref.name; 46516 return name === requestingName; 46517 }); 46518 var isRequired = !!requesting && modifiers.some(function (modifier) { 46519 return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; 46520 }); 46521 46522 if (!isRequired) { 46523 var _requesting = '`' + requestingName + '`'; 46524 46525 var requested = '`' + requestedName + '`'; 46526 console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); 46527 } 46528 46529 return isRequired; 46530} 46531/** 46532 * @function 46533 * @memberof Modifiers 46534 * @argument {Object} data - The data object generated by update method 46535 * @argument {Object} options - Modifiers configuration and options 46536 * @returns {Object} The data object, properly modified 46537 */ 46538 46539 46540function arrow(data, options) { 46541 var _data$offsets$arrow; // arrow depends on keepTogether in order to work 46542 46543 46544 if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { 46545 return data; 46546 } 46547 46548 var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector 46549 46550 if (typeof arrowElement === 'string') { 46551 arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier 46552 46553 if (!arrowElement) { 46554 return data; 46555 } 46556 } else { 46557 // if the arrowElement isn't a query selector we must check that the 46558 // provided DOM node is child of its popper node 46559 if (!data.instance.popper.contains(arrowElement)) { 46560 console.warn('WARNING: `arrow.element` must be child of its popper element!'); 46561 return data; 46562 } 46563 } 46564 46565 var placement = data.placement.split('-')[0]; 46566 var _data$offsets = data.offsets, 46567 popper = _data$offsets.popper, 46568 reference = _data$offsets.reference; 46569 var isVertical = ['left', 'right'].indexOf(placement) !== -1; 46570 var len = isVertical ? 'height' : 'width'; 46571 var sideCapitalized = isVertical ? 'Top' : 'Left'; 46572 var side = sideCapitalized.toLowerCase(); 46573 var altSide = isVertical ? 'left' : 'top'; 46574 var opSide = isVertical ? 'bottom' : 'right'; 46575 var arrowElementSize = getOuterSizes(arrowElement)[len]; // 46576 // extends keepTogether behavior making sure the popper and its 46577 // reference have enough pixels in conjunction 46578 // 46579 // top/left side 46580 46581 if (reference[opSide] - arrowElementSize < popper[side]) { 46582 data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); 46583 } // bottom/right side 46584 46585 46586 if (reference[side] + arrowElementSize > popper[opSide]) { 46587 data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; 46588 } 46589 46590 data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper 46591 46592 var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets 46593 // take popper margin in account because we don't have this info available 46594 46595 var css = getStyleComputedProperty(data.instance.popper); 46596 var popperMarginSide = parseFloat(css['margin' + sideCapitalized]); 46597 var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']); 46598 var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper 46599 46600 sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); 46601 data.arrowElement = arrowElement; 46602 data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); 46603 return data; 46604} 46605/** 46606 * Get the opposite placement variation of the given one 46607 * @method 46608 * @memberof Popper.Utils 46609 * @argument {String} placement variation 46610 * @returns {String} flipped placement variation 46611 */ 46612 46613 46614function getOppositeVariation(variation) { 46615 if (variation === 'end') { 46616 return 'start'; 46617 } else if (variation === 'start') { 46618 return 'end'; 46619 } 46620 46621 return variation; 46622} 46623/** 46624 * List of accepted placements to use as values of the `placement` option.<br /> 46625 * Valid placements are: 46626 * - `auto` 46627 * - `top` 46628 * - `right` 46629 * - `bottom` 46630 * - `left` 46631 * 46632 * Each placement can have a variation from this list: 46633 * - `-start` 46634 * - `-end` 46635 * 46636 * Variations are interpreted easily if you think of them as the left to right 46637 * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` 46638 * is right.<br /> 46639 * Vertically (`left` and `right`), `start` is top and `end` is bottom. 46640 * 46641 * Some valid examples are: 46642 * - `top-end` (on top of reference, right aligned) 46643 * - `right-start` (on right of reference, top aligned) 46644 * - `bottom` (on bottom, centered) 46645 * - `auto-end` (on the side with more space available, alignment depends by placement) 46646 * 46647 * @static 46648 * @type {Array} 46649 * @enum {String} 46650 * @readonly 46651 * @method placements 46652 * @memberof Popper 46653 */ 46654 46655 46656var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end` 46657 46658var validPlacements = placements.slice(3); 46659/** 46660 * Given an initial placement, returns all the subsequent placements 46661 * clockwise (or counter-clockwise). 46662 * 46663 * @method 46664 * @memberof Popper.Utils 46665 * @argument {String} placement - A valid placement (it accepts variations) 46666 * @argument {Boolean} counter - Set to true to walk the placements counterclockwise 46667 * @returns {Array} placements including their variations 46668 */ 46669 46670function clockwise(placement) { 46671 var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 46672 var index = validPlacements.indexOf(placement); 46673 var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); 46674 return counter ? arr.reverse() : arr; 46675} 46676 46677var BEHAVIORS = { 46678 FLIP: 'flip', 46679 CLOCKWISE: 'clockwise', 46680 COUNTERCLOCKWISE: 'counterclockwise' 46681}; 46682/** 46683 * @function 46684 * @memberof Modifiers 46685 * @argument {Object} data - The data object generated by update method 46686 * @argument {Object} options - Modifiers configuration and options 46687 * @returns {Object} The data object, properly modified 46688 */ 46689 46690function flip(data, options) { 46691 // if `inner` modifier is enabled, we can't use the `flip` modifier 46692 if (isModifierEnabled(data.instance.modifiers, 'inner')) { 46693 return data; 46694 } 46695 46696 if (data.flipped && data.placement === data.originalPlacement) { 46697 // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides 46698 return data; 46699 } 46700 46701 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed); 46702 var placement = data.placement.split('-')[0]; 46703 var placementOpposite = getOppositePlacement(placement); 46704 var variation = data.placement.split('-')[1] || ''; 46705 var flipOrder = []; 46706 46707 switch (options.behavior) { 46708 case BEHAVIORS.FLIP: 46709 flipOrder = [placement, placementOpposite]; 46710 break; 46711 46712 case BEHAVIORS.CLOCKWISE: 46713 flipOrder = clockwise(placement); 46714 break; 46715 46716 case BEHAVIORS.COUNTERCLOCKWISE: 46717 flipOrder = clockwise(placement, true); 46718 break; 46719 46720 default: 46721 flipOrder = options.behavior; 46722 } 46723 46724 flipOrder.forEach(function (step, index) { 46725 if (placement !== step || flipOrder.length === index + 1) { 46726 return data; 46727 } 46728 46729 placement = data.placement.split('-')[0]; 46730 placementOpposite = getOppositePlacement(placement); 46731 var popperOffsets = data.offsets.popper; 46732 var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here 46733 46734 var floor = Math.floor; 46735 var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); 46736 var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); 46737 var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); 46738 var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); 46739 var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); 46740 var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required 46741 46742 var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries 46743 46744 var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries 46745 46746 var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop); 46747 var flippedVariation = flippedVariationByRef || flippedVariationByContent; 46748 46749 if (overlapsRef || overflowsBoundaries || flippedVariation) { 46750 // this boolean to detect any flip loop 46751 data.flipped = true; 46752 46753 if (overlapsRef || overflowsBoundaries) { 46754 placement = flipOrder[index + 1]; 46755 } 46756 46757 if (flippedVariation) { 46758 variation = getOppositeVariation(variation); 46759 } 46760 46761 data.placement = placement + (variation ? '-' + variation : ''); // this object contains `position`, we want to preserve it along with 46762 // any additional property we may add in the future 46763 46764 data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); 46765 data = runModifiers(data.instance.modifiers, data, 'flip'); 46766 } 46767 }); 46768 return data; 46769} 46770/** 46771 * @function 46772 * @memberof Modifiers 46773 * @argument {Object} data - The data object generated by update method 46774 * @argument {Object} options - Modifiers configuration and options 46775 * @returns {Object} The data object, properly modified 46776 */ 46777 46778 46779function keepTogether(data) { 46780 var _data$offsets = data.offsets, 46781 popper = _data$offsets.popper, 46782 reference = _data$offsets.reference; 46783 var placement = data.placement.split('-')[0]; 46784 var floor = Math.floor; 46785 var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; 46786 var side = isVertical ? 'right' : 'bottom'; 46787 var opSide = isVertical ? 'left' : 'top'; 46788 var measurement = isVertical ? 'width' : 'height'; 46789 46790 if (popper[side] < floor(reference[opSide])) { 46791 data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; 46792 } 46793 46794 if (popper[opSide] > floor(reference[side])) { 46795 data.offsets.popper[opSide] = floor(reference[side]); 46796 } 46797 46798 return data; 46799} 46800/** 46801 * Converts a string containing value + unit into a px value number 46802 * @function 46803 * @memberof {modifiers~offset} 46804 * @private 46805 * @argument {String} str - Value + unit string 46806 * @argument {String} measurement - `height` or `width` 46807 * @argument {Object} popperOffsets 46808 * @argument {Object} referenceOffsets 46809 * @returns {Number|String} 46810 * Value in pixels, or original string if no values were extracted 46811 */ 46812 46813 46814function toValue(str, measurement, popperOffsets, referenceOffsets) { 46815 // separate value from unit 46816 var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); 46817 var value = +split[1]; 46818 var unit = split[2]; // If it's not a number it's an operator, I guess 46819 46820 if (!value) { 46821 return str; 46822 } 46823 46824 if (unit.indexOf('%') === 0) { 46825 var element = void 0; 46826 46827 switch (unit) { 46828 case '%p': 46829 element = popperOffsets; 46830 break; 46831 46832 case '%': 46833 case '%r': 46834 default: 46835 element = referenceOffsets; 46836 } 46837 46838 var rect = getClientRect(element); 46839 return rect[measurement] / 100 * value; 46840 } else if (unit === 'vh' || unit === 'vw') { 46841 // if is a vh or vw, we calculate the size based on the viewport 46842 var size = void 0; 46843 46844 if (unit === 'vh') { 46845 size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); 46846 } else { 46847 size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); 46848 } 46849 46850 return size / 100 * value; 46851 } else { 46852 // if is an explicit pixel unit, we get rid of the unit and keep the value 46853 // if is an implicit unit, it's px, and we return just the value 46854 return value; 46855 } 46856} 46857/** 46858 * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. 46859 * @function 46860 * @memberof {modifiers~offset} 46861 * @private 46862 * @argument {String} offset 46863 * @argument {Object} popperOffsets 46864 * @argument {Object} referenceOffsets 46865 * @argument {String} basePlacement 46866 * @returns {Array} a two cells array with x and y offsets in numbers 46867 */ 46868 46869 46870function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { 46871 var offsets = [0, 0]; // Use height if placement is left or right and index is 0 otherwise use width 46872 // in this way the first offset will use an axis and the second one 46873 // will use the other one 46874 46875 var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // Split the offset string to obtain a list of values and operands 46876 // The regex addresses values with the plus or minus sign in front (+10, -20, etc) 46877 46878 var fragments = offset.split(/(\+|\-)/).map(function (frag) { 46879 return frag.trim(); 46880 }); // Detect if the offset string contains a pair of values or a single one 46881 // they could be separated by comma or space 46882 46883 var divider = fragments.indexOf(find(fragments, function (frag) { 46884 return frag.search(/,|\s/) !== -1; 46885 })); 46886 46887 if (fragments[divider] && fragments[divider].indexOf(',') === -1) { 46888 console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); 46889 } // If divider is found, we divide the list of values and operands to divide 46890 // them by ofset X and Y. 46891 46892 46893 var splitRegex = /\s*,\s*|\s+/; 46894 var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations 46895 46896 ops = ops.map(function (op, index) { 46897 // Most of the units rely on the orientation of the popper 46898 var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; 46899 var mergeWithPrevious = false; 46900 return op // This aggregates any `+` or `-` sign that aren't considered operators 46901 // e.g.: 10 + +5 => [10, +, +5] 46902 .reduce(function (a, b) { 46903 if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { 46904 a[a.length - 1] = b; 46905 mergeWithPrevious = true; 46906 return a; 46907 } else if (mergeWithPrevious) { 46908 a[a.length - 1] += b; 46909 mergeWithPrevious = false; 46910 return a; 46911 } else { 46912 return a.concat(b); 46913 } 46914 }, []) // Here we convert the string values into number values (in px) 46915 .map(function (str) { 46916 return toValue(str, measurement, popperOffsets, referenceOffsets); 46917 }); 46918 }); // Loop trough the offsets arrays and execute the operations 46919 46920 ops.forEach(function (op, index) { 46921 op.forEach(function (frag, index2) { 46922 if (isNumeric(frag)) { 46923 offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); 46924 } 46925 }); 46926 }); 46927 return offsets; 46928} 46929/** 46930 * @function 46931 * @memberof Modifiers 46932 * @argument {Object} data - The data object generated by update method 46933 * @argument {Object} options - Modifiers configuration and options 46934 * @argument {Number|String} options.offset=0 46935 * The offset value as described in the modifier description 46936 * @returns {Object} The data object, properly modified 46937 */ 46938 46939 46940function offset(data, _ref) { 46941 var offset = _ref.offset; 46942 var placement = data.placement, 46943 _data$offsets = data.offsets, 46944 popper = _data$offsets.popper, 46945 reference = _data$offsets.reference; 46946 var basePlacement = placement.split('-')[0]; 46947 var offsets = void 0; 46948 46949 if (isNumeric(+offset)) { 46950 offsets = [+offset, 0]; 46951 } else { 46952 offsets = parseOffset(offset, popper, reference, basePlacement); 46953 } 46954 46955 if (basePlacement === 'left') { 46956 popper.top += offsets[0]; 46957 popper.left -= offsets[1]; 46958 } else if (basePlacement === 'right') { 46959 popper.top += offsets[0]; 46960 popper.left += offsets[1]; 46961 } else if (basePlacement === 'top') { 46962 popper.left += offsets[0]; 46963 popper.top -= offsets[1]; 46964 } else if (basePlacement === 'bottom') { 46965 popper.left += offsets[0]; 46966 popper.top += offsets[1]; 46967 } 46968 46969 data.popper = popper; 46970 return data; 46971} 46972/** 46973 * @function 46974 * @memberof Modifiers 46975 * @argument {Object} data - The data object generated by `update` method 46976 * @argument {Object} options - Modifiers configuration and options 46977 * @returns {Object} The data object, properly modified 46978 */ 46979 46980 46981function preventOverflow(data, options) { 46982 var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // If offsetParent is the reference element, we really want to 46983 // go one step up and use the next offsetParent as reference to 46984 // avoid to make this modifier completely useless and look like broken 46985 46986 if (data.instance.reference === boundariesElement) { 46987 boundariesElement = getOffsetParent(boundariesElement); 46988 } // NOTE: DOM access here 46989 // resets the popper's position so that the document size can be calculated excluding 46990 // the size of the popper element itself 46991 46992 46993 var transformProp = getSupportedPropertyName('transform'); 46994 var popperStyles = data.instance.popper.style; // assignment to help minification 46995 46996 var top = popperStyles.top, 46997 left = popperStyles.left, 46998 transform = popperStyles[transformProp]; 46999 popperStyles.top = ''; 47000 popperStyles.left = ''; 47001 popperStyles[transformProp] = ''; 47002 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here 47003 // restores the original style properties after the offsets have been computed 47004 47005 popperStyles.top = top; 47006 popperStyles.left = left; 47007 popperStyles[transformProp] = transform; 47008 options.boundaries = boundaries; 47009 var order = options.priority; 47010 var popper = data.offsets.popper; 47011 var check = { 47012 primary: function primary(placement) { 47013 var value = popper[placement]; 47014 47015 if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { 47016 value = Math.max(popper[placement], boundaries[placement]); 47017 } 47018 47019 return defineProperty({}, placement, value); 47020 }, 47021 secondary: function secondary(placement) { 47022 var mainSide = placement === 'right' ? 'left' : 'top'; 47023 var value = popper[mainSide]; 47024 47025 if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { 47026 value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); 47027 } 47028 47029 return defineProperty({}, mainSide, value); 47030 } 47031 }; 47032 order.forEach(function (placement) { 47033 var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; 47034 popper = _extends({}, popper, check[side](placement)); 47035 }); 47036 data.offsets.popper = popper; 47037 return data; 47038} 47039/** 47040 * @function 47041 * @memberof Modifiers 47042 * @argument {Object} data - The data object generated by `update` method 47043 * @argument {Object} options - Modifiers configuration and options 47044 * @returns {Object} The data object, properly modified 47045 */ 47046 47047 47048function shift(data) { 47049 var placement = data.placement; 47050 var basePlacement = placement.split('-')[0]; 47051 var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier 47052 47053 if (shiftvariation) { 47054 var _data$offsets = data.offsets, 47055 reference = _data$offsets.reference, 47056 popper = _data$offsets.popper; 47057 var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; 47058 var side = isVertical ? 'left' : 'top'; 47059 var measurement = isVertical ? 'width' : 'height'; 47060 var shiftOffsets = { 47061 start: defineProperty({}, side, reference[side]), 47062 end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) 47063 }; 47064 data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); 47065 } 47066 47067 return data; 47068} 47069/** 47070 * @function 47071 * @memberof Modifiers 47072 * @argument {Object} data - The data object generated by update method 47073 * @argument {Object} options - Modifiers configuration and options 47074 * @returns {Object} The data object, properly modified 47075 */ 47076 47077 47078function hide(data) { 47079 if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { 47080 return data; 47081 } 47082 47083 var refRect = data.offsets.reference; 47084 var bound = find(data.instance.modifiers, function (modifier) { 47085 return modifier.name === 'preventOverflow'; 47086 }).boundaries; 47087 47088 if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { 47089 // Avoid unnecessary DOM access if visibility hasn't changed 47090 if (data.hide === true) { 47091 return data; 47092 } 47093 47094 data.hide = true; 47095 data.attributes['x-out-of-boundaries'] = ''; 47096 } else { 47097 // Avoid unnecessary DOM access if visibility hasn't changed 47098 if (data.hide === false) { 47099 return data; 47100 } 47101 47102 data.hide = false; 47103 data.attributes['x-out-of-boundaries'] = false; 47104 } 47105 47106 return data; 47107} 47108/** 47109 * @function 47110 * @memberof Modifiers 47111 * @argument {Object} data - The data object generated by `update` method 47112 * @argument {Object} options - Modifiers configuration and options 47113 * @returns {Object} The data object, properly modified 47114 */ 47115 47116 47117function inner(data) { 47118 var placement = data.placement; 47119 var basePlacement = placement.split('-')[0]; 47120 var _data$offsets = data.offsets, 47121 popper = _data$offsets.popper, 47122 reference = _data$offsets.reference; 47123 var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; 47124 var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; 47125 popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); 47126 data.placement = getOppositePlacement(placement); 47127 data.offsets.popper = getClientRect(popper); 47128 return data; 47129} 47130/** 47131 * Modifier function, each modifier can have a function of this type assigned 47132 * to its `fn` property.<br /> 47133 * These functions will be called on each update, this means that you must 47134 * make sure they are performant enough to avoid performance bottlenecks. 47135 * 47136 * @function ModifierFn 47137 * @argument {dataObject} data - The data object generated by `update` method 47138 * @argument {Object} options - Modifiers configuration and options 47139 * @returns {dataObject} The data object, properly modified 47140 */ 47141 47142/** 47143 * Modifiers are plugins used to alter the behavior of your poppers.<br /> 47144 * Popper.js uses a set of 9 modifiers to provide all the basic functionalities 47145 * needed by the library. 47146 * 47147 * Usually you don't want to override the `order`, `fn` and `onLoad` props. 47148 * All the other properties are configurations that could be tweaked. 47149 * @namespace modifiers 47150 */ 47151 47152 47153var modifiers = { 47154 /** 47155 * Modifier used to shift the popper on the start or end of its reference 47156 * element.<br /> 47157 * It will read the variation of the `placement` property.<br /> 47158 * It can be one either `-end` or `-start`. 47159 * @memberof modifiers 47160 * @inner 47161 */ 47162 shift: { 47163 /** @prop {number} order=100 - Index used to define the order of execution */ 47164 order: 100, 47165 47166 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 47167 enabled: true, 47168 47169 /** @prop {ModifierFn} */ 47170 fn: shift 47171 }, 47172 47173 /** 47174 * The `offset` modifier can shift your popper on both its axis. 47175 * 47176 * It accepts the following units: 47177 * - `px` or unit-less, interpreted as pixels 47178 * - `%` or `%r`, percentage relative to the length of the reference element 47179 * - `%p`, percentage relative to the length of the popper element 47180 * - `vw`, CSS viewport width unit 47181 * - `vh`, CSS viewport height unit 47182 * 47183 * For length is intended the main axis relative to the placement of the popper.<br /> 47184 * This means that if the placement is `top` or `bottom`, the length will be the 47185 * `width`. In case of `left` or `right`, it will be the `height`. 47186 * 47187 * You can provide a single value (as `Number` or `String`), or a pair of values 47188 * as `String` divided by a comma or one (or more) white spaces.<br /> 47189 * The latter is a deprecated method because it leads to confusion and will be 47190 * removed in v2.<br /> 47191 * Additionally, it accepts additions and subtractions between different units. 47192 * Note that multiplications and divisions aren't supported. 47193 * 47194 * Valid examples are: 47195 * ``` 47196 * 10 47197 * '10%' 47198 * '10, 10' 47199 * '10%, 10' 47200 * '10 + 10%' 47201 * '10 - 5vh + 3%' 47202 * '-10px + 5vh, 5px - 6%' 47203 * ``` 47204 * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap 47205 * > with their reference element, unfortunately, you will have to disable the `flip` modifier. 47206 * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373). 47207 * 47208 * @memberof modifiers 47209 * @inner 47210 */ 47211 offset: { 47212 /** @prop {number} order=200 - Index used to define the order of execution */ 47213 order: 200, 47214 47215 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 47216 enabled: true, 47217 47218 /** @prop {ModifierFn} */ 47219 fn: offset, 47220 47221 /** @prop {Number|String} offset=0 47222 * The offset value as described in the modifier description 47223 */ 47224 offset: 0 47225 }, 47226 47227 /** 47228 * Modifier used to prevent the popper from being positioned outside the boundary. 47229 * 47230 * A scenario exists where the reference itself is not within the boundaries.<br /> 47231 * We can say it has "escaped the boundaries" â or just "escaped".<br /> 47232 * In this case we need to decide whether the popper should either: 47233 * 47234 * - detach from the reference and remain "trapped" in the boundaries, or 47235 * - if it should ignore the boundary and "escape with its reference" 47236 * 47237 * When `escapeWithReference` is set to`true` and reference is completely 47238 * outside its boundaries, the popper will overflow (or completely leave) 47239 * the boundaries in order to remain attached to the edge of the reference. 47240 * 47241 * @memberof modifiers 47242 * @inner 47243 */ 47244 preventOverflow: { 47245 /** @prop {number} order=300 - Index used to define the order of execution */ 47246 order: 300, 47247 47248 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 47249 enabled: true, 47250 47251 /** @prop {ModifierFn} */ 47252 fn: preventOverflow, 47253 47254 /** 47255 * @prop {Array} [priority=['left','right','top','bottom']] 47256 * Popper will try to prevent overflow following these priorities by default, 47257 * then, it could overflow on the left and on top of the `boundariesElement` 47258 */ 47259 priority: ['left', 'right', 'top', 'bottom'], 47260 47261 /** 47262 * @prop {number} padding=5 47263 * Amount of pixel used to define a minimum distance between the boundaries 47264 * and the popper. This makes sure the popper always has a little padding 47265 * between the edges of its container 47266 */ 47267 padding: 5, 47268 47269 /** 47270 * @prop {String|HTMLElement} boundariesElement='scrollParent' 47271 * Boundaries used by the modifier. Can be `scrollParent`, `window`, 47272 * `viewport` or any DOM element. 47273 */ 47274 boundariesElement: 'scrollParent' 47275 }, 47276 47277 /** 47278 * Modifier used to make sure the reference and its popper stay near each other 47279 * without leaving any gap between the two. Especially useful when the arrow is 47280 * enabled and you want to ensure that it points to its reference element. 47281 * It cares only about the first axis. You can still have poppers with margin 47282 * between the popper and its reference element. 47283 * @memberof modifiers 47284 * @inner 47285 */ 47286 keepTogether: { 47287 /** @prop {number} order=400 - Index used to define the order of execution */ 47288 order: 400, 47289 47290 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 47291 enabled: true, 47292 47293 /** @prop {ModifierFn} */ 47294 fn: keepTogether 47295 }, 47296 47297 /** 47298 * This modifier is used to move the `arrowElement` of the popper to make 47299 * sure it is positioned between the reference element and its popper element. 47300 * It will read the outer size of the `arrowElement` node to detect how many 47301 * pixels of conjunction are needed. 47302 * 47303 * It has no effect if no `arrowElement` is provided. 47304 * @memberof modifiers 47305 * @inner 47306 */ 47307 arrow: { 47308 /** @prop {number} order=500 - Index used to define the order of execution */ 47309 order: 500, 47310 47311 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 47312 enabled: true, 47313 47314 /** @prop {ModifierFn} */ 47315 fn: arrow, 47316 47317 /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ 47318 element: '[x-arrow]' 47319 }, 47320 47321 /** 47322 * Modifier used to flip the popper's placement when it starts to overlap its 47323 * reference element. 47324 * 47325 * Requires the `preventOverflow` modifier before it in order to work. 47326 * 47327 * **NOTE:** this modifier will interrupt the current update cycle and will 47328 * restart it if it detects the need to flip the placement. 47329 * @memberof modifiers 47330 * @inner 47331 */ 47332 flip: { 47333 /** @prop {number} order=600 - Index used to define the order of execution */ 47334 order: 600, 47335 47336 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 47337 enabled: true, 47338 47339 /** @prop {ModifierFn} */ 47340 fn: flip, 47341 47342 /** 47343 * @prop {String|Array} behavior='flip' 47344 * The behavior used to change the popper's placement. It can be one of 47345 * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid 47346 * placements (with optional variations) 47347 */ 47348 behavior: 'flip', 47349 47350 /** 47351 * @prop {number} padding=5 47352 * The popper will flip if it hits the edges of the `boundariesElement` 47353 */ 47354 padding: 5, 47355 47356 /** 47357 * @prop {String|HTMLElement} boundariesElement='viewport' 47358 * The element which will define the boundaries of the popper position. 47359 * The popper will never be placed outside of the defined boundaries 47360 * (except if `keepTogether` is enabled) 47361 */ 47362 boundariesElement: 'viewport', 47363 47364 /** 47365 * @prop {Boolean} flipVariations=false 47366 * The popper will switch placement variation between `-start` and `-end` when 47367 * the reference element overlaps its boundaries. 47368 * 47369 * The original placement should have a set variation. 47370 */ 47371 flipVariations: false, 47372 47373 /** 47374 * @prop {Boolean} flipVariationsByContent=false 47375 * The popper will switch placement variation between `-start` and `-end` when 47376 * the popper element overlaps its reference boundaries. 47377 * 47378 * The original placement should have a set variation. 47379 */ 47380 flipVariationsByContent: false 47381 }, 47382 47383 /** 47384 * Modifier used to make the popper flow toward the inner of the reference element. 47385 * By default, when this modifier is disabled, the popper will be placed outside 47386 * the reference element. 47387 * @memberof modifiers 47388 * @inner 47389 */ 47390 inner: { 47391 /** @prop {number} order=700 - Index used to define the order of execution */ 47392 order: 700, 47393 47394 /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ 47395 enabled: false, 47396 47397 /** @prop {ModifierFn} */ 47398 fn: inner 47399 }, 47400 47401 /** 47402 * Modifier used to hide the popper when its reference element is outside of the 47403 * popper boundaries. It will set a `x-out-of-boundaries` attribute which can 47404 * be used to hide with a CSS selector the popper when its reference is 47405 * out of boundaries. 47406 * 47407 * Requires the `preventOverflow` modifier before it in order to work. 47408 * @memberof modifiers 47409 * @inner 47410 */ 47411 hide: { 47412 /** @prop {number} order=800 - Index used to define the order of execution */ 47413 order: 800, 47414 47415 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 47416 enabled: true, 47417 47418 /** @prop {ModifierFn} */ 47419 fn: hide 47420 }, 47421 47422 /** 47423 * Computes the style that will be applied to the popper element to gets 47424 * properly positioned. 47425 * 47426 * Note that this modifier will not touch the DOM, it just prepares the styles 47427 * so that `applyStyle` modifier can apply it. This separation is useful 47428 * in case you need to replace `applyStyle` with a custom implementation. 47429 * 47430 * This modifier has `850` as `order` value to maintain backward compatibility 47431 * with previous versions of Popper.js. Expect the modifiers ordering method 47432 * to change in future major versions of the library. 47433 * 47434 * @memberof modifiers 47435 * @inner 47436 */ 47437 computeStyle: { 47438 /** @prop {number} order=850 - Index used to define the order of execution */ 47439 order: 850, 47440 47441 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 47442 enabled: true, 47443 47444 /** @prop {ModifierFn} */ 47445 fn: computeStyle, 47446 47447 /** 47448 * @prop {Boolean} gpuAcceleration=true 47449 * If true, it uses the CSS 3D transformation to position the popper. 47450 * Otherwise, it will use the `top` and `left` properties 47451 */ 47452 gpuAcceleration: true, 47453 47454 /** 47455 * @prop {string} [x='bottom'] 47456 * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. 47457 * Change this if your popper should grow in a direction different from `bottom` 47458 */ 47459 x: 'bottom', 47460 47461 /** 47462 * @prop {string} [x='left'] 47463 * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. 47464 * Change this if your popper should grow in a direction different from `right` 47465 */ 47466 y: 'right' 47467 }, 47468 47469 /** 47470 * Applies the computed styles to the popper element. 47471 * 47472 * All the DOM manipulations are limited to this modifier. This is useful in case 47473 * you want to integrate Popper.js inside a framework or view library and you 47474 * want to delegate all the DOM manipulations to it. 47475 * 47476 * Note that if you disable this modifier, you must make sure the popper element 47477 * has its position set to `absolute` before Popper.js can do its work! 47478 * 47479 * Just disable this modifier and define your own to achieve the desired effect. 47480 * 47481 * @memberof modifiers 47482 * @inner 47483 */ 47484 applyStyle: { 47485 /** @prop {number} order=900 - Index used to define the order of execution */ 47486 order: 900, 47487 47488 /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ 47489 enabled: true, 47490 47491 /** @prop {ModifierFn} */ 47492 fn: applyStyle, 47493 47494 /** @prop {Function} */ 47495 onLoad: applyStyleOnLoad, 47496 47497 /** 47498 * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier 47499 * @prop {Boolean} gpuAcceleration=true 47500 * If true, it uses the CSS 3D transformation to position the popper. 47501 * Otherwise, it will use the `top` and `left` properties 47502 */ 47503 gpuAcceleration: undefined 47504 } 47505}; 47506/** 47507 * The `dataObject` is an object containing all the information used by Popper.js. 47508 * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks. 47509 * @name dataObject 47510 * @property {Object} data.instance The Popper.js instance 47511 * @property {String} data.placement Placement applied to popper 47512 * @property {String} data.originalPlacement Placement originally defined on init 47513 * @property {Boolean} data.flipped True if popper has been flipped by flip modifier 47514 * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper 47515 * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier 47516 * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`) 47517 * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`) 47518 * @property {Object} data.boundaries Offsets of the popper boundaries 47519 * @property {Object} data.offsets The measurements of popper, reference and arrow elements 47520 * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values 47521 * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values 47522 * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 47523 */ 47524 47525/** 47526 * Default options provided to Popper.js constructor.<br /> 47527 * These can be overridden using the `options` argument of Popper.js.<br /> 47528 * To override an option, simply pass an object with the same 47529 * structure of the `options` object, as the 3rd argument. For example: 47530 * ``` 47531 * new Popper(ref, pop, { 47532 * modifiers: { 47533 * preventOverflow: { enabled: false } 47534 * } 47535 * }) 47536 * ``` 47537 * @type {Object} 47538 * @static 47539 * @memberof Popper 47540 */ 47541 47542var Defaults = { 47543 /** 47544 * Popper's placement. 47545 * @prop {Popper.placements} placement='bottom' 47546 */ 47547 placement: 'bottom', 47548 47549 /** 47550 * Set this to true if you want popper to position it self in 'fixed' mode 47551 * @prop {Boolean} positionFixed=false 47552 */ 47553 positionFixed: false, 47554 47555 /** 47556 * Whether events (resize, scroll) are initially enabled. 47557 * @prop {Boolean} eventsEnabled=true 47558 */ 47559 eventsEnabled: true, 47560 47561 /** 47562 * Set to true if you want to automatically remove the popper when 47563 * you call the `destroy` method. 47564 * @prop {Boolean} removeOnDestroy=false 47565 */ 47566 removeOnDestroy: false, 47567 47568 /** 47569 * Callback called when the popper is created.<br /> 47570 * By default, it is set to no-op.<br /> 47571 * Access Popper.js instance with `data.instance`. 47572 * @prop {onCreate} 47573 */ 47574 onCreate: function onCreate() {}, 47575 47576 /** 47577 * Callback called when the popper is updated. This callback is not called 47578 * on the initialization/creation of the popper, but only on subsequent 47579 * updates.<br /> 47580 * By default, it is set to no-op.<br /> 47581 * Access Popper.js instance with `data.instance`. 47582 * @prop {onUpdate} 47583 */ 47584 onUpdate: function onUpdate() {}, 47585 47586 /** 47587 * List of modifiers used to modify the offsets before they are applied to the popper. 47588 * They provide most of the functionalities of Popper.js. 47589 * @prop {modifiers} 47590 */ 47591 modifiers: modifiers 47592}; 47593/** 47594 * @callback onCreate 47595 * @param {dataObject} data 47596 */ 47597 47598/** 47599 * @callback onUpdate 47600 * @param {dataObject} data 47601 */ 47602// Utils 47603// Methods 47604 47605var Popper = function () { 47606 /** 47607 * Creates a new Popper.js instance. 47608 * @class Popper 47609 * @param {Element|referenceObject} reference - The reference element used to position the popper 47610 * @param {Element} popper - The HTML / XML element used as the popper 47611 * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) 47612 * @return {Object} instance - The generated Popper.js instance 47613 */ 47614 function Popper(reference, popper) { 47615 var _this = this; 47616 47617 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; 47618 classCallCheck(this, Popper); 47619 47620 this.scheduleUpdate = function () { 47621 return requestAnimationFrame(_this.update); 47622 }; // make update() debounced, so that it only runs at most once-per-tick 47623 47624 47625 this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it 47626 47627 this.options = _extends({}, Popper.Defaults, options); // init state 47628 47629 this.state = { 47630 isDestroyed: false, 47631 isCreated: false, 47632 scrollParents: [] 47633 }; // get reference and popper elements (allow jQuery wrappers) 47634 47635 this.reference = reference && reference.jquery ? reference[0] : reference; 47636 this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options 47637 47638 this.options.modifiers = {}; 47639 Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { 47640 _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); 47641 }); // Refactoring modifiers' list (Object => Array) 47642 47643 this.modifiers = Object.keys(this.options.modifiers).map(function (name) { 47644 return _extends({ 47645 name: name 47646 }, _this.options.modifiers[name]); 47647 }) // sort the modifiers by order 47648 .sort(function (a, b) { 47649 return a.order - b.order; 47650 }); // modifiers have the ability to execute arbitrary code when Popper.js get inited 47651 // such code is executed in the same order of its modifier 47652 // they could add new properties to their options configuration 47653 // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! 47654 47655 this.modifiers.forEach(function (modifierOptions) { 47656 if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { 47657 modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); 47658 } 47659 }); // fire the first update to position the popper in the right place 47660 47661 this.update(); 47662 var eventsEnabled = this.options.eventsEnabled; 47663 47664 if (eventsEnabled) { 47665 // setup event listeners, they will take care of update the position in specific situations 47666 this.enableEventListeners(); 47667 } 47668 47669 this.state.eventsEnabled = eventsEnabled; 47670 } // We can't use class properties because they don't get listed in the 47671 // class prototype and break stuff like Sinon stubs 47672 47673 47674 createClass(Popper, [{ 47675 key: 'update', 47676 value: function update$$1() { 47677 return update.call(this); 47678 } 47679 }, { 47680 key: 'destroy', 47681 value: function destroy$$1() { 47682 return destroy.call(this); 47683 } 47684 }, { 47685 key: 'enableEventListeners', 47686 value: function enableEventListeners$$1() { 47687 return enableEventListeners.call(this); 47688 } 47689 }, { 47690 key: 'disableEventListeners', 47691 value: function disableEventListeners$$1() { 47692 return disableEventListeners.call(this); 47693 } 47694 /** 47695 * Schedules an update. It will run on the next UI update available. 47696 * @method scheduleUpdate 47697 * @memberof Popper 47698 */ 47699 47700 /** 47701 * Collection of utilities useful when writing custom modifiers. 47702 * Starting from version 1.7, this method is available only if you 47703 * include `popper-utils.js` before `popper.js`. 47704 * 47705 * **DEPRECATION**: This way to access PopperUtils is deprecated 47706 * and will be removed in v2! Use the PopperUtils module directly instead. 47707 * Due to the high instability of the methods contained in Utils, we can't 47708 * guarantee them to follow semver. Use them at your own risk! 47709 * @static 47710 * @private 47711 * @type {Object} 47712 * @deprecated since version 1.8 47713 * @member Utils 47714 * @memberof Popper 47715 */ 47716 47717 }]); 47718 return Popper; 47719}(); 47720/** 47721 * The `referenceObject` is an object that provides an interface compatible with Popper.js 47722 * and lets you use it as replacement of a real DOM node.<br /> 47723 * You can use this method to position a popper relatively to a set of coordinates 47724 * in case you don't have a DOM node to use as reference. 47725 * 47726 * ``` 47727 * new Popper(referenceObject, popperNode); 47728 * ``` 47729 * 47730 * NB: This feature isn't supported in Internet Explorer 10. 47731 * @name referenceObject 47732 * @property {Function} data.getBoundingClientRect 47733 * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. 47734 * @property {number} data.clientWidth 47735 * An ES6 getter that will return the width of the virtual reference element. 47736 * @property {number} data.clientHeight 47737 * An ES6 getter that will return the height of the virtual reference element. 47738 */ 47739 47740 47741Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils; 47742Popper.placements = placements; 47743Popper.Defaults = Defaults; 47744/* harmony default export */ __webpack_exports__["default"] = (Popper); 47745/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../sfra-webpack-builder/node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 47746 47747/***/ }), 47748
vendor: 1,049 bytes, lines 47749-47768
47749/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/addCSSRule.js": 47750/*!*******************************************************************************!*\ 47751 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/addCSSRule.js ***! 47752 \*******************************************************************************/ 47753/*! exports provided: addCSSRule */ 47754/***/ (function(module, __webpack_exports__, __webpack_require__) { 47755 47756"use strict"; 47757__webpack_require__.r(__webpack_exports__); 47758/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addCSSRule", function() { return addCSSRule; }); 47759/* harmony import */ var _raf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./raf.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/raf.js"); 47760// cross browsers addRule method 47761 47762function addCSSRule(sheet, selector, rules, index) { 47763 // return raf(function() { 47764 'insertRule' in sheet ? sheet.insertRule(selector + '{' + rules + '}', index) : sheet.addRule(selector, rules, index); // }); 47765} 47766 47767/***/ }), 47768
vendor: 1,162 bytes, lines 47769-47793
47769/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/addClass.js": 47770/*!*****************************************************************************!*\ 47771 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/addClass.js ***! 47772 \*****************************************************************************/ 47773/*! exports provided: addClass */ 47774/***/ (function(module, __webpack_exports__, __webpack_require__) { 47775 47776"use strict"; 47777__webpack_require__.r(__webpack_exports__); 47778/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return addClass; }); 47779/* harmony import */ var _hasClass_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hasClass.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/hasClass.js"); 47780 47781var addClass = _hasClass_js__WEBPACK_IMPORTED_MODULE_0__["classListSupport"] ? function (el, str) { 47782 if (!Object(_hasClass_js__WEBPACK_IMPORTED_MODULE_0__["hasClass"])(el, str)) { 47783 el.classList.add(str); 47784 } 47785} : function (el, str) { 47786 if (!Object(_hasClass_js__WEBPACK_IMPORTED_MODULE_0__["hasClass"])(el, str)) { 47787 el.className += ' ' + str; 47788 } 47789}; 47790 47791 47792/***/ }), 47793
vendor: 1,117 bytes, lines 47794-47814
47794/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/addEvents.js": 47795/*!******************************************************************************!*\ 47796 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/addEvents.js ***! 47797 \******************************************************************************/ 47798/*! exports provided: addEvents */ 47799/***/ (function(module, __webpack_exports__, __webpack_require__) { 47800 47801"use strict"; 47802__webpack_require__.r(__webpack_exports__); 47803/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEvents", function() { return addEvents; }); 47804/* harmony import */ var _passiveOption_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./passiveOption.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/passiveOption.js"); 47805 47806function addEvents(el, obj, preventScrolling) { 47807 for (var prop in obj) { 47808 var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 && !preventScrolling ? _passiveOption_js__WEBPACK_IMPORTED_MODULE_0__["passiveOption"] : false; 47809 el.addEventListener(prop, obj[prop], option); 47810 } 47811} 47812 47813/***/ }), 47814
vendor: 822 bytes, lines 47815-47836
47815/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/arrayFromNodeList.js": 47816/*!**************************************************************************************!*\ 47817 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/arrayFromNodeList.js ***! 47818 \**************************************************************************************/ 47819/*! exports provided: arrayFromNodeList */ 47820/***/ (function(module, __webpack_exports__, __webpack_require__) { 47821 47822"use strict"; 47823__webpack_require__.r(__webpack_exports__); 47824/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrayFromNodeList", function() { return arrayFromNodeList; }); 47825function arrayFromNodeList(nl) { 47826 var arr = []; 47827 47828 for (var i = 0, l = nl.length; i < l; i++) { 47829 arr.push(nl[i]); 47830 } 47831 47832 return arr; 47833} 47834 47835/***/ }), 47836
vendor: 711 bytes, lines 47837-47853
47837/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/caf.js": 47838/*!************************************************************************!*\ 47839 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/caf.js ***! 47840 \************************************************************************/ 47841/*! exports provided: caf */ 47842/***/ (function(module, __webpack_exports__, __webpack_require__) { 47843 47844"use strict"; 47845__webpack_require__.r(__webpack_exports__); 47846/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "caf", function() { return caf; }); 47847var win = window; 47848var caf = win.cancelAnimationFrame || win.mozCancelAnimationFrame || function (id) { 47849 clearTimeout(id); 47850}; 47851 47852/***/ }), 47853
vendor: 2,041 bytes, lines 47854-47902
47854/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/calc.js": 47855/*!*************************************************************************!*\ 47856 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/calc.js ***! 47857 \*************************************************************************/ 47858/*! exports provided: calc */ 47859/***/ (function(module, __webpack_exports__, __webpack_require__) { 47860 47861"use strict"; 47862__webpack_require__.r(__webpack_exports__); 47863/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calc", function() { return calc; }); 47864/* harmony import */ var _getBody_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getBody.js"); 47865/* harmony import */ var _setFakeBody_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setFakeBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setFakeBody.js"); 47866/* harmony import */ var _resetFakeBody_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resetFakeBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/resetFakeBody.js"); 47867// get css-calc 47868// @return - false | calc | -webkit-calc | -moz-calc 47869// @usage - var calc = getCalc(); 47870 47871 47872 47873function calc() { 47874 var doc = document, 47875 body = Object(_getBody_js__WEBPACK_IMPORTED_MODULE_0__["getBody"])(), 47876 docOverflow = Object(_setFakeBody_js__WEBPACK_IMPORTED_MODULE_1__["setFakeBody"])(body), 47877 div = doc.createElement('div'), 47878 result = false; 47879 body.appendChild(div); 47880 47881 try { 47882 var str = '(10px * 10)', 47883 vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str], 47884 val; 47885 47886 for (var i = 0; i < 3; i++) { 47887 val = vals[i]; 47888 div.style.width = val; 47889 47890 if (div.offsetWidth === 100) { 47891 result = val.replace(str, ''); 47892 break; 47893 } 47894 } 47895 } catch (e) {} 47896 47897 body.fake ? Object(_resetFakeBody_js__WEBPACK_IMPORTED_MODULE_2__["resetFakeBody"])(body, docOverflow) : div.remove(); 47898 return result; 47899} 47900 47901/***/ }), 47902
vendor: 797 bytes, lines 47903-47918
47903/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/checkStorageValue.js": 47904/*!**************************************************************************************!*\ 47905 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/checkStorageValue.js ***! 47906 \**************************************************************************************/ 47907/*! exports provided: checkStorageValue */ 47908/***/ (function(module, __webpack_exports__, __webpack_require__) { 47909 47910"use strict"; 47911__webpack_require__.r(__webpack_exports__); 47912/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkStorageValue", function() { return checkStorageValue; }); 47913function checkStorageValue(value) { 47914 return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value; 47915} 47916 47917/***/ }), 47918
vendor: 745 bytes, lines 47919-47932
47919/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/classListSupport.js": 47920/*!*************************************************************************************!*\ 47921 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/classListSupport.js ***! 47922 \*************************************************************************************/ 47923/*! exports provided: classListSupport */ 47924/***/ (function(module, __webpack_exports__, __webpack_require__) { 47925 47926"use strict"; 47927__webpack_require__.r(__webpack_exports__); 47928/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "classListSupport", function() { return classListSupport; }); 47929var classListSupport = ('classList' in document.createElement('_')); 47930 47931/***/ }), 47932
vendor: 1,441 bytes, lines 47933-47969
47933/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/createStyleSheet.js": 47934/*!*************************************************************************************!*\ 47935 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/createStyleSheet.js ***! 47936 \*************************************************************************************/ 47937/*! exports provided: createStyleSheet */ 47938/***/ (function(module, __webpack_exports__, __webpack_require__) { 47939 47940"use strict"; 47941__webpack_require__.r(__webpack_exports__); 47942/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createStyleSheet", function() { return createStyleSheet; }); 47943// create and append style sheet 47944function createStyleSheet(media, nonce) { 47945 // Create the <style> tag 47946 var style = document.createElement("style"); // style.setAttribute("type", "text/css"); 47947 // Add a media (and/or media query) here if you'd like! 47948 // style.setAttribute("media", "screen") 47949 // style.setAttribute("media", "only screen and (max-width : 1024px)") 47950 47951 if (media) { 47952 style.setAttribute("media", media); 47953 } // Add nonce attribute for Content Security Policy 47954 47955 47956 if (nonce) { 47957 style.setAttribute("nonce", nonce); 47958 } // WebKit hack :( 47959 // style.appendChild(document.createTextNode("")); 47960 // Add the <style> element to the page 47961 47962 47963 document.querySelector('head').appendChild(style); 47964 return style.sheet ? style.sheet : style.styleSheet; 47965} 47966; 47967 47968/***/ }), 47969
vendor: 677 bytes, lines 47970-47983
47970/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/docElement.js": 47971/*!*******************************************************************************!*\ 47972 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/docElement.js ***! 47973 \*******************************************************************************/ 47974/*! exports provided: docElement */ 47975/***/ (function(module, __webpack_exports__, __webpack_require__) { 47976 47977"use strict"; 47978__webpack_require__.r(__webpack_exports__); 47979/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "docElement", function() { return docElement; }); 47980var docElement = document.documentElement; 47981 47982/***/ }), 47983
vendor: 1,323 bytes, lines 47984-48025
47984/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/events.js": 47985/*!***************************************************************************!*\ 47986 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/events.js ***! 47987 \***************************************************************************/ 47988/*! exports provided: Events */ 47989/***/ (function(module, __webpack_exports__, __webpack_require__) { 47990 47991"use strict"; 47992__webpack_require__.r(__webpack_exports__); 47993/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return Events; }); 47994function Events() { 47995 return { 47996 topics: {}, 47997 on: function on(eventName, fn) { 47998 this.topics[eventName] = this.topics[eventName] || []; 47999 this.topics[eventName].push(fn); 48000 }, 48001 off: function off(eventName, fn) { 48002 if (this.topics[eventName]) { 48003 for (var i = 0; i < this.topics[eventName].length; i++) { 48004 if (this.topics[eventName][i] === fn) { 48005 this.topics[eventName].splice(i, 1); 48006 break; 48007 } 48008 } 48009 } 48010 }, 48011 emit: function emit(eventName, data) { 48012 data.type = eventName; 48013 48014 if (this.topics[eventName]) { 48015 this.topics[eventName].forEach(function (fn) { 48016 fn(data, eventName); 48017 }); 48018 } 48019 } 48020 }; 48021} 48022; 48023 48024/***/ }), 48025
vendor: 1,036 bytes, lines 48026-48062
48026/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/extend.js": 48027/*!***************************************************************************!*\ 48028 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/extend.js ***! 48029 \***************************************************************************/ 48030/*! exports provided: extend */ 48031/***/ (function(module, __webpack_exports__, __webpack_require__) { 48032 48033"use strict"; 48034__webpack_require__.r(__webpack_exports__); 48035/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extend", function() { return extend; }); 48036function extend() { 48037 var obj, 48038 name, 48039 copy, 48040 target = arguments[0] || {}, 48041 i = 1, 48042 length = arguments.length; 48043 48044 for (; i < length; i++) { 48045 if ((obj = arguments[i]) !== null) { 48046 for (name in obj) { 48047 copy = obj[name]; 48048 48049 if (target === copy) { 48050 continue; 48051 } else if (copy !== undefined) { 48052 target[name] = copy; 48053 } 48054 } 48055 } 48056 } 48057 48058 return target; 48059} 48060 48061/***/ }), 48062
vendor: 814 bytes, lines 48063-48081
48063/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/forEach.js": 48064/*!****************************************************************************!*\ 48065 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/forEach.js ***! 48066 \****************************************************************************/ 48067/*! exports provided: forEach */ 48068/***/ (function(module, __webpack_exports__, __webpack_require__) { 48069 48070"use strict"; 48071__webpack_require__.r(__webpack_exports__); 48072/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forEach", function() { return forEach; }); 48073// https://toddmotto.com/ditch-the-array-foreach-call-nodelist-hack/ 48074function forEach(arr, callback, scope) { 48075 for (var i = 0, l = arr.length; i < l; i++) { 48076 callback.call(scope, arr[i], i); 48077 } 48078} 48079 48080/***/ }), 48081
vendor: 676 bytes, lines 48082-48097
48082/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getAttr.js": 48083/*!****************************************************************************!*\ 48084 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getAttr.js ***! 48085 \****************************************************************************/ 48086/*! exports provided: getAttr */ 48087/***/ (function(module, __webpack_exports__, __webpack_require__) { 48088 48089"use strict"; 48090__webpack_require__.r(__webpack_exports__); 48091/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAttr", function() { return getAttr; }); 48092function getAttr(el, attr) { 48093 return el.getAttribute(attr); 48094} 48095 48096/***/ }), 48097
vendor: 777 bytes, lines 48098-48121
48098/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getBody.js": 48099/*!****************************************************************************!*\ 48100 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getBody.js ***! 48101 \****************************************************************************/ 48102/*! exports provided: getBody */ 48103/***/ (function(module, __webpack_exports__, __webpack_require__) { 48104 48105"use strict"; 48106__webpack_require__.r(__webpack_exports__); 48107/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBody", function() { return getBody; }); 48108function getBody() { 48109 var doc = document, 48110 body = doc.body; 48111 48112 if (!body) { 48113 body = doc.createElement('body'); 48114 body.fake = true; 48115 } 48116 48117 return body; 48118} 48119 48120/***/ }), 48121
vendor: 810 bytes, lines 48122-48138
48122/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getCssRulesLength.js": 48123/*!**************************************************************************************!*\ 48124 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getCssRulesLength.js ***! 48125 \**************************************************************************************/ 48126/*! exports provided: getCssRulesLength */ 48127/***/ (function(module, __webpack_exports__, __webpack_require__) { 48128 48129"use strict"; 48130__webpack_require__.r(__webpack_exports__); 48131/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCssRulesLength", function() { return getCssRulesLength; }); 48132function getCssRulesLength(sheet) { 48133 var rule = 'insertRule' in sheet ? sheet.cssRules : sheet.rules; 48134 return rule.length; 48135} 48136 48137/***/ }), 48138
vendor: 1,183 bytes, lines 48139-48168
48139/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getEndProperty.js": 48140/*!***********************************************************************************!*\ 48141 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getEndProperty.js ***! 48142 \***********************************************************************************/ 48143/*! exports provided: getEndProperty */ 48144/***/ (function(module, __webpack_exports__, __webpack_require__) { 48145 48146"use strict"; 48147__webpack_require__.r(__webpack_exports__); 48148/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEndProperty", function() { return getEndProperty; }); 48149// get transitionend, animationend based on transitionDuration 48150// @propin: string 48151// @propOut: string, first-letter uppercase 48152// Usage: getEndProperty('WebkitTransitionDuration', 'Transition') => webkitTransitionEnd 48153function getEndProperty(propIn, propOut) { 48154 var endProp = false; 48155 48156 if (/^Webkit/.test(propIn)) { 48157 endProp = 'webkit' + propOut + 'End'; 48158 } else if (/^O/.test(propIn)) { 48159 endProp = 'o' + propOut + 'End'; 48160 } else if (propIn) { 48161 endProp = propOut.toLowerCase() + 'end'; 48162 } 48163 48164 return endProp; 48165} 48166 48167/***/ }), 48168
vendor: 751 bytes, lines 48169-48186
48169/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getSlideId.js": 48170/*!*******************************************************************************!*\ 48171 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getSlideId.js ***! 48172 \*******************************************************************************/ 48173/*! exports provided: getSlideId */ 48174/***/ (function(module, __webpack_exports__, __webpack_require__) { 48175 48176"use strict"; 48177__webpack_require__.r(__webpack_exports__); 48178/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSlideId", function() { return getSlideId; }); 48179function getSlideId() { 48180 var id = window.tnsId; 48181 window.tnsId = !id ? 1 : id + 1; 48182 return 'tns' + window.tnsId; 48183} 48184 48185/***/ }), 48186
vendor: 937 bytes, lines 48187-48211
48187/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getTouchDirection.js": 48188/*!**************************************************************************************!*\ 48189 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getTouchDirection.js ***! 48190 \**************************************************************************************/ 48191/*! exports provided: getTouchDirection */ 48192/***/ (function(module, __webpack_exports__, __webpack_require__) { 48193 48194"use strict"; 48195__webpack_require__.r(__webpack_exports__); 48196/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTouchDirection", function() { return getTouchDirection; }); 48197function getTouchDirection(angle, range) { 48198 var direction = false, 48199 gap = Math.abs(90 - Math.abs(angle)); 48200 48201 if (gap >= 90 - range) { 48202 direction = 'horizontal'; 48203 } else if (gap <= range) { 48204 direction = 'vertical'; 48205 } 48206 48207 return direction; 48208} 48209 48210/***/ }), 48211
vendor: 2,092 bytes, lines 48212-48253
48212/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/has3DTransforms.js": 48213/*!************************************************************************************!*\ 48214 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/has3DTransforms.js ***! 48215 \************************************************************************************/ 48216/*! exports provided: has3DTransforms */ 48217/***/ (function(module, __webpack_exports__, __webpack_require__) { 48218 48219"use strict"; 48220__webpack_require__.r(__webpack_exports__); 48221/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "has3DTransforms", function() { return has3DTransforms; }); 48222/* harmony import */ var _getBody_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getBody.js"); 48223/* harmony import */ var _setFakeBody_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setFakeBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setFakeBody.js"); 48224/* harmony import */ var _resetFakeBody_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resetFakeBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/resetFakeBody.js"); 48225 48226 48227 48228function has3DTransforms(tf) { 48229 if (!tf) { 48230 return false; 48231 } 48232 48233 if (!window.getComputedStyle) { 48234 return false; 48235 } 48236 48237 var doc = document, 48238 body = Object(_getBody_js__WEBPACK_IMPORTED_MODULE_0__["getBody"])(), 48239 docOverflow = Object(_setFakeBody_js__WEBPACK_IMPORTED_MODULE_1__["setFakeBody"])(body), 48240 el = doc.createElement('p'), 48241 has3d, 48242 cssTF = tf.length > 9 ? '-' + tf.slice(0, -9).toLowerCase() + '-' : ''; 48243 cssTF += 'transform'; // Add it to the body to get the computed style 48244 48245 body.insertBefore(el, null); 48246 el.style[tf] = 'translate3d(1px,1px,1px)'; 48247 has3d = window.getComputedStyle(el).getPropertyValue(cssTF); 48248 body.fake ? Object(_resetFakeBody_js__WEBPACK_IMPORTED_MODULE_2__["resetFakeBody"])(body, docOverflow) : el.remove(); 48249 return has3d !== undefined && has3d.length > 0 && has3d !== "none"; 48250} 48251 48252/***/ }), 48253
vendor: 676 bytes, lines 48254-48269
48254/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/hasAttr.js": 48255/*!****************************************************************************!*\ 48256 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/hasAttr.js ***! 48257 \****************************************************************************/ 48258/*! exports provided: hasAttr */ 48259/***/ (function(module, __webpack_exports__, __webpack_require__) { 48260 48261"use strict"; 48262__webpack_require__.r(__webpack_exports__); 48263/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasAttr", function() { return hasAttr; }); 48264function hasAttr(el, attr) { 48265 return el.hasAttribute(attr); 48266} 48267 48268/***/ }), 48269
vendor: 1,251 bytes, lines 48270-48292
48270/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/hasClass.js": 48271/*!*****************************************************************************!*\ 48272 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/hasClass.js ***! 48273 \*****************************************************************************/ 48274/*! exports provided: classListSupport, hasClass */ 48275/***/ (function(module, __webpack_exports__, __webpack_require__) { 48276 48277"use strict"; 48278__webpack_require__.r(__webpack_exports__); 48279/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasClass", function() { return hasClass; }); 48280/* harmony import */ var _classListSupport_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classListSupport.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/classListSupport.js"); 48281/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "classListSupport", function() { return _classListSupport_js__WEBPACK_IMPORTED_MODULE_0__["classListSupport"]; }); 48282 48283 48284var hasClass = _classListSupport_js__WEBPACK_IMPORTED_MODULE_0__["classListSupport"] ? function (el, str) { 48285 return el.classList.contains(str); 48286} : function (el, str) { 48287 return el.className.indexOf(str) >= 0; 48288}; 48289 48290 48291/***/ }), 48292
vendor: 753 bytes, lines 48293-48310
48293/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/hideElement.js": 48294/*!********************************************************************************!*\ 48295 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/hideElement.js ***! 48296 \********************************************************************************/ 48297/*! exports provided: hideElement */ 48298/***/ (function(module, __webpack_exports__, __webpack_require__) { 48299 48300"use strict"; 48301__webpack_require__.r(__webpack_exports__); 48302/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideElement", function() { return hideElement; }); 48303function hideElement(el, forceHide) { 48304 if (el.style.display !== 'none') { 48305 el.style.display = 'none'; 48306 } 48307} 48308 48309/***/ }), 48310
vendor: 748 bytes, lines 48311-48327
48311/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/isNodeList.js": 48312/*!*******************************************************************************!*\ 48313 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/isNodeList.js ***! 48314 \*******************************************************************************/ 48315/*! exports provided: isNodeList */ 48316/***/ (function(module, __webpack_exports__, __webpack_require__) { 48317 48318"use strict"; 48319__webpack_require__.r(__webpack_exports__); 48320/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNodeList", function() { return isNodeList; }); 48321function isNodeList(el) { 48322 // Only NodeList has the "item()" function 48323 return typeof el.item !== "undefined"; 48324} 48325 48326/***/ }), 48327
vendor: 711 bytes, lines 48328-48343
48328/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/isVisible.js": 48329/*!******************************************************************************!*\ 48330 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/isVisible.js ***! 48331 \******************************************************************************/ 48332/*! exports provided: isVisible */ 48333/***/ (function(module, __webpack_exports__, __webpack_require__) { 48334 48335"use strict"; 48336__webpack_require__.r(__webpack_exports__); 48337/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVisible", function() { return isVisible; }); 48338function isVisible(el) { 48339 return window.getComputedStyle(el).display !== 'none'; 48340} 48341 48342/***/ }), 48343
vendor: 1,278 bytes, lines 48344-48377
48344/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/jsTransform.js": 48345/*!********************************************************************************!*\ 48346 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/jsTransform.js ***! 48347 \********************************************************************************/ 48348/*! exports provided: jsTransform */ 48349/***/ (function(module, __webpack_exports__, __webpack_require__) { 48350 48351"use strict"; 48352__webpack_require__.r(__webpack_exports__); 48353/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "jsTransform", function() { return jsTransform; }); 48354function jsTransform(element, attr, prefix, postfix, to, duration, callback) { 48355 var tick = Math.min(duration, 10), 48356 unit = to.indexOf('%') >= 0 ? '%' : 'px', 48357 to = to.replace(unit, ''), 48358 from = Number(element.style[attr].replace(prefix, '').replace(postfix, '').replace(unit, '')), 48359 positionTick = (to - from) / duration * tick, 48360 running; 48361 setTimeout(moveElement, tick); 48362 48363 function moveElement() { 48364 duration -= tick; 48365 from += positionTick; 48366 element.style[attr] = prefix + from + unit + postfix; 48367 48368 if (duration > 0) { 48369 setTimeout(moveElement, tick); 48370 } else { 48371 callback(); 48372 } 48373 } 48374} 48375 48376/***/ }), 48377
vendor: 2,238 bytes, lines 48378-48423
48378/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/mediaquerySupport.js": 48379/*!**************************************************************************************!*\ 48380 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/mediaquerySupport.js ***! 48381 \**************************************************************************************/ 48382/*! exports provided: mediaquerySupport */ 48383/***/ (function(module, __webpack_exports__, __webpack_require__) { 48384 48385"use strict"; 48386__webpack_require__.r(__webpack_exports__); 48387/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mediaquerySupport", function() { return mediaquerySupport; }); 48388/* harmony import */ var _getBody_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getBody.js"); 48389/* harmony import */ var _setFakeBody_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setFakeBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setFakeBody.js"); 48390/* harmony import */ var _resetFakeBody_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resetFakeBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/resetFakeBody.js"); 48391 48392 48393 48394function mediaquerySupport() { 48395 if (window.matchMedia || window.msMatchMedia) { 48396 return true; 48397 } 48398 48399 var doc = document, 48400 body = Object(_getBody_js__WEBPACK_IMPORTED_MODULE_0__["getBody"])(), 48401 docOverflow = Object(_setFakeBody_js__WEBPACK_IMPORTED_MODULE_1__["setFakeBody"])(body), 48402 div = doc.createElement('div'), 48403 style = doc.createElement('style'), 48404 rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}', 48405 position; 48406 style.type = 'text/css'; 48407 div.className = 'tns-mq-test'; 48408 body.appendChild(style); 48409 body.appendChild(div); 48410 48411 if (style.styleSheet) { 48412 style.styleSheet.cssText = rule; 48413 } else { 48414 style.appendChild(doc.createTextNode(rule)); 48415 } 48416 48417 position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position']; 48418 body.fake ? Object(_resetFakeBody_js__WEBPACK_IMPORTED_MODULE_2__["resetFakeBody"])(body, docOverflow) : div.remove(); 48419 return position === "absolute"; 48420} 48421 48422/***/ }), 48423
vendor: 1,027 bytes, lines 48424-48451
48424/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/passiveOption.js": 48425/*!**********************************************************************************!*\ 48426 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/passiveOption.js ***! 48427 \**********************************************************************************/ 48428/*! exports provided: passiveOption */ 48429/***/ (function(module, __webpack_exports__, __webpack_require__) { 48430 48431"use strict"; 48432__webpack_require__.r(__webpack_exports__); 48433/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "passiveOption", function() { return passiveOption; }); 48434// Test via a getter in the options object to see if the passive property is accessed 48435var supportsPassive = false; 48436 48437try { 48438 var opts = Object.defineProperty({}, 'passive', { 48439 get: function get() { 48440 supportsPassive = true; 48441 } 48442 }); 48443 window.addEventListener("test", null, opts); 48444} catch (e) {} 48445 48446var passiveOption = supportsPassive ? { 48447 passive: true 48448} : false; 48449 48450/***/ }), 48451
vendor: 2,221 bytes, lines 48452-48497
48452/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/percentageLayout.js": 48453/*!*************************************************************************************!*\ 48454 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/percentageLayout.js ***! 48455 \*************************************************************************************/ 48456/*! exports provided: percentageLayout */ 48457/***/ (function(module, __webpack_exports__, __webpack_require__) { 48458 48459"use strict"; 48460__webpack_require__.r(__webpack_exports__); 48461/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "percentageLayout", function() { return percentageLayout; }); 48462/* harmony import */ var _getBody_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getBody.js"); 48463/* harmony import */ var _setFakeBody_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setFakeBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setFakeBody.js"); 48464/* harmony import */ var _resetFakeBody_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resetFakeBody.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/resetFakeBody.js"); 48465// get subpixel support value 48466// @return - boolean 48467 48468 48469 48470function percentageLayout() { 48471 // check subpixel layout supporting 48472 var doc = document, 48473 body = Object(_getBody_js__WEBPACK_IMPORTED_MODULE_0__["getBody"])(), 48474 docOverflow = Object(_setFakeBody_js__WEBPACK_IMPORTED_MODULE_1__["setFakeBody"])(body), 48475 wrapper = doc.createElement('div'), 48476 outer = doc.createElement('div'), 48477 str = '', 48478 count = 70, 48479 perPage = 3, 48480 supported = false; 48481 wrapper.className = "tns-t-subp2"; 48482 outer.className = "tns-t-ct"; 48483 48484 for (var i = 0; i < count; i++) { 48485 str += '<div></div>'; 48486 } 48487 48488 outer.innerHTML = str; 48489 wrapper.appendChild(outer); 48490 body.appendChild(wrapper); 48491 supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2; 48492 body.fake ? Object(_resetFakeBody_js__WEBPACK_IMPORTED_MODULE_2__["resetFakeBody"])(body, docOverflow) : wrapper.remove(); 48493 return supported; 48494} 48495 48496/***/ }), 48497
vendor: 788 bytes, lines 48498-48514
48498/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/raf.js": 48499/*!************************************************************************!*\ 48500 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/raf.js ***! 48501 \************************************************************************/ 48502/*! exports provided: raf */ 48503/***/ (function(module, __webpack_exports__, __webpack_require__) { 48504 48505"use strict"; 48506__webpack_require__.r(__webpack_exports__); 48507/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "raf", function() { return raf; }); 48508var win = window; 48509var raf = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.msRequestAnimationFrame || function (cb) { 48510 return setTimeout(cb, 16); 48511}; 48512 48513/***/ }), 48514
vendor: 1,195 bytes, lines 48515-48540
48515/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeAttrs.js": 48516/*!********************************************************************************!*\ 48517 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeAttrs.js ***! 48518 \********************************************************************************/ 48519/*! exports provided: removeAttrs */ 48520/***/ (function(module, __webpack_exports__, __webpack_require__) { 48521 48522"use strict"; 48523__webpack_require__.r(__webpack_exports__); 48524/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAttrs", function() { return removeAttrs; }); 48525/* harmony import */ var _isNodeList_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isNodeList.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/isNodeList.js"); 48526 48527function removeAttrs(els, attrs) { 48528 els = Object(_isNodeList_js__WEBPACK_IMPORTED_MODULE_0__["isNodeList"])(els) || els instanceof Array ? els : [els]; 48529 attrs = attrs instanceof Array ? attrs : [attrs]; 48530 var attrLength = attrs.length; 48531 48532 for (var i = els.length; i--;) { 48533 for (var j = attrLength; j--;) { 48534 els[i].removeAttribute(attrs[j]); 48535 } 48536 } 48537} 48538 48539/***/ }), 48540
vendor: 1,012 bytes, lines 48541-48560
48541/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeCSSRule.js": 48542/*!**********************************************************************************!*\ 48543 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeCSSRule.js ***! 48544 \**********************************************************************************/ 48545/*! exports provided: removeCSSRule */ 48546/***/ (function(module, __webpack_exports__, __webpack_require__) { 48547 48548"use strict"; 48549__webpack_require__.r(__webpack_exports__); 48550/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeCSSRule", function() { return removeCSSRule; }); 48551/* harmony import */ var _raf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./raf.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/raf.js"); 48552// cross browsers addRule method 48553 48554function removeCSSRule(sheet, index) { 48555 // return raf(function() { 48556 'deleteRule' in sheet ? sheet.deleteRule(index) : sheet.removeRule(index); // }); 48557} 48558 48559/***/ }), 48560
vendor: 1,206 bytes, lines 48561-48585
48561/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeClass.js": 48562/*!********************************************************************************!*\ 48563 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeClass.js ***! 48564 \********************************************************************************/ 48565/*! exports provided: removeClass */ 48566/***/ (function(module, __webpack_exports__, __webpack_require__) { 48567 48568"use strict"; 48569__webpack_require__.r(__webpack_exports__); 48570/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeClass", function() { return removeClass; }); 48571/* harmony import */ var _hasClass_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hasClass.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/hasClass.js"); 48572 48573var removeClass = _hasClass_js__WEBPACK_IMPORTED_MODULE_0__["classListSupport"] ? function (el, str) { 48574 if (Object(_hasClass_js__WEBPACK_IMPORTED_MODULE_0__["hasClass"])(el, str)) { 48575 el.classList.remove(str); 48576 } 48577} : function (el, str) { 48578 if (Object(_hasClass_js__WEBPACK_IMPORTED_MODULE_0__["hasClass"])(el, str)) { 48579 el.className = el.className.replace(str, ''); 48580 } 48581}; 48582 48583 48584/***/ }), 48585
vendor: 1,105 bytes, lines 48586-48606
48586/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeEvents.js": 48587/*!*********************************************************************************!*\ 48588 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeEvents.js ***! 48589 \*********************************************************************************/ 48590/*! exports provided: removeEvents */ 48591/***/ (function(module, __webpack_exports__, __webpack_require__) { 48592 48593"use strict"; 48594__webpack_require__.r(__webpack_exports__); 48595/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeEvents", function() { return removeEvents; }); 48596/* harmony import */ var _passiveOption_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./passiveOption.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/passiveOption.js"); 48597 48598function removeEvents(el, obj) { 48599 for (var prop in obj) { 48600 var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 ? _passiveOption_js__WEBPACK_IMPORTED_MODULE_0__["passiveOption"] : false; 48601 el.removeEventListener(prop, obj[prop], option); 48602 } 48603} 48604 48605/***/ }), 48606
vendor: 1,198 bytes, lines 48607-48630
48607/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/resetFakeBody.js": 48608/*!**********************************************************************************!*\ 48609 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/resetFakeBody.js ***! 48610 \**********************************************************************************/ 48611/*! exports provided: resetFakeBody */ 48612/***/ (function(module, __webpack_exports__, __webpack_require__) { 48613 48614"use strict"; 48615__webpack_require__.r(__webpack_exports__); 48616/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resetFakeBody", function() { return resetFakeBody; }); 48617/* harmony import */ var _docElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./docElement.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/docElement.js"); 48618 48619function resetFakeBody(body, docOverflow) { 48620 if (body.fake) { 48621 body.remove(); 48622 _docElement_js__WEBPACK_IMPORTED_MODULE_0__["docElement"].style.overflow = docOverflow; // Trigger layout so kinetic scrolling isn't disabled in iOS6+ 48623 // eslint-disable-next-line 48624 48625 _docElement_js__WEBPACK_IMPORTED_MODULE_0__["docElement"].offsetHeight; 48626 } 48627} 48628 48629/***/ }), 48630
vendor: 1,168 bytes, lines 48631-48658
48631/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setAttrs.js": 48632/*!*****************************************************************************!*\ 48633 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setAttrs.js ***! 48634 \*****************************************************************************/ 48635/*! exports provided: setAttrs */ 48636/***/ (function(module, __webpack_exports__, __webpack_require__) { 48637 48638"use strict"; 48639__webpack_require__.r(__webpack_exports__); 48640/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAttrs", function() { return setAttrs; }); 48641/* harmony import */ var _isNodeList_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isNodeList.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/isNodeList.js"); 48642 48643function setAttrs(els, attrs) { 48644 els = Object(_isNodeList_js__WEBPACK_IMPORTED_MODULE_0__["isNodeList"])(els) || els instanceof Array ? els : [els]; 48645 48646 if (Object.prototype.toString.call(attrs) !== '[object Object]') { 48647 return; 48648 } 48649 48650 for (var i = els.length; i--;) { 48651 for (var key in attrs) { 48652 els[i].setAttribute(key, attrs[key]); 48653 } 48654 } 48655} 48656 48657/***/ }), 48658
vendor: 1,398 bytes, lines 48659-48687
48659/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setFakeBody.js": 48660/*!********************************************************************************!*\ 48661 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setFakeBody.js ***! 48662 \********************************************************************************/ 48663/*! exports provided: setFakeBody */ 48664/***/ (function(module, __webpack_exports__, __webpack_require__) { 48665 48666"use strict"; 48667__webpack_require__.r(__webpack_exports__); 48668/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setFakeBody", function() { return setFakeBody; }); 48669/* harmony import */ var _docElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./docElement.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/docElement.js"); 48670 48671function setFakeBody(body) { 48672 var docOverflow = ''; 48673 48674 if (body.fake) { 48675 docOverflow = _docElement_js__WEBPACK_IMPORTED_MODULE_0__["docElement"].style.overflow; //avoid crashing IE8, if background image is used 48676 48677 body.style.background = ''; //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible 48678 48679 body.style.overflow = _docElement_js__WEBPACK_IMPORTED_MODULE_0__["docElement"].style.overflow = 'hidden'; 48680 _docElement_js__WEBPACK_IMPORTED_MODULE_0__["docElement"].appendChild(body); 48681 } 48682 48683 return docOverflow; 48684} 48685 48686/***/ }), 48687
vendor: 828 bytes, lines 48688-48709
48688/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setLocalStorage.js": 48689/*!************************************************************************************!*\ 48690 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setLocalStorage.js ***! 48691 \************************************************************************************/ 48692/*! exports provided: setLocalStorage */ 48693/***/ (function(module, __webpack_exports__, __webpack_require__) { 48694 48695"use strict"; 48696__webpack_require__.r(__webpack_exports__); 48697/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLocalStorage", function() { return setLocalStorage; }); 48698function setLocalStorage(storage, key, value, access) { 48699 if (access) { 48700 try { 48701 storage.setItem(key, value); 48702 } catch (e) {} 48703 } 48704 48705 return value; 48706} 48707 48708/***/ }), 48709
vendor: 749 bytes, lines 48710-48727
48710/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/showElement.js": 48711/*!********************************************************************************!*\ 48712 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/showElement.js ***! 48713 \********************************************************************************/ 48714/*! exports provided: showElement */ 48715/***/ (function(module, __webpack_exports__, __webpack_require__) { 48716 48717"use strict"; 48718__webpack_require__.r(__webpack_exports__); 48719/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showElement", function() { return showElement; }); 48720function showElement(el, forceHide) { 48721 if (el.style.display === 'none') { 48722 el.style.display = ''; 48723 } 48724} 48725 48726/***/ }), 48727
vendor: 693 bytes, lines 48728-48743
48728/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/toDegree.js": 48729/*!*****************************************************************************!*\ 48730 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/toDegree.js ***! 48731 \*****************************************************************************/ 48732/*! exports provided: toDegree */ 48733/***/ (function(module, __webpack_exports__, __webpack_require__) { 48734 48735"use strict"; 48736__webpack_require__.r(__webpack_exports__); 48737/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toDegree", function() { return toDegree; }); 48738function toDegree(y, x) { 48739 return Math.atan2(y, x) * (180 / Math.PI); 48740} 48741 48742/***/ }), 48743
vendor: 1,281 bytes, lines 48744-48782
48744/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/whichProperty.js": 48745/*!**********************************************************************************!*\ 48746 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/whichProperty.js ***! 48747 \**********************************************************************************/ 48748/*! exports provided: whichProperty */ 48749/***/ (function(module, __webpack_exports__, __webpack_require__) { 48750 48751"use strict"; 48752__webpack_require__.r(__webpack_exports__); 48753/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "whichProperty", function() { return whichProperty; }); 48754function whichProperty(props) { 48755 if (typeof props === 'string') { 48756 var arr = [props], 48757 Props = props.charAt(0).toUpperCase() + props.substr(1), 48758 prefixes = ['Webkit', 'Moz', 'ms', 'O']; 48759 prefixes.forEach(function (prefix) { 48760 if (prefix !== 'ms' || props === 'transform') { 48761 arr.push(prefix + Props); 48762 } 48763 }); 48764 props = arr; 48765 } 48766 48767 var el = document.createElement('fakeelement'), 48768 len = props.length; 48769 48770 for (var i = 0; i < props.length; i++) { 48771 var prop = props[i]; 48772 48773 if (el.style[prop] !== undefined) { 48774 return prop; 48775 } 48776 } 48777 48778 return false; // explicit for ie9- 48779} 48780 48781/***/ }), 48782
vendor: 113,083 bytes, lines 48783-52067
48783/***/ "../rvw_autobahn_core/node_modules/tiny-slider/src/tiny-slider.js": 48784/*!************************************************************************!*\ 48785 !*** ../rvw_autobahn_core/node_modules/tiny-slider/src/tiny-slider.js ***! 48786 \************************************************************************/ 48787/*! exports provided: tns */ 48788/***/ (function(module, __webpack_exports__, __webpack_require__) { 48789 48790"use strict"; 48791__webpack_require__.r(__webpack_exports__); 48792/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tns", function() { return tns; }); 48793/* harmony import */ var _helpers_raf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/raf.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/raf.js"); 48794/* harmony import */ var _helpers_caf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/caf.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/caf.js"); 48795/* harmony import */ var _helpers_extend_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers/extend.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/extend.js"); 48796/* harmony import */ var _helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers/checkStorageValue.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/checkStorageValue.js"); 48797/* harmony import */ var _helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers/setLocalStorage.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setLocalStorage.js"); 48798/* harmony import */ var _helpers_getSlideId_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./helpers/getSlideId.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getSlideId.js"); 48799/* harmony import */ var _helpers_calc_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./helpers/calc.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/calc.js"); 48800/* harmony import */ var _helpers_percentageLayout_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./helpers/percentageLayout.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/percentageLayout.js"); 48801/* harmony import */ var _helpers_mediaquerySupport_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./helpers/mediaquerySupport.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/mediaquerySupport.js"); 48802/* harmony import */ var _helpers_createStyleSheet_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./helpers/createStyleSheet.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/createStyleSheet.js"); 48803/* harmony import */ var _helpers_addCSSRule_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./helpers/addCSSRule.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/addCSSRule.js"); 48804/* harmony import */ var _helpers_removeCSSRule_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./helpers/removeCSSRule.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeCSSRule.js"); 48805/* harmony import */ var _helpers_getCssRulesLength_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/getCssRulesLength.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getCssRulesLength.js"); 48806/* harmony import */ var _helpers_toDegree_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./helpers/toDegree.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/toDegree.js"); 48807/* harmony import */ var _helpers_getTouchDirection_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./helpers/getTouchDirection.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getTouchDirection.js"); 48808/* harmony import */ var _helpers_forEach_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./helpers/forEach.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/forEach.js"); 48809/* harmony import */ var _helpers_hasClass_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./helpers/hasClass.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/hasClass.js"); 48810/* harmony import */ var _helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./helpers/addClass.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/addClass.js"); 48811/* harmony import */ var _helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./helpers/removeClass.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeClass.js"); 48812/* harmony import */ var _helpers_hasAttr_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./helpers/hasAttr.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/hasAttr.js"); 48813/* harmony import */ var _helpers_getAttr_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./helpers/getAttr.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getAttr.js"); 48814/* harmony import */ var _helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./helpers/setAttrs.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/setAttrs.js"); 48815/* harmony import */ var _helpers_removeAttrs_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./helpers/removeAttrs.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeAttrs.js"); 48816/* harmony import */ var _helpers_arrayFromNodeList_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./helpers/arrayFromNodeList.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/arrayFromNodeList.js"); 48817/* harmony import */ var _helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./helpers/hideElement.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/hideElement.js"); 48818/* harmony import */ var _helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./helpers/showElement.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/showElement.js"); 48819/* harmony import */ var _helpers_isVisible_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./helpers/isVisible.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/isVisible.js"); 48820/* harmony import */ var _helpers_whichProperty_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./helpers/whichProperty.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/whichProperty.js"); 48821/* harmony import */ var _helpers_has3DTransforms_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./helpers/has3DTransforms.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/has3DTransforms.js"); 48822/* harmony import */ var _helpers_getEndProperty_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./helpers/getEndProperty.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/getEndProperty.js"); 48823/* harmony import */ var _helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./helpers/addEvents.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/addEvents.js"); 48824/* harmony import */ var _helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./helpers/removeEvents.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/removeEvents.js"); 48825/* harmony import */ var _helpers_events_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./helpers/events.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/events.js"); 48826/* harmony import */ var _helpers_jsTransform_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./helpers/jsTransform.js */ "../rvw_autobahn_core/node_modules/tiny-slider/src/helpers/jsTransform.js"); 48827function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 48828 48829// Object.keys 48830if (!Object.keys) { 48831 Object.keys = function (object) { 48832 var keys = []; 48833 48834 for (var name in object) { 48835 if (Object.prototype.hasOwnProperty.call(object, name)) { 48836 keys.push(name); 48837 } 48838 } 48839 48840 return keys; 48841 }; 48842} // ChildNode.remove 48843 48844 48845if (!("remove" in Element.prototype)) { 48846 Element.prototype.remove = function () { 48847 if (this.parentNode) { 48848 this.parentNode.removeChild(this); 48849 } 48850 }; 48851} 48852 48853 48854 48855 48856 48857 48858 48859 48860 48861 48862 48863 48864 48865 48866 48867 48868 48869 48870 48871 48872 48873 48874 48875 48876 48877 48878 48879 48880 48881 48882 48883 48884 48885 48886 48887var tns = function tns(options) { 48888 options = Object(_helpers_extend_js__WEBPACK_IMPORTED_MODULE_2__["extend"])({ 48889 container: '.slider', 48890 mode: 'carousel', 48891 axis: 'horizontal', 48892 items: 1, 48893 gutter: 0, 48894 edgePadding: 0, 48895 fixedWidth: false, 48896 autoWidth: false, 48897 viewportMax: false, 48898 slideBy: 1, 48899 center: false, 48900 controls: true, 48901 controlsPosition: 'top', 48902 controlsText: ['prev', 'next'], 48903 controlsContainer: false, 48904 prevButton: false, 48905 nextButton: false, 48906 nav: true, 48907 navPosition: 'top', 48908 navContainer: false, 48909 navAsThumbnails: false, 48910 arrowKeys: false, 48911 speed: 300, 48912 autoplay: false, 48913 autoplayPosition: 'top', 48914 autoplayTimeout: 5000, 48915 autoplayDirection: 'forward', 48916 autoplayText: ['start', 'stop'], 48917 autoplayHoverPause: false, 48918 autoplayButton: false, 48919 autoplayButtonOutput: true, 48920 autoplayResetOnVisibility: true, 48921 animateIn: 'tns-fadeIn', 48922 animateOut: 'tns-fadeOut', 48923 animateNormal: 'tns-normal', 48924 animateDelay: false, 48925 loop: true, 48926 rewind: false, 48927 autoHeight: false, 48928 responsive: false, 48929 lazyload: false, 48930 lazyloadSelector: '.tns-lazy-img', 48931 touch: true, 48932 mouseDrag: false, 48933 swipeAngle: 15, 48934 nested: false, 48935 preventActionWhenRunning: false, 48936 preventScrollOnTouch: false, 48937 freezable: true, 48938 onInit: false, 48939 useLocalStorage: true, 48940 nonce: false 48941 }, options || {}); 48942 var doc = document, 48943 win = window, 48944 KEYS = { 48945 ENTER: 13, 48946 SPACE: 32, 48947 LEFT: 37, 48948 RIGHT: 39 48949 }, 48950 tnsStorage = {}, 48951 localStorageAccess = options.useLocalStorage; 48952 48953 if (localStorageAccess) { 48954 // check browser version and local storage access 48955 var browserInfo = navigator.userAgent; 48956 var uid = new Date(); 48957 48958 try { 48959 tnsStorage = win.localStorage; 48960 48961 if (tnsStorage) { 48962 tnsStorage.setItem(uid, uid); 48963 localStorageAccess = tnsStorage.getItem(uid) == uid; 48964 tnsStorage.removeItem(uid); 48965 } else { 48966 localStorageAccess = false; 48967 } 48968 48969 if (!localStorageAccess) { 48970 tnsStorage = {}; 48971 } 48972 } catch (e) { 48973 localStorageAccess = false; 48974 } 48975 48976 if (localStorageAccess) { 48977 // remove storage when browser version changes 48978 if (tnsStorage['tnsApp'] && tnsStorage['tnsApp'] !== browserInfo) { 48979 ['tC', 'tPL', 'tMQ', 'tTf', 't3D', 'tTDu', 'tTDe', 'tADu', 'tADe', 'tTE', 'tAE'].forEach(function (item) { 48980 tnsStorage.removeItem(item); 48981 }); 48982 } // update browserInfo 48983 48984 48985 localStorage['tnsApp'] = browserInfo; 48986 } 48987 } 48988 48989 var CALC = tnsStorage['tC'] ? Object(_helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__["checkStorageValue"])(tnsStorage['tC']) : Object(_helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__["setLocalStorage"])(tnsStorage, 'tC', Object(_helpers_calc_js__WEBPACK_IMPORTED_MODULE_6__["calc"])(), localStorageAccess), 48990 PERCENTAGELAYOUT = tnsStorage['tPL'] ? Object(_helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__["checkStorageValue"])(tnsStorage['tPL']) : Object(_helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__["setLocalStorage"])(tnsStorage, 'tPL', Object(_helpers_percentageLayout_js__WEBPACK_IMPORTED_MODULE_7__["percentageLayout"])(), localStorageAccess), 48991 CSSMQ = tnsStorage['tMQ'] ? Object(_helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__["checkStorageValue"])(tnsStorage['tMQ']) : Object(_helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__["setLocalStorage"])(tnsStorage, 'tMQ', Object(_helpers_mediaquerySupport_js__WEBPACK_IMPORTED_MODULE_8__["mediaquerySupport"])(), localStorageAccess), 48992 TRANSFORM = tnsStorage['tTf'] ? Object(_helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__["checkStorageValue"])(tnsStorage['tTf']) : Object(_helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__["setLocalStorage"])(tnsStorage, 'tTf', Object(_helpers_whichProperty_js__WEBPACK_IMPORTED_MODULE_27__["whichProperty"])('transform'), localStorageAccess), 48993 HAS3DTRANSFORMS = tnsStorage['t3D'] ? Object(_helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__["checkStorageValue"])(tnsStorage['t3D']) : Object(_helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__["setLocalStorage"])(tnsStorage, 't3D', Object(_helpers_has3DTransforms_js__WEBPACK_IMPORTED_MODULE_28__["has3DTransforms"])(TRANSFORM), localStorageAccess), 48994 TRANSITIONDURATION = tnsStorage['tTDu'] ? Object(_helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__["checkStorageValue"])(tnsStorage['tTDu']) : Object(_helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__["setLocalStorage"])(tnsStorage, 'tTDu', Object(_helpers_whichProperty_js__WEBPACK_IMPORTED_MODULE_27__["whichProperty"])('transitionDuration'), localStorageAccess), 48995 TRANSITIONDELAY = tnsStorage['tTDe'] ? Object(_helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__["checkStorageValue"])(tnsStorage['tTDe']) : Object(_helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__["setLocalStorage"])(tnsStorage, 'tTDe', Object(_helpers_whichProperty_js__WEBPACK_IMPORTED_MODULE_27__["whichProperty"])('transitionDelay'), localStorageAccess), 48996 ANIMATIONDURATION = tnsStorage['tADu'] ? Object(_helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__["checkStorageValue"])(tnsStorage['tADu']) : Object(_helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__["setLocalStorage"])(tnsStorage, 'tADu', Object(_helpers_whichProperty_js__WEBPACK_IMPORTED_MODULE_27__["whichProperty"])('animationDuration'), localStorageAccess), 48997 ANIMATIONDELAY = tnsStorage['tADe'] ? Object(_helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__["checkStorageValue"])(tnsStorage['tADe']) : Object(_helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__["setLocalStorage"])(tnsStorage, 'tADe', Object(_helpers_whichProperty_js__WEBPACK_IMPORTED_MODULE_27__["whichProperty"])('animationDelay'), localStorageAccess), 48998 TRANSITIONEND = tnsStorage['tTE'] ? Object(_helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__["checkStorageValue"])(tnsStorage['tTE']) : Object(_helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__["setLocalStorage"])(tnsStorage, 'tTE', Object(_helpers_getEndProperty_js__WEBPACK_IMPORTED_MODULE_29__["getEndProperty"])(TRANSITIONDURATION, 'Transition'), localStorageAccess), 48999 ANIMATIONEND = tnsStorage['tAE'] ? Object(_helpers_checkStorageValue_js__WEBPACK_IMPORTED_MODULE_3__["checkStorageValue"])(tnsStorage['tAE']) : Object(_helpers_setLocalStorage_js__WEBPACK_IMPORTED_MODULE_4__["setLocalStorage"])(tnsStorage, 'tAE', Object(_helpers_getEndProperty_js__WEBPACK_IMPORTED_MODULE_29__["getEndProperty"])(ANIMATIONDURATION, 'Animation'), localStorageAccess); // get element nodes from selectors 49000 49001 var supportConsoleWarn = win.console && typeof win.console.warn === "function", 49002 tnsList = ['container', 'controlsContainer', 'prevButton', 'nextButton', 'navContainer', 'autoplayButton'], 49003 optionsElements = {}; 49004 tnsList.forEach(function (item) { 49005 if (typeof options[item] === 'string') { 49006 var str = options[item], 49007 el = doc.querySelector(str); 49008 optionsElements[item] = str; 49009 49010 if (el && el.nodeName) { 49011 options[item] = el; 49012 } else { 49013 if (supportConsoleWarn) { 49014 console.warn('Can\'t find', options[item]); 49015 } 49016 49017 return; 49018 } 49019 } 49020 }); // make sure at least 1 slide 49021 49022 if (options.container.children.length < 1) { 49023 if (supportConsoleWarn) { 49024 console.warn('No slides found in', options.container); 49025 } 49026 49027 return; 49028 } // update options 49029 49030 49031 var responsive = options.responsive, 49032 nested = options.nested, 49033 carousel = options.mode === 'carousel' ? true : false; 49034 49035 if (responsive) { 49036 // apply responsive[0] to options and remove it 49037 if (0 in responsive) { 49038 options = Object(_helpers_extend_js__WEBPACK_IMPORTED_MODULE_2__["extend"])(options, responsive[0]); 49039 delete responsive[0]; 49040 } 49041 49042 var responsiveTem = {}; 49043 49044 for (var key in responsive) { 49045 var val = responsive[key]; // update responsive 49046 // from: 300: 2 49047 // to: 49048 // 300: { 49049 // items: 2 49050 // } 49051 49052 val = typeof val === 'number' ? { 49053 items: val 49054 } : val; 49055 responsiveTem[key] = val; 49056 } 49057 49058 responsive = responsiveTem; 49059 responsiveTem = null; 49060 } // update options 49061 49062 49063 function updateOptions(obj) { 49064 for (var key in obj) { 49065 if (!carousel) { 49066 if (key === 'slideBy') { 49067 obj[key] = 'page'; 49068 } 49069 49070 if (key === 'edgePadding') { 49071 obj[key] = false; 49072 } 49073 49074 if (key === 'autoHeight') { 49075 obj[key] = false; 49076 } 49077 } // update responsive options 49078 49079 49080 if (key === 'responsive') { 49081 updateOptions(obj[key]); 49082 } 49083 } 49084 } 49085 49086 if (!carousel) { 49087 updateOptions(options); 49088 } // === define and set variables === 49089 49090 49091 if (!carousel) { 49092 options.axis = 'horizontal'; 49093 options.slideBy = 'page'; 49094 options.edgePadding = false; 49095 var animateIn = options.animateIn, 49096 animateOut = options.animateOut, 49097 animateDelay = options.animateDelay, 49098 animateNormal = options.animateNormal; 49099 } 49100 49101 var horizontal = options.axis === 'horizontal' ? true : false, 49102 outerWrapper = doc.createElement('div'), 49103 innerWrapper = doc.createElement('div'), 49104 middleWrapper, 49105 container = options.container, 49106 containerParent = container.parentNode, 49107 containerHTML = container.outerHTML, 49108 slideItems = container.children, 49109 slideCount = slideItems.length, 49110 breakpointZone, 49111 windowWidth = getWindowWidth(), 49112 isOn = false; 49113 49114 if (responsive) { 49115 setBreakpointZone(); 49116 } 49117 49118 if (carousel) { 49119 container.className += ' tns-vpfix'; 49120 } // fixedWidth: viewport > rightBoundary > indexMax 49121 49122 49123 var autoWidth = options.autoWidth, 49124 fixedWidth = getOption('fixedWidth'), 49125 edgePadding = getOption('edgePadding'), 49126 gutter = getOption('gutter'), 49127 viewport = getViewportWidth(), 49128 center = getOption('center'), 49129 items = !autoWidth ? Math.floor(getOption('items')) : 1, 49130 slideBy = getOption('slideBy'), 49131 viewportMax = options.viewportMax || options.fixedWidthViewportWidth, 49132 arrowKeys = getOption('arrowKeys'), 49133 speed = getOption('speed'), 49134 rewind = options.rewind, 49135 loop = rewind ? false : options.loop, 49136 autoHeight = getOption('autoHeight'), 49137 controls = getOption('controls'), 49138 controlsText = getOption('controlsText'), 49139 nav = getOption('nav'), 49140 touch = getOption('touch'), 49141 mouseDrag = getOption('mouseDrag'), 49142 autoplay = getOption('autoplay'), 49143 autoplayTimeout = getOption('autoplayTimeout'), 49144 autoplayText = getOption('autoplayText'), 49145 autoplayHoverPause = getOption('autoplayHoverPause'), 49146 autoplayResetOnVisibility = getOption('autoplayResetOnVisibility'), 49147 sheet = Object(_helpers_createStyleSheet_js__WEBPACK_IMPORTED_MODULE_9__["createStyleSheet"])(null, getOption('nonce')), 49148 lazyload = options.lazyload, 49149 lazyloadSelector = options.lazyloadSelector, 49150 slidePositions, 49151 // collection of slide positions 49152 slideItemsOut = [], 49153 cloneCount = loop ? getCloneCountForLoop() : 0, 49154 slideCountNew = !carousel ? slideCount + cloneCount : slideCount + cloneCount * 2, 49155 hasRightDeadZone = (fixedWidth || autoWidth) && !loop ? true : false, 49156 rightBoundary = fixedWidth ? getRightBoundary() : null, 49157 updateIndexBeforeTransform = !carousel || !loop ? true : false, 49158 // transform 49159 transformAttr = horizontal ? 'left' : 'top', 49160 transformPrefix = '', 49161 transformPostfix = '', 49162 // index 49163 getIndexMax = function () { 49164 if (fixedWidth) { 49165 return function () { 49166 return center && !loop ? slideCount - 1 : Math.ceil(-rightBoundary / (fixedWidth + gutter)); 49167 }; 49168 } else if (autoWidth) { 49169 return function () { 49170 for (var i = 0; i < slideCountNew; i++) { 49171 if (slidePositions[i] >= -rightBoundary) { 49172 return i; 49173 } 49174 } 49175 }; 49176 } else { 49177 return function () { 49178 if (center && carousel && !loop) { 49179 return slideCount - 1; 49180 } else { 49181 return loop || carousel ? Math.max(0, slideCountNew - Math.ceil(items)) : slideCountNew - 1; 49182 } 49183 }; 49184 } 49185 }(), 49186 index = getStartIndex(getOption('startIndex')), 49187 indexCached = index, 49188 displayIndex = getCurrentSlide(), 49189 indexMin = 0, 49190 indexMax = !autoWidth ? getIndexMax() : null, 49191 // resize 49192 resizeTimer, 49193 preventActionWhenRunning = options.preventActionWhenRunning, 49194 swipeAngle = options.swipeAngle, 49195 moveDirectionExpected = swipeAngle ? '?' : true, 49196 running = false, 49197 onInit = options.onInit, 49198 events = new _helpers_events_js__WEBPACK_IMPORTED_MODULE_32__["Events"](), 49199 // id, class 49200 newContainerClasses = ' tns-slider tns-' + options.mode, 49201 slideId = container.id || Object(_helpers_getSlideId_js__WEBPACK_IMPORTED_MODULE_5__["getSlideId"])(), 49202 disable = getOption('disable'), 49203 disabled = false, 49204 freezable = options.freezable, 49205 freeze = freezable && !autoWidth ? getFreeze() : false, 49206 frozen = false, 49207 controlsEvents = { 49208 'click': onControlsClick, 49209 'keydown': onControlsKeydown 49210 }, 49211 navEvents = { 49212 'click': onNavClick, 49213 'keydown': onNavKeydown 49214 }, 49215 hoverEvents = { 49216 'mouseover': mouseoverPause, 49217 'mouseout': mouseoutRestart 49218 }, 49219 visibilityEvent = { 49220 'visibilitychange': onVisibilityChange 49221 }, 49222 docmentKeydownEvent = { 49223 'keydown': onDocumentKeydown 49224 }, 49225 touchEvents = { 49226 'touchstart': onPanStart, 49227 'touchmove': onPanMove, 49228 'touchend': onPanEnd, 49229 'touchcancel': onPanEnd 49230 }, 49231 dragEvents = { 49232 'mousedown': onPanStart, 49233 'mousemove': onPanMove, 49234 'mouseup': onPanEnd, 49235 'mouseleave': onPanEnd 49236 }, 49237 hasControls = hasOption('controls'), 49238 hasNav = hasOption('nav'), 49239 navAsThumbnails = autoWidth ? true : options.navAsThumbnails, 49240 hasAutoplay = hasOption('autoplay'), 49241 hasTouch = hasOption('touch'), 49242 hasMouseDrag = hasOption('mouseDrag'), 49243 slideActiveClass = 'tns-slide-active', 49244 slideClonedClass = 'tns-slide-cloned', 49245 imgCompleteClass = 'tns-complete', 49246 imgEvents = { 49247 'load': onImgLoaded, 49248 'error': onImgFailed 49249 }, 49250 imgsComplete, 49251 liveregionCurrent, 49252 preventScroll = options.preventScrollOnTouch === 'force' ? true : false; // controls 49253 49254 49255 if (hasControls) { 49256 var controlsContainer = options.controlsContainer, 49257 controlsContainerHTML = options.controlsContainer ? options.controlsContainer.outerHTML : '', 49258 prevButton = options.prevButton, 49259 nextButton = options.nextButton, 49260 prevButtonHTML = options.prevButton ? options.prevButton.outerHTML : '', 49261 nextButtonHTML = options.nextButton ? options.nextButton.outerHTML : '', 49262 prevIsButton, 49263 nextIsButton; 49264 } // nav 49265 49266 49267 if (hasNav) { 49268 var navContainer = options.navContainer, 49269 navContainerHTML = options.navContainer ? options.navContainer.outerHTML : '', 49270 navItems, 49271 pages = autoWidth ? slideCount : getPages(), 49272 pagesCached = 0, 49273 navClicked = -1, 49274 navCurrentIndex = getCurrentNavIndex(), 49275 navCurrentIndexCached = navCurrentIndex, 49276 navActiveClass = 'tns-nav-active', 49277 navStr = 'Carousel Page ', 49278 navStrCurrent = ' (Current Slide)'; 49279 } // autoplay 49280 49281 49282 if (hasAutoplay) { 49283 var autoplayDirection = options.autoplayDirection === 'forward' ? 1 : -1, 49284 autoplayButton = options.autoplayButton, 49285 autoplayButtonHTML = options.autoplayButton ? options.autoplayButton.outerHTML : '', 49286 autoplayHtmlStrings = ['<span class=\'tns-visually-hidden\'>', ' animation</span>'], 49287 autoplayTimer, 49288 animating, 49289 autoplayHoverPaused, 49290 autoplayUserPaused, 49291 autoplayVisibilityPaused; 49292 } 49293 49294 if (hasTouch || hasMouseDrag) { 49295 var initPosition = {}, 49296 lastPosition = {}, 49297 translateInit, 49298 disX, 49299 disY, 49300 panStart = false, 49301 rafIndex, 49302 getDist = horizontal ? function (a, b) { 49303 return a.x - b.x; 49304 } : function (a, b) { 49305 return a.y - b.y; 49306 }; 49307 } // disable slider when slidecount <= items 49308 49309 49310 if (!autoWidth) { 49311 resetVariblesWhenDisable(disable || freeze); 49312 } 49313 49314 if (TRANSFORM) { 49315 transformAttr = TRANSFORM; 49316 transformPrefix = 'translate'; 49317 49318 if (HAS3DTRANSFORMS) { 49319 transformPrefix += horizontal ? '3d(' : '3d(0px, '; 49320 transformPostfix = horizontal ? ', 0px, 0px)' : ', 0px)'; 49321 } else { 49322 transformPrefix += horizontal ? 'X(' : 'Y('; 49323 transformPostfix = ')'; 49324 } 49325 } 49326 49327 if (carousel) { 49328 container.className = container.className.replace('tns-vpfix', ''); 49329 } 49330 49331 initStructure(); 49332 initSheet(); 49333 initSliderTransform(); // === COMMON FUNCTIONS === // 49334 49335 function resetVariblesWhenDisable(condition) { 49336 if (condition) { 49337 controls = nav = touch = mouseDrag = arrowKeys = autoplay = autoplayHoverPause = autoplayResetOnVisibility = false; 49338 } 49339 } 49340 49341 function getCurrentSlide() { 49342 var tem = carousel ? index - cloneCount : index; 49343 49344 while (tem < 0) { 49345 tem += slideCount; 49346 } 49347 49348 return tem % slideCount + 1; 49349 } 49350 49351 function getStartIndex(ind) { 49352 ind = ind ? Math.max(0, Math.min(loop ? slideCount - 1 : slideCount - items, ind)) : 0; 49353 return carousel ? ind + cloneCount : ind; 49354 } 49355 49356 function getAbsIndex(i) { 49357 if (i == null) { 49358 i = index; 49359 } 49360 49361 if (carousel) { 49362 i -= cloneCount; 49363 } 49364 49365 while (i < 0) { 49366 i += slideCount; 49367 } 49368 49369 return Math.floor(i % slideCount); 49370 } 49371 49372 function getCurrentNavIndex() { 49373 var absIndex = getAbsIndex(), 49374 result; 49375 result = navAsThumbnails ? absIndex : fixedWidth || autoWidth ? Math.ceil((absIndex + 1) * pages / slideCount - 1) : Math.floor(absIndex / items); // set active nav to the last one when reaches the right edge 49376 49377 if (!loop && carousel && index === indexMax) { 49378 result = pages - 1; 49379 } 49380 49381 return result; 49382 } 49383 49384 function getItemsMax() { 49385 // fixedWidth or autoWidth while viewportMax is not available 49386 if (autoWidth || fixedWidth && !viewportMax) { 49387 return slideCount - 1; // most cases 49388 } else { 49389 var str = fixedWidth ? 'fixedWidth' : 'items', 49390 arr = []; 49391 49392 if (fixedWidth || options[str] < slideCount) { 49393 arr.push(options[str]); 49394 } 49395 49396 if (responsive) { 49397 for (var bp in responsive) { 49398 var tem = responsive[bp][str]; 49399 49400 if (tem && (fixedWidth || tem < slideCount)) { 49401 arr.push(tem); 49402 } 49403 } 49404 } 49405 49406 if (!arr.length) { 49407 arr.push(0); 49408 } 49409 49410 return Math.ceil(fixedWidth ? viewportMax / Math.min.apply(null, arr) : Math.max.apply(null, arr)); 49411 } 49412 } 49413 49414 function getCloneCountForLoop() { 49415 var itemsMax = getItemsMax(), 49416 result = carousel ? Math.ceil((itemsMax * 5 - slideCount) / 2) : itemsMax * 4 - slideCount; 49417 result = Math.max(itemsMax, result); 49418 return hasOption('edgePadding') ? result + 1 : result; 49419 } 49420 49421 function getWindowWidth() { 49422 return win.innerWidth || doc.documentElement.clientWidth || doc.body.clientWidth; 49423 } 49424 49425 function getInsertPosition(pos) { 49426 return pos === 'top' ? 'afterbegin' : 'beforeend'; 49427 } 49428 49429 function getClientWidth(el) { 49430 if (el == null) { 49431 return; 49432 } 49433 49434 var div = doc.createElement('div'), 49435 rect, 49436 width; 49437 el.appendChild(div); 49438 rect = div.getBoundingClientRect(); 49439 width = rect.right - rect.left; 49440 div.remove(); 49441 49442 if (width) { 49443 return width; 49444 } else if (el.parentNode.parentNode !== null) { 49445 getClientWidth(el.parentNode); 49446 } else { 49447 return; 49448 } 49449 } 49450 49451 function getViewportWidth() { 49452 var gap = edgePadding ? edgePadding * 2 - gutter : 0; 49453 return getClientWidth(containerParent) - gap; 49454 } 49455 49456 function hasOption(item) { 49457 if (options[item]) { 49458 return true; 49459 } else { 49460 if (responsive) { 49461 for (var bp in responsive) { 49462 if (responsive[bp][item]) { 49463 return true; 49464 } 49465 } 49466 } 49467 49468 return false; 49469 } 49470 } // get option: 49471 // fixed width: viewport, fixedWidth, gutter => items 49472 // others: window width => all variables 49473 // all: items => slideBy 49474 49475 49476 function getOption(item, ww) { 49477 if (ww == null) { 49478 ww = windowWidth; 49479 } 49480 49481 if (item === 'items' && fixedWidth) { 49482 return Math.floor((viewport + gutter) / (fixedWidth + gutter)) || 1; 49483 } else { 49484 var result = options[item]; 49485 49486 if (responsive) { 49487 for (var bp in responsive) { 49488 // bp: convert string to number 49489 if (ww >= parseInt(bp)) { 49490 if (item in responsive[bp]) { 49491 result = responsive[bp][item]; 49492 } 49493 } 49494 } 49495 } 49496 49497 if (item === 'slideBy' && result === 'page') { 49498 result = getOption('items'); 49499 } 49500 49501 if (!carousel && (item === 'slideBy' || item === 'items')) { 49502 result = Math.floor(result); 49503 } 49504 49505 return result; 49506 } 49507 } 49508 49509 function getSlideMarginLeft(i) { 49510 return CALC ? CALC + '(' + i * 100 + '% / ' + slideCountNew + ')' : i * 100 / slideCountNew + '%'; 49511 } 49512 49513 function getInnerWrapperStyles(edgePaddingTem, gutterTem, fixedWidthTem, speedTem, autoHeightBP) { 49514 var str = ''; 49515 49516 if (edgePaddingTem !== undefined) { 49517 var gap = edgePaddingTem; 49518 49519 if (gutterTem) { 49520 gap -= gutterTem; 49521 } 49522 49523 str = horizontal ? 'margin: 0 ' + gap + 'px 0 ' + edgePaddingTem + 'px;' : 'margin: ' + edgePaddingTem + 'px 0 ' + gap + 'px 0;'; 49524 } else if (gutterTem && !fixedWidthTem) { 49525 var gutterTemUnit = '-' + gutterTem + 'px', 49526 dir = horizontal ? gutterTemUnit + ' 0 0' : '0 ' + gutterTemUnit + ' 0'; 49527 str = 'margin: 0 ' + dir + ';'; 49528 } 49529 49530 if (!carousel && autoHeightBP && TRANSITIONDURATION && speedTem) { 49531 str += getTransitionDurationStyle(speedTem); 49532 } 49533 49534 return str; 49535 } 49536 49537 function getContainerWidth(fixedWidthTem, gutterTem, itemsTem) { 49538 if (fixedWidthTem) { 49539 return (fixedWidthTem + gutterTem) * slideCountNew + 'px'; 49540 } else { 49541 return CALC ? CALC + '(' + slideCountNew * 100 + '% / ' + itemsTem + ')' : slideCountNew * 100 / itemsTem + '%'; 49542 } 49543 } 49544 49545 function getSlideWidthStyle(fixedWidthTem, gutterTem, itemsTem) { 49546 var width; 49547 49548 if (fixedWidthTem) { 49549 width = fixedWidthTem + gutterTem + 'px'; 49550 } else { 49551 if (!carousel) { 49552 itemsTem = Math.floor(itemsTem); 49553 } 49554 49555 var dividend = carousel ? slideCountNew : itemsTem; 49556 width = CALC ? CALC + '(100% / ' + dividend + ')' : 100 / dividend + '%'; 49557 } 49558 49559 width = 'width:' + width; // inner slider: overwrite outer slider styles 49560 49561 return nested !== 'inner' ? width + ';' : width + ' !important;'; 49562 } 49563 49564 function getSlideGutterStyle(gutterTem) { 49565 var str = ''; // gutter maybe interger || 0 49566 // so can't use 'if (gutter)' 49567 49568 if (gutterTem !== false) { 49569 var prop = horizontal ? 'padding-' : 'margin-', 49570 dir = horizontal ? 'right' : 'bottom'; 49571 str = prop + dir + ': ' + gutterTem + 'px;'; 49572 } 49573 49574 return str; 49575 } 49576 49577 function getCSSPrefix(name, num) { 49578 var prefix = name.substring(0, name.length - num).toLowerCase(); 49579 49580 if (prefix) { 49581 prefix = '-' + prefix + '-'; 49582 } 49583 49584 return prefix; 49585 } 49586 49587 function getTransitionDurationStyle(speed) { 49588 return getCSSPrefix(TRANSITIONDURATION, 18) + 'transition-duration:' + speed / 1000 + 's;'; 49589 } 49590 49591 function getAnimationDurationStyle(speed) { 49592 return getCSSPrefix(ANIMATIONDURATION, 17) + 'animation-duration:' + speed / 1000 + 's;'; 49593 } 49594 49595 function initStructure() { 49596 var classOuter = 'tns-outer', 49597 classInner = 'tns-inner', 49598 hasGutter = hasOption('gutter'); 49599 outerWrapper.className = classOuter; 49600 innerWrapper.className = classInner; 49601 outerWrapper.id = slideId + '-ow'; 49602 innerWrapper.id = slideId + '-iw'; // set container properties 49603 49604 if (container.id === '') { 49605 container.id = slideId; 49606 } 49607 49608 newContainerClasses += PERCENTAGELAYOUT || autoWidth ? ' tns-subpixel' : ' tns-no-subpixel'; 49609 newContainerClasses += CALC ? ' tns-calc' : ' tns-no-calc'; 49610 49611 if (autoWidth) { 49612 newContainerClasses += ' tns-autowidth'; 49613 } 49614 49615 newContainerClasses += ' tns-' + options.axis; 49616 container.className += newContainerClasses; // add constrain layer for carousel 49617 49618 if (carousel) { 49619 middleWrapper = doc.createElement('div'); 49620 middleWrapper.id = slideId + '-mw'; 49621 middleWrapper.className = 'tns-ovh'; 49622 outerWrapper.appendChild(middleWrapper); 49623 middleWrapper.appendChild(innerWrapper); 49624 } else { 49625 outerWrapper.appendChild(innerWrapper); 49626 } 49627 49628 if (autoHeight) { 49629 var wp = middleWrapper ? middleWrapper : innerWrapper; 49630 wp.className += ' tns-ah'; 49631 } 49632 49633 containerParent.insertBefore(outerWrapper, container); 49634 innerWrapper.appendChild(container); // add id, class, aria attributes 49635 // before clone slides 49636 49637 Object(_helpers_forEach_js__WEBPACK_IMPORTED_MODULE_15__["forEach"])(slideItems, function (item, i) { 49638 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(item, 'tns-item'); 49639 49640 if (!item.id) { 49641 item.id = slideId + '-item' + i; 49642 } 49643 49644 if (!carousel && animateNormal) { 49645 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(item, animateNormal); 49646 } 49647 49648 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(item, { 49649 'aria-hidden': 'true', 49650 'tabindex': '-1' 49651 }); 49652 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(item.querySelectorAll('a, button, details, input, textarea, select'), { 49653 'aria-hidden': 'true', 49654 'tabindex': '-1' 49655 }); 49656 }); // ## clone slides 49657 // carousel: n + slides + n 49658 // gallery: slides + n 49659 49660 if (cloneCount) { 49661 var fragmentBefore = doc.createDocumentFragment(), 49662 fragmentAfter = doc.createDocumentFragment(); 49663 49664 for (var j = cloneCount; j--;) { 49665 var num = j % slideCount, 49666 cloneFirst = slideItems[num].cloneNode(true); 49667 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(cloneFirst, slideClonedClass); 49668 Object(_helpers_removeAttrs_js__WEBPACK_IMPORTED_MODULE_22__["removeAttrs"])(cloneFirst, 'id'); 49669 fragmentAfter.insertBefore(cloneFirst, fragmentAfter.firstChild); 49670 49671 if (carousel) { 49672 var cloneLast = slideItems[slideCount - 1 - num].cloneNode(true); 49673 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(cloneLast, slideClonedClass); 49674 Object(_helpers_removeAttrs_js__WEBPACK_IMPORTED_MODULE_22__["removeAttrs"])(cloneLast, 'id'); 49675 fragmentBefore.appendChild(cloneLast); 49676 } 49677 } 49678 49679 container.insertBefore(fragmentBefore, container.firstChild); 49680 container.appendChild(fragmentAfter); 49681 slideItems = container.children; 49682 } 49683 } 49684 49685 function initSliderTransform() { 49686 // ## images loaded/failed 49687 if (hasOption('autoHeight') || autoWidth || !horizontal) { 49688 var imgs = container.querySelectorAll('img'); // add img load event listener 49689 49690 Object(_helpers_forEach_js__WEBPACK_IMPORTED_MODULE_15__["forEach"])(imgs, function (img) { 49691 var src = img.src; 49692 49693 if (!lazyload) { 49694 // not data img 49695 if (src && src.indexOf('data:image') < 0) { 49696 img.src = ''; 49697 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(img, imgEvents); 49698 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(img, 'loading'); 49699 img.src = src; // data img 49700 } else { 49701 imgLoaded(img); 49702 } 49703 } 49704 }); // set imgsComplete 49705 49706 Object(_helpers_raf_js__WEBPACK_IMPORTED_MODULE_0__["raf"])(function () { 49707 imgsLoadedCheck(Object(_helpers_arrayFromNodeList_js__WEBPACK_IMPORTED_MODULE_23__["arrayFromNodeList"])(imgs), function () { 49708 imgsComplete = true; 49709 }); 49710 }); // reset imgs for auto height: check visible imgs only 49711 49712 if (hasOption('autoHeight')) { 49713 imgs = getImageArray(index, Math.min(index + items - 1, slideCountNew - 1)); 49714 } 49715 49716 lazyload ? initSliderTransformStyleCheck() : Object(_helpers_raf_js__WEBPACK_IMPORTED_MODULE_0__["raf"])(function () { 49717 imgsLoadedCheck(Object(_helpers_arrayFromNodeList_js__WEBPACK_IMPORTED_MODULE_23__["arrayFromNodeList"])(imgs), initSliderTransformStyleCheck); 49718 }); 49719 } else { 49720 // set container transform property 49721 if (carousel) { 49722 doContainerTransformSilent(); 49723 } // update slider tools and events 49724 49725 49726 initTools(); 49727 initEvents(); 49728 } 49729 } 49730 49731 function initSliderTransformStyleCheck() { 49732 if (autoWidth && slideCount > 1) { 49733 // check styles application 49734 var num = loop ? index : slideCount - 1; 49735 49736 (function stylesApplicationCheck() { 49737 var left = slideItems[num].getBoundingClientRect().left; 49738 var right = slideItems[num - 1].getBoundingClientRect().right; 49739 Math.abs(left - right) <= 1 ? initSliderTransformCore() : setTimeout(function () { 49740 stylesApplicationCheck(); 49741 }, 16); 49742 })(); 49743 } else { 49744 initSliderTransformCore(); 49745 } 49746 } 49747 49748 function initSliderTransformCore() { 49749 // run Fn()s which are rely on image loading 49750 if (!horizontal || autoWidth) { 49751 setSlidePositions(); 49752 49753 if (autoWidth) { 49754 rightBoundary = getRightBoundary(); 49755 49756 if (freezable) { 49757 freeze = getFreeze(); 49758 } 49759 49760 indexMax = getIndexMax(); // <= slidePositions, rightBoundary <= 49761 49762 resetVariblesWhenDisable(disable || freeze); 49763 } else { 49764 updateContentWrapperHeight(); 49765 } 49766 } // set container transform property 49767 49768 49769 if (carousel) { 49770 doContainerTransformSilent(); 49771 } // update slider tools and events 49772 49773 49774 initTools(); 49775 initEvents(); 49776 } 49777 49778 function initSheet() { 49779 // gallery: 49780 // set animation classes and left value for gallery slider 49781 if (!carousel) { 49782 for (var i = index, l = index + Math.min(slideCount, items); i < l; i++) { 49783 var item = slideItems[i]; 49784 item.style.left = (i - index) * 100 / items + '%'; 49785 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(item, animateIn); 49786 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(item, animateNormal); 49787 } 49788 } // #### LAYOUT 49789 // ## INLINE-BLOCK VS FLOAT 49790 // ## PercentageLayout: 49791 // slides: inline-block 49792 // remove blank space between slides by set font-size: 0 49793 // ## Non PercentageLayout: 49794 // slides: float 49795 // margin-right: -100% 49796 // margin-left: ~ 49797 // Resource: https://docs.google.com/spreadsheets/d/147up245wwTXeQYve3BRSAD4oVcvQmuGsFteJOeA5xNQ/edit?usp=sharing 49798 49799 49800 if (horizontal) { 49801 if (PERCENTAGELAYOUT || autoWidth) { 49802 Object(_helpers_addCSSRule_js__WEBPACK_IMPORTED_MODULE_10__["addCSSRule"])(sheet, '#' + slideId + ' > .tns-item', 'font-size:' + win.getComputedStyle(slideItems[0]).fontSize + ';', Object(_helpers_getCssRulesLength_js__WEBPACK_IMPORTED_MODULE_12__["getCssRulesLength"])(sheet)); 49803 Object(_helpers_addCSSRule_js__WEBPACK_IMPORTED_MODULE_10__["addCSSRule"])(sheet, '#' + slideId, 'font-size:0;', Object(_helpers_getCssRulesLength_js__WEBPACK_IMPORTED_MODULE_12__["getCssRulesLength"])(sheet)); 49804 } else if (carousel) { 49805 Object(_helpers_forEach_js__WEBPACK_IMPORTED_MODULE_15__["forEach"])(slideItems, function (slide, i) { 49806 slide.style.marginLeft = getSlideMarginLeft(i); 49807 }); 49808 } 49809 } // ## BASIC STYLES 49810 49811 49812 if (CSSMQ) { 49813 // middle wrapper style 49814 if (TRANSITIONDURATION) { 49815 var str = middleWrapper && options.autoHeight ? getTransitionDurationStyle(options.speed) : ''; 49816 Object(_helpers_addCSSRule_js__WEBPACK_IMPORTED_MODULE_10__["addCSSRule"])(sheet, '#' + slideId + '-mw', str, Object(_helpers_getCssRulesLength_js__WEBPACK_IMPORTED_MODULE_12__["getCssRulesLength"])(sheet)); 49817 } // inner wrapper styles 49818 49819 49820 str = getInnerWrapperStyles(options.edgePadding, options.gutter, options.fixedWidth, options.speed, options.autoHeight); 49821 Object(_helpers_addCSSRule_js__WEBPACK_IMPORTED_MODULE_10__["addCSSRule"])(sheet, '#' + slideId + '-iw', str, Object(_helpers_getCssRulesLength_js__WEBPACK_IMPORTED_MODULE_12__["getCssRulesLength"])(sheet)); // container styles 49822 49823 if (carousel) { 49824 str = horizontal && !autoWidth ? 'width:' + getContainerWidth(options.fixedWidth, options.gutter, options.items) + ';' : ''; 49825 49826 if (TRANSITIONDURATION) { 49827 str += getTransitionDurationStyle(speed); 49828 } 49829 49830 Object(_helpers_addCSSRule_js__WEBPACK_IMPORTED_MODULE_10__["addCSSRule"])(sheet, '#' + slideId, str, Object(_helpers_getCssRulesLength_js__WEBPACK_IMPORTED_MODULE_12__["getCssRulesLength"])(sheet)); 49831 } // slide styles 49832 49833 49834 str = horizontal && !autoWidth ? getSlideWidthStyle(options.fixedWidth, options.gutter, options.items) : ''; 49835 49836 if (options.gutter) { 49837 str += getSlideGutterStyle(options.gutter); 49838 } // set gallery items transition-duration 49839 49840 49841 if (!carousel) { 49842 if (TRANSITIONDURATION) { 49843 str += getTransitionDurationStyle(speed); 49844 } 49845 49846 if (ANIMATIONDURATION) { 49847 str += getAnimationDurationStyle(speed); 49848 } 49849 } 49850 49851 if (str) { 49852 Object(_helpers_addCSSRule_js__WEBPACK_IMPORTED_MODULE_10__["addCSSRule"])(sheet, '#' + slideId + ' > .tns-item', str, Object(_helpers_getCssRulesLength_js__WEBPACK_IMPORTED_MODULE_12__["getCssRulesLength"])(sheet)); 49853 } // non CSS mediaqueries: IE8 49854 // ## update inner wrapper, container, slides if needed 49855 // set inline styles for inner wrapper & container 49856 // insert stylesheet (one line) for slides only (since slides are many) 49857 49858 } else { 49859 // middle wrapper styles 49860 update_carousel_transition_duration(); // inner wrapper styles 49861 49862 innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, autoHeight); // container styles 49863 49864 if (carousel && horizontal && !autoWidth) { 49865 container.style.width = getContainerWidth(fixedWidth, gutter, items); 49866 } // slide styles 49867 49868 49869 var str = horizontal && !autoWidth ? getSlideWidthStyle(fixedWidth, gutter, items) : ''; 49870 49871 if (gutter) { 49872 str += getSlideGutterStyle(gutter); 49873 } // append to the last line 49874 49875 49876 if (str) { 49877 Object(_helpers_addCSSRule_js__WEBPACK_IMPORTED_MODULE_10__["addCSSRule"])(sheet, '#' + slideId + ' > .tns-item', str, Object(_helpers_getCssRulesLength_js__WEBPACK_IMPORTED_MODULE_12__["getCssRulesLength"])(sheet)); 49878 } 49879 } // ## MEDIAQUERIES 49880 49881 49882 if (responsive && CSSMQ) { 49883 for (var bp in responsive) { 49884 // bp: convert string to number 49885 bp = parseInt(bp); 49886 var opts = responsive[bp], 49887 str = '', 49888 middleWrapperStr = '', 49889 innerWrapperStr = '', 49890 containerStr = '', 49891 slideStr = '', 49892 itemsBP = !autoWidth ? getOption('items', bp) : null, 49893 fixedWidthBP = getOption('fixedWidth', bp), 49894 speedBP = getOption('speed', bp), 49895 edgePaddingBP = getOption('edgePadding', bp), 49896 autoHeightBP = getOption('autoHeight', bp), 49897 gutterBP = getOption('gutter', bp); // middle wrapper string 49898 49899 if (TRANSITIONDURATION && middleWrapper && getOption('autoHeight', bp) && 'speed' in opts) { 49900 middleWrapperStr = '#' + slideId + '-mw{' + getTransitionDurationStyle(speedBP) + '}'; 49901 } // inner wrapper string 49902 49903 49904 if ('edgePadding' in opts || 'gutter' in opts) { 49905 innerWrapperStr = '#' + slideId + '-iw{' + getInnerWrapperStyles(edgePaddingBP, gutterBP, fixedWidthBP, speedBP, autoHeightBP) + '}'; 49906 } // container string 49907 49908 49909 if (carousel && horizontal && !autoWidth && ('fixedWidth' in opts || 'items' in opts || fixedWidth && 'gutter' in opts)) { 49910 containerStr = 'width:' + getContainerWidth(fixedWidthBP, gutterBP, itemsBP) + ';'; 49911 } 49912 49913 if (TRANSITIONDURATION && 'speed' in opts) { 49914 containerStr += getTransitionDurationStyle(speedBP); 49915 } 49916 49917 if (containerStr) { 49918 containerStr = '#' + slideId + '{' + containerStr + '}'; 49919 } // slide string 49920 49921 49922 if ('fixedWidth' in opts || fixedWidth && 'gutter' in opts || !carousel && 'items' in opts) { 49923 slideStr += getSlideWidthStyle(fixedWidthBP, gutterBP, itemsBP); 49924 } 49925 49926 if ('gutter' in opts) { 49927 slideStr += getSlideGutterStyle(gutterBP); 49928 } // set gallery items transition-duration 49929 49930 49931 if (!carousel && 'speed' in opts) { 49932 if (TRANSITIONDURATION) { 49933 slideStr += getTransitionDurationStyle(speedBP); 49934 } 49935 49936 if (ANIMATIONDURATION) { 49937 slideStr += getAnimationDurationStyle(speedBP); 49938 } 49939 } 49940 49941 if (slideStr) { 49942 slideStr = '#' + slideId + ' > .tns-item{' + slideStr + '}'; 49943 } // add up 49944 49945 49946 str = middleWrapperStr + innerWrapperStr + containerStr + slideStr; 49947 49948 if (str) { 49949 sheet.insertRule('@media (min-width: ' + bp / 16 + 'em) {' + str + '}', sheet.cssRules.length); 49950 } 49951 } 49952 } 49953 } 49954 49955 function initTools() { 49956 // == slides == 49957 updateSlideStatus(); // == live region == 49958 49959 outerWrapper.insertAdjacentHTML('afterbegin', '<div class="tns-liveregion tns-visually-hidden" aria-live="polite" aria-atomic="true">slide <span class="current">' + getLiveRegionStr() + '</span> of ' + slideCount + '</div>'); 49960 liveregionCurrent = outerWrapper.querySelector('.tns-liveregion .current'); // == autoplayInit == 49961 49962 if (hasAutoplay) { 49963 var txt = autoplay ? 'stop' : 'start'; 49964 49965 if (autoplayButton) { 49966 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(autoplayButton, { 49967 'data-action': txt 49968 }); 49969 } else if (options.autoplayButtonOutput) { 49970 outerWrapper.insertAdjacentHTML(getInsertPosition(options.autoplayPosition), '<button type="button" data-action="' + txt + '">' + autoplayHtmlStrings[0] + txt + autoplayHtmlStrings[1] + autoplayText[0] + '</button>'); 49971 autoplayButton = outerWrapper.querySelector('[data-action]'); 49972 } // add event 49973 49974 49975 if (autoplayButton) { 49976 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(autoplayButton, { 49977 'click': toggleAutoplay 49978 }); 49979 } 49980 49981 if (autoplay) { 49982 startAutoplay(); 49983 49984 if (autoplayHoverPause) { 49985 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(container, hoverEvents); 49986 } 49987 49988 if (autoplayResetOnVisibility) { 49989 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(container, visibilityEvent); 49990 } 49991 } 49992 } // == navInit == 49993 49994 49995 if (hasNav) { 49996 var initIndex = !carousel ? 0 : cloneCount; // customized nav 49997 // will not hide the navs in case they're thumbnails 49998 49999 if (navContainer) { 50000 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(navContainer, { 50001 'aria-label': 'Carousel Pagination' 50002 }); 50003 navItems = navContainer.children; 50004 Object(_helpers_forEach_js__WEBPACK_IMPORTED_MODULE_15__["forEach"])(navItems, function (item, i) { 50005 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(item, { 50006 'data-nav': i, 50007 'tabindex': '-1', 50008 'aria-label': navStr + (i + 1), 50009 'aria-controls': slideId 50010 }); 50011 }); // generated nav 50012 } else { 50013 var navHtml = '', 50014 hiddenStr = navAsThumbnails ? '' : 'style="display:none"'; 50015 50016 for (var i = 0; i < slideCount; i++) { 50017 // hide nav items by default 50018 navHtml += '<button type="button" data-nav="' + i + '" tabindex="-1" aria-controls="' + slideId + '" ' + hiddenStr + ' aria-label="' + navStr + (i + 1) + '"></button>'; 50019 } 50020 50021 navHtml = '<div class="tns-nav" aria-label="Carousel Pagination">' + navHtml + '</div>'; 50022 outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition), navHtml); 50023 navContainer = outerWrapper.querySelector('.tns-nav'); 50024 navItems = navContainer.children; 50025 } 50026 50027 updateNavVisibility(); // add transition 50028 50029 if (TRANSITIONDURATION) { 50030 var prefix = TRANSITIONDURATION.substring(0, TRANSITIONDURATION.length - 18).toLowerCase(), 50031 str = 'transition: all ' + speed / 1000 + 's'; 50032 50033 if (prefix) { 50034 str = '-' + prefix + '-' + str; 50035 } 50036 50037 Object(_helpers_addCSSRule_js__WEBPACK_IMPORTED_MODULE_10__["addCSSRule"])(sheet, '[aria-controls^=' + slideId + '-item]', str, Object(_helpers_getCssRulesLength_js__WEBPACK_IMPORTED_MODULE_12__["getCssRulesLength"])(sheet)); 50038 } 50039 50040 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(navItems[navCurrentIndex], { 50041 'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent 50042 }); 50043 Object(_helpers_removeAttrs_js__WEBPACK_IMPORTED_MODULE_22__["removeAttrs"])(navItems[navCurrentIndex], 'tabindex'); 50044 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(navItems[navCurrentIndex], navActiveClass); // add events 50045 50046 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(navContainer, navEvents); 50047 } // == controlsInit == 50048 50049 50050 if (hasControls) { 50051 if (!controlsContainer && (!prevButton || !nextButton)) { 50052 outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition), '<div class="tns-controls" aria-label="Carousel Navigation" tabindex="0"><button type="button" data-controls="prev" tabindex="-1" aria-controls="' + slideId + '">' + controlsText[0] + '</button><button type="button" data-controls="next" tabindex="-1" aria-controls="' + slideId + '">' + controlsText[1] + '</button></div>'); 50053 controlsContainer = outerWrapper.querySelector('.tns-controls'); 50054 } 50055 50056 if (!prevButton || !nextButton) { 50057 prevButton = controlsContainer.children[0]; 50058 nextButton = controlsContainer.children[1]; 50059 } 50060 50061 if (options.controlsContainer) { 50062 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(controlsContainer, { 50063 'aria-label': 'Carousel Navigation', 50064 'tabindex': '0' 50065 }); 50066 } 50067 50068 if (options.controlsContainer || options.prevButton && options.nextButton) { 50069 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])([prevButton, nextButton], { 50070 'aria-controls': slideId, 50071 'tabindex': '-1' 50072 }); 50073 } 50074 50075 if (options.controlsContainer || options.prevButton && options.nextButton) { 50076 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(prevButton, { 50077 'data-controls': 'prev' 50078 }); 50079 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(nextButton, { 50080 'data-controls': 'next' 50081 }); 50082 } 50083 50084 prevIsButton = isButton(prevButton); 50085 nextIsButton = isButton(nextButton); 50086 updateControlsStatus(); // add events 50087 50088 if (controlsContainer) { 50089 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(controlsContainer, controlsEvents); 50090 } else { 50091 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(prevButton, controlsEvents); 50092 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(nextButton, controlsEvents); 50093 } 50094 } // hide tools if needed 50095 50096 50097 disableUI(); 50098 } 50099 50100 function initEvents() { 50101 // add events 50102 if (carousel && TRANSITIONEND) { 50103 var eve = {}; 50104 eve[TRANSITIONEND] = onTransitionEnd; 50105 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(container, eve); 50106 } 50107 50108 if (touch) { 50109 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(container, touchEvents, options.preventScrollOnTouch); 50110 } 50111 50112 if (mouseDrag) { 50113 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(container, dragEvents); 50114 } 50115 50116 if (arrowKeys) { 50117 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(doc, docmentKeydownEvent); 50118 } 50119 50120 if (nested === 'inner') { 50121 events.on('outerResized', function () { 50122 resizeTasks(); 50123 events.emit('innerLoaded', info()); 50124 }); 50125 } else if (responsive || fixedWidth || autoWidth || autoHeight || !horizontal) { 50126 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(win, { 50127 'resize': onResize 50128 }); 50129 } 50130 50131 if (autoHeight) { 50132 if (nested === 'outer') { 50133 events.on('innerLoaded', doAutoHeight); 50134 } else if (!disable) { 50135 doAutoHeight(); 50136 } 50137 } 50138 50139 doLazyLoad(); 50140 50141 if (disable) { 50142 disableSlider(); 50143 } else if (freeze) { 50144 freezeSlider(); 50145 } 50146 50147 events.on('indexChanged', additionalUpdates); 50148 50149 if (nested === 'inner') { 50150 events.emit('innerLoaded', info()); 50151 } 50152 50153 if (typeof onInit === 'function') { 50154 onInit(info()); 50155 } 50156 50157 isOn = true; 50158 } 50159 50160 function destroy() { 50161 // sheet 50162 sheet.disabled = true; 50163 50164 if (sheet.ownerNode) { 50165 sheet.ownerNode.remove(); 50166 } // remove win event listeners 50167 50168 50169 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(win, { 50170 'resize': onResize 50171 }); // arrowKeys, controls, nav 50172 50173 if (arrowKeys) { 50174 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(doc, docmentKeydownEvent); 50175 } 50176 50177 if (controlsContainer) { 50178 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(controlsContainer, controlsEvents); 50179 } 50180 50181 if (navContainer) { 50182 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(navContainer, navEvents); 50183 } // autoplay 50184 50185 50186 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(container, hoverEvents); 50187 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(container, visibilityEvent); 50188 50189 if (autoplayButton) { 50190 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(autoplayButton, { 50191 'click': toggleAutoplay 50192 }); 50193 } 50194 50195 if (autoplay) { 50196 clearInterval(autoplayTimer); 50197 } // container 50198 50199 50200 if (carousel && TRANSITIONEND) { 50201 var eve = {}; 50202 eve[TRANSITIONEND] = onTransitionEnd; 50203 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(container, eve); 50204 } 50205 50206 if (touch) { 50207 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(container, touchEvents); 50208 } 50209 50210 if (mouseDrag) { 50211 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(container, dragEvents); 50212 } // cache Object values in options && reset HTML 50213 50214 50215 var htmlList = [containerHTML, controlsContainerHTML, prevButtonHTML, nextButtonHTML, navContainerHTML, autoplayButtonHTML]; 50216 tnsList.forEach(function (item, i) { 50217 var el = item === 'container' ? outerWrapper : options[item]; 50218 50219 if (_typeof(el) === 'object' && el) { 50220 var prevEl = el.previousElementSibling ? el.previousElementSibling : false, 50221 parentEl = el.parentNode; 50222 el.outerHTML = htmlList[i]; 50223 options[item] = prevEl ? prevEl.nextElementSibling : parentEl.firstElementChild; 50224 } 50225 }); // reset variables 50226 50227 tnsList = animateIn = animateOut = animateDelay = animateNormal = horizontal = outerWrapper = innerWrapper = container = containerParent = containerHTML = slideItems = slideCount = breakpointZone = windowWidth = autoWidth = fixedWidth = edgePadding = gutter = viewport = items = slideBy = viewportMax = arrowKeys = speed = rewind = loop = autoHeight = sheet = lazyload = slidePositions = slideItemsOut = cloneCount = slideCountNew = hasRightDeadZone = rightBoundary = updateIndexBeforeTransform = transformAttr = transformPrefix = transformPostfix = getIndexMax = index = indexCached = indexMin = indexMax = resizeTimer = swipeAngle = moveDirectionExpected = running = onInit = events = newContainerClasses = slideId = disable = disabled = freezable = freeze = frozen = controlsEvents = navEvents = hoverEvents = visibilityEvent = docmentKeydownEvent = touchEvents = dragEvents = hasControls = hasNav = navAsThumbnails = hasAutoplay = hasTouch = hasMouseDrag = slideActiveClass = imgCompleteClass = imgEvents = imgsComplete = controls = controlsText = controlsContainer = controlsContainerHTML = prevButton = nextButton = prevIsButton = nextIsButton = nav = navContainer = navContainerHTML = navItems = pages = pagesCached = navClicked = navCurrentIndex = navCurrentIndexCached = navActiveClass = navStr = navStrCurrent = autoplay = autoplayTimeout = autoplayDirection = autoplayText = autoplayHoverPause = autoplayButton = autoplayButtonHTML = autoplayResetOnVisibility = autoplayHtmlStrings = autoplayTimer = animating = autoplayHoverPaused = autoplayUserPaused = autoplayVisibilityPaused = initPosition = lastPosition = translateInit = disX = disY = panStart = rafIndex = getDist = touch = mouseDrag = null; // check variables 50228 // [animateIn, animateOut, animateDelay, animateNormal, horizontal, outerWrapper, innerWrapper, container, containerParent, containerHTML, slideItems, slideCount, breakpointZone, windowWidth, autoWidth, fixedWidth, edgePadding, gutter, viewport, items, slideBy, viewportMax, arrowKeys, speed, rewind, loop, autoHeight, sheet, lazyload, slidePositions, slideItemsOut, cloneCount, slideCountNew, hasRightDeadZone, rightBoundary, updateIndexBeforeTransform, transformAttr, transformPrefix, transformPostfix, getIndexMax, index, indexCached, indexMin, indexMax, resizeTimer, swipeAngle, moveDirectionExpected, running, onInit, events, newContainerClasses, slideId, disable, disabled, freezable, freeze, frozen, controlsEvents, navEvents, hoverEvents, visibilityEvent, docmentKeydownEvent, touchEvents, dragEvents, hasControls, hasNav, navAsThumbnails, hasAutoplay, hasTouch, hasMouseDrag, slideActiveClass, imgCompleteClass, imgEvents, imgsComplete, controls, controlsText, controlsContainer, controlsContainerHTML, prevButton, nextButton, prevIsButton, nextIsButton, nav, navContainer, navContainerHTML, navItems, pages, pagesCached, navClicked, navCurrentIndex, navCurrentIndexCached, navActiveClass, navStr, navStrCurrent, autoplay, autoplayTimeout, autoplayDirection, autoplayText, autoplayHoverPause, autoplayButton, autoplayButtonHTML, autoplayResetOnVisibility, autoplayHtmlStrings, autoplayTimer, animating, autoplayHoverPaused, autoplayUserPaused, autoplayVisibilityPaused, initPosition, lastPosition, translateInit, disX, disY, panStart, rafIndex, getDist, touch, mouseDrag ].forEach(function(item) { if (item !== null) { console.log(item); } }); 50229 50230 for (var a in this) { 50231 if (a !== 'rebuild') { 50232 this[a] = null; 50233 } 50234 } 50235 50236 isOn = false; 50237 } // === ON RESIZE === 50238 // responsive || fixedWidth || autoWidth || !horizontal 50239 50240 50241 function onResize(e) { 50242 Object(_helpers_raf_js__WEBPACK_IMPORTED_MODULE_0__["raf"])(function () { 50243 resizeTasks(getEvent(e)); 50244 }); 50245 } 50246 50247 function resizeTasks(e) { 50248 if (!isOn) { 50249 return; 50250 } 50251 50252 if (nested === 'outer') { 50253 events.emit('outerResized', info(e)); 50254 } 50255 50256 windowWidth = getWindowWidth(); 50257 var bpChanged, 50258 breakpointZoneTem = breakpointZone, 50259 needContainerTransform = false; 50260 50261 if (responsive) { 50262 setBreakpointZone(); 50263 bpChanged = breakpointZoneTem !== breakpointZone; // if (hasRightDeadZone) { needContainerTransform = true; } // *? 50264 50265 if (bpChanged) { 50266 events.emit('newBreakpointStart', info(e)); 50267 } 50268 } 50269 50270 var indChanged, 50271 itemsChanged, 50272 itemsTem = items, 50273 disableTem = disable, 50274 freezeTem = freeze, 50275 arrowKeysTem = arrowKeys, 50276 controlsTem = controls, 50277 navTem = nav, 50278 touchTem = touch, 50279 mouseDragTem = mouseDrag, 50280 autoplayTem = autoplay, 50281 autoplayHoverPauseTem = autoplayHoverPause, 50282 autoplayResetOnVisibilityTem = autoplayResetOnVisibility, 50283 indexTem = index; 50284 50285 if (bpChanged) { 50286 var fixedWidthTem = fixedWidth, 50287 autoHeightTem = autoHeight, 50288 controlsTextTem = controlsText, 50289 centerTem = center, 50290 autoplayTextTem = autoplayText; 50291 50292 if (!CSSMQ) { 50293 var gutterTem = gutter, 50294 edgePaddingTem = edgePadding; 50295 } 50296 } // get option: 50297 // fixed width: viewport, fixedWidth, gutter => items 50298 // others: window width => all variables 50299 // all: items => slideBy 50300 50301 50302 arrowKeys = getOption('arrowKeys'); 50303 controls = getOption('controls'); 50304 nav = getOption('nav'); 50305 touch = getOption('touch'); 50306 center = getOption('center'); 50307 mouseDrag = getOption('mouseDrag'); 50308 autoplay = getOption('autoplay'); 50309 autoplayHoverPause = getOption('autoplayHoverPause'); 50310 autoplayResetOnVisibility = getOption('autoplayResetOnVisibility'); 50311 50312 if (bpChanged) { 50313 disable = getOption('disable'); 50314 fixedWidth = getOption('fixedWidth'); 50315 speed = getOption('speed'); 50316 autoHeight = getOption('autoHeight'); 50317 controlsText = getOption('controlsText'); 50318 autoplayText = getOption('autoplayText'); 50319 autoplayTimeout = getOption('autoplayTimeout'); 50320 50321 if (!CSSMQ) { 50322 edgePadding = getOption('edgePadding'); 50323 gutter = getOption('gutter'); 50324 } 50325 } // update options 50326 50327 50328 resetVariblesWhenDisable(disable); 50329 viewport = getViewportWidth(); // <= edgePadding, gutter 50330 50331 if ((!horizontal || autoWidth) && !disable) { 50332 setSlidePositions(); 50333 50334 if (!horizontal) { 50335 updateContentWrapperHeight(); // <= setSlidePositions 50336 50337 needContainerTransform = true; 50338 } 50339 } 50340 50341 if (fixedWidth || autoWidth) { 50342 rightBoundary = getRightBoundary(); // autoWidth: <= viewport, slidePositions, gutter 50343 // fixedWidth: <= viewport, fixedWidth, gutter 50344 50345 indexMax = getIndexMax(); // autoWidth: <= rightBoundary, slidePositions 50346 // fixedWidth: <= rightBoundary, fixedWidth, gutter 50347 } 50348 50349 if (bpChanged || fixedWidth) { 50350 items = getOption('items'); 50351 slideBy = getOption('slideBy'); 50352 itemsChanged = items !== itemsTem; 50353 50354 if (itemsChanged) { 50355 if (!fixedWidth && !autoWidth) { 50356 indexMax = getIndexMax(); 50357 } // <= items 50358 // check index before transform in case 50359 // slider reach the right edge then items become bigger 50360 50361 50362 updateIndex(); 50363 } 50364 } 50365 50366 if (bpChanged) { 50367 if (disable !== disableTem) { 50368 if (disable) { 50369 disableSlider(); 50370 } else { 50371 enableSlider(); // <= slidePositions, rightBoundary, indexMax 50372 } 50373 } 50374 } 50375 50376 if (freezable && (bpChanged || fixedWidth || autoWidth)) { 50377 freeze = getFreeze(); // <= autoWidth: slidePositions, gutter, viewport, rightBoundary 50378 // <= fixedWidth: fixedWidth, gutter, rightBoundary 50379 // <= others: items 50380 50381 if (freeze !== freezeTem) { 50382 if (freeze) { 50383 doContainerTransform(getContainerTransformValue(getStartIndex(0))); 50384 freezeSlider(); 50385 } else { 50386 unfreezeSlider(); 50387 needContainerTransform = true; 50388 } 50389 } 50390 } 50391 50392 resetVariblesWhenDisable(disable || freeze); // controls, nav, touch, mouseDrag, arrowKeys, autoplay, autoplayHoverPause, autoplayResetOnVisibility 50393 50394 if (!autoplay) { 50395 autoplayHoverPause = autoplayResetOnVisibility = false; 50396 } 50397 50398 if (arrowKeys !== arrowKeysTem) { 50399 arrowKeys ? Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(doc, docmentKeydownEvent) : Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(doc, docmentKeydownEvent); 50400 } 50401 50402 if (controls !== controlsTem) { 50403 if (controls) { 50404 if (controlsContainer) { 50405 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(controlsContainer); 50406 } else { 50407 if (prevButton) { 50408 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(prevButton); 50409 } 50410 50411 if (nextButton) { 50412 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(nextButton); 50413 } 50414 } 50415 } else { 50416 if (controlsContainer) { 50417 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(controlsContainer); 50418 } else { 50419 if (prevButton) { 50420 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(prevButton); 50421 } 50422 50423 if (nextButton) { 50424 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(nextButton); 50425 } 50426 } 50427 } 50428 } 50429 50430 if (nav !== navTem) { 50431 if (nav) { 50432 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(navContainer); 50433 updateNavVisibility(); 50434 } else { 50435 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(navContainer); 50436 } 50437 } 50438 50439 if (touch !== touchTem) { 50440 touch ? Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(container, touchEvents, options.preventScrollOnTouch) : Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(container, touchEvents); 50441 } 50442 50443 if (mouseDrag !== mouseDragTem) { 50444 mouseDrag ? Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(container, dragEvents) : Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(container, dragEvents); 50445 } 50446 50447 if (autoplay !== autoplayTem) { 50448 if (autoplay) { 50449 if (autoplayButton) { 50450 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(autoplayButton); 50451 } 50452 50453 if (!animating && !autoplayUserPaused) { 50454 startAutoplay(); 50455 } 50456 } else { 50457 if (autoplayButton) { 50458 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(autoplayButton); 50459 } 50460 50461 if (animating) { 50462 stopAutoplay(); 50463 } 50464 } 50465 } 50466 50467 if (autoplayHoverPause !== autoplayHoverPauseTem) { 50468 autoplayHoverPause ? Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(container, hoverEvents) : Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(container, hoverEvents); 50469 } 50470 50471 if (autoplayResetOnVisibility !== autoplayResetOnVisibilityTem) { 50472 autoplayResetOnVisibility ? Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(doc, visibilityEvent) : Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(doc, visibilityEvent); 50473 } 50474 50475 if (bpChanged) { 50476 if (fixedWidth !== fixedWidthTem || center !== centerTem) { 50477 needContainerTransform = true; 50478 } 50479 50480 if (autoHeight !== autoHeightTem) { 50481 if (!autoHeight) { 50482 innerWrapper.style.height = ''; 50483 } 50484 } 50485 50486 if (controls && controlsText !== controlsTextTem) { 50487 prevButton.innerHTML = controlsText[0]; 50488 nextButton.innerHTML = controlsText[1]; 50489 } 50490 50491 if (autoplayButton && autoplayText !== autoplayTextTem) { 50492 var i = autoplay ? 1 : 0, 50493 html = autoplayButton.innerHTML, 50494 len = html.length - autoplayTextTem[i].length; 50495 50496 if (html.substring(len) === autoplayTextTem[i]) { 50497 autoplayButton.innerHTML = html.substring(0, len) + autoplayText[i]; 50498 } 50499 } 50500 } else { 50501 if (center && (fixedWidth || autoWidth)) { 50502 needContainerTransform = true; 50503 } 50504 } 50505 50506 if (itemsChanged || fixedWidth && !autoWidth) { 50507 pages = getPages(); 50508 updateNavVisibility(); 50509 } 50510 50511 indChanged = index !== indexTem; 50512 50513 if (indChanged) { 50514 events.emit('indexChanged', info()); 50515 needContainerTransform = true; 50516 } else if (itemsChanged) { 50517 if (!indChanged) { 50518 additionalUpdates(); 50519 } 50520 } else if (fixedWidth || autoWidth) { 50521 doLazyLoad(); 50522 updateSlideStatus(); 50523 updateLiveRegion(); 50524 } 50525 50526 if (itemsChanged && !carousel) { 50527 updateGallerySlidePositions(); 50528 } 50529 50530 if (!disable && !freeze) { 50531 // non-mediaqueries: IE8 50532 if (bpChanged && !CSSMQ) { 50533 // middle wrapper styles 50534 // inner wrapper styles 50535 if (edgePadding !== edgePaddingTem || gutter !== gutterTem) { 50536 innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, speed, autoHeight); 50537 } 50538 50539 if (horizontal) { 50540 // container styles 50541 if (carousel) { 50542 container.style.width = getContainerWidth(fixedWidth, gutter, items); 50543 } // slide styles 50544 50545 50546 var str = getSlideWidthStyle(fixedWidth, gutter, items) + getSlideGutterStyle(gutter); // remove the last line and 50547 // add new styles 50548 50549 Object(_helpers_removeCSSRule_js__WEBPACK_IMPORTED_MODULE_11__["removeCSSRule"])(sheet, Object(_helpers_getCssRulesLength_js__WEBPACK_IMPORTED_MODULE_12__["getCssRulesLength"])(sheet) - 1); 50550 Object(_helpers_addCSSRule_js__WEBPACK_IMPORTED_MODULE_10__["addCSSRule"])(sheet, '#' + slideId + ' > .tns-item', str, Object(_helpers_getCssRulesLength_js__WEBPACK_IMPORTED_MODULE_12__["getCssRulesLength"])(sheet)); 50551 } 50552 } // auto height 50553 50554 50555 if (autoHeight) { 50556 doAutoHeight(); 50557 } 50558 50559 if (needContainerTransform) { 50560 doContainerTransformSilent(); 50561 indexCached = index; 50562 } 50563 } 50564 50565 if (bpChanged) { 50566 events.emit('newBreakpointEnd', info(e)); 50567 } 50568 } // === INITIALIZATION FUNCTIONS === // 50569 50570 50571 function getFreeze() { 50572 if (!fixedWidth && !autoWidth) { 50573 var a = center ? items - (items - 1) / 2 : items; 50574 return slideCount <= a; 50575 } 50576 50577 var width = fixedWidth ? (fixedWidth + gutter) * slideCount : slidePositions[slideCount], 50578 vp = edgePadding ? viewport + edgePadding * 2 : viewport + gutter; 50579 50580 if (center) { 50581 vp -= fixedWidth ? (viewport - fixedWidth) / 2 : (viewport - (slidePositions[index + 1] - slidePositions[index] - gutter)) / 2; 50582 } 50583 50584 return width <= vp; 50585 } 50586 50587 function setBreakpointZone() { 50588 breakpointZone = 0; 50589 50590 for (var bp in responsive) { 50591 bp = parseInt(bp); // convert string to number 50592 50593 if (windowWidth >= bp) { 50594 breakpointZone = bp; 50595 } 50596 } 50597 } // (slideBy, indexMin, indexMax) => index 50598 50599 50600 var updateIndex = function () { 50601 return loop ? carousel ? // loop + carousel 50602 function () { 50603 var leftEdge = indexMin, 50604 rightEdge = indexMax; 50605 leftEdge += slideBy; 50606 rightEdge -= slideBy; // adjust edges when has edge paddings 50607 // or fixed-width slider with extra space on the right side 50608 50609 if (edgePadding) { 50610 leftEdge += 1; 50611 rightEdge -= 1; 50612 } else if (fixedWidth) { 50613 if ((viewport + gutter) % (fixedWidth + gutter)) { 50614 rightEdge -= 1; 50615 } 50616 } 50617 50618 if (cloneCount) { 50619 if (index > rightEdge) { 50620 index -= slideCount; 50621 } else if (index < leftEdge) { 50622 index += slideCount; 50623 } 50624 } 50625 } : // loop + gallery 50626 function () { 50627 if (index > indexMax) { 50628 while (index >= indexMin + slideCount) { 50629 index -= slideCount; 50630 } 50631 } else if (index < indexMin) { 50632 while (index <= indexMax - slideCount) { 50633 index += slideCount; 50634 } 50635 } 50636 } : // non-loop 50637 function () { 50638 index = Math.max(indexMin, Math.min(indexMax, index)); 50639 }; 50640 }(); 50641 50642 function disableUI() { 50643 if (!autoplay && autoplayButton) { 50644 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(autoplayButton); 50645 } 50646 50647 if (!nav && navContainer) { 50648 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(navContainer); 50649 } 50650 50651 if (!controls) { 50652 if (controlsContainer) { 50653 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(controlsContainer); 50654 } else { 50655 if (prevButton) { 50656 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(prevButton); 50657 } 50658 50659 if (nextButton) { 50660 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(nextButton); 50661 } 50662 } 50663 } 50664 } 50665 50666 function enableUI() { 50667 if (autoplay && autoplayButton) { 50668 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(autoplayButton); 50669 } 50670 50671 if (nav && navContainer) { 50672 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(navContainer); 50673 } 50674 50675 if (controls) { 50676 if (controlsContainer) { 50677 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(controlsContainer); 50678 } else { 50679 if (prevButton) { 50680 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(prevButton); 50681 } 50682 50683 if (nextButton) { 50684 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(nextButton); 50685 } 50686 } 50687 } 50688 } 50689 50690 function freezeSlider() { 50691 if (frozen) { 50692 return; 50693 } // remove edge padding from inner wrapper 50694 50695 50696 if (edgePadding) { 50697 innerWrapper.style.margin = '0px'; 50698 } // add class tns-transparent to cloned slides 50699 50700 50701 if (cloneCount) { 50702 var str = 'tns-transparent'; 50703 50704 for (var i = cloneCount; i--;) { 50705 if (carousel) { 50706 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(slideItems[i], str); 50707 } 50708 50709 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(slideItems[slideCountNew - i - 1], str); 50710 } 50711 } // update tools 50712 50713 50714 disableUI(); 50715 frozen = true; 50716 } 50717 50718 function unfreezeSlider() { 50719 if (!frozen) { 50720 return; 50721 } // restore edge padding for inner wrapper 50722 // for mordern browsers 50723 50724 50725 if (edgePadding && CSSMQ) { 50726 innerWrapper.style.margin = ''; 50727 } // remove class tns-transparent to cloned slides 50728 50729 50730 if (cloneCount) { 50731 var str = 'tns-transparent'; 50732 50733 for (var i = cloneCount; i--;) { 50734 if (carousel) { 50735 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(slideItems[i], str); 50736 } 50737 50738 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(slideItems[slideCountNew - i - 1], str); 50739 } 50740 } // update tools 50741 50742 50743 enableUI(); 50744 frozen = false; 50745 } 50746 50747 function disableSlider() { 50748 if (disabled) { 50749 return; 50750 } 50751 50752 sheet.disabled = true; 50753 container.className = container.className.replace(newContainerClasses.substring(1), ''); 50754 Object(_helpers_removeAttrs_js__WEBPACK_IMPORTED_MODULE_22__["removeAttrs"])(container, ['style']); 50755 50756 if (loop) { 50757 for (var j = cloneCount; j--;) { 50758 if (carousel) { 50759 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(slideItems[j]); 50760 } 50761 50762 Object(_helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"])(slideItems[slideCountNew - j - 1]); 50763 } 50764 } // vertical slider 50765 50766 50767 if (!horizontal || !carousel) { 50768 Object(_helpers_removeAttrs_js__WEBPACK_IMPORTED_MODULE_22__["removeAttrs"])(innerWrapper, ['style']); 50769 } // gallery 50770 50771 50772 if (!carousel) { 50773 for (var i = index, l = index + slideCount; i < l; i++) { 50774 var item = slideItems[i]; 50775 Object(_helpers_removeAttrs_js__WEBPACK_IMPORTED_MODULE_22__["removeAttrs"])(item, ['style']); 50776 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(item, animateIn); 50777 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(item, animateNormal); 50778 } 50779 } // update tools 50780 50781 50782 disableUI(); 50783 disabled = true; 50784 } 50785 50786 function enableSlider() { 50787 if (!disabled) { 50788 return; 50789 } 50790 50791 sheet.disabled = false; 50792 container.className += newContainerClasses; 50793 doContainerTransformSilent(); 50794 50795 if (loop) { 50796 for (var j = cloneCount; j--;) { 50797 if (carousel) { 50798 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(slideItems[j]); 50799 } 50800 50801 Object(_helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"])(slideItems[slideCountNew - j - 1]); 50802 } 50803 } // gallery 50804 50805 50806 if (!carousel) { 50807 for (var i = index, l = index + slideCount; i < l; i++) { 50808 var item = slideItems[i], 50809 classN = i < index + items ? animateIn : animateNormal; 50810 item.style.left = (i - index) * 100 / items + '%'; 50811 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(item, classN); 50812 } 50813 } // update tools 50814 50815 50816 enableUI(); 50817 disabled = false; 50818 } 50819 50820 function updateLiveRegion() { 50821 var str = getLiveRegionStr(); 50822 50823 if (liveregionCurrent.innerHTML !== str) { 50824 liveregionCurrent.innerHTML = str; 50825 } 50826 } 50827 50828 function getLiveRegionStr() { 50829 var arr = getVisibleSlideRange(), 50830 start = arr[0] + 1, 50831 end = arr[1] + 1; 50832 return start === end ? start + '' : start + ' to ' + end; 50833 } 50834 50835 function getVisibleSlideRange(val) { 50836 if (val == null) { 50837 val = getContainerTransformValue(); 50838 } 50839 50840 var start = index, 50841 end, 50842 rangestart, 50843 rangeend; // get range start, range end for autoWidth and fixedWidth 50844 50845 if (center || edgePadding) { 50846 if (autoWidth || fixedWidth) { 50847 rangestart = -(parseFloat(val) + edgePadding); 50848 rangeend = rangestart + viewport + edgePadding * 2; 50849 } 50850 } else { 50851 if (autoWidth) { 50852 rangestart = slidePositions[index]; 50853 rangeend = rangestart + viewport; 50854 } 50855 } // get start, end 50856 // - check auto width 50857 50858 50859 if (autoWidth) { 50860 slidePositions.forEach(function (point, i) { 50861 if (i < slideCountNew) { 50862 if ((center || edgePadding) && point <= rangestart + 0.5) { 50863 start = i; 50864 } 50865 50866 if (rangeend - point >= 0.5) { 50867 end = i; 50868 } 50869 } 50870 }); // - check percentage width, fixed width 50871 } else { 50872 if (fixedWidth) { 50873 var cell = fixedWidth + gutter; 50874 50875 if (center || edgePadding) { 50876 start = Math.floor(rangestart / cell); 50877 end = Math.ceil(rangeend / cell - 1); 50878 } else { 50879 end = start + Math.ceil(viewport / cell) - 1; 50880 } 50881 } else { 50882 if (center || edgePadding) { 50883 var a = items - 1; 50884 50885 if (center) { 50886 start -= a / 2; 50887 end = index + a / 2; 50888 } else { 50889 end = index + a; 50890 } 50891 50892 if (edgePadding) { 50893 var b = edgePadding * items / viewport; 50894 start -= b; 50895 end += b; 50896 } 50897 50898 start = Math.floor(start); 50899 end = Math.ceil(end); 50900 } else { 50901 end = start + items - 1; 50902 } 50903 } 50904 50905 start = Math.max(start, 0); 50906 end = Math.min(end, slideCountNew - 1); 50907 } 50908 50909 return [start, end]; 50910 } 50911 50912 function doLazyLoad() { 50913 if (lazyload && !disable) { 50914 var arg = getVisibleSlideRange(); 50915 arg.push(lazyloadSelector); 50916 getImageArray.apply(null, arg).forEach(function (img) { 50917 if (!Object(_helpers_hasClass_js__WEBPACK_IMPORTED_MODULE_16__["hasClass"])(img, imgCompleteClass)) { 50918 // stop propagation transitionend event to container 50919 var eve = {}; 50920 50921 eve[TRANSITIONEND] = function (e) { 50922 e.stopPropagation(); 50923 }; 50924 50925 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(img, eve); 50926 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(img, imgEvents); // update src 50927 50928 img.src = Object(_helpers_getAttr_js__WEBPACK_IMPORTED_MODULE_20__["getAttr"])(img, 'data-src'); // update srcset 50929 50930 var srcset = Object(_helpers_getAttr_js__WEBPACK_IMPORTED_MODULE_20__["getAttr"])(img, 'data-srcset'); 50931 50932 if (srcset) { 50933 img.srcset = srcset; 50934 } 50935 50936 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(img, 'loading'); 50937 } 50938 }); 50939 } 50940 } 50941 50942 function onImgLoaded(e) { 50943 imgLoaded(getTarget(e)); 50944 } 50945 50946 function onImgFailed(e) { 50947 imgFailed(getTarget(e)); 50948 } 50949 50950 function imgLoaded(img) { 50951 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(img, 'loaded'); 50952 imgCompleted(img); 50953 } 50954 50955 function imgFailed(img) { 50956 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(img, 'failed'); 50957 imgCompleted(img); 50958 } 50959 50960 function imgCompleted(img) { 50961 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(img, imgCompleteClass); 50962 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(img, 'loading'); 50963 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(img, imgEvents); 50964 } 50965 50966 function getImageArray(start, end, imgSelector) { 50967 var imgs = []; 50968 50969 if (!imgSelector) { 50970 imgSelector = 'img'; 50971 } 50972 50973 while (start <= end) { 50974 Object(_helpers_forEach_js__WEBPACK_IMPORTED_MODULE_15__["forEach"])(slideItems[start].querySelectorAll(imgSelector), function (img) { 50975 imgs.push(img); 50976 }); 50977 start++; 50978 } 50979 50980 return imgs; 50981 } // check if all visible images are loaded 50982 // and update container height if it's done 50983 50984 50985 function doAutoHeight() { 50986 var imgs = getImageArray.apply(null, getVisibleSlideRange()); 50987 Object(_helpers_raf_js__WEBPACK_IMPORTED_MODULE_0__["raf"])(function () { 50988 imgsLoadedCheck(imgs, updateInnerWrapperHeight); 50989 }); 50990 } 50991 50992 function imgsLoadedCheck(imgs, cb) { 50993 // execute callback function if all images are complete 50994 if (imgsComplete) { 50995 return cb(); 50996 } // check image classes 50997 50998 50999 imgs.forEach(function (img, index) { 51000 if (!lazyload && img.complete) { 51001 imgCompleted(img); 51002 } // Check image.complete 51003 51004 51005 if (Object(_helpers_hasClass_js__WEBPACK_IMPORTED_MODULE_16__["hasClass"])(img, imgCompleteClass)) { 51006 imgs.splice(index, 1); 51007 } 51008 }); // execute callback function if selected images are all complete 51009 51010 if (!imgs.length) { 51011 return cb(); 51012 } // otherwise execute this functiona again 51013 51014 51015 Object(_helpers_raf_js__WEBPACK_IMPORTED_MODULE_0__["raf"])(function () { 51016 imgsLoadedCheck(imgs, cb); 51017 }); 51018 } 51019 51020 function additionalUpdates() { 51021 doLazyLoad(); 51022 updateSlideStatus(); 51023 updateLiveRegion(); 51024 updateControlsStatus(); 51025 updateNavStatus(); 51026 } 51027 51028 function update_carousel_transition_duration() { 51029 if (carousel && autoHeight) { 51030 middleWrapper.style[TRANSITIONDURATION] = speed / 1000 + 's'; 51031 } 51032 } 51033 51034 function getMaxSlideHeight(slideStart, slideRange) { 51035 var heights = []; 51036 51037 for (var i = slideStart, l = Math.min(slideStart + slideRange, slideCountNew); i < l; i++) { 51038 heights.push(slideItems[i].offsetHeight); 51039 } 51040 51041 return Math.max.apply(null, heights); 51042 } // update inner wrapper height 51043 // 1. get the max-height of the visible slides 51044 // 2. set transitionDuration to speed 51045 // 3. update inner wrapper height to max-height 51046 // 4. set transitionDuration to 0s after transition done 51047 51048 51049 function updateInnerWrapperHeight() { 51050 var maxHeight = autoHeight ? getMaxSlideHeight(index, items) : getMaxSlideHeight(cloneCount, slideCount), 51051 wp = middleWrapper ? middleWrapper : innerWrapper; 51052 51053 if (wp.style.height !== maxHeight) { 51054 wp.style.height = maxHeight + 'px'; 51055 } 51056 } // get the distance from the top edge of the first slide to each slide 51057 // (init) => slidePositions 51058 51059 51060 function setSlidePositions() { 51061 slidePositions = [0]; 51062 var attr = horizontal ? 'left' : 'top', 51063 attr2 = horizontal ? 'right' : 'bottom', 51064 base = slideItems[0].getBoundingClientRect()[attr]; 51065 Object(_helpers_forEach_js__WEBPACK_IMPORTED_MODULE_15__["forEach"])(slideItems, function (item, i) { 51066 // skip the first slide 51067 if (i) { 51068 slidePositions.push(item.getBoundingClientRect()[attr] - base); 51069 } // add the end edge 51070 51071 51072 if (i === slideCountNew - 1) { 51073 slidePositions.push(item.getBoundingClientRect()[attr2] - base); 51074 } 51075 }); 51076 } // update slide 51077 51078 51079 function updateSlideStatus() { 51080 var range = getVisibleSlideRange(), 51081 start = range[0], 51082 end = range[1]; 51083 Object(_helpers_forEach_js__WEBPACK_IMPORTED_MODULE_15__["forEach"])(slideItems, function (item, i) { 51084 // show slides 51085 if (i >= start && i <= end) { 51086 if (Object(_helpers_hasAttr_js__WEBPACK_IMPORTED_MODULE_19__["hasAttr"])(item, 'aria-hidden')) { 51087 Object(_helpers_removeAttrs_js__WEBPACK_IMPORTED_MODULE_22__["removeAttrs"])(item, ['aria-hidden', 'tabindex']); 51088 Object(_helpers_removeAttrs_js__WEBPACK_IMPORTED_MODULE_22__["removeAttrs"])(item.querySelectorAll('a, button, details, input, textarea, select'), ['aria-hidden', 'tabindex']); 51089 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(item, slideActiveClass); 51090 } // hide slides 51091 51092 } else { 51093 if (!Object(_helpers_hasAttr_js__WEBPACK_IMPORTED_MODULE_19__["hasAttr"])(item, 'aria-hidden')) { 51094 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(item, { 51095 'aria-hidden': 'true', 51096 'tabindex': '-1' 51097 }); 51098 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(item.querySelectorAll('a, button, details, input, textarea, select'), { 51099 'aria-hidden': 'true', 51100 'tabindex': '-1' 51101 }); 51102 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(item, slideActiveClass); 51103 } 51104 } 51105 }); 51106 } // gallery: update slide position 51107 51108 51109 function updateGallerySlidePositions() { 51110 var l = index + Math.min(slideCount, items); 51111 51112 for (var i = slideCountNew; i--;) { 51113 var item = slideItems[i]; 51114 51115 if (i >= index && i < l) { 51116 // add transitions to visible slides when adjusting their positions 51117 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(item, 'tns-moving'); 51118 item.style.left = (i - index) * 100 / items + '%'; 51119 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(item, animateIn); 51120 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(item, animateNormal); 51121 } else if (item.style.left) { 51122 item.style.left = ''; 51123 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(item, animateNormal); 51124 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(item, animateIn); 51125 } // remove outlet animation 51126 51127 51128 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(item, animateOut); 51129 } // removing '.tns-moving' 51130 51131 51132 setTimeout(function () { 51133 Object(_helpers_forEach_js__WEBPACK_IMPORTED_MODULE_15__["forEach"])(slideItems, function (el) { 51134 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(el, 'tns-moving'); 51135 }); 51136 }, 300); 51137 } // set tabindex on Nav 51138 51139 51140 function updateNavStatus() { 51141 // get current nav 51142 if (nav) { 51143 navCurrentIndex = navClicked >= 0 ? navClicked : getCurrentNavIndex(); 51144 navClicked = -1; 51145 51146 if (navCurrentIndex !== navCurrentIndexCached) { 51147 var navPrev = navItems[navCurrentIndexCached], 51148 navCurrent = navItems[navCurrentIndex]; 51149 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(navPrev, { 51150 'tabindex': '-1', 51151 'aria-label': navStr + (navCurrentIndexCached + 1) 51152 }); 51153 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(navPrev, navActiveClass); 51154 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(navCurrent, { 51155 'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent 51156 }); 51157 Object(_helpers_removeAttrs_js__WEBPACK_IMPORTED_MODULE_22__["removeAttrs"])(navCurrent, 'tabindex'); 51158 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(navCurrent, navActiveClass); 51159 navCurrentIndexCached = navCurrentIndex; 51160 } 51161 } 51162 } 51163 51164 function getLowerCaseNodeName(el) { 51165 return el.nodeName.toLowerCase(); 51166 } 51167 51168 function isButton(el) { 51169 return getLowerCaseNodeName(el) === 'button'; 51170 } 51171 51172 function isAriaDisabled(el) { 51173 return el.getAttribute('aria-disabled') === 'true'; 51174 } 51175 51176 function disEnableElement(isButton, el, val) { 51177 if (isButton) { 51178 el.disabled = val; 51179 } else { 51180 el.setAttribute('aria-disabled', val.toString()); 51181 } 51182 } // set 'disabled' to true on controls when reach the edges 51183 51184 51185 function updateControlsStatus() { 51186 if (!controls || rewind || loop) { 51187 return; 51188 } 51189 51190 var prevDisabled = prevIsButton ? prevButton.disabled : isAriaDisabled(prevButton), 51191 nextDisabled = nextIsButton ? nextButton.disabled : isAriaDisabled(nextButton), 51192 disablePrev = index <= indexMin ? true : false, 51193 disableNext = !rewind && index >= indexMax ? true : false; 51194 51195 if (disablePrev && !prevDisabled) { 51196 disEnableElement(prevIsButton, prevButton, true); 51197 } 51198 51199 if (!disablePrev && prevDisabled) { 51200 disEnableElement(prevIsButton, prevButton, false); 51201 } 51202 51203 if (disableNext && !nextDisabled) { 51204 disEnableElement(nextIsButton, nextButton, true); 51205 } 51206 51207 if (!disableNext && nextDisabled) { 51208 disEnableElement(nextIsButton, nextButton, false); 51209 } 51210 } // set duration 51211 51212 51213 function resetDuration(el, str) { 51214 if (TRANSITIONDURATION) { 51215 el.style[TRANSITIONDURATION] = str; 51216 } 51217 } 51218 51219 function getSliderWidth() { 51220 return fixedWidth ? (fixedWidth + gutter) * slideCountNew : slidePositions[slideCountNew]; 51221 } 51222 51223 function getCenterGap(num) { 51224 if (num == null) { 51225 num = index; 51226 } 51227 51228 var gap = edgePadding ? gutter : 0; 51229 return autoWidth ? (viewport - gap - (slidePositions[num + 1] - slidePositions[num] - gutter)) / 2 : fixedWidth ? (viewport - fixedWidth) / 2 : (items - 1) / 2; 51230 } 51231 51232 function getRightBoundary() { 51233 var gap = edgePadding ? gutter : 0, 51234 result = viewport + gap - getSliderWidth(); 51235 51236 if (center && !loop) { 51237 result = fixedWidth ? -(fixedWidth + gutter) * (slideCountNew - 1) - getCenterGap() : getCenterGap(slideCountNew - 1) - slidePositions[slideCountNew - 1]; 51238 } 51239 51240 if (result > 0) { 51241 result = 0; 51242 } 51243 51244 return result; 51245 } 51246 51247 function getContainerTransformValue(num) { 51248 if (num == null) { 51249 num = index; 51250 } 51251 51252 var val; 51253 51254 if (horizontal && !autoWidth) { 51255 if (fixedWidth) { 51256 val = -(fixedWidth + gutter) * num; 51257 51258 if (center) { 51259 val += getCenterGap(); 51260 } 51261 } else { 51262 var denominator = TRANSFORM ? slideCountNew : items; 51263 51264 if (center) { 51265 num -= getCenterGap(); 51266 } 51267 51268 val = -num * 100 / denominator; 51269 } 51270 } else { 51271 val = -slidePositions[num]; 51272 51273 if (center && autoWidth) { 51274 val += getCenterGap(); 51275 } 51276 } 51277 51278 if (hasRightDeadZone) { 51279 val = Math.max(val, rightBoundary); 51280 } 51281 51282 val += horizontal && !autoWidth && !fixedWidth ? '%' : 'px'; 51283 return val; 51284 } 51285 51286 function doContainerTransformSilent(val) { 51287 resetDuration(container, '0s'); 51288 doContainerTransform(val); 51289 } 51290 51291 function doContainerTransform(val) { 51292 if (val == null) { 51293 val = getContainerTransformValue(); 51294 } 51295 51296 container.style[transformAttr] = transformPrefix + val + transformPostfix; 51297 } 51298 51299 function animateSlide(number, classOut, classIn, isOut) { 51300 var l = number + items; 51301 51302 if (!loop) { 51303 l = Math.min(l, slideCountNew); 51304 } 51305 51306 for (var i = number; i < l; i++) { 51307 var item = slideItems[i]; // set item positions 51308 51309 if (!isOut) { 51310 item.style.left = (i - index) * 100 / items + '%'; 51311 } 51312 51313 if (animateDelay && TRANSITIONDELAY) { 51314 item.style[TRANSITIONDELAY] = item.style[ANIMATIONDELAY] = animateDelay * (i - number) / 1000 + 's'; 51315 } 51316 51317 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(item, classOut); 51318 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(item, classIn); 51319 51320 if (isOut) { 51321 slideItemsOut.push(item); 51322 } 51323 } 51324 } // make transfer after click/drag: 51325 // 1. change 'transform' property for mordern browsers 51326 // 2. change 'left' property for legacy browsers 51327 51328 51329 var transformCore = function () { 51330 return carousel ? function () { 51331 resetDuration(container, ''); 51332 51333 if (TRANSITIONDURATION || !speed) { 51334 // for morden browsers with non-zero duration or 51335 // zero duration for all browsers 51336 doContainerTransform(); // run fallback function manually 51337 // when duration is 0 / container is hidden 51338 51339 if (!speed || !Object(_helpers_isVisible_js__WEBPACK_IMPORTED_MODULE_26__["isVisible"])(container)) { 51340 onTransitionEnd(); 51341 } 51342 } else { 51343 // for old browser with non-zero duration 51344 Object(_helpers_jsTransform_js__WEBPACK_IMPORTED_MODULE_33__["jsTransform"])(container, transformAttr, transformPrefix, transformPostfix, getContainerTransformValue(), speed, onTransitionEnd); 51345 } 51346 51347 if (!horizontal) { 51348 updateContentWrapperHeight(); 51349 } 51350 } : function () { 51351 slideItemsOut = []; 51352 var eve = {}; 51353 eve[TRANSITIONEND] = eve[ANIMATIONEND] = onTransitionEnd; 51354 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(slideItems[indexCached], eve); 51355 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(slideItems[index], eve); 51356 animateSlide(indexCached, animateIn, animateOut, true); 51357 animateSlide(index, animateNormal, animateIn); // run fallback function manually 51358 // when transition or animation not supported / duration is 0 51359 51360 if (!TRANSITIONEND || !ANIMATIONEND || !speed || !Object(_helpers_isVisible_js__WEBPACK_IMPORTED_MODULE_26__["isVisible"])(container)) { 51361 onTransitionEnd(); 51362 } 51363 }; 51364 }(); 51365 51366 function render(e, sliderMoved) { 51367 if (updateIndexBeforeTransform) { 51368 updateIndex(); 51369 } // render when slider was moved (touch or drag) even though index may not change 51370 51371 51372 if (index !== indexCached || sliderMoved) { 51373 // events 51374 events.emit('indexChanged', info()); 51375 events.emit('transitionStart', info()); 51376 51377 if (autoHeight) { 51378 doAutoHeight(); 51379 } // pause autoplay when click or keydown from user 51380 51381 51382 if (animating && e && ['click', 'keydown'].indexOf(e.type) >= 0) { 51383 stopAutoplay(); 51384 } 51385 51386 running = true; 51387 transformCore(); 51388 } 51389 } 51390 /* 51391 * Transfer prefixed properties to the same format 51392 * CSS: -Webkit-Transform => webkittransform 51393 * JS: WebkitTransform => webkittransform 51394 * @param {string} str - property 51395 * 51396 */ 51397 51398 51399 function strTrans(str) { 51400 return str.toLowerCase().replace(/-/g, ''); 51401 } // AFTER TRANSFORM 51402 // Things need to be done after a transfer: 51403 // 1. check index 51404 // 2. add classes to visible slide 51405 // 3. disable controls buttons when reach the first/last slide in non-loop slider 51406 // 4. update nav status 51407 // 5. lazyload images 51408 // 6. update container height 51409 51410 51411 function onTransitionEnd(event) { 51412 // check running on gallery mode 51413 // make sure trantionend/animationend events run only once 51414 if (carousel || running) { 51415 events.emit('transitionEnd', info(event)); 51416 51417 if (!carousel && slideItemsOut.length > 0) { 51418 for (var i = 0; i < slideItemsOut.length; i++) { 51419 var item = slideItemsOut[i]; // set item positions 51420 51421 item.style.left = ''; 51422 51423 if (ANIMATIONDELAY && TRANSITIONDELAY) { 51424 item.style[ANIMATIONDELAY] = ''; 51425 item.style[TRANSITIONDELAY] = ''; 51426 } 51427 51428 Object(_helpers_removeClass_js__WEBPACK_IMPORTED_MODULE_18__["removeClass"])(item, animateOut); 51429 Object(_helpers_addClass_js__WEBPACK_IMPORTED_MODULE_17__["addClass"])(item, animateNormal); 51430 } 51431 } 51432 /* update slides, nav, controls after checking ... 51433 * => legacy browsers who don't support 'event' 51434 * have to check event first, otherwise event.target will cause an error 51435 * => or 'gallery' mode: 51436 * + event target is slide item 51437 * => or 'carousel' mode: 51438 * + event target is container, 51439 * + event.property is the same with transform attribute 51440 */ 51441 51442 51443 if (!event || !carousel && event.target.parentNode === container || event.target === container && strTrans(event.propertyName) === strTrans(transformAttr)) { 51444 if (!updateIndexBeforeTransform) { 51445 var indexTem = index; 51446 updateIndex(); 51447 51448 if (index !== indexTem) { 51449 events.emit('indexChanged', info()); 51450 doContainerTransformSilent(); 51451 } 51452 } 51453 51454 if (nested === 'inner') { 51455 events.emit('innerLoaded', info()); 51456 } 51457 51458 running = false; 51459 indexCached = index; 51460 } 51461 } 51462 } // # ACTIONS 51463 51464 51465 function goTo(targetIndex, e) { 51466 if (freeze) { 51467 return; 51468 } // prev slideBy 51469 51470 51471 if (targetIndex === 'prev') { 51472 onControlsClick(e, -1); // next slideBy 51473 } else if (targetIndex === 'next') { 51474 onControlsClick(e, 1); // go to exact slide 51475 } else { 51476 if (running) { 51477 if (preventActionWhenRunning) { 51478 return; 51479 } else { 51480 onTransitionEnd(); 51481 } 51482 } 51483 51484 var absIndex = getAbsIndex(), 51485 indexGap = 0; 51486 51487 if (targetIndex === 'first') { 51488 indexGap = -absIndex; 51489 } else if (targetIndex === 'last') { 51490 indexGap = carousel ? slideCount - items - absIndex : slideCount - 1 - absIndex; 51491 } else { 51492 if (typeof targetIndex !== 'number') { 51493 targetIndex = parseInt(targetIndex); 51494 } 51495 51496 if (!isNaN(targetIndex)) { 51497 // from directly called goTo function 51498 if (!e) { 51499 targetIndex = Math.max(0, Math.min(slideCount - 1, targetIndex)); 51500 } 51501 51502 indexGap = targetIndex - absIndex; 51503 } 51504 } // gallery: make sure new page won't overlap with current page 51505 51506 51507 if (!carousel && indexGap && Math.abs(indexGap) < items) { 51508 var factor = indexGap > 0 ? 1 : -1; 51509 indexGap += index + indexGap - slideCount >= indexMin ? slideCount * factor : slideCount * 2 * factor * -1; 51510 } 51511 51512 index += indexGap; // make sure index is in range 51513 51514 if (carousel && loop) { 51515 if (index < indexMin) { 51516 index += slideCount; 51517 } 51518 51519 if (index > indexMax) { 51520 index -= slideCount; 51521 } 51522 } // if index is changed, start rendering 51523 51524 51525 if (getAbsIndex(index) !== getAbsIndex(indexCached)) { 51526 render(e); 51527 } 51528 } 51529 } // on controls click 51530 51531 51532 function onControlsClick(e, dir) { 51533 if (running) { 51534 if (preventActionWhenRunning) { 51535 return; 51536 } else { 51537 onTransitionEnd(); 51538 } 51539 } 51540 51541 var passEventObject; 51542 51543 if (!dir) { 51544 e = getEvent(e); 51545 var target = getTarget(e); 51546 51547 while (target !== controlsContainer && [prevButton, nextButton].indexOf(target) < 0) { 51548 target = target.parentNode; 51549 } 51550 51551 var targetIn = [prevButton, nextButton].indexOf(target); 51552 51553 if (targetIn >= 0) { 51554 passEventObject = true; 51555 dir = targetIn === 0 ? -1 : 1; 51556 } 51557 } 51558 51559 if (rewind) { 51560 if (index === indexMin && dir === -1) { 51561 goTo('last', e); 51562 return; 51563 } else if (index === indexMax && dir === 1) { 51564 goTo('first', e); 51565 return; 51566 } 51567 } 51568 51569 if (dir) { 51570 index += slideBy * dir; 51571 51572 if (autoWidth) { 51573 index = Math.floor(index); 51574 } // pass e when click control buttons or keydown 51575 51576 51577 render(passEventObject || e && e.type === 'keydown' ? e : null); 51578 } 51579 } // on nav click 51580 51581 51582 function onNavClick(e) { 51583 if (running) { 51584 if (preventActionWhenRunning) { 51585 return; 51586 } else { 51587 onTransitionEnd(); 51588 } 51589 } 51590 51591 e = getEvent(e); 51592 var target = getTarget(e), 51593 navIndex; // find the clicked nav item 51594 51595 while (target !== navContainer && !Object(_helpers_hasAttr_js__WEBPACK_IMPORTED_MODULE_19__["hasAttr"])(target, 'data-nav')) { 51596 target = target.parentNode; 51597 } 51598 51599 if (Object(_helpers_hasAttr_js__WEBPACK_IMPORTED_MODULE_19__["hasAttr"])(target, 'data-nav')) { 51600 var navIndex = navClicked = Number(Object(_helpers_getAttr_js__WEBPACK_IMPORTED_MODULE_20__["getAttr"])(target, 'data-nav')), 51601 targetIndexBase = fixedWidth || autoWidth ? navIndex * slideCount / pages : navIndex * items, 51602 targetIndex = navAsThumbnails ? navIndex : Math.min(Math.ceil(targetIndexBase), slideCount - 1); 51603 goTo(targetIndex, e); 51604 51605 if (navCurrentIndex === navIndex) { 51606 if (animating) { 51607 stopAutoplay(); 51608 } 51609 51610 navClicked = -1; // reset navClicked 51611 } 51612 } 51613 } // autoplay functions 51614 51615 51616 function setAutoplayTimer() { 51617 autoplayTimer = setInterval(function () { 51618 onControlsClick(null, autoplayDirection); 51619 }, autoplayTimeout); 51620 animating = true; 51621 } 51622 51623 function stopAutoplayTimer() { 51624 clearInterval(autoplayTimer); 51625 animating = false; 51626 } 51627 51628 function updateAutoplayButton(action, txt) { 51629 Object(_helpers_setAttrs_js__WEBPACK_IMPORTED_MODULE_21__["setAttrs"])(autoplayButton, { 51630 'data-action': action 51631 }); 51632 autoplayButton.innerHTML = autoplayHtmlStrings[0] + action + autoplayHtmlStrings[1] + txt; 51633 } 51634 51635 function startAutoplay() { 51636 setAutoplayTimer(); 51637 51638 if (autoplayButton) { 51639 updateAutoplayButton('stop', autoplayText[1]); 51640 } 51641 } 51642 51643 function stopAutoplay() { 51644 stopAutoplayTimer(); 51645 51646 if (autoplayButton) { 51647 updateAutoplayButton('start', autoplayText[0]); 51648 } 51649 } // programaitcally play/pause the slider 51650 51651 51652 function play() { 51653 if (autoplay && !animating) { 51654 startAutoplay(); 51655 autoplayUserPaused = false; 51656 } 51657 } 51658 51659 function pause() { 51660 if (animating) { 51661 stopAutoplay(); 51662 autoplayUserPaused = true; 51663 } 51664 } 51665 51666 function toggleAutoplay() { 51667 if (animating) { 51668 stopAutoplay(); 51669 autoplayUserPaused = true; 51670 } else { 51671 startAutoplay(); 51672 autoplayUserPaused = false; 51673 } 51674 } 51675 51676 function onVisibilityChange() { 51677 if (doc.hidden) { 51678 if (animating) { 51679 stopAutoplayTimer(); 51680 autoplayVisibilityPaused = true; 51681 } 51682 } else if (autoplayVisibilityPaused) { 51683 setAutoplayTimer(); 51684 autoplayVisibilityPaused = false; 51685 } 51686 } 51687 51688 function mouseoverPause() { 51689 if (animating) { 51690 stopAutoplayTimer(); 51691 autoplayHoverPaused = true; 51692 } 51693 } 51694 51695 function mouseoutRestart() { 51696 if (autoplayHoverPaused) { 51697 setAutoplayTimer(); 51698 autoplayHoverPaused = false; 51699 } 51700 } // keydown events on document 51701 51702 51703 function onDocumentKeydown(e) { 51704 e = getEvent(e); 51705 var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode); 51706 51707 if (keyIndex >= 0) { 51708 onControlsClick(e, keyIndex === 0 ? -1 : 1); 51709 } 51710 } // on key control 51711 51712 51713 function onControlsKeydown(e) { 51714 e = getEvent(e); 51715 var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode); 51716 51717 if (keyIndex >= 0) { 51718 if (keyIndex === 0) { 51719 if (!prevButton.disabled) { 51720 onControlsClick(e, -1); 51721 } 51722 } else if (!nextButton.disabled) { 51723 onControlsClick(e, 1); 51724 } 51725 } 51726 } // set focus 51727 51728 51729 function setFocus(el) { 51730 el.focus(); 51731 } // on key nav 51732 51733 51734 function onNavKeydown(e) { 51735 e = getEvent(e); 51736 var curElement = doc.activeElement; 51737 51738 if (!Object(_helpers_hasAttr_js__WEBPACK_IMPORTED_MODULE_19__["hasAttr"])(curElement, 'data-nav')) { 51739 return; 51740 } // var code = e.keyCode, 51741 51742 51743 var keyIndex = [KEYS.LEFT, KEYS.RIGHT, KEYS.ENTER, KEYS.SPACE].indexOf(e.keyCode), 51744 navIndex = Number(Object(_helpers_getAttr_js__WEBPACK_IMPORTED_MODULE_20__["getAttr"])(curElement, 'data-nav')); 51745 51746 if (keyIndex >= 0) { 51747 if (keyIndex === 0) { 51748 if (navIndex > 0) { 51749 setFocus(navItems[navIndex - 1]); 51750 } 51751 } else if (keyIndex === 1) { 51752 if (navIndex < pages - 1) { 51753 setFocus(navItems[navIndex + 1]); 51754 } 51755 } else { 51756 navClicked = navIndex; 51757 goTo(navIndex, e); 51758 } 51759 } 51760 } 51761 51762 function getEvent(e) { 51763 e = e || win.event; 51764 return isTouchEvent(e) ? e.changedTouches[0] : e; 51765 } 51766 51767 function getTarget(e) { 51768 return e.target || win.event.srcElement; 51769 } 51770 51771 function isTouchEvent(e) { 51772 return e.type.indexOf('touch') >= 0; 51773 } 51774 51775 function preventDefaultBehavior(e) { 51776 e.preventDefault ? e.preventDefault() : e.returnValue = false; 51777 } 51778 51779 function getMoveDirectionExpected() { 51780 return Object(_helpers_getTouchDirection_js__WEBPACK_IMPORTED_MODULE_14__["getTouchDirection"])(Object(_helpers_toDegree_js__WEBPACK_IMPORTED_MODULE_13__["toDegree"])(lastPosition.y - initPosition.y, lastPosition.x - initPosition.x), swipeAngle) === options.axis; 51781 } 51782 51783 function onPanStart(e) { 51784 if (running) { 51785 if (preventActionWhenRunning) { 51786 return; 51787 } else { 51788 onTransitionEnd(); 51789 } 51790 } 51791 51792 if (autoplay && animating) { 51793 stopAutoplayTimer(); 51794 } 51795 51796 panStart = true; 51797 51798 if (rafIndex) { 51799 Object(_helpers_caf_js__WEBPACK_IMPORTED_MODULE_1__["caf"])(rafIndex); 51800 rafIndex = null; 51801 } 51802 51803 var $ = getEvent(e); 51804 events.emit(isTouchEvent(e) ? 'touchStart' : 'dragStart', info(e)); 51805 51806 if (!isTouchEvent(e) && ['img', 'a'].indexOf(getLowerCaseNodeName(getTarget(e))) >= 0) { 51807 preventDefaultBehavior(e); 51808 } 51809 51810 lastPosition.x = initPosition.x = $.clientX; 51811 lastPosition.y = initPosition.y = $.clientY; 51812 51813 if (carousel) { 51814 translateInit = parseFloat(container.style[transformAttr].replace(transformPrefix, '')); 51815 resetDuration(container, '0s'); 51816 } 51817 } 51818 51819 function onPanMove(e) { 51820 if (panStart) { 51821 var $ = getEvent(e); 51822 lastPosition.x = $.clientX; 51823 lastPosition.y = $.clientY; 51824 51825 if (carousel) { 51826 if (!rafIndex) { 51827 rafIndex = Object(_helpers_raf_js__WEBPACK_IMPORTED_MODULE_0__["raf"])(function () { 51828 panUpdate(e); 51829 }); 51830 } 51831 } else { 51832 if (moveDirectionExpected === '?') { 51833 moveDirectionExpected = getMoveDirectionExpected(); 51834 } 51835 51836 if (moveDirectionExpected) { 51837 preventScroll = true; 51838 } 51839 } 51840 51841 if ((typeof e.cancelable !== 'boolean' || e.cancelable) && preventScroll) { 51842 e.preventDefault(); 51843 } 51844 } 51845 } 51846 51847 function panUpdate(e) { 51848 if (!moveDirectionExpected) { 51849 panStart = false; 51850 return; 51851 } 51852 51853 Object(_helpers_caf_js__WEBPACK_IMPORTED_MODULE_1__["caf"])(rafIndex); 51854 51855 if (panStart) { 51856 rafIndex = Object(_helpers_raf_js__WEBPACK_IMPORTED_MODULE_0__["raf"])(function () { 51857 panUpdate(e); 51858 }); 51859 } 51860 51861 if (moveDirectionExpected === '?') { 51862 moveDirectionExpected = getMoveDirectionExpected(); 51863 } 51864 51865 if (moveDirectionExpected) { 51866 if (!preventScroll && isTouchEvent(e)) { 51867 preventScroll = true; 51868 } 51869 51870 try { 51871 if (e.type) { 51872 events.emit(isTouchEvent(e) ? 'touchMove' : 'dragMove', info(e)); 51873 } 51874 } catch (err) {} 51875 51876 var x = translateInit, 51877 dist = getDist(lastPosition, initPosition); 51878 51879 if (!horizontal || fixedWidth || autoWidth) { 51880 x += dist; 51881 x += 'px'; 51882 } else { 51883 var percentageX = TRANSFORM ? dist * items * 100 / ((viewport + gutter) * slideCountNew) : dist * 100 / (viewport + gutter); 51884 x += percentageX; 51885 x += '%'; 51886 } 51887 51888 container.style[transformAttr] = transformPrefix + x + transformPostfix; 51889 } 51890 } 51891 51892 function onPanEnd(e) { 51893 if (panStart) { 51894 if (rafIndex) { 51895 Object(_helpers_caf_js__WEBPACK_IMPORTED_MODULE_1__["caf"])(rafIndex); 51896 rafIndex = null; 51897 } 51898 51899 if (carousel) { 51900 resetDuration(container, ''); 51901 } 51902 51903 panStart = false; 51904 var $ = getEvent(e); 51905 lastPosition.x = $.clientX; 51906 lastPosition.y = $.clientY; 51907 var dist = getDist(lastPosition, initPosition); 51908 51909 if (Math.abs(dist)) { 51910 // drag vs click 51911 if (!isTouchEvent(e)) { 51912 // prevent "click" 51913 var target = getTarget(e); 51914 Object(_helpers_addEvents_js__WEBPACK_IMPORTED_MODULE_30__["addEvents"])(target, { 51915 'click': function preventClick(e) { 51916 preventDefaultBehavior(e); 51917 Object(_helpers_removeEvents_js__WEBPACK_IMPORTED_MODULE_31__["removeEvents"])(target, { 51918 'click': preventClick 51919 }); 51920 } 51921 }); 51922 } 51923 51924 if (carousel) { 51925 rafIndex = Object(_helpers_raf_js__WEBPACK_IMPORTED_MODULE_0__["raf"])(function () { 51926 if (horizontal && !autoWidth) { 51927 var indexMoved = -dist * items / (viewport + gutter); 51928 indexMoved = dist > 0 ? Math.floor(indexMoved) : Math.ceil(indexMoved); 51929 index += indexMoved; 51930 } else { 51931 var moved = -(translateInit + dist); 51932 51933 if (moved <= 0) { 51934 index = indexMin; 51935 } else if (moved >= slidePositions[slideCountNew - 1]) { 51936 index = indexMax; 51937 } else { 51938 var i = 0; 51939 51940 while (i < slideCountNew && moved >= slidePositions[i]) { 51941 index = i; 51942 51943 if (moved > slidePositions[i] && dist < 0) { 51944 index += 1; 51945 } 51946 51947 i++; 51948 } 51949 } 51950 } 51951 51952 render(e, dist); 51953 events.emit(isTouchEvent(e) ? 'touchEnd' : 'dragEnd', info(e)); 51954 }); 51955 } else { 51956 if (moveDirectionExpected) { 51957 onControlsClick(e, dist > 0 ? -1 : 1); 51958 } 51959 } 51960 } 51961 } // reset 51962 51963 51964 if (options.preventScrollOnTouch === 'auto') { 51965 preventScroll = false; 51966 } 51967 51968 if (swipeAngle) { 51969 moveDirectionExpected = '?'; 51970 } 51971 51972 if (autoplay && !animating) { 51973 setAutoplayTimer(); 51974 } 51975 } // === RESIZE FUNCTIONS === // 51976 // (slidePositions, index, items) => vertical_conentWrapper.height 51977 51978 51979 function updateContentWrapperHeight() { 51980 var wp = middleWrapper ? middleWrapper : innerWrapper; 51981 wp.style.height = slidePositions[index + items] - slidePositions[index] + 'px'; 51982 } 51983 51984 function getPages() { 51985 var rough = fixedWidth ? (fixedWidth + gutter) * slideCount / viewport : slideCount / items; 51986 return Math.min(Math.ceil(rough), slideCount); 51987 } 51988 /* 51989 * 1. update visible nav items list 51990 * 2. add "hidden" attributes to previous visible nav items 51991 * 3. remove "hidden" attrubutes to new visible nav items 51992 */ 51993 51994 51995 function updateNavVisibility() { 51996 if (!nav || navAsThumbnails) { 51997 return; 51998 } 51999 52000 if (pages !== pagesCached) { 52001 var min = pagesCached, 52002 max = pages, 52003 fn = _helpers_showElement_js__WEBPACK_IMPORTED_MODULE_25__["showElement"]; 52004 52005 if (pagesCached > pages) { 52006 min = pages; 52007 max = pagesCached; 52008 fn = _helpers_hideElement_js__WEBPACK_IMPORTED_MODULE_24__["hideElement"]; 52009 } 52010 52011 while (min < max) { 52012 fn(navItems[min]); 52013 min++; 52014 } // cache pages 52015 52016 52017 pagesCached = pages; 52018 } 52019 } 52020 52021 function info(e) { 52022 return { 52023 container: container, 52024 slideItems: slideItems, 52025 navContainer: navContainer, 52026 navItems: navItems, 52027 controlsContainer: controlsContainer, 52028 hasControls: hasControls, 52029 prevButton: prevButton, 52030 nextButton: nextButton, 52031 items: items, 52032 slideBy: slideBy, 52033 cloneCount: cloneCount, 52034 slideCount: slideCount, 52035 slideCountNew: slideCountNew, 52036 index: index, 52037 indexCached: indexCached, 52038 displayIndex: getCurrentSlide(), 52039 navCurrentIndex: navCurrentIndex, 52040 navCurrentIndexCached: navCurrentIndexCached, 52041 pages: pages, 52042 pagesCached: pagesCached, 52043 sheet: sheet, 52044 isOn: isOn, 52045 event: e || {} 52046 }; 52047 } 52048 52049 return { 52050 version: '2.9.3', 52051 getInfo: info, 52052 events: events, 52053 goTo: goTo, 52054 play: play, 52055 pause: pause, 52056 isOn: isOn, 52057 updateSliderHeight: updateInnerWrapperHeight, 52058 refresh: initSliderTransform, 52059 destroy: destroy, 52060 rebuild: function rebuild() { 52061 return tns(Object(_helpers_extend_js__WEBPACK_IMPORTED_MODULE_2__["extend"])(options, optionsElements)); 52062 } 52063 }; 52064}; 52065 52066/***/ }), 52067
vendor: 707,751 bytes, lines 52068-70859
52068/***/ "../rvw_autobahn_core/node_modules/video.js/dist/video.min.js": 52069/*!********************************************************************!*\ 52070 !*** ../rvw_autobahn_core/node_modules/video.js/dist/video.min.js ***! 52071 \********************************************************************/ 52072/*! no static exports found */ 52073/***/ (function(module, exports, __webpack_require__) { 52074 52075/* WEBPACK VAR INJECTION */(function(Buffer) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 52076 52077/** 52078 * @license 52079 * Video.js 7.8.4 <http://videojs.com/> 52080 * Copyright Brightcove, Inc. <https://www.brightcove.com/> 52081 * Available under Apache License Version 2.0 52082 * <https://github.com/videojs/video.js/blob/master/LICENSE> 52083 * 52084 * Includes vtt.js <https://github.com/mozilla/vtt.js> 52085 * Available under Apache License Version 2.0 52086 * <https://github.com/mozilla/vtt.js/blob/master/LICENSE> 52087 */ 52088!function (e, t) { 52089 "object" == ( false ? undefined : _typeof(exports)) && "undefined" != typeof module ? module.exports = t(__webpack_require__(/*! global/window */ "../rvw_autobahn_core/node_modules/global/window.js"), __webpack_require__(/*! global/document */ "../rvw_autobahn_core/node_modules/global/document.js")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! global/window */ "../rvw_autobahn_core/node_modules/global/window.js"), __webpack_require__(/*! global/document */ "../rvw_autobahn_core/node_modules/global/document.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (t), 52090 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 52091 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 52092 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 52093}(this, function (y, h) { 52094 "use strict"; 52095 52096 y = y && Object.prototype.hasOwnProperty.call(y, "default") ? y["default"] : y, h = h && Object.prototype.hasOwnProperty.call(h, "default") ? h["default"] : h; 52097 52098 var d = "7.8.4", 52099 l = [], 52100 e = function e(o, u) { 52101 return function (e, t, i) { 52102 var n = u.levels[t], 52103 r = new RegExp("^(" + n + ")$"); 52104 52105 if ("log" !== e && i.unshift(e.toUpperCase() + ":"), i.unshift(o + ":"), l) { 52106 l.push([].concat(i)); 52107 var s = l.length - 1e3; 52108 l.splice(0, 0 < s ? s : 0); 52109 } 52110 52111 if (y.console) { 52112 var a = y.console[e]; 52113 a || "debug" !== e || (a = y.console.info || y.console.log), a && n && r.test(e) && a[Array.isArray(i) ? "apply" : "call"](y.console, i); 52114 } 52115 }; 52116 }; 52117 52118 var p = function t(i) { 52119 function n() { 52120 for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 52121 t[i] = arguments[i]; 52122 } 52123 52124 r("log", s, t); 52125 } 52126 52127 var r, 52128 s = "info"; 52129 return r = e(i, n), n.createLogger = function (e) { 52130 return t(i + ": " + e); 52131 }, n.levels = { 52132 all: "debug|log|warn|error", 52133 off: "", 52134 debug: "debug|log|warn|error", 52135 info: "log|warn|error", 52136 warn: "warn|error", 52137 error: "error", 52138 DEFAULT: s 52139 }, n.level = function (e) { 52140 if ("string" == typeof e) { 52141 if (!n.levels.hasOwnProperty(e)) throw new Error('"' + e + '" in not a valid log level'); 52142 s = e; 52143 } 52144 52145 return s; 52146 }, (n.history = function () { 52147 return l ? [].concat(l) : []; 52148 }).filter = function (t) { 52149 return (l || []).filter(function (e) { 52150 return new RegExp(".*" + t + ".*").test(e[0]); 52151 }); 52152 }, n.history.clear = function () { 52153 l && (l.length = 0); 52154 }, n.history.disable = function () { 52155 null !== l && (l.length = 0, l = null); 52156 }, n.history.enable = function () { 52157 null === l && (l = []); 52158 }, n.error = function () { 52159 for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 52160 t[i] = arguments[i]; 52161 } 52162 52163 return r("error", s, t); 52164 }, n.warn = function () { 52165 for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 52166 t[i] = arguments[i]; 52167 } 52168 52169 return r("warn", s, t); 52170 }, n.debug = function () { 52171 for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 52172 t[i] = arguments[i]; 52173 } 52174 52175 return r("debug", s, t); 52176 }, n; 52177 }("VIDEOJS"), 52178 f = p.createLogger; 52179 52180 function t(e, t) { 52181 return e(t = { 52182 exports: {} 52183 }, t.exports), t.exports; 52184 } 52185 52186 var r = t(function (e) { 52187 function t() { 52188 return e.exports = t = Object.assign || function (e) { 52189 for (var t = 1; t < arguments.length; t++) { 52190 var i = arguments[t]; 52191 52192 for (var n in i) { 52193 Object.prototype.hasOwnProperty.call(i, n) && (e[n] = i[n]); 52194 } 52195 } 52196 52197 return e; 52198 }, t.apply(this, arguments); 52199 } 52200 52201 e.exports = t; 52202 }), 52203 i = Object.prototype.toString, 52204 s = function s(e) { 52205 return o(e) ? Object.keys(e) : []; 52206 }; 52207 52208 function a(t, i) { 52209 s(t).forEach(function (e) { 52210 return i(t[e], e); 52211 }); 52212 } 52213 52214 function m(i) { 52215 for (var e = arguments.length, t = new Array(1 < e ? e - 1 : 0), n = 1; n < e; n++) { 52216 t[n - 1] = arguments[n]; 52217 } 52218 52219 return Object.assign ? r.apply(void 0, [i].concat(t)) : (t.forEach(function (e) { 52220 e && a(e, function (e, t) { 52221 i[t] = e; 52222 }); 52223 }), i); 52224 } 52225 52226 function o(e) { 52227 return !!e && "object" == _typeof(e); 52228 } 52229 52230 function u(e) { 52231 return o(e) && "[object Object]" === i.call(e) && e.constructor === Object; 52232 } 52233 52234 function n(e, t) { 52235 if (!e || !t) return ""; 52236 if ("function" != typeof y.getComputedStyle) return ""; 52237 var i = y.getComputedStyle(e); 52238 return i ? i.getPropertyValue(t) || i[t] : ""; 52239 } 52240 52241 function c(e) { 52242 return "string" == typeof e && Boolean(e.trim()); 52243 } 52244 52245 function g(e) { 52246 if (0 <= e.indexOf(" ")) throw new Error("class has illegal whitespace characters"); 52247 } 52248 52249 function v() { 52250 return h === y.document; 52251 } 52252 52253 function _(e) { 52254 return o(e) && 1 === e.nodeType; 52255 } 52256 52257 function b() { 52258 try { 52259 return y.parent !== y.self; 52260 } catch (e) { 52261 return !0; 52262 } 52263 } 52264 52265 function T(n) { 52266 return function (e, t) { 52267 if (!c(e)) return h[n](null); 52268 c(t) && (t = h.querySelector(t)); 52269 var i = _(t) ? t : h; 52270 return i[n] && i[n](e); 52271 }; 52272 } 52273 52274 function S(e, i, t, n) { 52275 void 0 === e && (e = "div"), void 0 === i && (i = {}), void 0 === t && (t = {}); 52276 var r = h.createElement(e); 52277 return Object.getOwnPropertyNames(i).forEach(function (e) { 52278 var t = i[e]; 52279 -1 !== e.indexOf("aria-") || "role" === e || "type" === e ? (p.warn("Setting attributes in the second argument of createEl()\nhas been deprecated. Use the third argument instead.\ncreateEl(type, properties, attributes). Attempting to set " + e + " to " + t + "."), r.setAttribute(e, t)) : "textContent" === e ? k(r, t) : r[e] !== t && (r[e] = t); 52280 }), Object.getOwnPropertyNames(t).forEach(function (e) { 52281 r.setAttribute(e, t[e]); 52282 }), n && V(r, n), r; 52283 } 52284 52285 function k(e, t) { 52286 return "undefined" == typeof e.textContent ? e.innerText = t : e.textContent = t, e; 52287 } 52288 52289 function C(e, t) { 52290 t.firstChild ? t.insertBefore(e, t.firstChild) : t.appendChild(e); 52291 } 52292 52293 function w(e, t) { 52294 return g(t), e.classList ? e.classList.contains(t) : function (e) { 52295 return new RegExp("(^|\\s)" + e + "($|\\s)"); 52296 }(t).test(e.className); 52297 } 52298 52299 function E(e, t) { 52300 return e.classList ? e.classList.add(t) : w(e, t) || (e.className = (e.className + " " + t).trim()), e; 52301 } 52302 52303 function x(e, t) { 52304 return e.classList ? e.classList.remove(t) : (g(t), e.className = e.className.split(/\s+/).filter(function (e) { 52305 return e !== t; 52306 }).join(" ")), e; 52307 } 52308 52309 function A(e, t, i) { 52310 var n = w(e, t); 52311 if ("function" == typeof i && (i = i(e, t)), "boolean" != typeof i && (i = !n), i !== n) return i ? E(e, t) : x(e, t), e; 52312 } 52313 52314 function I(i, n) { 52315 Object.getOwnPropertyNames(n).forEach(function (e) { 52316 var t = n[e]; 52317 null === t || "undefined" == typeof t || !1 === t ? i.removeAttribute(e) : i.setAttribute(e, !0 === t ? "" : t); 52318 }); 52319 } 52320 52321 function P(e) { 52322 var t = {}, 52323 i = ",autoplay,controls,playsinline,loop,muted,default,defaultMuted,"; 52324 if (e && e.attributes && 0 < e.attributes.length) for (var n = e.attributes, r = n.length - 1; 0 <= r; r--) { 52325 var s = n[r].name, 52326 a = n[r].value; 52327 "boolean" != typeof e[s] && -1 === i.indexOf("," + s + ",") || (a = null !== a), t[s] = a; 52328 } 52329 return t; 52330 } 52331 52332 function L(e, t) { 52333 return e.getAttribute(t); 52334 } 52335 52336 function O(e, t, i) { 52337 e.setAttribute(t, i); 52338 } 52339 52340 function D(e, t) { 52341 e.removeAttribute(t); 52342 } 52343 52344 function N() { 52345 h.body.focus(), h.onselectstart = function () { 52346 return !1; 52347 }; 52348 } 52349 52350 function R() { 52351 h.onselectstart = function () { 52352 return !0; 52353 }; 52354 } 52355 52356 function U(e) { 52357 if (e && e.getBoundingClientRect && e.parentNode) { 52358 var t = e.getBoundingClientRect(), 52359 i = {}; 52360 return ["bottom", "height", "left", "right", "top", "width"].forEach(function (e) { 52361 void 0 !== t[e] && (i[e] = t[e]); 52362 }), i.height || (i.height = parseFloat(n(e, "height"))), i.width || (i.width = parseFloat(n(e, "width"))), i; 52363 } 52364 } 52365 52366 function M(e) { 52367 var t; 52368 if (e.getBoundingClientRect && e.parentNode && (t = e.getBoundingClientRect()), !t) return { 52369 left: 0, 52370 top: 0 52371 }; 52372 var i = h.documentElement, 52373 n = h.body, 52374 r = i.clientLeft || n.clientLeft || 0, 52375 s = y.pageXOffset || n.scrollLeft, 52376 a = t.left + s - r, 52377 o = i.clientTop || n.clientTop || 0, 52378 u = y.pageYOffset || n.scrollTop, 52379 l = t.top + u - o; 52380 return { 52381 left: Math.round(a), 52382 top: Math.round(l) 52383 }; 52384 } 52385 52386 function B(e, t) { 52387 var i = {}, 52388 n = M(e), 52389 r = e.offsetWidth, 52390 s = e.offsetHeight, 52391 a = n.top, 52392 o = n.left, 52393 u = t.pageY, 52394 l = t.pageX; 52395 return t.changedTouches && (l = t.changedTouches[0].pageX, u = t.changedTouches[0].pageY), i.y = Math.max(0, Math.min(1, (a - u + s) / s)), i.x = Math.max(0, Math.min(1, (l - o) / r)), i; 52396 } 52397 52398 function j(e) { 52399 return o(e) && 3 === e.nodeType; 52400 } 52401 52402 function F(e) { 52403 for (; e.firstChild;) { 52404 e.removeChild(e.firstChild); 52405 } 52406 52407 return e; 52408 } 52409 52410 function H(e) { 52411 return "function" == typeof e && (e = e()), (Array.isArray(e) ? e : [e]).map(function (e) { 52412 return "function" == typeof e && (e = e()), _(e) || j(e) ? e : "string" == typeof e && /\S/.test(e) ? h.createTextNode(e) : void 0; 52413 }).filter(function (e) { 52414 return e; 52415 }); 52416 } 52417 52418 function V(t, e) { 52419 return H(e).forEach(function (e) { 52420 return t.appendChild(e); 52421 }), t; 52422 } 52423 52424 function q(e, t) { 52425 return V(F(e), t); 52426 } 52427 52428 function W(e) { 52429 return void 0 === e.button && void 0 === e.buttons || 0 === e.button && void 0 === e.buttons || "mouseup" === e.type && 0 === e.button && 0 === e.buttons || 0 === e.button && 1 === e.buttons; 52430 } 52431 52432 var z, 52433 G = T("querySelector"), 52434 X = T("querySelectorAll"), 52435 K = Object.freeze({ 52436 __proto__: null, 52437 isReal: v, 52438 isEl: _, 52439 isInFrame: b, 52440 createEl: S, 52441 textContent: k, 52442 prependTo: C, 52443 hasClass: w, 52444 addClass: E, 52445 removeClass: x, 52446 toggleClass: A, 52447 setAttributes: I, 52448 getAttributes: P, 52449 getAttribute: L, 52450 setAttribute: O, 52451 removeAttribute: D, 52452 blockTextSelection: N, 52453 unblockTextSelection: R, 52454 getBoundingClientRect: U, 52455 findPosition: M, 52456 getPointerPosition: B, 52457 isTextNode: j, 52458 emptyEl: F, 52459 normalizeContent: H, 52460 appendContent: V, 52461 insertContent: q, 52462 isSingleLeftClick: W, 52463 $: G, 52464 $$: X 52465 }), 52466 Y = !1, 52467 $ = function $() { 52468 if (v() && !1 !== z.options.autoSetup) { 52469 var e = Array.prototype.slice.call(h.getElementsByTagName("video")), 52470 t = Array.prototype.slice.call(h.getElementsByTagName("audio")), 52471 i = Array.prototype.slice.call(h.getElementsByTagName("video-js")), 52472 n = e.concat(t, i); 52473 if (n && 0 < n.length) for (var r = 0, s = n.length; r < s; r++) { 52474 var a = n[r]; 52475 52476 if (!a || !a.getAttribute) { 52477 Q(1); 52478 break; 52479 } 52480 52481 void 0 === a.player && null !== a.getAttribute("data-setup") && z(a); 52482 } else Y || Q(1); 52483 } 52484 }; 52485 52486 function Q(e, t) { 52487 t && (z = t), y.setTimeout($, e); 52488 } 52489 52490 function J() { 52491 Y = !0, y.removeEventListener("load", J); 52492 } 52493 52494 v() && ("complete" === h.readyState ? J() : y.addEventListener("load", J)); 52495 52496 function Z(e) { 52497 var t = h.createElement("style"); 52498 return t.className = e, t; 52499 } 52500 52501 function ee(e, t) { 52502 e.styleSheet ? e.styleSheet.cssText = t : e.textContent = t; 52503 } 52504 52505 var te, 52506 ie = 3; 52507 52508 function ne() { 52509 return ie++; 52510 } 52511 52512 y.WeakMap || (te = function () { 52513 function e() { 52514 this.vdata = "vdata" + Math.floor(y.performance && y.performance.now() || Date.now()), this.data = {}; 52515 } 52516 52517 var t = e.prototype; 52518 return t.set = function (e, t) { 52519 var i = e[this.vdata] || ne(); 52520 return e[this.vdata] || (e[this.vdata] = i), this.data[i] = t, this; 52521 }, t.get = function (e) { 52522 var t = e[this.vdata]; 52523 if (t) return this.data[t]; 52524 p("We have no data for this element", e); 52525 }, t.has = function (e) { 52526 return e[this.vdata] in this.data; 52527 }, t["delete"] = function (e) { 52528 var t = e[this.vdata]; 52529 t && (delete this.data[t], delete e[this.vdata]); 52530 }, e; 52531 }()); 52532 var re, 52533 se = y.WeakMap ? new WeakMap() : new te(); 52534 52535 function ae(e, t) { 52536 if (se.has(e)) { 52537 var i = se.get(e); 52538 0 === i.handlers[t].length && (delete i.handlers[t], e.removeEventListener ? e.removeEventListener(t, i.dispatcher, !1) : e.detachEvent && e.detachEvent("on" + t, i.dispatcher)), Object.getOwnPropertyNames(i.handlers).length <= 0 && (delete i.handlers, delete i.dispatcher, delete i.disabled), 0 === Object.getOwnPropertyNames(i).length && se["delete"](e); 52539 } 52540 } 52541 52542 function oe(t, i, e, n) { 52543 e.forEach(function (e) { 52544 t(i, e, n); 52545 }); 52546 } 52547 52548 function ue(e) { 52549 if (e.fixed_) return e; 52550 52551 function t() { 52552 return !0; 52553 } 52554 52555 function i() { 52556 return !1; 52557 } 52558 52559 if (!e || !e.isPropagationStopped) { 52560 var n = e || y.event; 52561 52562 for (var r in e = {}, n) { 52563 "layerX" !== r && "layerY" !== r && "keyLocation" !== r && "webkitMovementX" !== r && "webkitMovementY" !== r && ("returnValue" === r && n.preventDefault || (e[r] = n[r])); 52564 } 52565 52566 if (e.target || (e.target = e.srcElement || h), e.relatedTarget || (e.relatedTarget = e.fromElement === e.target ? e.toElement : e.fromElement), e.preventDefault = function () { 52567 n.preventDefault && n.preventDefault(), e.returnValue = !1, n.returnValue = !1, e.defaultPrevented = !0; 52568 }, e.defaultPrevented = !1, e.stopPropagation = function () { 52569 n.stopPropagation && n.stopPropagation(), e.cancelBubble = !0, n.cancelBubble = !0, e.isPropagationStopped = t; 52570 }, e.isPropagationStopped = i, e.stopImmediatePropagation = function () { 52571 n.stopImmediatePropagation && n.stopImmediatePropagation(), e.isImmediatePropagationStopped = t, e.stopPropagation(); 52572 }, e.isImmediatePropagationStopped = i, null !== e.clientX && void 0 !== e.clientX) { 52573 var s = h.documentElement, 52574 a = h.body; 52575 e.pageX = e.clientX + (s && s.scrollLeft || a && a.scrollLeft || 0) - (s && s.clientLeft || a && a.clientLeft || 0), e.pageY = e.clientY + (s && s.scrollTop || a && a.scrollTop || 0) - (s && s.clientTop || a && a.clientTop || 0); 52576 } 52577 52578 e.which = e.charCode || e.keyCode, null !== e.button && void 0 !== e.button && (e.button = 1 & e.button ? 0 : 4 & e.button ? 1 : 2 & e.button ? 2 : 0); 52579 } 52580 52581 return e.fixed_ = !0, e; 52582 } 52583 52584 var le = function le() { 52585 if ("boolean" != typeof re) { 52586 re = !1; 52587 52588 try { 52589 var e = Object.defineProperty({}, "passive", { 52590 get: function get() { 52591 re = !0; 52592 } 52593 }); 52594 y.addEventListener("test", null, e), y.removeEventListener("test", null, e); 52595 } catch (e) {} 52596 } 52597 52598 return re; 52599 }, 52600 ce = ["touchstart", "touchmove"]; 52601 52602 function he(a, e, t) { 52603 if (Array.isArray(e)) return oe(he, a, e, t); 52604 se.has(a) || se.set(a, {}); 52605 var o = se.get(a); 52606 if (o.handlers || (o.handlers = {}), o.handlers[e] || (o.handlers[e] = []), t.guid || (t.guid = ne()), o.handlers[e].push(t), o.dispatcher || (o.disabled = !1, o.dispatcher = function (e, t) { 52607 if (!o.disabled) { 52608 e = ue(e); 52609 var i = o.handlers[e.type]; 52610 if (i) for (var n = i.slice(0), r = 0, s = n.length; r < s && !e.isImmediatePropagationStopped(); r++) { 52611 try { 52612 n[r].call(a, e, t); 52613 } catch (e) { 52614 p.error(e); 52615 } 52616 } 52617 } 52618 }), 1 === o.handlers[e].length) if (a.addEventListener) { 52619 var i = !1; 52620 le() && -1 < ce.indexOf(e) && (i = { 52621 passive: !0 52622 }), a.addEventListener(e, o.dispatcher, i); 52623 } else a.attachEvent && a.attachEvent("on" + e, o.dispatcher); 52624 } 52625 52626 function de(e, t, i) { 52627 if (se.has(e)) { 52628 var n = se.get(e); 52629 52630 if (n.handlers) { 52631 if (Array.isArray(t)) return oe(de, e, t, i); 52632 52633 var r = function r(e, t) { 52634 n.handlers[t] = [], ae(e, t); 52635 }; 52636 52637 if (void 0 !== t) { 52638 var s = n.handlers[t]; 52639 if (s) if (i) { 52640 if (i.guid) for (var a = 0; a < s.length; a++) { 52641 s[a].guid === i.guid && s.splice(a--, 1); 52642 } 52643 ae(e, t); 52644 } else r(e, t); 52645 } else for (var o in n.handlers) { 52646 Object.prototype.hasOwnProperty.call(n.handlers || {}, o) && r(e, o); 52647 } 52648 } 52649 } 52650 } 52651 52652 function pe(e, t, i) { 52653 var n = se.has(e) ? se.get(e) : {}, 52654 r = e.parentNode || e.ownerDocument; 52655 if ("string" == typeof t ? t = { 52656 type: t, 52657 target: e 52658 } : t.target || (t.target = e), t = ue(t), n.dispatcher && n.dispatcher.call(e, t, i), r && !t.isPropagationStopped() && !0 === t.bubbles) pe.call(null, r, t, i);else if (!r && !t.defaultPrevented && t.target && t.target[t.type]) { 52659 se.has(t.target) || se.set(t.target, {}); 52660 var s = se.get(t.target); 52661 t.target[t.type] && (s.disabled = !0, "function" == typeof t.target[t.type] && t.target[t.type](), s.disabled = !1); 52662 } 52663 return !t.defaultPrevented; 52664 } 52665 52666 function fe(e, t, i) { 52667 if (Array.isArray(t)) return oe(fe, e, t, i); 52668 52669 function n() { 52670 de(e, t, n), i.apply(this, arguments); 52671 } 52672 52673 n.guid = i.guid = i.guid || ne(), he(e, t, n); 52674 } 52675 52676 function me(e, t, i) { 52677 function n() { 52678 de(e, t, n), i.apply(this, arguments); 52679 } 52680 52681 n.guid = i.guid = i.guid || ne(), he(e, t, n); 52682 } 52683 52684 function ge(e, t, i) { 52685 t.guid || (t.guid = ne()); 52686 var n = t.bind(e); 52687 return n.guid = i ? i + "_" + t.guid : t.guid, n; 52688 } 52689 52690 function ve(t, i) { 52691 var n = y.performance.now(); 52692 return function () { 52693 var e = y.performance.now(); 52694 i <= e - n && (t.apply(void 0, arguments), n = e); 52695 }; 52696 } 52697 52698 function ye() {} 52699 52700 var _e, 52701 be = Object.freeze({ 52702 __proto__: null, 52703 fixEvent: ue, 52704 on: he, 52705 off: de, 52706 trigger: pe, 52707 one: fe, 52708 any: me 52709 }); 52710 52711 ye.prototype.allowedEvents_ = {}, ye.prototype.addEventListener = ye.prototype.on = function (e, t) { 52712 var i = this.addEventListener; 52713 this.addEventListener = function () {}, he(this, e, t), this.addEventListener = i; 52714 }, ye.prototype.removeEventListener = ye.prototype.off = function (e, t) { 52715 de(this, e, t); 52716 }, ye.prototype.one = function (e, t) { 52717 var i = this.addEventListener; 52718 this.addEventListener = function () {}, fe(this, e, t), this.addEventListener = i; 52719 }, ye.prototype.any = function (e, t) { 52720 var i = this.addEventListener; 52721 this.addEventListener = function () {}, me(this, e, t), this.addEventListener = i; 52722 }, ye.prototype.dispatchEvent = ye.prototype.trigger = function (e) { 52723 var t = e.type || e; 52724 "string" == typeof e && (e = { 52725 type: t 52726 }), e = ue(e), this.allowedEvents_[t] && this["on" + t] && this["on" + t](e), pe(this, e); 52727 }, ye.prototype.queueTrigger = function (e) { 52728 var t = this; 52729 _e = _e || new Map(); 52730 52731 var i = e.type || e, 52732 n = _e.get(this); 52733 52734 n || (n = new Map(), _e.set(this, n)); 52735 var r = n.get(i); 52736 n["delete"](i), y.clearTimeout(r); 52737 var s = y.setTimeout(function () { 52738 0 === n.size && (n = null, _e["delete"](t)), t.trigger(e); 52739 }, 0); 52740 n.set(i, s); 52741 }; 52742 52743 function Te(e) { 52744 return "string" == typeof e && /\S/.test(e) || Array.isArray(e) && !!e.length; 52745 } 52746 52747 function Se(e) { 52748 if (!e.nodeName && !xe(e)) throw new Error("Invalid target; must be a DOM node or evented object."); 52749 } 52750 52751 function ke(e) { 52752 if (!Te(e)) throw new Error("Invalid event type; must be a non-empty string or array."); 52753 } 52754 52755 function Ce(e) { 52756 if ("function" != typeof e) throw new Error("Invalid listener; must be a function."); 52757 } 52758 52759 function we(e, t) { 52760 var i, 52761 n, 52762 r, 52763 s = t.length < 3 || t[0] === e || t[0] === e.eventBusEl_; 52764 return r = s ? (i = e.eventBusEl_, 3 <= t.length && t.shift(), n = t[0], t[1]) : (i = t[0], n = t[1], t[2]), Se(i), ke(n), Ce(r), { 52765 isTargetingSelf: s, 52766 target: i, 52767 type: n, 52768 listener: r = ge(e, r) 52769 }; 52770 } 52771 52772 function Ee(e, t, i, n) { 52773 Se(e), e.nodeName ? be[t](e, i, n) : e[t](i, n); 52774 } 52775 52776 var xe = function xe(t) { 52777 return t instanceof ye || !!t.eventBusEl_ && ["on", "one", "off", "trigger"].every(function (e) { 52778 return "function" == typeof t[e]; 52779 }); 52780 }, 52781 Ae = { 52782 on: function on() { 52783 for (var e = this, t = arguments.length, i = new Array(t), n = 0; n < t; n++) { 52784 i[n] = arguments[n]; 52785 } 52786 52787 var r = we(this, i), 52788 s = r.isTargetingSelf, 52789 a = r.target, 52790 o = r.type, 52791 u = r.listener; 52792 52793 if (Ee(a, "on", o, u), !s) { 52794 var l = function l() { 52795 return e.off(a, o, u); 52796 }; 52797 52798 l.guid = u.guid; 52799 52800 var c = function c() { 52801 return e.off("dispose", l); 52802 }; 52803 52804 c.guid = u.guid, Ee(this, "on", "dispose", l), Ee(a, "on", "dispose", c); 52805 } 52806 }, 52807 one: function one() { 52808 for (var r = this, e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 52809 t[i] = arguments[i]; 52810 } 52811 52812 var n = we(this, t), 52813 s = n.isTargetingSelf, 52814 a = n.target, 52815 o = n.type, 52816 u = n.listener; 52817 if (s) Ee(a, "one", o, u);else { 52818 var l = function e() { 52819 r.off(a, o, e); 52820 52821 for (var t = arguments.length, i = new Array(t), n = 0; n < t; n++) { 52822 i[n] = arguments[n]; 52823 } 52824 52825 u.apply(null, i); 52826 }; 52827 52828 l.guid = u.guid, Ee(a, "one", o, l); 52829 } 52830 }, 52831 any: function any() { 52832 for (var r = this, e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 52833 t[i] = arguments[i]; 52834 } 52835 52836 var n = we(this, t), 52837 s = n.isTargetingSelf, 52838 a = n.target, 52839 o = n.type, 52840 u = n.listener; 52841 if (s) Ee(a, "any", o, u);else { 52842 var l = function e() { 52843 r.off(a, o, e); 52844 52845 for (var t = arguments.length, i = new Array(t), n = 0; n < t; n++) { 52846 i[n] = arguments[n]; 52847 } 52848 52849 u.apply(null, i); 52850 }; 52851 52852 l.guid = u.guid, Ee(a, "any", o, l); 52853 } 52854 }, 52855 off: function off(e, t, i) { 52856 if (!e || Te(e)) de(this.eventBusEl_, e, t);else { 52857 var n = e, 52858 r = t; 52859 Se(n), ke(r), Ce(i), i = ge(this, i), this.off("dispose", i), n.nodeName ? (de(n, r, i), de(n, "dispose", i)) : xe(n) && (n.off(r, i), n.off("dispose", i)); 52860 } 52861 }, 52862 trigger: function trigger(e, t) { 52863 return pe(this.eventBusEl_, e, t); 52864 } 52865 }; 52866 52867 function Ie(e, t) { 52868 void 0 === t && (t = {}); 52869 var i = t.eventBusKey; 52870 52871 if (i) { 52872 if (!e[i].nodeName) throw new Error('The eventBusKey "' + i + '" does not refer to an element.'); 52873 e.eventBusEl_ = e[i]; 52874 } else e.eventBusEl_ = S("span", { 52875 className: "vjs-event-bus" 52876 }); 52877 52878 return m(e, Ae), e.eventedCallbacks && e.eventedCallbacks.forEach(function (e) { 52879 e(); 52880 }), e.on("dispose", function () { 52881 e.off(), y.setTimeout(function () { 52882 e.eventBusEl_ = null; 52883 }, 0); 52884 }), e; 52885 } 52886 52887 var Pe = { 52888 state: {}, 52889 setState: function setState(e) { 52890 var i, 52891 n = this; 52892 return "function" == typeof e && (e = e()), a(e, function (e, t) { 52893 n.state[t] !== e && ((i = i || {})[t] = { 52894 from: n.state[t], 52895 to: e 52896 }), n.state[t] = e; 52897 }), i && xe(this) && this.trigger({ 52898 changes: i, 52899 type: "statechanged" 52900 }), i; 52901 } 52902 }; 52903 52904 function Le(e, t) { 52905 return m(e, Pe), e.state = m({}, e.state, t), "function" == typeof e.handleStateChanged && xe(e) && e.on("statechanged", e.handleStateChanged), e; 52906 } 52907 52908 function Oe(e) { 52909 return "string" != typeof e ? e : e.replace(/./, function (e) { 52910 return e.toLowerCase(); 52911 }); 52912 } 52913 52914 function De(e) { 52915 return "string" != typeof e ? e : e.replace(/./, function (e) { 52916 return e.toUpperCase(); 52917 }); 52918 } 52919 52920 function Ne() { 52921 for (var i = {}, e = arguments.length, t = new Array(e), n = 0; n < e; n++) { 52922 t[n] = arguments[n]; 52923 } 52924 52925 return t.forEach(function (e) { 52926 e && a(e, function (e, t) { 52927 u(e) ? (u(i[t]) || (i[t] = {}), i[t] = Ne(i[t], e)) : i[t] = e; 52928 }); 52929 }), i; 52930 } 52931 52932 var Re = function () { 52933 function l(e, t, i) { 52934 if (!e && this.play ? this.player_ = e = this : this.player_ = e, this.isDisposed_ = !1, this.parentComponent_ = null, this.options_ = Ne({}, this.options_), t = this.options_ = Ne(this.options_, t), this.id_ = t.id || t.el && t.el.id, !this.id_) { 52935 var n = e && e.id && e.id() || "no_player"; 52936 this.id_ = n + "_component_" + ne(); 52937 } 52938 52939 var r; 52940 this.name_ = t.name || null, t.el ? this.el_ = t.el : !1 !== t.createEl && (this.el_ = this.createEl()), !1 !== t.evented && Ie(this, { 52941 eventBusKey: this.el_ ? "el_" : null 52942 }), Le(this, this.constructor.defaultState), this.children_ = [], this.childIndex_ = {}, this.childNameIndex_ = {}, y.Set || (r = function () { 52943 function e() { 52944 this.set_ = {}; 52945 } 52946 52947 var t = e.prototype; 52948 return t.has = function (e) { 52949 return e in this.set_; 52950 }, t["delete"] = function (e) { 52951 var t = this.has(e); 52952 return delete this.set_[e], t; 52953 }, t.add = function (e) { 52954 return this.set_[e] = 1, this; 52955 }, t.forEach = function (e, t) { 52956 for (var i in this.set_) { 52957 e.call(t, i, i, this); 52958 } 52959 }, e; 52960 }()), this.setTimeoutIds_ = y.Set ? new Set() : new r(), this.setIntervalIds_ = y.Set ? new Set() : new r(), this.rafIds_ = y.Set ? new Set() : new r(), (this.clearingTimersOnDispose_ = !1) !== t.initChildren && this.initChildren(), this.ready(i), !1 !== t.reportTouchActivity && this.enableTouchActivity(); 52961 } 52962 52963 var e = l.prototype; 52964 return e.dispose = function () { 52965 if (!this.isDisposed_) { 52966 if (this.trigger({ 52967 type: "dispose", 52968 bubbles: !1 52969 }), this.isDisposed_ = !0, this.children_) for (var e = this.children_.length - 1; 0 <= e; e--) { 52970 this.children_[e].dispose && this.children_[e].dispose(); 52971 } 52972 this.children_ = null, this.childIndex_ = null, this.childNameIndex_ = null, this.parentComponent_ = null, this.el_ && (this.el_.parentNode && this.el_.parentNode.removeChild(this.el_), se.has(this.el_) && se["delete"](this.el_), this.el_ = null), this.player_ = null; 52973 } 52974 }, e.isDisposed = function () { 52975 return Boolean(this.isDisposed_); 52976 }, e.player = function () { 52977 return this.player_; 52978 }, e.options = function (e) { 52979 return e && (this.options_ = Ne(this.options_, e)), this.options_; 52980 }, e.el = function () { 52981 return this.el_; 52982 }, e.createEl = function (e, t, i) { 52983 return S(e, t, i); 52984 }, e.localize = function (e, r, t) { 52985 void 0 === t && (t = e); 52986 var i = this.player_.language && this.player_.language(), 52987 n = this.player_.languages && this.player_.languages(), 52988 s = n && n[i], 52989 a = i && i.split("-")[0], 52990 o = n && n[a], 52991 u = t; 52992 return s && s[e] ? u = s[e] : o && o[e] && (u = o[e]), r && (u = u.replace(/\{(\d+)\}/g, function (e, t) { 52993 var i = r[t - 1], 52994 n = i; 52995 return "undefined" == typeof i && (n = e), n; 52996 })), u; 52997 }, e.contentEl = function () { 52998 return this.contentEl_ || this.el_; 52999 }, e.id = function () { 53000 return this.id_; 53001 }, e.name = function () { 53002 return this.name_; 53003 }, e.children = function () { 53004 return this.children_; 53005 }, e.getChildById = function (e) { 53006 return this.childIndex_[e]; 53007 }, e.getChild = function (e) { 53008 if (e) return this.childNameIndex_[e]; 53009 }, e.getDescendant = function () { 53010 for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 53011 t[i] = arguments[i]; 53012 } 53013 53014 t = t.reduce(function (e, t) { 53015 return e.concat(t); 53016 }, []); 53017 53018 for (var n = this, r = 0; r < t.length; r++) { 53019 if (!(n = n.getChild(t[r])) || !n.getChild) return; 53020 } 53021 53022 return n; 53023 }, e.addChild = function (e, t, i) { 53024 var n, r; 53025 53026 if (void 0 === t && (t = {}), void 0 === i && (i = this.children_.length), "string" == typeof e) { 53027 r = De(e); 53028 var s = t.componentClass || r; 53029 t.name = r; 53030 var a = l.getComponent(s); 53031 if (!a) throw new Error("Component " + s + " does not exist"); 53032 if ("function" != typeof a) return null; 53033 n = new a(this.player_ || this, t); 53034 } else n = e; 53035 53036 if (n.parentComponent_ && n.parentComponent_.removeChild(n), this.children_.splice(i, 0, n), n.parentComponent_ = this, "function" == typeof n.id && (this.childIndex_[n.id()] = n), (r = r || n.name && De(n.name())) && (this.childNameIndex_[r] = n, this.childNameIndex_[Oe(r)] = n), "function" == typeof n.el && n.el()) { 53037 var o = null; 53038 this.children_[i + 1] && (this.children_[i + 1].el_ ? o = this.children_[i + 1].el_ : _(this.children_[i + 1]) && (o = this.children_[i + 1])), this.contentEl().insertBefore(n.el(), o); 53039 } 53040 53041 return n; 53042 }, e.removeChild = function (e) { 53043 if ("string" == typeof e && (e = this.getChild(e)), e && this.children_) { 53044 for (var t = !1, i = this.children_.length - 1; 0 <= i; i--) { 53045 if (this.children_[i] === e) { 53046 t = !0, this.children_.splice(i, 1); 53047 break; 53048 } 53049 } 53050 53051 if (t) { 53052 e.parentComponent_ = null, this.childIndex_[e.id()] = null, this.childNameIndex_[De(e.name())] = null, this.childNameIndex_[Oe(e.name())] = null; 53053 var n = e.el(); 53054 n && n.parentNode === this.contentEl() && this.contentEl().removeChild(e.el()); 53055 } 53056 } 53057 }, e.initChildren = function () { 53058 var r = this, 53059 n = this.options_.children; 53060 53061 if (n) { 53062 var e, 53063 s = this.options_, 53064 i = l.getComponent("Tech"); 53065 (e = Array.isArray(n) ? n : Object.keys(n)).concat(Object.keys(this.options_).filter(function (t) { 53066 return !e.some(function (e) { 53067 return "string" == typeof e ? t === e : t === e.name; 53068 }); 53069 })).map(function (e) { 53070 var t, i; 53071 return i = "string" == typeof e ? n[t = e] || r.options_[t] || {} : (t = e.name, e), { 53072 name: t, 53073 opts: i 53074 }; 53075 }).filter(function (e) { 53076 var t = l.getComponent(e.opts.componentClass || De(e.name)); 53077 return t && !i.isTech(t); 53078 }).forEach(function (e) { 53079 var t = e.name, 53080 i = e.opts; 53081 53082 if (void 0 !== s[t] && (i = s[t]), !1 !== i) { 53083 !0 === i && (i = {}), i.playerOptions = r.options_.playerOptions; 53084 var n = r.addChild(t, i); 53085 n && (r[t] = n); 53086 } 53087 }); 53088 } 53089 }, e.buildCSSClass = function () { 53090 return ""; 53091 }, e.ready = function (e, t) { 53092 if (void 0 === t && (t = !1), e) return this.isReady_ ? void (t ? e.call(this) : this.setTimeout(e, 1)) : (this.readyQueue_ = this.readyQueue_ || [], void this.readyQueue_.push(e)); 53093 }, e.triggerReady = function () { 53094 this.isReady_ = !0, this.setTimeout(function () { 53095 var e = this.readyQueue_; 53096 this.readyQueue_ = [], e && 0 < e.length && e.forEach(function (e) { 53097 e.call(this); 53098 }, this), this.trigger("ready"); 53099 }, 1); 53100 }, e.$ = function (e, t) { 53101 return G(e, t || this.contentEl()); 53102 }, e.$$ = function (e, t) { 53103 return X(e, t || this.contentEl()); 53104 }, e.hasClass = function (e) { 53105 return w(this.el_, e); 53106 }, e.addClass = function (e) { 53107 E(this.el_, e); 53108 }, e.removeClass = function (e) { 53109 x(this.el_, e); 53110 }, e.toggleClass = function (e, t) { 53111 A(this.el_, e, t); 53112 }, e.show = function () { 53113 this.removeClass("vjs-hidden"); 53114 }, e.hide = function () { 53115 this.addClass("vjs-hidden"); 53116 }, e.lockShowing = function () { 53117 this.addClass("vjs-lock-showing"); 53118 }, e.unlockShowing = function () { 53119 this.removeClass("vjs-lock-showing"); 53120 }, e.getAttribute = function (e) { 53121 return L(this.el_, e); 53122 }, e.setAttribute = function (e, t) { 53123 O(this.el_, e, t); 53124 }, e.removeAttribute = function (e) { 53125 D(this.el_, e); 53126 }, e.width = function (e, t) { 53127 return this.dimension("width", e, t); 53128 }, e.height = function (e, t) { 53129 return this.dimension("height", e, t); 53130 }, e.dimensions = function (e, t) { 53131 this.width(e, !0), this.height(t); 53132 }, e.dimension = function (e, t, i) { 53133 if (void 0 !== t) return null !== t && t == t || (t = 0), -1 !== ("" + t).indexOf("%") || -1 !== ("" + t).indexOf("px") ? this.el_.style[e] = t : this.el_.style[e] = "auto" === t ? "" : t + "px", void (i || this.trigger("componentresize")); 53134 if (!this.el_) return 0; 53135 var n = this.el_.style[e], 53136 r = n.indexOf("px"); 53137 return -1 !== r ? parseInt(n.slice(0, r), 10) : parseInt(this.el_["offset" + De(e)], 10); 53138 }, e.currentDimension = function (e) { 53139 var t = 0; 53140 if ("width" !== e && "height" !== e) throw new Error("currentDimension only accepts width or height value"); 53141 53142 if (t = n(this.el_, e), 0 === (t = parseFloat(t)) || isNaN(t)) { 53143 var i = "offset" + De(e); 53144 t = this.el_[i]; 53145 } 53146 53147 return t; 53148 }, e.currentDimensions = function () { 53149 return { 53150 width: this.currentDimension("width"), 53151 height: this.currentDimension("height") 53152 }; 53153 }, e.currentWidth = function () { 53154 return this.currentDimension("width"); 53155 }, e.currentHeight = function () { 53156 return this.currentDimension("height"); 53157 }, e.focus = function () { 53158 this.el_.focus(); 53159 }, e.blur = function () { 53160 this.el_.blur(); 53161 }, e.handleKeyDown = function (e) { 53162 this.player_ && (e.stopPropagation(), this.player_.handleKeyDown(e)); 53163 }, e.handleKeyPress = function (e) { 53164 this.handleKeyDown(e); 53165 }, e.emitTapEvents = function () { 53166 var n, 53167 t = 0, 53168 r = null; 53169 this.on("touchstart", function (e) { 53170 1 === e.touches.length && (r = { 53171 pageX: e.touches[0].pageX, 53172 pageY: e.touches[0].pageY 53173 }, t = y.performance.now(), n = !0); 53174 }), this.on("touchmove", function (e) { 53175 if (1 < e.touches.length) n = !1;else if (r) { 53176 var t = e.touches[0].pageX - r.pageX, 53177 i = e.touches[0].pageY - r.pageY; 53178 10 < Math.sqrt(t * t + i * i) && (n = !1); 53179 } 53180 }); 53181 53182 function e() { 53183 n = !1; 53184 } 53185 53186 this.on("touchleave", e), this.on("touchcancel", e), this.on("touchend", function (e) { 53187 !(r = null) === n && y.performance.now() - t < 200 && (e.preventDefault(), this.trigger("tap")); 53188 }); 53189 }, e.enableTouchActivity = function () { 53190 if (this.player() && this.player().reportUserActivity) { 53191 var t, 53192 i = ge(this.player(), this.player().reportUserActivity); 53193 this.on("touchstart", function () { 53194 i(), this.clearInterval(t), t = this.setInterval(i, 250); 53195 }); 53196 53197 var e = function e(_e2) { 53198 i(), this.clearInterval(t); 53199 }; 53200 53201 this.on("touchmove", i), this.on("touchend", e), this.on("touchcancel", e); 53202 } 53203 }, e.setTimeout = function (e, t) { 53204 var i, 53205 n = this; 53206 return e = ge(this, e), this.clearTimersOnDispose_(), i = y.setTimeout(function () { 53207 n.setTimeoutIds_.has(i) && n.setTimeoutIds_["delete"](i), e(); 53208 }, t), this.setTimeoutIds_.add(i), i; 53209 }, e.clearTimeout = function (e) { 53210 return this.setTimeoutIds_.has(e) && (this.setTimeoutIds_["delete"](e), y.clearTimeout(e)), e; 53211 }, e.setInterval = function (e, t) { 53212 e = ge(this, e), this.clearTimersOnDispose_(); 53213 var i = y.setInterval(e, t); 53214 return this.setIntervalIds_.add(i), i; 53215 }, e.clearInterval = function (e) { 53216 return this.setIntervalIds_.has(e) && (this.setIntervalIds_["delete"](e), y.clearInterval(e)), e; 53217 }, e.requestAnimationFrame = function (e) { 53218 var t, 53219 i = this; 53220 return this.supportsRaf_ ? (this.clearTimersOnDispose_(), e = ge(this, e), t = y.requestAnimationFrame(function () { 53221 i.rafIds_.has(t) && i.rafIds_["delete"](t), e(); 53222 }), this.rafIds_.add(t), t) : this.setTimeout(e, 1e3 / 60); 53223 }, e.cancelAnimationFrame = function (e) { 53224 return this.supportsRaf_ ? (this.rafIds_.has(e) && (this.rafIds_["delete"](e), y.cancelAnimationFrame(e)), e) : this.clearTimeout(e); 53225 }, e.clearTimersOnDispose_ = function () { 53226 var n = this; 53227 this.clearingTimersOnDispose_ || (this.clearingTimersOnDispose_ = !0, this.one("dispose", function () { 53228 [["rafIds_", "cancelAnimationFrame"], ["setTimeoutIds_", "clearTimeout"], ["setIntervalIds_", "clearInterval"]].forEach(function (e) { 53229 var t = e[0], 53230 i = e[1]; 53231 n[t].forEach(n[i], n); 53232 }), n.clearingTimersOnDispose_ = !1; 53233 })); 53234 }, l.registerComponent = function (e, t) { 53235 if ("string" != typeof e || !e) throw new Error('Illegal component name, "' + e + '"; must be a non-empty string.'); 53236 var i, 53237 n = l.getComponent("Tech"), 53238 r = n && n.isTech(t), 53239 s = l === t || l.prototype.isPrototypeOf(t.prototype); 53240 if (r || !s) throw i = r ? "techs must be registered using Tech.registerTech()" : "must be a Component subclass", new Error('Illegal component, "' + e + '"; ' + i + "."); 53241 e = De(e), l.components_ || (l.components_ = {}); 53242 var a = l.getComponent("Player"); 53243 53244 if ("Player" === e && a && a.players) { 53245 var o = a.players, 53246 u = Object.keys(o); 53247 if (o && 0 < u.length && u.map(function (e) { 53248 return o[e]; 53249 }).every(Boolean)) throw new Error("Can not register Player component after player has been created."); 53250 } 53251 53252 return l.components_[e] = t, l.components_[Oe(e)] = t; 53253 }, l.getComponent = function (e) { 53254 if (e && l.components_) return l.components_[e]; 53255 }, l; 53256 }(); 53257 53258 Re.prototype.supportsRaf_ = "function" == typeof y.requestAnimationFrame && "function" == typeof y.cancelAnimationFrame, Re.registerComponent("Component", Re); 53259 53260 var Ue = function Ue(e) { 53261 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 53262 return e; 53263 }; 53264 53265 t(function (t) { 53266 function i(e) { 53267 return "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? t.exports = i = function i(e) { 53268 return _typeof(e); 53269 } : t.exports = i = function i(e) { 53270 return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); 53271 }, i(e); 53272 } 53273 53274 t.exports = i; 53275 }), t(function (t) { 53276 function i(e) { 53277 return t.exports = i = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) { 53278 return e.__proto__ || Object.getPrototypeOf(e); 53279 }, i(e); 53280 } 53281 53282 t.exports = i; 53283 }); 53284 53285 var Me, 53286 Be, 53287 je, 53288 Fe, 53289 He = function He(e, t) { 53290 e.prototype = Object.create(t.prototype), (e.prototype.constructor = e).__proto__ = t; 53291 }, 53292 Ve = y.navigator && y.navigator.userAgent || "", 53293 qe = /AppleWebKit\/([\d.]+)/i.exec(Ve), 53294 We = qe ? parseFloat(qe.pop()) : null, 53295 ze = /iPod/i.test(Ve), 53296 Ge = (Me = Ve.match(/OS (\d+)_/i)) && Me[1] ? Me[1] : null, 53297 Xe = /Android/i.test(Ve), 53298 Ke = function () { 53299 var e = Ve.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i); 53300 if (!e) return null; 53301 var t = e[1] && parseFloat(e[1]), 53302 i = e[2] && parseFloat(e[2]); 53303 return t && i ? parseFloat(e[1] + "." + e[2]) : t || null; 53304 }(), 53305 Ye = Xe && Ke < 5 && We < 537, 53306 $e = /Firefox/i.test(Ve), 53307 Qe = /Edg/i.test(Ve), 53308 Je = !Qe && (/Chrome/i.test(Ve) || /CriOS/i.test(Ve)), 53309 Ze = (Be = Ve.match(/(Chrome|CriOS)\/(\d+)/)) && Be[2] ? parseFloat(Be[2]) : null, 53310 et = (je = /MSIE\s(\d+)\.\d/.exec(Ve), !(Fe = je && parseFloat(je[1])) && /Trident\/7.0/i.test(Ve) && /rv:11.0/.test(Ve) && (Fe = 11), Fe), 53311 tt = /Safari/i.test(Ve) && !Je && !Xe && !Qe, 53312 it = /Windows/i.test(Ve), 53313 nt = v() && ("ontouchstart" in y || y.navigator.maxTouchPoints || y.DocumentTouch && y.document instanceof y.DocumentTouch), 53314 rt = /iPad/i.test(Ve) || tt && nt && !/iPhone/i.test(Ve), 53315 st = /iPhone/i.test(Ve) && !rt, 53316 at = st || rt || ze, 53317 ot = (tt || at) && !Je, 53318 ut = Object.freeze({ 53319 __proto__: null, 53320 IS_IPOD: ze, 53321 IOS_VERSION: Ge, 53322 IS_ANDROID: Xe, 53323 ANDROID_VERSION: Ke, 53324 IS_NATIVE_ANDROID: Ye, 53325 IS_FIREFOX: $e, 53326 IS_EDGE: Qe, 53327 IS_CHROME: Je, 53328 CHROME_VERSION: Ze, 53329 IE_VERSION: et, 53330 IS_SAFARI: tt, 53331 IS_WINDOWS: it, 53332 TOUCH_ENABLED: nt, 53333 IS_IPAD: rt, 53334 IS_IPHONE: st, 53335 IS_IOS: at, 53336 IS_ANY_SAFARI: ot 53337 }); 53338 53339 function lt(e, t, i, n) { 53340 return function (e, t, i) { 53341 if ("number" != typeof t || t < 0 || i < t) throw new Error("Failed to execute '" + e + "' on 'TimeRanges': The index provided (" + t + ") is non-numeric or out of bounds (0-" + i + ")."); 53342 }(e, n, i.length - 1), i[n][t]; 53343 } 53344 53345 function ct(e) { 53346 return void 0 === e || 0 === e.length ? { 53347 length: 0, 53348 start: function start() { 53349 throw new Error("This TimeRanges object is empty"); 53350 }, 53351 end: function end() { 53352 throw new Error("This TimeRanges object is empty"); 53353 } 53354 } : { 53355 length: e.length, 53356 start: lt.bind(null, "start", 0, e), 53357 end: lt.bind(null, "end", 1, e) 53358 }; 53359 } 53360 53361 function ht(e, t) { 53362 return Array.isArray(e) ? ct(e) : void 0 === e || void 0 === t ? ct() : ct([[e, t]]); 53363 } 53364 53365 function dt(e, t) { 53366 var i, 53367 n, 53368 r = 0; 53369 if (!t) return 0; 53370 e && e.length || (e = ht(0, 0)); 53371 53372 for (var s = 0; s < e.length; s++) { 53373 i = e.start(s), t < (n = e.end(s)) && (n = t), r += n - i; 53374 } 53375 53376 return r / t; 53377 } 53378 53379 for (var pt, ft = { 53380 prefixed: !0 53381 }, mt = [["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror", "fullscreen"], ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror", "-webkit-full-screen"], ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror", "-moz-full-screen"], ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError", "-ms-fullscreen"]], gt = mt[0], vt = 0; vt < mt.length; vt++) { 53382 if (mt[vt][1] in h) { 53383 pt = mt[vt]; 53384 break; 53385 } 53386 } 53387 53388 if (pt) { 53389 for (var yt = 0; yt < pt.length; yt++) { 53390 ft[gt[yt]] = pt[yt]; 53391 } 53392 53393 ft.prefixed = pt[0] !== gt[0]; 53394 } 53395 53396 function _t(e) { 53397 if (e instanceof _t) return e; 53398 "number" == typeof e ? this.code = e : "string" == typeof e ? this.message = e : o(e) && ("number" == typeof e.code && (this.code = e.code), m(this, e)), this.message || (this.message = _t.defaultMessages[this.code] || ""); 53399 } 53400 53401 _t.prototype.code = 0, _t.prototype.message = "", _t.prototype.status = null, _t.errorTypes = ["MEDIA_ERR_CUSTOM", "MEDIA_ERR_ABORTED", "MEDIA_ERR_NETWORK", "MEDIA_ERR_DECODE", "MEDIA_ERR_SRC_NOT_SUPPORTED", "MEDIA_ERR_ENCRYPTED"], _t.defaultMessages = { 53402 1: "You aborted the media playback", 53403 2: "A network error caused the media download to fail part-way.", 53404 3: "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.", 53405 4: "The media could not be loaded, either because the server or network failed or because the format is not supported.", 53406 5: "The media is encrypted and we do not have the keys to decrypt it." 53407 }; 53408 53409 for (var bt = 0; bt < _t.errorTypes.length; bt++) { 53410 _t[_t.errorTypes[bt]] = bt, _t.prototype[_t.errorTypes[bt]] = bt; 53411 } 53412 53413 var Tt = function Tt(e, t) { 53414 var i, 53415 n = null; 53416 53417 try { 53418 i = JSON.parse(e, t); 53419 } catch (e) { 53420 n = e; 53421 } 53422 53423 return [n, i]; 53424 }; 53425 53426 function St(e) { 53427 return null != e && "function" == typeof e.then; 53428 } 53429 53430 function kt(e) { 53431 St(e) && e.then(null, function (e) {}); 53432 } 53433 53434 function Ct(n) { 53435 return ["kind", "label", "language", "id", "inBandMetadataTrackDispatchType", "mode", "src"].reduce(function (e, t, i) { 53436 return n[t] && (e[t] = n[t]), e; 53437 }, { 53438 cues: n.cues && Array.prototype.map.call(n.cues, function (e) { 53439 return { 53440 startTime: e.startTime, 53441 endTime: e.endTime, 53442 text: e.text, 53443 id: e.id 53444 }; 53445 }) 53446 }); 53447 } 53448 53449 var wt = function wt(e) { 53450 var t = e.$$("track"), 53451 i = Array.prototype.map.call(t, function (e) { 53452 return e.track; 53453 }); 53454 return Array.prototype.map.call(t, function (e) { 53455 var t = Ct(e.track); 53456 return e.src && (t.src = e.src), t; 53457 }).concat(Array.prototype.filter.call(e.textTracks(), function (e) { 53458 return -1 === i.indexOf(e); 53459 }).map(Ct)); 53460 }, 53461 Et = function Et(e, i) { 53462 return e.forEach(function (e) { 53463 var t = i.addRemoteTextTrack(e).track; 53464 !e.src && e.cues && e.cues.forEach(function (e) { 53465 return t.addCue(e); 53466 }); 53467 }), i.textTracks(); 53468 }, 53469 xt = t(function (e, t) { 53470 function i(e) { 53471 if (e && "object" == _typeof(e)) { 53472 var t = e.which || e.keyCode || e.charCode; 53473 t && (e = t); 53474 } 53475 53476 if ("number" == typeof e) return a[e]; 53477 var i, 53478 n = String(e); 53479 return (i = r[n.toLowerCase()]) ? i : (i = s[n.toLowerCase()]) || (1 === n.length ? n.charCodeAt(0) : void 0); 53480 } 53481 53482 i.isEventKey = function (e, t) { 53483 if (e && "object" == _typeof(e)) { 53484 var i = e.which || e.keyCode || e.charCode; 53485 if (null == i) return !1; 53486 53487 if ("string" == typeof t) { 53488 var n; 53489 if (n = r[t.toLowerCase()]) return n === i; 53490 if (n = s[t.toLowerCase()]) return n === i; 53491 } else if ("number" == typeof t) return t === i; 53492 53493 return !1; 53494 } 53495 }; 53496 53497 var r = (t = e.exports = i).code = t.codes = { 53498 backspace: 8, 53499 tab: 9, 53500 enter: 13, 53501 shift: 16, 53502 ctrl: 17, 53503 alt: 18, 53504 "pause/break": 19, 53505 "caps lock": 20, 53506 esc: 27, 53507 space: 32, 53508 "page up": 33, 53509 "page down": 34, 53510 end: 35, 53511 home: 36, 53512 left: 37, 53513 up: 38, 53514 right: 39, 53515 down: 40, 53516 insert: 45, 53517 "delete": 46, 53518 command: 91, 53519 "left command": 91, 53520 "right command": 93, 53521 "numpad *": 106, 53522 "numpad +": 107, 53523 "numpad -": 109, 53524 "numpad .": 110, 53525 "numpad /": 111, 53526 "num lock": 144, 53527 "scroll lock": 145, 53528 "my computer": 182, 53529 "my calculator": 183, 53530 ";": 186, 53531 "=": 187, 53532 ",": 188, 53533 "-": 189, 53534 ".": 190, 53535 "/": 191, 53536 "`": 192, 53537 "[": 219, 53538 "\\": 220, 53539 "]": 221, 53540 "'": 222 53541 }, 53542 s = t.aliases = { 53543 windows: 91, 53544 "â§": 16, 53545 "â¥": 18, 53546 "â": 17, 53547 "â": 91, 53548 ctl: 17, 53549 control: 17, 53550 option: 18, 53551 pause: 19, 53552 "break": 19, 53553 caps: 20, 53554 "return": 13, 53555 escape: 27, 53556 spc: 32, 53557 spacebar: 32, 53558 pgup: 33, 53559 pgdn: 34, 53560 ins: 45, 53561 del: 46, 53562 cmd: 91 53563 }; 53564 53565 for (n = 97; n < 123; n++) { 53566 r[String.fromCharCode(n)] = n - 32; 53567 } 53568 53569 for (var n = 48; n < 58; n++) { 53570 r[n - 48] = n; 53571 } 53572 53573 for (n = 1; n < 13; n++) { 53574 r["f" + n] = n + 111; 53575 } 53576 53577 for (n = 0; n < 10; n++) { 53578 r["numpad " + n] = n + 96; 53579 } 53580 53581 var a = t.names = t.title = {}; 53582 53583 for (n in r) { 53584 a[r[n]] = n; 53585 } 53586 53587 for (var o in s) { 53588 r[o] = s[o]; 53589 } 53590 }), 53591 At = (xt.code, xt.codes, xt.aliases, xt.names, xt.title, "vjs-modal-dialog"), 53592 It = function (n) { 53593 function e(e, t) { 53594 var i; 53595 return (i = n.call(this, e, t) || this).opened_ = i.hasBeenOpened_ = i.hasBeenFilled_ = !1, i.closeable(!i.options_.uncloseable), i.content(i.options_.content), i.contentEl_ = S("div", { 53596 className: At + "-content" 53597 }, { 53598 role: "document" 53599 }), i.descEl_ = S("p", { 53600 className: At + "-description vjs-control-text", 53601 id: i.el().getAttribute("aria-describedby") 53602 }), k(i.descEl_, i.description()), i.el_.appendChild(i.descEl_), i.el_.appendChild(i.contentEl_), i; 53603 } 53604 53605 He(e, n); 53606 var t = e.prototype; 53607 return t.createEl = function () { 53608 return n.prototype.createEl.call(this, "div", { 53609 className: this.buildCSSClass(), 53610 tabIndex: -1 53611 }, { 53612 "aria-describedby": this.id() + "_description", 53613 "aria-hidden": "true", 53614 "aria-label": this.label(), 53615 role: "dialog" 53616 }); 53617 }, t.dispose = function () { 53618 this.contentEl_ = null, this.descEl_ = null, this.previouslyActiveEl_ = null, n.prototype.dispose.call(this); 53619 }, t.buildCSSClass = function () { 53620 return At + " vjs-hidden " + n.prototype.buildCSSClass.call(this); 53621 }, t.label = function () { 53622 return this.localize(this.options_.label || "Modal Window"); 53623 }, t.description = function () { 53624 var e = this.options_.description || this.localize("This is a modal window."); 53625 return this.closeable() && (e += " " + this.localize("This modal can be closed by pressing the Escape key or activating the close button.")), e; 53626 }, t.open = function () { 53627 if (!this.opened_) { 53628 var e = this.player(); 53629 this.trigger("beforemodalopen"), this.opened_ = !0, !this.options_.fillAlways && (this.hasBeenOpened_ || this.hasBeenFilled_) || this.fill(), this.wasPlaying_ = !e.paused(), this.options_.pauseOnOpen && this.wasPlaying_ && e.pause(), this.on("keydown", this.handleKeyDown), this.hadControls_ = e.controls(), e.controls(!1), this.show(), this.conditionalFocus_(), this.el().setAttribute("aria-hidden", "false"), this.trigger("modalopen"), this.hasBeenOpened_ = !0; 53630 } 53631 }, t.opened = function (e) { 53632 return "boolean" == typeof e && this[e ? "open" : "close"](), this.opened_; 53633 }, t.close = function () { 53634 if (this.opened_) { 53635 var e = this.player(); 53636 this.trigger("beforemodalclose"), this.opened_ = !1, this.wasPlaying_ && this.options_.pauseOnOpen && e.play(), this.off("keydown", this.handleKeyDown), this.hadControls_ && e.controls(!0), this.hide(), this.el().setAttribute("aria-hidden", "true"), this.trigger("modalclose"), this.conditionalBlur_(), this.options_.temporary && this.dispose(); 53637 } 53638 }, t.closeable = function (e) { 53639 if ("boolean" == typeof e) { 53640 var t = this.closeable_ = !!e, 53641 i = this.getChild("closeButton"); 53642 53643 if (t && !i) { 53644 var n = this.contentEl_; 53645 this.contentEl_ = this.el_, i = this.addChild("closeButton", { 53646 controlText: "Close Modal Dialog" 53647 }), this.contentEl_ = n, this.on(i, "close", this.close); 53648 } 53649 53650 !t && i && (this.off(i, "close", this.close), this.removeChild(i), i.dispose()); 53651 } 53652 53653 return this.closeable_; 53654 }, t.fill = function () { 53655 this.fillWith(this.content()); 53656 }, t.fillWith = function (e) { 53657 var t = this.contentEl(), 53658 i = t.parentNode, 53659 n = t.nextSibling; 53660 this.trigger("beforemodalfill"), this.hasBeenFilled_ = !0, i.removeChild(t), this.empty(), q(t, e), this.trigger("modalfill"), n ? i.insertBefore(t, n) : i.appendChild(t); 53661 var r = this.getChild("closeButton"); 53662 r && i.appendChild(r.el_); 53663 }, t.empty = function () { 53664 this.trigger("beforemodalempty"), F(this.contentEl()), this.trigger("modalempty"); 53665 }, t.content = function (e) { 53666 return "undefined" != typeof e && (this.content_ = e), this.content_; 53667 }, t.conditionalFocus_ = function () { 53668 var e = h.activeElement, 53669 t = this.player_.el_; 53670 this.previouslyActiveEl_ = null, !t.contains(e) && t !== e || (this.previouslyActiveEl_ = e, this.focus()); 53671 }, t.conditionalBlur_ = function () { 53672 this.previouslyActiveEl_ && (this.previouslyActiveEl_.focus(), this.previouslyActiveEl_ = null); 53673 }, t.handleKeyDown = function (e) { 53674 if (e.stopPropagation(), xt.isEventKey(e, "Escape") && this.closeable()) return e.preventDefault(), void this.close(); 53675 53676 if (xt.isEventKey(e, "Tab")) { 53677 for (var t, i = this.focusableEls_(), n = this.el_.querySelector(":focus"), r = 0; r < i.length; r++) { 53678 if (n === i[r]) { 53679 t = r; 53680 break; 53681 } 53682 } 53683 53684 h.activeElement === this.el_ && (t = 0), e.shiftKey && 0 === t ? (i[i.length - 1].focus(), e.preventDefault()) : e.shiftKey || t !== i.length - 1 || (i[0].focus(), e.preventDefault()); 53685 } 53686 }, t.focusableEls_ = function () { 53687 var e = this.el_.querySelectorAll("*"); 53688 return Array.prototype.filter.call(e, function (e) { 53689 return (e instanceof y.HTMLAnchorElement || e instanceof y.HTMLAreaElement) && e.hasAttribute("href") || (e instanceof y.HTMLInputElement || e instanceof y.HTMLSelectElement || e instanceof y.HTMLTextAreaElement || e instanceof y.HTMLButtonElement) && !e.hasAttribute("disabled") || e instanceof y.HTMLIFrameElement || e instanceof y.HTMLObjectElement || e instanceof y.HTMLEmbedElement || e.hasAttribute("tabindex") && -1 !== e.getAttribute("tabindex") || e.hasAttribute("contenteditable"); 53690 }); 53691 }, e; 53692 }(Re); 53693 53694 It.prototype.options_ = { 53695 pauseOnOpen: !0, 53696 temporary: !0 53697 }, Re.registerComponent("ModalDialog", It); 53698 53699 var Pt = function (n) { 53700 function e(e) { 53701 var t; 53702 void 0 === e && (e = []), (t = n.call(this) || this).tracks_ = [], Object.defineProperty(Ue(t), "length", { 53703 get: function get() { 53704 return this.tracks_.length; 53705 } 53706 }); 53707 53708 for (var i = 0; i < e.length; i++) { 53709 t.addTrack(e[i]); 53710 } 53711 53712 return t; 53713 } 53714 53715 He(e, n); 53716 var t = e.prototype; 53717 return t.addTrack = function (e) { 53718 var t = this.tracks_.length; 53719 "" + t in this || Object.defineProperty(this, t, { 53720 get: function get() { 53721 return this.tracks_[t]; 53722 } 53723 }), -1 === this.tracks_.indexOf(e) && (this.tracks_.push(e), this.trigger({ 53724 track: e, 53725 type: "addtrack", 53726 target: this 53727 })); 53728 }, t.removeTrack = function (e) { 53729 for (var t, i = 0, n = this.length; i < n; i++) { 53730 if (this[i] === e) { 53731 (t = this[i]).off && t.off(), this.tracks_.splice(i, 1); 53732 break; 53733 } 53734 } 53735 53736 t && this.trigger({ 53737 track: t, 53738 type: "removetrack", 53739 target: this 53740 }); 53741 }, t.getTrackById = function (e) { 53742 for (var t = null, i = 0, n = this.length; i < n; i++) { 53743 var r = this[i]; 53744 53745 if (r.id === e) { 53746 t = r; 53747 break; 53748 } 53749 } 53750 53751 return t; 53752 }, e; 53753 }(ye); 53754 53755 for (var Lt in Pt.prototype.allowedEvents_ = { 53756 change: "change", 53757 addtrack: "addtrack", 53758 removetrack: "removetrack" 53759 }, Pt.prototype.allowedEvents_) { 53760 Pt.prototype["on" + Lt] = null; 53761 } 53762 53763 function Ot(e, t) { 53764 for (var i = 0; i < e.length; i++) { 53765 Object.keys(e[i]).length && t.id !== e[i].id && (e[i].enabled = !1); 53766 } 53767 } 53768 53769 function Dt(e, t) { 53770 for (var i = 0; i < e.length; i++) { 53771 Object.keys(e[i]).length && t.id !== e[i].id && (e[i].selected = !1); 53772 } 53773 } 53774 53775 function Nt(e) { 53776 var t = ["protocol", "hostname", "port", "pathname", "search", "hash", "host"], 53777 i = h.createElement("a"); 53778 i.href = e; 53779 var n, 53780 r = "" === i.host && "file:" !== i.protocol; 53781 r && ((n = h.createElement("div")).innerHTML = '<a href="' + e + '"></a>', i = n.firstChild, n.setAttribute("style", "display:none; position:absolute;"), h.body.appendChild(n)); 53782 53783 for (var s = {}, a = 0; a < t.length; a++) { 53784 s[t[a]] = i[t[a]]; 53785 } 53786 53787 return "http:" === s.protocol && (s.host = s.host.replace(/:80$/, "")), "https:" === s.protocol && (s.host = s.host.replace(/:443$/, "")), s.protocol || (s.protocol = y.location.protocol), r && h.body.removeChild(n), s; 53788 } 53789 53790 function Rt(e) { 53791 if (!e.match(/^https?:\/\//)) { 53792 var t = h.createElement("div"); 53793 t.innerHTML = '<a href="' + e + '">x</a>', e = t.firstChild.href; 53794 } 53795 53796 return e; 53797 } 53798 53799 function Ut(e) { 53800 if ("string" == typeof e) { 53801 var t = /^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/.exec(e); 53802 if (t) return t.pop().toLowerCase(); 53803 } 53804 53805 return ""; 53806 } 53807 53808 function Mt(e, t) { 53809 void 0 === t && (t = y.location); 53810 var i = Nt(e); 53811 return (":" === i.protocol ? t.protocol : i.protocol) + i.host !== t.protocol + t.host; 53812 } 53813 53814 var Bt = function (n) { 53815 function e(e) { 53816 var t; 53817 void 0 === e && (e = []); 53818 53819 for (var i = e.length - 1; 0 <= i; i--) { 53820 if (e[i].enabled) { 53821 Ot(e, e[i]); 53822 break; 53823 } 53824 } 53825 53826 return (t = n.call(this, e) || this).changing_ = !1, t; 53827 } 53828 53829 He(e, n); 53830 var t = e.prototype; 53831 return t.addTrack = function (e) { 53832 var t = this; 53833 e.enabled && Ot(this, e), n.prototype.addTrack.call(this, e), e.addEventListener && (e.enabledChange_ = function () { 53834 t.changing_ || (t.changing_ = !0, Ot(t, e), t.changing_ = !1, t.trigger("change")); 53835 }, e.addEventListener("enabledchange", e.enabledChange_)); 53836 }, t.removeTrack = function (e) { 53837 n.prototype.removeTrack.call(this, e), e.removeEventListener && e.enabledChange_ && (e.removeEventListener("enabledchange", e.enabledChange_), e.enabledChange_ = null); 53838 }, e; 53839 }(Pt), 53840 jt = function (n) { 53841 function e(e) { 53842 var t; 53843 void 0 === e && (e = []); 53844 53845 for (var i = e.length - 1; 0 <= i; i--) { 53846 if (e[i].selected) { 53847 Dt(e, e[i]); 53848 break; 53849 } 53850 } 53851 53852 return (t = n.call(this, e) || this).changing_ = !1, Object.defineProperty(Ue(t), "selectedIndex", { 53853 get: function get() { 53854 for (var e = 0; e < this.length; e++) { 53855 if (this[e].selected) return e; 53856 } 53857 53858 return -1; 53859 }, 53860 set: function set() {} 53861 }), t; 53862 } 53863 53864 He(e, n); 53865 var t = e.prototype; 53866 return t.addTrack = function (e) { 53867 var t = this; 53868 e.selected && Dt(this, e), n.prototype.addTrack.call(this, e), e.addEventListener && (e.selectedChange_ = function () { 53869 t.changing_ || (t.changing_ = !0, Dt(t, e), t.changing_ = !1, t.trigger("change")); 53870 }, e.addEventListener("selectedchange", e.selectedChange_)); 53871 }, t.removeTrack = function (e) { 53872 n.prototype.removeTrack.call(this, e), e.removeEventListener && e.selectedChange_ && (e.removeEventListener("selectedchange", e.selectedChange_), e.selectedChange_ = null); 53873 }, e; 53874 }(Pt), 53875 Ft = function (i) { 53876 function e() { 53877 return i.apply(this, arguments) || this; 53878 } 53879 53880 He(e, i); 53881 var t = e.prototype; 53882 return t.addTrack = function (e) { 53883 var t = this; 53884 i.prototype.addTrack.call(this, e), this.queueChange_ || (this.queueChange_ = function () { 53885 return t.queueTrigger("change"); 53886 }), this.triggerSelectedlanguagechange || (this.triggerSelectedlanguagechange_ = function () { 53887 return t.trigger("selectedlanguagechange"); 53888 }), e.addEventListener("modechange", this.queueChange_); 53889 -1 === ["metadata", "chapters"].indexOf(e.kind) && e.addEventListener("modechange", this.triggerSelectedlanguagechange_); 53890 }, t.removeTrack = function (e) { 53891 i.prototype.removeTrack.call(this, e), e.removeEventListener && (this.queueChange_ && e.removeEventListener("modechange", this.queueChange_), this.selectedlanguagechange_ && e.removeEventListener("modechange", this.triggerSelectedlanguagechange_)); 53892 }, e; 53893 }(Pt), 53894 Ht = function () { 53895 function e(e) { 53896 void 0 === e && (e = []), this.trackElements_ = [], Object.defineProperty(this, "length", { 53897 get: function get() { 53898 return this.trackElements_.length; 53899 } 53900 }); 53901 53902 for (var t = 0, i = e.length; t < i; t++) { 53903 this.addTrackElement_(e[t]); 53904 } 53905 } 53906 53907 var t = e.prototype; 53908 return t.addTrackElement_ = function (e) { 53909 var t = this.trackElements_.length; 53910 "" + t in this || Object.defineProperty(this, t, { 53911 get: function get() { 53912 return this.trackElements_[t]; 53913 } 53914 }), -1 === this.trackElements_.indexOf(e) && this.trackElements_.push(e); 53915 }, t.getTrackElementByTrack_ = function (e) { 53916 for (var t, i = 0, n = this.trackElements_.length; i < n; i++) { 53917 if (e === this.trackElements_[i].track) { 53918 t = this.trackElements_[i]; 53919 break; 53920 } 53921 } 53922 53923 return t; 53924 }, t.removeTrackElement_ = function (e) { 53925 for (var t = 0, i = this.trackElements_.length; t < i; t++) { 53926 if (e === this.trackElements_[t]) { 53927 this.trackElements_[t].track && "function" == typeof this.trackElements_[t].track.off && this.trackElements_[t].track.off(), "function" == typeof this.trackElements_[t].off && this.trackElements_[t].off(), this.trackElements_.splice(t, 1); 53928 break; 53929 } 53930 } 53931 }, e; 53932 }(), 53933 Vt = function () { 53934 function t(e) { 53935 t.prototype.setCues_.call(this, e), Object.defineProperty(this, "length", { 53936 get: function get() { 53937 return this.length_; 53938 } 53939 }); 53940 } 53941 53942 var e = t.prototype; 53943 return e.setCues_ = function (e) { 53944 var t = this.length || 0, 53945 i = 0, 53946 n = e.length; 53947 this.cues_ = e, this.length_ = e.length; 53948 53949 function r(e) { 53950 "" + e in this || Object.defineProperty(this, "" + e, { 53951 get: function get() { 53952 return this.cues_[e]; 53953 } 53954 }); 53955 } 53956 53957 if (t < n) for (i = t; i < n; i++) { 53958 r.call(this, i); 53959 } 53960 }, e.getCueById = function (e) { 53961 for (var t = null, i = 0, n = this.length; i < n; i++) { 53962 var r = this[i]; 53963 53964 if (r.id === e) { 53965 t = r; 53966 break; 53967 } 53968 } 53969 53970 return t; 53971 }, t; 53972 }(), 53973 qt = { 53974 alternative: "alternative", 53975 captions: "captions", 53976 main: "main", 53977 sign: "sign", 53978 subtitles: "subtitles", 53979 commentary: "commentary" 53980 }, 53981 Wt = { 53982 alternative: "alternative", 53983 descriptions: "descriptions", 53984 main: "main", 53985 "main-desc": "main-desc", 53986 translation: "translation", 53987 commentary: "commentary" 53988 }, 53989 zt = { 53990 subtitles: "subtitles", 53991 captions: "captions", 53992 descriptions: "descriptions", 53993 chapters: "chapters", 53994 metadata: "metadata" 53995 }, 53996 Gt = { 53997 disabled: "disabled", 53998 hidden: "hidden", 53999 showing: "showing" 54000 }, 54001 Xt = function (s) { 54002 function e(e) { 54003 var t; 54004 void 0 === e && (e = {}), t = s.call(this) || this; 54005 54006 function i(e) { 54007 Object.defineProperty(Ue(t), e, { 54008 get: function get() { 54009 return n[e]; 54010 }, 54011 set: function set() {} 54012 }); 54013 } 54014 54015 var n = { 54016 id: e.id || "vjs_track_" + ne(), 54017 kind: e.kind || "", 54018 label: e.label || "", 54019 language: e.language || "" 54020 }; 54021 54022 for (var r in n) { 54023 i(r); 54024 } 54025 54026 return t; 54027 } 54028 54029 return He(e, s), e; 54030 }(ye), 54031 Kt = Object.freeze({ 54032 __proto__: null, 54033 parseUrl: Nt, 54034 getAbsoluteURL: Rt, 54035 getFileExtension: Ut, 54036 isCrossOrigin: Mt 54037 }), 54038 Yt = function Yt(e) { 54039 var t = $t.call(e); 54040 return "[object Function]" === t || "function" == typeof e && "[object RegExp]" !== t || "undefined" != typeof window && (e === window.setTimeout || e === window.alert || e === window.confirm || e === window.prompt); 54041 } 54042 /** 54043 * @license 54044 * slighly modified parse-headers 2.0.2 <https://github.com/kesla/parse-headers/> 54045 * Copyright (c) 2014 David Björklund 54046 * Available under the MIT license 54047 * <https://github.com/kesla/parse-headers/blob/master/LICENCE> 54048 */ 54049 , 54050 $t = Object.prototype.toString; 54051 54052 var Qt = function Qt(e) { 54053 var r = {}; 54054 return e && e.trim().split("\n").forEach(function (e) { 54055 var t = e.indexOf(":"), 54056 i = e.slice(0, t).trim().toLowerCase(), 54057 n = e.slice(t + 1).trim(); 54058 "undefined" == typeof r[i] ? r[i] = n : Array.isArray(r[i]) ? r[i].push(n) : r[i] = [r[i], n]; 54059 }), r; 54060 }, 54061 Jt = ti, 54062 Zt = ti; 54063 54064 function ei(e, t, i) { 54065 var n = e; 54066 return Yt(t) ? (i = t, "string" == typeof e && (n = { 54067 uri: e 54068 })) : n = r({}, t, { 54069 uri: e 54070 }), n.callback = i, n; 54071 } 54072 54073 function ti(e, t, i) { 54074 return ii(t = ei(e, t, i)); 54075 } 54076 54077 function ii(n) { 54078 if ("undefined" == typeof n.callback) throw new Error("callback argument missing"); 54079 54080 var r = !1, 54081 s = function s(e, t, i) { 54082 r || (r = !0, n.callback(e, t, i)); 54083 }; 54084 54085 function t(e) { 54086 return clearTimeout(o), e instanceof Error || (e = new Error("" + (e || "Unknown XMLHttpRequest Error"))), e.statusCode = 0, s(e, m); 54087 } 54088 54089 function e() { 54090 if (!a) { 54091 var e; 54092 clearTimeout(o), e = n.useXDR && void 0 === u.status ? 200 : 1223 === u.status ? 204 : u.status; 54093 var t = m, 54094 i = null; 54095 return 0 !== e ? (t = { 54096 body: function () { 54097 var e = void 0; 54098 if (e = u.response ? u.response : u.responseText || function (e) { 54099 try { 54100 if ("document" === e.responseType) return e.responseXML; 54101 var t = e.responseXML && "parsererror" === e.responseXML.documentElement.nodeName; 54102 if ("" === e.responseType && !t) return e.responseXML; 54103 } catch (e) {} 54104 54105 return null; 54106 }(u), f) try { 54107 e = JSON.parse(e); 54108 } catch (e) {} 54109 return e; 54110 }(), 54111 statusCode: e, 54112 method: c, 54113 headers: {}, 54114 url: l, 54115 rawRequest: u 54116 }, u.getAllResponseHeaders && (t.headers = Qt(u.getAllResponseHeaders()))) : i = new Error("Internal XMLHttpRequest Error"), s(i, t, t.body); 54117 } 54118 } 54119 54120 var i, 54121 a, 54122 o, 54123 u = n.xhr || null, 54124 l = (u = u || (n.cors || n.useXDR ? new ti.XDomainRequest() : new ti.XMLHttpRequest())).url = n.uri || n.url, 54125 c = u.method = n.method || "GET", 54126 h = n.body || n.data, 54127 d = u.headers = n.headers || {}, 54128 p = !!n.sync, 54129 f = !1, 54130 m = { 54131 body: void 0, 54132 headers: {}, 54133 statusCode: 0, 54134 method: c, 54135 url: l, 54136 rawRequest: u 54137 }; 54138 if ("json" in n && !1 !== n.json && (f = !0, d.accept || d.Accept || (d.Accept = "application/json"), "GET" !== c && "HEAD" !== c && (d["content-type"] || d["Content-Type"] || (d["Content-Type"] = "application/json"), h = JSON.stringify(!0 === n.json ? h : n.json))), u.onreadystatechange = function () { 54139 4 === u.readyState && setTimeout(e, 0); 54140 }, u.onload = e, u.onerror = t, u.onprogress = function () {}, u.onabort = function () { 54141 a = !0; 54142 }, u.ontimeout = t, u.open(c, l, !p, n.username, n.password), p || (u.withCredentials = !!n.withCredentials), !p && 0 < n.timeout && (o = setTimeout(function () { 54143 if (!a) { 54144 a = !0, u.abort("timeout"); 54145 var e = new Error("XMLHttpRequest timeout"); 54146 e.code = "ETIMEDOUT", t(e); 54147 } 54148 }, n.timeout)), u.setRequestHeader) for (i in d) { 54149 d.hasOwnProperty(i) && u.setRequestHeader(i, d[i]); 54150 } else if (n.headers && !function (e) { 54151 for (var t in e) { 54152 if (e.hasOwnProperty(t)) return !1; 54153 } 54154 54155 return !0; 54156 }(n.headers)) throw new Error("Headers cannot be set on an XDomainRequest object"); 54157 return "responseType" in n && (u.responseType = n.responseType), "beforeSend" in n && "function" == typeof n.beforeSend && n.beforeSend(u), u.send(h || null), u; 54158 } 54159 54160 ti.XMLHttpRequest = y.XMLHttpRequest || function () {}, ti.XDomainRequest = "withCredentials" in new ti.XMLHttpRequest() ? ti.XMLHttpRequest : y.XDomainRequest, function (e, t) { 54161 for (var i = 0; i < e.length; i++) { 54162 t(e[i]); 54163 } 54164 }(["get", "put", "post", "patch", "head", "delete"], function (n) { 54165 ti["delete" === n ? "del" : n] = function (e, t, i) { 54166 return (t = ei(e, t, i)).method = n.toUpperCase(), ii(t); 54167 }; 54168 }), Jt["default"] = Zt; 54169 54170 function ni(e, t) { 54171 var i = new y.WebVTT.Parser(y, y.vttjs, y.WebVTT.StringDecoder()), 54172 n = []; 54173 i.oncue = function (e) { 54174 t.addCue(e); 54175 }, i.onparsingerror = function (e) { 54176 n.push(e); 54177 }, i.onflush = function () { 54178 t.trigger({ 54179 type: "loadeddata", 54180 target: t 54181 }); 54182 }, i.parse(e), 0 < n.length && (y.console && y.console.groupCollapsed && y.console.groupCollapsed("Text Track parsing errors for " + t.src), n.forEach(function (e) { 54183 return p.error(e); 54184 }), y.console && y.console.groupEnd && y.console.groupEnd()), i.flush(); 54185 } 54186 54187 function ri(e, n) { 54188 var t = { 54189 uri: e 54190 }, 54191 i = Mt(e); 54192 i && (t.cors = i), Jt(t, ge(this, function (e, t, i) { 54193 if (e) return p.error(e, t); 54194 n.loaded_ = !0, "function" != typeof y.WebVTT ? n.tech_ && n.tech_.any(["vttjsloaded", "vttjserror"], function (e) { 54195 if ("vttjserror" !== e.type) return ni(i, n); 54196 p.error("vttjs failed to load, stopping trying to process " + n.src); 54197 }) : ni(i, n); 54198 })); 54199 } 54200 54201 var si = function (l) { 54202 function e(e) { 54203 var t; 54204 if (void 0 === e && (e = {}), !e.tech) throw new Error("A tech was not provided."); 54205 var i = Ne(e, { 54206 kind: zt[e.kind] || "subtitles", 54207 language: e.language || e.srclang || "" 54208 }), 54209 n = Gt[i.mode] || "disabled", 54210 r = i["default"]; 54211 "metadata" !== i.kind && "chapters" !== i.kind || (n = "hidden"), (t = l.call(this, i) || this).tech_ = i.tech, t.cues_ = [], t.activeCues_ = [], t.preload_ = !1 !== t.tech_.preloadTextTracks; 54212 var s = new Vt(t.cues_), 54213 a = new Vt(t.activeCues_), 54214 o = !1, 54215 u = ge(Ue(t), function () { 54216 this.activeCues = this.activeCues, o && (this.trigger("cuechange"), o = !1); 54217 }); 54218 return "disabled" !== n && t.tech_.ready(function () { 54219 t.tech_.on("timeupdate", u); 54220 }, !0), Object.defineProperties(Ue(t), { 54221 "default": { 54222 get: function get() { 54223 return r; 54224 }, 54225 set: function set() {} 54226 }, 54227 mode: { 54228 get: function get() { 54229 return n; 54230 }, 54231 set: function set(e) { 54232 var t = this; 54233 Gt[e] && (n = e, this.preload_ || "disabled" === n || 0 !== this.cues.length || ri(this.src, this), "disabled" !== n ? this.tech_.ready(function () { 54234 t.tech_.on("timeupdate", u); 54235 }, !0) : this.tech_.off("timeupdate", u), this.trigger("modechange")); 54236 } 54237 }, 54238 cues: { 54239 get: function get() { 54240 return this.loaded_ ? s : null; 54241 }, 54242 set: function set() {} 54243 }, 54244 activeCues: { 54245 get: function get() { 54246 if (!this.loaded_) return null; 54247 if (0 === this.cues.length) return a; 54248 54249 for (var e = this.tech_.currentTime(), t = [], i = 0, n = this.cues.length; i < n; i++) { 54250 var r = this.cues[i]; 54251 r.startTime <= e && r.endTime >= e ? t.push(r) : r.startTime === r.endTime && r.startTime <= e && r.startTime + .5 >= e && t.push(r); 54252 } 54253 54254 if (o = !1, t.length !== this.activeCues_.length) o = !0;else for (var s = 0; s < t.length; s++) { 54255 -1 === this.activeCues_.indexOf(t[s]) && (o = !0); 54256 } 54257 return this.activeCues_ = t, a.setCues_(this.activeCues_), a; 54258 }, 54259 set: function set() {} 54260 } 54261 }), i.src ? (t.src = i.src, t.preload_ || (t.loaded_ = !0), (t.preload_ || r || "subtitles" !== i.kind && "captions" !== i.kind) && ri(t.src, Ue(t))) : t.loaded_ = !0, t; 54262 } 54263 54264 He(e, l); 54265 var t = e.prototype; 54266 return t.addCue = function (e) { 54267 var t = e; 54268 54269 if (y.vttjs && !(e instanceof y.vttjs.VTTCue)) { 54270 for (var i in t = new y.vttjs.VTTCue(e.startTime, e.endTime, e.text), e) { 54271 i in t || (t[i] = e[i]); 54272 } 54273 54274 t.id = e.id, t.originalCue_ = e; 54275 } 54276 54277 for (var n = this.tech_.textTracks(), r = 0; r < n.length; r++) { 54278 n[r] !== this && n[r].removeCue(t); 54279 } 54280 54281 this.cues_.push(t), this.cues.setCues_(this.cues_); 54282 }, t.removeCue = function (e) { 54283 for (var t = this.cues_.length; t--;) { 54284 var i = this.cues_[t]; 54285 54286 if (i === e || i.originalCue_ && i.originalCue_ === e) { 54287 this.cues_.splice(t, 1), this.cues.setCues_(this.cues_); 54288 break; 54289 } 54290 } 54291 }, e; 54292 }(Xt); 54293 54294 si.prototype.allowedEvents_ = { 54295 cuechange: "cuechange" 54296 }; 54297 54298 var ai = function (r) { 54299 function e(e) { 54300 var t; 54301 void 0 === e && (e = {}); 54302 var i = Ne(e, { 54303 kind: Wt[e.kind] || "" 54304 }); 54305 t = r.call(this, i) || this; 54306 var n = !1; 54307 return Object.defineProperty(Ue(t), "enabled", { 54308 get: function get() { 54309 return n; 54310 }, 54311 set: function set(e) { 54312 "boolean" == typeof e && e !== n && (n = e, this.trigger("enabledchange")); 54313 } 54314 }), i.enabled && (t.enabled = i.enabled), t.loaded_ = !0, t; 54315 } 54316 54317 return He(e, r), e; 54318 }(Xt), 54319 oi = function (r) { 54320 function e(e) { 54321 var t; 54322 void 0 === e && (e = {}); 54323 var i = Ne(e, { 54324 kind: qt[e.kind] || "" 54325 }); 54326 t = r.call(this, i) || this; 54327 var n = !1; 54328 return Object.defineProperty(Ue(t), "selected", { 54329 get: function get() { 54330 return n; 54331 }, 54332 set: function set(e) { 54333 "boolean" == typeof e && e !== n && (n = e, this.trigger("selectedchange")); 54334 } 54335 }), i.selected && (t.selected = i.selected), t; 54336 } 54337 54338 return He(e, r), e; 54339 }(Xt), 54340 ui = function (r) { 54341 function e(e) { 54342 var t, i; 54343 void 0 === e && (e = {}), t = r.call(this) || this; 54344 var n = new si(e); 54345 return t.kind = n.kind, t.src = n.src, t.srclang = n.language, t.label = n.label, t["default"] = n["default"], Object.defineProperties(Ue(t), { 54346 readyState: { 54347 get: function get() { 54348 return i; 54349 } 54350 }, 54351 track: { 54352 get: function get() { 54353 return n; 54354 } 54355 } 54356 }), i = 0, n.addEventListener("loadeddata", function () { 54357 i = 2, t.trigger({ 54358 type: "load", 54359 target: Ue(t) 54360 }); 54361 }), t; 54362 } 54363 54364 return He(e, r), e; 54365 }(ye); 54366 54367 ui.prototype.allowedEvents_ = { 54368 load: "load" 54369 }, ui.NONE = 0, ui.LOADING = 1, ui.LOADED = 2, ui.ERROR = 3; 54370 var li = { 54371 audio: { 54372 ListClass: Bt, 54373 TrackClass: ai, 54374 capitalName: "Audio" 54375 }, 54376 video: { 54377 ListClass: jt, 54378 TrackClass: oi, 54379 capitalName: "Video" 54380 }, 54381 text: { 54382 ListClass: Ft, 54383 TrackClass: si, 54384 capitalName: "Text" 54385 } 54386 }; 54387 Object.keys(li).forEach(function (e) { 54388 li[e].getterName = e + "Tracks", li[e].privateName = e + "Tracks_"; 54389 }); 54390 var ci = { 54391 remoteText: { 54392 ListClass: Ft, 54393 TrackClass: si, 54394 capitalName: "RemoteText", 54395 getterName: "remoteTextTracks", 54396 privateName: "remoteTextTracks_" 54397 }, 54398 remoteTextEl: { 54399 ListClass: Ht, 54400 TrackClass: ui, 54401 capitalName: "RemoteTextTrackEls", 54402 getterName: "remoteTextTrackEls", 54403 privateName: "remoteTextTrackEls_" 54404 } 54405 }, 54406 hi = r({}, li, ci); 54407 ci.names = Object.keys(ci), li.names = Object.keys(li), hi.names = [].concat(ci.names).concat(li.names); 54408 54409 var di = Object.create || function (e) { 54410 if (1 !== arguments.length) throw new Error("Object.create shim only accepts one parameter."); 54411 return pi.prototype = e, new pi(); 54412 }; 54413 54414 function pi() {} 54415 54416 function fi(e, t) { 54417 this.name = "ParsingError", this.code = e.code, this.message = t || e.message; 54418 } 54419 54420 function mi(e) { 54421 function t(e, t, i, n) { 54422 return 3600 * (0 | e) + 60 * (0 | t) + (0 | i) + (0 | n) / 1e3; 54423 } 54424 54425 var i = e.match(/^(\d+):(\d{1,2})(:\d{1,2})?\.(\d{3})/); 54426 return i ? i[3] ? t(i[1], i[2], i[3].replace(":", ""), i[4]) : 59 < i[1] ? t(i[1], i[2], 0, i[4]) : t(0, i[1], i[2], i[4]) : null; 54427 } 54428 54429 function gi() { 54430 this.values = di(null); 54431 } 54432 54433 function vi(e, t, i, n) { 54434 var r = n ? e.split(n) : [e]; 54435 54436 for (var s in r) { 54437 if ("string" == typeof r[s]) { 54438 var a = r[s].split(i); 54439 if (2 === a.length) t(a[0], a[1]); 54440 } 54441 } 54442 } 54443 54444 function yi(t, e, a) { 54445 var i = t; 54446 54447 function n() { 54448 var e = mi(t); 54449 if (null === e) throw new fi(fi.Errors.BadTimeStamp, "Malformed timestamp: " + i); 54450 return t = t.replace(/^[^\sa-zA-Z-]+/, ""), e; 54451 } 54452 54453 function r() { 54454 t = t.replace(/^\s+/, ""); 54455 } 54456 54457 if (r(), e.startTime = n(), r(), "--\x3e" !== t.substr(0, 3)) throw new fi(fi.Errors.BadTimeStamp, "Malformed time stamp (time stamps must be separated by '--\x3e'): " + i); 54458 t = t.substr(3), r(), e.endTime = n(), r(), function (e, t) { 54459 var s = new gi(); 54460 vi(e, function (e, t) { 54461 switch (e) { 54462 case "region": 54463 for (var i = a.length - 1; 0 <= i; i--) { 54464 if (a[i].id === t) { 54465 s.set(e, a[i].region); 54466 break; 54467 } 54468 } 54469 54470 break; 54471 54472 case "vertical": 54473 s.alt(e, t, ["rl", "lr"]); 54474 break; 54475 54476 case "line": 54477 var n = t.split(","), 54478 r = n[0]; 54479 s.integer(e, r), s.percent(e, r) && s.set("snapToLines", !1), s.alt(e, r, ["auto"]), 2 === n.length && s.alt("lineAlign", n[1], ["start", "center", "end"]); 54480 break; 54481 54482 case "position": 54483 n = t.split(","), s.percent(e, n[0]), 2 === n.length && s.alt("positionAlign", n[1], ["start", "center", "end"]); 54484 break; 54485 54486 case "size": 54487 s.percent(e, t); 54488 break; 54489 54490 case "align": 54491 s.alt(e, t, ["start", "center", "end", "left", "right"]); 54492 } 54493 }, /:/, /\s/), t.region = s.get("region", null), t.vertical = s.get("vertical", ""); 54494 54495 try { 54496 t.line = s.get("line", "auto"); 54497 } catch (e) {} 54498 54499 t.lineAlign = s.get("lineAlign", "start"), t.snapToLines = s.get("snapToLines", !0), t.size = s.get("size", 100); 54500 54501 try { 54502 t.align = s.get("align", "center"); 54503 } catch (e) { 54504 t.align = s.get("align", "middle"); 54505 } 54506 54507 try { 54508 t.position = s.get("position", "auto"); 54509 } catch (e) { 54510 t.position = s.get("position", { 54511 start: 0, 54512 left: 0, 54513 center: 50, 54514 middle: 50, 54515 end: 100, 54516 right: 100 54517 }, t.align); 54518 } 54519 54520 t.positionAlign = s.get("positionAlign", { 54521 start: "start", 54522 left: "start", 54523 center: "center", 54524 middle: "center", 54525 end: "end", 54526 right: "end" 54527 }, t.align); 54528 }(t, e); 54529 } 54530 54531 ((fi.prototype = di(Error.prototype)).constructor = fi).Errors = { 54532 BadSignature: { 54533 code: 0, 54534 message: "Malformed WebVTT signature." 54535 }, 54536 BadTimeStamp: { 54537 code: 1, 54538 message: "Malformed time stamp." 54539 } 54540 }, gi.prototype = { 54541 set: function set(e, t) { 54542 this.get(e) || "" === t || (this.values[e] = t); 54543 }, 54544 get: function get(e, t, i) { 54545 return i ? this.has(e) ? this.values[e] : t[i] : this.has(e) ? this.values[e] : t; 54546 }, 54547 has: function has(e) { 54548 return e in this.values; 54549 }, 54550 alt: function alt(e, t, i) { 54551 for (var n = 0; n < i.length; ++n) { 54552 if (t === i[n]) { 54553 this.set(e, t); 54554 break; 54555 } 54556 } 54557 }, 54558 integer: function integer(e, t) { 54559 /^-?\d+$/.test(t) && this.set(e, parseInt(t, 10)); 54560 }, 54561 percent: function percent(e, t) { 54562 return !!(t.match(/^([\d]{1,3})(\.[\d]*)?%$/) && 0 <= (t = parseFloat(t)) && t <= 100) && (this.set(e, t), !0); 54563 } 54564 }; 54565 54566 var _i = h.createElement("textarea"), 54567 bi = { 54568 c: "span", 54569 i: "i", 54570 b: "b", 54571 u: "u", 54572 ruby: "ruby", 54573 rt: "rt", 54574 v: "span", 54575 lang: "span" 54576 }, 54577 Ti = { 54578 white: "rgba(255,255,255,1)", 54579 lime: "rgba(0,255,0,1)", 54580 cyan: "rgba(0,255,255,1)", 54581 red: "rgba(255,0,0,1)", 54582 yellow: "rgba(255,255,0,1)", 54583 magenta: "rgba(255,0,255,1)", 54584 blue: "rgba(0,0,255,1)", 54585 black: "rgba(0,0,0,1)" 54586 }, 54587 Si = { 54588 v: "title", 54589 lang: "lang" 54590 }, 54591 ki = { 54592 rt: "ruby" 54593 }; 54594 54595 function Ci(s, i) { 54596 function e() { 54597 if (!i) return null; 54598 var e, 54599 t = i.match(/^([^<]*)(<[^>]*>?)?/); 54600 return e = t[1] ? t[1] : t[2], i = i.substr(e.length), e; 54601 } 54602 54603 function t(e, t) { 54604 var i = bi[e]; 54605 if (!i) return null; 54606 var n = s.document.createElement(i), 54607 r = Si[e]; 54608 return r && t && (n[r] = t.trim()), n; 54609 } 54610 54611 for (var n, r, a, o, u = s.document.createElement("div"), l = u, c = []; null !== (n = e());) { 54612 if ("<" !== n[0]) l.appendChild(s.document.createTextNode((r = n, _i.innerHTML = r, r = _i.textContent, _i.textContent = "", r)));else { 54613 if ("/" === n[1]) { 54614 c.length && c[c.length - 1] === n.substr(2).replace(">", "") && (c.pop(), l = l.parentNode); 54615 continue; 54616 } 54617 54618 var h, 54619 d = mi(n.substr(1, n.length - 2)); 54620 54621 if (d) { 54622 h = s.document.createProcessingInstruction("timestamp", d), l.appendChild(h); 54623 continue; 54624 } 54625 54626 var p = n.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/); 54627 if (!p) continue; 54628 if (!(h = t(p[1], p[3]))) continue; 54629 if (a = l, ki[(o = h).localName] && ki[o.localName] !== a.localName) continue; 54630 54631 if (p[2]) { 54632 var f = p[2].split("."); 54633 f.forEach(function (e) { 54634 var t = /^bg_/.test(e), 54635 i = t ? e.slice(3) : e; 54636 54637 if (Ti.hasOwnProperty(i)) { 54638 var n = t ? "background-color" : "color", 54639 r = Ti[i]; 54640 h.style[n] = r; 54641 } 54642 }), h.className = f.join(" "); 54643 } 54644 54645 c.push(p[1]), l.appendChild(h), l = h; 54646 } 54647 } 54648 54649 return u; 54650 } 54651 54652 var wi = [[1470, 1470], [1472, 1472], [1475, 1475], [1478, 1478], [1488, 1514], [1520, 1524], [1544, 1544], [1547, 1547], [1549, 1549], [1563, 1563], [1566, 1610], [1645, 1647], [1649, 1749], [1765, 1766], [1774, 1775], [1786, 1805], [1807, 1808], [1810, 1839], [1869, 1957], [1969, 1969], [1984, 2026], [2036, 2037], [2042, 2042], [2048, 2069], [2074, 2074], [2084, 2084], [2088, 2088], [2096, 2110], [2112, 2136], [2142, 2142], [2208, 2208], [2210, 2220], [8207, 8207], [64285, 64285], [64287, 64296], [64298, 64310], [64312, 64316], [64318, 64318], [64320, 64321], [64323, 64324], [64326, 64449], [64467, 64829], [64848, 64911], [64914, 64967], [65008, 65020], [65136, 65140], [65142, 65276], [67584, 67589], [67592, 67592], [67594, 67637], [67639, 67640], [67644, 67644], [67647, 67669], [67671, 67679], [67840, 67867], [67872, 67897], [67903, 67903], [67968, 68023], [68030, 68031], [68096, 68096], [68112, 68115], [68117, 68119], [68121, 68147], [68160, 68167], [68176, 68184], [68192, 68223], [68352, 68405], [68416, 68437], [68440, 68466], [68472, 68479], [68608, 68680], [126464, 126467], [126469, 126495], [126497, 126498], [126500, 126500], [126503, 126503], [126505, 126514], [126516, 126519], [126521, 126521], [126523, 126523], [126530, 126530], [126535, 126535], [126537, 126537], [126539, 126539], [126541, 126543], [126545, 126546], [126548, 126548], [126551, 126551], [126553, 126553], [126555, 126555], [126557, 126557], [126559, 126559], [126561, 126562], [126564, 126564], [126567, 126570], [126572, 126578], [126580, 126583], [126585, 126588], [126590, 126590], [126592, 126601], [126603, 126619], [126625, 126627], [126629, 126633], [126635, 126651], [1114109, 1114109]]; 54653 54654 function Ei(e) { 54655 for (var t = 0; t < wi.length; t++) { 54656 var i = wi[t]; 54657 if (e >= i[0] && e <= i[1]) return !0; 54658 } 54659 54660 return !1; 54661 } 54662 54663 function xi() {} 54664 54665 function Ai(e, t, i) { 54666 xi.call(this), this.cue = t, this.cueDiv = Ci(e, t.text); 54667 var n = { 54668 color: "rgba(255, 255, 255, 1)", 54669 backgroundColor: "rgba(0, 0, 0, 0.8)", 54670 position: "relative", 54671 left: 0, 54672 right: 0, 54673 top: 0, 54674 bottom: 0, 54675 display: "inline", 54676 writingMode: "" === t.vertical ? "horizontal-tb" : "lr" === t.vertical ? "vertical-lr" : "vertical-rl", 54677 unicodeBidi: "plaintext" 54678 }; 54679 this.applyStyles(n, this.cueDiv), this.div = e.document.createElement("div"), n = { 54680 direction: function (e) { 54681 var t = [], 54682 i = ""; 54683 if (!e || !e.childNodes) return "ltr"; 54684 54685 function r(e, t) { 54686 for (var i = t.childNodes.length - 1; 0 <= i; i--) { 54687 e.push(t.childNodes[i]); 54688 } 54689 } 54690 54691 function s(e) { 54692 if (!e || !e.length) return null; 54693 var t = e.pop(), 54694 i = t.textContent || t.innerText; 54695 54696 if (i) { 54697 var n = i.match(/^.*(\n|\r)/); 54698 return n ? n[e.length = 0] : i; 54699 } 54700 54701 return "ruby" === t.tagName ? s(e) : t.childNodes ? (r(e, t), s(e)) : void 0; 54702 } 54703 54704 for (r(t, e); i = s(t);) { 54705 for (var n = 0; n < i.length; n++) { 54706 if (Ei(i.charCodeAt(n))) return "rtl"; 54707 } 54708 } 54709 54710 return "ltr"; 54711 }(this.cueDiv), 54712 writingMode: "" === t.vertical ? "horizontal-tb" : "lr" === t.vertical ? "vertical-lr" : "vertical-rl", 54713 unicodeBidi: "plaintext", 54714 textAlign: "middle" === t.align ? "center" : t.align, 54715 font: i.font, 54716 whiteSpace: "pre-line", 54717 position: "absolute" 54718 }, this.applyStyles(n), this.div.appendChild(this.cueDiv); 54719 var r = 0; 54720 54721 switch (t.positionAlign) { 54722 case "start": 54723 r = t.position; 54724 break; 54725 54726 case "center": 54727 r = t.position - t.size / 2; 54728 break; 54729 54730 case "end": 54731 r = t.position - t.size; 54732 } 54733 54734 "" === t.vertical ? this.applyStyles({ 54735 left: this.formatStyle(r, "%"), 54736 width: this.formatStyle(t.size, "%") 54737 }) : this.applyStyles({ 54738 top: this.formatStyle(r, "%"), 54739 height: this.formatStyle(t.size, "%") 54740 }), this.move = function (e) { 54741 this.applyStyles({ 54742 top: this.formatStyle(e.top, "px"), 54743 bottom: this.formatStyle(e.bottom, "px"), 54744 left: this.formatStyle(e.left, "px"), 54745 right: this.formatStyle(e.right, "px"), 54746 height: this.formatStyle(e.height, "px"), 54747 width: this.formatStyle(e.width, "px") 54748 }); 54749 }; 54750 } 54751 54752 function Ii(e) { 54753 var t, i, n, r; 54754 54755 if (e.div) { 54756 i = e.div.offsetHeight, n = e.div.offsetWidth, r = e.div.offsetTop; 54757 var s = (s = e.div.childNodes) && (s = s[0]) && s.getClientRects && s.getClientRects(); 54758 e = e.div.getBoundingClientRect(), t = s ? Math.max(s[0] && s[0].height || 0, e.height / s.length) : 0; 54759 } 54760 54761 this.left = e.left, this.right = e.right, this.top = e.top || r, this.height = e.height || i, this.bottom = e.bottom || r + (e.height || i), this.width = e.width || n, this.lineHeight = void 0 !== t ? t : e.lineHeight; 54762 } 54763 54764 function Pi(e, t, o, u) { 54765 var i = new Ii(t), 54766 n = t.cue, 54767 r = function (e) { 54768 if ("number" == typeof e.line && (e.snapToLines || 0 <= e.line && e.line <= 100)) return e.line; 54769 if (!e.track || !e.track.textTrackList || !e.track.textTrackList.mediaElement) return -1; 54770 54771 for (var t = e.track, i = t.textTrackList, n = 0, r = 0; r < i.length && i[r] !== t; r++) { 54772 "showing" === i[r].mode && n++; 54773 } 54774 54775 return -1 * ++n; 54776 }(n), 54777 s = []; 54778 54779 if (n.snapToLines) { 54780 var a; 54781 54782 switch (n.vertical) { 54783 case "": 54784 s = ["+y", "-y"], a = "height"; 54785 break; 54786 54787 case "rl": 54788 s = ["+x", "-x"], a = "width"; 54789 break; 54790 54791 case "lr": 54792 s = ["-x", "+x"], a = "width"; 54793 } 54794 54795 var l = i.lineHeight, 54796 c = l * Math.round(r), 54797 h = o[a] + l, 54798 d = s[0]; 54799 Math.abs(c) > h && (c = c < 0 ? -1 : 1, c *= Math.ceil(h / l) * l), r < 0 && (c += "" === n.vertical ? o.height : o.width, s = s.reverse()), i.move(d, c); 54800 } else { 54801 var p = i.lineHeight / o.height * 100; 54802 54803 switch (n.lineAlign) { 54804 case "center": 54805 r -= p / 2; 54806 break; 54807 54808 case "end": 54809 r -= p; 54810 } 54811 54812 switch (n.vertical) { 54813 case "": 54814 t.applyStyles({ 54815 top: t.formatStyle(r, "%") 54816 }); 54817 break; 54818 54819 case "rl": 54820 t.applyStyles({ 54821 left: t.formatStyle(r, "%") 54822 }); 54823 break; 54824 54825 case "lr": 54826 t.applyStyles({ 54827 right: t.formatStyle(r, "%") 54828 }); 54829 } 54830 54831 s = ["+y", "-x", "+x", "-y"], i = new Ii(t); 54832 } 54833 54834 var f = function (e, t) { 54835 for (var i, n = new Ii(e), r = 1, s = 0; s < t.length; s++) { 54836 for (; e.overlapsOppositeAxis(o, t[s]) || e.within(o) && e.overlapsAny(u);) { 54837 e.move(t[s]); 54838 } 54839 54840 if (e.within(o)) return e; 54841 var a = e.intersectPercentage(o); 54842 a < r && (i = new Ii(e), r = a), e = new Ii(n); 54843 } 54844 54845 return i || n; 54846 }(i, s); 54847 54848 t.move(f.toCSSCompatValues(o)); 54849 } 54850 54851 function Li() {} 54852 54853 xi.prototype.applyStyles = function (e, t) { 54854 for (var i in t = t || this.div, e) { 54855 e.hasOwnProperty(i) && (t.style[i] = e[i]); 54856 } 54857 }, xi.prototype.formatStyle = function (e, t) { 54858 return 0 === e ? 0 : e + t; 54859 }, (Ai.prototype = di(xi.prototype)).constructor = Ai, Ii.prototype.move = function (e, t) { 54860 switch (t = void 0 !== t ? t : this.lineHeight, e) { 54861 case "+x": 54862 this.left += t, this.right += t; 54863 break; 54864 54865 case "-x": 54866 this.left -= t, this.right -= t; 54867 break; 54868 54869 case "+y": 54870 this.top += t, this.bottom += t; 54871 break; 54872 54873 case "-y": 54874 this.top -= t, this.bottom -= t; 54875 } 54876 }, Ii.prototype.overlaps = function (e) { 54877 return this.left < e.right && this.right > e.left && this.top < e.bottom && this.bottom > e.top; 54878 }, Ii.prototype.overlapsAny = function (e) { 54879 for (var t = 0; t < e.length; t++) { 54880 if (this.overlaps(e[t])) return !0; 54881 } 54882 54883 return !1; 54884 }, Ii.prototype.within = function (e) { 54885 return this.top >= e.top && this.bottom <= e.bottom && this.left >= e.left && this.right <= e.right; 54886 }, Ii.prototype.overlapsOppositeAxis = function (e, t) { 54887 switch (t) { 54888 case "+x": 54889 return this.left < e.left; 54890 54891 case "-x": 54892 return this.right > e.right; 54893 54894 case "+y": 54895 return this.top < e.top; 54896 54897 case "-y": 54898 return this.bottom > e.bottom; 54899 } 54900 }, Ii.prototype.intersectPercentage = function (e) { 54901 return Math.max(0, Math.min(this.right, e.right) - Math.max(this.left, e.left)) * Math.max(0, Math.min(this.bottom, e.bottom) - Math.max(this.top, e.top)) / (this.height * this.width); 54902 }, Ii.prototype.toCSSCompatValues = function (e) { 54903 return { 54904 top: this.top - e.top, 54905 bottom: e.bottom - this.bottom, 54906 left: this.left - e.left, 54907 right: e.right - this.right, 54908 height: this.height, 54909 width: this.width 54910 }; 54911 }, Ii.getSimpleBoxPosition = function (e) { 54912 var t = e.div ? e.div.offsetHeight : e.tagName ? e.offsetHeight : 0, 54913 i = e.div ? e.div.offsetWidth : e.tagName ? e.offsetWidth : 0, 54914 n = e.div ? e.div.offsetTop : e.tagName ? e.offsetTop : 0; 54915 return { 54916 left: (e = e.div ? e.div.getBoundingClientRect() : e.tagName ? e.getBoundingClientRect() : e).left, 54917 right: e.right, 54918 top: e.top || n, 54919 height: e.height || t, 54920 bottom: e.bottom || n + (e.height || t), 54921 width: e.width || i 54922 }; 54923 }, Li.StringDecoder = function () { 54924 return { 54925 decode: function decode(e) { 54926 if (!e) return ""; 54927 if ("string" != typeof e) throw new Error("Error - expected string data."); 54928 return decodeURIComponent(encodeURIComponent(e)); 54929 } 54930 }; 54931 }, Li.convertCueToDOMTree = function (e, t) { 54932 return e && t ? Ci(e, t) : null; 54933 }; 54934 Li.processCues = function (n, r, e) { 54935 if (!n || !r || !e) return null; 54936 54937 for (; e.firstChild;) { 54938 e.removeChild(e.firstChild); 54939 } 54940 54941 var s = n.document.createElement("div"); 54942 54943 if (s.style.position = "absolute", s.style.left = "0", s.style.right = "0", s.style.top = "0", s.style.bottom = "0", s.style.margin = "1.5%", e.appendChild(s), function (e) { 54944 for (var t = 0; t < e.length; t++) { 54945 if (e[t].hasBeenReset || !e[t].displayState) return !0; 54946 } 54947 54948 return !1; 54949 }(r)) { 54950 var a = [], 54951 o = Ii.getSimpleBoxPosition(s), 54952 u = { 54953 font: Math.round(.05 * o.height * 100) / 100 + "px sans-serif" 54954 }; 54955 !function () { 54956 for (var e, t, i = 0; i < r.length; i++) { 54957 t = r[i], e = new Ai(n, t, u), s.appendChild(e.div), Pi(0, e, o, a), t.displayState = e.div, a.push(Ii.getSimpleBoxPosition(e)); 54958 } 54959 }(); 54960 } else for (var t = 0; t < r.length; t++) { 54961 s.appendChild(r[t].displayState); 54962 } 54963 }, (Li.Parser = function (e, t, i) { 54964 i || (i = t, t = {}), t = t || {}, this.window = e, this.vttjs = t, this.state = "INITIAL", this.buffer = "", this.decoder = i || new TextDecoder("utf8"), this.regionList = []; 54965 }).prototype = { 54966 reportOrThrowError: function reportOrThrowError(e) { 54967 if (!(e instanceof fi)) throw e; 54968 this.onparsingerror && this.onparsingerror(e); 54969 }, 54970 parse: function parse(e) { 54971 var n = this; 54972 54973 function t() { 54974 for (var e = n.buffer, t = 0; t < e.length && "\r" !== e[t] && "\n" !== e[t];) { 54975 ++t; 54976 } 54977 54978 var i = e.substr(0, t); 54979 return "\r" === e[t] && ++t, "\n" === e[t] && ++t, n.buffer = e.substr(t), i; 54980 } 54981 54982 function i(e) { 54983 e.match(/X-TIMESTAMP-MAP/) ? vi(e, function (e, t) { 54984 switch (e) { 54985 case "X-TIMESTAMP-MAP": 54986 !function (e) { 54987 var i = new gi(); 54988 vi(e, function (e, t) { 54989 switch (e) { 54990 case "MPEGT": 54991 i.integer(e + "S", t); 54992 break; 54993 54994 case "LOCA": 54995 i.set(e + "L", mi(t)); 54996 } 54997 }, /[^\d]:/, /,/), n.ontimestampmap && n.ontimestampmap({ 54998 MPEGTS: i.get("MPEGTS"), 54999 LOCAL: i.get("LOCAL") 55000 }); 55001 }(t); 55002 } 55003 }, /=/) : vi(e, function (e, t) { 55004 switch (e) { 55005 case "Region": 55006 !function (e) { 55007 var r = new gi(); 55008 55009 if (vi(e, function (e, t) { 55010 switch (e) { 55011 case "id": 55012 r.set(e, t); 55013 break; 55014 55015 case "width": 55016 r.percent(e, t); 55017 break; 55018 55019 case "lines": 55020 r.integer(e, t); 55021 break; 55022 55023 case "regionanchor": 55024 case "viewportanchor": 55025 var i = t.split(","); 55026 if (2 !== i.length) break; 55027 var n = new gi(); 55028 if (n.percent("x", i[0]), n.percent("y", i[1]), !n.has("x") || !n.has("y")) break; 55029 r.set(e + "X", n.get("x")), r.set(e + "Y", n.get("y")); 55030 break; 55031 55032 case "scroll": 55033 r.alt(e, t, ["up"]); 55034 } 55035 }, /=/, /\s/), r.has("id")) { 55036 var t = new (n.vttjs.VTTRegion || n.window.VTTRegion)(); 55037 t.width = r.get("width", 100), t.lines = r.get("lines", 3), t.regionAnchorX = r.get("regionanchorX", 0), t.regionAnchorY = r.get("regionanchorY", 100), t.viewportAnchorX = r.get("viewportanchorX", 0), t.viewportAnchorY = r.get("viewportanchorY", 100), t.scroll = r.get("scroll", ""), n.onregion && n.onregion(t), n.regionList.push({ 55038 id: r.get("id"), 55039 region: t 55040 }); 55041 } 55042 }(t); 55043 } 55044 }, /:/); 55045 } 55046 55047 e && (n.buffer += n.decoder.decode(e, { 55048 stream: !0 55049 })); 55050 55051 try { 55052 var r; 55053 55054 if ("INITIAL" === n.state) { 55055 if (!/\r\n|\n/.test(n.buffer)) return this; 55056 var s = (r = t()).match(/^WEBVTT([ \t].*)?$/); 55057 if (!s || !s[0]) throw new fi(fi.Errors.BadSignature); 55058 n.state = "HEADER"; 55059 } 55060 55061 for (var a = !1; n.buffer;) { 55062 if (!/\r\n|\n/.test(n.buffer)) return this; 55063 55064 switch (a ? a = !1 : r = t(), n.state) { 55065 case "HEADER": 55066 /:/.test(r) ? i(r) : r || (n.state = "ID"); 55067 continue; 55068 55069 case "NOTE": 55070 r || (n.state = "ID"); 55071 continue; 55072 55073 case "ID": 55074 if (/^NOTE($|[ \t])/.test(r)) { 55075 n.state = "NOTE"; 55076 break; 55077 } 55078 55079 if (!r) continue; 55080 n.cue = new (n.vttjs.VTTCue || n.window.VTTCue)(0, 0, ""); 55081 55082 try { 55083 n.cue.align = "center"; 55084 } catch (e) { 55085 n.cue.align = "middle"; 55086 } 55087 55088 if (n.state = "CUE", -1 === r.indexOf("--\x3e")) { 55089 n.cue.id = r; 55090 continue; 55091 } 55092 55093 case "CUE": 55094 try { 55095 yi(r, n.cue, n.regionList); 55096 } catch (e) { 55097 n.reportOrThrowError(e), n.cue = null, n.state = "BADCUE"; 55098 continue; 55099 } 55100 55101 n.state = "CUETEXT"; 55102 continue; 55103 55104 case "CUETEXT": 55105 var o = -1 !== r.indexOf("--\x3e"); 55106 55107 if (!r || o && (a = !0)) { 55108 n.oncue && n.oncue(n.cue), n.cue = null, n.state = "ID"; 55109 continue; 55110 } 55111 55112 n.cue.text && (n.cue.text += "\n"), n.cue.text += r.replace(/\u2028/g, "\n").replace(/u2029/g, "\n"); 55113 continue; 55114 55115 case "BADCUE": 55116 r || (n.state = "ID"); 55117 continue; 55118 } 55119 } 55120 } catch (e) { 55121 n.reportOrThrowError(e), "CUETEXT" === n.state && n.cue && n.oncue && n.oncue(n.cue), n.cue = null, n.state = "INITIAL" === n.state ? "BADWEBVTT" : "BADCUE"; 55122 } 55123 55124 return this; 55125 }, 55126 flush: function flush() { 55127 var t = this; 55128 55129 try { 55130 if (t.buffer += t.decoder.decode(), !t.cue && "HEADER" !== t.state || (t.buffer += "\n\n", t.parse()), "INITIAL" === t.state) throw new fi(fi.Errors.BadSignature); 55131 } catch (e) { 55132 t.reportOrThrowError(e); 55133 } 55134 55135 return t.onflush && t.onflush(), this; 55136 } 55137 }; 55138 var Oi = Li, 55139 Di = { 55140 "": 1, 55141 lr: 1, 55142 rl: 1 55143 }, 55144 Ni = { 55145 start: 1, 55146 center: 1, 55147 end: 1, 55148 left: 1, 55149 right: 1, 55150 auto: 1, 55151 "line-left": 1, 55152 "line-right": 1 55153 }; 55154 55155 function Ri(e) { 55156 return "string" == typeof e && !!Ni[e.toLowerCase()] && e.toLowerCase(); 55157 } 55158 55159 function Ui(e, t, i) { 55160 this.hasBeenReset = !1; 55161 var n = "", 55162 r = !1, 55163 s = e, 55164 a = t, 55165 o = i, 55166 u = null, 55167 l = "", 55168 c = !0, 55169 h = "auto", 55170 d = "start", 55171 p = "auto", 55172 f = "auto", 55173 m = 100, 55174 g = "center"; 55175 Object.defineProperties(this, { 55176 id: { 55177 enumerable: !0, 55178 get: function get() { 55179 return n; 55180 }, 55181 set: function set(e) { 55182 n = "" + e; 55183 } 55184 }, 55185 pauseOnExit: { 55186 enumerable: !0, 55187 get: function get() { 55188 return r; 55189 }, 55190 set: function set(e) { 55191 r = !!e; 55192 } 55193 }, 55194 startTime: { 55195 enumerable: !0, 55196 get: function get() { 55197 return s; 55198 }, 55199 set: function set(e) { 55200 if ("number" != typeof e) throw new TypeError("Start time must be set to a number."); 55201 s = e, this.hasBeenReset = !0; 55202 } 55203 }, 55204 endTime: { 55205 enumerable: !0, 55206 get: function get() { 55207 return a; 55208 }, 55209 set: function set(e) { 55210 if ("number" != typeof e) throw new TypeError("End time must be set to a number."); 55211 a = e, this.hasBeenReset = !0; 55212 } 55213 }, 55214 text: { 55215 enumerable: !0, 55216 get: function get() { 55217 return o; 55218 }, 55219 set: function set(e) { 55220 o = "" + e, this.hasBeenReset = !0; 55221 } 55222 }, 55223 region: { 55224 enumerable: !0, 55225 get: function get() { 55226 return u; 55227 }, 55228 set: function set(e) { 55229 u = e, this.hasBeenReset = !0; 55230 } 55231 }, 55232 vertical: { 55233 enumerable: !0, 55234 get: function get() { 55235 return l; 55236 }, 55237 set: function set(e) { 55238 var t = function (e) { 55239 return "string" == typeof e && !!Di[e.toLowerCase()] && e.toLowerCase(); 55240 }(e); 55241 55242 if (!1 === t) throw new SyntaxError("Vertical: an invalid or illegal direction string was specified."); 55243 l = t, this.hasBeenReset = !0; 55244 } 55245 }, 55246 snapToLines: { 55247 enumerable: !0, 55248 get: function get() { 55249 return c; 55250 }, 55251 set: function set(e) { 55252 c = !!e, this.hasBeenReset = !0; 55253 } 55254 }, 55255 line: { 55256 enumerable: !0, 55257 get: function get() { 55258 return h; 55259 }, 55260 set: function set(e) { 55261 if ("number" != typeof e && "auto" !== e) throw new SyntaxError("Line: an invalid number or illegal string was specified."); 55262 h = e, this.hasBeenReset = !0; 55263 } 55264 }, 55265 lineAlign: { 55266 enumerable: !0, 55267 get: function get() { 55268 return d; 55269 }, 55270 set: function set(e) { 55271 var t = Ri(e); 55272 t && (d = t, this.hasBeenReset = !0); 55273 } 55274 }, 55275 position: { 55276 enumerable: !0, 55277 get: function get() { 55278 return p; 55279 }, 55280 set: function set(e) { 55281 if (e < 0 || 100 < e) throw new Error("Position must be between 0 and 100."); 55282 p = e, this.hasBeenReset = !0; 55283 } 55284 }, 55285 positionAlign: { 55286 enumerable: !0, 55287 get: function get() { 55288 return f; 55289 }, 55290 set: function set(e) { 55291 var t = Ri(e); 55292 t && (f = t, this.hasBeenReset = !0); 55293 } 55294 }, 55295 size: { 55296 enumerable: !0, 55297 get: function get() { 55298 return m; 55299 }, 55300 set: function set(e) { 55301 if (e < 0 || 100 < e) throw new Error("Size must be between 0 and 100."); 55302 m = e, this.hasBeenReset = !0; 55303 } 55304 }, 55305 align: { 55306 enumerable: !0, 55307 get: function get() { 55308 return g; 55309 }, 55310 set: function set(e) { 55311 var t = Ri(e); 55312 if (!t) throw new SyntaxError("align: an invalid or illegal alignment string was specified."); 55313 g = t, this.hasBeenReset = !0; 55314 } 55315 } 55316 }), this.displayState = void 0; 55317 } 55318 55319 Ui.prototype.getCueAsHTML = function () { 55320 return WebVTT.convertCueToDOMTree(window, this.text); 55321 }; 55322 55323 var Mi = Ui, 55324 Bi = { 55325 "": !0, 55326 up: !0 55327 }; 55328 55329 function ji(e) { 55330 return "number" == typeof e && 0 <= e && e <= 100; 55331 } 55332 55333 function Fi() { 55334 var t = 100, 55335 i = 3, 55336 n = 0, 55337 r = 100, 55338 s = 0, 55339 a = 100, 55340 o = ""; 55341 Object.defineProperties(this, { 55342 width: { 55343 enumerable: !0, 55344 get: function get() { 55345 return t; 55346 }, 55347 set: function set(e) { 55348 if (!ji(e)) throw new Error("Width must be between 0 and 100."); 55349 t = e; 55350 } 55351 }, 55352 lines: { 55353 enumerable: !0, 55354 get: function get() { 55355 return i; 55356 }, 55357 set: function set(e) { 55358 if ("number" != typeof e) throw new TypeError("Lines must be set to a number."); 55359 i = e; 55360 } 55361 }, 55362 regionAnchorY: { 55363 enumerable: !0, 55364 get: function get() { 55365 return r; 55366 }, 55367 set: function set(e) { 55368 if (!ji(e)) throw new Error("RegionAnchorX must be between 0 and 100."); 55369 r = e; 55370 } 55371 }, 55372 regionAnchorX: { 55373 enumerable: !0, 55374 get: function get() { 55375 return n; 55376 }, 55377 set: function set(e) { 55378 if (!ji(e)) throw new Error("RegionAnchorY must be between 0 and 100."); 55379 n = e; 55380 } 55381 }, 55382 viewportAnchorY: { 55383 enumerable: !0, 55384 get: function get() { 55385 return a; 55386 }, 55387 set: function set(e) { 55388 if (!ji(e)) throw new Error("ViewportAnchorY must be between 0 and 100."); 55389 a = e; 55390 } 55391 }, 55392 viewportAnchorX: { 55393 enumerable: !0, 55394 get: function get() { 55395 return s; 55396 }, 55397 set: function set(e) { 55398 if (!ji(e)) throw new Error("ViewportAnchorX must be between 0 and 100."); 55399 s = e; 55400 } 55401 }, 55402 scroll: { 55403 enumerable: !0, 55404 get: function get() { 55405 return o; 55406 }, 55407 set: function set(e) { 55408 var t = function (e) { 55409 return "string" == typeof e && !!Bi[e.toLowerCase()] && e.toLowerCase(); 55410 }(e); 55411 55412 !1 === t || (o = t); 55413 } 55414 } 55415 }); 55416 } 55417 55418 var Hi = t(function (e) { 55419 var t = e.exports = { 55420 WebVTT: Oi, 55421 VTTCue: Mi, 55422 VTTRegion: Fi 55423 }; 55424 y.vttjs = t, y.WebVTT = t.WebVTT; 55425 var i = t.VTTCue, 55426 n = t.VTTRegion, 55427 r = y.VTTCue, 55428 s = y.VTTRegion; 55429 t.shim = function () { 55430 y.VTTCue = i, y.VTTRegion = n; 55431 }, t.restore = function () { 55432 y.VTTCue = r, y.VTTRegion = s; 55433 }, y.VTTCue || t.shim(); 55434 }); 55435 Hi.WebVTT, Hi.VTTCue, Hi.VTTRegion; 55436 55437 var Vi = function (t) { 55438 function i(i, e) { 55439 var n; 55440 return void 0 === i && (i = {}), void 0 === e && (e = function e() {}), i.reportTouchActivity = !1, (n = t.call(this, null, i, e) || this).hasStarted_ = !1, n.on("playing", function () { 55441 this.hasStarted_ = !0; 55442 }), n.on("loadstart", function () { 55443 this.hasStarted_ = !1; 55444 }), hi.names.forEach(function (e) { 55445 var t = hi[e]; 55446 i && i[t.getterName] && (n[t.privateName] = i[t.getterName]); 55447 }), n.featuresProgressEvents || n.manualProgressOn(), n.featuresTimeupdateEvents || n.manualTimeUpdatesOn(), ["Text", "Audio", "Video"].forEach(function (e) { 55448 !1 === i["native" + e + "Tracks"] && (n["featuresNative" + e + "Tracks"] = !1); 55449 }), !1 === i.nativeCaptions || !1 === i.nativeTextTracks ? n.featuresNativeTextTracks = !1 : !0 !== i.nativeCaptions && !0 !== i.nativeTextTracks || (n.featuresNativeTextTracks = !0), n.featuresNativeTextTracks || n.emulateTextTracks(), n.preloadTextTracks = !1 !== i.preloadTextTracks, n.autoRemoteTextTracks_ = new hi.text.ListClass(), n.initTrackListeners(), i.nativeControlsForTouch || n.emitTapEvents(), n.constructor && (n.name_ = n.constructor.name || "Unknown Tech"), n; 55450 } 55451 55452 He(i, t); 55453 var e = i.prototype; 55454 return e.triggerSourceset = function (e) { 55455 var t = this; 55456 this.isReady_ || this.one("ready", function () { 55457 return t.setTimeout(function () { 55458 return t.triggerSourceset(e); 55459 }, 1); 55460 }), this.trigger({ 55461 src: e, 55462 type: "sourceset" 55463 }); 55464 }, e.manualProgressOn = function () { 55465 this.on("durationchange", this.onDurationChange), this.manualProgress = !0, this.one("ready", this.trackProgress); 55466 }, e.manualProgressOff = function () { 55467 this.manualProgress = !1, this.stopTrackingProgress(), this.off("durationchange", this.onDurationChange); 55468 }, e.trackProgress = function (e) { 55469 this.stopTrackingProgress(), this.progressInterval = this.setInterval(ge(this, function () { 55470 var e = this.bufferedPercent(); 55471 this.bufferedPercent_ !== e && this.trigger("progress"), 1 === (this.bufferedPercent_ = e) && this.stopTrackingProgress(); 55472 }), 500); 55473 }, e.onDurationChange = function (e) { 55474 this.duration_ = this.duration(); 55475 }, e.buffered = function () { 55476 return ht(0, 0); 55477 }, e.bufferedPercent = function () { 55478 return dt(this.buffered(), this.duration_); 55479 }, e.stopTrackingProgress = function () { 55480 this.clearInterval(this.progressInterval); 55481 }, e.manualTimeUpdatesOn = function () { 55482 this.manualTimeUpdates = !0, this.on("play", this.trackCurrentTime), this.on("pause", this.stopTrackingCurrentTime); 55483 }, e.manualTimeUpdatesOff = function () { 55484 this.manualTimeUpdates = !1, this.stopTrackingCurrentTime(), this.off("play", this.trackCurrentTime), this.off("pause", this.stopTrackingCurrentTime); 55485 }, e.trackCurrentTime = function () { 55486 this.currentTimeInterval && this.stopTrackingCurrentTime(), this.currentTimeInterval = this.setInterval(function () { 55487 this.trigger({ 55488 type: "timeupdate", 55489 target: this, 55490 manuallyTriggered: !0 55491 }); 55492 }, 250); 55493 }, e.stopTrackingCurrentTime = function () { 55494 this.clearInterval(this.currentTimeInterval), this.trigger({ 55495 type: "timeupdate", 55496 target: this, 55497 manuallyTriggered: !0 55498 }); 55499 }, e.dispose = function () { 55500 this.clearTracks(li.names), this.manualProgress && this.manualProgressOff(), this.manualTimeUpdates && this.manualTimeUpdatesOff(), t.prototype.dispose.call(this); 55501 }, e.clearTracks = function (e) { 55502 var r = this; 55503 (e = [].concat(e)).forEach(function (e) { 55504 for (var t = r[e + "Tracks"]() || [], i = t.length; i--;) { 55505 var n = t[i]; 55506 "text" === e && r.removeRemoteTextTrack(n), t.removeTrack(n); 55507 } 55508 }); 55509 }, e.cleanupAutoTextTracks = function () { 55510 for (var e = this.autoRemoteTextTracks_ || [], t = e.length; t--;) { 55511 var i = e[t]; 55512 this.removeRemoteTextTrack(i); 55513 } 55514 }, e.reset = function () {}, e.error = function (e) { 55515 return void 0 !== e && (this.error_ = new _t(e), this.trigger("error")), this.error_; 55516 }, e.played = function () { 55517 return this.hasStarted_ ? ht(0, 0) : ht(); 55518 }, e.setCurrentTime = function () { 55519 this.manualTimeUpdates && this.trigger({ 55520 type: "timeupdate", 55521 target: this, 55522 manuallyTriggered: !0 55523 }); 55524 }, e.initTrackListeners = function () { 55525 var r = this; 55526 li.names.forEach(function (e) { 55527 function t() { 55528 r.trigger(e + "trackchange"); 55529 } 55530 55531 var i = li[e], 55532 n = r[i.getterName](); 55533 n.addEventListener("removetrack", t), n.addEventListener("addtrack", t), r.on("dispose", function () { 55534 n.removeEventListener("removetrack", t), n.removeEventListener("addtrack", t); 55535 }); 55536 }); 55537 }, e.addWebVttScript_ = function () { 55538 var e = this; 55539 if (!y.WebVTT) if (h.body.contains(this.el())) { 55540 if (!this.options_["vtt.js"] && u(Hi) && 0 < Object.keys(Hi).length) return void this.trigger("vttjsloaded"); 55541 var t = h.createElement("script"); 55542 t.src = this.options_["vtt.js"] || "https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js", t.onload = function () { 55543 e.trigger("vttjsloaded"); 55544 }, t.onerror = function () { 55545 e.trigger("vttjserror"); 55546 }, this.on("dispose", function () { 55547 t.onload = null, t.onerror = null; 55548 }), y.WebVTT = !0, this.el().parentNode.appendChild(t); 55549 } else this.ready(this.addWebVttScript_); 55550 }, e.emulateTextTracks = function () { 55551 function t(e) { 55552 return n.addTrack(e.track); 55553 } 55554 55555 function i(e) { 55556 return n.removeTrack(e.track); 55557 } 55558 55559 var e = this, 55560 n = this.textTracks(), 55561 r = this.remoteTextTracks(); 55562 r.on("addtrack", t), r.on("removetrack", i), this.addWebVttScript_(); 55563 55564 function s() { 55565 return e.trigger("texttrackchange"); 55566 } 55567 55568 function a() { 55569 s(); 55570 55571 for (var e = 0; e < n.length; e++) { 55572 var t = n[e]; 55573 t.removeEventListener("cuechange", s), "showing" === t.mode && t.addEventListener("cuechange", s); 55574 } 55575 } 55576 55577 a(), n.addEventListener("change", a), n.addEventListener("addtrack", a), n.addEventListener("removetrack", a), this.on("dispose", function () { 55578 r.off("addtrack", t), r.off("removetrack", i), n.removeEventListener("change", a), n.removeEventListener("addtrack", a), n.removeEventListener("removetrack", a); 55579 55580 for (var e = 0; e < n.length; e++) { 55581 n[e].removeEventListener("cuechange", s); 55582 } 55583 }); 55584 }, e.addTextTrack = function (e, t, i) { 55585 if (!e) throw new Error("TextTrack kind is required but was not provided"); 55586 return function (e, t, i, n, r) { 55587 void 0 === r && (r = {}); 55588 var s = e.textTracks(); 55589 r.kind = t, i && (r.label = i), n && (r.language = n), r.tech = e; 55590 var a = new hi.text.TrackClass(r); 55591 return s.addTrack(a), a; 55592 }(this, e, t, i); 55593 }, e.createRemoteTextTrack = function (e) { 55594 var t = Ne(e, { 55595 tech: this 55596 }); 55597 return new ci.remoteTextEl.TrackClass(t); 55598 }, e.addRemoteTextTrack = function (e, t) { 55599 var i = this; 55600 void 0 === e && (e = {}); 55601 var n = this.createRemoteTextTrack(e); 55602 return !0 !== t && !1 !== t && (p.warn('Calling addRemoteTextTrack without explicitly setting the "manualCleanup" parameter to `true` is deprecated and default to `false` in future version of video.js'), t = !0), this.remoteTextTrackEls().addTrackElement_(n), this.remoteTextTracks().addTrack(n.track), !0 !== t && this.ready(function () { 55603 return i.autoRemoteTextTracks_.addTrack(n.track); 55604 }), n; 55605 }, e.removeRemoteTextTrack = function (e) { 55606 var t = this.remoteTextTrackEls().getTrackElementByTrack_(e); 55607 this.remoteTextTrackEls().removeTrackElement_(t), this.remoteTextTracks().removeTrack(e), this.autoRemoteTextTracks_.removeTrack(e); 55608 }, e.getVideoPlaybackQuality = function () { 55609 return {}; 55610 }, e.requestPictureInPicture = function () { 55611 var e = this.options_.Promise || y.Promise; 55612 if (e) return e.reject(); 55613 }, e.setPoster = function () {}, e.playsinline = function () {}, e.setPlaysinline = function () {}, e.overrideNativeAudioTracks = function () {}, e.overrideNativeVideoTracks = function () {}, e.canPlayType = function () { 55614 return ""; 55615 }, i.canPlayType = function () { 55616 return ""; 55617 }, i.canPlaySource = function (e, t) { 55618 return i.canPlayType(e.type); 55619 }, i.isTech = function (e) { 55620 return e.prototype instanceof i || e instanceof i || e === i; 55621 }, i.registerTech = function (e, t) { 55622 if (i.techs_ || (i.techs_ = {}), !i.isTech(t)) throw new Error("Tech " + e + " must be a Tech"); 55623 if (!i.canPlayType) throw new Error("Techs must have a static canPlayType method on them"); 55624 if (!i.canPlaySource) throw new Error("Techs must have a static canPlaySource method on them"); 55625 return e = De(e), i.techs_[e] = t, i.techs_[Oe(e)] = t, "Tech" !== e && i.defaultTechOrder_.push(e), t; 55626 }, i.getTech = function (e) { 55627 if (e) return i.techs_ && i.techs_[e] ? i.techs_[e] : (e = De(e), y && y.videojs && y.videojs[e] ? (p.warn("The " + e + " tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)"), y.videojs[e]) : void 0); 55628 }, i; 55629 }(Re); 55630 55631 hi.names.forEach(function (e) { 55632 var t = hi[e]; 55633 55634 Vi.prototype[t.getterName] = function () { 55635 return this[t.privateName] = this[t.privateName] || new t.ListClass(), this[t.privateName]; 55636 }; 55637 }), Vi.prototype.featuresVolumeControl = !0, Vi.prototype.featuresMuteControl = !0, Vi.prototype.featuresFullscreenResize = !1, Vi.prototype.featuresPlaybackRate = !1, Vi.prototype.featuresProgressEvents = !1, Vi.prototype.featuresSourceset = !1, Vi.prototype.featuresTimeupdateEvents = !1, Vi.prototype.featuresNativeTextTracks = !1, Vi.withSourceHandlers = function (r) { 55638 r.registerSourceHandler = function (e, t) { 55639 var i = r.sourceHandlers; 55640 i = i || (r.sourceHandlers = []), void 0 === t && (t = i.length), i.splice(t, 0, e); 55641 }, r.canPlayType = function (e) { 55642 for (var t, i = r.sourceHandlers || [], n = 0; n < i.length; n++) { 55643 if (t = i[n].canPlayType(e)) return t; 55644 } 55645 55646 return ""; 55647 }, r.selectSourceHandler = function (e, t) { 55648 for (var i = r.sourceHandlers || [], n = 0; n < i.length; n++) { 55649 if (i[n].canHandleSource(e, t)) return i[n]; 55650 } 55651 55652 return null; 55653 }, r.canPlaySource = function (e, t) { 55654 var i = r.selectSourceHandler(e, t); 55655 return i ? i.canHandleSource(e, t) : ""; 55656 }; 55657 ["seekable", "seeking", "duration"].forEach(function (e) { 55658 var t = this[e]; 55659 "function" == typeof t && (this[e] = function () { 55660 return this.sourceHandler_ && this.sourceHandler_[e] ? this.sourceHandler_[e].apply(this.sourceHandler_, arguments) : t.apply(this, arguments); 55661 }); 55662 }, r.prototype), r.prototype.setSource = function (e) { 55663 var t = r.selectSourceHandler(e, this.options_); 55664 t || (r.nativeSourceHandler ? t = r.nativeSourceHandler : p.error("No source handler found for the current source.")), this.disposeSourceHandler(), this.off("dispose", this.disposeSourceHandler), t !== r.nativeSourceHandler && (this.currentSource_ = e), this.sourceHandler_ = t.handleSource(e, this, this.options_), this.one("dispose", this.disposeSourceHandler); 55665 }, r.prototype.disposeSourceHandler = function () { 55666 this.currentSource_ && (this.clearTracks(["audio", "video"]), this.currentSource_ = null), this.cleanupAutoTextTracks(), this.sourceHandler_ && (this.sourceHandler_.dispose && this.sourceHandler_.dispose(), this.sourceHandler_ = null); 55667 }; 55668 }, Re.registerComponent("Tech", Vi), Vi.registerTech("Tech", Vi), Vi.defaultTechOrder_ = []; 55669 var qi = {}, 55670 Wi = {}, 55671 zi = {}; 55672 55673 function Gi(e, t, i) { 55674 e.setTimeout(function () { 55675 return function i(n, e, r, s, a, o) { 55676 void 0 === n && (n = {}); 55677 void 0 === e && (e = []); 55678 void 0 === a && (a = []); 55679 void 0 === o && (o = !1); 55680 var t = e, 55681 u = t[0], 55682 l = t.slice(1); 55683 if ("string" == typeof u) i(n, qi[u], r, s, a, o);else if (u) { 55684 var c = Ji(s, u); 55685 if (!c.setSource) return a.push(c), i(n, l, r, s, a, o); 55686 c.setSource(m({}, n), function (e, t) { 55687 if (e) return i(n, l, r, s, a, o); 55688 a.push(c), i(t, n.type === t.type ? l : qi[t.type], r, s, a, o); 55689 }); 55690 } else l.length ? i(n, l, r, s, a, o) : o ? r(n, a) : i(n, qi["*"], r, s, a, !0); 55691 }(t, qi[t.type], i, e); 55692 }, 1); 55693 } 55694 55695 function Xi(e, t, i, n) { 55696 void 0 === n && (n = null); 55697 var r = "call" + De(i), 55698 s = e.reduce(Qi(r), n), 55699 a = s === zi, 55700 o = a ? null : t[i](s); 55701 return function (e, t, i, n) { 55702 for (var r = e.length - 1; 0 <= r; r--) { 55703 var s = e[r]; 55704 s[t] && s[t](n, i); 55705 } 55706 }(e, i, o, a), o; 55707 } 55708 55709 var Ki = { 55710 buffered: 1, 55711 currentTime: 1, 55712 duration: 1, 55713 muted: 1, 55714 played: 1, 55715 paused: 1, 55716 seekable: 1, 55717 volume: 1 55718 }, 55719 Yi = { 55720 setCurrentTime: 1, 55721 setMuted: 1, 55722 setVolume: 1 55723 }, 55724 $i = { 55725 play: 1, 55726 pause: 1 55727 }; 55728 55729 function Qi(i) { 55730 return function (e, t) { 55731 return e === zi ? zi : t[i] ? t[i](e) : e; 55732 }; 55733 } 55734 55735 function Ji(e, t) { 55736 var i = Wi[e.id()], 55737 n = null; 55738 if (null == i) return n = t(e), Wi[e.id()] = [[t, n]], n; 55739 55740 for (var r = 0; r < i.length; r++) { 55741 var s = i[r], 55742 a = s[0], 55743 o = s[1]; 55744 a === t && (n = o); 55745 } 55746 55747 return null === n && (n = t(e), i.push([t, n])), n; 55748 } 55749 55750 function Zi(e) { 55751 void 0 === e && (e = ""); 55752 var t = Ut(e); 55753 return en[t.toLowerCase()] || ""; 55754 } 55755 55756 var en = { 55757 opus: "video/ogg", 55758 ogv: "video/ogg", 55759 mp4: "video/mp4", 55760 mov: "video/mp4", 55761 m4v: "video/mp4", 55762 mkv: "video/x-matroska", 55763 m4a: "audio/mp4", 55764 mp3: "audio/mpeg", 55765 aac: "audio/aac", 55766 oga: "audio/ogg", 55767 m3u8: "application/x-mpegURL", 55768 jpg: "image/jpeg", 55769 jpeg: "image/jpeg", 55770 gif: "image/gif", 55771 png: "image/png", 55772 svg: "image/svg+xml", 55773 webp: "image/webp" 55774 }; 55775 55776 function tn(e) { 55777 if (!e.type) { 55778 var t = Zi(e.src); 55779 t && (e.type = t); 55780 } 55781 55782 return e; 55783 } 55784 55785 var nn = function (l) { 55786 function e(e, t, i) { 55787 var n, 55788 r = Ne({ 55789 createEl: !1 55790 }, t); 55791 if (n = l.call(this, e, r, i) || this, t.playerOptions.sources && 0 !== t.playerOptions.sources.length) e.src(t.playerOptions.sources);else for (var s = 0, a = t.playerOptions.techOrder; s < a.length; s++) { 55792 var o = De(a[s]), 55793 u = Vi.getTech(o); 55794 55795 if (o || (u = Re.getComponent(o)), u && u.isSupported()) { 55796 e.loadTech_(o); 55797 break; 55798 } 55799 } 55800 return n; 55801 } 55802 55803 return He(e, l), e; 55804 }(Re); 55805 55806 Re.registerComponent("MediaLoader", nn); 55807 55808 var rn = function (r) { 55809 function e(e, t) { 55810 var i; 55811 return (i = r.call(this, e, t) || this).emitTapEvents(), i.enable(), i; 55812 } 55813 55814 He(e, r); 55815 var t = e.prototype; 55816 return t.createEl = function (e, t, i) { 55817 void 0 === e && (e = "div"), void 0 === t && (t = {}), void 0 === i && (i = {}), t = m({ 55818 innerHTML: '<span aria-hidden="true" class="vjs-icon-placeholder"></span>', 55819 className: this.buildCSSClass(), 55820 tabIndex: 0 55821 }, t), "button" === e && p.error("Creating a ClickableComponent with an HTML element of " + e + " is not supported; use a Button instead."), i = m({ 55822 role: "button" 55823 }, i), this.tabIndex_ = t.tabIndex; 55824 var n = r.prototype.createEl.call(this, e, t, i); 55825 return this.createControlTextEl(n), n; 55826 }, t.dispose = function () { 55827 this.controlTextEl_ = null, r.prototype.dispose.call(this); 55828 }, t.createControlTextEl = function (e) { 55829 return this.controlTextEl_ = S("span", { 55830 className: "vjs-control-text" 55831 }, { 55832 "aria-live": "polite" 55833 }), e && e.appendChild(this.controlTextEl_), this.controlText(this.controlText_, e), this.controlTextEl_; 55834 }, t.controlText = function (e, t) { 55835 if (void 0 === t && (t = this.el()), void 0 === e) return this.controlText_ || "Need Text"; 55836 var i = this.localize(e); 55837 this.controlText_ = e, k(this.controlTextEl_, i), this.nonIconControl || t.setAttribute("title", i); 55838 }, t.buildCSSClass = function () { 55839 return "vjs-control vjs-button " + r.prototype.buildCSSClass.call(this); 55840 }, t.enable = function () { 55841 this.enabled_ || (this.enabled_ = !0, this.removeClass("vjs-disabled"), this.el_.setAttribute("aria-disabled", "false"), "undefined" != typeof this.tabIndex_ && this.el_.setAttribute("tabIndex", this.tabIndex_), this.on(["tap", "click"], this.handleClick), this.on("keydown", this.handleKeyDown)); 55842 }, t.disable = function () { 55843 this.enabled_ = !1, this.addClass("vjs-disabled"), this.el_.setAttribute("aria-disabled", "true"), "undefined" != typeof this.tabIndex_ && this.el_.removeAttribute("tabIndex"), this.off("mouseover", this.handleMouseOver), this.off("mouseout", this.handleMouseOut), this.off(["tap", "click"], this.handleClick), this.off("keydown", this.handleKeyDown); 55844 }, t.handleClick = function (e) { 55845 this.options_.clickHandler && this.options_.clickHandler.call(this, arguments); 55846 }, t.handleKeyDown = function (e) { 55847 xt.isEventKey(e, "Space") || xt.isEventKey(e, "Enter") ? (e.preventDefault(), e.stopPropagation(), this.trigger("click")) : r.prototype.handleKeyDown.call(this, e); 55848 }, e; 55849 }(Re); 55850 55851 Re.registerComponent("ClickableComponent", rn); 55852 55853 var sn = function (n) { 55854 function e(e, t) { 55855 var i; 55856 return (i = n.call(this, e, t) || this).update(), e.on("posterchange", ge(Ue(i), i.update)), i; 55857 } 55858 55859 He(e, n); 55860 var t = e.prototype; 55861 return t.dispose = function () { 55862 this.player().off("posterchange", this.update), n.prototype.dispose.call(this); 55863 }, t.createEl = function () { 55864 return S("div", { 55865 className: "vjs-poster", 55866 tabIndex: -1 55867 }); 55868 }, t.update = function (e) { 55869 var t = this.player().poster(); 55870 this.setSrc(t), t ? this.show() : this.hide(); 55871 }, t.setSrc = function (e) { 55872 var t = ""; 55873 e && (t = 'url("' + e + '")'), this.el_.style.backgroundImage = t; 55874 }, t.handleClick = function (e) { 55875 if (this.player_.controls()) { 55876 var t = this.player_.usingPlugin("eme") && this.player_.eme.sessions && 0 < this.player_.eme.sessions.length; 55877 !this.player_.tech(!0) || (et || Qe) && t || this.player_.tech(!0).focus(), this.player_.paused() ? kt(this.player_.play()) : this.player_.pause(); 55878 } 55879 }, e; 55880 }(rn); 55881 55882 Re.registerComponent("PosterImage", sn); 55883 var an = "#222", 55884 on = { 55885 monospace: "monospace", 55886 sansSerif: "sans-serif", 55887 serif: "serif", 55888 monospaceSansSerif: '"Andale Mono", "Lucida Console", monospace', 55889 monospaceSerif: '"Courier New", monospace', 55890 proportionalSansSerif: "sans-serif", 55891 proportionalSerif: "serif", 55892 casual: '"Comic Sans MS", Impact, fantasy', 55893 script: '"Monotype Corsiva", cursive', 55894 smallcaps: '"Andale Mono", "Lucida Console", monospace, sans-serif' 55895 }; 55896 55897 function un(e, t) { 55898 var i; 55899 if (4 === e.length) i = e[1] + e[1] + e[2] + e[2] + e[3] + e[3];else { 55900 if (7 !== e.length) throw new Error("Invalid color code provided, " + e + "; must be formatted as e.g. #f0e or #f604e2."); 55901 i = e.slice(1); 55902 } 55903 return "rgba(" + parseInt(i.slice(0, 2), 16) + "," + parseInt(i.slice(2, 4), 16) + "," + parseInt(i.slice(4, 6), 16) + "," + t + ")"; 55904 } 55905 55906 function ln(e, t, i) { 55907 try { 55908 e.style[t] = i; 55909 } catch (e) { 55910 return; 55911 } 55912 } 55913 55914 var cn = function (s) { 55915 function e(i, e, t) { 55916 var n; 55917 n = s.call(this, i, e, t) || this; 55918 var r = ge(Ue(n), n.updateDisplay); 55919 return i.on("loadstart", ge(Ue(n), n.toggleDisplay)), i.on("texttrackchange", r), i.on("loadedmetadata", ge(Ue(n), n.preselectTrack)), i.ready(ge(Ue(n), function () { 55920 if (i.tech_ && i.tech_.featuresNativeTextTracks) this.hide();else { 55921 i.on("fullscreenchange", r), i.on("playerresize", r), y.addEventListener("orientationchange", r), i.on("dispose", function () { 55922 return y.removeEventListener("orientationchange", r); 55923 }); 55924 55925 for (var e = this.options_.playerOptions.tracks || [], t = 0; t < e.length; t++) { 55926 this.player_.addRemoteTextTrack(e[t], !0); 55927 } 55928 55929 this.preselectTrack(); 55930 } 55931 })), n; 55932 } 55933 55934 He(e, s); 55935 var t = e.prototype; 55936 return t.preselectTrack = function () { 55937 for (var e, t, i, n = { 55938 captions: 1, 55939 subtitles: 1 55940 }, r = this.player_.textTracks(), s = this.player_.cache_.selectedLanguage, a = 0; a < r.length; a++) { 55941 var o = r[a]; 55942 s && s.enabled && s.language && s.language === o.language && o.kind in n ? i = o.kind === s.kind ? o : i || o : s && !s.enabled ? t = e = i = null : o["default"] && ("descriptions" !== o.kind || e ? o.kind in n && !t && (t = o) : e = o); 55943 } 55944 55945 i ? i.mode = "showing" : t ? t.mode = "showing" : e && (e.mode = "showing"); 55946 }, t.toggleDisplay = function () { 55947 this.player_.tech_ && this.player_.tech_.featuresNativeTextTracks ? this.hide() : this.show(); 55948 }, t.createEl = function () { 55949 return s.prototype.createEl.call(this, "div", { 55950 className: "vjs-text-track-display" 55951 }, { 55952 "aria-live": "off", 55953 "aria-atomic": "true" 55954 }); 55955 }, t.clearDisplay = function () { 55956 "function" == typeof y.WebVTT && y.WebVTT.processCues(y, [], this.el_); 55957 }, t.updateDisplay = function () { 55958 var e = this.player_.textTracks(), 55959 t = this.options_.allowMultipleShowingTracks; 55960 55961 if (this.clearDisplay(), t) { 55962 for (var i = [], n = 0; n < e.length; ++n) { 55963 var r = e[n]; 55964 "showing" === r.mode && i.push(r); 55965 } 55966 55967 this.updateForTrack(i); 55968 } else { 55969 for (var s = null, a = null, o = e.length; o--;) { 55970 var u = e[o]; 55971 "showing" === u.mode && ("descriptions" === u.kind ? s = u : a = u); 55972 } 55973 55974 a ? ("off" !== this.getAttribute("aria-live") && this.setAttribute("aria-live", "off"), this.updateForTrack(a)) : s && ("assertive" !== this.getAttribute("aria-live") && this.setAttribute("aria-live", "assertive"), this.updateForTrack(s)); 55975 } 55976 }, t.updateDisplayState = function (e) { 55977 for (var t = this.player_.textTrackSettings.getValues(), i = e.activeCues, n = i.length; n--;) { 55978 var r = i[n]; 55979 55980 if (r) { 55981 var s = r.displayState; 55982 55983 if (t.color && (s.firstChild.style.color = t.color), t.textOpacity && ln(s.firstChild, "color", un(t.color || "#fff", t.textOpacity)), t.backgroundColor && (s.firstChild.style.backgroundColor = t.backgroundColor), t.backgroundOpacity && ln(s.firstChild, "backgroundColor", un(t.backgroundColor || "#000", t.backgroundOpacity)), t.windowColor && (t.windowOpacity ? ln(s, "backgroundColor", un(t.windowColor, t.windowOpacity)) : s.style.backgroundColor = t.windowColor), t.edgeStyle && ("dropshadow" === t.edgeStyle ? s.firstChild.style.textShadow = "2px 2px 3px #222, 2px 2px 4px #222, 2px 2px 5px " + an : "raised" === t.edgeStyle ? s.firstChild.style.textShadow = "1px 1px #222, 2px 2px #222, 3px 3px " + an : "depressed" === t.edgeStyle ? s.firstChild.style.textShadow = "1px 1px #ccc, 0 1px #ccc, -1px -1px #222, 0 -1px " + an : "uniform" === t.edgeStyle && (s.firstChild.style.textShadow = "0 0 4px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px " + an)), t.fontPercent && 1 !== t.fontPercent) { 55984 var a = y.parseFloat(s.style.fontSize); 55985 s.style.fontSize = a * t.fontPercent + "px", s.style.height = "auto", s.style.top = "auto", s.style.bottom = "2px"; 55986 } 55987 55988 t.fontFamily && "default" !== t.fontFamily && ("small-caps" === t.fontFamily ? s.firstChild.style.fontVariant = "small-caps" : s.firstChild.style.fontFamily = on[t.fontFamily]); 55989 } 55990 } 55991 }, t.updateForTrack = function (e) { 55992 if (Array.isArray(e) || (e = [e]), "function" == typeof y.WebVTT && !e.every(function (e) { 55993 return !e.activeCues; 55994 })) { 55995 for (var t = [], i = 0; i < e.length; ++i) { 55996 for (var n = e[i], r = 0; r < n.activeCues.length; ++r) { 55997 t.push(n.activeCues[r]); 55998 } 55999 } 56000 56001 y.WebVTT.processCues(y, t, this.el_); 56002 56003 for (var s = 0; s < e.length; ++s) { 56004 for (var a = e[s], o = 0; o < a.activeCues.length; ++o) { 56005 var u = a.activeCues[o].displayState; 56006 E(u, "vjs-text-track-cue"), E(u, "vjs-text-track-cue-" + (a.language ? a.language : s)); 56007 } 56008 56009 this.player_.textTrackSettings && this.updateDisplayState(a); 56010 } 56011 } 56012 }, e; 56013 }(Re); 56014 56015 Re.registerComponent("TextTrackDisplay", cn); 56016 56017 var hn = function (r) { 56018 function e() { 56019 return r.apply(this, arguments) || this; 56020 } 56021 56022 return He(e, r), e.prototype.createEl = function () { 56023 var e = this.player_.isAudio(), 56024 t = this.localize(e ? "Audio Player" : "Video Player"), 56025 i = S("span", { 56026 className: "vjs-control-text", 56027 innerHTML: this.localize("{1} is loading.", [t]) 56028 }), 56029 n = r.prototype.createEl.call(this, "div", { 56030 className: "vjs-loading-spinner", 56031 dir: "ltr" 56032 }); 56033 return n.appendChild(i), n; 56034 }, e; 56035 }(Re); 56036 56037 Re.registerComponent("LoadingSpinner", hn); 56038 56039 var dn = function (t) { 56040 function e() { 56041 return t.apply(this, arguments) || this; 56042 } 56043 56044 He(e, t); 56045 var i = e.prototype; 56046 return i.createEl = function (e, t, i) { 56047 void 0 === t && (t = {}), void 0 === i && (i = {}), t = m({ 56048 innerHTML: '<span aria-hidden="true" class="vjs-icon-placeholder"></span>', 56049 className: this.buildCSSClass() 56050 }, t), i = m({ 56051 type: "button" 56052 }, i); 56053 var n = Re.prototype.createEl.call(this, "button", t, i); 56054 return this.createControlTextEl(n), n; 56055 }, i.addChild = function (e, t) { 56056 void 0 === t && (t = {}); 56057 var i = this.constructor.name; 56058 return p.warn("Adding an actionable (user controllable) child to a Button (" + i + ") is not supported; use a ClickableComponent instead."), Re.prototype.addChild.call(this, e, t); 56059 }, i.enable = function () { 56060 t.prototype.enable.call(this), this.el_.removeAttribute("disabled"); 56061 }, i.disable = function () { 56062 t.prototype.disable.call(this), this.el_.setAttribute("disabled", "disabled"); 56063 }, i.handleKeyDown = function (e) { 56064 xt.isEventKey(e, "Space") || xt.isEventKey(e, "Enter") ? e.stopPropagation() : t.prototype.handleKeyDown.call(this, e); 56065 }, e; 56066 }(rn); 56067 56068 Re.registerComponent("Button", dn); 56069 56070 var pn = function (n) { 56071 function e(e, t) { 56072 var i; 56073 return (i = n.call(this, e, t) || this).mouseused_ = !1, i.on("mousedown", i.handleMouseDown), i; 56074 } 56075 56076 He(e, n); 56077 var t = e.prototype; 56078 return t.buildCSSClass = function () { 56079 return "vjs-big-play-button"; 56080 }, t.handleClick = function (e) { 56081 var t = this.player_.play(); 56082 56083 if (this.mouseused_ && e.clientX && e.clientY) { 56084 var i = this.player_.usingPlugin("eme") && this.player_.eme.sessions && 0 < this.player_.eme.sessions.length; 56085 return kt(t), void (!this.player_.tech(!0) || (et || Qe) && i || this.player_.tech(!0).focus()); 56086 } 56087 56088 var n = this.player_.getChild("controlBar"), 56089 r = n && n.getChild("playToggle"); 56090 56091 if (r) { 56092 var s = function s() { 56093 return r.focus(); 56094 }; 56095 56096 St(t) ? t.then(s, function () {}) : this.setTimeout(s, 1); 56097 } else this.player_.tech(!0).focus(); 56098 }, t.handleKeyDown = function (e) { 56099 this.mouseused_ = !1, n.prototype.handleKeyDown.call(this, e); 56100 }, t.handleMouseDown = function (e) { 56101 this.mouseused_ = !0; 56102 }, e; 56103 }(dn); 56104 56105 pn.prototype.controlText_ = "Play Video", Re.registerComponent("BigPlayButton", pn); 56106 56107 var fn = function (n) { 56108 function e(e, t) { 56109 var i; 56110 return (i = n.call(this, e, t) || this).controlText(t && t.controlText || i.localize("Close")), i; 56111 } 56112 56113 He(e, n); 56114 var t = e.prototype; 56115 return t.buildCSSClass = function () { 56116 return "vjs-close-button " + n.prototype.buildCSSClass.call(this); 56117 }, t.handleClick = function (e) { 56118 this.trigger({ 56119 type: "close", 56120 bubbles: !1 56121 }); 56122 }, t.handleKeyDown = function (e) { 56123 xt.isEventKey(e, "Esc") ? (e.preventDefault(), e.stopPropagation(), this.trigger("click")) : n.prototype.handleKeyDown.call(this, e); 56124 }, e; 56125 }(dn); 56126 56127 Re.registerComponent("CloseButton", fn); 56128 56129 var mn = function (n) { 56130 function e(e, t) { 56131 var i; 56132 return void 0 === t && (t = {}), i = n.call(this, e, t) || this, t.replay = void 0 === t.replay || t.replay, i.on(e, "play", i.handlePlay), i.on(e, "pause", i.handlePause), t.replay && i.on(e, "ended", i.handleEnded), i; 56133 } 56134 56135 He(e, n); 56136 var t = e.prototype; 56137 return t.buildCSSClass = function () { 56138 return "vjs-play-control " + n.prototype.buildCSSClass.call(this); 56139 }, t.handleClick = function (e) { 56140 this.player_.paused() ? this.player_.play() : this.player_.pause(); 56141 }, t.handleSeeked = function (e) { 56142 this.removeClass("vjs-ended"), this.player_.paused() ? this.handlePause(e) : this.handlePlay(e); 56143 }, t.handlePlay = function (e) { 56144 this.removeClass("vjs-ended"), this.removeClass("vjs-paused"), this.addClass("vjs-playing"), this.controlText("Pause"); 56145 }, t.handlePause = function (e) { 56146 this.removeClass("vjs-playing"), this.addClass("vjs-paused"), this.controlText("Play"); 56147 }, t.handleEnded = function (e) { 56148 this.removeClass("vjs-playing"), this.addClass("vjs-ended"), this.controlText("Replay"), this.one(this.player_, "seeked", this.handleSeeked); 56149 }, e; 56150 }(dn); 56151 56152 mn.prototype.controlText_ = "Play", Re.registerComponent("PlayToggle", mn); 56153 56154 function gn(e, t) { 56155 e = e < 0 ? 0 : e; 56156 var i = Math.floor(e % 60), 56157 n = Math.floor(e / 60 % 60), 56158 r = Math.floor(e / 3600), 56159 s = Math.floor(t / 60 % 60), 56160 a = Math.floor(t / 3600); 56161 return !isNaN(e) && e !== 1 / 0 || (r = n = i = "-"), (r = 0 < r || 0 < a ? r + ":" : "") + (n = ((r || 10 <= s) && n < 10 ? "0" + n : n) + ":") + (i = i < 10 ? "0" + i : i); 56162 } 56163 56164 var vn = gn; 56165 56166 function yn(e, t) { 56167 return void 0 === t && (t = e), vn(e, t); 56168 } 56169 56170 var _n = function (n) { 56171 function e(e, t) { 56172 var i; 56173 return (i = n.call(this, e, t) || this).on(e, ["timeupdate", "ended"], i.updateContent), i.updateTextNode_(), i; 56174 } 56175 56176 He(e, n); 56177 var t = e.prototype; 56178 return t.createEl = function () { 56179 var e = this.buildCSSClass(), 56180 t = n.prototype.createEl.call(this, "div", { 56181 className: e + " vjs-time-control vjs-control", 56182 innerHTML: '<span class="vjs-control-text" role="presentation">' + this.localize(this.labelText_) + " </span>" 56183 }); 56184 return this.contentEl_ = S("span", { 56185 className: e + "-display" 56186 }, { 56187 "aria-live": "off", 56188 role: "presentation" 56189 }), t.appendChild(this.contentEl_), t; 56190 }, t.dispose = function () { 56191 this.contentEl_ = null, this.textNode_ = null, n.prototype.dispose.call(this); 56192 }, t.updateTextNode_ = function (e) { 56193 var t = this; 56194 void 0 === e && (e = 0), e = yn(e), this.formattedTime_ !== e && (this.formattedTime_ = e, this.requestAnimationFrame(function () { 56195 if (t.contentEl_) { 56196 var e = t.textNode_; 56197 t.textNode_ = h.createTextNode(t.formattedTime_), t.textNode_ && (e ? t.contentEl_.replaceChild(t.textNode_, e) : t.contentEl_.appendChild(t.textNode_)); 56198 } 56199 })); 56200 }, t.updateContent = function (e) {}, e; 56201 }(Re); 56202 56203 _n.prototype.labelText_ = "Time", _n.prototype.controlText_ = "Time", Re.registerComponent("TimeDisplay", _n); 56204 56205 var bn = function (e) { 56206 function t() { 56207 return e.apply(this, arguments) || this; 56208 } 56209 56210 He(t, e); 56211 var i = t.prototype; 56212 return i.buildCSSClass = function () { 56213 return "vjs-current-time"; 56214 }, i.updateContent = function (e) { 56215 var t; 56216 t = this.player_.ended() ? this.player_.duration() : this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime(), this.updateTextNode_(t); 56217 }, t; 56218 }(_n); 56219 56220 bn.prototype.labelText_ = "Current Time", bn.prototype.controlText_ = "Current Time", Re.registerComponent("CurrentTimeDisplay", bn); 56221 56222 var Tn = function (n) { 56223 function e(e, t) { 56224 var i; 56225 return (i = n.call(this, e, t) || this).on(e, "durationchange", i.updateContent), i.on(e, "loadstart", i.updateContent), i.on(e, "loadedmetadata", i.updateContent), i; 56226 } 56227 56228 He(e, n); 56229 var t = e.prototype; 56230 return t.buildCSSClass = function () { 56231 return "vjs-duration"; 56232 }, t.updateContent = function (e) { 56233 var t = this.player_.duration(); 56234 this.updateTextNode_(t); 56235 }, e; 56236 }(_n); 56237 56238 Tn.prototype.labelText_ = "Duration", Tn.prototype.controlText_ = "Duration", Re.registerComponent("DurationDisplay", Tn); 56239 56240 var Sn = function (e) { 56241 function t() { 56242 return e.apply(this, arguments) || this; 56243 } 56244 56245 return He(t, e), t.prototype.createEl = function () { 56246 return e.prototype.createEl.call(this, "div", { 56247 className: "vjs-time-control vjs-time-divider", 56248 innerHTML: "<div><span>/</span></div>" 56249 }, { 56250 "aria-hidden": !0 56251 }); 56252 }, t; 56253 }(Re); 56254 56255 Re.registerComponent("TimeDivider", Sn); 56256 56257 var kn = function (n) { 56258 function e(e, t) { 56259 var i; 56260 return (i = n.call(this, e, t) || this).on(e, "durationchange", i.updateContent), i; 56261 } 56262 56263 He(e, n); 56264 var t = e.prototype; 56265 return t.buildCSSClass = function () { 56266 return "vjs-remaining-time"; 56267 }, t.createEl = function () { 56268 var e = n.prototype.createEl.call(this); 56269 return e.insertBefore(S("span", {}, { 56270 "aria-hidden": !0 56271 }, "-"), this.contentEl_), e; 56272 }, t.updateContent = function (e) { 56273 var t; 56274 "number" == typeof this.player_.duration() && (t = this.player_.ended() ? 0 : this.player_.remainingTimeDisplay ? this.player_.remainingTimeDisplay() : this.player_.remainingTime(), this.updateTextNode_(t)); 56275 }, e; 56276 }(_n); 56277 56278 kn.prototype.labelText_ = "Remaining Time", kn.prototype.controlText_ = "Remaining Time", Re.registerComponent("RemainingTimeDisplay", kn); 56279 56280 var Cn = function (n) { 56281 function e(e, t) { 56282 var i; 56283 return (i = n.call(this, e, t) || this).updateShowing(), i.on(i.player(), "durationchange", i.updateShowing), i; 56284 } 56285 56286 He(e, n); 56287 var t = e.prototype; 56288 return t.createEl = function () { 56289 var e = n.prototype.createEl.call(this, "div", { 56290 className: "vjs-live-control vjs-control" 56291 }); 56292 return this.contentEl_ = S("div", { 56293 className: "vjs-live-display", 56294 innerHTML: '<span class="vjs-control-text">' + this.localize("Stream Type") + " </span>" + this.localize("LIVE") 56295 }, { 56296 "aria-live": "off" 56297 }), e.appendChild(this.contentEl_), e; 56298 }, t.dispose = function () { 56299 this.contentEl_ = null, n.prototype.dispose.call(this); 56300 }, t.updateShowing = function (e) { 56301 this.player().duration() === 1 / 0 ? this.show() : this.hide(); 56302 }, e; 56303 }(Re); 56304 56305 Re.registerComponent("LiveDisplay", Cn); 56306 56307 var wn = function (n) { 56308 function e(e, t) { 56309 var i; 56310 return (i = n.call(this, e, t) || this).updateLiveEdgeStatus(), i.player_.liveTracker && i.on(i.player_.liveTracker, "liveedgechange", i.updateLiveEdgeStatus), i; 56311 } 56312 56313 He(e, n); 56314 var t = e.prototype; 56315 return t.createEl = function () { 56316 var e = n.prototype.createEl.call(this, "button", { 56317 className: "vjs-seek-to-live-control vjs-control" 56318 }); 56319 return this.textEl_ = S("span", { 56320 className: "vjs-seek-to-live-text", 56321 innerHTML: this.localize("LIVE") 56322 }, { 56323 "aria-hidden": "true" 56324 }), e.appendChild(this.textEl_), e; 56325 }, t.updateLiveEdgeStatus = function () { 56326 !this.player_.liveTracker || this.player_.liveTracker.atLiveEdge() ? (this.setAttribute("aria-disabled", !0), this.addClass("vjs-at-live-edge"), this.controlText("Seek to live, currently playing live")) : (this.setAttribute("aria-disabled", !1), this.removeClass("vjs-at-live-edge"), this.controlText("Seek to live, currently behind live")); 56327 }, t.handleClick = function () { 56328 this.player_.liveTracker.seekToLiveEdge(); 56329 }, t.dispose = function () { 56330 this.player_.liveTracker && this.off(this.player_.liveTracker, "liveedgechange", this.updateLiveEdgeStatus), this.textEl_ = null, n.prototype.dispose.call(this); 56331 }, e; 56332 }(dn); 56333 56334 wn.prototype.controlText_ = "Seek to live, currently playing live", Re.registerComponent("SeekToLive", wn); 56335 56336 function En(e, t, i) { 56337 return e = Number(e), Math.min(i, Math.max(t, isNaN(e) ? t : e)); 56338 } 56339 56340 var xn = function (n) { 56341 function e(e, t) { 56342 var i; 56343 return (i = n.call(this, e, t) || this).bar = i.getChild(i.options_.barName), i.vertical(!!i.options_.vertical), i.enable(), i; 56344 } 56345 56346 He(e, n); 56347 var t = e.prototype; 56348 return t.enabled = function () { 56349 return this.enabled_; 56350 }, t.enable = function () { 56351 this.enabled() || (this.on("mousedown", this.handleMouseDown), this.on("touchstart", this.handleMouseDown), this.on("keydown", this.handleKeyDown), this.on("click", this.handleClick), this.on(this.player_, "controlsvisible", this.update), this.playerEvent && this.on(this.player_, this.playerEvent, this.update), this.removeClass("disabled"), this.setAttribute("tabindex", 0), this.enabled_ = !0); 56352 }, t.disable = function () { 56353 if (this.enabled()) { 56354 var e = this.bar.el_.ownerDocument; 56355 this.off("mousedown", this.handleMouseDown), this.off("touchstart", this.handleMouseDown), this.off("keydown", this.handleKeyDown), this.off("click", this.handleClick), this.off(this.player_, "controlsvisible", this.update), this.off(e, "mousemove", this.handleMouseMove), this.off(e, "mouseup", this.handleMouseUp), this.off(e, "touchmove", this.handleMouseMove), this.off(e, "touchend", this.handleMouseUp), this.removeAttribute("tabindex"), this.addClass("disabled"), this.playerEvent && this.off(this.player_, this.playerEvent, this.update), this.enabled_ = !1; 56356 } 56357 }, t.createEl = function (e, t, i) { 56358 return void 0 === t && (t = {}), void 0 === i && (i = {}), t.className = t.className + " vjs-slider", t = m({ 56359 tabIndex: 0 56360 }, t), i = m({ 56361 role: "slider", 56362 "aria-valuenow": 0, 56363 "aria-valuemin": 0, 56364 "aria-valuemax": 100, 56365 tabIndex: 0 56366 }, i), n.prototype.createEl.call(this, e, t, i); 56367 }, t.handleMouseDown = function (e) { 56368 var t = this.bar.el_.ownerDocument; 56369 "mousedown" === e.type && e.preventDefault(), "touchstart" !== e.type || Je || e.preventDefault(), N(), this.addClass("vjs-sliding"), this.trigger("slideractive"), this.on(t, "mousemove", this.handleMouseMove), this.on(t, "mouseup", this.handleMouseUp), this.on(t, "touchmove", this.handleMouseMove), this.on(t, "touchend", this.handleMouseUp), this.handleMouseMove(e); 56370 }, t.handleMouseMove = function (e) {}, t.handleMouseUp = function () { 56371 var e = this.bar.el_.ownerDocument; 56372 R(), this.removeClass("vjs-sliding"), this.trigger("sliderinactive"), this.off(e, "mousemove", this.handleMouseMove), this.off(e, "mouseup", this.handleMouseUp), this.off(e, "touchmove", this.handleMouseMove), this.off(e, "touchend", this.handleMouseUp), this.update(); 56373 }, t.update = function () { 56374 var t = this; 56375 56376 if (this.el_ && this.bar) { 56377 var i = this.getProgress(); 56378 return i === this.progress_ || (this.progress_ = i, this.requestAnimationFrame(function () { 56379 var e = t.vertical() ? "height" : "width"; 56380 t.bar.el().style[e] = (100 * i).toFixed(2) + "%"; 56381 })), i; 56382 } 56383 }, t.getProgress = function () { 56384 return Number(En(this.getPercent(), 0, 1).toFixed(4)); 56385 }, t.calculateDistance = function (e) { 56386 var t = B(this.el_, e); 56387 return this.vertical() ? t.y : t.x; 56388 }, t.handleKeyDown = function (e) { 56389 xt.isEventKey(e, "Left") || xt.isEventKey(e, "Down") ? (e.preventDefault(), e.stopPropagation(), this.stepBack()) : xt.isEventKey(e, "Right") || xt.isEventKey(e, "Up") ? (e.preventDefault(), e.stopPropagation(), this.stepForward()) : n.prototype.handleKeyDown.call(this, e); 56390 }, t.handleClick = function (e) { 56391 e.stopPropagation(), e.preventDefault(); 56392 }, t.vertical = function (e) { 56393 if (void 0 === e) return this.vertical_ || !1; 56394 this.vertical_ = !!e, this.vertical_ ? this.addClass("vjs-slider-vertical") : this.addClass("vjs-slider-horizontal"); 56395 }, e; 56396 }(Re); 56397 56398 Re.registerComponent("Slider", xn); 56399 56400 function An(e, t) { 56401 return En(e / t * 100, 0, 100).toFixed(2) + "%"; 56402 } 56403 56404 var In = function (r) { 56405 function e(e, t) { 56406 var i; 56407 return (i = r.call(this, e, t) || this).partEls_ = [], i.on(e, "progress", i.update), i; 56408 } 56409 56410 He(e, r); 56411 var t = e.prototype; 56412 return t.createEl = function () { 56413 var e = r.prototype.createEl.call(this, "div", { 56414 className: "vjs-load-progress" 56415 }), 56416 t = S("span", { 56417 className: "vjs-control-text" 56418 }), 56419 i = S("span", { 56420 textContent: this.localize("Loaded") 56421 }), 56422 n = h.createTextNode(": "); 56423 return this.percentageEl_ = S("span", { 56424 className: "vjs-control-text-loaded-percentage", 56425 textContent: "0%" 56426 }), e.appendChild(t), t.appendChild(i), t.appendChild(n), t.appendChild(this.percentageEl_), e; 56427 }, t.dispose = function () { 56428 this.partEls_ = null, this.percentageEl_ = null, r.prototype.dispose.call(this); 56429 }, t.update = function (e) { 56430 var h = this; 56431 this.requestAnimationFrame(function () { 56432 var e = h.player_.liveTracker, 56433 t = h.player_.buffered(), 56434 i = e && e.isLive() ? e.seekableEnd() : h.player_.duration(), 56435 n = h.player_.bufferedEnd(), 56436 r = h.partEls_, 56437 s = An(n, i); 56438 h.percent_ !== s && (h.el_.style.width = s, k(h.percentageEl_, s), h.percent_ = s); 56439 56440 for (var a = 0; a < t.length; a++) { 56441 var o = t.start(a), 56442 u = t.end(a), 56443 l = r[a]; 56444 l || (l = h.el_.appendChild(S()), r[a] = l), l.dataset.start === o && l.dataset.end === u || (l.dataset.start = o, l.dataset.end = u, l.style.left = An(o, n), l.style.width = An(u - o, n)); 56445 } 56446 56447 for (var c = r.length; c > t.length; c--) { 56448 h.el_.removeChild(r[c - 1]); 56449 } 56450 56451 r.length = t.length; 56452 }); 56453 }, e; 56454 }(Re); 56455 56456 Re.registerComponent("LoadProgressBar", In); 56457 56458 var Pn = function (n) { 56459 function e(e, t) { 56460 var i; 56461 return (i = n.call(this, e, t) || this).update = ve(ge(Ue(i), i.update), 30), i; 56462 } 56463 56464 He(e, n); 56465 var t = e.prototype; 56466 return t.createEl = function () { 56467 return n.prototype.createEl.call(this, "div", { 56468 className: "vjs-time-tooltip" 56469 }, { 56470 "aria-hidden": "true" 56471 }); 56472 }, t.update = function (e, t, i) { 56473 var n = U(this.el_), 56474 r = U(this.player_.el()), 56475 s = e.width * t; 56476 56477 if (r && n) { 56478 var a = e.left - r.left + s, 56479 o = e.width - s + (r.right - e.right), 56480 u = n.width / 2; 56481 a < u ? u += u - a : o < u && (u = o), u < 0 ? u = 0 : u > n.width && (u = n.width), this.el_.style.right = "-" + u + "px", this.write(i); 56482 } 56483 }, t.write = function (e) { 56484 k(this.el_, e); 56485 }, t.updateTime = function (r, s, a, o) { 56486 var u = this; 56487 this.rafId_ && this.cancelAnimationFrame(this.rafId_), this.rafId_ = this.requestAnimationFrame(function () { 56488 var e, 56489 t = u.player_.duration(); 56490 56491 if (u.player_.liveTracker && u.player_.liveTracker.isLive()) { 56492 var i = u.player_.liveTracker.liveWindow(), 56493 n = i - s * i; 56494 e = (n < 1 ? "" : "-") + yn(n, i); 56495 } else e = yn(a, t); 56496 56497 u.update(r, s, e), o && o(); 56498 }); 56499 }, e; 56500 }(Re); 56501 56502 Re.registerComponent("TimeTooltip", Pn); 56503 56504 var Ln = function (n) { 56505 function e(e, t) { 56506 var i; 56507 return (i = n.call(this, e, t) || this).update = ve(ge(Ue(i), i.update), 30), i; 56508 } 56509 56510 He(e, n); 56511 var t = e.prototype; 56512 return t.createEl = function () { 56513 return n.prototype.createEl.call(this, "div", { 56514 className: "vjs-play-progress vjs-slider-bar" 56515 }, { 56516 "aria-hidden": "true" 56517 }); 56518 }, t.update = function (e, t) { 56519 var i = this.getChild("timeTooltip"); 56520 56521 if (i) { 56522 var n = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime(); 56523 i.updateTime(e, t, n); 56524 } 56525 }, e; 56526 }(Re); 56527 56528 Ln.prototype.options_ = { 56529 children: [] 56530 }, at || Xe || Ln.prototype.options_.children.push("timeTooltip"), Re.registerComponent("PlayProgressBar", Ln); 56531 56532 var On = function (n) { 56533 function e(e, t) { 56534 var i; 56535 return (i = n.call(this, e, t) || this).update = ve(ge(Ue(i), i.update), 30), i; 56536 } 56537 56538 He(e, n); 56539 var t = e.prototype; 56540 return t.createEl = function () { 56541 return n.prototype.createEl.call(this, "div", { 56542 className: "vjs-mouse-display" 56543 }); 56544 }, t.update = function (e, t) { 56545 var i = this, 56546 n = t * this.player_.duration(); 56547 this.getChild("timeTooltip").updateTime(e, t, n, function () { 56548 i.el_.style.left = e.width * t + "px"; 56549 }); 56550 }, e; 56551 }(Re); 56552 56553 On.prototype.options_ = { 56554 children: ["timeTooltip"] 56555 }, Re.registerComponent("MouseTimeDisplay", On); 56556 56557 var Dn = function (s) { 56558 function e(e, t) { 56559 var i; 56560 return (i = s.call(this, e, t) || this).setEventHandlers_(), i; 56561 } 56562 56563 He(e, s); 56564 var t = e.prototype; 56565 return t.setEventHandlers_ = function () { 56566 this.update_ = ge(this, this.update), this.update = ve(this.update_, 30), this.on(this.player_, ["ended", "durationchange", "timeupdate"], this.update), this.player_.liveTracker && this.on(this.player_.liveTracker, "liveedgechange", this.update), this.updateInterval = null, this.on(this.player_, ["playing"], this.enableInterval_), this.on(this.player_, ["ended", "pause", "waiting"], this.disableInterval_), "hidden" in h && "visibilityState" in h && this.on(h, "visibilitychange", this.toggleVisibility_); 56567 }, t.toggleVisibility_ = function (e) { 56568 h.hidden ? this.disableInterval_(e) : (this.enableInterval_(), this.update()); 56569 }, t.enableInterval_ = function () { 56570 this.updateInterval || (this.updateInterval = this.setInterval(this.update, 30)); 56571 }, t.disableInterval_ = function (e) { 56572 this.player_.liveTracker && this.player_.liveTracker.isLive() && e && "ended" !== e.type || this.updateInterval && (this.clearInterval(this.updateInterval), this.updateInterval = null); 56573 }, t.createEl = function () { 56574 return s.prototype.createEl.call(this, "div", { 56575 className: "vjs-progress-holder" 56576 }, { 56577 "aria-label": this.localize("Progress Bar") 56578 }); 56579 }, t.update = function (e) { 56580 var n = this, 56581 r = s.prototype.update.call(this); 56582 return this.requestAnimationFrame(function () { 56583 var e = n.player_.ended() ? n.player_.duration() : n.getCurrentTime_(), 56584 t = n.player_.liveTracker, 56585 i = n.player_.duration(); 56586 t && t.isLive() && (i = n.player_.liveTracker.liveCurrentTime()), n.percent_ !== r && (n.el_.setAttribute("aria-valuenow", (100 * r).toFixed(2)), n.percent_ = r), n.currentTime_ === e && n.duration_ === i || (n.el_.setAttribute("aria-valuetext", n.localize("progress bar timing: currentTime={1} duration={2}", [yn(e, i), yn(i, i)], "{1} of {2}")), n.currentTime_ = e, n.duration_ = i), n.bar && n.bar.update(U(n.el()), n.getProgress()); 56587 }), r; 56588 }, t.getCurrentTime_ = function () { 56589 return this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime(); 56590 }, t.getPercent = function () { 56591 var e, 56592 t = this.getCurrentTime_(), 56593 i = this.player_.liveTracker; 56594 return i && i.isLive() ? (e = (t - i.seekableStart()) / i.liveWindow(), i.atLiveEdge() && (e = 1)) : e = t / this.player_.duration(), e; 56595 }, t.handleMouseDown = function (e) { 56596 W(e) && (e.stopPropagation(), this.player_.scrubbing(!0), this.videoWasPlaying = !this.player_.paused(), this.player_.pause(), s.prototype.handleMouseDown.call(this, e)); 56597 }, t.handleMouseMove = function (e) { 56598 if (W(e)) { 56599 var t, 56600 i = this.calculateDistance(e), 56601 n = this.player_.liveTracker; 56602 56603 if (n && n.isLive()) { 56604 if (.99 <= i) return void n.seekToLiveEdge(); 56605 var r = n.seekableStart(), 56606 s = n.liveCurrentTime(); 56607 if (s <= (t = r + i * n.liveWindow()) && (t = s), t <= r && (t = r + .1), t === 1 / 0) return; 56608 } else (t = i * this.player_.duration()) === this.player_.duration() && (t -= .1); 56609 56610 this.player_.currentTime(t); 56611 } 56612 }, t.enable = function () { 56613 s.prototype.enable.call(this); 56614 var e = this.getChild("mouseTimeDisplay"); 56615 e && e.show(); 56616 }, t.disable = function () { 56617 s.prototype.disable.call(this); 56618 var e = this.getChild("mouseTimeDisplay"); 56619 e && e.hide(); 56620 }, t.handleMouseUp = function (e) { 56621 s.prototype.handleMouseUp.call(this, e), e && e.stopPropagation(), this.player_.scrubbing(!1), this.player_.trigger({ 56622 type: "timeupdate", 56623 target: this, 56624 manuallyTriggered: !0 56625 }), this.videoWasPlaying ? kt(this.player_.play()) : this.update_(); 56626 }, t.stepForward = function () { 56627 this.player_.currentTime(this.player_.currentTime() + 5); 56628 }, t.stepBack = function () { 56629 this.player_.currentTime(this.player_.currentTime() - 5); 56630 }, t.handleAction = function (e) { 56631 this.player_.paused() ? this.player_.play() : this.player_.pause(); 56632 }, t.handleKeyDown = function (e) { 56633 if (xt.isEventKey(e, "Space") || xt.isEventKey(e, "Enter")) e.preventDefault(), e.stopPropagation(), this.handleAction(e);else if (xt.isEventKey(e, "Home")) e.preventDefault(), e.stopPropagation(), this.player_.currentTime(0);else if (xt.isEventKey(e, "End")) e.preventDefault(), e.stopPropagation(), this.player_.currentTime(this.player_.duration());else if (/^[0-9]$/.test(xt(e))) { 56634 e.preventDefault(), e.stopPropagation(); 56635 var t = 10 * (xt.codes[xt(e)] - xt.codes[0]) / 100; 56636 this.player_.currentTime(this.player_.duration() * t); 56637 } else xt.isEventKey(e, "PgDn") ? (e.preventDefault(), e.stopPropagation(), this.player_.currentTime(this.player_.currentTime() - 60)) : xt.isEventKey(e, "PgUp") ? (e.preventDefault(), e.stopPropagation(), this.player_.currentTime(this.player_.currentTime() + 60)) : s.prototype.handleKeyDown.call(this, e); 56638 }, t.dispose = function () { 56639 this.disableInterval_(), this.off(this.player_, ["ended", "durationchange", "timeupdate"], this.update), this.player_.liveTracker && this.on(this.player_.liveTracker, "liveedgechange", this.update), this.off(this.player_, ["playing"], this.enableInterval_), this.off(this.player_, ["ended", "pause", "waiting"], this.disableInterval_), "hidden" in h && "visibilityState" in h && this.off(h, "visibilitychange", this.toggleVisibility_), s.prototype.dispose.call(this); 56640 }, e; 56641 }(xn); 56642 56643 Dn.prototype.options_ = { 56644 children: ["loadProgressBar", "playProgressBar"], 56645 barName: "playProgressBar" 56646 }, at || Xe || Dn.prototype.options_.children.splice(1, 0, "mouseTimeDisplay"), Re.registerComponent("SeekBar", Dn); 56647 56648 var Nn = function (n) { 56649 function e(e, t) { 56650 var i; 56651 return (i = n.call(this, e, t) || this).handleMouseMove = ve(ge(Ue(i), i.handleMouseMove), 30), i.throttledHandleMouseSeek = ve(ge(Ue(i), i.handleMouseSeek), 30), i.enable(), i; 56652 } 56653 56654 He(e, n); 56655 var t = e.prototype; 56656 return t.createEl = function () { 56657 return n.prototype.createEl.call(this, "div", { 56658 className: "vjs-progress-control vjs-control" 56659 }); 56660 }, t.handleMouseMove = function (e) { 56661 var t = this.getChild("seekBar"); 56662 56663 if (t) { 56664 var i = t.getChild("playProgressBar"), 56665 n = t.getChild("mouseTimeDisplay"); 56666 56667 if (i || n) { 56668 var r = t.el(), 56669 s = U(r), 56670 a = B(r, e).x; 56671 a = En(0, 1, a), n && n.update(s, a), i && i.update(s, t.getProgress()); 56672 } 56673 } 56674 }, t.handleMouseSeek = function (e) { 56675 var t = this.getChild("seekBar"); 56676 t && t.handleMouseMove(e); 56677 }, t.enabled = function () { 56678 return this.enabled_; 56679 }, t.disable = function () { 56680 this.children().forEach(function (e) { 56681 return e.disable && e.disable(); 56682 }), this.enabled() && (this.off(["mousedown", "touchstart"], this.handleMouseDown), this.off(this.el_, "mousemove", this.handleMouseMove), this.handleMouseUp(), this.addClass("disabled"), this.enabled_ = !1); 56683 }, t.enable = function () { 56684 this.children().forEach(function (e) { 56685 return e.enable && e.enable(); 56686 }), this.enabled() || (this.on(["mousedown", "touchstart"], this.handleMouseDown), this.on(this.el_, "mousemove", this.handleMouseMove), this.removeClass("disabled"), this.enabled_ = !0); 56687 }, t.handleMouseDown = function (e) { 56688 var t = this.el_.ownerDocument, 56689 i = this.getChild("seekBar"); 56690 i && i.handleMouseDown(e), this.on(t, "mousemove", this.throttledHandleMouseSeek), this.on(t, "touchmove", this.throttledHandleMouseSeek), this.on(t, "mouseup", this.handleMouseUp), this.on(t, "touchend", this.handleMouseUp); 56691 }, t.handleMouseUp = function (e) { 56692 var t = this.el_.ownerDocument, 56693 i = this.getChild("seekBar"); 56694 i && i.handleMouseUp(e), this.off(t, "mousemove", this.throttledHandleMouseSeek), this.off(t, "touchmove", this.throttledHandleMouseSeek), this.off(t, "mouseup", this.handleMouseUp), this.off(t, "touchend", this.handleMouseUp); 56695 }, e; 56696 }(Re); 56697 56698 Nn.prototype.options_ = { 56699 children: ["seekBar"] 56700 }, Re.registerComponent("ProgressControl", Nn); 56701 56702 var Rn = function (n) { 56703 function e(e, t) { 56704 var i; 56705 return (i = n.call(this, e, t) || this).on(e, ["enterpictureinpicture", "leavepictureinpicture"], i.handlePictureInPictureChange), h.pictureInPictureEnabled || i.disable(), i; 56706 } 56707 56708 He(e, n); 56709 var t = e.prototype; 56710 return t.buildCSSClass = function () { 56711 return "vjs-picture-in-picture-control " + n.prototype.buildCSSClass.call(this); 56712 }, t.handlePictureInPictureChange = function (e) { 56713 this.player_.isInPictureInPicture() ? this.controlText("Exit Picture-in-Picture") : this.controlText("Picture-in-Picture"); 56714 }, t.handleClick = function (e) { 56715 this.player_.isInPictureInPicture() ? this.player_.exitPictureInPicture() : this.player_.requestPictureInPicture(); 56716 }, e; 56717 }(dn); 56718 56719 Rn.prototype.controlText_ = "Picture-in-Picture", Re.registerComponent("PictureInPictureToggle", Rn); 56720 56721 var Un = function (n) { 56722 function e(e, t) { 56723 var i; 56724 return (i = n.call(this, e, t) || this).on(e, "fullscreenchange", i.handleFullscreenChange), !1 === h[e.fsApi_.fullscreenEnabled] && i.disable(), i; 56725 } 56726 56727 He(e, n); 56728 var t = e.prototype; 56729 return t.buildCSSClass = function () { 56730 return "vjs-fullscreen-control " + n.prototype.buildCSSClass.call(this); 56731 }, t.handleFullscreenChange = function (e) { 56732 this.player_.isFullscreen() ? this.controlText("Non-Fullscreen") : this.controlText("Fullscreen"); 56733 }, t.handleClick = function (e) { 56734 this.player_.isFullscreen() ? this.player_.exitFullscreen() : this.player_.requestFullscreen(); 56735 }, e; 56736 }(dn); 56737 56738 Un.prototype.controlText_ = "Fullscreen", Re.registerComponent("FullscreenToggle", Un); 56739 56740 var Mn = function (e) { 56741 function t() { 56742 return e.apply(this, arguments) || this; 56743 } 56744 56745 return He(t, e), t.prototype.createEl = function () { 56746 return e.prototype.createEl.call(this, "div", { 56747 className: "vjs-volume-level", 56748 innerHTML: '<span class="vjs-control-text"></span>' 56749 }); 56750 }, t; 56751 }(Re); 56752 56753 Re.registerComponent("VolumeLevel", Mn); 56754 56755 var Bn = function (n) { 56756 function e(e, t) { 56757 var i; 56758 return (i = n.call(this, e, t) || this).on("slideractive", i.updateLastVolume_), i.on(e, "volumechange", i.updateARIAAttributes), e.ready(function () { 56759 return i.updateARIAAttributes(); 56760 }), i; 56761 } 56762 56763 He(e, n); 56764 var t = e.prototype; 56765 return t.createEl = function () { 56766 return n.prototype.createEl.call(this, "div", { 56767 className: "vjs-volume-bar vjs-slider-bar" 56768 }, { 56769 "aria-label": this.localize("Volume Level"), 56770 "aria-live": "polite" 56771 }); 56772 }, t.handleMouseDown = function (e) { 56773 W(e) && n.prototype.handleMouseDown.call(this, e); 56774 }, t.handleMouseMove = function (e) { 56775 W(e) && (this.checkMuted(), this.player_.volume(this.calculateDistance(e))); 56776 }, t.checkMuted = function () { 56777 this.player_.muted() && this.player_.muted(!1); 56778 }, t.getPercent = function () { 56779 return this.player_.muted() ? 0 : this.player_.volume(); 56780 }, t.stepForward = function () { 56781 this.checkMuted(), this.player_.volume(this.player_.volume() + .1); 56782 }, t.stepBack = function () { 56783 this.checkMuted(), this.player_.volume(this.player_.volume() - .1); 56784 }, t.updateARIAAttributes = function (e) { 56785 var t = this.player_.muted() ? 0 : this.volumeAsPercentage_(); 56786 this.el_.setAttribute("aria-valuenow", t), this.el_.setAttribute("aria-valuetext", t + "%"); 56787 }, t.volumeAsPercentage_ = function () { 56788 return Math.round(100 * this.player_.volume()); 56789 }, t.updateLastVolume_ = function () { 56790 var e = this, 56791 t = this.player_.volume(); 56792 this.one("sliderinactive", function () { 56793 0 === e.player_.volume() && e.player_.lastVolume_(t); 56794 }); 56795 }, e; 56796 }(xn); 56797 56798 Bn.prototype.options_ = { 56799 children: ["volumeLevel"], 56800 barName: "volumeLevel" 56801 }, Bn.prototype.playerEvent = "volumechange", Re.registerComponent("VolumeBar", Bn); 56802 56803 var jn = function (n) { 56804 function e(e, t) { 56805 var i; 56806 return void 0 === t && (t = {}), t.vertical = t.vertical || !1, "undefined" != typeof t.volumeBar && !u(t.volumeBar) || (t.volumeBar = t.volumeBar || {}, t.volumeBar.vertical = t.vertical), i = n.call(this, e, t) || this, function (e, t) { 56807 t.tech_ && !t.tech_.featuresVolumeControl && e.addClass("vjs-hidden"), e.on(t, "loadstart", function () { 56808 t.tech_.featuresVolumeControl ? e.removeClass("vjs-hidden") : e.addClass("vjs-hidden"); 56809 }); 56810 }(Ue(i), e), i.throttledHandleMouseMove = ve(ge(Ue(i), i.handleMouseMove), 30), i.on("mousedown", i.handleMouseDown), i.on("touchstart", i.handleMouseDown), i.on(i.volumeBar, ["focus", "slideractive"], function () { 56811 i.volumeBar.addClass("vjs-slider-active"), i.addClass("vjs-slider-active"), i.trigger("slideractive"); 56812 }), i.on(i.volumeBar, ["blur", "sliderinactive"], function () { 56813 i.volumeBar.removeClass("vjs-slider-active"), i.removeClass("vjs-slider-active"), i.trigger("sliderinactive"); 56814 }), i; 56815 } 56816 56817 He(e, n); 56818 var t = e.prototype; 56819 return t.createEl = function () { 56820 var e = "vjs-volume-horizontal"; 56821 return this.options_.vertical && (e = "vjs-volume-vertical"), n.prototype.createEl.call(this, "div", { 56822 className: "vjs-volume-control vjs-control " + e 56823 }); 56824 }, t.handleMouseDown = function (e) { 56825 var t = this.el_.ownerDocument; 56826 this.on(t, "mousemove", this.throttledHandleMouseMove), this.on(t, "touchmove", this.throttledHandleMouseMove), this.on(t, "mouseup", this.handleMouseUp), this.on(t, "touchend", this.handleMouseUp); 56827 }, t.handleMouseUp = function (e) { 56828 var t = this.el_.ownerDocument; 56829 this.off(t, "mousemove", this.throttledHandleMouseMove), this.off(t, "touchmove", this.throttledHandleMouseMove), this.off(t, "mouseup", this.handleMouseUp), this.off(t, "touchend", this.handleMouseUp); 56830 }, t.handleMouseMove = function (e) { 56831 this.volumeBar.handleMouseMove(e); 56832 }, e; 56833 }(Re); 56834 56835 jn.prototype.options_ = { 56836 children: ["volumeBar"] 56837 }, Re.registerComponent("VolumeControl", jn); 56838 56839 var Fn = function (n) { 56840 function e(e, t) { 56841 var i; 56842 return i = n.call(this, e, t) || this, function (e, t) { 56843 t.tech_ && !t.tech_.featuresMuteControl && e.addClass("vjs-hidden"), e.on(t, "loadstart", function () { 56844 t.tech_.featuresMuteControl ? e.removeClass("vjs-hidden") : e.addClass("vjs-hidden"); 56845 }); 56846 }(Ue(i), e), i.on(e, ["loadstart", "volumechange"], i.update), i; 56847 } 56848 56849 He(e, n); 56850 var t = e.prototype; 56851 return t.buildCSSClass = function () { 56852 return "vjs-mute-control " + n.prototype.buildCSSClass.call(this); 56853 }, t.handleClick = function (e) { 56854 var t = this.player_.volume(), 56855 i = this.player_.lastVolume_(); 56856 56857 if (0 === t) { 56858 var n = i < .1 ? .1 : i; 56859 this.player_.volume(n), this.player_.muted(!1); 56860 } else this.player_.muted(!this.player_.muted()); 56861 }, t.update = function (e) { 56862 this.updateIcon_(), this.updateControlText_(); 56863 }, t.updateIcon_ = function () { 56864 var e = this.player_.volume(), 56865 t = 3; 56866 at && this.player_.tech_ && this.player_.tech_.el_ && this.player_.muted(this.player_.tech_.el_.muted), 0 === e || this.player_.muted() ? t = 0 : e < .33 ? t = 1 : e < .67 && (t = 2); 56867 56868 for (var i = 0; i < 4; i++) { 56869 x(this.el_, "vjs-vol-" + i); 56870 } 56871 56872 E(this.el_, "vjs-vol-" + t); 56873 }, t.updateControlText_ = function () { 56874 var e = this.player_.muted() || 0 === this.player_.volume() ? "Unmute" : "Mute"; 56875 this.controlText() !== e && this.controlText(e); 56876 }, e; 56877 }(dn); 56878 56879 Fn.prototype.controlText_ = "Mute", Re.registerComponent("MuteToggle", Fn); 56880 56881 var Hn = function (n) { 56882 function e(e, t) { 56883 var i; 56884 return void 0 === t && (t = {}), "undefined" != typeof t.inline ? t.inline = t.inline : t.inline = !0, "undefined" != typeof t.volumeControl && !u(t.volumeControl) || (t.volumeControl = t.volumeControl || {}, t.volumeControl.vertical = !t.inline), (i = n.call(this, e, t) || this).on(e, ["loadstart"], i.volumePanelState_), i.on(i.muteToggle, "keyup", i.handleKeyPress), i.on(i.volumeControl, "keyup", i.handleVolumeControlKeyUp), i.on("keydown", i.handleKeyPress), i.on("mouseover", i.handleMouseOver), i.on("mouseout", i.handleMouseOut), i.on(i.volumeControl, ["slideractive"], i.sliderActive_), i.on(i.volumeControl, ["sliderinactive"], i.sliderInactive_), i; 56885 } 56886 56887 He(e, n); 56888 var t = e.prototype; 56889 return t.sliderActive_ = function () { 56890 this.addClass("vjs-slider-active"); 56891 }, t.sliderInactive_ = function () { 56892 this.removeClass("vjs-slider-active"); 56893 }, t.volumePanelState_ = function () { 56894 this.volumeControl.hasClass("vjs-hidden") && this.muteToggle.hasClass("vjs-hidden") && this.addClass("vjs-hidden"), this.volumeControl.hasClass("vjs-hidden") && !this.muteToggle.hasClass("vjs-hidden") && this.addClass("vjs-mute-toggle-only"); 56895 }, t.createEl = function () { 56896 var e = "vjs-volume-panel-horizontal"; 56897 return this.options_.inline || (e = "vjs-volume-panel-vertical"), n.prototype.createEl.call(this, "div", { 56898 className: "vjs-volume-panel vjs-control " + e 56899 }); 56900 }, t.dispose = function () { 56901 this.handleMouseOut(), n.prototype.dispose.call(this); 56902 }, t.handleVolumeControlKeyUp = function (e) { 56903 xt.isEventKey(e, "Esc") && this.muteToggle.focus(); 56904 }, t.handleMouseOver = function (e) { 56905 this.addClass("vjs-hover"), he(h, "keyup", ge(this, this.handleKeyPress)); 56906 }, t.handleMouseOut = function (e) { 56907 this.removeClass("vjs-hover"), de(h, "keyup", ge(this, this.handleKeyPress)); 56908 }, t.handleKeyPress = function (e) { 56909 xt.isEventKey(e, "Esc") && this.handleMouseOut(); 56910 }, e; 56911 }(Re); 56912 56913 Hn.prototype.options_ = { 56914 children: ["muteToggle", "volumeControl"] 56915 }, Re.registerComponent("VolumePanel", Hn); 56916 56917 var Vn = function (n) { 56918 function e(e, t) { 56919 var i; 56920 return i = n.call(this, e, t) || this, t && (i.menuButton_ = t.menuButton), i.focusedChild_ = -1, i.on("keydown", i.handleKeyDown), i.boundHandleBlur_ = ge(Ue(i), i.handleBlur), i.boundHandleTapClick_ = ge(Ue(i), i.handleTapClick), i; 56921 } 56922 56923 He(e, n); 56924 var t = e.prototype; 56925 return t.addEventListenerForItem = function (e) { 56926 e instanceof Re && (this.on(e, "blur", this.boundHandleBlur_), this.on(e, ["tap", "click"], this.boundHandleTapClick_)); 56927 }, t.removeEventListenerForItem = function (e) { 56928 e instanceof Re && (this.off(e, "blur", this.boundHandleBlur_), this.off(e, ["tap", "click"], this.boundHandleTapClick_)); 56929 }, t.removeChild = function (e) { 56930 "string" == typeof e && (e = this.getChild(e)), this.removeEventListenerForItem(e), n.prototype.removeChild.call(this, e); 56931 }, t.addItem = function (e) { 56932 var t = this.addChild(e); 56933 t && this.addEventListenerForItem(t); 56934 }, t.createEl = function () { 56935 var e = this.options_.contentElType || "ul"; 56936 this.contentEl_ = S(e, { 56937 className: "vjs-menu-content" 56938 }), this.contentEl_.setAttribute("role", "menu"); 56939 var t = n.prototype.createEl.call(this, "div", { 56940 append: this.contentEl_, 56941 className: "vjs-menu" 56942 }); 56943 return t.appendChild(this.contentEl_), he(t, "click", function (e) { 56944 e.preventDefault(), e.stopImmediatePropagation(); 56945 }), t; 56946 }, t.dispose = function () { 56947 this.contentEl_ = null, this.boundHandleBlur_ = null, this.boundHandleTapClick_ = null, n.prototype.dispose.call(this); 56948 }, t.handleBlur = function (e) { 56949 var t = e.relatedTarget || h.activeElement; 56950 56951 if (!this.children().some(function (e) { 56952 return e.el() === t; 56953 })) { 56954 var i = this.menuButton_; 56955 i && i.buttonPressed_ && t !== i.el().firstChild && i.unpressButton(); 56956 } 56957 }, t.handleTapClick = function (t) { 56958 if (this.menuButton_) { 56959 this.menuButton_.unpressButton(); 56960 var e = this.children(); 56961 if (!Array.isArray(e)) return; 56962 var i = e.filter(function (e) { 56963 return e.el() === t.target; 56964 })[0]; 56965 if (!i) return; 56966 "CaptionSettingsMenuItem" !== i.name() && this.menuButton_.focus(); 56967 } 56968 }, t.handleKeyDown = function (e) { 56969 xt.isEventKey(e, "Left") || xt.isEventKey(e, "Down") ? (e.preventDefault(), e.stopPropagation(), this.stepForward()) : (xt.isEventKey(e, "Right") || xt.isEventKey(e, "Up")) && (e.preventDefault(), e.stopPropagation(), this.stepBack()); 56970 }, t.stepForward = function () { 56971 var e = 0; 56972 void 0 !== this.focusedChild_ && (e = this.focusedChild_ + 1), this.focus(e); 56973 }, t.stepBack = function () { 56974 var e = 0; 56975 void 0 !== this.focusedChild_ && (e = this.focusedChild_ - 1), this.focus(e); 56976 }, t.focus = function (e) { 56977 void 0 === e && (e = 0); 56978 var t = this.children().slice(); 56979 t.length && t[0].className && /vjs-menu-title/.test(t[0].className) && t.shift(), 0 < t.length && (e < 0 ? e = 0 : e >= t.length && (e = t.length - 1), t[this.focusedChild_ = e].el_.focus()); 56980 }, e; 56981 }(Re); 56982 56983 Re.registerComponent("Menu", Vn); 56984 56985 var qn = function (r) { 56986 function e(e, t) { 56987 var i; 56988 void 0 === t && (t = {}), (i = r.call(this, e, t) || this).menuButton_ = new dn(e, t), i.menuButton_.controlText(i.controlText_), i.menuButton_.el_.setAttribute("aria-haspopup", "true"); 56989 var n = dn.prototype.buildCSSClass(); 56990 return i.menuButton_.el_.className = i.buildCSSClass() + " " + n, i.menuButton_.removeClass("vjs-control"), i.addChild(i.menuButton_), i.update(), i.enabled_ = !0, i.on(i.menuButton_, "tap", i.handleClick), i.on(i.menuButton_, "click", i.handleClick), i.on(i.menuButton_, "keydown", i.handleKeyDown), i.on(i.menuButton_, "mouseenter", function () { 56991 i.addClass("vjs-hover"), i.menu.show(), he(h, "keyup", ge(Ue(i), i.handleMenuKeyUp)); 56992 }), i.on("mouseleave", i.handleMouseLeave), i.on("keydown", i.handleSubmenuKeyDown), i; 56993 } 56994 56995 He(e, r); 56996 var t = e.prototype; 56997 return t.update = function () { 56998 var e = this.createMenu(); 56999 this.menu && (this.menu.dispose(), this.removeChild(this.menu)), this.menu = e, this.addChild(e), this.buttonPressed_ = !1, this.menuButton_.el_.setAttribute("aria-expanded", "false"), this.items && this.items.length <= this.hideThreshold_ ? this.hide() : this.show(); 57000 }, t.createMenu = function () { 57001 var e = new Vn(this.player_, { 57002 menuButton: this 57003 }); 57004 57005 if (this.hideThreshold_ = 0, this.options_.title) { 57006 var t = S("li", { 57007 className: "vjs-menu-title", 57008 innerHTML: De(this.options_.title), 57009 tabIndex: -1 57010 }); 57011 this.hideThreshold_ += 1; 57012 var i = new Re(this.player_, { 57013 el: t 57014 }); 57015 e.addItem(i); 57016 } 57017 57018 if (this.items = this.createItems(), this.items) for (var n = 0; n < this.items.length; n++) { 57019 e.addItem(this.items[n]); 57020 } 57021 return e; 57022 }, t.createItems = function () {}, t.createEl = function () { 57023 return r.prototype.createEl.call(this, "div", { 57024 className: this.buildWrapperCSSClass() 57025 }, {}); 57026 }, t.buildWrapperCSSClass = function () { 57027 var e = "vjs-menu-button"; 57028 return !0 === this.options_.inline ? e += "-inline" : e += "-popup", "vjs-menu-button " + e + " " + dn.prototype.buildCSSClass() + " " + r.prototype.buildCSSClass.call(this); 57029 }, t.buildCSSClass = function () { 57030 var e = "vjs-menu-button"; 57031 return !0 === this.options_.inline ? e += "-inline" : e += "-popup", "vjs-menu-button " + e + " " + r.prototype.buildCSSClass.call(this); 57032 }, t.controlText = function (e, t) { 57033 return void 0 === t && (t = this.menuButton_.el()), this.menuButton_.controlText(e, t); 57034 }, t.dispose = function () { 57035 this.handleMouseLeave(), r.prototype.dispose.call(this); 57036 }, t.handleClick = function (e) { 57037 this.buttonPressed_ ? this.unpressButton() : this.pressButton(); 57038 }, t.handleMouseLeave = function (e) { 57039 this.removeClass("vjs-hover"), de(h, "keyup", ge(this, this.handleMenuKeyUp)); 57040 }, t.focus = function () { 57041 this.menuButton_.focus(); 57042 }, t.blur = function () { 57043 this.menuButton_.blur(); 57044 }, t.handleKeyDown = function (e) { 57045 xt.isEventKey(e, "Esc") || xt.isEventKey(e, "Tab") ? (this.buttonPressed_ && this.unpressButton(), xt.isEventKey(e, "Tab") || (e.preventDefault(), this.menuButton_.focus())) : (xt.isEventKey(e, "Up") || xt.isEventKey(e, "Down")) && (this.buttonPressed_ || (e.preventDefault(), this.pressButton())); 57046 }, t.handleMenuKeyUp = function (e) { 57047 (xt.isEventKey(e, "Esc") || xt.isEventKey(e, "Tab")) && this.removeClass("vjs-hover"); 57048 }, t.handleSubmenuKeyPress = function (e) { 57049 this.handleSubmenuKeyDown(e); 57050 }, t.handleSubmenuKeyDown = function (e) { 57051 (xt.isEventKey(e, "Esc") || xt.isEventKey(e, "Tab")) && (this.buttonPressed_ && this.unpressButton(), xt.isEventKey(e, "Tab") || (e.preventDefault(), this.menuButton_.focus())); 57052 }, t.pressButton = function () { 57053 if (this.enabled_) { 57054 if (this.buttonPressed_ = !0, this.menu.show(), this.menu.lockShowing(), this.menuButton_.el_.setAttribute("aria-expanded", "true"), at && b()) return; 57055 this.menu.focus(); 57056 } 57057 }, t.unpressButton = function () { 57058 this.enabled_ && (this.buttonPressed_ = !1, this.menu.unlockShowing(), this.menu.hide(), this.menuButton_.el_.setAttribute("aria-expanded", "false")); 57059 }, t.disable = function () { 57060 this.unpressButton(), this.enabled_ = !1, this.addClass("vjs-disabled"), this.menuButton_.disable(); 57061 }, t.enable = function () { 57062 this.enabled_ = !0, this.removeClass("vjs-disabled"), this.menuButton_.enable(); 57063 }, e; 57064 }(Re); 57065 57066 Re.registerComponent("MenuButton", qn); 57067 57068 var Wn = function (s) { 57069 function e(e, t) { 57070 var i, 57071 n = t.tracks; 57072 if ((i = s.call(this, e, t) || this).items.length <= 1 && i.hide(), !n) return Ue(i); 57073 var r = ge(Ue(i), i.update); 57074 return n.addEventListener("removetrack", r), n.addEventListener("addtrack", r), i.player_.on("ready", r), i.player_.on("dispose", function () { 57075 n.removeEventListener("removetrack", r), n.removeEventListener("addtrack", r); 57076 }), i; 57077 } 57078 57079 return He(e, s), e; 57080 }(qn); 57081 57082 Re.registerComponent("TrackButton", Wn); 57083 57084 var zn = ["Tab", "Esc", "Up", "Down", "Right", "Left"], 57085 Gn = function (n) { 57086 function e(e, t) { 57087 var i; 57088 return (i = n.call(this, e, t) || this).selectable = t.selectable, i.isSelected_ = t.selected || !1, i.multiSelectable = t.multiSelectable, i.selected(i.isSelected_), i.selectable ? i.multiSelectable ? i.el_.setAttribute("role", "menuitemcheckbox") : i.el_.setAttribute("role", "menuitemradio") : i.el_.setAttribute("role", "menuitem"), i; 57089 } 57090 57091 He(e, n); 57092 var t = e.prototype; 57093 return t.createEl = function (e, t, i) { 57094 return this.nonIconControl = !0, n.prototype.createEl.call(this, "li", m({ 57095 className: "vjs-menu-item", 57096 innerHTML: '<span class="vjs-menu-item-text">' + this.localize(this.options_.label) + "</span>", 57097 tabIndex: -1 57098 }, t), i); 57099 }, t.handleKeyDown = function (t) { 57100 zn.some(function (e) { 57101 return xt.isEventKey(t, e); 57102 }) || n.prototype.handleKeyDown.call(this, t); 57103 }, t.handleClick = function (e) { 57104 this.selected(!0); 57105 }, t.selected = function (e) { 57106 this.selectable && (e ? (this.addClass("vjs-selected"), this.el_.setAttribute("aria-checked", "true"), this.controlText(", selected"), this.isSelected_ = !0) : (this.removeClass("vjs-selected"), this.el_.setAttribute("aria-checked", "false"), this.controlText(""), this.isSelected_ = !1)); 57107 }, e; 57108 }(rn); 57109 57110 Re.registerComponent("MenuItem", Gn); 57111 57112 var Xn = function (u) { 57113 function e(e, t) { 57114 var n, 57115 i = t.track, 57116 r = e.textTracks(); 57117 t.label = i.label || i.language || "Unknown", t.selected = "showing" === i.mode, (n = u.call(this, e, t) || this).track = i, n.kinds = (t.kinds || [t.kind || n.track.kind]).filter(Boolean); 57118 57119 function s() { 57120 for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 57121 t[i] = arguments[i]; 57122 } 57123 57124 n.handleTracksChange.apply(Ue(n), t); 57125 } 57126 57127 function a() { 57128 for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 57129 t[i] = arguments[i]; 57130 } 57131 57132 n.handleSelectedLanguageChange.apply(Ue(n), t); 57133 } 57134 57135 var o; 57136 e.on(["loadstart", "texttrackchange"], s), r.addEventListener("change", s), r.addEventListener("selectedlanguagechange", a), n.on("dispose", function () { 57137 e.off(["loadstart", "texttrackchange"], s), r.removeEventListener("change", s), r.removeEventListener("selectedlanguagechange", a); 57138 }), void 0 === r.onchange && n.on(["tap", "click"], function () { 57139 if ("object" != _typeof(y.Event)) try { 57140 o = new y.Event("change"); 57141 } catch (e) {} 57142 o || (o = h.createEvent("Event")).initEvent("change", !0, !0), r.dispatchEvent(o); 57143 }); 57144 return n.handleTracksChange(), n; 57145 } 57146 57147 He(e, u); 57148 var t = e.prototype; 57149 return t.handleClick = function (e) { 57150 var t = this.track, 57151 i = this.player_.textTracks(); 57152 if (u.prototype.handleClick.call(this, e), i) for (var n = 0; n < i.length; n++) { 57153 var r = i[n]; 57154 -1 !== this.kinds.indexOf(r.kind) && (r === t ? "showing" !== r.mode && (r.mode = "showing") : "disabled" !== r.mode && (r.mode = "disabled")); 57155 } 57156 }, t.handleTracksChange = function (e) { 57157 var t = "showing" === this.track.mode; 57158 t !== this.isSelected_ && this.selected(t); 57159 }, t.handleSelectedLanguageChange = function (e) { 57160 if ("showing" === this.track.mode) { 57161 var t = this.player_.cache_.selectedLanguage; 57162 if (t && t.enabled && t.language === this.track.language && t.kind !== this.track.kind) return; 57163 this.player_.cache_.selectedLanguage = { 57164 enabled: !0, 57165 language: this.track.language, 57166 kind: this.track.kind 57167 }; 57168 } 57169 }, t.dispose = function () { 57170 this.track = null, u.prototype.dispose.call(this); 57171 }, e; 57172 }(Gn); 57173 57174 Re.registerComponent("TextTrackMenuItem", Xn); 57175 57176 var Kn = function (i) { 57177 function e(e, t) { 57178 return t.track = { 57179 player: e, 57180 kind: t.kind, 57181 kinds: t.kinds, 57182 "default": !1, 57183 mode: "disabled" 57184 }, t.kinds || (t.kinds = [t.kind]), t.label ? t.track.label = t.label : t.track.label = t.kinds.join(" and ") + " off", t.selectable = !0, t.multiSelectable = !1, i.call(this, e, t) || this; 57185 } 57186 57187 He(e, i); 57188 var t = e.prototype; 57189 return t.handleTracksChange = function (e) { 57190 for (var t = this.player().textTracks(), i = !0, n = 0, r = t.length; n < r; n++) { 57191 var s = t[n]; 57192 57193 if (-1 < this.options_.kinds.indexOf(s.kind) && "showing" === s.mode) { 57194 i = !1; 57195 break; 57196 } 57197 } 57198 57199 i !== this.isSelected_ && this.selected(i); 57200 }, t.handleSelectedLanguageChange = function (e) { 57201 for (var t = this.player().textTracks(), i = !0, n = 0, r = t.length; n < r; n++) { 57202 var s = t[n]; 57203 57204 if (-1 < ["captions", "descriptions", "subtitles"].indexOf(s.kind) && "showing" === s.mode) { 57205 i = !1; 57206 break; 57207 } 57208 } 57209 57210 i && (this.player_.cache_.selectedLanguage = { 57211 enabled: !1 57212 }); 57213 }, e; 57214 }(Xn); 57215 57216 Re.registerComponent("OffTextTrackMenuItem", Kn); 57217 57218 var Yn = function (i) { 57219 function e(e, t) { 57220 return void 0 === t && (t = {}), t.tracks = e.textTracks(), i.call(this, e, t) || this; 57221 } 57222 57223 return He(e, i), e.prototype.createItems = function (e, t) { 57224 var i; 57225 void 0 === e && (e = []), void 0 === t && (t = Xn), this.label_ && (i = this.label_ + " off"), e.push(new Kn(this.player_, { 57226 kinds: this.kinds_, 57227 kind: this.kind_, 57228 label: i 57229 })), this.hideThreshold_ += 1; 57230 var n = this.player_.textTracks(); 57231 Array.isArray(this.kinds_) || (this.kinds_ = [this.kind_]); 57232 57233 for (var r = 0; r < n.length; r++) { 57234 var s = n[r]; 57235 57236 if (-1 < this.kinds_.indexOf(s.kind)) { 57237 var a = new t(this.player_, { 57238 track: s, 57239 kinds: this.kinds_, 57240 kind: this.kind_, 57241 selectable: !0, 57242 multiSelectable: !1 57243 }); 57244 a.addClass("vjs-" + s.kind + "-menu-item"), e.push(a); 57245 } 57246 } 57247 57248 return e; 57249 }, e; 57250 }(Wn); 57251 57252 Re.registerComponent("TextTrackButton", Yn); 57253 57254 var $n = function (a) { 57255 function e(e, t) { 57256 var i, 57257 n = t.track, 57258 r = t.cue, 57259 s = e.currentTime(); 57260 return t.selectable = !0, t.multiSelectable = !1, t.label = r.text, t.selected = r.startTime <= s && s < r.endTime, (i = a.call(this, e, t) || this).track = n, i.cue = r, n.addEventListener("cuechange", ge(Ue(i), i.update)), i; 57261 } 57262 57263 He(e, a); 57264 var t = e.prototype; 57265 return t.handleClick = function (e) { 57266 a.prototype.handleClick.call(this), this.player_.currentTime(this.cue.startTime), this.update(this.cue.startTime); 57267 }, t.update = function (e) { 57268 var t = this.cue, 57269 i = this.player_.currentTime(); 57270 this.selected(t.startTime <= i && i < t.endTime); 57271 }, e; 57272 }(Gn); 57273 57274 Re.registerComponent("ChaptersTrackMenuItem", $n); 57275 57276 var Qn = function (n) { 57277 function e(e, t, i) { 57278 return n.call(this, e, t, i) || this; 57279 } 57280 57281 He(e, n); 57282 var t = e.prototype; 57283 return t.buildCSSClass = function () { 57284 return "vjs-chapters-button " + n.prototype.buildCSSClass.call(this); 57285 }, t.buildWrapperCSSClass = function () { 57286 return "vjs-chapters-button " + n.prototype.buildWrapperCSSClass.call(this); 57287 }, t.update = function (e) { 57288 this.track_ && (!e || "addtrack" !== e.type && "removetrack" !== e.type) || this.setTrack(this.findChaptersTrack()), n.prototype.update.call(this); 57289 }, t.setTrack = function (e) { 57290 if (this.track_ !== e) { 57291 if (this.updateHandler_ || (this.updateHandler_ = this.update.bind(this)), this.track_) { 57292 var t = this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_); 57293 t && t.removeEventListener("load", this.updateHandler_), this.track_ = null; 57294 } 57295 57296 if (this.track_ = e, this.track_) { 57297 this.track_.mode = "hidden"; 57298 var i = this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_); 57299 i && i.addEventListener("load", this.updateHandler_); 57300 } 57301 } 57302 }, t.findChaptersTrack = function () { 57303 for (var e = this.player_.textTracks() || [], t = e.length - 1; 0 <= t; t--) { 57304 var i = e[t]; 57305 if (i.kind === this.kind_) return i; 57306 } 57307 }, t.getMenuCaption = function () { 57308 return this.track_ && this.track_.label ? this.track_.label : this.localize(De(this.kind_)); 57309 }, t.createMenu = function () { 57310 return this.options_.title = this.getMenuCaption(), n.prototype.createMenu.call(this); 57311 }, t.createItems = function () { 57312 var e = []; 57313 if (!this.track_) return e; 57314 var t = this.track_.cues; 57315 if (!t) return e; 57316 57317 for (var i = 0, n = t.length; i < n; i++) { 57318 var r = t[i], 57319 s = new $n(this.player_, { 57320 track: this.track_, 57321 cue: r 57322 }); 57323 e.push(s); 57324 } 57325 57326 return e; 57327 }, e; 57328 }(Yn); 57329 57330 Qn.prototype.kind_ = "chapters", Qn.prototype.controlText_ = "Chapters", Re.registerComponent("ChaptersButton", Qn); 57331 57332 var Jn = function (a) { 57333 function e(e, t, i) { 57334 var n; 57335 n = a.call(this, e, t, i) || this; 57336 var r = e.textTracks(), 57337 s = ge(Ue(n), n.handleTracksChange); 57338 return r.addEventListener("change", s), n.on("dispose", function () { 57339 r.removeEventListener("change", s); 57340 }), n; 57341 } 57342 57343 He(e, a); 57344 var t = e.prototype; 57345 return t.handleTracksChange = function (e) { 57346 for (var t = this.player().textTracks(), i = !1, n = 0, r = t.length; n < r; n++) { 57347 var s = t[n]; 57348 57349 if (s.kind !== this.kind_ && "showing" === s.mode) { 57350 i = !0; 57351 break; 57352 } 57353 } 57354 57355 i ? this.disable() : this.enable(); 57356 }, t.buildCSSClass = function () { 57357 return "vjs-descriptions-button " + a.prototype.buildCSSClass.call(this); 57358 }, t.buildWrapperCSSClass = function () { 57359 return "vjs-descriptions-button " + a.prototype.buildWrapperCSSClass.call(this); 57360 }, e; 57361 }(Yn); 57362 57363 Jn.prototype.kind_ = "descriptions", Jn.prototype.controlText_ = "Descriptions", Re.registerComponent("DescriptionsButton", Jn); 57364 57365 var Zn = function (n) { 57366 function e(e, t, i) { 57367 return n.call(this, e, t, i) || this; 57368 } 57369 57370 He(e, n); 57371 var t = e.prototype; 57372 return t.buildCSSClass = function () { 57373 return "vjs-subtitles-button " + n.prototype.buildCSSClass.call(this); 57374 }, t.buildWrapperCSSClass = function () { 57375 return "vjs-subtitles-button " + n.prototype.buildWrapperCSSClass.call(this); 57376 }, e; 57377 }(Yn); 57378 57379 Zn.prototype.kind_ = "subtitles", Zn.prototype.controlText_ = "Subtitles", Re.registerComponent("SubtitlesButton", Zn); 57380 57381 var er = function (n) { 57382 function e(e, t) { 57383 var i; 57384 return t.track = { 57385 player: e, 57386 kind: t.kind, 57387 label: t.kind + " settings", 57388 selectable: !1, 57389 "default": !1, 57390 mode: "disabled" 57391 }, t.selectable = !1, t.name = "CaptionSettingsMenuItem", (i = n.call(this, e, t) || this).addClass("vjs-texttrack-settings"), i.controlText(", opens " + t.kind + " settings dialog"), i; 57392 } 57393 57394 return He(e, n), e.prototype.handleClick = function (e) { 57395 this.player().getChild("textTrackSettings").open(); 57396 }, e; 57397 }(Xn); 57398 57399 Re.registerComponent("CaptionSettingsMenuItem", er); 57400 57401 var tr = function (n) { 57402 function e(e, t, i) { 57403 return n.call(this, e, t, i) || this; 57404 } 57405 57406 He(e, n); 57407 var t = e.prototype; 57408 return t.buildCSSClass = function () { 57409 return "vjs-captions-button " + n.prototype.buildCSSClass.call(this); 57410 }, t.buildWrapperCSSClass = function () { 57411 return "vjs-captions-button " + n.prototype.buildWrapperCSSClass.call(this); 57412 }, t.createItems = function () { 57413 var e = []; 57414 return this.player().tech_ && this.player().tech_.featuresNativeTextTracks || !this.player().getChild("textTrackSettings") || (e.push(new er(this.player_, { 57415 kind: this.kind_ 57416 })), this.hideThreshold_ += 1), n.prototype.createItems.call(this, e); 57417 }, e; 57418 }(Yn); 57419 57420 tr.prototype.kind_ = "captions", tr.prototype.controlText_ = "Captions", Re.registerComponent("CaptionsButton", tr); 57421 57422 var ir = function (r) { 57423 function e() { 57424 return r.apply(this, arguments) || this; 57425 } 57426 57427 return He(e, r), e.prototype.createEl = function (e, t, i) { 57428 var n = '<span class="vjs-menu-item-text">' + this.localize(this.options_.label); 57429 return "captions" === this.options_.track.kind && (n += '\n <span aria-hidden="true" class="vjs-icon-placeholder"></span>\n <span class="vjs-control-text"> ' + this.localize("Captions") + "</span>\n "), n += "</span>", r.prototype.createEl.call(this, e, m({ 57430 innerHTML: n 57431 }, t), i); 57432 }, e; 57433 }(Xn); 57434 57435 Re.registerComponent("SubsCapsMenuItem", ir); 57436 57437 var nr = function (n) { 57438 function e(e, t) { 57439 var i; 57440 return void 0 === t && (t = {}), (i = n.call(this, e, t) || this).label_ = "subtitles", -1 < ["en", "en-us", "en-ca", "fr-ca"].indexOf(i.player_.language_) && (i.label_ = "captions"), i.menuButton_.controlText(De(i.label_)), i; 57441 } 57442 57443 He(e, n); 57444 var t = e.prototype; 57445 return t.buildCSSClass = function () { 57446 return "vjs-subs-caps-button " + n.prototype.buildCSSClass.call(this); 57447 }, t.buildWrapperCSSClass = function () { 57448 return "vjs-subs-caps-button " + n.prototype.buildWrapperCSSClass.call(this); 57449 }, t.createItems = function () { 57450 var e = []; 57451 return this.player().tech_ && this.player().tech_.featuresNativeTextTracks || !this.player().getChild("textTrackSettings") || (e.push(new er(this.player_, { 57452 kind: this.label_ 57453 })), this.hideThreshold_ += 1), e = n.prototype.createItems.call(this, e, ir); 57454 }, e; 57455 }(Yn); 57456 57457 nr.prototype.kinds_ = ["captions", "subtitles"], nr.prototype.controlText_ = "Subtitles", Re.registerComponent("SubsCapsButton", nr); 57458 57459 var rr = function (a) { 57460 function e(e, t) { 57461 var n, 57462 i = t.track, 57463 r = e.audioTracks(); 57464 t.label = i.label || i.language || "Unknown", t.selected = i.enabled, (n = a.call(this, e, t) || this).track = i, n.addClass("vjs-" + i.kind + "-menu-item"); 57465 57466 function s() { 57467 for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 57468 t[i] = arguments[i]; 57469 } 57470 57471 n.handleTracksChange.apply(Ue(n), t); 57472 } 57473 57474 return r.addEventListener("change", s), n.on("dispose", function () { 57475 r.removeEventListener("change", s); 57476 }), n; 57477 } 57478 57479 He(e, a); 57480 var t = e.prototype; 57481 return t.createEl = function (e, t, i) { 57482 var n = '<span class="vjs-menu-item-text">' + this.localize(this.options_.label); 57483 return "main-desc" === this.options_.track.kind && (n += '\n <span aria-hidden="true" class="vjs-icon-placeholder"></span>\n <span class="vjs-control-text"> ' + this.localize("Descriptions") + "</span>\n "), n += "</span>", a.prototype.createEl.call(this, e, m({ 57484 innerHTML: n 57485 }, t), i); 57486 }, t.handleClick = function (e) { 57487 var t = this.player_.audioTracks(); 57488 a.prototype.handleClick.call(this, e); 57489 57490 for (var i = 0; i < t.length; i++) { 57491 var n = t[i]; 57492 n.enabled = n === this.track; 57493 } 57494 }, t.handleTracksChange = function (e) { 57495 this.selected(this.track.enabled); 57496 }, e; 57497 }(Gn); 57498 57499 Re.registerComponent("AudioTrackMenuItem", rr); 57500 57501 var sr = function (i) { 57502 function e(e, t) { 57503 return void 0 === t && (t = {}), t.tracks = e.audioTracks(), i.call(this, e, t) || this; 57504 } 57505 57506 He(e, i); 57507 var t = e.prototype; 57508 return t.buildCSSClass = function () { 57509 return "vjs-audio-button " + i.prototype.buildCSSClass.call(this); 57510 }, t.buildWrapperCSSClass = function () { 57511 return "vjs-audio-button " + i.prototype.buildWrapperCSSClass.call(this); 57512 }, t.createItems = function (e) { 57513 void 0 === e && (e = []), this.hideThreshold_ = 1; 57514 57515 for (var t = this.player_.audioTracks(), i = 0; i < t.length; i++) { 57516 var n = t[i]; 57517 e.push(new rr(this.player_, { 57518 track: n, 57519 selectable: !0, 57520 multiSelectable: !1 57521 })); 57522 } 57523 57524 return e; 57525 }, e; 57526 }(Wn); 57527 57528 sr.prototype.controlText_ = "Audio Track", Re.registerComponent("AudioTrackButton", sr); 57529 57530 var ar = function (s) { 57531 function e(e, t) { 57532 var i, 57533 n = t.rate, 57534 r = parseFloat(n, 10); 57535 return t.label = n, t.selected = 1 === r, t.selectable = !0, t.multiSelectable = !1, (i = s.call(this, e, t) || this).label = n, i.rate = r, i.on(e, "ratechange", i.update), i; 57536 } 57537 57538 He(e, s); 57539 var t = e.prototype; 57540 return t.handleClick = function (e) { 57541 s.prototype.handleClick.call(this), this.player().playbackRate(this.rate); 57542 }, t.update = function (e) { 57543 this.selected(this.player().playbackRate() === this.rate); 57544 }, e; 57545 }(Gn); 57546 57547 ar.prototype.contentElType = "button", Re.registerComponent("PlaybackRateMenuItem", ar); 57548 57549 var or = function (n) { 57550 function e(e, t) { 57551 var i; 57552 return (i = n.call(this, e, t) || this).updateVisibility(), i.updateLabel(), i.on(e, "loadstart", i.updateVisibility), i.on(e, "ratechange", i.updateLabel), i; 57553 } 57554 57555 He(e, n); 57556 var t = e.prototype; 57557 return t.createEl = function () { 57558 var e = n.prototype.createEl.call(this); 57559 return this.labelEl_ = S("div", { 57560 className: "vjs-playback-rate-value", 57561 innerHTML: "1x" 57562 }), e.appendChild(this.labelEl_), e; 57563 }, t.dispose = function () { 57564 this.labelEl_ = null, n.prototype.dispose.call(this); 57565 }, t.buildCSSClass = function () { 57566 return "vjs-playback-rate " + n.prototype.buildCSSClass.call(this); 57567 }, t.buildWrapperCSSClass = function () { 57568 return "vjs-playback-rate " + n.prototype.buildWrapperCSSClass.call(this); 57569 }, t.createMenu = function () { 57570 var e = new Vn(this.player()), 57571 t = this.playbackRates(); 57572 if (t) for (var i = t.length - 1; 0 <= i; i--) { 57573 e.addChild(new ar(this.player(), { 57574 rate: t[i] + "x" 57575 })); 57576 } 57577 return e; 57578 }, t.updateARIAAttributes = function () { 57579 this.el().setAttribute("aria-valuenow", this.player().playbackRate()); 57580 }, t.handleClick = function (e) { 57581 for (var t = this.player().playbackRate(), i = this.playbackRates(), n = i[0], r = 0; r < i.length; r++) { 57582 if (i[r] > t) { 57583 n = i[r]; 57584 break; 57585 } 57586 } 57587 57588 this.player().playbackRate(n); 57589 }, t.playbackRates = function () { 57590 return this.options_.playbackRates || this.options_.playerOptions && this.options_.playerOptions.playbackRates; 57591 }, t.playbackRateSupported = function () { 57592 return this.player().tech_ && this.player().tech_.featuresPlaybackRate && this.playbackRates() && 0 < this.playbackRates().length; 57593 }, t.updateVisibility = function (e) { 57594 this.playbackRateSupported() ? this.removeClass("vjs-hidden") : this.addClass("vjs-hidden"); 57595 }, t.updateLabel = function (e) { 57596 this.playbackRateSupported() && (this.labelEl_.innerHTML = this.player().playbackRate() + "x"); 57597 }, e; 57598 }(qn); 57599 57600 or.prototype.controlText_ = "Playback Rate", Re.registerComponent("PlaybackRateMenuButton", or); 57601 57602 var ur = function (e) { 57603 function t() { 57604 return e.apply(this, arguments) || this; 57605 } 57606 57607 He(t, e); 57608 var i = t.prototype; 57609 return i.buildCSSClass = function () { 57610 return "vjs-spacer " + e.prototype.buildCSSClass.call(this); 57611 }, i.createEl = function () { 57612 return e.prototype.createEl.call(this, "div", { 57613 className: this.buildCSSClass() 57614 }); 57615 }, t; 57616 }(Re); 57617 57618 Re.registerComponent("Spacer", ur); 57619 57620 var lr = function (t) { 57621 function e() { 57622 return t.apply(this, arguments) || this; 57623 } 57624 57625 He(e, t); 57626 var i = e.prototype; 57627 return i.buildCSSClass = function () { 57628 return "vjs-custom-control-spacer " + t.prototype.buildCSSClass.call(this); 57629 }, i.createEl = function () { 57630 var e = t.prototype.createEl.call(this, { 57631 className: this.buildCSSClass() 57632 }); 57633 return e.innerHTML = " ", e; 57634 }, e; 57635 }(ur); 57636 57637 Re.registerComponent("CustomControlSpacer", lr); 57638 57639 var cr = function (e) { 57640 function t() { 57641 return e.apply(this, arguments) || this; 57642 } 57643 57644 return He(t, e), t.prototype.createEl = function () { 57645 return e.prototype.createEl.call(this, "div", { 57646 className: "vjs-control-bar", 57647 dir: "ltr" 57648 }); 57649 }, t; 57650 }(Re); 57651 57652 cr.prototype.options_ = { 57653 children: ["playToggle", "volumePanel", "currentTimeDisplay", "timeDivider", "durationDisplay", "progressControl", "liveDisplay", "seekToLive", "remainingTimeDisplay", "customControlSpacer", "playbackRateMenuButton", "chaptersButton", "descriptionsButton", "subsCapsButton", "audioTrackButton", "fullscreenToggle"] 57654 }, "exitPictureInPicture" in h && cr.prototype.options_.children.splice(cr.prototype.options_.children.length - 1, 0, "pictureInPictureToggle"), Re.registerComponent("ControlBar", cr); 57655 57656 var hr = function (n) { 57657 function e(e, t) { 57658 var i; 57659 return (i = n.call(this, e, t) || this).on(e, "error", i.open), i; 57660 } 57661 57662 He(e, n); 57663 var t = e.prototype; 57664 return t.buildCSSClass = function () { 57665 return "vjs-error-display " + n.prototype.buildCSSClass.call(this); 57666 }, t.content = function () { 57667 var e = this.player().error(); 57668 return e ? this.localize(e.message) : ""; 57669 }, e; 57670 }(It); 57671 57672 hr.prototype.options_ = r({}, It.prototype.options_, { 57673 pauseOnOpen: !1, 57674 fillAlways: !0, 57675 temporary: !1, 57676 uncloseable: !0 57677 }), Re.registerComponent("ErrorDisplay", hr); 57678 var dr = "vjs-text-track-settings", 57679 pr = ["#000", "Black"], 57680 fr = ["#00F", "Blue"], 57681 mr = ["#0FF", "Cyan"], 57682 gr = ["#0F0", "Green"], 57683 vr = ["#F0F", "Magenta"], 57684 yr = ["#F00", "Red"], 57685 _r = ["#FFF", "White"], 57686 br = ["#FF0", "Yellow"], 57687 Tr = ["1", "Opaque"], 57688 Sr = ["0.5", "Semi-Transparent"], 57689 kr = ["0", "Transparent"], 57690 Cr = { 57691 backgroundColor: { 57692 selector: ".vjs-bg-color > select", 57693 id: "captions-background-color-%s", 57694 label: "Color", 57695 options: [pr, _r, yr, gr, fr, br, vr, mr] 57696 }, 57697 backgroundOpacity: { 57698 selector: ".vjs-bg-opacity > select", 57699 id: "captions-background-opacity-%s", 57700 label: "Transparency", 57701 options: [Tr, Sr, kr] 57702 }, 57703 color: { 57704 selector: ".vjs-fg-color > select", 57705 id: "captions-foreground-color-%s", 57706 label: "Color", 57707 options: [_r, pr, yr, gr, fr, br, vr, mr] 57708 }, 57709 edgeStyle: { 57710 selector: ".vjs-edge-style > select", 57711 id: "%s", 57712 label: "Text Edge Style", 57713 options: [["none", "None"], ["raised", "Raised"], ["depressed", "Depressed"], ["uniform", "Uniform"], ["dropshadow", "Dropshadow"]] 57714 }, 57715 fontFamily: { 57716 selector: ".vjs-font-family > select", 57717 id: "captions-font-family-%s", 57718 label: "Font Family", 57719 options: [["proportionalSansSerif", "Proportional Sans-Serif"], ["monospaceSansSerif", "Monospace Sans-Serif"], ["proportionalSerif", "Proportional Serif"], ["monospaceSerif", "Monospace Serif"], ["casual", "Casual"], ["script", "Script"], ["small-caps", "Small Caps"]] 57720 }, 57721 fontPercent: { 57722 selector: ".vjs-font-percent > select", 57723 id: "captions-font-size-%s", 57724 label: "Font Size", 57725 options: [["0.50", "50%"], ["0.75", "75%"], ["1.00", "100%"], ["1.25", "125%"], ["1.50", "150%"], ["1.75", "175%"], ["2.00", "200%"], ["3.00", "300%"], ["4.00", "400%"]], 57726 "default": 2, 57727 parser: function parser(e) { 57728 return "1.00" === e ? null : Number(e); 57729 } 57730 }, 57731 textOpacity: { 57732 selector: ".vjs-text-opacity > select", 57733 id: "captions-foreground-opacity-%s", 57734 label: "Transparency", 57735 options: [Tr, Sr] 57736 }, 57737 windowColor: { 57738 selector: ".vjs-window-color > select", 57739 id: "captions-window-color-%s", 57740 label: "Color" 57741 }, 57742 windowOpacity: { 57743 selector: ".vjs-window-opacity > select", 57744 id: "captions-window-opacity-%s", 57745 label: "Transparency", 57746 options: [kr, Sr, Tr] 57747 } 57748 }; 57749 57750 function wr(e, t) { 57751 if (t && (e = t(e)), e && "none" !== e) return e; 57752 } 57753 57754 Cr.windowColor.options = Cr.backgroundColor.options; 57755 57756 var Er = function (n) { 57757 function e(e, t) { 57758 var i; 57759 return t.temporary = !1, (i = n.call(this, e, t) || this).updateDisplay = ge(Ue(i), i.updateDisplay), i.fill(), i.hasBeenOpened_ = i.hasBeenFilled_ = !0, i.endDialog = S("p", { 57760 className: "vjs-control-text", 57761 textContent: i.localize("End of dialog window.") 57762 }), i.el().appendChild(i.endDialog), i.setDefaults(), void 0 === t.persistTextTrackSettings && (i.options_.persistTextTrackSettings = i.options_.playerOptions.persistTextTrackSettings), i.on(i.$(".vjs-done-button"), "click", function () { 57763 i.saveSettings(), i.close(); 57764 }), i.on(i.$(".vjs-default-button"), "click", function () { 57765 i.setDefaults(), i.updateDisplay(); 57766 }), a(Cr, function (e) { 57767 i.on(i.$(e.selector), "change", i.updateDisplay); 57768 }), i.options_.persistTextTrackSettings && i.restoreSettings(), i; 57769 } 57770 57771 He(e, n); 57772 var t = e.prototype; 57773 return t.dispose = function () { 57774 this.endDialog = null, n.prototype.dispose.call(this); 57775 }, t.createElSelect_ = function (e, t, i) { 57776 var n = this; 57777 void 0 === t && (t = ""), void 0 === i && (i = "label"); 57778 var r = Cr[e], 57779 s = r.id.replace("%s", this.id_), 57780 a = [t, s].join(" ").trim(); 57781 return ["<" + i + ' id="' + s + '" class="' + ("label" === i ? "vjs-label" : "") + '">', this.localize(r.label), "</" + i + ">", '<select aria-labelledby="' + a + '">'].concat(r.options.map(function (e) { 57782 var t = s + "-" + e[1].replace(/\W+/g, ""); 57783 return ['<option id="' + t + '" value="' + e[0] + '" ', 'aria-labelledby="' + a + " " + t + '">', n.localize(e[1]), "</option>"].join(""); 57784 })).concat("</select>").join(""); 57785 }, t.createElFgColor_ = function () { 57786 var e = "captions-text-legend-" + this.id_; 57787 return ['<fieldset class="vjs-fg-color vjs-track-setting">', '<legend id="' + e + '">', this.localize("Text"), "</legend>", this.createElSelect_("color", e), '<span class="vjs-text-opacity vjs-opacity">', this.createElSelect_("textOpacity", e), "</span>", "</fieldset>"].join(""); 57788 }, t.createElBgColor_ = function () { 57789 var e = "captions-background-" + this.id_; 57790 return ['<fieldset class="vjs-bg-color vjs-track-setting">', '<legend id="' + e + '">', this.localize("Background"), "</legend>", this.createElSelect_("backgroundColor", e), '<span class="vjs-bg-opacity vjs-opacity">', this.createElSelect_("backgroundOpacity", e), "</span>", "</fieldset>"].join(""); 57791 }, t.createElWinColor_ = function () { 57792 var e = "captions-window-" + this.id_; 57793 return ['<fieldset class="vjs-window-color vjs-track-setting">', '<legend id="' + e + '">', this.localize("Window"), "</legend>", this.createElSelect_("windowColor", e), '<span class="vjs-window-opacity vjs-opacity">', this.createElSelect_("windowOpacity", e), "</span>", "</fieldset>"].join(""); 57794 }, t.createElColors_ = function () { 57795 return S("div", { 57796 className: "vjs-track-settings-colors", 57797 innerHTML: [this.createElFgColor_(), this.createElBgColor_(), this.createElWinColor_()].join("") 57798 }); 57799 }, t.createElFont_ = function () { 57800 return S("div", { 57801 className: "vjs-track-settings-font", 57802 innerHTML: ['<fieldset class="vjs-font-percent vjs-track-setting">', this.createElSelect_("fontPercent", "", "legend"), "</fieldset>", '<fieldset class="vjs-edge-style vjs-track-setting">', this.createElSelect_("edgeStyle", "", "legend"), "</fieldset>", '<fieldset class="vjs-font-family vjs-track-setting">', this.createElSelect_("fontFamily", "", "legend"), "</fieldset>"].join("") 57803 }); 57804 }, t.createElControls_ = function () { 57805 var e = this.localize("restore all settings to the default values"); 57806 return S("div", { 57807 className: "vjs-track-settings-controls", 57808 innerHTML: ['<button type="button" class="vjs-default-button" title="' + e + '">', this.localize("Reset"), '<span class="vjs-control-text"> ' + e + "</span>", "</button>", '<button type="button" class="vjs-done-button">' + this.localize("Done") + "</button>"].join("") 57809 }); 57810 }, t.content = function () { 57811 return [this.createElColors_(), this.createElFont_(), this.createElControls_()]; 57812 }, t.label = function () { 57813 return this.localize("Caption Settings Dialog"); 57814 }, t.description = function () { 57815 return this.localize("Beginning of dialog window. Escape will cancel and close the window."); 57816 }, t.buildCSSClass = function () { 57817 return n.prototype.buildCSSClass.call(this) + " vjs-text-track-settings"; 57818 }, t.getValues = function () { 57819 var r = this; 57820 return function (i, n, e) { 57821 return void 0 === e && (e = 0), s(i).reduce(function (e, t) { 57822 return n(e, i[t], t); 57823 }, e); 57824 }(Cr, function (e, t, i) { 57825 var n = function (e, t) { 57826 return wr(e.options[e.options.selectedIndex].value, t); 57827 }(r.$(t.selector), t.parser); 57828 57829 return void 0 !== n && (e[i] = n), e; 57830 }, {}); 57831 }, t.setValues = function (i) { 57832 var n = this; 57833 a(Cr, function (e, t) { 57834 !function (e, t, i) { 57835 if (t) for (var n = 0; n < e.options.length; n++) { 57836 if (wr(e.options[n].value, i) === t) { 57837 e.selectedIndex = n; 57838 break; 57839 } 57840 } 57841 }(n.$(e.selector), i[t], e.parser); 57842 }); 57843 }, t.setDefaults = function () { 57844 var i = this; 57845 a(Cr, function (e) { 57846 var t = e.hasOwnProperty("default") ? e["default"] : 0; 57847 i.$(e.selector).selectedIndex = t; 57848 }); 57849 }, t.restoreSettings = function () { 57850 var e; 57851 57852 try { 57853 e = JSON.parse(y.localStorage.getItem(dr)); 57854 } catch (e) { 57855 p.warn(e); 57856 } 57857 57858 e && this.setValues(e); 57859 }, t.saveSettings = function () { 57860 if (this.options_.persistTextTrackSettings) { 57861 var e = this.getValues(); 57862 57863 try { 57864 Object.keys(e).length ? y.localStorage.setItem(dr, JSON.stringify(e)) : y.localStorage.removeItem(dr); 57865 } catch (e) { 57866 p.warn(e); 57867 } 57868 } 57869 }, t.updateDisplay = function () { 57870 var e = this.player_.getChild("textTrackDisplay"); 57871 e && e.updateDisplay(); 57872 }, t.conditionalBlur_ = function () { 57873 this.previouslyActiveEl_ = null; 57874 var e = this.player_.controlBar, 57875 t = e && e.subsCapsButton, 57876 i = e && e.captionsButton; 57877 t ? t.focus() : i && i.focus(); 57878 }, e; 57879 }(It); 57880 57881 Re.registerComponent("TextTrackSettings", Er); 57882 57883 var xr = function (s) { 57884 function e(e, t) { 57885 var i, 57886 n = t.ResizeObserver || y.ResizeObserver; 57887 null === t.ResizeObserver && (n = !1); 57888 var r = Ne({ 57889 createEl: !n, 57890 reportTouchActivity: !1 57891 }, t); 57892 return (i = s.call(this, e, r) || this).ResizeObserver = t.ResizeObserver || y.ResizeObserver, i.loadListener_ = null, i.resizeObserver_ = null, i.debouncedHandler_ = function (n, r, s, a) { 57893 var o; 57894 void 0 === a && (a = y); 57895 57896 function e() { 57897 var e = this, 57898 t = arguments, 57899 _i2 = function i() { 57900 _i2 = o = null, s || n.apply(e, t); 57901 }; 57902 57903 !o && s && n.apply(e, t), a.clearTimeout(o), o = a.setTimeout(_i2, r); 57904 } 57905 57906 return e.cancel = function () { 57907 a.clearTimeout(o), o = null; 57908 }, e; 57909 }(function () { 57910 i.resizeHandler(); 57911 }, 100, !1, Ue(i)), n ? (i.resizeObserver_ = new i.ResizeObserver(i.debouncedHandler_), i.resizeObserver_.observe(e.el())) : (i.loadListener_ = function () { 57912 if (i.el_ && i.el_.contentWindow) { 57913 var e = i.debouncedHandler_, 57914 t = i.unloadListener_ = function () { 57915 de(this, "resize", e), de(this, "unload", t), t = null; 57916 }; 57917 57918 he(i.el_.contentWindow, "unload", t), he(i.el_.contentWindow, "resize", e); 57919 } 57920 }, i.one("load", i.loadListener_)), i; 57921 } 57922 57923 He(e, s); 57924 var t = e.prototype; 57925 return t.createEl = function () { 57926 return s.prototype.createEl.call(this, "iframe", { 57927 className: "vjs-resize-manager", 57928 tabIndex: -1 57929 }, { 57930 "aria-hidden": "true" 57931 }); 57932 }, t.resizeHandler = function () { 57933 this.player_ && this.player_.trigger && this.player_.trigger("playerresize"); 57934 }, t.dispose = function () { 57935 this.debouncedHandler_ && this.debouncedHandler_.cancel(), this.resizeObserver_ && (this.player_.el() && this.resizeObserver_.unobserve(this.player_.el()), this.resizeObserver_.disconnect()), this.loadListener_ && this.off("load", this.loadListener_), this.el_ && this.el_.contentWindow && this.unloadListener_ && this.unloadListener_.call(this.el_.contentWindow), this.ResizeObserver = null, this.resizeObserver = null, this.debouncedHandler_ = null, this.loadListener_ = null, s.prototype.dispose.call(this); 57936 }, e; 57937 }(Re); 57938 57939 Re.registerComponent("ResizeManager", xr); 57940 57941 var Ar = { 57942 trackingThreshold: 30, 57943 liveTolerance: 15 57944 }, 57945 Ir = function (r) { 57946 function e(e, t) { 57947 var i, 57948 n = Ne(Ar, t, { 57949 createEl: !1 57950 }); 57951 return (i = r.call(this, e, n) || this).reset_(), i.on(i.player_, "durationchange", i.handleDurationchange), et && "hidden" in h && "visibilityState" in h && i.on(h, "visibilitychange", i.handleVisibilityChange), i; 57952 } 57953 57954 He(e, r); 57955 var t = e.prototype; 57956 return t.handleVisibilityChange = function () { 57957 this.player_.duration() === 1 / 0 && (h.hidden ? this.stopTracking() : this.startTracking()); 57958 }, t.trackLive_ = function () { 57959 var e = this.player_.seekable(); 57960 57961 if (e && e.length) { 57962 var t = Number(y.performance.now().toFixed(4)), 57963 i = -1 === this.lastTime_ ? 0 : (t - this.lastTime_) / 1e3; 57964 this.lastTime_ = t, this.pastSeekEnd_ = this.pastSeekEnd() + i; 57965 var n = this.liveCurrentTime(), 57966 r = this.player_.currentTime(), 57967 s = this.player_.paused() || this.seekedBehindLive_ || Math.abs(n - r) > this.options_.liveTolerance; 57968 this.timeupdateSeen_ && n !== 1 / 0 || (s = !1), s !== this.behindLiveEdge_ && (this.behindLiveEdge_ = s, this.trigger("liveedgechange")); 57969 } 57970 }, t.handleDurationchange = function () { 57971 this.player_.duration() === 1 / 0 && this.liveWindow() >= this.options_.trackingThreshold ? (this.player_.options_.liveui && this.player_.addClass("vjs-liveui"), this.startTracking()) : (this.player_.removeClass("vjs-liveui"), this.stopTracking()); 57972 }, t.startTracking = function () { 57973 this.isTracking() || (this.timeupdateSeen_ || (this.timeupdateSeen_ = this.player_.hasStarted()), this.trackingInterval_ = this.setInterval(this.trackLive_, 30), this.trackLive_(), this.on(this.player_, ["play", "pause"], this.trackLive_), this.timeupdateSeen_ ? this.on(this.player_, "seeked", this.handleSeeked) : (this.one(this.player_, "play", this.handlePlay), this.one(this.player_, "timeupdate", this.handleFirstTimeupdate))); 57974 }, t.handleFirstTimeupdate = function () { 57975 this.timeupdateSeen_ = !0, this.on(this.player_, "seeked", this.handleSeeked); 57976 }, t.handleSeeked = function () { 57977 var e = Math.abs(this.liveCurrentTime() - this.player_.currentTime()); 57978 this.seekedBehindLive_ = !this.skipNextSeeked_ && 2 < e, this.skipNextSeeked_ = !1, this.trackLive_(); 57979 }, t.handlePlay = function () { 57980 this.one(this.player_, "timeupdate", this.seekToLiveEdge); 57981 }, t.reset_ = function () { 57982 this.lastTime_ = -1, this.pastSeekEnd_ = 0, this.lastSeekEnd_ = -1, this.behindLiveEdge_ = !0, this.timeupdateSeen_ = !1, this.seekedBehindLive_ = !1, this.skipNextSeeked_ = !1, this.clearInterval(this.trackingInterval_), this.trackingInterval_ = null, this.off(this.player_, ["play", "pause"], this.trackLive_), this.off(this.player_, "seeked", this.handleSeeked), this.off(this.player_, "play", this.handlePlay), this.off(this.player_, "timeupdate", this.handleFirstTimeupdate), this.off(this.player_, "timeupdate", this.seekToLiveEdge); 57983 }, t.stopTracking = function () { 57984 this.isTracking() && (this.reset_(), this.trigger("liveedgechange")); 57985 }, t.seekableEnd = function () { 57986 for (var e = this.player_.seekable(), t = [], i = e ? e.length : 0; i--;) { 57987 t.push(e.end(i)); 57988 } 57989 57990 return t.length ? t.sort()[t.length - 1] : 1 / 0; 57991 }, t.seekableStart = function () { 57992 for (var e = this.player_.seekable(), t = [], i = e ? e.length : 0; i--;) { 57993 t.push(e.start(i)); 57994 } 57995 57996 return t.length ? t.sort()[0] : 0; 57997 }, t.liveWindow = function () { 57998 var e = this.liveCurrentTime(); 57999 return e === 1 / 0 ? 1 / 0 : e - this.seekableStart(); 58000 }, t.isLive = function () { 58001 return this.isTracking(); 58002 }, t.atLiveEdge = function () { 58003 return !this.behindLiveEdge(); 58004 }, t.liveCurrentTime = function () { 58005 return this.pastSeekEnd() + this.seekableEnd(); 58006 }, t.pastSeekEnd = function () { 58007 var e = this.seekableEnd(); 58008 return -1 !== this.lastSeekEnd_ && e !== this.lastSeekEnd_ && (this.pastSeekEnd_ = 0), this.lastSeekEnd_ = e, this.pastSeekEnd_; 58009 }, t.behindLiveEdge = function () { 58010 return this.behindLiveEdge_; 58011 }, t.isTracking = function () { 58012 return "number" == typeof this.trackingInterval_; 58013 }, t.seekToLiveEdge = function () { 58014 this.seekedBehindLive_ = !1, this.atLiveEdge() || (this.skipNextSeeked_ = !0, this.player_.currentTime(this.liveCurrentTime())); 58015 }, t.dispose = function () { 58016 this.off(h, "visibilitychange", this.handleVisibilityChange), this.stopTracking(), r.prototype.dispose.call(this); 58017 }, e; 58018 }(Re); 58019 58020 Re.registerComponent("LiveTracker", Ir); 58021 58022 function Pr(e) { 58023 var t = e.el(); 58024 if (t.hasAttribute("src")) return e.triggerSourceset(t.src), !0; 58025 var i = e.$$("source"), 58026 n = [], 58027 r = ""; 58028 if (!i.length) return !1; 58029 58030 for (var s = 0; s < i.length; s++) { 58031 var a = i[s].src; 58032 a && -1 === n.indexOf(a) && n.push(a); 58033 } 58034 58035 return !!n.length && (1 === n.length && (r = n[0]), e.triggerSourceset(r), !0); 58036 } 58037 58038 function Lr(e, t) { 58039 for (var i = {}, n = 0; n < e.length && !((i = Object.getOwnPropertyDescriptor(e[n], t)) && i.set && i.get); n++) { 58040 ; 58041 } 58042 58043 return i.enumerable = !0, i.configurable = !0, i; 58044 } 58045 58046 function Or(s) { 58047 var a = s.el(); 58048 58049 if (!a.resetSourceWatch_) { 58050 var t = {}, 58051 e = function (e) { 58052 return Lr([e.el(), y.HTMLMediaElement.prototype, y.Element.prototype, Ur], "innerHTML"); 58053 }(s), 58054 i = function i(r) { 58055 return function () { 58056 for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 58057 t[i] = arguments[i]; 58058 } 58059 58060 var n = r.apply(a, t); 58061 return Pr(s), n; 58062 }; 58063 }; 58064 58065 ["append", "appendChild", "insertAdjacentHTML"].forEach(function (e) { 58066 a[e] && (t[e] = a[e], a[e] = i(t[e])); 58067 }), Object.defineProperty(a, "innerHTML", Ne(e, { 58068 set: i(e.set) 58069 })), a.resetSourceWatch_ = function () { 58070 a.resetSourceWatch_ = null, Object.keys(t).forEach(function (e) { 58071 a[e] = t[e]; 58072 }), Object.defineProperty(a, "innerHTML", e); 58073 }, s.one("sourceset", a.resetSourceWatch_); 58074 } 58075 } 58076 58077 function Dr(n) { 58078 if (n.featuresSourceset) { 58079 var r = n.el(); 58080 58081 if (!r.resetSourceset_) { 58082 var i = function (e) { 58083 return Lr([e.el(), y.HTMLMediaElement.prototype, Mr], "src"); 58084 }(n), 58085 s = r.setAttribute, 58086 t = r.load; 58087 58088 Object.defineProperty(r, "src", Ne(i, { 58089 set: function set(e) { 58090 var t = i.set.call(r, e); 58091 return n.triggerSourceset(r.src), t; 58092 } 58093 })), r.setAttribute = function (e, t) { 58094 var i = s.call(r, e, t); 58095 return /src/i.test(e) && n.triggerSourceset(r.src), i; 58096 }, r.load = function () { 58097 var e = t.call(r); 58098 return Pr(n) || (n.triggerSourceset(""), Or(n)), e; 58099 }, r.currentSrc ? n.triggerSourceset(r.currentSrc) : Pr(n) || Or(n), r.resetSourceset_ = function () { 58100 r.resetSourceset_ = null, r.load = t, r.setAttribute = s, Object.defineProperty(r, "src", i), r.resetSourceWatch_ && r.resetSourceWatch_(); 58101 }; 58102 } 58103 } 58104 } 58105 58106 function Nr(t, i, n, e) { 58107 function r(e) { 58108 return Object.defineProperty(t, i, { 58109 value: e, 58110 enumerable: !0, 58111 writable: !0 58112 }); 58113 } 58114 58115 void 0 === e && (e = !0); 58116 var s = { 58117 configurable: !0, 58118 enumerable: !0, 58119 get: function get() { 58120 var e = n(); 58121 return r(e), e; 58122 } 58123 }; 58124 return e && (s.set = r), Object.defineProperty(t, i, s); 58125 } 58126 58127 var Rr, 58128 Ur = Object.defineProperty({}, "innerHTML", { 58129 get: function get() { 58130 return this.cloneNode(!0).innerHTML; 58131 }, 58132 set: function set(e) { 58133 var t = h.createElement(this.nodeName.toLowerCase()); 58134 t.innerHTML = e; 58135 58136 for (var i = h.createDocumentFragment(); t.childNodes.length;) { 58137 i.appendChild(t.childNodes[0]); 58138 } 58139 58140 return this.innerText = "", y.Element.prototype.appendChild.call(this, i), this.innerHTML; 58141 } 58142 }), 58143 Mr = Object.defineProperty({}, "src", { 58144 get: function get() { 58145 return this.hasAttribute("src") ? Rt(y.Element.prototype.getAttribute.call(this, "src")) : ""; 58146 }, 58147 set: function set(e) { 58148 return y.Element.prototype.setAttribute.call(this, "src", e), e; 58149 } 58150 }), 58151 Br = function (c) { 58152 function o(e, t) { 58153 var i; 58154 i = c.call(this, e, t) || this; 58155 var n = e.source, 58156 r = !1; 58157 58158 if (n && (i.el_.currentSrc !== n.src || e.tag && 3 === e.tag.initNetworkState_) ? i.setSource(n) : i.handleLateInit_(i.el_), e.enableSourceset && i.setupSourcesetHandling_(), i.el_.hasChildNodes()) { 58159 for (var s = i.el_.childNodes, a = s.length, o = []; a--;) { 58160 var u = s[a]; 58161 "track" === u.nodeName.toLowerCase() && (i.featuresNativeTextTracks ? (i.remoteTextTrackEls().addTrackElement_(u), i.remoteTextTracks().addTrack(u.track), i.textTracks().addTrack(u.track), r || i.el_.hasAttribute("crossorigin") || !Mt(u.src) || (r = !0)) : o.push(u)); 58162 } 58163 58164 for (var l = 0; l < o.length; l++) { 58165 i.el_.removeChild(o[l]); 58166 } 58167 } 58168 58169 return i.proxyNativeTracks_(), i.featuresNativeTextTracks && r && p.warn("Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\nThis may prevent text tracks from loading."), i.restoreMetadataTracksInIOSNativePlayer_(), (nt || st || Ye) && !0 === e.nativeControlsForTouch && i.setControls(!0), i.proxyWebkitFullscreen_(), i.triggerReady(), i; 58170 } 58171 58172 He(o, c); 58173 var e = o.prototype; 58174 return e.dispose = function () { 58175 this.el_ && this.el_.resetSourceset_ && this.el_.resetSourceset_(), o.disposeMediaElement(this.el_), this.options_ = null, c.prototype.dispose.call(this); 58176 }, e.setupSourcesetHandling_ = function () { 58177 Dr(this); 58178 }, e.restoreMetadataTracksInIOSNativePlayer_ = function () { 58179 function e() { 58180 i = []; 58181 58182 for (var e = 0; e < n.length; e++) { 58183 var t = n[e]; 58184 "metadata" === t.kind && i.push({ 58185 track: t, 58186 storedMode: t.mode 58187 }); 58188 } 58189 } 58190 58191 var i, 58192 n = this.textTracks(); 58193 e(), n.addEventListener("change", e), this.on("dispose", function () { 58194 return n.removeEventListener("change", e); 58195 }); 58196 58197 function r() { 58198 for (var e = 0; e < i.length; e++) { 58199 var t = i[e]; 58200 "disabled" === t.track.mode && t.track.mode !== t.storedMode && (t.track.mode = t.storedMode); 58201 } 58202 58203 n.removeEventListener("change", r); 58204 } 58205 58206 this.on("webkitbeginfullscreen", function () { 58207 n.removeEventListener("change", e), n.removeEventListener("change", r), n.addEventListener("change", r); 58208 }), this.on("webkitendfullscreen", function () { 58209 n.removeEventListener("change", e), n.addEventListener("change", e), n.removeEventListener("change", r); 58210 }); 58211 }, e.overrideNative_ = function (e, t) { 58212 var i = this; 58213 58214 if (t === this["featuresNative" + e + "Tracks"]) { 58215 var n = e.toLowerCase(); 58216 this[n + "TracksListeners_"] && Object.keys(this[n + "TracksListeners_"]).forEach(function (e) { 58217 i.el()[n + "Tracks"].removeEventListener(e, i[n + "TracksListeners_"][e]); 58218 }), this["featuresNative" + e + "Tracks"] = !t, this[n + "TracksListeners_"] = null, this.proxyNativeTracksForType_(n); 58219 } 58220 }, e.overrideNativeAudioTracks = function (e) { 58221 this.overrideNative_("Audio", e); 58222 }, e.overrideNativeVideoTracks = function (e) { 58223 this.overrideNative_("Video", e); 58224 }, e.proxyNativeTracksForType_ = function (i) { 58225 var n = this, 58226 e = li[i], 58227 r = this.el()[e.getterName], 58228 s = this[e.getterName](); 58229 58230 if (this["featuresNative" + e.capitalName + "Tracks"] && r && r.addEventListener) { 58231 var a = { 58232 change: function change(e) { 58233 var t = { 58234 type: "change", 58235 target: s, 58236 currentTarget: s, 58237 srcElement: s 58238 }; 58239 s.trigger(t), "text" === i && n[ci.remoteText.getterName]().trigger(t); 58240 }, 58241 addtrack: function addtrack(e) { 58242 s.addTrack(e.track); 58243 }, 58244 removetrack: function removetrack(e) { 58245 s.removeTrack(e.track); 58246 } 58247 }, 58248 t = function t() { 58249 for (var e = [], t = 0; t < s.length; t++) { 58250 for (var i = !1, n = 0; n < r.length; n++) { 58251 if (r[n] === s[t]) { 58252 i = !0; 58253 break; 58254 } 58255 } 58256 58257 i || e.push(s[t]); 58258 } 58259 58260 for (; e.length;) { 58261 s.removeTrack(e.shift()); 58262 } 58263 }; 58264 58265 this[e.getterName + "Listeners_"] = a, Object.keys(a).forEach(function (t) { 58266 var i = a[t]; 58267 r.addEventListener(t, i), n.on("dispose", function (e) { 58268 return r.removeEventListener(t, i); 58269 }); 58270 }), this.on("loadstart", t), this.on("dispose", function (e) { 58271 return n.off("loadstart", t); 58272 }); 58273 } 58274 }, e.proxyNativeTracks_ = function () { 58275 var t = this; 58276 li.names.forEach(function (e) { 58277 t.proxyNativeTracksForType_(e); 58278 }); 58279 }, e.createEl = function () { 58280 var e = this.options_.tag; 58281 58282 if (!e || !this.options_.playerElIngest && !this.movingMediaElementInDOM) { 58283 if (e) { 58284 var t = e.cloneNode(!0); 58285 e.parentNode && e.parentNode.insertBefore(t, e), o.disposeMediaElement(e), e = t; 58286 } else { 58287 e = h.createElement("video"); 58288 var i = Ne({}, this.options_.tag && P(this.options_.tag)); 58289 nt && !0 === this.options_.nativeControlsForTouch || delete i.controls, I(e, m(i, { 58290 id: this.options_.techId, 58291 "class": "vjs-tech" 58292 })); 58293 } 58294 58295 e.playerId = this.options_.playerId; 58296 } 58297 58298 "undefined" != typeof this.options_.preload && O(e, "preload", this.options_.preload); 58299 58300 for (var n = ["loop", "muted", "playsinline", "autoplay"], r = 0; r < n.length; r++) { 58301 var s = n[r], 58302 a = this.options_[s]; 58303 "undefined" != typeof a && (a ? O(e, s, s) : D(e, s), e[s] = a); 58304 } 58305 58306 return e; 58307 }, e.handleLateInit_ = function (e) { 58308 if (0 !== e.networkState && 3 !== e.networkState) { 58309 if (0 === e.readyState) { 58310 var t = !1, 58311 i = function i() { 58312 t = !0; 58313 }; 58314 58315 this.on("loadstart", i); 58316 58317 var n = function n() { 58318 t || this.trigger("loadstart"); 58319 }; 58320 58321 return this.on("loadedmetadata", n), void this.ready(function () { 58322 this.off("loadstart", i), this.off("loadedmetadata", n), t || this.trigger("loadstart"); 58323 }); 58324 } 58325 58326 var r = ["loadstart"]; 58327 r.push("loadedmetadata"), 2 <= e.readyState && r.push("loadeddata"), 3 <= e.readyState && r.push("canplay"), 4 <= e.readyState && r.push("canplaythrough"), this.ready(function () { 58328 r.forEach(function (e) { 58329 this.trigger(e); 58330 }, this); 58331 }); 58332 } 58333 }, e.setCurrentTime = function (e) { 58334 try { 58335 this.el_.currentTime = e; 58336 } catch (e) { 58337 p(e, "Video is not ready. (Video.js)"); 58338 } 58339 }, e.duration = function () { 58340 var t = this; 58341 58342 if (this.el_.duration === 1 / 0 && Xe && Je && 0 === this.el_.currentTime) { 58343 return this.on("timeupdate", function e() { 58344 0 < t.el_.currentTime && (t.el_.duration === 1 / 0 && t.trigger("durationchange"), t.off("timeupdate", e)); 58345 }), NaN; 58346 } 58347 58348 return this.el_.duration || NaN; 58349 }, e.width = function () { 58350 return this.el_.offsetWidth; 58351 }, e.height = function () { 58352 return this.el_.offsetHeight; 58353 }, e.proxyWebkitFullscreen_ = function () { 58354 var e = this; 58355 58356 if ("webkitDisplayingFullscreen" in this.el_) { 58357 var t = function t() { 58358 this.trigger("fullscreenchange", { 58359 isFullscreen: !1 58360 }); 58361 }, 58362 i = function i() { 58363 "webkitPresentationMode" in this.el_ && "picture-in-picture" !== this.el_.webkitPresentationMode && (this.one("webkitendfullscreen", t), this.trigger("fullscreenchange", { 58364 isFullscreen: !0, 58365 nativeIOSFullscreen: !0 58366 })); 58367 }; 58368 58369 this.on("webkitbeginfullscreen", i), this.on("dispose", function () { 58370 e.off("webkitbeginfullscreen", i), e.off("webkitendfullscreen", t); 58371 }); 58372 } 58373 }, e.supportsFullScreen = function () { 58374 if ("function" == typeof this.el_.webkitEnterFullScreen) { 58375 var e = y.navigator && y.navigator.userAgent || ""; 58376 if (/Android/.test(e) || !/Chrome|Mac OS X 10.5/.test(e)) return !0; 58377 } 58378 58379 return !1; 58380 }, e.enterFullScreen = function () { 58381 var e = this.el_; 58382 if (e.paused && e.networkState <= e.HAVE_METADATA) kt(this.el_.play()), this.setTimeout(function () { 58383 e.pause(); 58384 58385 try { 58386 e.webkitEnterFullScreen(); 58387 } catch (e) { 58388 this.trigger("fullscreenerror", e); 58389 } 58390 }, 0);else try { 58391 e.webkitEnterFullScreen(); 58392 } catch (e) { 58393 this.trigger("fullscreenerror", e); 58394 } 58395 }, e.exitFullScreen = function () { 58396 this.el_.webkitDisplayingFullscreen ? this.el_.webkitExitFullScreen() : this.trigger("fullscreenerror", new Error("The video is not fullscreen")); 58397 }, e.requestPictureInPicture = function () { 58398 return this.el_.requestPictureInPicture(); 58399 }, e.src = function (e) { 58400 if (void 0 === e) return this.el_.src; 58401 this.setSrc(e); 58402 }, e.reset = function () { 58403 o.resetMediaElement(this.el_); 58404 }, e.currentSrc = function () { 58405 return this.currentSource_ ? this.currentSource_.src : this.el_.currentSrc; 58406 }, e.setControls = function (e) { 58407 this.el_.controls = !!e; 58408 }, e.addTextTrack = function (e, t, i) { 58409 return this.featuresNativeTextTracks ? this.el_.addTextTrack(e, t, i) : c.prototype.addTextTrack.call(this, e, t, i); 58410 }, e.createRemoteTextTrack = function (e) { 58411 if (!this.featuresNativeTextTracks) return c.prototype.createRemoteTextTrack.call(this, e); 58412 var t = h.createElement("track"); 58413 return e.kind && (t.kind = e.kind), e.label && (t.label = e.label), (e.language || e.srclang) && (t.srclang = e.language || e.srclang), e["default"] && (t["default"] = e["default"]), e.id && (t.id = e.id), e.src && (t.src = e.src), t; 58414 }, e.addRemoteTextTrack = function (e, t) { 58415 var i = c.prototype.addRemoteTextTrack.call(this, e, t); 58416 return this.featuresNativeTextTracks && this.el().appendChild(i), i; 58417 }, e.removeRemoteTextTrack = function (e) { 58418 if (c.prototype.removeRemoteTextTrack.call(this, e), this.featuresNativeTextTracks) for (var t = this.$$("track"), i = t.length; i--;) { 58419 e !== t[i] && e !== t[i].track || this.el().removeChild(t[i]); 58420 } 58421 }, e.getVideoPlaybackQuality = function () { 58422 if ("function" == typeof this.el().getVideoPlaybackQuality) return this.el().getVideoPlaybackQuality(); 58423 var e = {}; 58424 return "undefined" != typeof this.el().webkitDroppedFrameCount && "undefined" != typeof this.el().webkitDecodedFrameCount && (e.droppedVideoFrames = this.el().webkitDroppedFrameCount, e.totalVideoFrames = this.el().webkitDecodedFrameCount), y.performance && "function" == typeof y.performance.now ? e.creationTime = y.performance.now() : y.performance && y.performance.timing && "number" == typeof y.performance.timing.navigationStart && (e.creationTime = y.Date.now() - y.performance.timing.navigationStart), e; 58425 }, o; 58426 }(Vi); 58427 58428 Nr(Br, "TEST_VID", function () { 58429 if (v()) { 58430 var e = h.createElement("video"), 58431 t = h.createElement("track"); 58432 return t.kind = "captions", t.srclang = "en", t.label = "English", e.appendChild(t), e; 58433 } 58434 }), Br.isSupported = function () { 58435 try { 58436 Br.TEST_VID.volume = .5; 58437 } catch (e) { 58438 return !1; 58439 } 58440 58441 return !(!Br.TEST_VID || !Br.TEST_VID.canPlayType); 58442 }, Br.canPlayType = function (e) { 58443 return Br.TEST_VID.canPlayType(e); 58444 }, Br.canPlaySource = function (e, t) { 58445 return Br.canPlayType(e.type); 58446 }, Br.canControlVolume = function () { 58447 try { 58448 var e = Br.TEST_VID.volume; 58449 return Br.TEST_VID.volume = e / 2 + .1, e !== Br.TEST_VID.volume; 58450 } catch (e) { 58451 return !1; 58452 } 58453 }, Br.canMuteVolume = function () { 58454 try { 58455 var e = Br.TEST_VID.muted; 58456 return Br.TEST_VID.muted = !e, Br.TEST_VID.muted ? O(Br.TEST_VID, "muted", "muted") : D(Br.TEST_VID, "muted"), e !== Br.TEST_VID.muted; 58457 } catch (e) { 58458 return !1; 58459 } 58460 }, Br.canControlPlaybackRate = function () { 58461 if (Xe && Je && Ze < 58) return !1; 58462 58463 try { 58464 var e = Br.TEST_VID.playbackRate; 58465 return Br.TEST_VID.playbackRate = e / 2 + .1, e !== Br.TEST_VID.playbackRate; 58466 } catch (e) { 58467 return !1; 58468 } 58469 }, Br.canOverrideAttributes = function () { 58470 try { 58471 var e = function e() {}; 58472 58473 Object.defineProperty(h.createElement("video"), "src", { 58474 get: e, 58475 set: e 58476 }), Object.defineProperty(h.createElement("audio"), "src", { 58477 get: e, 58478 set: e 58479 }), Object.defineProperty(h.createElement("video"), "innerHTML", { 58480 get: e, 58481 set: e 58482 }), Object.defineProperty(h.createElement("audio"), "innerHTML", { 58483 get: e, 58484 set: e 58485 }); 58486 } catch (e) { 58487 return !1; 58488 } 58489 58490 return !0; 58491 }, Br.supportsNativeTextTracks = function () { 58492 return ot || at && Je; 58493 }, Br.supportsNativeVideoTracks = function () { 58494 return !(!Br.TEST_VID || !Br.TEST_VID.videoTracks); 58495 }, Br.supportsNativeAudioTracks = function () { 58496 return !(!Br.TEST_VID || !Br.TEST_VID.audioTracks); 58497 }, Br.Events = ["loadstart", "suspend", "abort", "error", "emptied", "stalled", "loadedmetadata", "loadeddata", "canplay", "canplaythrough", "playing", "waiting", "seeking", "seeked", "ended", "durationchange", "timeupdate", "progress", "play", "pause", "ratechange", "resize", "volumechange"], [["featuresVolumeControl", "canControlVolume"], ["featuresMuteControl", "canMuteVolume"], ["featuresPlaybackRate", "canControlPlaybackRate"], ["featuresSourceset", "canOverrideAttributes"], ["featuresNativeTextTracks", "supportsNativeTextTracks"], ["featuresNativeVideoTracks", "supportsNativeVideoTracks"], ["featuresNativeAudioTracks", "supportsNativeAudioTracks"]].forEach(function (e) { 58498 var t = e[0], 58499 i = e[1]; 58500 Nr(Br.prototype, t, function () { 58501 return Br[i](); 58502 }, !0); 58503 }), Br.prototype.movingMediaElementInDOM = !at, Br.prototype.featuresFullscreenResize = !0, Br.prototype.featuresProgressEvents = !0, Br.prototype.featuresTimeupdateEvents = !0, Br.patchCanPlayType = function () { 58504 4 <= Ke && !$e && !Je && (Rr = Br.TEST_VID && Br.TEST_VID.constructor.prototype.canPlayType, Br.TEST_VID.constructor.prototype.canPlayType = function (e) { 58505 return e && /^application\/(?:x-|vnd\.apple\.)mpegurl/i.test(e) ? "maybe" : Rr.call(this, e); 58506 }); 58507 }, Br.unpatchCanPlayType = function () { 58508 var e = Br.TEST_VID.constructor.prototype.canPlayType; 58509 return Rr && (Br.TEST_VID.constructor.prototype.canPlayType = Rr), e; 58510 }, Br.patchCanPlayType(), Br.disposeMediaElement = function (e) { 58511 if (e) { 58512 for (e.parentNode && e.parentNode.removeChild(e); e.hasChildNodes();) { 58513 e.removeChild(e.firstChild); 58514 } 58515 58516 e.removeAttribute("src"), "function" == typeof e.load && function () { 58517 try { 58518 e.load(); 58519 } catch (e) {} 58520 }(); 58521 } 58522 }, Br.resetMediaElement = function (e) { 58523 if (e) { 58524 for (var t = e.querySelectorAll("source"), i = t.length; i--;) { 58525 e.removeChild(t[i]); 58526 } 58527 58528 e.removeAttribute("src"), "function" == typeof e.load && function () { 58529 try { 58530 e.load(); 58531 } catch (e) {} 58532 }(); 58533 } 58534 }, ["muted", "defaultMuted", "autoplay", "controls", "loop", "playsinline"].forEach(function (e) { 58535 Br.prototype[e] = function () { 58536 return this.el_[e] || this.el_.hasAttribute(e); 58537 }; 58538 }), ["muted", "defaultMuted", "autoplay", "loop", "playsinline"].forEach(function (t) { 58539 Br.prototype["set" + De(t)] = function (e) { 58540 (this.el_[t] = e) ? this.el_.setAttribute(t, t) : this.el_.removeAttribute(t); 58541 }; 58542 }), ["paused", "currentTime", "buffered", "volume", "poster", "preload", "error", "seeking", "seekable", "ended", "playbackRate", "defaultPlaybackRate", "played", "networkState", "readyState", "videoWidth", "videoHeight", "crossOrigin"].forEach(function (e) { 58543 Br.prototype[e] = function () { 58544 return this.el_[e]; 58545 }; 58546 }), ["volume", "src", "poster", "preload", "playbackRate", "defaultPlaybackRate", "crossOrigin"].forEach(function (t) { 58547 Br.prototype["set" + De(t)] = function (e) { 58548 this.el_[t] = e; 58549 }; 58550 }), ["pause", "load", "play"].forEach(function (e) { 58551 Br.prototype[e] = function () { 58552 return this.el_[e](); 58553 }; 58554 }), Vi.withSourceHandlers(Br), Br.nativeSourceHandler = {}, Br.nativeSourceHandler.canPlayType = function (e) { 58555 try { 58556 return Br.TEST_VID.canPlayType(e); 58557 } catch (e) { 58558 return ""; 58559 } 58560 }, Br.nativeSourceHandler.canHandleSource = function (e, t) { 58561 if (e.type) return Br.nativeSourceHandler.canPlayType(e.type); 58562 58563 if (e.src) { 58564 var i = Ut(e.src); 58565 return Br.nativeSourceHandler.canPlayType("video/" + i); 58566 } 58567 58568 return ""; 58569 }, Br.nativeSourceHandler.handleSource = function (e, t, i) { 58570 t.setSrc(e.src); 58571 }, Br.nativeSourceHandler.dispose = function () {}, Br.registerSourceHandler(Br.nativeSourceHandler), Vi.registerTech("Html5", Br); 58572 var jr = ["progress", "abort", "suspend", "emptied", "stalled", "loadedmetadata", "loadeddata", "timeupdate", "resize", "volumechange", "texttrackchange"], 58573 Fr = { 58574 canplay: "CanPlay", 58575 canplaythrough: "CanPlayThrough", 58576 playing: "Playing", 58577 seeked: "Seeked" 58578 }, 58579 Hr = ["tiny", "xsmall", "small", "medium", "large", "xlarge", "huge"], 58580 Vr = {}; 58581 Hr.forEach(function (e) { 58582 var t = "x" === e.charAt(0) ? "x-" + e.substring(1) : e; 58583 Vr[e] = "vjs-layout-" + t; 58584 }); 58585 58586 var qr = { 58587 tiny: 210, 58588 xsmall: 320, 58589 small: 425, 58590 medium: 768, 58591 large: 1440, 58592 xlarge: 2560, 58593 huge: 1 / 0 58594 }, 58595 Wr = function (c) { 58596 function l(e, t, i) { 58597 var n; 58598 if (e.id = e.id || t.id || "vjs_video_" + ne(), (t = m(l.getTagSettings(e), t)).initChildren = !1, t.createEl = !1, t.evented = !1, t.reportTouchActivity = !1, !t.language) if ("function" == typeof e.closest) { 58599 var r = e.closest("[lang]"); 58600 r && r.getAttribute && (t.language = r.getAttribute("lang")); 58601 } else for (var s = e; s && 1 === s.nodeType;) { 58602 if (P(s).hasOwnProperty("lang")) { 58603 t.language = s.getAttribute("lang"); 58604 break; 58605 } 58606 58607 s = s.parentNode; 58608 } 58609 if ((n = c.call(this, null, t, i) || this).boundDocumentFullscreenChange_ = ge(Ue(n), n.documentFullscreenChange_), n.boundFullWindowOnEscKey_ = ge(Ue(n), n.fullWindowOnEscKey), n.isFullscreen_ = !1, n.log = f(n.id_), n.fsApi_ = ft, n.isPosterFromTech_ = !1, n.queuedCallbacks_ = [], n.isReady_ = !1, n.hasStarted_ = !1, n.userActive_ = !1, !n.options_ || !n.options_.techOrder || !n.options_.techOrder.length) throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?"); 58610 58611 if (n.tag = e, n.tagAttributes = e && P(e), n.language(n.options_.language), t.languages) { 58612 var a = {}; 58613 Object.getOwnPropertyNames(t.languages).forEach(function (e) { 58614 a[e.toLowerCase()] = t.languages[e]; 58615 }), n.languages_ = a; 58616 } else n.languages_ = l.prototype.options_.languages; 58617 58618 n.resetCache_(), n.poster_ = t.poster || "", n.controls_ = !!t.controls, e.controls = !1, e.removeAttribute("controls"), n.changingSrc_ = !1, n.playCallbacks_ = [], n.playTerminatedQueue_ = [], e.hasAttribute("autoplay") ? n.autoplay(!0) : n.autoplay(n.options_.autoplay), t.plugins && Object.keys(t.plugins).forEach(function (e) { 58619 if ("function" != typeof n[e]) throw new Error('plugin "' + e + '" does not exist'); 58620 }), n.scrubbing_ = !1, n.el_ = n.createEl(), Ie(Ue(n), { 58621 eventBusKey: "el_" 58622 }), n.fsApi_.requestFullscreen && (he(h, n.fsApi_.fullscreenchange, n.boundDocumentFullscreenChange_), n.on(n.fsApi_.fullscreenchange, n.boundDocumentFullscreenChange_)), n.fluid_ && n.on("playerreset", n.updateStyleEl_); 58623 var o = Ne(n.options_); 58624 t.plugins && Object.keys(t.plugins).forEach(function (e) { 58625 n[e](t.plugins[e]); 58626 }), n.options_.playerOptions = o, n.middleware_ = [], n.initChildren(), n.isAudio("audio" === e.nodeName.toLowerCase()), n.controls() ? n.addClass("vjs-controls-enabled") : n.addClass("vjs-controls-disabled"), n.el_.setAttribute("role", "region"), n.isAudio() ? n.el_.setAttribute("aria-label", n.localize("Audio Player")) : n.el_.setAttribute("aria-label", n.localize("Video Player")), n.isAudio() && n.addClass("vjs-audio"), n.flexNotSupported_() && n.addClass("vjs-no-flex"), nt && n.addClass("vjs-touch-enabled"), at || n.addClass("vjs-workinghover"), l.players[n.id_] = Ue(n); 58627 var u = d.split(".")[0]; 58628 return n.addClass("vjs-v" + u), n.userActive(!0), n.reportUserActivity(), n.one("play", n.listenForUserActivity_), n.on("stageclick", n.handleStageClick_), n.on("keydown", n.handleKeyDown), n.breakpoints(n.options_.breakpoints), n.responsive(n.options_.responsive), n; 58629 } 58630 58631 He(l, c); 58632 var e = l.prototype; 58633 return e.dispose = function () { 58634 var n = this; 58635 this.trigger("dispose"), this.off("dispose"), de(h, this.fsApi_.fullscreenchange, this.boundDocumentFullscreenChange_), de(h, "keydown", this.boundFullWindowOnEscKey_), this.styleEl_ && this.styleEl_.parentNode && (this.styleEl_.parentNode.removeChild(this.styleEl_), this.styleEl_ = null), l.players[this.id_] = null, this.tag && this.tag.player && (this.tag.player = null), this.el_ && this.el_.player && (this.el_.player = null), this.tech_ && (this.tech_.dispose(), this.isPosterFromTech_ = !1, this.poster_ = ""), this.playerElIngest_ && (this.playerElIngest_ = null), this.tag && (this.tag = null), function (e) { 58636 Wi[e.id()] = null; 58637 }(this), hi.names.forEach(function (e) { 58638 var t = hi[e], 58639 i = n[t.getterName](); 58640 i && i.off && i.off(); 58641 }), c.prototype.dispose.call(this); 58642 }, e.createEl = function () { 58643 var t, 58644 i = this.tag, 58645 e = this.playerElIngest_ = i.parentNode && i.parentNode.hasAttribute && i.parentNode.hasAttribute("data-vjs-player"), 58646 n = "video-js" === this.tag.tagName.toLowerCase(); 58647 e ? t = this.el_ = i.parentNode : n || (t = this.el_ = c.prototype.createEl.call(this, "div")); 58648 var r = P(i); 58649 58650 if (n) { 58651 for (t = this.el_ = i, i = this.tag = h.createElement("video"); t.children.length;) { 58652 i.appendChild(t.firstChild); 58653 } 58654 58655 w(t, "video-js") || E(t, "video-js"), t.appendChild(i), e = this.playerElIngest_ = t, Object.keys(t).forEach(function (e) { 58656 try { 58657 i[e] = t[e]; 58658 } catch (e) {} 58659 }); 58660 } 58661 58662 if (i.setAttribute("tabindex", "-1"), r.tabindex = "-1", (et || Je && it) && (i.setAttribute("role", "application"), r.role = "application"), i.removeAttribute("width"), i.removeAttribute("height"), "width" in r && delete r.width, "height" in r && delete r.height, Object.getOwnPropertyNames(r).forEach(function (e) { 58663 n && "class" === e || t.setAttribute(e, r[e]), n && i.setAttribute(e, r[e]); 58664 }), i.playerId = i.id, i.id += "_html5_api", i.className = "vjs-tech", i.player = t.player = this, this.addClass("vjs-paused"), !0 !== y.VIDEOJS_NO_DYNAMIC_STYLE) { 58665 this.styleEl_ = Z("vjs-styles-dimensions"); 58666 var s = G(".vjs-styles-defaults"), 58667 a = G("head"); 58668 a.insertBefore(this.styleEl_, s ? s.nextSibling : a.firstChild); 58669 } 58670 58671 this.fill_ = !1, this.fluid_ = !1, this.width(this.options_.width), this.height(this.options_.height), this.fill(this.options_.fill), this.fluid(this.options_.fluid), this.aspectRatio(this.options_.aspectRatio), this.crossOrigin(this.options_.crossOrigin || this.options_.crossorigin); 58672 58673 for (var o = i.getElementsByTagName("a"), u = 0; u < o.length; u++) { 58674 var l = o.item(u); 58675 E(l, "vjs-hidden"), l.setAttribute("hidden", "hidden"); 58676 } 58677 58678 return i.initNetworkState_ = i.networkState, i.parentNode && !e && i.parentNode.insertBefore(t, i), C(i, t), this.children_.unshift(i), this.el_.setAttribute("lang", this.language_), this.el_ = t; 58679 }, e.crossOrigin = function (e) { 58680 if (!e) return this.techGet_("crossOrigin"); 58681 "anonymous" === e || "use-credentials" === e ? this.techCall_("setCrossOrigin", e) : p.warn('crossOrigin must be "anonymous" or "use-credentials", given "' + e + '"'); 58682 }, e.width = function (e) { 58683 return this.dimension("width", e); 58684 }, e.height = function (e) { 58685 return this.dimension("height", e); 58686 }, e.dimension = function (e, t) { 58687 var i = e + "_"; 58688 if (void 0 === t) return this[i] || 0; 58689 if ("" === t || "auto" === t) return this[i] = void 0, void this.updateStyleEl_(); 58690 var n = parseFloat(t); 58691 isNaN(n) ? p.error('Improper value "' + t + '" supplied for for ' + e) : (this[i] = n, this.updateStyleEl_()); 58692 }, e.fluid = function (e) { 58693 if (void 0 === e) return !!this.fluid_; 58694 this.fluid_ = !!e, xe(this) && this.off("playerreset", this.updateStyleEl_), e ? (this.addClass("vjs-fluid"), this.fill(!1), function (e, t) { 58695 xe(e) ? t() : (e.eventedCallbacks || (e.eventedCallbacks = []), e.eventedCallbacks.push(t)); 58696 }(function () { 58697 this.on("playerreset", this.updateStyleEl_); 58698 })) : this.removeClass("vjs-fluid"), this.updateStyleEl_(); 58699 }, e.fill = function (e) { 58700 if (void 0 === e) return !!this.fill_; 58701 this.fill_ = !!e, e ? (this.addClass("vjs-fill"), this.fluid(!1)) : this.removeClass("vjs-fill"); 58702 }, e.aspectRatio = function (e) { 58703 if (void 0 === e) return this.aspectRatio_; 58704 if (!/^\d+\:\d+$/.test(e)) throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9."); 58705 this.aspectRatio_ = e, this.fluid(!0), this.updateStyleEl_(); 58706 }, e.updateStyleEl_ = function () { 58707 if (!0 !== y.VIDEOJS_NO_DYNAMIC_STYLE) { 58708 var e, 58709 t, 58710 i, 58711 n = (void 0 !== this.aspectRatio_ && "auto" !== this.aspectRatio_ ? this.aspectRatio_ : 0 < this.videoWidth() ? this.videoWidth() + ":" + this.videoHeight() : "16:9").split(":"), 58712 r = n[1] / n[0]; 58713 e = void 0 !== this.width_ ? this.width_ : void 0 !== this.height_ ? this.height_ / r : this.videoWidth() || 300, t = void 0 !== this.height_ ? this.height_ : e * r, i = /^[^a-zA-Z]/.test(this.id()) ? "dimensions-" + this.id() : this.id() + "-dimensions", this.addClass(i), ee(this.styleEl_, "\n ." + i + " {\n width: " + e + "px;\n height: " + t + "px;\n }\n\n ." + i + ".vjs-fluid {\n padding-top: " + 100 * r + "%;\n }\n "); 58714 } else { 58715 var s = "number" == typeof this.width_ ? this.width_ : this.options_.width, 58716 a = "number" == typeof this.height_ ? this.height_ : this.options_.height, 58717 o = this.tech_ && this.tech_.el(); 58718 o && (0 <= s && (o.width = s), 0 <= a && (o.height = a)); 58719 } 58720 }, e.loadTech_ = function (e, t) { 58721 var i = this; 58722 this.tech_ && this.unloadTech_(); 58723 var n = De(e), 58724 r = e.charAt(0).toLowerCase() + e.slice(1); 58725 "Html5" !== n && this.tag && (Vi.getTech("Html5").disposeMediaElement(this.tag), this.tag.player = null, this.tag = null), this.techName_ = n, this.isReady_ = !1; 58726 var s = { 58727 source: t, 58728 autoplay: "string" != typeof this.autoplay() && this.autoplay(), 58729 nativeControlsForTouch: this.options_.nativeControlsForTouch, 58730 playerId: this.id(), 58731 techId: this.id() + "_" + r + "_api", 58732 playsinline: this.options_.playsinline, 58733 preload: this.options_.preload, 58734 loop: this.options_.loop, 58735 muted: this.options_.muted, 58736 poster: this.poster(), 58737 language: this.language(), 58738 playerElIngest: this.playerElIngest_ || !1, 58739 "vtt.js": this.options_["vtt.js"], 58740 canOverridePoster: !!this.options_.techCanOverridePoster, 58741 enableSourceset: this.options_.enableSourceset, 58742 Promise: this.options_.Promise 58743 }; 58744 hi.names.forEach(function (e) { 58745 var t = hi[e]; 58746 s[t.getterName] = i[t.privateName]; 58747 }), m(s, this.options_[n]), m(s, this.options_[r]), m(s, this.options_[e.toLowerCase()]), this.tag && (s.tag = this.tag), t && t.src === this.cache_.src && 0 < this.cache_.currentTime && (s.startTime = this.cache_.currentTime); 58748 var a = Vi.getTech(e); 58749 if (!a) throw new Error("No Tech named '" + n + "' exists! '" + n + "' should be registered using videojs.registerTech()'"); 58750 this.tech_ = new a(s), this.tech_.ready(ge(this, this.handleTechReady_), !0), Et(this.textTracksJson_ || [], this.tech_), jr.forEach(function (e) { 58751 i.on(i.tech_, e, i["handleTech" + De(e) + "_"]); 58752 }), Object.keys(Fr).forEach(function (t) { 58753 i.on(i.tech_, t, function (e) { 58754 0 === i.tech_.playbackRate() && i.tech_.seeking() ? i.queuedCallbacks_.push({ 58755 callback: i["handleTech" + Fr[t] + "_"].bind(i), 58756 event: e 58757 }) : i["handleTech" + Fr[t] + "_"](e); 58758 }); 58759 }), this.on(this.tech_, "loadstart", this.handleTechLoadStart_), this.on(this.tech_, "sourceset", this.handleTechSourceset_), this.on(this.tech_, "waiting", this.handleTechWaiting_), this.on(this.tech_, "ended", this.handleTechEnded_), this.on(this.tech_, "seeking", this.handleTechSeeking_), this.on(this.tech_, "play", this.handleTechPlay_), this.on(this.tech_, "firstplay", this.handleTechFirstPlay_), this.on(this.tech_, "pause", this.handleTechPause_), this.on(this.tech_, "durationchange", this.handleTechDurationChange_), this.on(this.tech_, "fullscreenchange", this.handleTechFullscreenChange_), this.on(this.tech_, "fullscreenerror", this.handleTechFullscreenError_), this.on(this.tech_, "enterpictureinpicture", this.handleTechEnterPictureInPicture_), this.on(this.tech_, "leavepictureinpicture", this.handleTechLeavePictureInPicture_), this.on(this.tech_, "error", this.handleTechError_), this.on(this.tech_, "loadedmetadata", this.updateStyleEl_), this.on(this.tech_, "posterchange", this.handleTechPosterChange_), this.on(this.tech_, "textdata", this.handleTechTextData_), this.on(this.tech_, "ratechange", this.handleTechRateChange_), this.usingNativeControls(this.techGet_("controls")), this.controls() && !this.usingNativeControls() && this.addTechControlsListeners_(), this.tech_.el().parentNode === this.el() || "Html5" === n && this.tag || C(this.tech_.el(), this.el()), this.tag && (this.tag.player = null, this.tag = null); 58760 }, e.unloadTech_ = function () { 58761 var i = this; 58762 hi.names.forEach(function (e) { 58763 var t = hi[e]; 58764 i[t.privateName] = i[t.getterName](); 58765 }), this.textTracksJson_ = wt(this.tech_), this.isReady_ = !1, this.tech_.dispose(), this.tech_ = !1, this.isPosterFromTech_ && (this.poster_ = "", this.trigger("posterchange")), this.isPosterFromTech_ = !1; 58766 }, e.tech = function (e) { 58767 return void 0 === e && p.warn("Using the tech directly can be dangerous. I hope you know what you're doing.\nSee https://github.com/videojs/video.js/issues/2617 for more info.\n"), this.tech_; 58768 }, e.addTechControlsListeners_ = function () { 58769 this.removeTechControlsListeners_(), this.on(this.tech_, "mouseup", this.handleTechClick_), this.on(this.tech_, "dblclick", this.handleTechDoubleClick_), this.on(this.tech_, "touchstart", this.handleTechTouchStart_), this.on(this.tech_, "touchmove", this.handleTechTouchMove_), this.on(this.tech_, "touchend", this.handleTechTouchEnd_), this.on(this.tech_, "tap", this.handleTechTap_); 58770 }, e.removeTechControlsListeners_ = function () { 58771 this.off(this.tech_, "tap", this.handleTechTap_), this.off(this.tech_, "touchstart", this.handleTechTouchStart_), this.off(this.tech_, "touchmove", this.handleTechTouchMove_), this.off(this.tech_, "touchend", this.handleTechTouchEnd_), this.off(this.tech_, "mouseup", this.handleTechClick_), this.off(this.tech_, "dblclick", this.handleTechDoubleClick_); 58772 }, e.handleTechReady_ = function () { 58773 this.triggerReady(), this.cache_.volume && this.techCall_("setVolume", this.cache_.volume), this.handleTechPosterChange_(), this.handleTechDurationChange_(); 58774 }, e.handleTechLoadStart_ = function () { 58775 this.removeClass("vjs-ended"), this.removeClass("vjs-seeking"), this.error(null), this.handleTechDurationChange_(), this.paused() ? (this.hasStarted(!1), this.trigger("loadstart")) : (this.trigger("loadstart"), this.trigger("firstplay")), this.manualAutoplay_(this.autoplay()); 58776 }, e.manualAutoplay_ = function (t) { 58777 var n = this; 58778 58779 if (this.tech_ && "string" == typeof t) { 58780 var e, 58781 i = function i() { 58782 var e = n.muted(); 58783 n.muted(!0); 58784 58785 function t() { 58786 n.muted(e); 58787 } 58788 58789 n.playTerminatedQueue_.push(t); 58790 var i = n.play(); 58791 if (St(i)) return i["catch"](t); 58792 }; 58793 58794 if ("any" === t && !0 !== this.muted() ? St(e = this.play()) && (e = e["catch"](i)) : e = "muted" === t && !0 !== this.muted() ? i() : this.play(), St(e)) return e.then(function () { 58795 n.trigger({ 58796 type: "autoplay-success", 58797 autoplay: t 58798 }); 58799 })["catch"](function (e) { 58800 n.trigger({ 58801 type: "autoplay-failure", 58802 autoplay: t 58803 }); 58804 }); 58805 } 58806 }, e.updateSourceCaches_ = function (e) { 58807 void 0 === e && (e = ""); 58808 var t = e, 58809 i = ""; 58810 "string" != typeof t && (t = e.src, i = e.type), this.cache_.source = this.cache_.source || {}, this.cache_.sources = this.cache_.sources || [], t && !i && (i = function (e, t) { 58811 if (!t) return ""; 58812 if (e.cache_.source.src === t && e.cache_.source.type) return e.cache_.source.type; 58813 var i = e.cache_.sources.filter(function (e) { 58814 return e.src === t; 58815 }); 58816 if (i.length) return i[0].type; 58817 58818 for (var n = e.$$("source"), r = 0; r < n.length; r++) { 58819 var s = n[r]; 58820 if (s.type && s.src && s.src === t) return s.type; 58821 } 58822 58823 return Zi(t); 58824 }(this, t)), this.cache_.source = Ne({}, e, { 58825 src: t, 58826 type: i 58827 }); 58828 58829 for (var n = this.cache_.sources.filter(function (e) { 58830 return e.src && e.src === t; 58831 }), r = [], s = this.$$("source"), a = [], o = 0; o < s.length; o++) { 58832 var u = P(s[o]); 58833 r.push(u), u.src && u.src === t && a.push(u.src); 58834 } 58835 58836 a.length && !n.length ? this.cache_.sources = r : n.length || (this.cache_.sources = [this.cache_.source]), this.cache_.src = t; 58837 }, e.handleTechSourceset_ = function (e) { 58838 var i = this; 58839 58840 if (!this.changingSrc_) { 58841 var t = function t(e) { 58842 return i.updateSourceCaches_(e); 58843 }, 58844 n = this.currentSource().src, 58845 r = e.src; 58846 58847 n && !/^blob:/.test(n) && /^blob:/.test(r) && (this.lastSource_ && (this.lastSource_.tech === r || this.lastSource_.player === n) || (t = function t() {})), t(r), e.src || this.tech_.any(["sourceset", "loadstart"], function (e) { 58848 if ("sourceset" !== e.type) { 58849 var t = i.techGet("currentSrc"); 58850 i.lastSource_.tech = t, i.updateSourceCaches_(t); 58851 } 58852 }); 58853 } 58854 58855 this.lastSource_ = { 58856 player: this.currentSource().src, 58857 tech: e.src 58858 }, this.trigger({ 58859 src: e.src, 58860 type: "sourceset" 58861 }); 58862 }, e.hasStarted = function (e) { 58863 if (void 0 === e) return this.hasStarted_; 58864 e !== this.hasStarted_ && (this.hasStarted_ = e, this.hasStarted_ ? (this.addClass("vjs-has-started"), this.trigger("firstplay")) : this.removeClass("vjs-has-started")); 58865 }, e.handleTechPlay_ = function () { 58866 this.removeClass("vjs-ended"), this.removeClass("vjs-paused"), this.addClass("vjs-playing"), this.hasStarted(!0), this.trigger("play"); 58867 }, e.handleTechRateChange_ = function () { 58868 0 < this.tech_.playbackRate() && 0 === this.cache_.lastPlaybackRate && (this.queuedCallbacks_.forEach(function (e) { 58869 return e.callback(e.event); 58870 }), this.queuedCallbacks_ = []), this.cache_.lastPlaybackRate = this.tech_.playbackRate(), this.trigger("ratechange"); 58871 }, e.handleTechWaiting_ = function () { 58872 var t = this; 58873 this.addClass("vjs-waiting"), this.trigger("waiting"); 58874 var i = this.currentTime(); 58875 this.on("timeupdate", function e() { 58876 i !== t.currentTime() && (t.removeClass("vjs-waiting"), t.off("timeupdate", e)); 58877 }); 58878 }, e.handleTechCanPlay_ = function () { 58879 this.removeClass("vjs-waiting"), this.trigger("canplay"); 58880 }, e.handleTechCanPlayThrough_ = function () { 58881 this.removeClass("vjs-waiting"), this.trigger("canplaythrough"); 58882 }, e.handleTechPlaying_ = function () { 58883 this.removeClass("vjs-waiting"), this.trigger("playing"); 58884 }, e.handleTechSeeking_ = function () { 58885 this.addClass("vjs-seeking"), this.trigger("seeking"); 58886 }, e.handleTechSeeked_ = function () { 58887 this.removeClass("vjs-seeking"), this.removeClass("vjs-ended"), this.trigger("seeked"); 58888 }, e.handleTechFirstPlay_ = function () { 58889 this.options_.starttime && (p.warn("Passing the `starttime` option to the player will be deprecated in 6.0"), this.currentTime(this.options_.starttime)), this.addClass("vjs-has-started"), this.trigger("firstplay"); 58890 }, e.handleTechPause_ = function () { 58891 this.removeClass("vjs-playing"), this.addClass("vjs-paused"), this.trigger("pause"); 58892 }, e.handleTechEnded_ = function () { 58893 this.addClass("vjs-ended"), this.options_.loop ? (this.currentTime(0), this.play()) : this.paused() || this.pause(), this.trigger("ended"); 58894 }, e.handleTechDurationChange_ = function () { 58895 this.duration(this.techGet_("duration")); 58896 }, e.handleTechClick_ = function (e) { 58897 W(e) && this.controls_ && (this.paused() ? kt(this.play()) : this.pause()); 58898 }, e.handleTechDoubleClick_ = function (t) { 58899 this.controls_ && (Array.prototype.some.call(this.$$(".vjs-control-bar, .vjs-modal-dialog"), function (e) { 58900 return e.contains(t.target); 58901 }) || void 0 !== this.options_ && void 0 !== this.options_.userActions && void 0 !== this.options_.userActions.doubleClick && !1 === this.options_.userActions.doubleClick || (void 0 !== this.options_ && void 0 !== this.options_.userActions && "function" == typeof this.options_.userActions.doubleClick ? this.options_.userActions.doubleClick.call(this, t) : this.isFullscreen() ? this.exitFullscreen() : this.requestFullscreen())); 58902 }, e.handleTechTap_ = function () { 58903 this.userActive(!this.userActive()); 58904 }, e.handleTechTouchStart_ = function () { 58905 this.userWasActive = this.userActive(); 58906 }, e.handleTechTouchMove_ = function () { 58907 this.userWasActive && this.reportUserActivity(); 58908 }, e.handleTechTouchEnd_ = function (e) { 58909 e.preventDefault(); 58910 }, e.handleStageClick_ = function () { 58911 this.reportUserActivity(); 58912 }, e.toggleFullscreenClass_ = function () { 58913 this.isFullscreen() ? this.addClass("vjs-fullscreen") : this.removeClass("vjs-fullscreen"); 58914 }, e.documentFullscreenChange_ = function (e) { 58915 var t = e.target.player; 58916 58917 if (!t || t === this) { 58918 var i = this.el(), 58919 n = h[this.fsApi_.fullscreenElement] === i; 58920 !n && i.matches ? n = i.matches(":" + this.fsApi_.fullscreen) : !n && i.msMatchesSelector && (n = i.msMatchesSelector(":" + this.fsApi_.fullscreen)), this.isFullscreen(n); 58921 } 58922 }, e.handleTechFullscreenChange_ = function (e, t) { 58923 t && (t.nativeIOSFullscreen && this.toggleClass("vjs-ios-native-fs"), this.isFullscreen(t.isFullscreen)); 58924 }, e.handleTechFullscreenError_ = function (e, t) { 58925 this.trigger("fullscreenerror", t); 58926 }, e.togglePictureInPictureClass_ = function () { 58927 this.isInPictureInPicture() ? this.addClass("vjs-picture-in-picture") : this.removeClass("vjs-picture-in-picture"); 58928 }, e.handleTechEnterPictureInPicture_ = function (e) { 58929 this.isInPictureInPicture(!0); 58930 }, e.handleTechLeavePictureInPicture_ = function (e) { 58931 this.isInPictureInPicture(!1); 58932 }, e.handleTechError_ = function () { 58933 var e = this.tech_.error(); 58934 this.error(e); 58935 }, e.handleTechTextData_ = function (e, t) { 58936 var i = null; 58937 1 < arguments.length && (i = t), this.trigger("textdata", i); 58938 }, e.getCache = function () { 58939 return this.cache_; 58940 }, e.resetCache_ = function () { 58941 this.cache_ = { 58942 currentTime: 0, 58943 initTime: 0, 58944 inactivityTimeout: this.options_.inactivityTimeout, 58945 duration: NaN, 58946 lastVolume: 1, 58947 lastPlaybackRate: this.defaultPlaybackRate(), 58948 media: null, 58949 src: "", 58950 source: {}, 58951 sources: [], 58952 volume: 1 58953 }; 58954 }, e.techCall_ = function (e, t) { 58955 this.ready(function () { 58956 if (e in Yi) return function (e, t, i, n) { 58957 return t[i](e.reduce(Qi(i), n)); 58958 }(this.middleware_, this.tech_, e, t); 58959 if (e in $i) return Xi(this.middleware_, this.tech_, e, t); 58960 58961 try { 58962 this.tech_ && this.tech_[e](t); 58963 } catch (e) { 58964 throw p(e), e; 58965 } 58966 }, !0); 58967 }, e.techGet_ = function (t) { 58968 if (this.tech_ && this.tech_.isReady_) { 58969 if (t in Ki) return function (e, t, i) { 58970 return e.reduceRight(Qi(i), t[i]()); 58971 }(this.middleware_, this.tech_, t); 58972 if (t in $i) return Xi(this.middleware_, this.tech_, t); 58973 58974 try { 58975 return this.tech_[t](); 58976 } catch (e) { 58977 if (void 0 === this.tech_[t]) throw p("Video.js: " + t + " method not defined for " + this.techName_ + " playback technology.", e), e; 58978 if ("TypeError" === e.name) throw p("Video.js: " + t + " unavailable on " + this.techName_ + " playback technology element.", e), this.tech_.isReady_ = !1, e; 58979 throw p(e), e; 58980 } 58981 } 58982 }, e.play = function () { 58983 var t = this, 58984 e = this.options_.Promise || y.Promise; 58985 return e ? new e(function (e) { 58986 t.play_(e); 58987 }) : this.play_(); 58988 }, e.play_ = function (e) { 58989 var t = this; 58990 void 0 === e && (e = kt), this.playCallbacks_.push(e); 58991 var i = Boolean(!this.changingSrc_ && (this.src() || this.currentSrc())); 58992 if (this.waitToPlay_ && (this.off(["ready", "loadstart"], this.waitToPlay_), this.waitToPlay_ = null), !this.isReady_ || !i) return this.waitToPlay_ = function (e) { 58993 t.play_(); 58994 }, this.one(["ready", "loadstart"], this.waitToPlay_), void (i || !ot && !at || this.load()); 58995 var n = this.techGet_("play"); 58996 null === n ? this.runPlayTerminatedQueue_() : this.runPlayCallbacks_(n); 58997 }, e.runPlayTerminatedQueue_ = function () { 58998 var e = this.playTerminatedQueue_.slice(0); 58999 this.playTerminatedQueue_ = [], e.forEach(function (e) { 59000 e(); 59001 }); 59002 }, e.runPlayCallbacks_ = function (t) { 59003 var e = this.playCallbacks_.slice(0); 59004 this.playCallbacks_ = [], this.playTerminatedQueue_ = [], e.forEach(function (e) { 59005 e(t); 59006 }); 59007 }, e.pause = function () { 59008 this.techCall_("pause"); 59009 }, e.paused = function () { 59010 return !1 !== this.techGet_("paused"); 59011 }, e.played = function () { 59012 return this.techGet_("played") || ht(0, 0); 59013 }, e.scrubbing = function (e) { 59014 if ("undefined" == typeof e) return this.scrubbing_; 59015 this.scrubbing_ = !!e, e ? this.addClass("vjs-scrubbing") : this.removeClass("vjs-scrubbing"); 59016 }, e.currentTime = function (e) { 59017 return "undefined" != typeof e ? (e < 0 && (e = 0), this.isReady_ && !this.changingSrc_ && this.tech_ && this.tech_.isReady_ ? (this.techCall_("setCurrentTime", e), void (this.cache_.initTime = 0)) : (this.cache_.initTime = e, this.off("canplay", this.applyInitTime_), void this.one("canplay", this.applyInitTime_))) : (this.cache_.currentTime = this.techGet_("currentTime") || 0, this.cache_.currentTime); 59018 }, e.applyInitTime_ = function () { 59019 this.currentTime(this.cache_.initTime); 59020 }, e.duration = function (e) { 59021 if (void 0 === e) return void 0 !== this.cache_.duration ? this.cache_.duration : NaN; 59022 (e = parseFloat(e)) < 0 && (e = 1 / 0), e !== this.cache_.duration && ((this.cache_.duration = e) === 1 / 0 ? this.addClass("vjs-live") : this.removeClass("vjs-live"), isNaN(e) || this.trigger("durationchange")); 59023 }, e.remainingTime = function () { 59024 return this.duration() - this.currentTime(); 59025 }, e.remainingTimeDisplay = function () { 59026 return Math.floor(this.duration()) - Math.floor(this.currentTime()); 59027 }, e.buffered = function () { 59028 var e = this.techGet_("buffered"); 59029 return e && e.length || (e = ht(0, 0)), e; 59030 }, e.bufferedPercent = function () { 59031 return dt(this.buffered(), this.duration()); 59032 }, e.bufferedEnd = function () { 59033 var e = this.buffered(), 59034 t = this.duration(), 59035 i = e.end(e.length - 1); 59036 return t < i && (i = t), i; 59037 }, e.volume = function (e) { 59038 var t; 59039 return void 0 !== e ? (t = Math.max(0, Math.min(1, parseFloat(e))), this.cache_.volume = t, this.techCall_("setVolume", t), void (0 < t && this.lastVolume_(t))) : (t = parseFloat(this.techGet_("volume")), isNaN(t) ? 1 : t); 59040 }, e.muted = function (e) { 59041 if (void 0 === e) return this.techGet_("muted") || !1; 59042 this.techCall_("setMuted", e); 59043 }, e.defaultMuted = function (e) { 59044 return void 0 !== e ? this.techCall_("setDefaultMuted", e) : this.techGet_("defaultMuted") || !1; 59045 }, e.lastVolume_ = function (e) { 59046 if (void 0 === e || 0 === e) return this.cache_.lastVolume; 59047 this.cache_.lastVolume = e; 59048 }, e.supportsFullScreen = function () { 59049 return this.techGet_("supportsFullScreen") || !1; 59050 }, e.isFullscreen = function (e) { 59051 if (void 0 === e) return this.isFullscreen_; 59052 var t = this.isFullscreen_; 59053 return this.isFullscreen_ = Boolean(e), this.isFullscreen_ !== t && this.fsApi_.prefixed && this.trigger("fullscreenchange"), void this.toggleFullscreenClass_(); 59054 }, e.requestFullscreen = function (a) { 59055 var e = this.options_.Promise || y.Promise; 59056 59057 if (e) { 59058 var o = this; 59059 return new e(function (e, i) { 59060 function n() { 59061 o.off("fullscreenerror", r), o.off("fullscreenchange", t); 59062 } 59063 59064 function t() { 59065 n(), e(); 59066 } 59067 59068 function r(e, t) { 59069 n(), i(t); 59070 } 59071 59072 o.one("fullscreenchange", t), o.one("fullscreenerror", r); 59073 var s = o.requestFullscreenHelper_(a); 59074 if (s) return s.then(n, n), s; 59075 }); 59076 } 59077 59078 return this.requestFullscreenHelper_(); 59079 }, e.requestFullscreenHelper_ = function (e) { 59080 var t, 59081 i = this; 59082 59083 if (this.fsApi_.prefixed || (t = this.options_.fullscreen && this.options_.fullscreen.options || {}, void 0 !== e && (t = e)), this.fsApi_.requestFullscreen) { 59084 var n = this.el_[this.fsApi_.requestFullscreen](t); 59085 return n && n.then(function () { 59086 return i.isFullscreen(!0); 59087 }, function () { 59088 return i.isFullscreen(!1); 59089 }), n; 59090 } 59091 59092 this.tech_.supportsFullScreen() ? this.techCall_("enterFullScreen") : this.enterFullWindow(); 59093 }, e.exitFullscreen = function () { 59094 var e = this.options_.Promise || y.Promise; 59095 59096 if (e) { 59097 var a = this; 59098 return new e(function (e, i) { 59099 function n() { 59100 a.off("fullscreenerror", r), a.off("fullscreenchange", t); 59101 } 59102 59103 function t() { 59104 n(), e(); 59105 } 59106 59107 function r(e, t) { 59108 n(), i(t); 59109 } 59110 59111 a.one("fullscreenchange", t), a.one("fullscreenerror", r); 59112 var s = a.exitFullscreenHelper_(); 59113 if (s) return s.then(n, n), s; 59114 }); 59115 } 59116 59117 return this.exitFullscreenHelper_(); 59118 }, e.exitFullscreenHelper_ = function () { 59119 var e = this; 59120 59121 if (this.fsApi_.requestFullscreen) { 59122 var t = h[this.fsApi_.exitFullscreen](); 59123 return t && t.then(function () { 59124 return e.isFullscreen(!1); 59125 }), t; 59126 } 59127 59128 this.tech_.supportsFullScreen() ? this.techCall_("exitFullScreen") : this.exitFullWindow(); 59129 }, e.enterFullWindow = function () { 59130 this.isFullscreen(!0), this.isFullWindow = !0, this.docOrigOverflow = h.documentElement.style.overflow, he(h, "keydown", this.boundFullWindowOnEscKey_), h.documentElement.style.overflow = "hidden", E(h.body, "vjs-full-window"), this.trigger("enterFullWindow"); 59131 }, e.fullWindowOnEscKey = function (e) { 59132 xt.isEventKey(e, "Esc") && (!0 === this.isFullscreen() ? this.exitFullscreen() : this.exitFullWindow()); 59133 }, e.exitFullWindow = function () { 59134 this.isFullscreen(!1), this.isFullWindow = !1, de(h, "keydown", this.boundFullWindowOnEscKey_), h.documentElement.style.overflow = this.docOrigOverflow, x(h.body, "vjs-full-window"), this.trigger("exitFullWindow"); 59135 }, e.isInPictureInPicture = function (e) { 59136 return void 0 !== e ? (this.isInPictureInPicture_ = !!e, void this.togglePictureInPictureClass_()) : !!this.isInPictureInPicture_; 59137 }, e.requestPictureInPicture = function () { 59138 if ("pictureInPictureEnabled" in h) return this.techGet_("requestPictureInPicture"); 59139 }, e.exitPictureInPicture = function () { 59140 if ("pictureInPictureEnabled" in h) return h.exitPictureInPicture(); 59141 }, e.handleKeyDown = function (e) { 59142 var t = this.options_.userActions; 59143 59144 if (t && t.hotkeys) { 59145 !function (e) { 59146 var t = e.tagName.toLowerCase(); 59147 if (e.isContentEditable) return !0; 59148 if ("input" === t) return -1 === ["button", "checkbox", "hidden", "radio", "reset", "submit"].indexOf(e.type); 59149 return -1 !== ["textarea"].indexOf(t); 59150 }(this.el_.ownerDocument.activeElement) && ("function" == typeof t.hotkeys ? t.hotkeys.call(this, e) : this.handleHotkeys(e)); 59151 } 59152 }, e.handleHotkeys = function (e) { 59153 var t = this.options_.userActions ? this.options_.userActions.hotkeys : {}, 59154 i = t.fullscreenKey, 59155 n = void 0 === i ? function (e) { 59156 return xt.isEventKey(e, "f"); 59157 } : i, 59158 r = t.muteKey, 59159 s = void 0 === r ? function (e) { 59160 return xt.isEventKey(e, "m"); 59161 } : r, 59162 a = t.playPauseKey, 59163 o = void 0 === a ? function (e) { 59164 return xt.isEventKey(e, "k") || xt.isEventKey(e, "Space"); 59165 } : a; 59166 59167 if (n.call(this, e)) { 59168 e.preventDefault(), e.stopPropagation(); 59169 var u = Re.getComponent("FullscreenToggle"); 59170 !1 !== h[this.fsApi_.fullscreenEnabled] && u.prototype.handleClick.call(this, e); 59171 } else if (s.call(this, e)) { 59172 e.preventDefault(), e.stopPropagation(), Re.getComponent("MuteToggle").prototype.handleClick.call(this, e); 59173 } else if (o.call(this, e)) { 59174 e.preventDefault(), e.stopPropagation(), Re.getComponent("PlayToggle").prototype.handleClick.call(this, e); 59175 } 59176 }, e.canPlayType = function (e) { 59177 for (var t, i = 0, n = this.options_.techOrder; i < n.length; i++) { 59178 var r = n[i], 59179 s = Vi.getTech(r); 59180 59181 if (s = s || Re.getComponent(r)) { 59182 if (s.isSupported() && (t = s.canPlayType(e))) return t; 59183 } else p.error('The "' + r + '" tech is undefined. Skipped browser support check for that tech.'); 59184 } 59185 59186 return ""; 59187 }, e.selectSource = function (e) { 59188 function t(e, i, n) { 59189 var r; 59190 return e.some(function (t) { 59191 return i.some(function (e) { 59192 if (r = n(t, e)) return !0; 59193 }); 59194 }), r; 59195 } 59196 59197 function i(e, t) { 59198 var i = e[0]; 59199 if (e[1].canPlaySource(t, r.options_[i.toLowerCase()])) return { 59200 source: t, 59201 tech: i 59202 }; 59203 } 59204 59205 var n, 59206 r = this, 59207 s = this.options_.techOrder.map(function (e) { 59208 return [e, Vi.getTech(e)]; 59209 }).filter(function (e) { 59210 var t = e[0], 59211 i = e[1]; 59212 return i ? i.isSupported() : (p.error('The "' + t + '" tech is undefined. Skipped browser support check for that tech.'), !1); 59213 }); 59214 return (this.options_.sourceOrder ? t(e, s, (n = i, function (e, t) { 59215 return n(t, e); 59216 })) : t(s, e, i)) || !1; 59217 }, e.src = function (e) { 59218 var i = this; 59219 if ("undefined" == typeof e) return this.cache_.src || ""; 59220 59221 var n = function t(e) { 59222 if (Array.isArray(e)) { 59223 var i = []; 59224 e.forEach(function (e) { 59225 e = t(e), Array.isArray(e) ? i = i.concat(e) : o(e) && i.push(e); 59226 }), e = i; 59227 } else e = "string" == typeof e && e.trim() ? [tn({ 59228 src: e 59229 })] : o(e) && "string" == typeof e.src && e.src && e.src.trim() ? [tn(e)] : []; 59230 59231 return e; 59232 }(e); 59233 59234 n.length ? (this.changingSrc_ = !0, this.cache_.sources = n, this.updateSourceCaches_(n[0]), Gi(this, n[0], function (e, t) { 59235 if (i.middleware_ = t, i.cache_.sources = n, i.updateSourceCaches_(e), i.src_(e)) return 1 < n.length ? i.src(n.slice(1)) : (i.changingSrc_ = !1, i.setTimeout(function () { 59236 this.error({ 59237 code: 4, 59238 message: this.localize(this.options_.notSupportedMessage) 59239 }); 59240 }, 0), void i.triggerReady()); 59241 !function (e, t) { 59242 e.forEach(function (e) { 59243 return e.setTech && e.setTech(t); 59244 }); 59245 }(t, i.tech_); 59246 })) : this.setTimeout(function () { 59247 this.error({ 59248 code: 4, 59249 message: this.localize(this.options_.notSupportedMessage) 59250 }); 59251 }, 0); 59252 }, e.src_ = function (e) { 59253 var t = this, 59254 i = this.selectSource([e]); 59255 return !i || (function (e, t) { 59256 return De(e) === De(t); 59257 }(i.tech, this.techName_) ? this.ready(function () { 59258 this.tech_.constructor.prototype.hasOwnProperty("setSource") ? this.techCall_("setSource", e) : this.techCall_("src", e.src), this.changingSrc_ = !1; 59259 }, !0) : (this.changingSrc_ = !0, this.loadTech_(i.tech, i.source), this.tech_.ready(function () { 59260 t.changingSrc_ = !1; 59261 })), !1); 59262 }, e.load = function () { 59263 this.techCall_("load"); 59264 }, e.reset = function () { 59265 var e = this, 59266 t = this.options_.Promise || y.Promise; 59267 this.paused() || !t ? this.doReset_() : kt(this.play().then(function () { 59268 return e.doReset_(); 59269 })); 59270 }, e.doReset_ = function () { 59271 this.tech_ && this.tech_.clearTracks("text"), this.resetCache_(), this.poster(""), this.loadTech_(this.options_.techOrder[0], null), this.techCall_("reset"), this.resetControlBarUI_(), xe(this) && this.trigger("playerreset"); 59272 }, e.resetControlBarUI_ = function () { 59273 this.resetProgressBar_(), this.resetPlaybackRate_(), this.resetVolumeBar_(); 59274 }, e.resetProgressBar_ = function () { 59275 this.currentTime(0); 59276 var e = this.controlBar, 59277 t = e.durationDisplay, 59278 i = e.remainingTimeDisplay; 59279 t && t.updateContent(), i && i.updateContent(); 59280 }, e.resetPlaybackRate_ = function () { 59281 this.playbackRate(this.defaultPlaybackRate()), this.handleTechRateChange_(); 59282 }, e.resetVolumeBar_ = function () { 59283 this.volume(1), this.trigger("volumechange"); 59284 }, e.currentSources = function () { 59285 var e = this.currentSource(), 59286 t = []; 59287 return 0 !== Object.keys(e).length && t.push(e), this.cache_.sources || t; 59288 }, e.currentSource = function () { 59289 return this.cache_.source || {}; 59290 }, e.currentSrc = function () { 59291 return this.currentSource() && this.currentSource().src || ""; 59292 }, e.currentType = function () { 59293 return this.currentSource() && this.currentSource().type || ""; 59294 }, e.preload = function (e) { 59295 return void 0 !== e ? (this.techCall_("setPreload", e), void (this.options_.preload = e)) : this.techGet_("preload"); 59296 }, e.autoplay = function (e) { 59297 if (void 0 === e) return this.options_.autoplay || !1; 59298 var t; 59299 "string" == typeof e && /(any|play|muted)/.test(e) ? (this.options_.autoplay = e, this.manualAutoplay_(e), t = !1) : this.options_.autoplay = !!e, t = "undefined" == typeof t ? this.options_.autoplay : t, this.tech_ && this.techCall_("setAutoplay", t); 59300 }, e.playsinline = function (e) { 59301 return void 0 !== e ? (this.techCall_("setPlaysinline", e), this.options_.playsinline = e, this) : this.techGet_("playsinline"); 59302 }, e.loop = function (e) { 59303 return void 0 !== e ? (this.techCall_("setLoop", e), void (this.options_.loop = e)) : this.techGet_("loop"); 59304 }, e.poster = function (e) { 59305 if (void 0 === e) return this.poster_; 59306 (e = e || "") !== this.poster_ && (this.poster_ = e, this.techCall_("setPoster", e), this.isPosterFromTech_ = !1, this.trigger("posterchange")); 59307 }, e.handleTechPosterChange_ = function () { 59308 if ((!this.poster_ || this.options_.techCanOverridePoster) && this.tech_ && this.tech_.poster) { 59309 var e = this.tech_.poster() || ""; 59310 e !== this.poster_ && (this.poster_ = e, this.isPosterFromTech_ = !0, this.trigger("posterchange")); 59311 } 59312 }, e.controls = function (e) { 59313 if (void 0 === e) return !!this.controls_; 59314 e = !!e, this.controls_ !== e && (this.controls_ = e, this.usingNativeControls() && this.techCall_("setControls", e), this.controls_ ? (this.removeClass("vjs-controls-disabled"), this.addClass("vjs-controls-enabled"), this.trigger("controlsenabled"), this.usingNativeControls() || this.addTechControlsListeners_()) : (this.removeClass("vjs-controls-enabled"), this.addClass("vjs-controls-disabled"), this.trigger("controlsdisabled"), this.usingNativeControls() || this.removeTechControlsListeners_())); 59315 }, e.usingNativeControls = function (e) { 59316 if (void 0 === e) return !!this.usingNativeControls_; 59317 e = !!e, this.usingNativeControls_ !== e && (this.usingNativeControls_ = e, this.usingNativeControls_ ? (this.addClass("vjs-using-native-controls"), this.trigger("usingnativecontrols")) : (this.removeClass("vjs-using-native-controls"), this.trigger("usingcustomcontrols"))); 59318 }, e.error = function (e) { 59319 if (void 0 === e) return this.error_ || null; 59320 59321 if (this.options_.suppressNotSupportedError && e && 4 === e.code) { 59322 var t = function t() { 59323 this.error(e); 59324 }; 59325 59326 return this.options_.suppressNotSupportedError = !1, this.any(["click", "touchstart"], t), void this.one("loadstart", function () { 59327 this.off(["click", "touchstart"], t); 59328 }); 59329 } 59330 59331 if (null === e) return this.error_ = e, this.removeClass("vjs-error"), void (this.errorDisplay && this.errorDisplay.close()); 59332 this.error_ = new _t(e), this.addClass("vjs-error"), p.error("(CODE:" + this.error_.code + " " + _t.errorTypes[this.error_.code] + ")", this.error_.message, this.error_), this.trigger("error"); 59333 }, e.reportUserActivity = function (e) { 59334 this.userActivity_ = !0; 59335 }, e.userActive = function (e) { 59336 if (void 0 === e) return this.userActive_; 59337 59338 if ((e = !!e) !== this.userActive_) { 59339 if (this.userActive_ = e, this.userActive_) return this.userActivity_ = !0, this.removeClass("vjs-user-inactive"), this.addClass("vjs-user-active"), void this.trigger("useractive"); 59340 this.tech_ && this.tech_.one("mousemove", function (e) { 59341 e.stopPropagation(), e.preventDefault(); 59342 }), this.userActivity_ = !1, this.removeClass("vjs-user-active"), this.addClass("vjs-user-inactive"), this.trigger("userinactive"); 59343 } 59344 }, e.listenForUserActivity_ = function () { 59345 function e(e) { 59346 r(), this.clearInterval(t); 59347 } 59348 59349 var t, 59350 i, 59351 n, 59352 r = ge(this, this.reportUserActivity); 59353 this.on("mousedown", function () { 59354 r(), this.clearInterval(t), t = this.setInterval(r, 250); 59355 }), this.on("mousemove", function (e) { 59356 e.screenX === i && e.screenY === n || (i = e.screenX, n = e.screenY, r()); 59357 }), this.on("mouseup", e), this.on("mouseleave", e); 59358 var s, 59359 a = this.getChild("controlBar"); 59360 !a || at || Xe || (a.on("mouseenter", function (e) { 59361 this.player().cache_.inactivityTimeout = this.player().options_.inactivityTimeout, this.player().options_.inactivityTimeout = 0; 59362 }), a.on("mouseleave", function (e) { 59363 this.player().options_.inactivityTimeout = this.player().cache_.inactivityTimeout; 59364 })), this.on("keydown", r), this.on("keyup", r), this.setInterval(function () { 59365 if (this.userActivity_) { 59366 this.userActivity_ = !1, this.userActive(!0), this.clearTimeout(s); 59367 var e = this.options_.inactivityTimeout; 59368 e <= 0 || (s = this.setTimeout(function () { 59369 this.userActivity_ || this.userActive(!1); 59370 }, e)); 59371 } 59372 }, 250); 59373 }, e.playbackRate = function (e) { 59374 if (void 0 === e) return this.tech_ && this.tech_.featuresPlaybackRate ? this.cache_.lastPlaybackRate || this.techGet_("playbackRate") : 1; 59375 this.techCall_("setPlaybackRate", e); 59376 }, e.defaultPlaybackRate = function (e) { 59377 return void 0 !== e ? this.techCall_("setDefaultPlaybackRate", e) : this.tech_ && this.tech_.featuresPlaybackRate ? this.techGet_("defaultPlaybackRate") : 1; 59378 }, e.isAudio = function (e) { 59379 if (void 0 === e) return !!this.isAudio_; 59380 this.isAudio_ = !!e; 59381 }, e.addTextTrack = function (e, t, i) { 59382 if (this.tech_) return this.tech_.addTextTrack(e, t, i); 59383 }, e.addRemoteTextTrack = function (e, t) { 59384 if (this.tech_) return this.tech_.addRemoteTextTrack(e, t); 59385 }, e.removeRemoteTextTrack = function (e) { 59386 void 0 === e && (e = {}); 59387 var t = e.track; 59388 if (t = t || e, this.tech_) return this.tech_.removeRemoteTextTrack(t); 59389 }, e.getVideoPlaybackQuality = function () { 59390 return this.techGet_("getVideoPlaybackQuality"); 59391 }, e.videoWidth = function () { 59392 return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0; 59393 }, e.videoHeight = function () { 59394 return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0; 59395 }, e.language = function (e) { 59396 if (void 0 === e) return this.language_; 59397 this.language_ = String(e).toLowerCase(); 59398 }, e.languages = function () { 59399 return Ne(l.prototype.options_.languages, this.languages_); 59400 }, e.toJSON = function () { 59401 var e = Ne(this.options_), 59402 t = e.tracks; 59403 e.tracks = []; 59404 59405 for (var i = 0; i < t.length; i++) { 59406 var n = t[i]; 59407 (n = Ne(n)).player = void 0, e.tracks[i] = n; 59408 } 59409 59410 return e; 59411 }, e.createModal = function (e, t) { 59412 var i = this; 59413 (t = t || {}).content = e || ""; 59414 var n = new It(this, t); 59415 return this.addChild(n), n.on("dispose", function () { 59416 i.removeChild(n); 59417 }), n.open(), n; 59418 }, e.updateCurrentBreakpoint_ = function () { 59419 if (this.responsive()) for (var e = this.currentBreakpoint(), t = this.currentWidth(), i = 0; i < Hr.length; i++) { 59420 var n = Hr[i]; 59421 59422 if (t <= this.breakpoints_[n]) { 59423 if (e === n) return; 59424 e && this.removeClass(Vr[e]), this.addClass(Vr[n]), this.breakpoint_ = n; 59425 break; 59426 } 59427 } 59428 }, e.removeCurrentBreakpoint_ = function () { 59429 var e = this.currentBreakpointClass(); 59430 this.breakpoint_ = "", e && this.removeClass(e); 59431 }, e.breakpoints = function (e) { 59432 return void 0 === e || (this.breakpoint_ = "", this.breakpoints_ = m({}, qr, e), this.updateCurrentBreakpoint_()), m(this.breakpoints_); 59433 }, e.responsive = function (e) { 59434 return void 0 === e ? this.responsive_ : (e = Boolean(e)) !== this.responsive_ ? ((this.responsive_ = e) ? (this.on("playerresize", this.updateCurrentBreakpoint_), this.updateCurrentBreakpoint_()) : (this.off("playerresize", this.updateCurrentBreakpoint_), this.removeCurrentBreakpoint_()), e) : void 0; 59435 }, e.currentBreakpoint = function () { 59436 return this.breakpoint_; 59437 }, e.currentBreakpointClass = function () { 59438 return Vr[this.breakpoint_] || ""; 59439 }, e.loadMedia = function (e, t) { 59440 var i = this; 59441 59442 if (e && "object" == _typeof(e)) { 59443 this.reset(), this.cache_.media = Ne(e); 59444 var n = this.cache_.media, 59445 r = n.artwork, 59446 s = n.poster, 59447 a = n.src, 59448 o = n.textTracks; 59449 !r && s && (this.cache_.media.artwork = [{ 59450 src: s, 59451 type: Zi(s) 59452 }]), a && this.src(a), s && this.poster(s), Array.isArray(o) && o.forEach(function (e) { 59453 return i.addRemoteTextTrack(e, !1); 59454 }), this.ready(t); 59455 } 59456 }, e.getMedia = function () { 59457 if (this.cache_.media) return Ne(this.cache_.media); 59458 var e = this.poster(), 59459 t = { 59460 src: this.currentSources(), 59461 textTracks: Array.prototype.map.call(this.remoteTextTracks(), function (e) { 59462 return { 59463 kind: e.kind, 59464 label: e.label, 59465 language: e.language, 59466 src: e.src 59467 }; 59468 }) 59469 }; 59470 return e && (t.poster = e, t.artwork = [{ 59471 src: t.poster, 59472 type: Zi(t.poster) 59473 }]), t; 59474 }, l.getTagSettings = function (e) { 59475 var t = { 59476 sources: [], 59477 tracks: [] 59478 }, 59479 i = P(e), 59480 n = i["data-setup"]; 59481 59482 if (w(e, "vjs-fill") && (i.fill = !0), w(e, "vjs-fluid") && (i.fluid = !0), null !== n) { 59483 var r = Tt(n || "{}"), 59484 s = r[0], 59485 a = r[1]; 59486 s && p.error(s), m(i, a); 59487 } 59488 59489 if (m(t, i), e.hasChildNodes()) for (var o = e.childNodes, u = 0, l = o.length; u < l; u++) { 59490 var c = o[u], 59491 h = c.nodeName.toLowerCase(); 59492 "source" === h ? t.sources.push(P(c)) : "track" === h && t.tracks.push(P(c)); 59493 } 59494 return t; 59495 }, e.flexNotSupported_ = function () { 59496 var e = h.createElement("i"); 59497 return !("flexBasis" in e.style || "webkitFlexBasis" in e.style || "mozFlexBasis" in e.style || "msFlexBasis" in e.style || "msFlexOrder" in e.style); 59498 }, l; 59499 }(Re); 59500 59501 hi.names.forEach(function (e) { 59502 var t = hi[e]; 59503 59504 Wr.prototype[t.getterName] = function () { 59505 return this.tech_ ? this.tech_[t.getterName]() : (this[t.privateName] = this[t.privateName] || new t.ListClass(), this[t.privateName]); 59506 }; 59507 }), Wr.prototype.crossorigin = Wr.prototype.crossOrigin, Wr.players = {}; 59508 var zr = y.navigator; 59509 Wr.prototype.options_ = { 59510 techOrder: Vi.defaultTechOrder_, 59511 html5: {}, 59512 flash: {}, 59513 inactivityTimeout: 2e3, 59514 playbackRates: [], 59515 liveui: !1, 59516 children: ["mediaLoader", "posterImage", "textTrackDisplay", "loadingSpinner", "bigPlayButton", "liveTracker", "controlBar", "errorDisplay", "textTrackSettings", "resizeManager"], 59517 language: zr && (zr.languages && zr.languages[0] || zr.userLanguage || zr.language) || "en", 59518 languages: {}, 59519 notSupportedMessage: "No compatible source was found for this media.", 59520 fullscreen: { 59521 options: { 59522 navigationUI: "hide" 59523 } 59524 }, 59525 breakpoints: {}, 59526 responsive: !1 59527 }, ["ended", "seeking", "seekable", "networkState", "readyState"].forEach(function (e) { 59528 Wr.prototype[e] = function () { 59529 return this.techGet_(e); 59530 }; 59531 }), jr.forEach(function (e) { 59532 Wr.prototype["handleTech" + De(e) + "_"] = function () { 59533 return this.trigger(e); 59534 }; 59535 }), Re.registerComponent("Player", Wr); 59536 var Gr = t(function (i) { 59537 function n(e, t) { 59538 return i.exports = n = Object.setPrototypeOf || function (e, t) { 59539 return e.__proto__ = t, e; 59540 }, n(e, t); 59541 } 59542 59543 i.exports = n; 59544 }); 59545 59546 function Xr(e) { 59547 return is.hasOwnProperty(e); 59548 } 59549 59550 function Kr(e) { 59551 return Xr(e) ? is[e] : void 0; 59552 } 59553 59554 function Yr(e, t) { 59555 e[ts] = e[ts] || {}, e[ts][t] = !0; 59556 } 59557 59558 function $r(e, t, i) { 59559 var n = (i ? "before" : "") + "pluginsetup"; 59560 e.trigger(n, t), e.trigger(n + ":" + t.name, t); 59561 } 59562 59563 function Qr(r, s) { 59564 return s.prototype.name = r, function () { 59565 $r(this, { 59566 name: r, 59567 plugin: s, 59568 instance: null 59569 }, !0); 59570 59571 for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 59572 t[i] = arguments[i]; 59573 } 59574 59575 var n = Zr(s, [this].concat(t)); 59576 return this[r] = function () { 59577 return n; 59578 }, $r(this, n.getEventHash()), n; 59579 }; 59580 } 59581 59582 var Jr = function Jr() { 59583 if ("undefined" == typeof Reflect || !Reflect.construct) return !1; 59584 if (Reflect.construct.sham) return !1; 59585 if ("function" == typeof Proxy) return !0; 59586 59587 try { 59588 return Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0; 59589 } catch (e) { 59590 return !1; 59591 } 59592 }, 59593 Zr = t(function (n) { 59594 function r(e, t, i) { 59595 return Jr() ? n.exports = r = Reflect.construct : n.exports = r = function r(e, t, i) { 59596 var n = [null]; 59597 n.push.apply(n, t); 59598 var r = new (Function.bind.apply(e, n))(); 59599 return i && Gr(r, i.prototype), r; 59600 }, r.apply(null, arguments); 59601 } 59602 59603 n.exports = r; 59604 }), 59605 es = "plugin", 59606 ts = "activePlugins_", 59607 is = {}, 59608 ns = function () { 59609 function i(e) { 59610 if (this.constructor === i) throw new Error("Plugin must be sub-classed; not directly instantiated."); 59611 this.player = e, Ie(this), delete this.trigger, Le(this, this.constructor.defaultState), Yr(e, this.name), this.dispose = ge(this, this.dispose), e.on("dispose", this.dispose); 59612 } 59613 59614 var e = i.prototype; 59615 return e.version = function () { 59616 return this.constructor.VERSION; 59617 }, e.getEventHash = function (e) { 59618 return void 0 === e && (e = {}), e.name = this.name, e.plugin = this.constructor, e.instance = this, e; 59619 }, e.trigger = function (e, t) { 59620 return void 0 === t && (t = {}), pe(this.eventBusEl_, e, this.getEventHash(t)); 59621 }, e.handleStateChanged = function (e) {}, e.dispose = function () { 59622 var e = this.name, 59623 t = this.player; 59624 this.trigger("dispose"), this.off(), t.off("dispose", this.dispose), t[ts][e] = !1, this.player = this.state = null, t[e] = Qr(e, is[e]); 59625 }, i.isBasic = function (e) { 59626 var t = "string" == typeof e ? Kr(e) : e; 59627 return "function" == typeof t && !i.prototype.isPrototypeOf(t.prototype); 59628 }, i.registerPlugin = function (e, t) { 59629 if ("string" != typeof e) throw new Error('Illegal plugin name, "' + e + '", must be a string, was ' + _typeof(e) + "."); 59630 if (Xr(e)) p.warn('A plugin named "' + e + '" already exists. You may want to avoid re-registering plugins!');else if (Wr.prototype.hasOwnProperty(e)) throw new Error('Illegal plugin name, "' + e + '", cannot share a name with an existing player method!'); 59631 if ("function" != typeof t) throw new Error('Illegal plugin for "' + e + '", must be a function, was ' + _typeof(t) + "."); 59632 return is[e] = t, e !== es && (i.isBasic(t) ? Wr.prototype[e] = function (t, i) { 59633 function n() { 59634 $r(this, { 59635 name: t, 59636 plugin: i, 59637 instance: null 59638 }, !0); 59639 var e = i.apply(this, arguments); 59640 return Yr(this, t), $r(this, { 59641 name: t, 59642 plugin: i, 59643 instance: e 59644 }), e; 59645 } 59646 59647 return Object.keys(i).forEach(function (e) { 59648 n[e] = i[e]; 59649 }), n; 59650 }(e, t) : Wr.prototype[e] = Qr(e, t)), t; 59651 }, i.deregisterPlugin = function (e) { 59652 if (e === es) throw new Error("Cannot de-register base plugin."); 59653 Xr(e) && (delete is[e], delete Wr.prototype[e]); 59654 }, i.getPlugins = function (e) { 59655 var i; 59656 return void 0 === e && (e = Object.keys(is)), e.forEach(function (e) { 59657 var t = Kr(e); 59658 t && ((i = i || {})[e] = t); 59659 }), i; 59660 }, i.getPluginVersion = function (e) { 59661 var t = Kr(e); 59662 return t && t.VERSION || ""; 59663 }, i; 59664 }(); 59665 59666 ns.getPlugin = Kr, ns.BASE_PLUGIN_NAME = es, ns.registerPlugin(es, ns), Wr.prototype.usingPlugin = function (e) { 59667 return !!this[ts] && !0 === this[ts][e]; 59668 }, Wr.prototype.hasPlugin = function (e) { 59669 return !!Xr(e); 59670 }; 59671 59672 var rs = function rs(e, t) { 59673 if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function"); 59674 e.prototype = Object.create(t && t.prototype, { 59675 constructor: { 59676 value: e, 59677 writable: !0, 59678 configurable: !0 59679 } 59680 }), t && Gr(e, t); 59681 }, 59682 ss = function ss(e) { 59683 return 0 === e.indexOf("#") ? e.slice(1) : e; 59684 }; 59685 59686 function as(e, i, t) { 59687 var n = as.getPlayer(e); 59688 if (n) return i && p.warn('Player "' + e + '" is already initialised. Options will not be applied.'), t && n.ready(t), n; 59689 var r = "string" == typeof e ? G("#" + ss(e)) : e; 59690 if (!_(r)) throw new TypeError("The element or ID supplied is not valid. (videojs)"); 59691 r.ownerDocument.defaultView && r.ownerDocument.body.contains(r) || p.warn("The element supplied is not included in the DOM"), i = i || {}, as.hooks("beforesetup").forEach(function (e) { 59692 var t = e(r, Ne(i)); 59693 o(t) && !Array.isArray(t) ? i = Ne(i, t) : p.error("please return an object in beforesetup hooks"); 59694 }); 59695 var s = Re.getComponent("Player"); 59696 return n = new s(r, i, t), as.hooks("setup").forEach(function (e) { 59697 return e(n); 59698 }), n; 59699 } 59700 59701 if (as.hooks_ = {}, as.hooks = function (e, t) { 59702 return as.hooks_[e] = as.hooks_[e] || [], t && (as.hooks_[e] = as.hooks_[e].concat(t)), as.hooks_[e]; 59703 }, as.hook = function (e, t) { 59704 as.hooks(e, t); 59705 }, as.hookOnce = function (i, e) { 59706 as.hooks(i, [].concat(e).map(function (t) { 59707 return function e() { 59708 return as.removeHook(i, e), t.apply(void 0, arguments); 59709 }; 59710 })); 59711 }, as.removeHook = function (e, t) { 59712 var i = as.hooks(e).indexOf(t); 59713 return !(i <= -1) && (as.hooks_[e] = as.hooks_[e].slice(), as.hooks_[e].splice(i, 1), !0); 59714 }, !0 !== y.VIDEOJS_NO_DYNAMIC_STYLE && v()) { 59715 var os = G(".vjs-styles-defaults"); 59716 59717 if (!os) { 59718 os = Z("vjs-styles-defaults"); 59719 var us = G("head"); 59720 us && us.insertBefore(os, us.firstChild), ee(os, "\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n "); 59721 } 59722 } 59723 59724 Q(1, as), as.VERSION = d, as.options = Wr.prototype.options_, as.getPlayers = function () { 59725 return Wr.players; 59726 }, as.getPlayer = function (e) { 59727 var t, 59728 i = Wr.players; 59729 59730 if ("string" == typeof e) { 59731 var n = ss(e), 59732 r = i[n]; 59733 if (r) return r; 59734 t = G("#" + n); 59735 } else t = e; 59736 59737 if (_(t)) { 59738 var s = t, 59739 a = s.player, 59740 o = s.playerId; 59741 if (a || i[o]) return a || i[o]; 59742 } 59743 }, as.getAllPlayers = function () { 59744 return Object.keys(Wr.players).map(function (e) { 59745 return Wr.players[e]; 59746 }).filter(Boolean); 59747 }, as.players = Wr.players, as.getComponent = Re.getComponent, as.registerComponent = function (e, t) { 59748 Vi.isTech(t) && p.warn("The " + e + " tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)"), Re.registerComponent.call(Re, e, t); 59749 }, as.getTech = Vi.getTech, as.registerTech = Vi.registerTech, as.use = function (e, t) { 59750 qi[e] = qi[e] || [], qi[e].push(t); 59751 }, Object.defineProperty(as, "middleware", { 59752 value: {}, 59753 writeable: !1, 59754 enumerable: !0 59755 }), Object.defineProperty(as.middleware, "TERMINATOR", { 59756 value: zi, 59757 writeable: !1, 59758 enumerable: !0 59759 }), as.browser = ut, as.TOUCH_ENABLED = nt, as.extend = function (e, t) { 59760 void 0 === t && (t = {}); 59761 59762 var i = function i() { 59763 e.apply(this, arguments); 59764 }, 59765 n = {}; 59766 59767 for (var r in "object" == _typeof(t) ? (t.constructor !== Object.prototype.constructor && (i = t.constructor), n = t) : "function" == typeof t && (i = t), rs(i, e), e && (i.super_ = e), n) { 59768 n.hasOwnProperty(r) && (i.prototype[r] = n[r]); 59769 } 59770 59771 return i; 59772 }, as.mergeOptions = Ne, as.bind = ge, as.registerPlugin = ns.registerPlugin, as.deregisterPlugin = ns.deregisterPlugin, as.plugin = function (e, t) { 59773 return p.warn("videojs.plugin() is deprecated; use videojs.registerPlugin() instead"), ns.registerPlugin(e, t); 59774 }, as.getPlugins = ns.getPlugins, as.getPlugin = ns.getPlugin, as.getPluginVersion = ns.getPluginVersion, as.addLanguage = function (e, t) { 59775 var i; 59776 return e = ("" + e).toLowerCase(), as.options.languages = Ne(as.options.languages, ((i = {})[e] = t, i)), as.options.languages[e]; 59777 }, as.log = p, as.createLogger = f, as.createTimeRange = as.createTimeRanges = ht, as.formatTime = yn, as.setFormatTime = function (e) { 59778 vn = e; 59779 }, as.resetFormatTime = function () { 59780 vn = gn; 59781 }, as.parseUrl = Nt, as.isCrossOrigin = Mt, as.EventTarget = ye, as.on = he, as.one = fe, as.off = de, as.trigger = pe, as.xhr = Jt, as.TextTrack = si, as.AudioTrack = ai, as.VideoTrack = oi, ["isEl", "isTextNode", "createEl", "hasClass", "addClass", "removeClass", "toggleClass", "setAttributes", "getAttributes", "emptyEl", "appendContent", "insertContent"].forEach(function (e) { 59782 as[e] = function () { 59783 return p.warn("videojs." + e + "() is deprecated; use videojs.dom." + e + "() instead"), K[e].apply(null, arguments); 59784 }; 59785 }), as.computedStyle = n, as.dom = K, as.url = Kt, as.defineLazyProperty = Nr; 59786 var ls = t(function (e, t) { 59787 var i, c, n, r, h; 59788 i = /^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/?#]*)?((?:[^\/\?#]*\/)*.*?)??(;.*?)?(\?.*?)?(#.*?)?$/, c = /^([^\/?#]*)(.*)$/, n = /(?:\/|^)\.(?=\/)/g, r = /(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g, h = { 59789 buildAbsoluteURL: function buildAbsoluteURL(e, t, i) { 59790 if (i = i || {}, e = e.trim(), !(t = t.trim())) { 59791 if (!i.alwaysNormalize) return e; 59792 var n = h.parseURL(e); 59793 if (!n) throw new Error("Error trying to parse base URL."); 59794 return n.path = h.normalizePath(n.path), h.buildURLFromParts(n); 59795 } 59796 59797 var r = h.parseURL(t); 59798 if (!r) throw new Error("Error trying to parse relative URL."); 59799 if (r.scheme) return i.alwaysNormalize ? (r.path = h.normalizePath(r.path), h.buildURLFromParts(r)) : t; 59800 var s = h.parseURL(e); 59801 if (!s) throw new Error("Error trying to parse base URL."); 59802 59803 if (!s.netLoc && s.path && "/" !== s.path[0]) { 59804 var a = c.exec(s.path); 59805 s.netLoc = a[1], s.path = a[2]; 59806 } 59807 59808 s.netLoc && !s.path && (s.path = "/"); 59809 var o = { 59810 scheme: s.scheme, 59811 netLoc: r.netLoc, 59812 path: null, 59813 params: r.params, 59814 query: r.query, 59815 fragment: r.fragment 59816 }; 59817 if (!r.netLoc && (o.netLoc = s.netLoc, "/" !== r.path[0])) if (r.path) { 59818 var u = s.path, 59819 l = u.substring(0, u.lastIndexOf("/") + 1) + r.path; 59820 o.path = h.normalizePath(l); 59821 } else o.path = s.path, r.params || (o.params = s.params, r.query || (o.query = s.query)); 59822 return null === o.path && (o.path = i.alwaysNormalize ? h.normalizePath(r.path) : r.path), h.buildURLFromParts(o); 59823 }, 59824 parseURL: function parseURL(e) { 59825 var t = i.exec(e); 59826 return t ? { 59827 scheme: t[1] || "", 59828 netLoc: t[2] || "", 59829 path: t[3] || "", 59830 params: t[4] || "", 59831 query: t[5] || "", 59832 fragment: t[6] || "" 59833 } : null; 59834 }, 59835 normalizePath: function normalizePath(e) { 59836 for (e = e.split("").reverse().join("").replace(n, ""); e.length !== (e = e.replace(r, "")).length;) { 59837 ; 59838 } 59839 59840 return e.split("").reverse().join(""); 59841 }, 59842 buildURLFromParts: function buildURLFromParts(e) { 59843 return e.scheme + e.netLoc + e.path + e.params + e.query + e.fragment; 59844 } 59845 }, e.exports = h; 59846 }); 59847 /*! @name m3u8-parser @version 4.4.0 @license Apache-2.0 */ 59848 59849 function cs() { 59850 return (cs = Object.assign || function (e) { 59851 for (var t = 1; t < arguments.length; t++) { 59852 var i = arguments[t]; 59853 59854 for (var n in i) { 59855 Object.prototype.hasOwnProperty.call(i, n) && (e[n] = i[n]); 59856 } 59857 } 59858 59859 return e; 59860 }).apply(this, arguments); 59861 } 59862 59863 function hs(e, t) { 59864 e.prototype = Object.create(t.prototype), (e.prototype.constructor = e).__proto__ = t; 59865 } 59866 59867 function ds(e) { 59868 for (var t, i = e.split(new RegExp('(?:^|,)((?:[^=]*)=(?:"[^"]*"|[^,]*))')), n = {}, r = i.length; r--;) { 59869 "" !== i[r] && ((t = /([^=]*)=(.*)/.exec(i[r]).slice(1))[0] = t[0].replace(/^\s+|\s+$/g, ""), t[1] = t[1].replace(/^\s+|\s+$/g, ""), t[1] = t[1].replace(/^['"](.*)['"]$/g, "$1"), n[t[0]] = t[1]); 59870 } 59871 59872 return n; 59873 } 59874 59875 var ps = function () { 59876 function e() { 59877 this.listeners = {}; 59878 } 59879 59880 var t = e.prototype; 59881 return t.on = function (e, t) { 59882 this.listeners[e] || (this.listeners[e] = []), this.listeners[e].push(t); 59883 }, t.off = function (e, t) { 59884 if (!this.listeners[e]) return !1; 59885 var i = this.listeners[e].indexOf(t); 59886 return this.listeners[e].splice(i, 1), -1 < i; 59887 }, t.trigger = function (e, t) { 59888 var i, 59889 n, 59890 r, 59891 s = this.listeners[e]; 59892 if (s) if (2 === arguments.length) for (n = s.length, i = 0; i < n; ++i) { 59893 s[i].call(this, t); 59894 } else for (r = Array.prototype.slice.call(arguments, 1), n = s.length, i = 0; i < n; ++i) { 59895 s[i].apply(this, r); 59896 } 59897 }, t.dispose = function () { 59898 this.listeners = {}; 59899 }, t.pipe = function (t) { 59900 this.on("data", function (e) { 59901 t.push(e); 59902 }); 59903 }, e; 59904 }(), 59905 fs = function (t) { 59906 function e() { 59907 var e; 59908 return (e = t.call(this) || this).buffer = "", e; 59909 } 59910 59911 return hs(e, t), e.prototype.push = function (e) { 59912 var t; 59913 59914 for (this.buffer += e, t = this.buffer.indexOf("\n"); -1 < t; t = this.buffer.indexOf("\n")) { 59915 this.trigger("data", this.buffer.substring(0, t)), this.buffer = this.buffer.substring(t + 1); 59916 } 59917 }, e; 59918 }(ps), 59919 ms = function (t) { 59920 function e() { 59921 var e; 59922 return (e = t.call(this) || this).customParsers = [], e.tagMappers = [], e; 59923 } 59924 59925 hs(e, t); 59926 var i = e.prototype; 59927 return i.push = function (n) { 59928 var u, 59929 l, 59930 c = this; 59931 0 !== (n = n.trim()).length && ("#" === n[0] ? this.tagMappers.reduce(function (e, t) { 59932 var i = t(n); 59933 return i === n ? e : e.concat([i]); 59934 }, [n]).forEach(function (e) { 59935 for (var t = 0; t < c.customParsers.length; t++) { 59936 if (c.customParsers[t].call(c, e)) return; 59937 } 59938 59939 if (0 === e.indexOf("#EXT")) { 59940 if (e = e.replace("\r", ""), u = /^#EXTM3U/.exec(e)) c.trigger("data", { 59941 type: "tag", 59942 tagType: "m3u" 59943 });else { 59944 if (u = /^#EXTINF:?([0-9\.]*)?,?(.*)?$/.exec(e)) return l = { 59945 type: "tag", 59946 tagType: "inf" 59947 }, u[1] && (l.duration = parseFloat(u[1])), u[2] && (l.title = u[2]), void c.trigger("data", l); 59948 if (u = /^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(e)) return l = { 59949 type: "tag", 59950 tagType: "targetduration" 59951 }, u[1] && (l.duration = parseInt(u[1], 10)), void c.trigger("data", l); 59952 if (u = /^#ZEN-TOTAL-DURATION:?([0-9.]*)?/.exec(e)) return l = { 59953 type: "tag", 59954 tagType: "totalduration" 59955 }, u[1] && (l.duration = parseInt(u[1], 10)), void c.trigger("data", l); 59956 if (u = /^#EXT-X-VERSION:?([0-9.]*)?/.exec(e)) return l = { 59957 type: "tag", 59958 tagType: "version" 59959 }, u[1] && (l.version = parseInt(u[1], 10)), void c.trigger("data", l); 59960 if (u = /^#EXT-X-MEDIA-SEQUENCE:?(\-?[0-9.]*)?/.exec(e)) return l = { 59961 type: "tag", 59962 tagType: "media-sequence" 59963 }, u[1] && (l.number = parseInt(u[1], 10)), void c.trigger("data", l); 59964 if (u = /^#EXT-X-DISCONTINUITY-SEQUENCE:?(\-?[0-9.]*)?/.exec(e)) return l = { 59965 type: "tag", 59966 tagType: "discontinuity-sequence" 59967 }, u[1] && (l.number = parseInt(u[1], 10)), void c.trigger("data", l); 59968 if (u = /^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(e)) return l = { 59969 type: "tag", 59970 tagType: "playlist-type" 59971 }, u[1] && (l.playlistType = u[1]), void c.trigger("data", l); 59972 if (u = /^#EXT-X-BYTERANGE:?([0-9.]*)?@?([0-9.]*)?/.exec(e)) return l = { 59973 type: "tag", 59974 tagType: "byterange" 59975 }, u[1] && (l.length = parseInt(u[1], 10)), u[2] && (l.offset = parseInt(u[2], 10)), void c.trigger("data", l); 59976 if (u = /^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(e)) return l = { 59977 type: "tag", 59978 tagType: "allow-cache" 59979 }, u[1] && (l.allowed = !/NO/.test(u[1])), void c.trigger("data", l); 59980 59981 if (u = /^#EXT-X-MAP:?(.*)$/.exec(e)) { 59982 if (l = { 59983 type: "tag", 59984 tagType: "map" 59985 }, u[1]) { 59986 var i = ds(u[1]); 59987 59988 if (i.URI && (l.uri = i.URI), i.BYTERANGE) { 59989 var n = i.BYTERANGE.split("@"), 59990 r = n[0], 59991 s = n[1]; 59992 l.byterange = {}, r && (l.byterange.length = parseInt(r, 10)), s && (l.byterange.offset = parseInt(s, 10)); 59993 } 59994 } 59995 59996 c.trigger("data", l); 59997 } else if (u = /^#EXT-X-STREAM-INF:?(.*)$/.exec(e)) { 59998 if (l = { 59999 type: "tag", 60000 tagType: "stream-inf" 60001 }, u[1]) { 60002 if (l.attributes = ds(u[1]), l.attributes.RESOLUTION) { 60003 var a = l.attributes.RESOLUTION.split("x"), 60004 o = {}; 60005 a[0] && (o.width = parseInt(a[0], 10)), a[1] && (o.height = parseInt(a[1], 10)), l.attributes.RESOLUTION = o; 60006 } 60007 60008 l.attributes.BANDWIDTH && (l.attributes.BANDWIDTH = parseInt(l.attributes.BANDWIDTH, 10)), l.attributes["PROGRAM-ID"] && (l.attributes["PROGRAM-ID"] = parseInt(l.attributes["PROGRAM-ID"], 10)); 60009 } 60010 60011 c.trigger("data", l); 60012 } else { 60013 if (u = /^#EXT-X-MEDIA:?(.*)$/.exec(e)) return l = { 60014 type: "tag", 60015 tagType: "media" 60016 }, u[1] && (l.attributes = ds(u[1])), void c.trigger("data", l); 60017 if (u = /^#EXT-X-ENDLIST/.exec(e)) c.trigger("data", { 60018 type: "tag", 60019 tagType: "endlist" 60020 });else if (u = /^#EXT-X-DISCONTINUITY/.exec(e)) c.trigger("data", { 60021 type: "tag", 60022 tagType: "discontinuity" 60023 });else { 60024 if (u = /^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(e)) return l = { 60025 type: "tag", 60026 tagType: "program-date-time" 60027 }, u[1] && (l.dateTimeString = u[1], l.dateTimeObject = new Date(u[1])), void c.trigger("data", l); 60028 if (u = /^#EXT-X-KEY:?(.*)$/.exec(e)) return l = { 60029 type: "tag", 60030 tagType: "key" 60031 }, u[1] && (l.attributes = ds(u[1]), l.attributes.IV && ("0x" === l.attributes.IV.substring(0, 2).toLowerCase() && (l.attributes.IV = l.attributes.IV.substring(2)), l.attributes.IV = l.attributes.IV.match(/.{8}/g), l.attributes.IV[0] = parseInt(l.attributes.IV[0], 16), l.attributes.IV[1] = parseInt(l.attributes.IV[1], 16), l.attributes.IV[2] = parseInt(l.attributes.IV[2], 16), l.attributes.IV[3] = parseInt(l.attributes.IV[3], 16), l.attributes.IV = new Uint32Array(l.attributes.IV))), void c.trigger("data", l); 60032 if (u = /^#EXT-X-START:?(.*)$/.exec(e)) return l = { 60033 type: "tag", 60034 tagType: "start" 60035 }, u[1] && (l.attributes = ds(u[1]), l.attributes["TIME-OFFSET"] = parseFloat(l.attributes["TIME-OFFSET"]), l.attributes.PRECISE = /YES/.test(l.attributes.PRECISE)), void c.trigger("data", l); 60036 if (u = /^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(e)) return l = { 60037 type: "tag", 60038 tagType: "cue-out-cont" 60039 }, u[1] ? l.data = u[1] : l.data = "", void c.trigger("data", l); 60040 if (u = /^#EXT-X-CUE-OUT:?(.*)?$/.exec(e)) return l = { 60041 type: "tag", 60042 tagType: "cue-out" 60043 }, u[1] ? l.data = u[1] : l.data = "", void c.trigger("data", l); 60044 if (u = /^#EXT-X-CUE-IN:?(.*)?$/.exec(e)) return l = { 60045 type: "tag", 60046 tagType: "cue-in" 60047 }, u[1] ? l.data = u[1] : l.data = "", void c.trigger("data", l); 60048 c.trigger("data", { 60049 type: "tag", 60050 data: e.slice(4) 60051 }); 60052 } 60053 } 60054 } 60055 } else c.trigger("data", { 60056 type: "comment", 60057 text: e.slice(1) 60058 }); 60059 }) : this.trigger("data", { 60060 type: "uri", 60061 uri: n 60062 })); 60063 }, i.addParser = function (e) { 60064 var t = this, 60065 i = e.expression, 60066 n = e.customType, 60067 r = e.dataParser, 60068 s = e.segment; 60069 "function" != typeof r && (r = function r(e) { 60070 return e; 60071 }), this.customParsers.push(function (e) { 60072 if (i.exec(e)) return t.trigger("data", { 60073 type: "custom", 60074 data: r(e), 60075 customType: n, 60076 segment: s 60077 }), !0; 60078 }); 60079 }, i.addTagMapper = function (e) { 60080 var t = e.expression, 60081 i = e.map; 60082 this.tagMappers.push(function (e) { 60083 return t.test(e) ? i(e) : e; 60084 }); 60085 }, e; 60086 }(ps); 60087 60088 var gs = function (t) { 60089 function e() { 60090 var e; 60091 (e = t.call(this) || this).lineStream = new fs(), e.parseStream = new ms(), e.lineStream.pipe(e.parseStream); 60092 60093 var r, 60094 s, 60095 a = function (e) { 60096 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 60097 return e; 60098 }(e), 60099 o = [], 60100 u = {}, 60101 l = { 60102 AUDIO: {}, 60103 VIDEO: {}, 60104 "CLOSED-CAPTIONS": {}, 60105 SUBTITLES: {} 60106 }, 60107 c = 0; 60108 60109 return e.manifest = { 60110 allowCache: !0, 60111 discontinuityStarts: [], 60112 segments: [] 60113 }, e.parseStream.on("data", function (t) { 60114 var i, n; 60115 ({ 60116 tag: function tag() { 60117 (({ 60118 "allow-cache": function allowCache() { 60119 this.manifest.allowCache = t.allowed, "allowed" in t || (this.trigger("info", { 60120 message: "defaulting allowCache to YES" 60121 }), this.manifest.allowCache = !0); 60122 }, 60123 byterange: function byterange() { 60124 var e = {}; 60125 "length" in t && ((u.byterange = e).length = t.length, "offset" in t || (this.trigger("info", { 60126 message: "defaulting offset to zero" 60127 }), t.offset = 0)), "offset" in t && ((u.byterange = e).offset = t.offset); 60128 }, 60129 endlist: function endlist() { 60130 this.manifest.endList = !0; 60131 }, 60132 inf: function inf() { 60133 "mediaSequence" in this.manifest || (this.manifest.mediaSequence = 0, this.trigger("info", { 60134 message: "defaulting media sequence to zero" 60135 })), "discontinuitySequence" in this.manifest || (this.manifest.discontinuitySequence = 0, this.trigger("info", { 60136 message: "defaulting discontinuity sequence to zero" 60137 })), 0 < t.duration && (u.duration = t.duration), 0 === t.duration && (u.duration = .01, this.trigger("info", { 60138 message: "updating zero segment duration to a small value" 60139 })), this.manifest.segments = o; 60140 }, 60141 key: function key() { 60142 if (t.attributes) { 60143 if ("NONE" !== t.attributes.METHOD) { 60144 if (t.attributes.URI) { 60145 if ("urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed" === t.attributes.KEYFORMAT) { 60146 return -1 === ["SAMPLE-AES", "SAMPLE-AES-CTR", "SAMPLE-AES-CENC"].indexOf(t.attributes.METHOD) ? void this.trigger("warn", { 60147 message: "invalid key method provided for Widevine" 60148 }) : ("SAMPLE-AES-CENC" === t.attributes.METHOD && this.trigger("warn", { 60149 message: "SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead" 60150 }), "data:text/plain;base64," !== t.attributes.URI.substring(0, 23) ? void this.trigger("warn", { 60151 message: "invalid key URI provided for Widevine" 60152 }) : t.attributes.KEYID && "0x" === t.attributes.KEYID.substring(0, 2) ? void (this.manifest.contentProtection = { 60153 "com.widevine.alpha": { 60154 attributes: { 60155 schemeIdUri: t.attributes.KEYFORMAT, 60156 keyId: t.attributes.KEYID.substring(2) 60157 }, 60158 pssh: function (e) { 60159 for (var t = y.atob(e || ""), i = new Uint8Array(t.length), n = 0; n < t.length; n++) { 60160 i[n] = t.charCodeAt(n); 60161 } 60162 60163 return i; 60164 }(t.attributes.URI.split(",")[1]) 60165 } 60166 }) : void this.trigger("warn", { 60167 message: "invalid key ID provided for Widevine" 60168 })); 60169 } 60170 60171 t.attributes.METHOD || this.trigger("warn", { 60172 message: "defaulting key method to AES-128" 60173 }), s = { 60174 method: t.attributes.METHOD || "AES-128", 60175 uri: t.attributes.URI 60176 }, "undefined" != typeof t.attributes.IV && (s.iv = t.attributes.IV); 60177 } else this.trigger("warn", { 60178 message: "ignoring key declaration without URI" 60179 }); 60180 } else s = null; 60181 } else this.trigger("warn", { 60182 message: "ignoring key declaration without attribute list" 60183 }); 60184 }, 60185 "media-sequence": function mediaSequence() { 60186 isFinite(t.number) ? this.manifest.mediaSequence = t.number : this.trigger("warn", { 60187 message: "ignoring invalid media sequence: " + t.number 60188 }); 60189 }, 60190 "discontinuity-sequence": function discontinuitySequence() { 60191 isFinite(t.number) ? (this.manifest.discontinuitySequence = t.number, c = t.number) : this.trigger("warn", { 60192 message: "ignoring invalid discontinuity sequence: " + t.number 60193 }); 60194 }, 60195 "playlist-type": function playlistType() { 60196 /VOD|EVENT/.test(t.playlistType) ? this.manifest.playlistType = t.playlistType : this.trigger("warn", { 60197 message: "ignoring unknown playlist type: " + t.playlist 60198 }); 60199 }, 60200 map: function map() { 60201 r = {}, t.uri && (r.uri = t.uri), t.byterange && (r.byterange = t.byterange); 60202 }, 60203 "stream-inf": function streamInf() { 60204 this.manifest.playlists = o, this.manifest.mediaGroups = this.manifest.mediaGroups || l, t.attributes ? (u.attributes || (u.attributes = {}), cs(u.attributes, t.attributes)) : this.trigger("warn", { 60205 message: "ignoring empty stream-inf attributes" 60206 }); 60207 }, 60208 media: function media() { 60209 if (this.manifest.mediaGroups = this.manifest.mediaGroups || l, t.attributes && t.attributes.TYPE && t.attributes["GROUP-ID"] && t.attributes.NAME) { 60210 var e = this.manifest.mediaGroups[t.attributes.TYPE]; 60211 e[t.attributes["GROUP-ID"]] = e[t.attributes["GROUP-ID"]] || {}, i = e[t.attributes["GROUP-ID"]], (n = { 60212 "default": /yes/i.test(t.attributes.DEFAULT) 60213 })["default"] ? n.autoselect = !0 : n.autoselect = /yes/i.test(t.attributes.AUTOSELECT), t.attributes.LANGUAGE && (n.language = t.attributes.LANGUAGE), t.attributes.URI && (n.uri = t.attributes.URI), t.attributes["INSTREAM-ID"] && (n.instreamId = t.attributes["INSTREAM-ID"]), t.attributes.CHARACTERISTICS && (n.characteristics = t.attributes.CHARACTERISTICS), t.attributes.FORCED && (n.forced = /yes/i.test(t.attributes.FORCED)), i[t.attributes.NAME] = n; 60214 } else this.trigger("warn", { 60215 message: "ignoring incomplete or missing media group" 60216 }); 60217 }, 60218 discontinuity: function discontinuity() { 60219 c += 1, u.discontinuity = !0, this.manifest.discontinuityStarts.push(o.length); 60220 }, 60221 "program-date-time": function programDateTime() { 60222 "undefined" == typeof this.manifest.dateTimeString && (this.manifest.dateTimeString = t.dateTimeString, this.manifest.dateTimeObject = t.dateTimeObject), u.dateTimeString = t.dateTimeString, u.dateTimeObject = t.dateTimeObject; 60223 }, 60224 targetduration: function targetduration() { 60225 !isFinite(t.duration) || t.duration < 0 ? this.trigger("warn", { 60226 message: "ignoring invalid target duration: " + t.duration 60227 }) : this.manifest.targetDuration = t.duration; 60228 }, 60229 totalduration: function totalduration() { 60230 !isFinite(t.duration) || t.duration < 0 ? this.trigger("warn", { 60231 message: "ignoring invalid total duration: " + t.duration 60232 }) : this.manifest.totalDuration = t.duration; 60233 }, 60234 start: function start() { 60235 t.attributes && !isNaN(t.attributes["TIME-OFFSET"]) ? this.manifest.start = { 60236 timeOffset: t.attributes["TIME-OFFSET"], 60237 precise: t.attributes.PRECISE 60238 } : this.trigger("warn", { 60239 message: "ignoring start declaration without appropriate attribute list" 60240 }); 60241 }, 60242 "cue-out": function cueOut() { 60243 u.cueOut = t.data; 60244 }, 60245 "cue-out-cont": function cueOutCont() { 60246 u.cueOutCont = t.data; 60247 }, 60248 "cue-in": function cueIn() { 60249 u.cueIn = t.data; 60250 } 60251 })[t.tagType] || function () {}).call(a); 60252 }, 60253 uri: function uri() { 60254 u.uri = t.uri, o.push(u), !this.manifest.targetDuration || "duration" in u || (this.trigger("warn", { 60255 message: "defaulting segment duration to the target duration" 60256 }), u.duration = this.manifest.targetDuration), s && (u.key = s), u.timeline = c, r && (u.map = r), u = {}; 60257 }, 60258 comment: function comment() {}, 60259 custom: function custom() { 60260 t.segment ? (u.custom = u.custom || {}, u.custom[t.customType] = t.data) : (this.manifest.custom = this.manifest.custom || {}, this.manifest.custom[t.customType] = t.data); 60261 } 60262 })[t.type].call(a); 60263 }), e; 60264 } 60265 60266 hs(e, t); 60267 var i = e.prototype; 60268 return i.push = function (e) { 60269 this.lineStream.push(e); 60270 }, i.end = function () { 60271 this.lineStream.push("\n"); 60272 }, i.addParser = function (e) { 60273 this.parseStream.addParser(e); 60274 }, i.addTagMapper = function (e) { 60275 this.parseStream.addTagMapper(e); 60276 }, e; 60277 }(ps); 60278 60279 function vs(e) { 60280 return e && "object" == _typeof(e) && "default" in e ? e["default"] : e; 60281 } 60282 60283 var ys = vs(ls), 60284 _s = vs(y), 60285 bs = function bs(e, t) { 60286 return /^[a-z]+:/i.test(t) ? t : (/\/\//i.test(e) || (e = ys.buildAbsoluteURL(_s.location && _s.location.href || "", e)), ys.buildAbsoluteURL(e, t)); 60287 }; 60288 60289 var Ts, 60290 Ss = (Ts = y) && "object" == _typeof(Ts) && "default" in Ts ? Ts["default"] : Ts; 60291 60292 var ks = function ks(e) { 60293 for (var t = function (e) { 60294 return Ss.atob ? Ss.atob(e) : Buffer.from(e, "base64").toString("binary"); 60295 }(e), i = new Uint8Array(t.length), n = 0; n < t.length; n++) { 60296 i[n] = t.charCodeAt(n); 60297 } 60298 60299 return i; 60300 }, 60301 Cs = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, 60302 ws = new RegExp("[\\-\\.0-9" + Cs.source.slice(1, -1) + "\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"), 60303 Es = new RegExp("^" + Cs.source + ws.source + "*(?::" + Cs.source + ws.source + "*)?$"), 60304 xs = 0, 60305 As = 1, 60306 Is = 2, 60307 Ps = 3, 60308 Ls = 4, 60309 Os = 5, 60310 Ds = 6, 60311 Ns = 7; 60312 60313 function Rs() {} 60314 60315 function Us(e, t) { 60316 return t.lineNumber = e.lineNumber, t.columnNumber = e.columnNumber, t; 60317 } 60318 60319 function Ms(e, t, i, n, r, s) { 60320 for (var a, o = ++t, u = xs;;) { 60321 var l = e.charAt(o); 60322 60323 switch (l) { 60324 case "=": 60325 if (u === As) a = e.slice(t, o), u = Ps;else { 60326 if (u !== Is) throw new Error("attribute equal must after attrName"); 60327 u = Ps; 60328 } 60329 break; 60330 60331 case "'": 60332 case '"': 60333 if (u === Ps || u === As) { 60334 if (u === As && (s.warning('attribute value must after "="'), a = e.slice(t, o)), t = o + 1, !(0 < (o = e.indexOf(l, t)))) throw new Error("attribute value no end '" + l + "' match"); 60335 c = e.slice(t, o).replace(/&#?\w+;/g, r), i.add(a, c, t - 1), u = Os; 60336 } else { 60337 if (u != Ls) throw new Error('attribute value must after "="'); 60338 c = e.slice(t, o).replace(/&#?\w+;/g, r), i.add(a, c, t), s.warning('attribute "' + a + '" missed start quot(' + l + ")!!"), t = o + 1, u = Os; 60339 } 60340 60341 break; 60342 60343 case "/": 60344 switch (u) { 60345 case xs: 60346 i.setTagName(e.slice(t, o)); 60347 60348 case Os: 60349 case Ds: 60350 case Ns: 60351 u = Ns, i.closed = !0; 60352 60353 case Ls: 60354 case As: 60355 case Is: 60356 break; 60357 60358 default: 60359 throw new Error("attribute invalid close char('/')"); 60360 } 60361 60362 break; 60363 60364 case "": 60365 return s.error("unexpected end of input"), u == xs && i.setTagName(e.slice(t, o)), o; 60366 60367 case ">": 60368 switch (u) { 60369 case xs: 60370 i.setTagName(e.slice(t, o)); 60371 60372 case Os: 60373 case Ds: 60374 case Ns: 60375 break; 60376 60377 case Ls: 60378 case As: 60379 "/" === (c = e.slice(t, o)).slice(-1) && (i.closed = !0, c = c.slice(0, -1)); 60380 60381 case Is: 60382 u === Is && (c = a), u == Ls ? (s.warning('attribute "' + c + '" missed quot(")!!'), i.add(a, c.replace(/&#?\w+;/g, r), t)) : ("http://www.w3.org/1999/xhtml" === n[""] && c.match(/^(?:disabled|checked|selected)$/i) || s.warning('attribute "' + c + '" missed value!! "' + c + '" instead!!'), i.add(c, c, t)); 60383 break; 60384 60385 case Ps: 60386 throw new Error("attribute value missed!!"); 60387 } 60388 60389 return o; 60390 60391 case "Â": 60392 l = " "; 60393 60394 default: 60395 if (l <= " ") switch (u) { 60396 case xs: 60397 i.setTagName(e.slice(t, o)), u = Ds; 60398 break; 60399 60400 case As: 60401 a = e.slice(t, o), u = Is; 60402 break; 60403 60404 case Ls: 60405 var c = e.slice(t, o).replace(/&#?\w+;/g, r); 60406 s.warning('attribute "' + c + '" missed quot(")!!'), i.add(a, c, t); 60407 60408 case Os: 60409 u = Ds; 60410 } else switch (u) { 60411 case Is: 60412 i.tagName; 60413 "http://www.w3.org/1999/xhtml" === n[""] && a.match(/^(?:disabled|checked|selected)$/i) || s.warning('attribute "' + a + '" missed value!! "' + a + '" instead2!!'), i.add(a, a, t), t = o, u = As; 60414 break; 60415 60416 case Os: 60417 s.warning('attribute space is required"' + a + '"!!'); 60418 60419 case Ds: 60420 u = As, t = o; 60421 break; 60422 60423 case Ps: 60424 u = Ls, t = o; 60425 break; 60426 60427 case Ns: 60428 throw new Error("elements closed character '/' and '>' must be connected to"); 60429 } 60430 } 60431 60432 o++; 60433 } 60434 } 60435 60436 function Bs(e, t, i) { 60437 for (var n = e.tagName, r = null, s = e.length; s--;) { 60438 var a = e[s], 60439 o = a.qName, 60440 u = a.value; 60441 if (0 < (d = o.indexOf(":"))) var l = a.prefix = o.slice(0, d), 60442 c = o.slice(d + 1), 60443 h = "xmlns" === l && c;else l = null, h = "xmlns" === (c = o) && ""; 60444 a.localName = c, !1 !== h && (null == r && (r = {}, Hs(i, i = {})), i[h] = r[h] = u, a.uri = "http://www.w3.org/2000/xmlns/", t.startPrefixMapping(h, u)); 60445 } 60446 60447 for (s = e.length; s--;) { 60448 (l = (a = e[s]).prefix) && ("xml" === l && (a.uri = "http://www.w3.org/XML/1998/namespace"), "xmlns" !== l && (a.uri = i[l || ""])); 60449 } 60450 60451 var d; 60452 c = 0 < (d = n.indexOf(":")) ? (l = e.prefix = n.slice(0, d), e.localName = n.slice(d + 1)) : (l = null, e.localName = n); 60453 var p = e.uri = i[l || ""]; 60454 if (t.startElement(p, c, n, e), !e.closed) return e.currentNSMap = i, e.localNSMap = r, !0; 60455 if (t.endElement(p, c, n), r) for (l in r) { 60456 t.endPrefixMapping(l); 60457 } 60458 } 60459 60460 function js(e, t, i, n, r) { 60461 if (/^(?:script|textarea)$/i.test(i)) { 60462 var s = e.indexOf("</" + i + ">", t), 60463 a = e.substring(t + 1, s); 60464 if (/[&<]/.test(a)) return /^script$/i.test(i) || (a = a.replace(/&#?\w+;/g, n)), r.characters(a, 0, a.length), s; 60465 } 60466 60467 return t + 1; 60468 } 60469 60470 function Fs(e, t, i, n) { 60471 var r = n[i]; 60472 return null == r && ((r = e.lastIndexOf("</" + i + ">")) < t && (r = e.lastIndexOf("</" + i)), n[i] = r), r < t; 60473 } 60474 60475 function Hs(e, t) { 60476 for (var i in e) { 60477 t[i] = e[i]; 60478 } 60479 } 60480 60481 function Vs(e, t, i, n) { 60482 switch (e.charAt(t + 2)) { 60483 case "-": 60484 return "-" !== e.charAt(t + 3) ? -1 : t < (r = e.indexOf("--\x3e", t + 4)) ? (i.comment(e, t + 4, r - t - 4), r + 3) : (n.error("Unclosed comment"), -1); 60485 60486 default: 60487 if ("CDATA[" == e.substr(t + 3, 6)) { 60488 var r = e.indexOf("]]>", t + 9); 60489 return i.startCDATA(), i.characters(e, t + 9, r - t - 9), i.endCDATA(), r + 3; 60490 } 60491 60492 var s = function (e, t) { 60493 var i, 60494 n = [], 60495 r = /'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g; 60496 r.lastIndex = t, r.exec(e); 60497 60498 for (; i = r.exec(e);) { 60499 if (n.push(i), i[1]) return n; 60500 } 60501 }(e, t), 60502 a = s.length; 60503 60504 if (1 < a && /!doctype/i.test(s[0][0])) { 60505 var o = s[1][0], 60506 u = 3 < a && /^public$/i.test(s[2][0]) && s[3][0], 60507 l = 4 < a && s[4][0], 60508 c = s[a - 1]; 60509 return i.startDTD(o, u && u.replace(/^(['"])(.*?)\1$/, "$2"), l && l.replace(/^(['"])(.*?)\1$/, "$2")), i.endDTD(), c.index + c[0].length; 60510 } 60511 60512 } 60513 60514 return -1; 60515 } 60516 60517 function qs(e, t, i) { 60518 var n = e.indexOf("?>", t); 60519 60520 if (n) { 60521 var r = e.substring(t, n).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/); 60522 60523 if (r) { 60524 r[0].length; 60525 return i.processingInstruction(r[1], r[2]), n + 2; 60526 } 60527 60528 return -1; 60529 } 60530 60531 return -1; 60532 } 60533 60534 function Ws(e) {} 60535 60536 function zs(e, t) { 60537 return e.__proto__ = t, e; 60538 } 60539 60540 Rs.prototype = { 60541 parse: function parse(e, t, i) { 60542 var n = this.domBuilder; 60543 n.startDocument(), Hs(t, t = {}), function (i, e, n, r, s) { 60544 function a(e) { 60545 var t = e.slice(1, -1); 60546 return t in n ? n[t] : "#" === t.charAt(0) ? function (e) { 60547 if (65535 < e) { 60548 var t = 55296 + ((e -= 65536) >> 10), 60549 i = 56320 + (1023 & e); 60550 return String.fromCharCode(t, i); 60551 } 60552 60553 return String.fromCharCode(e); 60554 }(parseInt(t.substr(1).replace("x", "0x"))) : (s.error("entity not found:" + e), e); 60555 } 60556 60557 function t(e) { 60558 if (f < e) { 60559 var t = i.substring(f, e).replace(/&#?\w+;/g, a); 60560 h && o(f), r.characters(t, 0, e - f), f = e; 60561 } 60562 } 60563 60564 function o(e, t) { 60565 for (; l <= e && (t = c.exec(i));) { 60566 u = t.index, l = u + t[0].length, h.lineNumber++; 60567 } 60568 60569 h.columnNumber = e - u + 1; 60570 } 60571 60572 var u = 0, 60573 l = 0, 60574 c = /.*(?:\r\n?|\n)|.*$/g, 60575 h = r.locator, 60576 d = [{ 60577 currentNSMap: e 60578 }], 60579 p = {}, 60580 f = 0; 60581 60582 for (;;) { 60583 try { 60584 var m = i.indexOf("<", f); 60585 60586 if (m < 0) { 60587 if (!i.substr(f).match(/^\s*$/)) { 60588 var g = r.doc, 60589 v = g.createTextNode(i.substr(f)); 60590 g.appendChild(v), r.currentElement = v; 60591 } 60592 60593 return; 60594 } 60595 60596 switch (f < m && t(m), i.charAt(m + 1)) { 60597 case "/": 60598 var y = i.indexOf(">", m + 3), 60599 _ = i.substring(m + 2, y), 60600 b = d.pop(); 60601 60602 y < 0 ? (_ = i.substring(m + 2).replace(/[\s<].*/, ""), s.error("end tag name: " + _ + " is not complete:" + b.tagName), y = m + 1 + _.length) : _.match(/\s</) && (_ = _.replace(/[\s<].*/, ""), s.error("end tag name: " + _ + " maybe not complete"), y = m + 1 + _.length); 60603 var T = b.localNSMap, 60604 S = b.tagName == _; 60605 60606 if (S || b.tagName && b.tagName.toLowerCase() == _.toLowerCase()) { 60607 if (r.endElement(b.uri, b.localName, _), T) for (var k in T) { 60608 r.endPrefixMapping(k); 60609 } 60610 S || s.fatalError("end tag name: " + _ + " is not match the current start tagName:" + b.tagName); 60611 } else d.push(b); 60612 60613 y++; 60614 break; 60615 60616 case "?": 60617 h && o(m), y = qs(i, m, r); 60618 break; 60619 60620 case "!": 60621 h && o(m), y = Vs(i, m, r, s); 60622 break; 60623 60624 default: 60625 h && o(m); 60626 var C = new Ws(), 60627 w = d[d.length - 1].currentNSMap, 60628 E = (y = Ms(i, m, C, w, a, s), C.length); 60629 60630 if (!C.closed && Fs(i, y, C.tagName, p) && (C.closed = !0, n.nbsp || s.warning("unclosed xml attribute")), h && E) { 60631 for (var x = Us(h, {}), A = 0; A < E; A++) { 60632 var I = C[A]; 60633 o(I.offset), I.locator = Us(h, {}); 60634 } 60635 60636 r.locator = x, Bs(C, r, w) && d.push(C), r.locator = h; 60637 } else Bs(C, r, w) && d.push(C); 60638 60639 "http://www.w3.org/1999/xhtml" !== C.uri || C.closed ? y++ : y = js(i, y, C.tagName, a, r); 60640 } 60641 } catch (e) { 60642 s.error("element parse error: " + e), y = -1; 60643 } 60644 60645 f < y ? f = y : t(Math.max(m, f) + 1); 60646 } 60647 }(e, t, i, n, this.errorHandler), n.endDocument(); 60648 } 60649 }, Ws.prototype = { 60650 setTagName: function setTagName(e) { 60651 if (!Es.test(e)) throw new Error("invalid tagName:" + e); 60652 this.tagName = e; 60653 }, 60654 add: function add(e, t, i) { 60655 if (!Es.test(e)) throw new Error("invalid attribute:" + e); 60656 this[this.length++] = { 60657 qName: e, 60658 value: t, 60659 offset: i 60660 }; 60661 }, 60662 length: 0, 60663 getLocalName: function getLocalName(e) { 60664 return this[e].localName; 60665 }, 60666 getLocator: function getLocator(e) { 60667 return this[e].locator; 60668 }, 60669 getQName: function getQName(e) { 60670 return this[e].qName; 60671 }, 60672 getURI: function getURI(e) { 60673 return this[e].uri; 60674 }, 60675 getValue: function getValue(e) { 60676 return this[e].value; 60677 } 60678 }, zs({}, zs.prototype) instanceof zs || (zs = function zs(e, t) { 60679 function i() {} 60680 60681 for (t in i.prototype = t, i = new i(), e) { 60682 i[t] = e[t]; 60683 } 60684 60685 return i; 60686 }); 60687 var Gs = { 60688 XMLReader: Rs 60689 }; 60690 60691 function Xs(e, t) { 60692 for (var i in e) { 60693 t[i] = e[i]; 60694 } 60695 } 60696 60697 function Ks(e, t) { 60698 var i = e.prototype; 60699 60700 if (Object.create) { 60701 var n = Object.create(t.prototype); 60702 i.__proto__ = n; 60703 } 60704 60705 if (!(i instanceof t)) { 60706 var r = function r() {}; 60707 60708 r.prototype = t.prototype, Xs(i, r = new r()), e.prototype = i = r; 60709 } 60710 60711 i.constructor != e && (i.constructor = e); 60712 } 60713 60714 var Ys = "http://www.w3.org/1999/xhtml", 60715 $s = {}, 60716 Qs = $s.ELEMENT_NODE = 1, 60717 Js = $s.ATTRIBUTE_NODE = 2, 60718 Zs = $s.TEXT_NODE = 3, 60719 ea = $s.CDATA_SECTION_NODE = 4, 60720 ta = $s.ENTITY_REFERENCE_NODE = 5, 60721 ia = $s.ENTITY_NODE = 6, 60722 na = $s.PROCESSING_INSTRUCTION_NODE = 7, 60723 ra = $s.COMMENT_NODE = 8, 60724 sa = $s.DOCUMENT_NODE = 9, 60725 aa = $s.DOCUMENT_TYPE_NODE = 10, 60726 oa = $s.DOCUMENT_FRAGMENT_NODE = 11, 60727 ua = $s.NOTATION_NODE = 12, 60728 la = {}, 60729 ca = {}, 60730 ha = (la.INDEX_SIZE_ERR = (ca[1] = "Index size error", 1), la.DOMSTRING_SIZE_ERR = (ca[2] = "DOMString size error", 2), la.HIERARCHY_REQUEST_ERR = (ca[3] = "Hierarchy request error", 3)), 60731 da = (la.WRONG_DOCUMENT_ERR = (ca[4] = "Wrong document", 4), la.INVALID_CHARACTER_ERR = (ca[5] = "Invalid character", 5), la.NO_DATA_ALLOWED_ERR = (ca[6] = "No data allowed", 6), la.NO_MODIFICATION_ALLOWED_ERR = (ca[7] = "No modification allowed", 7), la.NOT_FOUND_ERR = (ca[8] = "Not found", 8)), 60732 pa = (la.NOT_SUPPORTED_ERR = (ca[9] = "Not supported", 9), la.INUSE_ATTRIBUTE_ERR = (ca[10] = "Attribute in use", 10)); 60733 la.INVALID_STATE_ERR = (ca[11] = "Invalid state", 11), la.SYNTAX_ERR = (ca[12] = "Syntax error", 12), la.INVALID_MODIFICATION_ERR = (ca[13] = "Invalid modification", 13), la.NAMESPACE_ERR = (ca[14] = "Invalid namespace", 14), la.INVALID_ACCESS_ERR = (ca[15] = "Invalid access", 15); 60734 60735 function fa(e, t) { 60736 if (t instanceof Error) var i = t;else i = this, Error.call(this, ca[e]), this.message = ca[e], Error.captureStackTrace && Error.captureStackTrace(this, fa); 60737 return i.code = e, t && (this.message = this.message + ": " + t), i; 60738 } 60739 60740 function ma() {} 60741 60742 function ga(e, t) { 60743 this._node = e, this._refresh = t, va(this); 60744 } 60745 60746 function va(e) { 60747 var t = e._node._inc || e._node.ownerDocument._inc; 60748 60749 if (e._inc != t) { 60750 var i = e._refresh(e._node); 60751 60752 Xa(e, "length", i.length), Xs(i, e), e._inc = t; 60753 } 60754 } 60755 60756 function ya() {} 60757 60758 function _a(e, t) { 60759 for (var i = e.length; i--;) { 60760 if (e[i] === t) return i; 60761 } 60762 } 60763 60764 function ba(e, t, i, n) { 60765 if (n ? t[_a(t, n)] = i : t[t.length++] = i, e) { 60766 var r = (i.ownerElement = e).ownerDocument; 60767 r && (n && xa(r, e, n), function (e, t, i) { 60768 e && e._inc++, "http://www.w3.org/2000/xmlns/" == i.namespaceURI && (t._nsMap[i.prefix ? i.localName : ""] = i.value); 60769 }(r, e, i)); 60770 } 60771 } 60772 60773 function Ta(e, t, i) { 60774 var n = _a(t, i); 60775 60776 if (!(0 <= n)) throw fa(da, new Error(e.tagName + "@" + i)); 60777 60778 for (var r = t.length - 1; n < r;) { 60779 t[n] = t[++n]; 60780 } 60781 60782 if (t.length = r, e) { 60783 var s = e.ownerDocument; 60784 s && (xa(s, e, i), i.ownerElement = null); 60785 } 60786 } 60787 60788 function Sa(e) { 60789 if (this._features = {}, e) for (var t in e) { 60790 this._features = e[t]; 60791 } 60792 } 60793 60794 function ka() {} 60795 60796 function Ca(e) { 60797 return ("<" == e ? "<" : ">" == e && ">") || "&" == e && "&" || '"' == e && """ || "&#" + e.charCodeAt() + ";"; 60798 } 60799 60800 function wa(e, t) { 60801 if (t(e)) return !0; 60802 if (e = e.firstChild) do { 60803 if (wa(e, t)) return !0; 60804 } while (e = e.nextSibling); 60805 } 60806 60807 function Ea() {} 60808 60809 function xa(e, t, i) { 60810 e && e._inc++, "http://www.w3.org/2000/xmlns/" == i.namespaceURI && delete t._nsMap[i.prefix ? i.localName : ""]; 60811 } 60812 60813 function Aa(e, t, i) { 60814 if (e && e._inc) { 60815 e._inc++; 60816 var n = t.childNodes; 60817 if (i) n[n.length++] = i;else { 60818 for (var r = t.firstChild, s = 0; r;) { 60819 r = (n[s++] = r).nextSibling; 60820 } 60821 60822 n.length = s; 60823 } 60824 } 60825 } 60826 60827 function Ia(e, t) { 60828 var i = t.previousSibling, 60829 n = t.nextSibling; 60830 return i ? i.nextSibling = n : e.firstChild = n, n ? n.previousSibling = i : e.lastChild = i, Aa(e.ownerDocument, e), t; 60831 } 60832 60833 function Pa(e, t, i) { 60834 var n = t.parentNode; 60835 60836 if (n && n.removeChild(t), t.nodeType === oa) { 60837 var r = t.firstChild; 60838 if (null == r) return t; 60839 var s = t.lastChild; 60840 } else r = s = t; 60841 60842 var a = i ? i.previousSibling : e.lastChild; 60843 60844 for (r.previousSibling = a, s.nextSibling = i, a ? a.nextSibling = r : e.firstChild = r, null == i ? e.lastChild = s : i.previousSibling = s; r.parentNode = e, r !== s && (r = r.nextSibling);) { 60845 ; 60846 } 60847 60848 return Aa(e.ownerDocument || e, e), t.nodeType == oa && (t.firstChild = t.lastChild = null), t; 60849 } 60850 60851 function La() { 60852 this._nsMap = {}; 60853 } 60854 60855 function Oa() {} 60856 60857 function Da() {} 60858 60859 function Na() {} 60860 60861 function Ra() {} 60862 60863 function Ua() {} 60864 60865 function Ma() {} 60866 60867 function Ba() {} 60868 60869 function ja() {} 60870 60871 function Fa() {} 60872 60873 function Ha() {} 60874 60875 function Va() {} 60876 60877 function qa() {} 60878 60879 function Wa(e, t) { 60880 var i = [], 60881 n = 9 == this.nodeType ? this.documentElement : this, 60882 r = n.prefix, 60883 s = n.namespaceURI; 60884 if (s && null == r && null == (r = n.lookupPrefix(s))) var a = [{ 60885 namespace: s, 60886 prefix: null 60887 }]; 60888 return Ga(this, i, e, t, a), i.join(""); 60889 } 60890 60891 function za(e, t, i) { 60892 var n = e.prefix || "", 60893 r = e.namespaceURI; 60894 if (!n && !r) return !1; 60895 if ("xml" === n && "http://www.w3.org/XML/1998/namespace" === r || "http://www.w3.org/2000/xmlns/" == r) return !1; 60896 60897 for (var s = i.length; s--;) { 60898 var a = i[s]; 60899 if (a.prefix == n) return a.namespace != r; 60900 } 60901 60902 return !0; 60903 } 60904 60905 function Ga(e, t, i, n, r) { 60906 if (n) { 60907 if (!(e = n(e))) return; 60908 if ("string" == typeof e) return void t.push(e); 60909 } 60910 60911 switch (e.nodeType) { 60912 case Qs: 60913 r = r || []; 60914 var s = e.attributes, 60915 a = s.length, 60916 o = e.firstChild, 60917 u = e.tagName; 60918 i = Ys === e.namespaceURI || i, t.push("<", u); 60919 60920 for (var l = 0; l < a; l++) { 60921 "xmlns" == (c = s.item(l)).prefix ? r.push({ 60922 prefix: c.localName, 60923 namespace: c.value 60924 }) : "xmlns" == c.nodeName && r.push({ 60925 prefix: "", 60926 namespace: c.value 60927 }); 60928 } 60929 60930 for (l = 0; l < a; l++) { 60931 var c; 60932 60933 if (za(c = s.item(l), 0, r)) { 60934 var h = c.prefix || "", 60935 d = c.namespaceURI, 60936 p = h ? " xmlns:" + h : " xmlns"; 60937 t.push(p, '="', d, '"'), r.push({ 60938 prefix: h, 60939 namespace: d 60940 }); 60941 } 60942 60943 Ga(c, t, i, n, r); 60944 } 60945 60946 if (za(e, 0, r)) { 60947 h = e.prefix || "", d = e.namespaceURI, p = h ? " xmlns:" + h : " xmlns"; 60948 t.push(p, '="', d, '"'), r.push({ 60949 prefix: h, 60950 namespace: d 60951 }); 60952 } 60953 60954 if (o || i && !/^(?:meta|link|img|br|hr|input)$/i.test(u)) { 60955 if (t.push(">"), i && /^script$/i.test(u)) for (; o;) { 60956 o.data ? t.push(o.data) : Ga(o, t, i, n, r), o = o.nextSibling; 60957 } else for (; o;) { 60958 Ga(o, t, i, n, r), o = o.nextSibling; 60959 } 60960 t.push("</", u, ">"); 60961 } else t.push("/>"); 60962 60963 return; 60964 60965 case sa: 60966 case oa: 60967 for (o = e.firstChild; o;) { 60968 Ga(o, t, i, n, r), o = o.nextSibling; 60969 } 60970 60971 return; 60972 60973 case Js: 60974 return t.push(" ", e.name, '="', e.value.replace(/[<&"]/g, Ca), '"'); 60975 60976 case Zs: 60977 return t.push(e.data.replace(/[<&]/g, Ca)); 60978 60979 case ea: 60980 return t.push("<![CDATA[", e.data, "]]>"); 60981 60982 case ra: 60983 return t.push("\x3c!--", e.data, "--\x3e"); 60984 60985 case aa: 60986 var f = e.publicId, 60987 m = e.systemId; 60988 if (t.push("<!DOCTYPE ", e.name), f) t.push(' PUBLIC "', f), m && "." != m && t.push('" "', m), t.push('">');else if (m && "." != m) t.push(' SYSTEM "', m, '">');else { 60989 var g = e.internalSubset; 60990 g && t.push(" [", g, "]"), t.push(">"); 60991 } 60992 return; 60993 60994 case na: 60995 return t.push("<?", e.target, " ", e.data, "?>"); 60996 60997 case ta: 60998 return t.push("&", e.nodeName, ";"); 60999 61000 default: 61001 t.push("??", e.nodeName); 61002 } 61003 } 61004 61005 function Xa(e, t, i) { 61006 e[t] = i; 61007 } 61008 61009 fa.prototype = Error.prototype, Xs(la, fa), ma.prototype = { 61010 length: 0, 61011 item: function item(e) { 61012 return this[e] || null; 61013 }, 61014 toString: function toString(e, t) { 61015 for (var i = [], n = 0; n < this.length; n++) { 61016 Ga(this[n], i, e, t); 61017 } 61018 61019 return i.join(""); 61020 } 61021 }, ga.prototype.item = function (e) { 61022 return va(this), this[e]; 61023 }, Ks(ga, ma), ya.prototype = { 61024 length: 0, 61025 item: ma.prototype.item, 61026 getNamedItem: function getNamedItem(e) { 61027 for (var t = this.length; t--;) { 61028 var i = this[t]; 61029 if (i.nodeName == e) return i; 61030 } 61031 }, 61032 setNamedItem: function setNamedItem(e) { 61033 var t = e.ownerElement; 61034 if (t && t != this._ownerElement) throw new fa(pa); 61035 var i = this.getNamedItem(e.nodeName); 61036 return ba(this._ownerElement, this, e, i), i; 61037 }, 61038 setNamedItemNS: function setNamedItemNS(e) { 61039 var t, 61040 i = e.ownerElement; 61041 if (i && i != this._ownerElement) throw new fa(pa); 61042 return t = this.getNamedItemNS(e.namespaceURI, e.localName), ba(this._ownerElement, this, e, t), t; 61043 }, 61044 removeNamedItem: function removeNamedItem(e) { 61045 var t = this.getNamedItem(e); 61046 return Ta(this._ownerElement, this, t), t; 61047 }, 61048 removeNamedItemNS: function removeNamedItemNS(e, t) { 61049 var i = this.getNamedItemNS(e, t); 61050 return Ta(this._ownerElement, this, i), i; 61051 }, 61052 getNamedItemNS: function getNamedItemNS(e, t) { 61053 for (var i = this.length; i--;) { 61054 var n = this[i]; 61055 if (n.localName == t && n.namespaceURI == e) return n; 61056 } 61057 61058 return null; 61059 } 61060 }, Sa.prototype = { 61061 hasFeature: function hasFeature(e, t) { 61062 var i = this._features[e.toLowerCase()]; 61063 61064 return !(!i || t && !(t in i)); 61065 }, 61066 createDocument: function createDocument(e, t, i) { 61067 var n = new Ea(); 61068 61069 if (n.implementation = this, n.childNodes = new ma(), (n.doctype = i) && n.appendChild(i), t) { 61070 var r = n.createElementNS(e, t); 61071 n.appendChild(r); 61072 } 61073 61074 return n; 61075 }, 61076 createDocumentType: function createDocumentType(e, t, i) { 61077 var n = new Ma(); 61078 return n.name = e, n.nodeName = e, n.publicId = t, n.systemId = i, n; 61079 } 61080 }, ka.prototype = { 61081 firstChild: null, 61082 lastChild: null, 61083 previousSibling: null, 61084 nextSibling: null, 61085 attributes: null, 61086 parentNode: null, 61087 childNodes: null, 61088 ownerDocument: null, 61089 nodeValue: null, 61090 namespaceURI: null, 61091 prefix: null, 61092 localName: null, 61093 insertBefore: function insertBefore(e, t) { 61094 return Pa(this, e, t); 61095 }, 61096 replaceChild: function replaceChild(e, t) { 61097 this.insertBefore(e, t), t && this.removeChild(t); 61098 }, 61099 removeChild: function removeChild(e) { 61100 return Ia(this, e); 61101 }, 61102 appendChild: function appendChild(e) { 61103 return this.insertBefore(e, null); 61104 }, 61105 hasChildNodes: function hasChildNodes() { 61106 return null != this.firstChild; 61107 }, 61108 cloneNode: function cloneNode(e) { 61109 return function e(t, i, n) { 61110 var r = new i.constructor(); 61111 61112 for (var s in i) { 61113 var a = i[s]; 61114 "object" != _typeof(a) && a != r[s] && (r[s] = a); 61115 } 61116 61117 i.childNodes && (r.childNodes = new ma()); 61118 r.ownerDocument = t; 61119 61120 switch (r.nodeType) { 61121 case Qs: 61122 var o = i.attributes, 61123 u = r.attributes = new ya(), 61124 l = o.length; 61125 u._ownerElement = r; 61126 61127 for (var c = 0; c < l; c++) { 61128 r.setAttributeNode(e(t, o.item(c), !0)); 61129 } 61130 61131 break; 61132 61133 case Js: 61134 n = !0; 61135 } 61136 61137 if (n) for (var h = i.firstChild; h;) { 61138 r.appendChild(e(t, h, n)), h = h.nextSibling; 61139 } 61140 return r; 61141 }(this.ownerDocument || this, this, e); 61142 }, 61143 normalize: function normalize() { 61144 for (var e = this.firstChild; e;) { 61145 var t = e.nextSibling; 61146 t && t.nodeType == Zs && e.nodeType == Zs ? (this.removeChild(t), e.appendData(t.data)) : (e.normalize(), e = t); 61147 } 61148 }, 61149 isSupported: function isSupported(e, t) { 61150 return this.ownerDocument.implementation.hasFeature(e, t); 61151 }, 61152 hasAttributes: function hasAttributes() { 61153 return 0 < this.attributes.length; 61154 }, 61155 lookupPrefix: function lookupPrefix(e) { 61156 for (var t = this; t;) { 61157 var i = t._nsMap; 61158 if (i) for (var n in i) { 61159 if (i[n] == e) return n; 61160 } 61161 t = t.nodeType == Js ? t.ownerDocument : t.parentNode; 61162 } 61163 61164 return null; 61165 }, 61166 lookupNamespaceURI: function lookupNamespaceURI(e) { 61167 for (var t = this; t;) { 61168 var i = t._nsMap; 61169 if (i && e in i) return i[e]; 61170 t = t.nodeType == Js ? t.ownerDocument : t.parentNode; 61171 } 61172 61173 return null; 61174 }, 61175 isDefaultNamespace: function isDefaultNamespace(e) { 61176 return null == this.lookupPrefix(e); 61177 } 61178 }, Xs($s, ka), Xs($s, ka.prototype), Ea.prototype = { 61179 nodeName: "#document", 61180 nodeType: sa, 61181 doctype: null, 61182 documentElement: null, 61183 _inc: 1, 61184 insertBefore: function insertBefore(e, t) { 61185 if (e.nodeType != oa) return null == this.documentElement && e.nodeType == Qs && (this.documentElement = e), Pa(this, e, t), e.ownerDocument = this, e; 61186 61187 for (var i = e.firstChild; i;) { 61188 var n = i.nextSibling; 61189 this.insertBefore(i, t), i = n; 61190 } 61191 61192 return e; 61193 }, 61194 removeChild: function removeChild(e) { 61195 return this.documentElement == e && (this.documentElement = null), Ia(this, e); 61196 }, 61197 importNode: function importNode(e, t) { 61198 return function e(t, i, n) { 61199 var r; 61200 61201 switch (i.nodeType) { 61202 case Qs: 61203 (r = i.cloneNode(!1)).ownerDocument = t; 61204 61205 case oa: 61206 break; 61207 61208 case Js: 61209 n = !0; 61210 } 61211 61212 r = r || i.cloneNode(!1); 61213 r.ownerDocument = t; 61214 r.parentNode = null; 61215 if (n) for (var s = i.firstChild; s;) { 61216 r.appendChild(e(t, s, n)), s = s.nextSibling; 61217 } 61218 return r; 61219 }(this, e, t); 61220 }, 61221 getElementById: function getElementById(t) { 61222 var i = null; 61223 return wa(this.documentElement, function (e) { 61224 if (e.nodeType == Qs && e.getAttribute("id") == t) return i = e, !0; 61225 }), i; 61226 }, 61227 createElement: function createElement(e) { 61228 var t = new La(); 61229 return t.ownerDocument = this, t.nodeName = e, t.tagName = e, t.childNodes = new ma(), (t.attributes = new ya())._ownerElement = t; 61230 }, 61231 createDocumentFragment: function createDocumentFragment() { 61232 var e = new Ha(); 61233 return e.ownerDocument = this, e.childNodes = new ma(), e; 61234 }, 61235 createTextNode: function createTextNode(e) { 61236 var t = new Na(); 61237 return t.ownerDocument = this, t.appendData(e), t; 61238 }, 61239 createComment: function createComment(e) { 61240 var t = new Ra(); 61241 return t.ownerDocument = this, t.appendData(e), t; 61242 }, 61243 createCDATASection: function createCDATASection(e) { 61244 var t = new Ua(); 61245 return t.ownerDocument = this, t.appendData(e), t; 61246 }, 61247 createProcessingInstruction: function createProcessingInstruction(e, t) { 61248 var i = new Va(); 61249 return i.ownerDocument = this, i.tagName = i.target = e, i.nodeValue = i.data = t, i; 61250 }, 61251 createAttribute: function createAttribute(e) { 61252 var t = new Oa(); 61253 return t.ownerDocument = this, t.name = e, t.nodeName = e, t.localName = e, t.specified = !0, t; 61254 }, 61255 createEntityReference: function createEntityReference(e) { 61256 var t = new Fa(); 61257 return t.ownerDocument = this, t.nodeName = e, t; 61258 }, 61259 createElementNS: function createElementNS(e, t) { 61260 var i = new La(), 61261 n = t.split(":"), 61262 r = i.attributes = new ya(); 61263 return i.childNodes = new ma(), i.ownerDocument = this, i.nodeName = t, i.tagName = t, i.namespaceURI = e, 2 == n.length ? (i.prefix = n[0], i.localName = n[1]) : i.localName = t, r._ownerElement = i; 61264 }, 61265 createAttributeNS: function createAttributeNS(e, t) { 61266 var i = new Oa(), 61267 n = t.split(":"); 61268 return i.ownerDocument = this, i.nodeName = t, i.name = t, i.namespaceURI = e, i.specified = !0, 2 == n.length ? (i.prefix = n[0], i.localName = n[1]) : i.localName = t, i; 61269 } 61270 }, Ks(Ea, ka), Ea.prototype.getElementsByTagName = (La.prototype = { 61271 nodeType: Qs, 61272 hasAttribute: function hasAttribute(e) { 61273 return null != this.getAttributeNode(e); 61274 }, 61275 getAttribute: function getAttribute(e) { 61276 var t = this.getAttributeNode(e); 61277 return t && t.value || ""; 61278 }, 61279 getAttributeNode: function getAttributeNode(e) { 61280 return this.attributes.getNamedItem(e); 61281 }, 61282 setAttribute: function setAttribute(e, t) { 61283 var i = this.ownerDocument.createAttribute(e); 61284 i.value = i.nodeValue = "" + t, this.setAttributeNode(i); 61285 }, 61286 removeAttribute: function removeAttribute(e) { 61287 var t = this.getAttributeNode(e); 61288 t && this.removeAttributeNode(t); 61289 }, 61290 appendChild: function appendChild(e) { 61291 return e.nodeType === oa ? this.insertBefore(e, null) : function (e, t) { 61292 var i = t.parentNode; 61293 61294 if (i) { 61295 var n = e.lastChild; 61296 i.removeChild(t); 61297 n = e.lastChild; 61298 } 61299 61300 return n = e.lastChild, t.parentNode = e, t.previousSibling = n, t.nextSibling = null, n ? n.nextSibling = t : e.firstChild = t, e.lastChild = t, Aa(e.ownerDocument, e, t), t; 61301 }(this, e); 61302 }, 61303 setAttributeNode: function setAttributeNode(e) { 61304 return this.attributes.setNamedItem(e); 61305 }, 61306 setAttributeNodeNS: function setAttributeNodeNS(e) { 61307 return this.attributes.setNamedItemNS(e); 61308 }, 61309 removeAttributeNode: function removeAttributeNode(e) { 61310 return this.attributes.removeNamedItem(e.nodeName); 61311 }, 61312 removeAttributeNS: function removeAttributeNS(e, t) { 61313 var i = this.getAttributeNodeNS(e, t); 61314 i && this.removeAttributeNode(i); 61315 }, 61316 hasAttributeNS: function hasAttributeNS(e, t) { 61317 return null != this.getAttributeNodeNS(e, t); 61318 }, 61319 getAttributeNS: function getAttributeNS(e, t) { 61320 var i = this.getAttributeNodeNS(e, t); 61321 return i && i.value || ""; 61322 }, 61323 setAttributeNS: function setAttributeNS(e, t, i) { 61324 var n = this.ownerDocument.createAttributeNS(e, t); 61325 n.value = n.nodeValue = "" + i, this.setAttributeNode(n); 61326 }, 61327 getAttributeNodeNS: function getAttributeNodeNS(e, t) { 61328 return this.attributes.getNamedItemNS(e, t); 61329 }, 61330 getElementsByTagName: function getElementsByTagName(n) { 61331 return new ga(this, function (t) { 61332 var i = []; 61333 return wa(t, function (e) { 61334 e === t || e.nodeType != Qs || "*" !== n && e.tagName != n || i.push(e); 61335 }), i; 61336 }); 61337 }, 61338 getElementsByTagNameNS: function getElementsByTagNameNS(n, r) { 61339 return new ga(this, function (t) { 61340 var i = []; 61341 return wa(t, function (e) { 61342 e === t || e.nodeType !== Qs || "*" !== n && e.namespaceURI !== n || "*" !== r && e.localName != r || i.push(e); 61343 }), i; 61344 }); 61345 } 61346 }).getElementsByTagName, Ea.prototype.getElementsByTagNameNS = La.prototype.getElementsByTagNameNS, Ks(La, ka), Oa.prototype.nodeType = Js, Ks(Oa, ka), Da.prototype = { 61347 data: "", 61348 substringData: function substringData(e, t) { 61349 return this.data.substring(e, e + t); 61350 }, 61351 appendData: function appendData(e) { 61352 e = this.data + e, this.nodeValue = this.data = e, this.length = e.length; 61353 }, 61354 insertData: function insertData(e, t) { 61355 this.replaceData(e, 0, t); 61356 }, 61357 appendChild: function appendChild(e) { 61358 throw new Error(ca[ha]); 61359 }, 61360 deleteData: function deleteData(e, t) { 61361 this.replaceData(e, t, ""); 61362 }, 61363 replaceData: function replaceData(e, t, i) { 61364 i = this.data.substring(0, e) + i + this.data.substring(e + t), this.nodeValue = this.data = i, this.length = i.length; 61365 } 61366 }, Ks(Da, ka), Na.prototype = { 61367 nodeName: "#text", 61368 nodeType: Zs, 61369 splitText: function splitText(e) { 61370 var t = this.data, 61371 i = t.substring(e); 61372 t = t.substring(0, e), this.data = this.nodeValue = t, this.length = t.length; 61373 var n = this.ownerDocument.createTextNode(i); 61374 return this.parentNode && this.parentNode.insertBefore(n, this.nextSibling), n; 61375 } 61376 }, Ks(Na, Da), Ra.prototype = { 61377 nodeName: "#comment", 61378 nodeType: ra 61379 }, Ks(Ra, Da), Ua.prototype = { 61380 nodeName: "#cdata-section", 61381 nodeType: ea 61382 }, Ks(Ua, Da), Ma.prototype.nodeType = aa, Ks(Ma, ka), Ba.prototype.nodeType = ua, Ks(Ba, ka), ja.prototype.nodeType = ia, Ks(ja, ka), Fa.prototype.nodeType = ta, Ks(Fa, ka), Ha.prototype.nodeName = "#document-fragment", Ha.prototype.nodeType = oa, Ks(Ha, ka), Va.prototype.nodeType = na, Ks(Va, ka), qa.prototype.serializeToString = function (e, t, i) { 61383 return Wa.call(e, t, i); 61384 }, ka.prototype.toString = Wa; 61385 61386 try { 61387 if (Object.defineProperty) { 61388 Object.defineProperty(ga.prototype, "length", { 61389 get: function get() { 61390 return va(this), this.$$length; 61391 } 61392 }), Object.defineProperty(ka.prototype, "textContent", { 61393 get: function get() { 61394 return function e(t) { 61395 switch (t.nodeType) { 61396 case Qs: 61397 case oa: 61398 var i = []; 61399 61400 for (t = t.firstChild; t;) { 61401 7 !== t.nodeType && 8 !== t.nodeType && i.push(e(t)), t = t.nextSibling; 61402 } 61403 61404 return i.join(""); 61405 61406 default: 61407 return t.nodeValue; 61408 } 61409 }(this); 61410 }, 61411 set: function set(e) { 61412 switch (this.nodeType) { 61413 case Qs: 61414 case oa: 61415 for (; this.firstChild;) { 61416 this.removeChild(this.firstChild); 61417 } 61418 61419 (e || String(e)) && this.appendChild(this.ownerDocument.createTextNode(e)); 61420 break; 61421 61422 default: 61423 this.data = e, this.value = e, this.nodeValue = e; 61424 } 61425 } 61426 }), Xa = function Xa(e, t, i) { 61427 e["$$" + t] = i; 61428 }; 61429 } 61430 } catch (e) {} 61431 61432 function Ka(e) { 61433 return !!e && "object" == _typeof(e); 61434 } 61435 61436 function Ya() { 61437 for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) { 61438 t[i] = arguments[i]; 61439 } 61440 61441 return t.reduce(function (t, i) { 61442 return Object.keys(i).forEach(function (e) { 61443 Array.isArray(t[e]) && Array.isArray(i[e]) ? t[e] = t[e].concat(i[e]) : Ka(t[e]) && Ka(i[e]) ? t[e] = Ya(t[e], i[e]) : t[e] = i[e]; 61444 }), t; 61445 }, {}); 61446 } 61447 61448 function $a(e) { 61449 return e.reduce(function (e, t) { 61450 return e.concat(t); 61451 }, []); 61452 } 61453 61454 function Qa(e) { 61455 if (!e.length) return []; 61456 61457 for (var t = [], i = 0; i < e.length; i++) { 61458 t.push(e[i]); 61459 } 61460 61461 return t; 61462 } 61463 61464 function Ja(e) { 61465 var t = e.baseUrl, 61466 i = void 0 === t ? "" : t, 61467 n = e.source, 61468 r = void 0 === n ? "" : n, 61469 s = e.range, 61470 a = void 0 === s ? "" : s, 61471 o = e.indexRange, 61472 u = void 0 === o ? "" : o, 61473 l = { 61474 uri: r, 61475 resolvedUri: bs(i || "", r) 61476 }; 61477 61478 if (a || u) { 61479 var c = (a || u).split("-"), 61480 h = parseInt(c[0], 10), 61481 d = parseInt(c[1], 10); 61482 l.byterange = { 61483 length: d - h + 1, 61484 offset: h 61485 }; 61486 } 61487 61488 return l; 61489 } 61490 61491 function Za(e) { 61492 var t = e.type, 61493 i = void 0 === t ? "static" : t, 61494 n = e.duration, 61495 r = e.timescale, 61496 s = void 0 === r ? 1 : r, 61497 a = e.sourceDuration, 61498 o = Vo[i](e), 61499 u = function (e, t) { 61500 for (var i = [], n = e; n < t; n++) { 61501 i.push(n); 61502 } 61503 61504 return i; 61505 }(o.start, o.end).map(function (o) { 61506 return function (e, t) { 61507 var i = o.duration, 61508 n = o.timescale, 61509 r = void 0 === n ? 1 : n, 61510 s = o.periodIndex, 61511 a = o.startNumber; 61512 return { 61513 number: (void 0 === a ? 1 : a) + e, 61514 duration: i / r, 61515 timeline: s, 61516 time: t * i 61517 }; 61518 }; 61519 }(e)); 61520 61521 if ("static" === i) { 61522 var l = u.length - 1; 61523 u[l].duration = a - n / s * l; 61524 } 61525 61526 return u; 61527 } 61528 61529 function eo(e) { 61530 var t = e.baseUrl, 61531 i = e.initialization, 61532 n = void 0 === i ? {} : i, 61533 r = e.sourceDuration, 61534 s = e.timescale, 61535 a = void 0 === s ? 1 : s, 61536 o = e.indexRange, 61537 u = void 0 === o ? "" : o, 61538 l = e.duration; 61539 if (!t) throw new Error(jo); 61540 var c = Ja({ 61541 baseUrl: t, 61542 source: n.sourceURL, 61543 range: n.range 61544 }), 61545 h = Ja({ 61546 baseUrl: t, 61547 source: t, 61548 indexRange: u 61549 }); 61550 61551 if (h.map = c, l) { 61552 var d = Za(e); 61553 d.length && (h.duration = d[0].duration, h.timeline = d[0].timeline); 61554 } else r && (h.duration = r / a, h.timeline = 0); 61555 61556 return h.number = 0, [h]; 61557 } 61558 61559 function to(e, t, i) { 61560 for (var n = e.sidx.map ? e.sidx.map : null, r = e.sidx.duration, s = e.timeline || 0, a = e.sidx.byterange, o = a.offset + a.length, u = t.timescale, l = t.references.filter(function (e) { 61561 return 1 !== e.referenceType; 61562 }), c = [], h = o + t.firstOffset, d = 0; d < l.length; d++) { 61563 var p = t.references[d], 61564 f = p.referencedSize, 61565 m = p.subsegmentDuration, 61566 g = eo({ 61567 baseUrl: i, 61568 timescale: u, 61569 timeline: s, 61570 periodIndex: s, 61571 duration: m, 61572 sourceDuration: r, 61573 indexRange: h + "-" + (h + f - 1) 61574 })[0]; 61575 n && (g.map = n), c.push(g), h += f; 61576 } 61577 61578 return e.segments = c, e; 61579 } 61580 61581 function io(e) { 61582 return function (t) { 61583 return Object.keys(t).map(function (e) { 61584 return t[e]; 61585 }); 61586 }(e.reduce(function (e, t) { 61587 var i, 61588 n = t.attributes.id + (t.attributes.lang || ""); 61589 e[n] ? (t.segments[0] && (t.segments[0].discontinuity = !0), (i = e[n].segments).push.apply(i, t.segments), t.attributes.contentProtection && (e[n].attributes.contentProtection = t.attributes.contentProtection)) : e[n] = t; 61590 return e; 61591 }, {})).map(function (e) { 61592 return e.discontinuityStarts = function (e, n) { 61593 return e.reduce(function (e, t, i) { 61594 return t[n] && e.push(i), e; 61595 }, []); 61596 }(e.segments, "discontinuity"), e; 61597 }); 61598 } 61599 61600 function no(e, t) { 61601 if (void 0 === t && (t = {}), !Object.keys(t).length) return e; 61602 61603 for (var i in e) { 61604 var n = e[i]; 61605 61606 if (n.sidx) { 61607 var r = n.sidx.uri + "-" + (a = n.sidx.byterange, void 0, o = a.offset + a.length - 1, a.offset + "-" + o), 61608 s = t[r] && t[r].sidx; 61609 n.sidx && s && to(n, s, n.sidx.resolvedUri); 61610 } 61611 } 61612 61613 var a, o; 61614 return e; 61615 } 61616 61617 function ro(e) { 61618 var t, 61619 i = e.attributes, 61620 n = e.segments, 61621 r = e.sidx, 61622 s = { 61623 attributes: (t = { 61624 NAME: i.id, 61625 AUDIO: "audio", 61626 SUBTITLES: "subs", 61627 RESOLUTION: { 61628 width: i.width, 61629 height: i.height 61630 }, 61631 CODECS: i.codecs, 61632 BANDWIDTH: i.bandwidth 61633 }, t["PROGRAM-ID"] = 1, t), 61634 uri: "", 61635 endList: "static" === (i.type || "static"), 61636 timeline: i.periodIndex, 61637 resolvedUri: "", 61638 targetDuration: i.duration, 61639 segments: n, 61640 mediaSequence: n.length ? n[0].number : 1 61641 }; 61642 return i.contentProtection && (s.contentProtection = i.contentProtection), r && (s.sidx = r), s; 61643 } 61644 61645 function so(e, t) { 61646 var i; 61647 if (void 0 === t && (t = {}), !e.length) return {}; 61648 var n = e[0].attributes, 61649 r = n.sourceDuration, 61650 s = n.type, 61651 a = void 0 === s ? "static" : s, 61652 o = n.suggestedPresentationDelay, 61653 u = n.minimumUpdatePeriod, 61654 l = void 0 === u ? 0 : u, 61655 c = io(e.filter(function (e) { 61656 var t = e.attributes; 61657 return "video/mp4" === t.mimeType || "video" === t.contentType; 61658 })).map(ro), 61659 h = io(e.filter(function (e) { 61660 var t = e.attributes; 61661 return "audio/mp4" === t.mimeType || "audio" === t.contentType; 61662 })), 61663 d = e.filter(function (e) { 61664 var t = e.attributes; 61665 return "text/vtt" === t.mimeType || "text" === t.contentType; 61666 }), 61667 p = { 61668 allowCache: !0, 61669 discontinuityStarts: [], 61670 segments: [], 61671 endList: !0, 61672 mediaGroups: (i = { 61673 AUDIO: {}, 61674 VIDEO: {} 61675 }, i["CLOSED-CAPTIONS"] = {}, i.SUBTITLES = {}, i), 61676 uri: "", 61677 duration: r, 61678 playlists: no(c, t), 61679 minimumUpdatePeriod: 1e3 * l 61680 }; 61681 return "dynamic" === a && (p.suggestedPresentationDelay = o), h.length && (p.mediaGroups.AUDIO.audio = function (e, a) { 61682 var o; 61683 void 0 === a && (a = {}); 61684 var t = e.reduce(function (e, t) { 61685 var i = t.attributes.role && t.attributes.role.value || "", 61686 n = t.attributes.lang || "", 61687 r = "main"; 61688 61689 if (n) { 61690 var s = i ? " (" + i + ")" : ""; 61691 r = t.attributes.lang + s; 61692 } 61693 61694 return e[r] && e[r].playlists[0].attributes.BANDWIDTH > t.attributes.bandwidth || (e[r] = { 61695 language: n, 61696 autoselect: !0, 61697 "default": "main" === i, 61698 playlists: no([function (e) { 61699 var t, 61700 i = e.attributes, 61701 n = e.segments, 61702 r = e.sidx, 61703 s = { 61704 attributes: (t = { 61705 NAME: i.id, 61706 BANDWIDTH: i.bandwidth, 61707 CODECS: i.codecs 61708 }, t["PROGRAM-ID"] = 1, t), 61709 uri: "", 61710 endList: "static" === (i.type || "static"), 61711 timeline: i.periodIndex, 61712 resolvedUri: "", 61713 targetDuration: i.duration, 61714 segments: n, 61715 mediaSequence: n.length ? n[0].number : 1 61716 }; 61717 return i.contentProtection && (s.contentProtection = i.contentProtection), r && (s.sidx = r), s; 61718 }(t)], a), 61719 uri: "" 61720 }, "undefined" == typeof o && "main" === i && ((o = t)["default"] = !0)), e; 61721 }, {}); 61722 o || (t[Object.keys(t)[0]]["default"] = !0); 61723 return t; 61724 }(h, t)), d.length && (p.mediaGroups.SUBTITLES.subs = function (e, n) { 61725 return void 0 === n && (n = {}), e.reduce(function (e, t) { 61726 var i = t.attributes.lang || "text"; 61727 return e[i] || (e[i] = { 61728 language: i, 61729 "default": !1, 61730 autoselect: !1, 61731 playlists: no([function (e) { 61732 var t, 61733 i = e.attributes, 61734 n = e.segments; 61735 return "undefined" == typeof n && (n = [{ 61736 uri: i.baseUrl, 61737 timeline: i.periodIndex, 61738 resolvedUri: i.baseUrl || "", 61739 duration: i.sourceDuration, 61740 number: 0 61741 }], i.duration = i.sourceDuration), { 61742 attributes: (t = { 61743 NAME: i.id, 61744 BANDWIDTH: i.bandwidth 61745 }, t["PROGRAM-ID"] = 1, t), 61746 uri: "", 61747 endList: "static" === (i.type || "static"), 61748 timeline: i.periodIndex, 61749 resolvedUri: i.baseUrl || "", 61750 targetDuration: i.duration, 61751 segments: n, 61752 mediaSequence: n.length ? n[0].number : 1 61753 }; 61754 }(t)], n), 61755 uri: "" 61756 }), e; 61757 }, {}); 61758 }(d, t)), p; 61759 } 61760 61761 function ao(e, t) { 61762 for (var i, n, r, s, a, o, u, l, c, h, d, p, f = e.type, m = void 0 === f ? "static" : f, g = e.minimumUpdatePeriod, v = void 0 === g ? 0 : g, y = e.media, _ = void 0 === y ? "" : y, b = e.sourceDuration, T = e.timescale, S = void 0 === T ? 1 : T, k = e.startNumber, C = void 0 === k ? 1 : k, w = e.periodIndex, E = [], x = -1, A = 0; A < t.length; A++) { 61763 var I = t[A], 61764 P = I.d, 61765 L = I.r || 0, 61766 O = I.t || 0; 61767 x < 0 && (x = O), O && x < O && (x = O); 61768 var D = void 0; 61769 61770 if (L < 0) { 61771 var N = A + 1; 61772 D = N === t.length ? "dynamic" === m && 0 < v && 0 < _.indexOf("$Number$") ? (n = x, r = P, void 0, s = (i = e).NOW, a = i.clientOffset, o = i.availabilityStartTime, u = i.timescale, l = void 0 === u ? 1 : u, c = i.start, h = void 0 === c ? 0 : c, d = i.minimumUpdatePeriod, p = (s + a) / 1e3 + (void 0 === d ? 0 : d) - (o + h), Math.ceil((p * l - n) / r)) : (b * S - x) / P : (t[N].t - x) / P; 61773 } else D = L + 1; 61774 61775 for (var R = C + E.length + D, U = C + E.length; U < R;) { 61776 E.push({ 61777 number: U, 61778 duration: P / S, 61779 time: x, 61780 timeline: w 61781 }), x += P, U++; 61782 } 61783 } 61784 61785 return E; 61786 } 61787 61788 function oo(e, t) { 61789 return e.replace(qo, function (s) { 61790 return function (e, t, i, n) { 61791 if ("$$" === e) return "$"; 61792 if ("undefined" == typeof s[t]) return e; 61793 var r = "" + s[t]; 61794 return "RepresentationID" === t ? r : (n = i ? parseInt(n, 10) : 1) <= r.length ? r : new Array(n - r.length + 1).join("0") + r; 61795 }; 61796 }(t)); 61797 } 61798 61799 function uo(i, e) { 61800 var n = { 61801 RepresentationID: i.id, 61802 Bandwidth: i.bandwidth || 0 61803 }, 61804 t = i.initialization, 61805 r = void 0 === t ? { 61806 sourceURL: "", 61807 range: "" 61808 } : t, 61809 s = Ja({ 61810 baseUrl: i.baseUrl, 61811 source: oo(r.sourceURL, n), 61812 range: r.range 61813 }); 61814 return function (e, t) { 61815 return e.duration || t ? e.duration ? Za(e) : ao(e, t) : [{ 61816 number: e.startNumber || 1, 61817 duration: e.sourceDuration, 61818 time: 0, 61819 timeline: e.periodIndex 61820 }]; 61821 }(i, e).map(function (e) { 61822 n.Number = e.number, n.Time = e.time; 61823 var t = oo(i.media || "", n); 61824 return { 61825 uri: t, 61826 timeline: e.timeline, 61827 duration: e.duration, 61828 resolvedUri: bs(i.baseUrl || "", t), 61829 map: s, 61830 number: e.number 61831 }; 61832 }); 61833 } 61834 61835 function lo(t, e) { 61836 var i = t.duration, 61837 n = t.segmentUrls, 61838 r = void 0 === n ? [] : n; 61839 if (!i && !e || i && e) throw new Error(Fo); 61840 var s, 61841 a = r.map(function (e) { 61842 return function (e, t) { 61843 var i = e.baseUrl, 61844 n = e.initialization, 61845 r = void 0 === n ? {} : n, 61846 s = Ja({ 61847 baseUrl: i, 61848 source: r.sourceURL, 61849 range: r.range 61850 }), 61851 a = Ja({ 61852 baseUrl: i, 61853 source: t.media, 61854 range: t.mediaRange 61855 }); 61856 return a.map = s, a; 61857 }(t, e); 61858 }); 61859 return i && (s = Za(t)), e && (s = ao(t, e)), s.map(function (e, t) { 61860 if (a[t]) { 61861 var i = a[t]; 61862 return i.timeline = e.timeline, i.duration = e.duration, i.number = e.number, i; 61863 } 61864 }).filter(function (e) { 61865 return e; 61866 }); 61867 } 61868 61869 function co(e) { 61870 var t, 61871 i, 61872 n = e.attributes, 61873 r = e.segmentInfo; 61874 r.template ? (i = uo, t = Ya(n, r.template)) : r.base ? (i = eo, t = Ya(n, r.base)) : r.list && (i = lo, t = Ya(n, r.list)); 61875 var s = { 61876 attributes: n 61877 }; 61878 if (!i) return s; 61879 var a = i(t, r.timeline); 61880 61881 if (t.duration) { 61882 var o = t, 61883 u = o.duration, 61884 l = o.timescale, 61885 c = void 0 === l ? 1 : l; 61886 t.duration = u / c; 61887 } else a.length ? t.duration = a.reduce(function (e, t) { 61888 return Math.max(e, Math.ceil(t.duration)); 61889 }, 0) : t.duration = 0; 61890 61891 return s.attributes = t, s.segments = a, r.base && t.indexRange && (s.sidx = a[0], s.segments = []), s; 61892 } 61893 61894 function ho(e, t) { 61895 return Qa(e.childNodes).filter(function (e) { 61896 return e.tagName === t; 61897 }); 61898 } 61899 61900 function po(e) { 61901 return e.textContent.trim(); 61902 } 61903 61904 function fo(e) { 61905 var t = /P(?:(\d*)Y)?(?:(\d*)M)?(?:(\d*)D)?(?:T(?:(\d*)H)?(?:(\d*)M)?(?:([\d.]*)S)?)?/.exec(e); 61906 if (!t) return 0; 61907 var i = t.slice(1), 61908 n = i[0], 61909 r = i[1], 61910 s = i[2], 61911 a = i[3], 61912 o = i[4], 61913 u = i[5]; 61914 return 31536e3 * parseFloat(n || 0) + 2592e3 * parseFloat(r || 0) + 86400 * parseFloat(s || 0) + 3600 * parseFloat(a || 0) + 60 * parseFloat(o || 0) + parseFloat(u || 0); 61915 } 61916 61917 function mo(e) { 61918 return e && e.attributes ? Qa(e.attributes).reduce(function (e, t) { 61919 var i = Wo[t.name] || Wo.DEFAULT; 61920 return e[t.name] = i(t.value), e; 61921 }, {}) : {}; 61922 } 61923 61924 function go(e, i) { 61925 return i.length ? $a(e.map(function (t) { 61926 return i.map(function (e) { 61927 return bs(t, po(e)); 61928 }); 61929 })) : e; 61930 } 61931 61932 function vo(e) { 61933 var t = ho(e, "SegmentTemplate")[0], 61934 i = ho(e, "SegmentList")[0], 61935 n = i && ho(i, "SegmentURL").map(function (e) { 61936 return Ya({ 61937 tag: "SegmentURL" 61938 }, mo(e)); 61939 }), 61940 r = ho(e, "SegmentBase")[0], 61941 s = i || t, 61942 a = s && ho(s, "SegmentTimeline")[0], 61943 o = i || r || t, 61944 u = o && ho(o, "Initialization")[0], 61945 l = t && mo(t); 61946 l && u ? l.initialization = u && mo(u) : l && l.initialization && (l.initialization = { 61947 sourceURL: l.initialization 61948 }); 61949 var c = { 61950 template: l, 61951 timeline: a && ho(a, "S").map(function (e) { 61952 return mo(e); 61953 }), 61954 list: i && Ya(mo(i), { 61955 segmentUrls: n, 61956 initialization: mo(u) 61957 }), 61958 base: r && Ya(mo(r), { 61959 initialization: mo(u) 61960 }) 61961 }; 61962 return Object.keys(c).forEach(function (e) { 61963 c[e] || delete c[e]; 61964 }), c; 61965 } 61966 61967 function yo(c, h, d) { 61968 return function (e) { 61969 var t = mo(e), 61970 i = go(h, ho(e, "BaseURL")), 61971 n = ho(e, "Role")[0], 61972 r = { 61973 role: mo(n) 61974 }, 61975 s = Ya(c, t, r), 61976 a = function (e) { 61977 return e.reduce(function (e, t) { 61978 var i = mo(t), 61979 n = zo[i.schemeIdUri]; 61980 61981 if (n) { 61982 e[n] = { 61983 attributes: i 61984 }; 61985 var r = ho(t, "cenc:pssh")[0]; 61986 61987 if (r) { 61988 var s = po(r), 61989 a = s && ks(s); 61990 e[n].pssh = a; 61991 } 61992 } 61993 61994 return e; 61995 }, {}); 61996 }(ho(e, "ContentProtection")); 61997 61998 Object.keys(a).length && (s = Ya(s, { 61999 contentProtection: a 62000 })); 62001 var o = vo(e), 62002 u = ho(e, "Representation"), 62003 l = Ya(d, o); 62004 return $a(u.map(function (s, a, o) { 62005 return function (e) { 62006 var t = ho(e, "BaseURL"), 62007 i = go(a, t), 62008 n = Ya(s, mo(e)), 62009 r = vo(e); 62010 return i.map(function (e) { 62011 return { 62012 segmentInfo: Ya(o, r), 62013 attributes: Ya(n, { 62014 baseUrl: e 62015 }) 62016 }; 62017 }); 62018 }; 62019 }(s, i, l))); 62020 }; 62021 } 62022 62023 function _o(e, t) { 62024 void 0 === t && (t = {}); 62025 var i = t, 62026 n = i.manifestUri, 62027 r = void 0 === n ? "" : n, 62028 s = i.NOW, 62029 a = void 0 === s ? Date.now() : s, 62030 o = i.clientOffset, 62031 u = void 0 === o ? 0 : o, 62032 l = ho(e, "Period"); 62033 if (!l.length) throw new Error(Uo); 62034 var c = mo(e), 62035 h = go([r], ho(e, "BaseURL")); 62036 return c.sourceDuration = c.mediaPresentationDuration || 0, c.NOW = a, c.clientOffset = u, $a(l.map(function (l, c) { 62037 return function (e, t) { 62038 var i = go(c, ho(e, "BaseURL")), 62039 n = mo(e), 62040 r = parseInt(n.id, 10), 62041 s = y.isNaN(r) ? t : r, 62042 a = Ya(l, { 62043 periodIndex: s 62044 }), 62045 o = ho(e, "AdaptationSet"), 62046 u = vo(e); 62047 return $a(o.map(yo(a, i, u))); 62048 }; 62049 }(c, h))); 62050 } 62051 62052 function bo(e) { 62053 if ("" === e) throw new Error(Mo); 62054 var t = new Ro().parseFromString(e, "application/xml"), 62055 i = t && "MPD" === t.documentElement.tagName ? t.documentElement : null; 62056 if (!i || i && 0 < i.getElementsByTagName("parsererror").length) throw new Error(Bo); 62057 return i; 62058 } 62059 62060 function To(e, t) { 62061 return void 0 === t && (t = {}), so(function (e) { 62062 return e.map(co); 62063 }(_o(bo(e), t)), t.sidxMapping); 62064 } 62065 62066 function So(e) { 62067 return function (e) { 62068 var t = ho(e, "UTCTiming")[0]; 62069 if (!t) return null; 62070 var i = mo(t); 62071 62072 switch (i.schemeIdUri) { 62073 case "urn:mpeg:dash:utc:http-head:2014": 62074 case "urn:mpeg:dash:utc:http-head:2012": 62075 i.method = "HEAD"; 62076 break; 62077 62078 case "urn:mpeg:dash:utc:http-xsdate:2014": 62079 case "urn:mpeg:dash:utc:http-iso:2014": 62080 case "urn:mpeg:dash:utc:http-xsdate:2012": 62081 case "urn:mpeg:dash:utc:http-iso:2012": 62082 i.method = "GET"; 62083 break; 62084 62085 case "urn:mpeg:dash:utc:direct:2014": 62086 case "urn:mpeg:dash:utc:direct:2012": 62087 i.method = "DIRECT", i.value = Date.parse(i.value); 62088 break; 62089 62090 case "urn:mpeg:dash:utc:http-ntp:2014": 62091 case "urn:mpeg:dash:utc:ntp:2014": 62092 case "urn:mpeg:dash:utc:sntp:2014": 62093 default: 62094 throw new Error(Ho); 62095 } 62096 62097 return i; 62098 }(bo(e)); 62099 } 62100 62101 function ko(e) { 62102 return new Date(1e3 * e - 20828448e5); 62103 } 62104 62105 function Co(e) { 62106 return { 62107 isLeading: (12 & e[0]) >>> 2, 62108 dependsOn: 3 & e[0], 62109 isDependedOn: (192 & e[1]) >>> 6, 62110 hasRedundancy: (48 & e[1]) >>> 4, 62111 paddingValue: (14 & e[1]) >>> 1, 62112 isNonSyncSample: 1 & e[1], 62113 degradationPriority: e[2] << 8 | e[3] 62114 }; 62115 } 62116 62117 function wo(e) { 62118 var t = ""; 62119 return t += String.fromCharCode(e[0]), t += String.fromCharCode(e[1]), t += String.fromCharCode(e[2]), t += String.fromCharCode(e[3]); 62120 } 62121 62122 var Eo, 62123 _xo, 62124 Ao, 62125 Io, 62126 Po, 62127 Lo, 62128 Oo, 62129 Do = { 62130 DOMImplementation: Sa, 62131 XMLSerializer: qa 62132 }, 62133 No = t(function (e, t) { 62134 function i(e) { 62135 this.options = e || { 62136 locator: {} 62137 }; 62138 } 62139 62140 function l() { 62141 this.cdata = !1; 62142 } 62143 62144 function c(e, t) { 62145 t.lineNumber = e.lineNumber, t.columnNumber = e.columnNumber; 62146 } 62147 62148 function h(e) { 62149 if (e) return "\n@" + (e.systemId || "") + "#[line:" + e.lineNumber + ",col:" + e.columnNumber + "]"; 62150 } 62151 62152 function r(e, t, i) { 62153 return "string" == typeof e ? e.substr(t, i) : e.length >= t + i || t ? new java.lang.String(e, t, i) + "" : e; 62154 } 62155 62156 function d(e, t) { 62157 e.currentElement ? e.currentElement.appendChild(t) : e.doc.appendChild(t); 62158 } 62159 62160 i.prototype.parseFromString = function (e, t) { 62161 var i = this.options, 62162 n = new p(), 62163 r = i.domBuilder || new l(), 62164 s = i.errorHandler, 62165 a = i.locator, 62166 o = i.xmlns || {}, 62167 u = { 62168 lt: "<", 62169 gt: ">", 62170 amp: "&", 62171 quot: '"', 62172 apos: "'" 62173 }; 62174 return a && r.setDocumentLocator(a), n.errorHandler = function (n, e, r) { 62175 if (!n) { 62176 if (e instanceof l) return e; 62177 n = e; 62178 } 62179 62180 var s = {}, 62181 a = n instanceof Function; 62182 62183 function t(t) { 62184 var i = n[t]; 62185 !i && a && (i = 2 == n.length ? function (e) { 62186 n(t, e); 62187 } : n), s[t] = i && function (e) { 62188 i("[xmldom " + t + "]\t" + e + h(r)); 62189 } || function () {}; 62190 } 62191 62192 return r = r || {}, t("warning"), t("error"), t("fatalError"), s; 62193 }(s, r, a), n.domBuilder = i.domBuilder || r, /\/x?html?$/.test(t) && (u.nbsp = " ", u.copy = "©", o[""] = "http://www.w3.org/1999/xhtml"), o.xml = o.xml || "http://www.w3.org/XML/1998/namespace", e ? n.parse(e, o, u) : n.errorHandler.error("invalid doc source"), r.doc; 62194 }, l.prototype = { 62195 startDocument: function startDocument() { 62196 this.doc = new n().createDocument(null, null, null), this.locator && (this.doc.documentURI = this.locator.systemId); 62197 }, 62198 startElement: function startElement(e, t, i, n) { 62199 var r = this.doc, 62200 s = r.createElementNS(e, i || t), 62201 a = n.length; 62202 d(this, s), this.currentElement = s, this.locator && c(this.locator, s); 62203 62204 for (var o = 0; o < a; o++) { 62205 e = n.getURI(o); 62206 var u = n.getValue(o), 62207 l = (i = n.getQName(o), r.createAttributeNS(e, i)); 62208 this.locator && c(n.getLocator(o), l), l.value = l.nodeValue = u, s.setAttributeNode(l); 62209 } 62210 }, 62211 endElement: function endElement(e, t, i) { 62212 var n = this.currentElement; 62213 n.tagName; 62214 this.currentElement = n.parentNode; 62215 }, 62216 startPrefixMapping: function startPrefixMapping(e, t) {}, 62217 endPrefixMapping: function endPrefixMapping(e) {}, 62218 processingInstruction: function processingInstruction(e, t) { 62219 var i = this.doc.createProcessingInstruction(e, t); 62220 this.locator && c(this.locator, i), d(this, i); 62221 }, 62222 ignorableWhitespace: function ignorableWhitespace(e, t, i) {}, 62223 characters: function characters(e, t, i) { 62224 if (e = r.apply(this, arguments)) { 62225 if (this.cdata) var n = this.doc.createCDATASection(e);else n = this.doc.createTextNode(e); 62226 this.currentElement ? this.currentElement.appendChild(n) : /^\s*$/.test(e) && this.doc.appendChild(n), this.locator && c(this.locator, n); 62227 } 62228 }, 62229 skippedEntity: function skippedEntity(e) {}, 62230 endDocument: function endDocument() { 62231 this.doc.normalize(); 62232 }, 62233 setDocumentLocator: function setDocumentLocator(e) { 62234 (this.locator = e) && (e.lineNumber = 0); 62235 }, 62236 comment: function comment(e, t, i) { 62237 e = r.apply(this, arguments); 62238 var n = this.doc.createComment(e); 62239 this.locator && c(this.locator, n), d(this, n); 62240 }, 62241 startCDATA: function startCDATA() { 62242 this.cdata = !0; 62243 }, 62244 endCDATA: function endCDATA() { 62245 this.cdata = !1; 62246 }, 62247 startDTD: function startDTD(e, t, i) { 62248 var n = this.doc.implementation; 62249 62250 if (n && n.createDocumentType) { 62251 var r = n.createDocumentType(e, t, i); 62252 this.locator && c(this.locator, r), d(this, r); 62253 } 62254 }, 62255 warning: function warning(e) {}, 62256 error: function error(e) {}, 62257 fatalError: function fatalError(e) { 62258 throw e; 62259 } 62260 }, "endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g, function (e) { 62261 l.prototype[e] = function () { 62262 return null; 62263 }; 62264 }); 62265 var p = Gs.XMLReader, 62266 n = t.DOMImplementation = Do.DOMImplementation; 62267 t.XMLSerializer = Do.XMLSerializer, t.DOMParser = i; 62268 }), 62269 Ro = (No.DOMImplementation, No.XMLSerializer, No.DOMParser), 62270 Uo = "INVALID_NUMBER_OF_PERIOD", 62271 Mo = "DASH_EMPTY_MANIFEST", 62272 Bo = "DASH_INVALID_XML", 62273 jo = "NO_BASE_URL", 62274 Fo = "SEGMENT_TIME_UNSPECIFIED", 62275 Ho = "UNSUPPORTED_UTC_TIMING_SCHEME", 62276 Vo = { 62277 "static": function _static(e) { 62278 var t = e.duration, 62279 i = e.timescale, 62280 n = void 0 === i ? 1 : i, 62281 r = e.sourceDuration; 62282 return { 62283 start: 0, 62284 end: Math.ceil(r / (t / n)) 62285 }; 62286 }, 62287 dynamic: function dynamic(e) { 62288 var t = e.NOW, 62289 i = e.clientOffset, 62290 n = e.availabilityStartTime, 62291 r = e.timescale, 62292 s = void 0 === r ? 1 : r, 62293 a = e.duration, 62294 o = e.start, 62295 u = void 0 === o ? 0 : o, 62296 l = e.minimumUpdatePeriod, 62297 c = void 0 === l ? 0 : l, 62298 h = e.timeShiftBufferDepth, 62299 d = void 0 === h ? 1 / 0 : h, 62300 p = (t + i) / 1e3, 62301 f = n + u, 62302 m = p + c - f, 62303 g = Math.ceil(m * s / a), 62304 v = Math.floor((p - f - d) * s / a), 62305 y = Math.floor((p - f) * s / a); 62306 return { 62307 start: Math.max(0, v), 62308 end: Math.min(g, y) 62309 }; 62310 } 62311 }, 62312 qo = /\$([A-z]*)(?:(%0)([0-9]+)d)?\$/g, 62313 Wo = { 62314 mediaPresentationDuration: function mediaPresentationDuration(e) { 62315 return fo(e); 62316 }, 62317 availabilityStartTime: function availabilityStartTime(e) { 62318 return function (e) { 62319 return /^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/.test(e) && (e += "Z"), Date.parse(e); 62320 }(e) / 1e3; 62321 }, 62322 minimumUpdatePeriod: function minimumUpdatePeriod(e) { 62323 return fo(e); 62324 }, 62325 suggestedPresentationDelay: function suggestedPresentationDelay(e) { 62326 return fo(e); 62327 }, 62328 type: function type(e) { 62329 return e; 62330 }, 62331 timeShiftBufferDepth: function timeShiftBufferDepth(e) { 62332 return fo(e); 62333 }, 62334 start: function start(e) { 62335 return fo(e); 62336 }, 62337 width: function width(e) { 62338 return parseInt(e, 10); 62339 }, 62340 height: function height(e) { 62341 return parseInt(e, 10); 62342 }, 62343 bandwidth: function bandwidth(e) { 62344 return parseInt(e, 10); 62345 }, 62346 startNumber: function startNumber(e) { 62347 return parseInt(e, 10); 62348 }, 62349 timescale: function timescale(e) { 62350 return parseInt(e, 10); 62351 }, 62352 duration: function duration(e) { 62353 var t = parseInt(e, 10); 62354 return isNaN(t) ? fo(e) : t; 62355 }, 62356 d: function d(e) { 62357 return parseInt(e, 10); 62358 }, 62359 t: function t(e) { 62360 return parseInt(e, 10); 62361 }, 62362 r: function r(e) { 62363 return parseInt(e, 10); 62364 }, 62365 DEFAULT: function DEFAULT(e) { 62366 return e; 62367 } 62368 }, 62369 zo = { 62370 "urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b": "org.w3.clearkey", 62371 "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed": "com.widevine.alpha", 62372 "urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95": "com.microsoft.playready", 62373 "urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb": "com.adobe.primetime" 62374 }, 62375 Go = function Go(e) { 62376 return e >>> 0; 62377 }, 62378 Xo = function Xo(e) { 62379 return ("00" + e.toString(16)).slice(-2); 62380 }, 62381 Ko = Go, 62382 Yo = { 62383 avc1: function avc1(e) { 62384 var t = new DataView(e.buffer, e.byteOffset, e.byteLength); 62385 return { 62386 dataReferenceIndex: t.getUint16(6), 62387 width: t.getUint16(24), 62388 height: t.getUint16(26), 62389 horizresolution: t.getUint16(28) + t.getUint16(30) / 16, 62390 vertresolution: t.getUint16(32) + t.getUint16(34) / 16, 62391 frameCount: t.getUint16(40), 62392 depth: t.getUint16(74), 62393 config: Eo(e.subarray(78, e.byteLength)) 62394 }; 62395 }, 62396 avcC: function avcC(e) { 62397 var t, 62398 i, 62399 n, 62400 r, 62401 s = new DataView(e.buffer, e.byteOffset, e.byteLength), 62402 a = { 62403 configurationVersion: e[0], 62404 avcProfileIndication: e[1], 62405 profileCompatibility: e[2], 62406 avcLevelIndication: e[3], 62407 lengthSizeMinusOne: 3 & e[4], 62408 sps: [], 62409 pps: [] 62410 }, 62411 o = 31 & e[5]; 62412 62413 for (n = 6, r = 0; r < o; r++) { 62414 i = s.getUint16(n), n += 2, a.sps.push(new Uint8Array(e.subarray(n, n + i))), n += i; 62415 } 62416 62417 for (t = e[n], n++, r = 0; r < t; r++) { 62418 i = s.getUint16(n), n += 2, a.pps.push(new Uint8Array(e.subarray(n, n + i))), n += i; 62419 } 62420 62421 return a; 62422 }, 62423 btrt: function btrt(e) { 62424 var t = new DataView(e.buffer, e.byteOffset, e.byteLength); 62425 return { 62426 bufferSizeDB: t.getUint32(0), 62427 maxBitrate: t.getUint32(4), 62428 avgBitrate: t.getUint32(8) 62429 }; 62430 }, 62431 esds: function esds(e) { 62432 return { 62433 version: e[0], 62434 flags: new Uint8Array(e.subarray(1, 4)), 62435 esId: e[6] << 8 | e[7], 62436 streamPriority: 31 & e[8], 62437 decoderConfig: { 62438 objectProfileIndication: e[11], 62439 streamType: e[12] >>> 2 & 63, 62440 bufferSize: e[13] << 16 | e[14] << 8 | e[15], 62441 maxBitrate: e[16] << 24 | e[17] << 16 | e[18] << 8 | e[19], 62442 avgBitrate: e[20] << 24 | e[21] << 16 | e[22] << 8 | e[23], 62443 decoderConfigDescriptor: { 62444 tag: e[24], 62445 length: e[25], 62446 audioObjectType: e[26] >>> 3 & 31, 62447 samplingFrequencyIndex: (7 & e[26]) << 1 | e[27] >>> 7 & 1, 62448 channelConfiguration: e[27] >>> 3 & 15 62449 } 62450 } 62451 }; 62452 }, 62453 ftyp: function ftyp(e) { 62454 for (var t = new DataView(e.buffer, e.byteOffset, e.byteLength), i = { 62455 majorBrand: wo(e.subarray(0, 4)), 62456 minorVersion: t.getUint32(4), 62457 compatibleBrands: [] 62458 }, n = 8; n < e.byteLength;) { 62459 i.compatibleBrands.push(wo(e.subarray(n, n + 4))), n += 4; 62460 } 62461 62462 return i; 62463 }, 62464 dinf: function dinf(e) { 62465 return { 62466 boxes: Eo(e) 62467 }; 62468 }, 62469 dref: function dref(e) { 62470 return { 62471 version: e[0], 62472 flags: new Uint8Array(e.subarray(1, 4)), 62473 dataReferences: Eo(e.subarray(8)) 62474 }; 62475 }, 62476 hdlr: function hdlr(e) { 62477 var t = { 62478 version: new DataView(e.buffer, e.byteOffset, e.byteLength).getUint8(0), 62479 flags: new Uint8Array(e.subarray(1, 4)), 62480 handlerType: wo(e.subarray(8, 12)), 62481 name: "" 62482 }, 62483 i = 8; 62484 62485 for (i = 24; i < e.byteLength; i++) { 62486 if (0 === e[i]) { 62487 i++; 62488 break; 62489 } 62490 62491 t.name += String.fromCharCode(e[i]); 62492 } 62493 62494 return t.name = decodeURIComponent(escape(t.name)), t; 62495 }, 62496 mdat: function mdat(e) { 62497 return { 62498 byteLength: e.byteLength, 62499 nals: function (e) { 62500 var t, 62501 i, 62502 n = new DataView(e.buffer, e.byteOffset, e.byteLength), 62503 r = []; 62504 62505 for (t = 0; t + 4 < e.length; t += i) { 62506 if (i = n.getUint32(t), t += 4, i <= 0) r.push("<span style='color:red;'>MALFORMED DATA</span>");else switch (31 & e[t]) { 62507 case 1: 62508 r.push("slice_layer_without_partitioning_rbsp"); 62509 break; 62510 62511 case 5: 62512 r.push("slice_layer_without_partitioning_rbsp_idr"); 62513 break; 62514 62515 case 6: 62516 r.push("sei_rbsp"); 62517 break; 62518 62519 case 7: 62520 r.push("seq_parameter_set_rbsp"); 62521 break; 62522 62523 case 8: 62524 r.push("pic_parameter_set_rbsp"); 62525 break; 62526 62527 case 9: 62528 r.push("access_unit_delimiter_rbsp"); 62529 break; 62530 62531 default: 62532 r.push("UNKNOWN NAL - " + e[t] & 31); 62533 } 62534 } 62535 62536 return r; 62537 }(e) 62538 }; 62539 }, 62540 mdhd: function mdhd(e) { 62541 var t, 62542 i = new DataView(e.buffer, e.byteOffset, e.byteLength), 62543 n = 4, 62544 r = { 62545 version: i.getUint8(0), 62546 flags: new Uint8Array(e.subarray(1, 4)), 62547 language: "" 62548 }; 62549 return 1 === r.version ? (n += 4, r.creationTime = ko(i.getUint32(n)), n += 8, r.modificationTime = ko(i.getUint32(n)), n += 4, r.timescale = i.getUint32(n), n += 8) : (r.creationTime = ko(i.getUint32(n)), n += 4, r.modificationTime = ko(i.getUint32(n)), n += 4, r.timescale = i.getUint32(n), n += 4), r.duration = i.getUint32(n), n += 4, t = i.getUint16(n), r.language += String.fromCharCode(96 + (t >> 10)), r.language += String.fromCharCode(96 + ((992 & t) >> 5)), r.language += String.fromCharCode(96 + (31 & t)), r; 62550 }, 62551 mdia: function mdia(e) { 62552 return { 62553 boxes: Eo(e) 62554 }; 62555 }, 62556 mfhd: function mfhd(e) { 62557 return { 62558 version: e[0], 62559 flags: new Uint8Array(e.subarray(1, 4)), 62560 sequenceNumber: e[4] << 24 | e[5] << 16 | e[6] << 8 | e[7] 62561 }; 62562 }, 62563 minf: function minf(e) { 62564 return { 62565 boxes: Eo(e) 62566 }; 62567 }, 62568 mp4a: function mp4a(e) { 62569 var t = new DataView(e.buffer, e.byteOffset, e.byteLength), 62570 i = { 62571 dataReferenceIndex: t.getUint16(6), 62572 channelcount: t.getUint16(16), 62573 samplesize: t.getUint16(18), 62574 samplerate: t.getUint16(24) + t.getUint16(26) / 65536 62575 }; 62576 return 28 < e.byteLength && (i.streamDescriptor = Eo(e.subarray(28))[0]), i; 62577 }, 62578 moof: function moof(e) { 62579 return { 62580 boxes: Eo(e) 62581 }; 62582 }, 62583 moov: function moov(e) { 62584 return { 62585 boxes: Eo(e) 62586 }; 62587 }, 62588 mvex: function mvex(e) { 62589 return { 62590 boxes: Eo(e) 62591 }; 62592 }, 62593 mvhd: function mvhd(e) { 62594 var t = new DataView(e.buffer, e.byteOffset, e.byteLength), 62595 i = 4, 62596 n = { 62597 version: t.getUint8(0), 62598 flags: new Uint8Array(e.subarray(1, 4)) 62599 }; 62600 return 1 === n.version ? (i += 4, n.creationTime = ko(t.getUint32(i)), i += 8, n.modificationTime = ko(t.getUint32(i)), i += 4, n.timescale = t.getUint32(i), i += 8) : (n.creationTime = ko(t.getUint32(i)), i += 4, n.modificationTime = ko(t.getUint32(i)), i += 4, n.timescale = t.getUint32(i), i += 4), n.duration = t.getUint32(i), i += 4, n.rate = t.getUint16(i) + t.getUint16(i + 2) / 16, i += 4, n.volume = t.getUint8(i) + t.getUint8(i + 1) / 8, i += 2, i += 2, i += 8, n.matrix = new Uint32Array(e.subarray(i, i + 36)), i += 36, i += 24, n.nextTrackId = t.getUint32(i), n; 62601 }, 62602 pdin: function pdin(e) { 62603 var t = new DataView(e.buffer, e.byteOffset, e.byteLength); 62604 return { 62605 version: t.getUint8(0), 62606 flags: new Uint8Array(e.subarray(1, 4)), 62607 rate: t.getUint32(4), 62608 initialDelay: t.getUint32(8) 62609 }; 62610 }, 62611 sdtp: function sdtp(e) { 62612 var t, 62613 i = { 62614 version: e[0], 62615 flags: new Uint8Array(e.subarray(1, 4)), 62616 samples: [] 62617 }; 62618 62619 for (t = 4; t < e.byteLength; t++) { 62620 i.samples.push({ 62621 dependsOn: (48 & e[t]) >> 4, 62622 isDependedOn: (12 & e[t]) >> 2, 62623 hasRedundancy: 3 & e[t] 62624 }); 62625 } 62626 62627 return i; 62628 }, 62629 sidx: function sidx(e) { 62630 var t, 62631 i = new DataView(e.buffer, e.byteOffset, e.byteLength), 62632 n = { 62633 version: e[0], 62634 flags: new Uint8Array(e.subarray(1, 4)), 62635 references: [], 62636 referenceId: i.getUint32(4), 62637 timescale: i.getUint32(8), 62638 earliestPresentationTime: i.getUint32(12), 62639 firstOffset: i.getUint32(16) 62640 }, 62641 r = i.getUint16(22); 62642 62643 for (t = 24; r; t += 12, r--) { 62644 n.references.push({ 62645 referenceType: (128 & e[t]) >>> 7, 62646 referencedSize: 2147483647 & i.getUint32(t), 62647 subsegmentDuration: i.getUint32(t + 4), 62648 startsWithSap: !!(128 & e[t + 8]), 62649 sapType: (112 & e[t + 8]) >>> 4, 62650 sapDeltaTime: 268435455 & i.getUint32(t + 8) 62651 }); 62652 } 62653 62654 return n; 62655 }, 62656 smhd: function smhd(e) { 62657 return { 62658 version: e[0], 62659 flags: new Uint8Array(e.subarray(1, 4)), 62660 balance: e[4] + e[5] / 256 62661 }; 62662 }, 62663 stbl: function stbl(e) { 62664 return { 62665 boxes: Eo(e) 62666 }; 62667 }, 62668 stco: function stco(e) { 62669 var t, 62670 i = new DataView(e.buffer, e.byteOffset, e.byteLength), 62671 n = { 62672 version: e[0], 62673 flags: new Uint8Array(e.subarray(1, 4)), 62674 chunkOffsets: [] 62675 }, 62676 r = i.getUint32(4); 62677 62678 for (t = 8; r; t += 4, r--) { 62679 n.chunkOffsets.push(i.getUint32(t)); 62680 } 62681 62682 return n; 62683 }, 62684 stsc: function stsc(e) { 62685 var t, 62686 i = new DataView(e.buffer, e.byteOffset, e.byteLength), 62687 n = i.getUint32(4), 62688 r = { 62689 version: e[0], 62690 flags: new Uint8Array(e.subarray(1, 4)), 62691 sampleToChunks: [] 62692 }; 62693 62694 for (t = 8; n; t += 12, n--) { 62695 r.sampleToChunks.push({ 62696 firstChunk: i.getUint32(t), 62697 samplesPerChunk: i.getUint32(t + 4), 62698 sampleDescriptionIndex: i.getUint32(t + 8) 62699 }); 62700 } 62701 62702 return r; 62703 }, 62704 stsd: function stsd(e) { 62705 return { 62706 version: e[0], 62707 flags: new Uint8Array(e.subarray(1, 4)), 62708 sampleDescriptions: Eo(e.subarray(8)) 62709 }; 62710 }, 62711 stsz: function stsz(e) { 62712 var t, 62713 i = new DataView(e.buffer, e.byteOffset, e.byteLength), 62714 n = { 62715 version: e[0], 62716 flags: new Uint8Array(e.subarray(1, 4)), 62717 sampleSize: i.getUint32(4), 62718 entries: [] 62719 }; 62720 62721 for (t = 12; t < e.byteLength; t += 4) { 62722 n.entries.push(i.getUint32(t)); 62723 } 62724 62725 return n; 62726 }, 62727 stts: function stts(e) { 62728 var t, 62729 i = new DataView(e.buffer, e.byteOffset, e.byteLength), 62730 n = { 62731 version: e[0], 62732 flags: new Uint8Array(e.subarray(1, 4)), 62733 timeToSamples: [] 62734 }, 62735 r = i.getUint32(4); 62736 62737 for (t = 8; r; t += 8, r--) { 62738 n.timeToSamples.push({ 62739 sampleCount: i.getUint32(t), 62740 sampleDelta: i.getUint32(t + 4) 62741 }); 62742 } 62743 62744 return n; 62745 }, 62746 styp: function styp(e) { 62747 return Yo.ftyp(e); 62748 }, 62749 tfdt: function tfdt(e) { 62750 var t = { 62751 version: e[0], 62752 flags: new Uint8Array(e.subarray(1, 4)), 62753 baseMediaDecodeTime: Ko(e[4] << 24 | e[5] << 16 | e[6] << 8 | e[7]) 62754 }; 62755 return 1 === t.version && (t.baseMediaDecodeTime *= Math.pow(2, 32), t.baseMediaDecodeTime += Ko(e[8] << 24 | e[9] << 16 | e[10] << 8 | e[11])), t; 62756 }, 62757 tfhd: function tfhd(e) { 62758 var t, 62759 i = new DataView(e.buffer, e.byteOffset, e.byteLength), 62760 n = { 62761 version: e[0], 62762 flags: new Uint8Array(e.subarray(1, 4)), 62763 trackId: i.getUint32(4) 62764 }, 62765 r = 1 & n.flags[2], 62766 s = 2 & n.flags[2], 62767 a = 8 & n.flags[2], 62768 o = 16 & n.flags[2], 62769 u = 32 & n.flags[2], 62770 l = 65536 & n.flags[0], 62771 c = 131072 & n.flags[0]; 62772 return t = 8, r && (t += 4, n.baseDataOffset = i.getUint32(12), t += 4), s && (n.sampleDescriptionIndex = i.getUint32(t), t += 4), a && (n.defaultSampleDuration = i.getUint32(t), t += 4), o && (n.defaultSampleSize = i.getUint32(t), t += 4), u && (n.defaultSampleFlags = i.getUint32(t)), l && (n.durationIsEmpty = !0), !r && c && (n.baseDataOffsetIsMoof = !0), n; 62773 }, 62774 tkhd: function tkhd(e) { 62775 var t = new DataView(e.buffer, e.byteOffset, e.byteLength), 62776 i = 4, 62777 n = { 62778 version: t.getUint8(0), 62779 flags: new Uint8Array(e.subarray(1, 4)) 62780 }; 62781 return 1 === n.version ? (i += 4, n.creationTime = ko(t.getUint32(i)), i += 8, n.modificationTime = ko(t.getUint32(i)), i += 4, n.trackId = t.getUint32(i), i += 4, i += 8) : (n.creationTime = ko(t.getUint32(i)), i += 4, n.modificationTime = ko(t.getUint32(i)), i += 4, n.trackId = t.getUint32(i), i += 4, i += 4), n.duration = t.getUint32(i), i += 4, i += 8, n.layer = t.getUint16(i), i += 2, n.alternateGroup = t.getUint16(i), i += 2, n.volume = t.getUint8(i) + t.getUint8(i + 1) / 8, i += 2, i += 2, n.matrix = new Uint32Array(e.subarray(i, i + 36)), i += 36, n.width = t.getUint16(i) + t.getUint16(i + 2) / 16, i += 4, n.height = t.getUint16(i) + t.getUint16(i + 2) / 16, n; 62782 }, 62783 traf: function traf(e) { 62784 return { 62785 boxes: Eo(e) 62786 }; 62787 }, 62788 trak: function trak(e) { 62789 return { 62790 boxes: Eo(e) 62791 }; 62792 }, 62793 trex: function trex(e) { 62794 var t = new DataView(e.buffer, e.byteOffset, e.byteLength); 62795 return { 62796 version: e[0], 62797 flags: new Uint8Array(e.subarray(1, 4)), 62798 trackId: t.getUint32(4), 62799 defaultSampleDescriptionIndex: t.getUint32(8), 62800 defaultSampleDuration: t.getUint32(12), 62801 defaultSampleSize: t.getUint32(16), 62802 sampleDependsOn: 3 & e[20], 62803 sampleIsDependedOn: (192 & e[21]) >> 6, 62804 sampleHasRedundancy: (48 & e[21]) >> 4, 62805 samplePaddingValue: (14 & e[21]) >> 1, 62806 sampleIsDifferenceSample: !!(1 & e[21]), 62807 sampleDegradationPriority: t.getUint16(22) 62808 }; 62809 }, 62810 trun: function trun(e) { 62811 var t, 62812 i = { 62813 version: e[0], 62814 flags: new Uint8Array(e.subarray(1, 4)), 62815 samples: [] 62816 }, 62817 n = new DataView(e.buffer, e.byteOffset, e.byteLength), 62818 r = 1 & i.flags[2], 62819 s = 4 & i.flags[2], 62820 a = 1 & i.flags[1], 62821 o = 2 & i.flags[1], 62822 u = 4 & i.flags[1], 62823 l = 8 & i.flags[1], 62824 c = n.getUint32(4), 62825 h = 8; 62826 62827 for (r && (i.dataOffset = n.getInt32(h), h += 4), s && c && (t = { 62828 flags: Co(e.subarray(h, h + 4)) 62829 }, h += 4, a && (t.duration = n.getUint32(h), h += 4), o && (t.size = n.getUint32(h), h += 4), l && (t.compositionTimeOffset = n.getUint32(h), h += 4), i.samples.push(t), c--); c--;) { 62830 t = {}, a && (t.duration = n.getUint32(h), h += 4), o && (t.size = n.getUint32(h), h += 4), u && (t.flags = Co(e.subarray(h, h + 4)), h += 4), l && (t.compositionTimeOffset = n.getUint32(h), h += 4), i.samples.push(t); 62831 } 62832 62833 return i; 62834 }, 62835 "url ": function url(e) { 62836 return { 62837 version: e[0], 62838 flags: new Uint8Array(e.subarray(1, 4)) 62839 }; 62840 }, 62841 vmhd: function vmhd(e) { 62842 var t = new DataView(e.buffer, e.byteOffset, e.byteLength); 62843 return { 62844 version: e[0], 62845 flags: new Uint8Array(e.subarray(1, 4)), 62846 graphicsmode: t.getUint16(4), 62847 opcolor: new Uint16Array([t.getUint16(6), t.getUint16(8), t.getUint16(10)]) 62848 }; 62849 } 62850 }, 62851 $o = { 62852 inspect: Eo = function Eo(e) { 62853 for (var t, i, n, r, s, a = 0, o = [], u = new ArrayBuffer(e.length), l = new Uint8Array(u), c = 0; c < e.length; ++c) { 62854 l[c] = e[c]; 62855 } 62856 62857 for (t = new DataView(u); a < e.byteLength;) { 62858 i = t.getUint32(a), n = wo(e.subarray(a + 4, a + 8)), r = 1 < i ? a + i : e.byteLength, (s = (Yo[n] || function (e) { 62859 return { 62860 data: e 62861 }; 62862 })(e.subarray(a + 8, r))).size = i, s.type = n, o.push(s), a = r; 62863 } 62864 62865 return o; 62866 }, 62867 textify: _xo = function xo(e, t) { 62868 var s; 62869 return t = t || 0, s = new Array(2 * t + 1).join(" "), e.map(function (r, e) { 62870 return s + r.type + "\n" + Object.keys(r).filter(function (e) { 62871 return "type" !== e && "boxes" !== e; 62872 }).map(function (e) { 62873 var t = s + " " + e + ": ", 62874 i = r[e]; 62875 62876 if (i instanceof Uint8Array || i instanceof Uint32Array) { 62877 var n = Array.prototype.slice.call(new Uint8Array(i.buffer, i.byteOffset, i.byteLength)).map(function (e) { 62878 return " " + ("00" + e.toString(16)).slice(-2); 62879 }).join("").match(/.{1,24}/g); 62880 return n ? 1 === n.length ? t + "<" + n.join("").slice(1) + ">" : t + "<\n" + n.map(function (e) { 62881 return s + " " + e; 62882 }).join("\n") + "\n" + s + " >" : t + "<>"; 62883 } 62884 62885 return t + JSON.stringify(i, null, 2).split("\n").map(function (e, t) { 62886 return 0 === t ? e : s + " " + e; 62887 }).join("\n"); 62888 }).join("\n") + (r.boxes ? "\n" + _xo(r.boxes, t + 1) : ""); 62889 }).join("\n"); 62890 }, 62891 parseType: wo, 62892 findBox: function e(t, i) { 62893 var n, 62894 r, 62895 s, 62896 a, 62897 o, 62898 u = []; 62899 if (!i.length) return null; 62900 62901 for (n = 0; n < t.byteLength;) { 62902 r = Ko(t[n] << 24 | t[n + 1] << 16 | t[n + 2] << 8 | t[n + 3]), s = wo(t.subarray(n + 4, n + 8)), a = 1 < r ? n + r : t.byteLength, s === i[0] && (1 === i.length ? u.push(t.subarray(n + 8, a)) : (o = e(t.subarray(n + 8, a), i.slice(1))).length && (u = u.concat(o))), n = a; 62903 } 62904 62905 return u; 62906 }, 62907 parseTraf: Yo.traf, 62908 parseTfdt: Yo.tfdt, 62909 parseHdlr: Yo.hdlr, 62910 parseTfhd: Yo.tfhd, 62911 parseTrun: Yo.trun, 62912 parseSidx: Yo.sidx 62913 }, 62914 Qo = Go, 62915 Jo = Xo; 62916 62917 Ao = function Ao(e) { 62918 return $o.findBox(e, ["moov", "trak"]).reduce(function (e, t) { 62919 var i, n, r, s, a; 62920 return (i = $o.findBox(t, ["tkhd"])[0]) ? (n = i[0], s = Qo(i[r = 0 === n ? 12 : 20] << 24 | i[r + 1] << 16 | i[r + 2] << 8 | i[r + 3]), (a = $o.findBox(t, ["mdia", "mdhd"])[0]) ? (r = 0 === (n = a[0]) ? 12 : 20, e[s] = Qo(a[r] << 24 | a[r + 1] << 16 | a[r + 2] << 8 | a[r + 3]), e) : null) : null; 62921 }, {}); 62922 }, Io = function Io(r, e) { 62923 var t, i, n; 62924 return t = $o.findBox(e, ["moof", "traf"]), i = [].concat.apply([], t.map(function (n) { 62925 return $o.findBox(n, ["tfhd"]).map(function (e) { 62926 var t, i; 62927 return t = Qo(e[4] << 24 | e[5] << 16 | e[6] << 8 | e[7]), i = r[t] || 9e4, ($o.findBox(n, ["tfdt"]).map(function (e) { 62928 var t, i; 62929 return t = e[0], i = Qo(e[4] << 24 | e[5] << 16 | e[6] << 8 | e[7]), 1 === t && (i *= Math.pow(2, 32), i += Qo(e[8] << 24 | e[9] << 16 | e[10] << 8 | e[11])), i; 62930 })[0] || 1 / 0) / i; 62931 }); 62932 })), n = Math.min.apply(null, i), isFinite(n) ? n : 0; 62933 }, Po = function Po(e, t) { 62934 var i, 62935 n = $o.findBox(t, ["moof", "traf"]), 62936 r = 0, 62937 s = 0; 62938 if (n && n.length) for (var a = $o.parseTraf(n[0]), o = 0; o < a.boxes.length; o++) { 62939 "tfhd" === a.boxes[o].type ? i = a.boxes[o].trackId : "tfdt" === a.boxes[o].type ? r = a.boxes[o].baseMediaDecodeTime : "trun" === a.boxes[o].type && a.boxes[o].samples.length && (s = a.boxes[o].samples[0].compositionTimeOffset || 0); 62940 } 62941 return (r + s) / (e[i] || 9e4); 62942 }, Lo = function Lo(e) { 62943 var t = $o.findBox(e, ["moov", "trak"]), 62944 o = []; 62945 return t.forEach(function (e) { 62946 var t = $o.findBox(e, ["mdia", "hdlr"]), 62947 a = $o.findBox(e, ["tkhd"]); 62948 t.forEach(function (e, t) { 62949 var i, 62950 n, 62951 r = $o.parseType(e.subarray(8, 12)), 62952 s = a[t]; 62953 "vide" === r && (n = 0 === (i = new DataView(s.buffer, s.byteOffset, s.byteLength)).getUint8(0) ? i.getUint32(12) : i.getUint32(20), o.push(n)); 62954 }); 62955 }), o; 62956 }, Oo = function Oo(e) { 62957 var t = $o.findBox(e, ["moov", "trak"]), 62958 p = []; 62959 return t.forEach(function (e) { 62960 var t, 62961 i, 62962 n = {}, 62963 r = $o.findBox(e, ["tkhd"])[0]; 62964 r && (i = (t = new DataView(r.buffer, r.byteOffset, r.byteLength)).getUint8(0), n.id = 0 === i ? t.getUint32(12) : t.getUint32(20)); 62965 var s = $o.findBox(e, ["mdia", "hdlr"])[0]; 62966 62967 if (s) { 62968 var a = $o.parseType(s.subarray(8, 12)); 62969 n.type = "vide" === a ? "video" : "soun" === a ? "audio" : a; 62970 } 62971 62972 var o = $o.findBox(e, ["mdia", "minf", "stbl", "stsd"])[0]; 62973 62974 if (o) { 62975 var u = o.subarray(8); 62976 n.codec = $o.parseType(u.subarray(4, 8)); 62977 var l, 62978 c = $o.findBox(u, [n.codec])[0]; 62979 c && (/^[a-z]vc[1-9]$/i.test(n.codec) ? (l = c.subarray(78), "avcC" === $o.parseType(l.subarray(4, 8)) && 11 < l.length ? (n.codec += ".", n.codec += Jo(l[9]), n.codec += Jo(l[10]), n.codec += Jo(l[11])) : n.codec = "avc1.4d400d") : /^mp4[a,v]$/i.test(n.codec) && (l = c.subarray(28), "esds" === $o.parseType(l.subarray(4, 8)) && 20 < l.length && 0 !== l[19] ? (n.codec += "." + Jo(l[19]), n.codec += "." + Jo(l[20] >>> 2 & 63).replace(/^0/, "")) : n.codec = "mp4a.40.2")); 62980 } 62981 62982 var h = $o.findBox(e, ["mdia", "mdhd"])[0]; 62983 62984 if (h && r) { 62985 var d = 0 === i ? 12 : 20; 62986 n.timescale = Qo(h[d] << 24 | h[1 + d] << 16 | h[2 + d] << 8 | h[3 + d]); 62987 } 62988 62989 p.push(n); 62990 }), p; 62991 }; 62992 62993 function Zo() { 62994 this.init = function () { 62995 var s = {}; 62996 this.on = function (e, t) { 62997 s[e] || (s[e] = []), s[e] = s[e].concat(t); 62998 }, this.off = function (e, t) { 62999 var i; 63000 return !!s[e] && (i = s[e].indexOf(t), s[e] = s[e].slice(), s[e].splice(i, 1), -1 < i); 63001 }, this.trigger = function (e) { 63002 var t, i, n, r; 63003 if (t = s[e]) if (2 === arguments.length) for (n = t.length, i = 0; i < n; ++i) { 63004 t[i].call(this, arguments[1]); 63005 } else { 63006 for (r = [], i = arguments.length, i = 1; i < arguments.length; ++i) { 63007 r.push(arguments[i]); 63008 } 63009 63010 for (n = t.length, i = 0; i < n; ++i) { 63011 t[i].apply(this, r); 63012 } 63013 } 63014 }, this.dispose = function () { 63015 s = {}; 63016 }; 63017 }; 63018 } 63019 63020 var eu = { 63021 findBox: $o.findBox, 63022 parseType: $o.parseType, 63023 timescale: Ao, 63024 startTime: Io, 63025 compositionStartTime: Po, 63026 videoTrackIds: Lo, 63027 tracks: Oo 63028 }, 63029 tu = function tu(e) { 63030 for (var t = 0, i = { 63031 payloadType: -1, 63032 payloadSize: 0 63033 }, n = 0, r = 0; t < e.byteLength && 128 !== e[t];) { 63034 for (; 255 === e[t];) { 63035 n += 255, t++; 63036 } 63037 63038 for (n += e[t++]; 255 === e[t];) { 63039 r += 255, t++; 63040 } 63041 63042 if (r += e[t++], !i.payload && 4 === n) { 63043 i.payloadType = n, i.payloadSize = r, i.payload = e.subarray(t, t + r); 63044 break; 63045 } 63046 63047 t += r, r = n = 0; 63048 } 63049 63050 return i; 63051 }, 63052 iu = function iu(e) { 63053 return 181 !== e.payload[0] ? null : 49 != (e.payload[1] << 8 | e.payload[2]) ? null : "GA94" !== String.fromCharCode(e.payload[3], e.payload[4], e.payload[5], e.payload[6]) ? null : 3 !== e.payload[7] ? null : e.payload.subarray(8, e.payload.length - 1); 63054 }, 63055 nu = function nu(e, t) { 63056 var i, 63057 n, 63058 r, 63059 s, 63060 a = []; 63061 if (!(64 & t[0])) return a; 63062 63063 for (n = 31 & t[0], i = 0; i < n; i++) { 63064 s = { 63065 type: 3 & t[2 + (r = 3 * i)], 63066 pts: e 63067 }, 4 & t[2 + r] && (s.ccData = t[3 + r] << 8 | t[4 + r], a.push(s)); 63068 } 63069 63070 return a; 63071 }, 63072 ru = function ru(e) { 63073 for (var t, i, n = e.byteLength, r = [], s = 1; s < n - 2;) { 63074 0 === e[s] && 0 === e[s + 1] && 3 === e[s + 2] ? (r.push(s + 2), s += 2) : s++; 63075 } 63076 63077 if (0 === r.length) return e; 63078 t = n - r.length, i = new Uint8Array(t); 63079 var a = 0; 63080 63081 for (s = 0; s < t; a++, s++) { 63082 a === r[0] && (a++, r.shift()), i[s] = e[a]; 63083 } 63084 63085 return i; 63086 }, 63087 su = 4; 63088 63089 Zo.prototype.pipe = function (t) { 63090 return this.on("data", function (e) { 63091 t.push(e); 63092 }), this.on("done", function (e) { 63093 t.flush(e); 63094 }), this.on("partialdone", function (e) { 63095 t.partialFlush(e); 63096 }), this.on("endedtimeline", function (e) { 63097 t.endTimeline(e); 63098 }), this.on("reset", function (e) { 63099 t.reset(e); 63100 }), t; 63101 }, Zo.prototype.push = function (e) { 63102 this.trigger("data", e); 63103 }, Zo.prototype.flush = function (e) { 63104 this.trigger("done", e); 63105 }, Zo.prototype.partialFlush = function (e) { 63106 this.trigger("partialdone", e); 63107 }, Zo.prototype.endTimeline = function (e) { 63108 this.trigger("endedtimeline", e); 63109 }, Zo.prototype.reset = function (e) { 63110 this.trigger("reset", e); 63111 }; 63112 63113 function au() { 63114 au.prototype.init.call(this), this.captionPackets_ = [], this.ccStreams_ = [new du(0, 0), new du(0, 1), new du(1, 0), new du(1, 1)], this.reset(), this.ccStreams_.forEach(function (e) { 63115 e.on("data", this.trigger.bind(this, "data")), e.on("partialdone", this.trigger.bind(this, "partialdone")), e.on("done", this.trigger.bind(this, "done")); 63116 }, this); 63117 } 63118 63119 var ou = Zo; 63120 (au.prototype = new ou()).push = function (e) { 63121 var t, i, n; 63122 if ("sei_rbsp" === e.nalUnitType && (t = tu(e.escapedRBSP)).payloadType === su && (i = iu(t))) if (e.dts < this.latestDts_) this.ignoreNextEqualDts_ = !0;else { 63123 if (e.dts === this.latestDts_ && this.ignoreNextEqualDts_) return this.numSameDts_--, void (this.numSameDts_ || (this.ignoreNextEqualDts_ = !1)); 63124 n = nu(e.pts, i), this.captionPackets_ = this.captionPackets_.concat(n), this.latestDts_ !== e.dts && (this.numSameDts_ = 0), this.numSameDts_++, this.latestDts_ = e.dts; 63125 } 63126 }, au.prototype.flushCCStreams = function (t) { 63127 this.ccStreams_.forEach(function (e) { 63128 return "flush" === t ? e.flush() : e.partialFlush(); 63129 }, this); 63130 }, au.prototype.flushStream = function (e) { 63131 this.captionPackets_.length && (this.captionPackets_.forEach(function (e, t) { 63132 e.presortIndex = t; 63133 }), this.captionPackets_.sort(function (e, t) { 63134 return e.pts === t.pts ? e.presortIndex - t.presortIndex : e.pts - t.pts; 63135 }), this.captionPackets_.forEach(function (e) { 63136 e.type < 2 && this.dispatchCea608Packet(e); 63137 }, this), this.captionPackets_.length = 0), this.flushCCStreams(e); 63138 }, au.prototype.flush = function () { 63139 return this.flushStream("flush"); 63140 }, au.prototype.partialFlush = function () { 63141 return this.flushStream("partialFlush"); 63142 }, au.prototype.reset = function () { 63143 this.latestDts_ = null, this.ignoreNextEqualDts_ = !1, this.numSameDts_ = 0, this.activeCea608Channel_ = [null, null], this.ccStreams_.forEach(function (e) { 63144 e.reset(); 63145 }); 63146 }, au.prototype.dispatchCea608Packet = function (e) { 63147 this.setsTextOrXDSActive(e) ? this.activeCea608Channel_[e.type] = null : this.setsChannel1Active(e) ? this.activeCea608Channel_[e.type] = 0 : this.setsChannel2Active(e) && (this.activeCea608Channel_[e.type] = 1), null !== this.activeCea608Channel_[e.type] && this.ccStreams_[(e.type << 1) + this.activeCea608Channel_[e.type]].push(e); 63148 }, au.prototype.setsChannel1Active = function (e) { 63149 return 4096 == (30720 & e.ccData); 63150 }, au.prototype.setsChannel2Active = function (e) { 63151 return 6144 == (30720 & e.ccData); 63152 }, au.prototype.setsTextOrXDSActive = function (e) { 63153 return 256 == (28928 & e.ccData) || 4138 == (30974 & e.ccData) || 6186 == (30974 & e.ccData); 63154 }; 63155 63156 function uu(e) { 63157 return null === e ? "" : (e = cu[e] || e, String.fromCharCode(e)); 63158 } 63159 63160 function lu() { 63161 for (var e = [], t = 15; t--;) { 63162 e.push(""); 63163 } 63164 63165 return e; 63166 } 63167 63168 var cu = { 63169 42: 225, 63170 92: 233, 63171 94: 237, 63172 95: 243, 63173 96: 250, 63174 123: 231, 63175 124: 247, 63176 125: 209, 63177 126: 241, 63178 127: 9608, 63179 304: 174, 63180 305: 176, 63181 306: 189, 63182 307: 191, 63183 308: 8482, 63184 309: 162, 63185 310: 163, 63186 311: 9834, 63187 312: 224, 63188 313: 160, 63189 314: 232, 63190 315: 226, 63191 316: 234, 63192 317: 238, 63193 318: 244, 63194 319: 251, 63195 544: 193, 63196 545: 201, 63197 546: 211, 63198 547: 218, 63199 548: 220, 63200 549: 252, 63201 550: 8216, 63202 551: 161, 63203 552: 42, 63204 553: 39, 63205 554: 8212, 63206 555: 169, 63207 556: 8480, 63208 557: 8226, 63209 558: 8220, 63210 559: 8221, 63211 560: 192, 63212 561: 194, 63213 562: 199, 63214 563: 200, 63215 564: 202, 63216 565: 203, 63217 566: 235, 63218 567: 206, 63219 568: 207, 63220 569: 239, 63221 570: 212, 63222 571: 217, 63223 572: 249, 63224 573: 219, 63225 574: 171, 63226 575: 187, 63227 800: 195, 63228 801: 227, 63229 802: 205, 63230 803: 204, 63231 804: 236, 63232 805: 210, 63233 806: 242, 63234 807: 213, 63235 808: 245, 63236 809: 123, 63237 810: 125, 63238 811: 92, 63239 812: 94, 63240 813: 95, 63241 814: 124, 63242 815: 126, 63243 816: 196, 63244 817: 228, 63245 818: 214, 63246 819: 246, 63247 820: 223, 63248 821: 165, 63249 822: 164, 63250 823: 9474, 63251 824: 197, 63252 825: 229, 63253 826: 216, 63254 827: 248, 63255 828: 9484, 63256 829: 9488, 63257 830: 9492, 63258 831: 9496 63259 }, 63260 hu = [4352, 4384, 4608, 4640, 5376, 5408, 5632, 5664, 5888, 5920, 4096, 4864, 4896, 5120, 5152], 63261 du = function e(t, i) { 63262 e.prototype.init.call(this), this.field_ = t || 0, this.dataChannel_ = i || 0, this.name_ = "CC" + (1 + (this.field_ << 1 | this.dataChannel_)), this.setConstants(), this.reset(), this.push = function (e) { 63263 var t, i, n, r, s; 63264 63265 if ((t = 32639 & e.ccData) !== this.lastControlCode_) { 63266 if (4096 == (61440 & t) ? this.lastControlCode_ = t : t !== this.PADDING_ && (this.lastControlCode_ = null), n = t >>> 8, r = 255 & t, t !== this.PADDING_) if (t === this.RESUME_CAPTION_LOADING_) this.mode_ = "popOn";else if (t === this.END_OF_CAPTION_) this.mode_ = "popOn", this.clearFormatting(e.pts), this.flushDisplayed(e.pts), i = this.displayed_, this.displayed_ = this.nonDisplayed_, this.nonDisplayed_ = i, this.startPts_ = e.pts;else if (t === this.ROLL_UP_2_ROWS_) this.rollUpRows_ = 2, this.setRollUp(e.pts);else if (t === this.ROLL_UP_3_ROWS_) this.rollUpRows_ = 3, this.setRollUp(e.pts);else if (t === this.ROLL_UP_4_ROWS_) this.rollUpRows_ = 4, this.setRollUp(e.pts);else if (t === this.CARRIAGE_RETURN_) this.clearFormatting(e.pts), this.flushDisplayed(e.pts), this.shiftRowsUp_(), this.startPts_ = e.pts;else if (t === this.BACKSPACE_) "popOn" === this.mode_ ? this.nonDisplayed_[this.row_] = this.nonDisplayed_[this.row_].slice(0, -1) : this.displayed_[this.row_] = this.displayed_[this.row_].slice(0, -1);else if (t === this.ERASE_DISPLAYED_MEMORY_) this.flushDisplayed(e.pts), this.displayed_ = lu();else if (t === this.ERASE_NON_DISPLAYED_MEMORY_) this.nonDisplayed_ = lu();else if (t === this.RESUME_DIRECT_CAPTIONING_) "paintOn" !== this.mode_ && (this.flushDisplayed(e.pts), this.displayed_ = lu()), this.mode_ = "paintOn", this.startPts_ = e.pts;else if (this.isSpecialCharacter(n, r)) s = uu((n = (3 & n) << 8) | r), this[this.mode_](e.pts, s), this.column_++;else if (this.isExtCharacter(n, r)) "popOn" === this.mode_ ? this.nonDisplayed_[this.row_] = this.nonDisplayed_[this.row_].slice(0, -1) : this.displayed_[this.row_] = this.displayed_[this.row_].slice(0, -1), s = uu((n = (3 & n) << 8) | r), this[this.mode_](e.pts, s), this.column_++;else if (this.isMidRowCode(n, r)) this.clearFormatting(e.pts), this[this.mode_](e.pts, " "), this.column_++, 14 == (14 & r) && this.addFormatting(e.pts, ["i"]), 1 == (1 & r) && this.addFormatting(e.pts, ["u"]);else if (this.isOffsetControlCode(n, r)) this.column_ += 3 & r;else if (this.isPAC(n, r)) { 63267 var a = hu.indexOf(7968 & t); 63268 "rollUp" === this.mode_ && (a - this.rollUpRows_ + 1 < 0 && (a = this.rollUpRows_ - 1), this.setRollUp(e.pts, a)), a !== this.row_ && (this.clearFormatting(e.pts), this.row_ = a), 1 & r && -1 === this.formatting_.indexOf("u") && this.addFormatting(e.pts, ["u"]), 16 == (16 & t) && (this.column_ = 4 * ((14 & t) >> 1)), this.isColorPAC(r) && 14 == (14 & r) && this.addFormatting(e.pts, ["i"]); 63269 } else this.isNormalChar(n) && (0 === r && (r = null), s = uu(n), s += uu(r), this[this.mode_](e.pts, s), this.column_ += s.length); 63270 } else this.lastControlCode_ = null; 63271 }; 63272 }; 63273 63274 du.prototype = new ou(), du.prototype.flushDisplayed = function (e) { 63275 var t = this.displayed_.map(function (e) { 63276 try { 63277 return e.trim(); 63278 } catch (e) { 63279 return ""; 63280 } 63281 }).join("\n").replace(/^\n+|\n+$/g, ""); 63282 t.length && this.trigger("data", { 63283 startPts: this.startPts_, 63284 endPts: e, 63285 text: t, 63286 stream: this.name_ 63287 }); 63288 }, du.prototype.reset = function () { 63289 this.mode_ = "popOn", this.topRow_ = 0, this.startPts_ = 0, this.displayed_ = lu(), this.nonDisplayed_ = lu(), this.lastControlCode_ = null, this.column_ = 0, this.row_ = 14, this.rollUpRows_ = 2, this.formatting_ = []; 63290 }, du.prototype.setConstants = function () { 63291 0 === this.dataChannel_ ? (this.BASE_ = 16, this.EXT_ = 17, this.CONTROL_ = (20 | this.field_) << 8, this.OFFSET_ = 23) : 1 === this.dataChannel_ && (this.BASE_ = 24, this.EXT_ = 25, this.CONTROL_ = (28 | this.field_) << 8, this.OFFSET_ = 31), this.PADDING_ = 0, this.RESUME_CAPTION_LOADING_ = 32 | this.CONTROL_, this.END_OF_CAPTION_ = 47 | this.CONTROL_, this.ROLL_UP_2_ROWS_ = 37 | this.CONTROL_, this.ROLL_UP_3_ROWS_ = 38 | this.CONTROL_, this.ROLL_UP_4_ROWS_ = 39 | this.CONTROL_, this.CARRIAGE_RETURN_ = 45 | this.CONTROL_, this.RESUME_DIRECT_CAPTIONING_ = 41 | this.CONTROL_, this.BACKSPACE_ = 33 | this.CONTROL_, this.ERASE_DISPLAYED_MEMORY_ = 44 | this.CONTROL_, this.ERASE_NON_DISPLAYED_MEMORY_ = 46 | this.CONTROL_; 63292 }, du.prototype.isSpecialCharacter = function (e, t) { 63293 return e === this.EXT_ && 48 <= t && t <= 63; 63294 }, du.prototype.isExtCharacter = function (e, t) { 63295 return (e === this.EXT_ + 1 || e === this.EXT_ + 2) && 32 <= t && t <= 63; 63296 }, du.prototype.isMidRowCode = function (e, t) { 63297 return e === this.EXT_ && 32 <= t && t <= 47; 63298 }, du.prototype.isOffsetControlCode = function (e, t) { 63299 return e === this.OFFSET_ && 33 <= t && t <= 35; 63300 }, du.prototype.isPAC = function (e, t) { 63301 return e >= this.BASE_ && e < this.BASE_ + 8 && 64 <= t && t <= 127; 63302 }, du.prototype.isColorPAC = function (e) { 63303 return 64 <= e && e <= 79 || 96 <= e && e <= 127; 63304 }, du.prototype.isNormalChar = function (e) { 63305 return 32 <= e && e <= 127; 63306 }, du.prototype.setRollUp = function (e, t) { 63307 if ("rollUp" !== this.mode_ && (this.row_ = 14, this.mode_ = "rollUp", this.flushDisplayed(e), this.nonDisplayed_ = lu(), this.displayed_ = lu()), void 0 !== t && t !== this.row_) for (var i = 0; i < this.rollUpRows_; i++) { 63308 this.displayed_[t - i] = this.displayed_[this.row_ - i], this.displayed_[this.row_ - i] = ""; 63309 } 63310 void 0 === t && (t = this.row_), this.topRow_ = t - this.rollUpRows_ + 1; 63311 }, du.prototype.addFormatting = function (e, t) { 63312 this.formatting_ = this.formatting_.concat(t); 63313 var i = t.reduce(function (e, t) { 63314 return e + "<" + t + ">"; 63315 }, ""); 63316 this[this.mode_](e, i); 63317 }, du.prototype.clearFormatting = function (e) { 63318 if (this.formatting_.length) { 63319 var t = this.formatting_.reverse().reduce(function (e, t) { 63320 return e + "</" + t + ">"; 63321 }, ""); 63322 this.formatting_ = [], this[this.mode_](e, t); 63323 } 63324 }, du.prototype.popOn = function (e, t) { 63325 var i = this.nonDisplayed_[this.row_]; 63326 i += t, this.nonDisplayed_[this.row_] = i; 63327 }, du.prototype.rollUp = function (e, t) { 63328 var i = this.displayed_[this.row_]; 63329 i += t, this.displayed_[this.row_] = i; 63330 }, du.prototype.shiftRowsUp_ = function () { 63331 var e; 63332 63333 for (e = 0; e < this.topRow_; e++) { 63334 this.displayed_[e] = ""; 63335 } 63336 63337 for (e = this.row_ + 1; e < 15; e++) { 63338 this.displayed_[e] = ""; 63339 } 63340 63341 for (e = this.topRow_; e < this.row_; e++) { 63342 this.displayed_[e] = this.displayed_[e + 1]; 63343 } 63344 63345 this.displayed_[this.row_] = ""; 63346 }, du.prototype.paintOn = function (e, t) { 63347 var i = this.displayed_[this.row_]; 63348 i += t, this.displayed_[this.row_] = i; 63349 }; 63350 63351 function pu(e, t) { 63352 for (var i = e, n = 0; n < t.length; n++) { 63353 var r = t[n]; 63354 if (i < r.size) return r; 63355 i -= r.size; 63356 } 63357 63358 return null; 63359 } 63360 63361 function fu(e, c) { 63362 var n = eu.findBox(e, ["moof", "traf"]), 63363 t = eu.findBox(e, ["mdat"]), 63364 h = {}, 63365 r = []; 63366 return t.forEach(function (e, t) { 63367 var i = n[t]; 63368 r.push({ 63369 mdat: e, 63370 traf: i 63371 }); 63372 }), r.forEach(function (e) { 63373 var t, 63374 i = e.mdat, 63375 n = e.traf, 63376 r = eu.findBox(n, ["tfhd"]), 63377 s = $o.parseTfhd(r[0]), 63378 a = s.trackId, 63379 o = eu.findBox(n, ["tfdt"]), 63380 u = 0 < o.length ? $o.parseTfdt(o[0]).baseMediaDecodeTime : 0, 63381 l = eu.findBox(n, ["trun"]); 63382 c === a && 0 < l.length && (t = function (e, t, i) { 63383 var n, 63384 r, 63385 s, 63386 a, 63387 o = new DataView(e.buffer, e.byteOffset, e.byteLength), 63388 u = []; 63389 63390 for (r = 0; r + 4 < e.length; r += s) { 63391 if (s = o.getUint32(r), r += 4, !(s <= 0)) switch (31 & e[r]) { 63392 case 6: 63393 var l = e.subarray(r + 1, r + 1 + s), 63394 c = pu(r, t); 63395 n = { 63396 nalUnitType: "sei_rbsp", 63397 size: s, 63398 data: l, 63399 escapedRBSP: gu(l), 63400 trackId: i 63401 }, c ? (n.pts = c.pts, n.dts = c.dts, a = c) : (n.pts = a.pts, n.dts = a.dts), u.push(n); 63402 } 63403 } 63404 63405 return u; 63406 }(i, function (e, t, i) { 63407 var n = t, 63408 r = i.defaultSampleDuration || 0, 63409 s = i.defaultSampleSize || 0, 63410 a = i.trackId, 63411 o = []; 63412 return e.forEach(function (e) { 63413 var t = $o.parseTrun(e).samples; 63414 t.forEach(function (e) { 63415 void 0 === e.duration && (e.duration = r), void 0 === e.size && (e.size = s), e.trackId = a, e.dts = n, void 0 === e.compositionTimeOffset && (e.compositionTimeOffset = 0), e.pts = n + e.compositionTimeOffset, n += e.duration; 63416 }), o = o.concat(t); 63417 }), o; 63418 }(l, u, s), a), h[a] || (h[a] = []), h[a] = h[a].concat(t)); 63419 }), h; 63420 } 63421 63422 function mu(e, t) { 63423 var i = 1; 63424 63425 for (t < e && (i = -1); 4294967296 < Math.abs(t - e);) { 63426 e += 8589934592 * i; 63427 } 63428 63429 return e; 63430 } 63431 63432 var gu = ru, 63433 vu = au, 63434 yu = function yu() { 63435 var t, 63436 s, 63437 a, 63438 o, 63439 u, 63440 i, 63441 n = !1; 63442 this.isInitialized = function () { 63443 return n; 63444 }, this.init = function (e) { 63445 t = new vu(), n = !0, i = !!e && e.isPartial, t.on("data", function (e) { 63446 e.startTime = e.startPts / o, e.endTime = e.endPts / o, u.captions.push(e), u.captionStreams[e.stream] = !0; 63447 }); 63448 }, this.isNewInit = function (e, t) { 63449 return !(e && 0 === e.length || t && "object" == _typeof(t) && 0 === Object.keys(t).length) && (a !== e[0] || o !== t[a]); 63450 }, this.parse = function (e, t, i) { 63451 var n; 63452 if (!this.isInitialized()) return null; 63453 if (!t || !i) return null; 63454 if (this.isNewInit(t, i)) a = t[0], o = i[a];else if (null === a || !o) return s.push(e), null; 63455 63456 for (; 0 < s.length;) { 63457 var r = s.shift(); 63458 this.parse(r, t, i); 63459 } 63460 63461 return null !== (n = function (e, t, i) { 63462 return null === t ? null : { 63463 seiNals: fu(e, t)[t], 63464 timescale: i 63465 }; 63466 }(e, a, o)) && n.seiNals ? (this.pushNals(n.seiNals), this.flushStream(), u) : null; 63467 }, this.pushNals = function (e) { 63468 if (!this.isInitialized() || !e || 0 === e.length) return null; 63469 e.forEach(function (e) { 63470 t.push(e); 63471 }); 63472 }, this.flushStream = function () { 63473 if (!this.isInitialized()) return null; 63474 i ? t.partialFlush() : t.flush(); 63475 }, this.clearParsedCaptions = function () { 63476 u.captions = [], u.captionStreams = {}; 63477 }, this.resetCaptionStream = function () { 63478 if (!this.isInitialized()) return null; 63479 t.reset(); 63480 }, this.clearAllCaptions = function () { 63481 this.clearParsedCaptions(), this.resetCaptionStream(); 63482 }, this.reset = function () { 63483 s = [], o = a = null, u ? this.clearParsedCaptions() : u = { 63484 captions: [], 63485 captionStreams: {} 63486 }, this.resetCaptionStream(); 63487 }, this.reset(); 63488 }, 63489 _u = 27, 63490 bu = 15, 63491 Tu = 21; 63492 63493 new ou(); 63494 63495 function Su(e) { 63496 var t = 31 & e[1]; 63497 return t <<= 8, t |= e[2]; 63498 } 63499 63500 function ku(e) { 63501 return !!(64 & e[1]); 63502 } 63503 63504 function Cu(e) { 63505 var t = 0; 63506 return 1 < (48 & e[3]) >>> 4 && (t += e[4] + 1), t; 63507 } 63508 63509 function wu(e) { 63510 switch (e) { 63511 case 5: 63512 return "slice_layer_without_partitioning_rbsp_idr"; 63513 63514 case 6: 63515 return "sei_rbsp"; 63516 63517 case 7: 63518 return "seq_parameter_set_rbsp"; 63519 63520 case 8: 63521 return "pic_parameter_set_rbsp"; 63522 63523 case 9: 63524 return "access_unit_delimiter_rbsp"; 63525 63526 default: 63527 return null; 63528 } 63529 } 63530 63531 function Eu(e) { 63532 return e[0] << 21 | e[1] << 14 | e[2] << 7 | e[3]; 63533 } 63534 63535 var xu, 63536 Au, 63537 Iu, 63538 Pu, 63539 Lu = { 63540 parseType: function parseType(e, t) { 63541 var i = Su(e); 63542 return 0 === i ? "pat" : i === t ? "pmt" : t ? "pes" : null; 63543 }, 63544 parsePat: function parsePat(e) { 63545 var t = ku(e), 63546 i = 4 + Cu(e); 63547 return t && (i += e[i] + 1), (31 & e[i + 10]) << 8 | e[i + 11]; 63548 }, 63549 parsePmt: function parsePmt(e) { 63550 var t = {}, 63551 i = ku(e), 63552 n = 4 + Cu(e); 63553 63554 if (i && (n += e[n] + 1), 1 & e[n + 5]) { 63555 var r; 63556 r = 3 + ((15 & e[n + 1]) << 8 | e[n + 2]) - 4; 63557 63558 for (var s = 12 + ((15 & e[n + 10]) << 8 | e[n + 11]); s < r;) { 63559 var a = n + s; 63560 t[(31 & e[a + 1]) << 8 | e[a + 2]] = e[a], s += 5 + ((15 & e[a + 3]) << 8 | e[a + 4]); 63561 } 63562 63563 return t; 63564 } 63565 }, 63566 parsePayloadUnitStartIndicator: ku, 63567 parsePesType: function parsePesType(e, t) { 63568 switch (t[Su(e)]) { 63569 case _u: 63570 return "video"; 63571 63572 case bu: 63573 return "audio"; 63574 63575 case Tu: 63576 return "timed-metadata"; 63577 63578 default: 63579 return null; 63580 } 63581 }, 63582 parsePesTime: function parsePesTime(e) { 63583 if (!ku(e)) return null; 63584 var t = 4 + Cu(e); 63585 if (t >= e.byteLength) return null; 63586 var i, 63587 n = null; 63588 return 192 & (i = e[t + 7]) && ((n = {}).pts = (14 & e[t + 9]) << 27 | (255 & e[t + 10]) << 20 | (254 & e[t + 11]) << 12 | (255 & e[t + 12]) << 5 | (254 & e[t + 13]) >>> 3, n.pts *= 4, n.pts += (6 & e[t + 13]) >>> 1, n.dts = n.pts, 64 & i && (n.dts = (14 & e[t + 14]) << 27 | (255 & e[t + 15]) << 20 | (254 & e[t + 16]) << 12 | (255 & e[t + 17]) << 5 | (254 & e[t + 18]) >>> 3, n.dts *= 4, n.dts += (6 & e[t + 18]) >>> 1)), n; 63589 }, 63590 videoPacketContainsKeyFrame: function videoPacketContainsKeyFrame(e) { 63591 for (var t = 4 + Cu(e), i = e.subarray(t), n = 0, r = 0, s = !1; r < i.byteLength - 3; r++) { 63592 if (1 === i[r + 2]) { 63593 n = r + 5; 63594 break; 63595 } 63596 } 63597 63598 for (; n < i.byteLength;) { 63599 switch (i[n]) { 63600 case 0: 63601 if (0 !== i[n - 1]) { 63602 n += 2; 63603 break; 63604 } 63605 63606 if (0 !== i[n - 2]) { 63607 n++; 63608 break; 63609 } 63610 63611 for (r + 3 !== n - 2 && "slice_layer_without_partitioning_rbsp_idr" === wu(31 & i[r + 3]) && (s = !0); 1 !== i[++n] && n < i.length;) { 63612 ; 63613 } 63614 63615 r = n - 2, n += 3; 63616 break; 63617 63618 case 1: 63619 if (0 !== i[n - 1] || 0 !== i[n - 2]) { 63620 n += 3; 63621 break; 63622 } 63623 63624 "slice_layer_without_partitioning_rbsp_idr" === wu(31 & i[r + 3]) && (s = !0), r = n - 2, n += 3; 63625 break; 63626 63627 default: 63628 n += 3; 63629 } 63630 } 63631 63632 return i = i.subarray(r), n -= r, r = 0, i && 3 < i.byteLength && "slice_layer_without_partitioning_rbsp_idr" === wu(31 & i[r + 3]) && (s = !0), s; 63633 } 63634 }, 63635 Ou = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350], 63636 Du = { 63637 isLikelyAacData: function isLikelyAacData(e) { 63638 return e[0] === "I".charCodeAt(0) && e[1] === "D".charCodeAt(0) && e[2] === "3".charCodeAt(0); 63639 }, 63640 parseId3TagSize: function parseId3TagSize(e, t) { 63641 var i = e[t + 6] << 21 | e[t + 7] << 14 | e[t + 8] << 7 | e[t + 9]; 63642 return (16 & e[t + 5]) >> 4 ? 20 + i : 10 + i; 63643 }, 63644 parseAdtsSize: function parseAdtsSize(e, t) { 63645 var i = (224 & e[t + 5]) >> 5, 63646 n = e[t + 4] << 3; 63647 return 6144 & e[t + 3] | n | i; 63648 }, 63649 parseType: function parseType(e, t) { 63650 return e[t] === "I".charCodeAt(0) && e[t + 1] === "D".charCodeAt(0) && e[t + 2] === "3".charCodeAt(0) ? "timed-metadata" : !0 & e[t] && 240 == (240 & e[t + 1]) ? "audio" : null; 63651 }, 63652 parseSampleRate: function parseSampleRate(e) { 63653 for (var t = 0; t + 5 < e.length;) { 63654 if (255 === e[t] && 240 == (246 & e[t + 1])) return Ou[(60 & e[t + 2]) >>> 2]; 63655 t++; 63656 } 63657 63658 return null; 63659 }, 63660 parseAacTimestamp: function parseAacTimestamp(e) { 63661 var t, i, n; 63662 t = 10, 64 & e[5] && (t += 4, t += Eu(e.subarray(10, 14))); 63663 63664 do { 63665 if ((i = Eu(e.subarray(t + 4, t + 8))) < 1) return null; 63666 63667 if ("PRIV" === String.fromCharCode(e[t], e[t + 1], e[t + 2], e[t + 3])) { 63668 n = e.subarray(t + 10, t + i + 10); 63669 63670 for (var r = 0; r < n.byteLength; r++) { 63671 if (0 === n[r]) { 63672 if ("com.apple.streaming.transportStreamTimestamp" !== unescape(function (e, t, i) { 63673 var n, 63674 r = ""; 63675 63676 for (n = t; n < i; n++) { 63677 r += "%" + ("00" + e[n].toString(16)).slice(-2); 63678 } 63679 63680 return r; 63681 }(n, 0, r))) break; 63682 var s = n.subarray(r + 1), 63683 a = (1 & s[3]) << 30 | s[4] << 22 | s[5] << 14 | s[6] << 6 | s[7] >>> 2; 63684 return a *= 4, a += 3 & s[7]; 63685 } 63686 } 63687 } 63688 63689 t += 10, t += i; 63690 } while (t < e.byteLength); 63691 63692 return null; 63693 } 63694 }, 63695 Nu = 9e4, 63696 Ru = (xu = function xu(e) { 63697 return 9e4 * e; 63698 }, Au = function Au(e, t) { 63699 return e * t; 63700 }, Iu = function Iu(e) { 63701 return e / 9e4; 63702 }, Pu = function Pu(e, t) { 63703 return e / t; 63704 }, mu), 63705 Uu = {}; 63706 Uu.ts = Lu, Uu.aac = Du; 63707 63708 function Mu(e, t, i) { 63709 for (var n, r, s, a, o = 0, u = Hu, l = !1; u <= e.byteLength;) { 63710 if (71 !== e[o] || 71 !== e[u] && u !== e.byteLength) o++, u++;else { 63711 switch (n = e.subarray(o, u), Uu.ts.parseType(n, t.pid)) { 63712 case "pes": 63713 r = Uu.ts.parsePesType(n, t.table), s = Uu.ts.parsePayloadUnitStartIndicator(n), "audio" === r && s && (a = Uu.ts.parsePesTime(n)) && (a.type = "audio", i.audio.push(a), l = !0); 63714 } 63715 63716 if (l) break; 63717 o += Hu, u += Hu; 63718 } 63719 } 63720 63721 for (o = (u = e.byteLength) - Hu, l = !1; 0 <= o;) { 63722 if (71 !== e[o] || 71 !== e[u] && u !== e.byteLength) o--, u--;else { 63723 switch (n = e.subarray(o, u), Uu.ts.parseType(n, t.pid)) { 63724 case "pes": 63725 r = Uu.ts.parsePesType(n, t.table), s = Uu.ts.parsePayloadUnitStartIndicator(n), "audio" === r && s && (a = Uu.ts.parsePesTime(n)) && (a.type = "audio", i.audio.push(a), l = !0); 63726 } 63727 63728 if (l) break; 63729 o -= Hu, u -= Hu; 63730 } 63731 } 63732 } 63733 63734 function Bu(e, t, i) { 63735 for (var n, r, s, a, o, u, l, c = 0, h = Hu, d = !1, p = { 63736 data: [], 63737 size: 0 63738 }; h < e.byteLength;) { 63739 if (71 !== e[c] || 71 !== e[h]) c++, h++;else { 63740 switch (n = e.subarray(c, h), Uu.ts.parseType(n, t.pid)) { 63741 case "pes": 63742 if (r = Uu.ts.parsePesType(n, t.table), s = Uu.ts.parsePayloadUnitStartIndicator(n), "video" === r && (s && !d && (a = Uu.ts.parsePesTime(n)) && (a.type = "video", i.video.push(a), d = !0), !i.firstKeyFrame)) { 63743 if (s && 0 !== p.size) { 63744 for (o = new Uint8Array(p.size), u = 0; p.data.length;) { 63745 l = p.data.shift(), o.set(l, u), u += l.byteLength; 63746 } 63747 63748 if (Uu.ts.videoPacketContainsKeyFrame(o)) { 63749 var f = Uu.ts.parsePesTime(o); 63750 f && (i.firstKeyFrame = f, i.firstKeyFrame.type = "video"); 63751 } 63752 63753 p.size = 0; 63754 } 63755 63756 p.data.push(n), p.size += n.byteLength; 63757 } 63758 63759 } 63760 63761 if (d && i.firstKeyFrame) break; 63762 c += Hu, h += Hu; 63763 } 63764 } 63765 63766 for (c = (h = e.byteLength) - Hu, d = !1; 0 <= c;) { 63767 if (71 !== e[c] || 71 !== e[h]) c--, h--;else { 63768 switch (n = e.subarray(c, h), Uu.ts.parseType(n, t.pid)) { 63769 case "pes": 63770 r = Uu.ts.parsePesType(n, t.table), s = Uu.ts.parsePayloadUnitStartIndicator(n), "video" === r && s && (a = Uu.ts.parsePesTime(n)) && (a.type = "video", i.video.push(a), d = !0); 63771 } 63772 63773 if (d) break; 63774 c -= Hu, h -= Hu; 63775 } 63776 } 63777 } 63778 63779 function ju(e) { 63780 var t = { 63781 pid: null, 63782 table: null 63783 }, 63784 i = {}; 63785 63786 for (var n in function (e, t) { 63787 for (var i, n = 0, r = Hu; r < e.byteLength;) { 63788 if (71 !== e[n] || 71 !== e[r]) n++, r++;else { 63789 switch (i = e.subarray(n, r), Uu.ts.parseType(i, t.pid)) { 63790 case "pat": 63791 t.pid || (t.pid = Uu.ts.parsePat(i)); 63792 break; 63793 63794 case "pmt": 63795 t.table || (t.table = Uu.ts.parsePmt(i)); 63796 } 63797 63798 if (t.pid && t.table) return; 63799 n += Hu, r += Hu; 63800 } 63801 } 63802 }(e, t), t.table) { 63803 if (t.table.hasOwnProperty(n)) switch (t.table[n]) { 63804 case _u: 63805 i.video = [], Bu(e, t, i), 0 === i.video.length && delete i.video; 63806 break; 63807 63808 case bu: 63809 i.audio = [], Mu(e, t, i), 0 === i.audio.length && delete i.audio; 63810 } 63811 } 63812 63813 return i; 63814 } 63815 63816 var Fu = Nu, 63817 Hu = 188, 63818 Vu = function Vu(e, t) { 63819 var i; 63820 return (i = Uu.aac.isLikelyAacData(e) ? function (e) { 63821 for (var t, i = !1, n = 0, r = null, s = null, a = 0, o = 0; 3 <= e.length - o;) { 63822 switch (Uu.aac.parseType(e, o)) { 63823 case "timed-metadata": 63824 if (e.length - o < 10) { 63825 i = !0; 63826 break; 63827 } 63828 63829 if ((a = Uu.aac.parseId3TagSize(e, o)) > e.length) { 63830 i = !0; 63831 break; 63832 } 63833 63834 null === s && (t = e.subarray(o, o + a), s = Uu.aac.parseAacTimestamp(t)), o += a; 63835 break; 63836 63837 case "audio": 63838 if (e.length - o < 7) { 63839 i = !0; 63840 break; 63841 } 63842 63843 if ((a = Uu.aac.parseAdtsSize(e, o)) > e.length) { 63844 i = !0; 63845 break; 63846 } 63847 63848 null === r && (t = e.subarray(o, o + a), r = Uu.aac.parseSampleRate(t)), n++, o += a; 63849 break; 63850 63851 default: 63852 o++; 63853 } 63854 63855 if (i) return null; 63856 } 63857 63858 if (null === r || null === s) return null; 63859 var u = Fu / r; 63860 return { 63861 audio: [{ 63862 type: "audio", 63863 dts: s, 63864 pts: s 63865 }, { 63866 type: "audio", 63867 dts: s + 1024 * n * u, 63868 pts: s + 1024 * n * u 63869 }] 63870 }; 63871 }(e) : ju(e)) && (i.audio || i.video) ? (function (e, t) { 63872 if (e.audio && e.audio.length) { 63873 var i = t; 63874 "undefined" == typeof i && (i = e.audio[0].dts), e.audio.forEach(function (e) { 63875 e.dts = Ru(e.dts, i), e.pts = Ru(e.pts, i), e.dtsTime = e.dts / Fu, e.ptsTime = e.pts / Fu; 63876 }); 63877 } 63878 63879 if (e.video && e.video.length) { 63880 var n = t; 63881 63882 if ("undefined" == typeof n && (n = e.video[0].dts), e.video.forEach(function (e) { 63883 e.dts = Ru(e.dts, n), e.pts = Ru(e.pts, n), e.dtsTime = e.dts / Fu, e.ptsTime = e.pts / Fu; 63884 }), e.firstKeyFrame) { 63885 var r = e.firstKeyFrame; 63886 r.dts = Ru(r.dts, n), r.pts = Ru(r.pts, n), r.dtsTime = r.dts / Fu, r.ptsTime = r.dts / Fu; 63887 } 63888 } 63889 }(i, t), i) : null; 63890 }; 63891 63892 function qu(e, t) { 63893 if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); 63894 } 63895 63896 var Wu = function Wu(e, t, i) { 63897 return t && zu(e.prototype, t), i && zu(e, i), e; 63898 }; 63899 63900 function zu(e, t) { 63901 for (var i = 0; i < t.length; i++) { 63902 var n = t[i]; 63903 n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n); 63904 } 63905 } 63906 63907 var Gu = null, 63908 Xu = (Ku.prototype.decrypt = function (e, t, i, n, r, s) { 63909 var a = this._key[1], 63910 o = e ^ a[0], 63911 u = n ^ a[1], 63912 l = i ^ a[2], 63913 c = t ^ a[3], 63914 h = void 0, 63915 d = void 0, 63916 p = void 0, 63917 f = a.length / 4 - 2, 63918 m = void 0, 63919 g = 4, 63920 v = this._tables[1], 63921 y = v[0], 63922 _ = v[1], 63923 b = v[2], 63924 T = v[3], 63925 S = v[4]; 63926 63927 for (m = 0; m < f; m++) { 63928 h = y[o >>> 24] ^ _[u >> 16 & 255] ^ b[l >> 8 & 255] ^ T[255 & c] ^ a[g], d = y[u >>> 24] ^ _[l >> 16 & 255] ^ b[c >> 8 & 255] ^ T[255 & o] ^ a[g + 1], p = y[l >>> 24] ^ _[c >> 16 & 255] ^ b[o >> 8 & 255] ^ T[255 & u] ^ a[g + 2], c = y[c >>> 24] ^ _[o >> 16 & 255] ^ b[u >> 8 & 255] ^ T[255 & l] ^ a[g + 3], g += 4, o = h, u = d, l = p; 63929 } 63930 63931 for (m = 0; m < 4; m++) { 63932 r[(3 & -m) + s] = S[o >>> 24] << 24 ^ S[u >> 16 & 255] << 16 ^ S[l >> 8 & 255] << 8 ^ S[255 & c] ^ a[g++], h = o, o = u, u = l, l = c, c = h; 63933 } 63934 }, Ku); 63935 63936 function Ku(e) { 63937 qu(this, Ku), Gu = Gu || function () { 63938 var e = [[[], [], [], [], []], [[], [], [], [], []]], 63939 t = e[0], 63940 i = e[1], 63941 n = t[4], 63942 r = i[4], 63943 s = void 0, 63944 a = void 0, 63945 o = void 0, 63946 u = [], 63947 l = [], 63948 c = void 0, 63949 h = void 0, 63950 d = void 0, 63951 p = void 0, 63952 f = void 0; 63953 63954 for (s = 0; s < 256; s++) { 63955 l[(u[s] = s << 1 ^ 283 * (s >> 7)) ^ s] = s; 63956 } 63957 63958 for (a = o = 0; !n[a]; a ^= c || 1, o = l[o] || 1) { 63959 for (d = (d = o ^ o << 1 ^ o << 2 ^ o << 3 ^ o << 4) >> 8 ^ 255 & d ^ 99, f = 16843009 * u[h = u[c = u[r[n[a] = d] = a]]] ^ 65537 * h ^ 257 * c ^ 16843008 * a, p = 257 * u[d] ^ 16843008 * d, s = 0; s < 4; s++) { 63960 t[s][a] = p = p << 24 ^ p >>> 8, i[s][d] = f = f << 24 ^ f >>> 8; 63961 } 63962 } 63963 63964 for (s = 0; s < 5; s++) { 63965 t[s] = t[s].slice(0), i[s] = i[s].slice(0); 63966 } 63967 63968 return e; 63969 }(), this._tables = [[Gu[0][0].slice(), Gu[0][1].slice(), Gu[0][2].slice(), Gu[0][3].slice(), Gu[0][4].slice()], [Gu[1][0].slice(), Gu[1][1].slice(), Gu[1][2].slice(), Gu[1][3].slice(), Gu[1][4].slice()]]; 63970 var t = void 0, 63971 i = void 0, 63972 n = void 0, 63973 r = void 0, 63974 s = void 0, 63975 a = this._tables[0][4], 63976 o = this._tables[1], 63977 u = e.length, 63978 l = 1; 63979 if (4 !== u && 6 !== u && 8 !== u) throw new Error("Invalid aes key size"); 63980 63981 for (r = e.slice(0), s = [], this._key = [r, s], t = u; t < 4 * u + 28; t++) { 63982 n = r[t - 1], (t % u == 0 || 8 === u && t % u == 4) && (n = a[n >>> 24] << 24 ^ a[n >> 16 & 255] << 16 ^ a[n >> 8 & 255] << 8 ^ a[255 & n], t % u == 0 && (n = n << 8 ^ n >>> 24 ^ l << 24, l = l << 1 ^ 283 * (l >> 7))), r[t] = r[t - u] ^ n; 63983 } 63984 63985 for (i = 0; t; i++, t--) { 63986 n = r[3 & i ? t : t - 4], s[i] = t <= 4 || i < 4 ? n : o[0][a[n >>> 24]] ^ o[1][a[n >> 16 & 255]] ^ o[2][a[n >> 8 & 255]] ^ o[3][a[255 & n]]; 63987 } 63988 } 63989 63990 var Yu = ($u.prototype.on = function (e, t) { 63991 this.listeners[e] || (this.listeners[e] = []), this.listeners[e].push(t); 63992 }, $u.prototype.off = function (e, t) { 63993 if (!this.listeners[e]) return !1; 63994 var i = this.listeners[e].indexOf(t); 63995 return this.listeners[e].splice(i, 1), -1 < i; 63996 }, $u.prototype.trigger = function (e, t) { 63997 var i = this.listeners[e]; 63998 if (i) if (2 === arguments.length) for (var n = i.length, r = 0; r < n; ++r) { 63999 i[r].call(this, t); 64000 } else for (var s = Array.prototype.slice.call(arguments, 1), a = i.length, o = 0; o < a; ++o) { 64001 i[o].apply(this, s); 64002 } 64003 }, $u.prototype.dispose = function () { 64004 this.listeners = {}; 64005 }, $u.prototype.pipe = function (t) { 64006 this.on("data", function (e) { 64007 t.push(e); 64008 }); 64009 }, $u); 64010 64011 function $u() { 64012 qu(this, $u), this.listeners = {}; 64013 } 64014 64015 var Qu, 64016 Ju = (function (e, t) { 64017 if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + _typeof(t)); 64018 e.prototype = Object.create(t && t.prototype, { 64019 constructor: { 64020 value: e, 64021 enumerable: !1, 64022 writable: !0, 64023 configurable: !0 64024 } 64025 }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t); 64026 }(Zu, Qu = Yu), Zu.prototype.processJob_ = function () { 64027 this.jobs.shift()(), this.jobs.length ? this.timeout_ = setTimeout(this.processJob_.bind(this), this.delay) : this.timeout_ = null; 64028 }, Zu.prototype.push = function (e) { 64029 this.jobs.push(e), this.timeout_ || (this.timeout_ = setTimeout(this.processJob_.bind(this), this.delay)); 64030 }, Zu); 64031 64032 function Zu() { 64033 qu(this, Zu); 64034 64035 var e = function (e, t) { 64036 if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 64037 return !t || "object" != _typeof(t) && "function" != typeof t ? e : t; 64038 }(this, Qu.call(this, Yu)); 64039 64040 return e.jobs = [], e.delay = 1, e.timeout_ = null, e; 64041 } 64042 64043 function el(e) { 64044 return e << 24 | (65280 & e) << 8 | (16711680 & e) >> 8 | e >>> 24; 64045 } 64046 64047 function tl(e, t, i) { 64048 var n = new Int32Array(e.buffer, e.byteOffset, e.byteLength >> 2), 64049 r = new Xu(Array.prototype.slice.call(t)), 64050 s = new Uint8Array(e.byteLength), 64051 a = new Int32Array(s.buffer), 64052 o = void 0, 64053 u = void 0, 64054 l = void 0, 64055 c = void 0, 64056 h = void 0, 64057 d = void 0, 64058 p = void 0, 64059 f = void 0, 64060 m = void 0; 64061 64062 for (o = i[0], u = i[1], l = i[2], c = i[3], m = 0; m < n.length; m += 4) { 64063 h = el(n[m]), d = el(n[m + 1]), p = el(n[m + 2]), f = el(n[m + 3]), r.decrypt(h, d, p, f, a, m), a[m] = el(a[m] ^ o), a[m + 1] = el(a[m + 1] ^ u), a[m + 2] = el(a[m + 2] ^ l), a[m + 3] = el(a[m + 3] ^ c), o = h, u = d, l = p, c = f; 64064 } 64065 64066 return s; 64067 } 64068 64069 var il = (nl.prototype.decryptChunk_ = function (t, i, n, r) { 64070 return function () { 64071 var e = tl(t, i, n); 64072 r.set(e, t.byteOffset); 64073 }; 64074 }, Wu(nl, null, [{ 64075 key: "STEP", 64076 get: function get() { 64077 return 32e3; 64078 } 64079 }]), nl); 64080 64081 function nl(e, t, i, n) { 64082 qu(this, nl); 64083 var r = nl.STEP, 64084 s = new Int32Array(e.buffer), 64085 a = new Uint8Array(e.byteLength), 64086 o = 0; 64087 64088 for (this.asyncStream_ = new Ju(), this.asyncStream_.push(this.decryptChunk_(s.subarray(o, o + r), t, i, a)), o = r; o < s.length; o += r) { 64089 i = new Uint32Array([el(s[o - 4]), el(s[o - 3]), el(s[o - 2]), el(s[o - 1])]), this.asyncStream_.push(this.decryptChunk_(s.subarray(o, o + r), t, i, a)); 64090 } 64091 64092 this.asyncStream_.push(function () { 64093 n(null, function (e) { 64094 return e.subarray(0, e.byteLength - e[e.byteLength - 1]); 64095 }(a)); 64096 }); 64097 } 64098 64099 function rl(e, t) { 64100 return /^[a-z]+:/i.test(t) ? t : (/\/\//i.test(e) || (e = ls.buildAbsoluteURL(y.location.href, e)), ls.buildAbsoluteURL(e, t)); 64101 } 64102 64103 function sl(e, t, i) { 64104 return e && i.responseURL && t !== i.responseURL ? i.responseURL : t; 64105 } 64106 64107 function al(e, t) { 64108 if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); 64109 } 64110 /** 64111 * @videojs/http-streaming 64112 * @version 1.13.2 64113 * @copyright 2020 Brightcove, Inc 64114 * @license Apache-2.0 64115 */ 64116 64117 64118 var ol = function ol(e, t, i) { 64119 return t && ul(e.prototype, t), i && ul(e, i), e; 64120 }; 64121 64122 function ul(e, t) { 64123 for (var i = 0; i < t.length; i++) { 64124 var n = t[i]; 64125 n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n); 64126 } 64127 } 64128 64129 function ll(e, t) { 64130 if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + _typeof(t)); 64131 e.prototype = Object.create(t && t.prototype, { 64132 constructor: { 64133 value: e, 64134 enumerable: !1, 64135 writable: !0, 64136 configurable: !0 64137 } 64138 }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t); 64139 } 64140 64141 function cl(e, t) { 64142 if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 64143 return !t || "object" != _typeof(t) && "function" != typeof t ? e : t; 64144 } 64145 64146 function hl(r, s) { 64147 ["AUDIO", "SUBTITLES"].forEach(function (e) { 64148 for (var t in r.mediaGroups[e]) { 64149 for (var i in r.mediaGroups[e][t]) { 64150 var n = r.mediaGroups[e][t][i]; 64151 s(n, e, t, i); 64152 } 64153 } 64154 }); 64155 } 64156 64157 function dl(e, t) { 64158 var i = yl(e, {}), 64159 n = i.playlists[t.id]; 64160 if (!n) return null; 64161 if (n.segments && t.segments && n.segments.length === t.segments.length && n.endList === t.endList && n.mediaSequence === t.mediaSequence) return null; 64162 var r = yl(n, t); 64163 n.segments && (r.segments = function (e, t, i) { 64164 var n = t.slice(); 64165 i = i || 0; 64166 64167 for (var r = Math.min(e.length, t.length + i), s = i; s < r; s++) { 64168 n[s - i] = yl(e[s], n[s - i]); 64169 } 64170 64171 return n; 64172 }(n.segments, t.segments, t.mediaSequence - n.mediaSequence)), r.segments.forEach(function (e) { 64173 !function (e, t) { 64174 e.resolvedUri || (e.resolvedUri = rl(t, e.uri)), e.key && !e.key.resolvedUri && (e.key.resolvedUri = rl(t, e.key.uri)), e.map && !e.map.resolvedUri && (e.map.resolvedUri = rl(t, e.map.uri)); 64175 }(e, r.resolvedUri); 64176 }); 64177 64178 for (var s = 0; s < i.playlists.length; s++) { 64179 i.playlists[s].id === t.id && (i.playlists[s] = r); 64180 } 64181 64182 return i.playlists[t.id] = r, i.playlists[t.uri] = r, i; 64183 } 64184 64185 function pl(e, t) { 64186 return e + "-" + t; 64187 } 64188 64189 function fl(e) { 64190 for (var t = e.playlists.length; t--;) { 64191 var i = e.playlists[t]; 64192 i.resolvedUri = rl(e.uri, i.uri), i.id = pl(t, i.uri), e.playlists[i.id] = i, (e.playlists[i.uri] = i).attributes || (i.attributes = {}, _l.warn("Invalid playlist STREAM-INF detected. Missing BANDWIDTH attribute.")); 64193 } 64194 } 64195 64196 function ml(t) { 64197 hl(t, function (e) { 64198 e.uri && (e.resolvedUri = rl(t.uri, e.uri)); 64199 }); 64200 } 64201 64202 function gl(e, t) { 64203 var i = e.segments[e.segments.length - 1]; 64204 return t && i && i.duration ? 1e3 * i.duration : 500 * (e.targetDuration || 10); 64205 } 64206 64207 var vl = function vl(e, t) { 64208 if (Array.isArray(e)) return e; 64209 if (Symbol.iterator in Object(e)) return function (e, t) { 64210 var i = [], 64211 n = !0, 64212 r = !1, 64213 s = void 0; 64214 64215 try { 64216 for (var a, o = e[Symbol.iterator](); !(n = (a = o.next()).done) && (i.push(a.value), !t || i.length !== t); n = !0) { 64217 ; 64218 } 64219 } catch (e) { 64220 r = !0, s = e; 64221 } finally { 64222 try { 64223 !n && o["return"] && o["return"](); 64224 } finally { 64225 if (r) throw s; 64226 } 64227 } 64228 64229 return i; 64230 }(e, t); 64231 throw new TypeError("Invalid attempt to destructure non-iterable instance"); 64232 }, 64233 yl = as.mergeOptions, 64234 _l = as.log, 64235 bl = (ll(Tl, as.EventTarget), ol(Tl, [{ 64236 key: "playlistRequestError", 64237 value: function value(e, t, i) { 64238 var n = t.uri, 64239 r = t.id; 64240 this.request = null, i && (this.state = i), this.error = { 64241 playlist: this.master.playlists[r], 64242 status: e.status, 64243 message: "HLS playlist request error at URL: " + n + ".", 64244 responseText: e.responseText, 64245 code: 500 <= e.status ? 4 : 2 64246 }, this.trigger("error"); 64247 } 64248 }, { 64249 key: "haveMetadata", 64250 value: function value(e, t, i) { 64251 var n = this; 64252 this.request = null, this.state = "HAVE_METADATA"; 64253 var r = new gs(); 64254 this.customTagParsers.forEach(function (e) { 64255 return r.addParser(e); 64256 }), this.customTagMappers.forEach(function (e) { 64257 return r.addTagMapper(e); 64258 }), r.push(e.responseText), r.end(), r.manifest.uri = t, r.manifest.id = i, r.manifest.attributes = r.manifest.attributes || {}; 64259 var s = dl(this.master, r.manifest); 64260 this.targetDuration = r.manifest.targetDuration, s ? (this.master = s, this.media_ = this.master.playlists[i]) : this.trigger("playlistunchanged"), this.media().endList || (y.clearTimeout(this.mediaUpdateTimeout), this.mediaUpdateTimeout = y.setTimeout(function () { 64261 n.trigger("mediaupdatetimeout"); 64262 }, gl(this.media(), !!s))), this.trigger("loadedplaylist"); 64263 } 64264 }, { 64265 key: "dispose", 64266 value: function value() { 64267 this.trigger("dispose"), this.stopRequest(), y.clearTimeout(this.mediaUpdateTimeout), y.clearTimeout(this.finalRenditionTimeout), this.off(); 64268 } 64269 }, { 64270 key: "stopRequest", 64271 value: function value() { 64272 if (this.request) { 64273 var e = this.request; 64274 this.request = null, e.onreadystatechange = null, e.abort(); 64275 } 64276 } 64277 }, { 64278 key: "media", 64279 value: function value(i, e) { 64280 var n = this; 64281 if (!i) return this.media_; 64282 if ("HAVE_NOTHING" === this.state) throw new Error("Cannot switch media playlist from " + this.state); 64283 64284 if ("string" == typeof i) { 64285 if (!this.master.playlists[i]) throw new Error("Unknown playlist URI: " + i); 64286 i = this.master.playlists[i]; 64287 } 64288 64289 if (y.clearTimeout(this.finalRenditionTimeout), e) { 64290 var t = i.targetDuration / 2 * 1e3 || 5e3; 64291 this.finalRenditionTimeout = y.setTimeout(this.media.bind(this, i, !1), t); 64292 } else { 64293 var r = this.state, 64294 s = !this.media_ || i.id !== this.media_.id; 64295 if (this.master.playlists[i.id].endList) return this.request && (this.request.onreadystatechange = null, this.request.abort(), this.request = null), this.state = "HAVE_METADATA", this.media_ = i, void (s && (this.trigger("mediachanging"), this.trigger("mediachange"))); 64296 64297 if (s) { 64298 if (this.state = "SWITCHING_MEDIA", this.request) { 64299 if (i.resolvedUri === this.request.url) return; 64300 this.request.onreadystatechange = null, this.request.abort(), this.request = null; 64301 } 64302 64303 this.media_ && this.trigger("mediachanging"), this.request = this.hls_.xhr({ 64304 uri: i.resolvedUri, 64305 withCredentials: this.withCredentials 64306 }, function (e, t) { 64307 if (n.request) { 64308 if (i.resolvedUri = sl(n.handleManifestRedirects, i.resolvedUri, t), e) return n.playlistRequestError(n.request, i, r); 64309 n.haveMetadata(t, i.uri, i.id), "HAVE_MASTER" === r ? n.trigger("loadedmetadata") : n.trigger("mediachange"); 64310 } 64311 }); 64312 } 64313 } 64314 } 64315 }, { 64316 key: "pause", 64317 value: function value() { 64318 this.stopRequest(), y.clearTimeout(this.mediaUpdateTimeout), "HAVE_NOTHING" === this.state && (this.started = !1), "SWITCHING_MEDIA" === this.state ? this.media_ ? this.state = "HAVE_METADATA" : this.state = "HAVE_MASTER" : "HAVE_CURRENT_METADATA" === this.state && (this.state = "HAVE_METADATA"); 64319 } 64320 }, { 64321 key: "load", 64322 value: function value(e) { 64323 var t = this; 64324 y.clearTimeout(this.mediaUpdateTimeout); 64325 var i = this.media(); 64326 64327 if (e) { 64328 var n = i ? i.targetDuration / 2 * 1e3 : 5e3; 64329 this.mediaUpdateTimeout = y.setTimeout(function () { 64330 return t.load(); 64331 }, n); 64332 } else this.started ? i && !i.endList ? this.trigger("mediaupdatetimeout") : this.trigger("loadedplaylist") : this.start(); 64333 } 64334 }, { 64335 key: "start", 64336 value: function value() { 64337 var r = this; 64338 this.started = !0, this.request = this.hls_.xhr({ 64339 uri: this.srcUrl, 64340 withCredentials: this.withCredentials 64341 }, function (e, t) { 64342 if (r.request) { 64343 if (r.request = null, e) return r.error = { 64344 status: t.status, 64345 message: "HLS playlist request error at URL: " + r.srcUrl + ".", 64346 responseText: t.responseText, 64347 code: 2 64348 }, "HAVE_NOTHING" === r.state && (r.started = !1), r.trigger("error"); 64349 var i = new gs(); 64350 if (r.customTagParsers.forEach(function (e) { 64351 return i.addParser(e); 64352 }), r.customTagMappers.forEach(function (e) { 64353 return i.addTagMapper(e); 64354 }), i.push(t.responseText), i.end(), r.state = "HAVE_MASTER", r.srcUrl = sl(r.handleManifestRedirects, r.srcUrl, t), i.manifest.uri = r.srcUrl, i.manifest.playlists) return r.master = i.manifest, fl(r.master), ml(r.master), r.trigger("loadedplaylist"), void (r.request || r.media(i.manifest.playlists[0])); 64355 var n = pl(0, r.srcUrl); 64356 return r.master = { 64357 mediaGroups: { 64358 AUDIO: {}, 64359 VIDEO: {}, 64360 "CLOSED-CAPTIONS": {}, 64361 SUBTITLES: {} 64362 }, 64363 uri: y.location.href, 64364 playlists: [{ 64365 uri: r.srcUrl, 64366 id: n, 64367 resolvedUri: r.srcUrl, 64368 attributes: {} 64369 }] 64370 }, r.master.playlists[n] = r.master.playlists[0], r.master.playlists[r.srcUrl] = r.master.playlists[0], r.haveMetadata(t, r.srcUrl, n), r.trigger("loadedmetadata"); 64371 } 64372 }); 64373 } 64374 }]), Tl); 64375 64376 function Tl(e, t) { 64377 var i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; 64378 al(this, Tl); 64379 var n = cl(this, (Tl.__proto__ || Object.getPrototypeOf(Tl)).call(this)), 64380 r = i.withCredentials, 64381 s = void 0 !== r && r, 64382 a = i.handleManifestRedirects, 64383 o = void 0 !== a && a; 64384 n.srcUrl = e, n.hls_ = t, n.withCredentials = s, n.handleManifestRedirects = o; 64385 var u = t.options_; 64386 if (n.customTagParsers = u && u.customTagParsers || [], n.customTagMappers = u && u.customTagMappers || [], !n.srcUrl) throw new Error("A non-empty playlist URL is required"); 64387 return n.state = "HAVE_NOTHING", n.on("mediaupdatetimeout", function () { 64388 "HAVE_METADATA" === n.state && (n.state = "HAVE_CURRENT_METADATA", n.request = n.hls_.xhr({ 64389 uri: rl(n.master.uri, n.media().uri), 64390 withCredentials: n.withCredentials 64391 }, function (e, t) { 64392 if (n.request) return e ? n.playlistRequestError(n.request, n.media(), "HAVE_METADATA") : void n.haveMetadata(n.request, n.media().uri, n.media().id); 64393 })); 64394 }), n; 64395 } 64396 64397 function Sl(e, t, i) { 64398 var n, r; 64399 return "undefined" == typeof t && (t = e.mediaSequence + e.segments.length), t < e.mediaSequence ? 0 : (n = function (e, t) { 64400 var i = 0, 64401 n = t - e.mediaSequence, 64402 r = e.segments[n]; 64403 64404 if (r) { 64405 if ("undefined" != typeof r.start) return { 64406 result: r.start, 64407 precise: !0 64408 }; 64409 if ("undefined" != typeof r.end) return { 64410 result: r.end - r.duration, 64411 precise: !0 64412 }; 64413 } 64414 64415 for (; n--;) { 64416 if ("undefined" != typeof (r = e.segments[n]).end) return { 64417 result: i + r.end, 64418 precise: !0 64419 }; 64420 if (i += r.duration, "undefined" != typeof r.start) return { 64421 result: i + r.start, 64422 precise: !0 64423 }; 64424 } 64425 64426 return { 64427 result: i, 64428 precise: !1 64429 }; 64430 }(e, t)).precise ? n.result : (r = function (e, t) { 64431 for (var i = 0, n = void 0, r = t - e.mediaSequence; r < e.segments.length; r++) { 64432 if ("undefined" != typeof (n = e.segments[r]).start) return { 64433 result: n.start - i, 64434 precise: !0 64435 }; 64436 if (i += n.duration, "undefined" != typeof n.end) return { 64437 result: n.end - i, 64438 precise: !0 64439 }; 64440 } 64441 64442 return { 64443 result: -1, 64444 precise: !1 64445 }; 64446 }(e, t)).precise ? r.result : n.result + i; 64447 } 64448 64449 function kl(e, t, i) { 64450 if (!e) return 0; 64451 64452 if ("number" != typeof i && (i = 0), "undefined" == typeof t) { 64453 if (e.totalDuration) return e.totalDuration; 64454 if (!e.endList) return y.Infinity; 64455 } 64456 64457 return Sl(e, t, i); 64458 } 64459 64460 function Cl(e, t, i) { 64461 var n = 0; 64462 64463 if (i < t) { 64464 var r = [i, t]; 64465 t = r[0], i = r[1]; 64466 } 64467 64468 if (t < 0) { 64469 for (var s = t; s < Math.min(0, i); s++) { 64470 n += e.targetDuration; 64471 } 64472 64473 t = 0; 64474 } 64475 64476 for (var a = t; a < i; a++) { 64477 n += e.segments[a].duration; 64478 } 64479 64480 return n; 64481 } 64482 64483 function wl(e, t) { 64484 if (!e.segments.length) return 0; 64485 var i = e.segments.length, 64486 n = e.segments[i - 1].duration || e.targetDuration, 64487 r = "number" == typeof t ? t : n + 2 * e.targetDuration; 64488 if (0 === r) return i; 64489 64490 for (var s = 0; i-- && !(r <= (s += e.segments[i].duration));) { 64491 ; 64492 } 64493 64494 return Math.max(0, i); 64495 } 64496 64497 function El(e, t, i, n) { 64498 if (!e || !e.segments) return null; 64499 if (e.endList) return kl(e); 64500 if (null === t) return null; 64501 t = t || 0; 64502 var r = i ? wl(e, n) : e.segments.length; 64503 return Sl(e, e.mediaSequence + r, t); 64504 } 64505 64506 function xl(e) { 64507 return e - Math.floor(e) == 0; 64508 } 64509 64510 function Al(e, t) { 64511 if (xl(t)) return t + .1 * e; 64512 64513 for (var i = t.toString().split(".")[1].length, n = 1; n <= i; n++) { 64514 var r = Math.pow(10, n), 64515 s = t * r; 64516 if (xl(s) || n === i) return (s + e) / r; 64517 } 64518 } 64519 64520 function Il(e) { 64521 return e.excludeUntil && e.excludeUntil > Date.now(); 64522 } 64523 64524 function Pl(e) { 64525 return e.excludeUntil && e.excludeUntil === 1 / 0; 64526 } 64527 64528 function Ll(e) { 64529 var t = Il(e); 64530 return !e.disabled && !t; 64531 } 64532 64533 function Ol(e, t) { 64534 return t.attributes && t.attributes[e]; 64535 } 64536 64537 function Dl(e, t) { 64538 if (1 === e.playlists.length) return !0; 64539 var i = t.attributes.BANDWIDTH || Number.MAX_VALUE; 64540 return 0 === e.playlists.filter(function (e) { 64541 return !!Ll(e) && (e.attributes.BANDWIDTH || 0) < i; 64542 }).length; 64543 } 64544 64545 function Nl() { 64546 return function e(t, n) { 64547 t = nc({ 64548 timeout: 45e3 64549 }, t); 64550 var i = e.beforeRequest || as.Hls.xhr.beforeRequest; 64551 64552 if (i && "function" == typeof i) { 64553 var r = i(t); 64554 r && (t = r); 64555 } 64556 64557 var s = ic(t, function (e, t) { 64558 var i = s.response; 64559 !e && i && (s.responseTime = Date.now(), s.roundTripTime = s.responseTime - s.requestTime, s.bytesReceived = i.byteLength || i.length, s.bandwidth || (s.bandwidth = Math.floor(s.bytesReceived / s.roundTripTime * 8 * 1e3))), t.headers && (s.responseHeaders = t.headers), e && "ETIMEDOUT" === e.code && (s.timedout = !0), e || s.aborted || 200 === t.statusCode || 206 === t.statusCode || 0 === t.statusCode || (e = new Error("XHR Failed with a response of: " + (s && (i || s.responseText)))), n(e, s); 64560 }), 64561 a = s.abort; 64562 return s.abort = function () { 64563 return s.aborted = !0, a.apply(s, arguments); 64564 }, s.uri = t.uri, s.requestTime = Date.now(), s; 64565 }; 64566 } 64567 64568 function Rl(e) { 64569 var t = {}; 64570 return e.byterange && (t.Range = function (e) { 64571 var t; 64572 return t = e.offset + e.length - 1, "bytes=" + e.offset + "-" + t; 64573 }(e.byterange)), t; 64574 } 64575 64576 function Ul(e, t) { 64577 var i = e.toString(16); 64578 return "00".substring(0, 2 - i.length) + i + (t % 2 ? " " : ""); 64579 } 64580 64581 function Ml(e) { 64582 return 32 <= e && e < 126 ? String.fromCharCode(e) : "."; 64583 } 64584 64585 function Bl(i) { 64586 var n = {}; 64587 return Object.keys(i).forEach(function (e) { 64588 var t = i[e]; 64589 ArrayBuffer.isView(t) ? n[e] = { 64590 bytes: t.buffer, 64591 byteOffset: t.byteOffset, 64592 byteLength: t.byteLength 64593 } : n[e] = t; 64594 }), n; 64595 } 64596 64597 function jl(e) { 64598 var t = e.byterange || { 64599 length: 1 / 0, 64600 offset: 0 64601 }; 64602 return [t.length, t.offset, e.resolvedUri].join(","); 64603 } 64604 64605 function Fl(e) { 64606 return e.resolvedUri; 64607 } 64608 64609 function Hl(e) { 64610 for (var t = Array.prototype.slice.call(e), i = "", n = 0; n < t.length / 16; n++) { 64611 i += t.slice(16 * n, 16 * n + 16).map(Ul).join("") + " " + t.slice(16 * n, 16 * n + 16).map(Ml).join("") + "\n"; 64612 } 64613 64614 return i; 64615 } 64616 64617 function Vl(e) { 64618 var t = e.playlist, 64619 i = e.time, 64620 n = void 0 === i ? void 0 : i, 64621 r = e.callback; 64622 if (!r) throw new Error("getProgramTime: callback must be provided"); 64623 if (!t || void 0 === n) return r({ 64624 message: "getProgramTime: playlist and time must be provided" 64625 }); 64626 64627 var s = function (e, t) { 64628 if (!t || !t.segments || 0 === t.segments.length) return null; 64629 64630 for (var i = 0, n = void 0, r = 0; r < t.segments.length && !(e <= (i = (n = t.segments[r]).videoTimingInfo ? n.videoTimingInfo.transmuxedPresentationEnd : i + n.duration)); r++) { 64631 ; 64632 } 64633 64634 var s = t.segments[t.segments.length - 1]; 64635 if (s.videoTimingInfo && s.videoTimingInfo.transmuxedPresentationEnd < e) return null; 64636 64637 if (i < e) { 64638 if (e > i + .25 * s.duration) return null; 64639 n = s; 64640 } 64641 64642 return { 64643 segment: n, 64644 estimatedStart: n.videoTimingInfo ? n.videoTimingInfo.transmuxedPresentationStart : i - n.duration, 64645 type: n.videoTimingInfo ? "accurate" : "estimate" 64646 }; 64647 }(n, t); 64648 64649 if (!s) return r({ 64650 message: "valid programTime was not found" 64651 }); 64652 if ("estimate" === s.type) return r({ 64653 message: "Accurate programTime could not be determined. Please seek to e.seekTime and try again", 64654 seekTime: s.estimatedStart 64655 }); 64656 64657 var a = { 64658 mediaSeconds: n 64659 }, 64660 o = function (e, t) { 64661 if (!t.dateTimeObject) return null; 64662 var i = t.videoTimingInfo.transmuxerPrependedSeconds, 64663 n = e - (t.videoTimingInfo.transmuxedPresentationStart + i); 64664 return new Date(t.dateTimeObject.getTime() + 1e3 * n); 64665 }(n, s.segment); 64666 64667 return o && (a.programDateTime = o.toISOString()), r(null, a); 64668 } 64669 64670 function ql(e) { 64671 var t = e.programTime, 64672 i = e.playlist, 64673 n = e.retryCount, 64674 r = void 0 === n ? 2 : n, 64675 s = e.seekTo, 64676 a = e.pauseAfterSeek, 64677 o = void 0 === a || a, 64678 u = e.tech, 64679 l = e.callback; 64680 if (!l) throw new Error("seekToProgramTime: callback must be provided"); 64681 if ("undefined" == typeof t || !i || !s) return l({ 64682 message: "seekToProgramTime: programTime, seekTo and playlist must be provided" 64683 }); 64684 if (!i.endList && !u.hasStarted_) return l({ 64685 message: "player must be playing a live stream to start buffering" 64686 }); 64687 if (!function (e) { 64688 if (!e.segments || 0 === e.segments.length) return !1; 64689 64690 for (var t = 0; t < e.segments.length; t++) { 64691 if (!e.segments[t].dateTimeObject) return !1; 64692 } 64693 64694 return !0; 64695 }(i)) return l({ 64696 message: "programDateTime tags must be provided in the manifest " + i.resolvedUri 64697 }); 64698 64699 var c = function (e, t) { 64700 var i = void 0; 64701 64702 try { 64703 i = new Date(e); 64704 } catch (e) { 64705 return null; 64706 } 64707 64708 if (!t || !t.segments || 0 === t.segments.length) return null; 64709 var n = t.segments[0]; 64710 if (i < n.dateTimeObject) return null; 64711 64712 for (var r = 0; r < t.segments.length - 1; r++) { 64713 if (n = t.segments[r], i < t.segments[r + 1].dateTimeObject) break; 64714 } 64715 64716 var s = t.segments[t.segments.length - 1], 64717 a = s.dateTimeObject, 64718 o = s.videoTimingInfo ? function (e) { 64719 return e.transmuxedPresentationEnd - e.transmuxedPresentationStart - e.transmuxerPrependedSeconds; 64720 }(s.videoTimingInfo) : s.duration + .25 * s.duration; 64721 return new Date(a.getTime() + 1e3 * o) < i ? null : (a < i && (n = s), { 64722 segment: n, 64723 estimatedStart: n.videoTimingInfo ? n.videoTimingInfo.transmuxedPresentationStart : tc.duration(t, t.mediaSequence + t.segments.indexOf(n)), 64724 type: n.videoTimingInfo ? "accurate" : "estimate" 64725 }); 64726 }(t, i); 64727 64728 if (!c) return l({ 64729 message: t + " was not found in the stream" 64730 }); 64731 64732 var h = c.segment, 64733 d = function (e, t) { 64734 var i = void 0, 64735 n = void 0; 64736 64737 try { 64738 i = new Date(e), n = new Date(t); 64739 } catch (e) {} 64740 64741 var r = i.getTime(); 64742 return (n.getTime() - r) / 1e3; 64743 }(h.dateTimeObject, t); 64744 64745 if ("estimate" === c.type) return 0 === r ? l({ 64746 message: t + " is not buffered yet. Try again" 64747 }) : (s(c.estimatedStart + d), void u.one("seeked", function () { 64748 ql({ 64749 programTime: t, 64750 playlist: i, 64751 retryCount: r - 1, 64752 seekTo: s, 64753 pauseAfterSeek: o, 64754 tech: u, 64755 callback: l 64756 }); 64757 })); 64758 var p = h.start + d; 64759 u.one("seeked", function () { 64760 return l(null, u.currentTime()); 64761 }), o && u.pause(), s(p); 64762 } 64763 64764 function Wl(e, t) { 64765 var i = [], 64766 n = void 0; 64767 if (e && e.length) for (n = 0; n < e.length; n++) { 64768 t(e.start(n), e.end(n)) && i.push([e.start(n), e.end(n)]); 64769 } 64770 return as.createTimeRanges(i); 64771 } 64772 64773 function zl(e, i) { 64774 return Wl(e, function (e, t) { 64775 return e - .1 <= i && i <= t + .1; 64776 }); 64777 } 64778 64779 function Gl(e, t) { 64780 return Wl(e, function (e) { 64781 return t <= e - 1 / 30; 64782 }); 64783 } 64784 64785 function Xl(e) { 64786 var t = []; 64787 if (!e || !e.length) return ""; 64788 64789 for (var i = 0; i < e.length; i++) { 64790 t.push(e.start(i) + " => " + e.end(i)); 64791 } 64792 64793 return t.join(", "); 64794 } 64795 64796 function Kl(e) { 64797 for (var t = [], i = 0; i < e.length; i++) { 64798 t.push({ 64799 start: e.start(i), 64800 end: e.end(i) 64801 }); 64802 } 64803 64804 return t; 64805 } 64806 64807 function Yl(e, t, i) { 64808 var n = void 0, 64809 r = void 0; 64810 if (i && i.cues) for (n = i.cues.length; n--;) { 64811 (r = i.cues[n]).startTime <= t && r.endTime >= e && i.removeCue(r); 64812 } 64813 } 64814 64815 function $l(e) { 64816 return isNaN(e) || Math.abs(e) === 1 / 0 ? Number.MAX_VALUE : e; 64817 } 64818 64819 function Ql(e, t, i) { 64820 var n = y.WebKitDataCue || y.VTTCue; 64821 64822 if (t && t.forEach(function (e) { 64823 var t = e.stream; 64824 this.inbandTextTracks_[t].addCue(new n(e.startTime + this.timestampOffset, e.endTime + this.timestampOffset, e.text)); 64825 }, e), i) { 64826 var r = $l(e.mediaSource_.duration); 64827 64828 if (i.forEach(function (e) { 64829 var i = e.cueTime + this.timestampOffset; 64830 !("number" != typeof i || y.isNaN(i) || i < 0) && i < 1 / 0 && e.frames.forEach(function (e) { 64831 var t = new n(i, i, e.value || e.url || e.data || ""); 64832 t.frame = e, t.value = e, function (e) { 64833 Object.defineProperties(e.frame, { 64834 id: { 64835 get: function get() { 64836 return as.log.warn("cue.frame.id is deprecated. Use cue.value.key instead."), e.value.key; 64837 } 64838 }, 64839 value: { 64840 get: function get() { 64841 return as.log.warn("cue.frame.value is deprecated. Use cue.value.data instead."), e.value.data; 64842 } 64843 }, 64844 privateData: { 64845 get: function get() { 64846 return as.log.warn("cue.frame.privateData is deprecated. Use cue.value.data instead."), e.value.data; 64847 } 64848 } 64849 }); 64850 }(t), this.metadataTrack_.addCue(t); 64851 }, this); 64852 }, e), e.metadataTrack_ && e.metadataTrack_.cues && e.metadataTrack_.cues.length) { 64853 for (var s = e.metadataTrack_.cues, a = [], o = 0; o < s.length; o++) { 64854 s[o] && a.push(s[o]); 64855 } 64856 64857 var u = a.reduce(function (e, t) { 64858 var i = e[t.startTime] || []; 64859 return i.push(t), e[t.startTime] = i, e; 64860 }, {}), 64861 l = Object.keys(u).sort(function (e, t) { 64862 return Number(e) - Number(t); 64863 }); 64864 l.forEach(function (e, t) { 64865 var i = u[e], 64866 n = Number(l[t + 1]) || r; 64867 i.forEach(function (e) { 64868 e.endTime = n; 64869 }); 64870 }); 64871 } 64872 } 64873 } 64874 64875 var Jl = as.createTimeRange, 64876 Zl = Al.bind(null, 1), 64877 ec = Al.bind(null, -1), 64878 tc = { 64879 duration: kl, 64880 seekable: function seekable(e, t, i) { 64881 var n = t || 0, 64882 r = El(e, t, !0, i); 64883 return null === r ? Jl() : Jl(n, r); 64884 }, 64885 safeLiveIndex: wl, 64886 getMediaInfoForTime: function getMediaInfoForTime(e, t, i, n) { 64887 var r = void 0, 64888 s = void 0, 64889 a = e.segments.length, 64890 o = t - n; 64891 64892 if (o < 0) { 64893 if (0 < i) for (r = i - 1; 0 <= r; r--) { 64894 if (s = e.segments[r], 0 < (o += ec(s.duration))) return { 64895 mediaIndex: r, 64896 startTime: n - Cl(e, i, r) 64897 }; 64898 } 64899 return { 64900 mediaIndex: 0, 64901 startTime: t 64902 }; 64903 } 64904 64905 if (i < 0) { 64906 for (r = i; r < 0; r++) { 64907 if ((o -= e.targetDuration) < 0) return { 64908 mediaIndex: 0, 64909 startTime: t 64910 }; 64911 } 64912 64913 i = 0; 64914 } 64915 64916 for (r = i; r < a; r++) { 64917 if (s = e.segments[r], (o -= Zl(s.duration)) < 0) return { 64918 mediaIndex: r, 64919 startTime: n + Cl(e, i, r) 64920 }; 64921 } 64922 64923 return { 64924 mediaIndex: a - 1, 64925 startTime: t 64926 }; 64927 }, 64928 isEnabled: Ll, 64929 isDisabled: function isDisabled(e) { 64930 return e.disabled; 64931 }, 64932 isBlacklisted: Il, 64933 isIncompatible: Pl, 64934 playlistEnd: El, 64935 isAes: function isAes(e) { 64936 for (var t = 0; t < e.segments.length; t++) { 64937 if (e.segments[t].key) return !0; 64938 } 64939 64940 return !1; 64941 }, 64942 isFmp4: function isFmp4(e) { 64943 for (var t = 0; t < e.segments.length; t++) { 64944 if (e.segments[t].map) return !0; 64945 } 64946 64947 return !1; 64948 }, 64949 hasAttribute: Ol, 64950 estimateSegmentRequestTime: function estimateSegmentRequestTime(e, t, i, n) { 64951 var r = 3 < arguments.length && void 0 !== n ? n : 0; 64952 return Ol("BANDWIDTH", i) ? (e * i.attributes.BANDWIDTH - 8 * r) / t : NaN; 64953 }, 64954 isLowestEnabledRendition: Dl 64955 }, 64956 ic = as.xhr, 64957 nc = as.mergeOptions, 64958 rc = Object.freeze({ 64959 createTransferableMessage: Bl, 64960 initSegmentId: jl, 64961 segmentKeyId: Fl, 64962 hexDump: Hl, 64963 tagDump: function tagDump(e) { 64964 var t = e.bytes; 64965 return Hl(t); 64966 }, 64967 textRanges: function textRanges(e) { 64968 var t, 64969 i, 64970 n = "", 64971 r = void 0; 64972 64973 for (r = 0; r < e.length; r++) { 64974 n += (i = r, (t = e).start(i) + "-" + t.end(i) + " "); 64975 } 64976 64977 return n; 64978 } 64979 }), 64980 sc = "undefined" != typeof window ? window : {}, 64981 ac = "undefined" == typeof Symbol ? "__target" : Symbol(), 64982 oc = "application/javascript", 64983 uc = sc.BlobBuilder || sc.WebKitBlobBuilder || sc.MozBlobBuilder || sc.MSBlobBuilder, 64984 lc = sc.URL || sc.webkitURL || lc && lc.msURL, 64985 cc = sc.Worker; 64986 64987 function hc(r, s) { 64988 return function (e) { 64989 var t = this; 64990 if (!s) return new cc(r); 64991 64992 if (cc && !e) { 64993 var i = mc(s.toString().replace(/^function.+?{/, "").slice(0, -1)); 64994 return this[ac] = new cc(i), function (e, t) { 64995 if (!e || !t) return; 64996 var i = e.terminate; 64997 e.objURL = t, e.terminate = function () { 64998 e.objURL && lc.revokeObjectURL(e.objURL), i.call(e); 64999 }; 65000 }(this[ac], i), this[ac]; 65001 } 65002 65003 var n = { 65004 postMessage: function postMessage(e) { 65005 t.onmessage && setTimeout(function () { 65006 t.onmessage({ 65007 data: e, 65008 target: n 65009 }); 65010 }); 65011 } 65012 }; 65013 s.call(n), this.postMessage = function (e) { 65014 setTimeout(function () { 65015 n.onmessage({ 65016 data: e, 65017 target: t 65018 }); 65019 }); 65020 }, this.isThisThread = !0; 65021 }; 65022 } 65023 65024 if (cc) { 65025 var dc, 65026 pc = mc("self.onmessage = function () {}"), 65027 fc = new Uint8Array(1); 65028 65029 try { 65030 (dc = new cc(pc)).postMessage(fc, [fc.buffer]); 65031 } catch (e) { 65032 cc = null; 65033 } finally { 65034 lc.revokeObjectURL(pc), dc && dc.terminate(); 65035 } 65036 } 65037 65038 function mc(t) { 65039 try { 65040 return lc.createObjectURL(new Blob([t], { 65041 type: oc 65042 })); 65043 } catch (e) { 65044 var i = new uc(); 65045 return i.append(t), lc.createObjectURL(i.getBlob(type)); 65046 } 65047 } 65048 65049 function gc(e) { 65050 return e.map(function (e) { 65051 return e.replace(/avc1\.(\d+)\.(\d+)/i, function (e, t, i) { 65052 return "avc1." + ("00" + Number(t).toString(16)).slice(-2) + "00" + ("00" + Number(i).toString(16)).slice(-2); 65053 }); 65054 }); 65055 } 65056 65057 function vc(e) { 65058 var t, 65059 i = 0 < arguments.length && void 0 !== e ? e : "", 65060 n = { 65061 codecCount: 0 65062 }; 65063 return n.codecCount = i.split(",").length, n.codecCount = n.codecCount || 2, (t = /(^|\s|,)+(avc[13])([^ ,]*)/i.exec(i)) && (n.videoCodec = t[2], n.videoObjectTypeIndicator = t[3]), n.audioProfile = /(^|\s|,)+mp4a.[0-9A-Fa-f]+\.([0-9A-Fa-f]+)/i.exec(i), n.audioProfile = n.audioProfile && n.audioProfile[2], n; 65064 } 65065 65066 function yc(e, t, i) { 65067 return e + "/" + t + '; codecs="' + i.filter(function (e) { 65068 return !!e; 65069 }).join(", ") + '"'; 65070 } 65071 65072 function _c(e, t) { 65073 var i = function (e) { 65074 return e.segments && e.segments.length && e.segments[0].map ? "mp4" : "mp2t"; 65075 }(t), 65076 n = function (e) { 65077 var t = e.attributes || {}; 65078 return t.CODECS ? vc(t.CODECS) : Cc; 65079 }(t), 65080 r = t.attributes || {}, 65081 s = !0, 65082 a = !1; 65083 65084 if (!t) return []; 65085 65086 if (e.mediaGroups.AUDIO && r.AUDIO) { 65087 var o = e.mediaGroups.AUDIO[r.AUDIO]; 65088 if (o) for (var u in s = !(a = !0), o) { 65089 if (!o[u].uri && !o[u].playlists) { 65090 s = !0; 65091 break; 65092 } 65093 } 65094 } 65095 65096 a && !n.audioProfile && (s || (n.audioProfile = function (e, t) { 65097 if (!e.mediaGroups.AUDIO || !t) return null; 65098 var i = e.mediaGroups.AUDIO[t]; 65099 if (!i) return null; 65100 65101 for (var n in i) { 65102 var r = i[n]; 65103 if (r["default"] && r.playlists) return vc(r.playlists[0].attributes.CODECS).audioProfile; 65104 } 65105 65106 return null; 65107 }(e, r.AUDIO)), n.audioProfile || (as.log.warn("Multiple audio tracks present but no audio codec string is specified. Attempting to use the default audio codec (mp4a.40.2)"), n.audioProfile = Cc.audioProfile)); 65108 var l = {}; 65109 n.videoCodec && (l.video = "" + n.videoCodec + n.videoObjectTypeIndicator), n.audioProfile && (l.audio = "mp4a.40." + n.audioProfile); 65110 var c = yc("audio", i, [l.audio]), 65111 h = yc("video", i, [l.video]), 65112 d = yc("video", i, [l.video, l.audio]); 65113 return a ? !s && l.video ? [h, c] : s || l.video ? [d, c] : [c, c] : l.video ? [d] : [c]; 65114 } 65115 65116 function bc(e) { 65117 var r = { 65118 type: "", 65119 parameters: {} 65120 }, 65121 t = e.trim().split(";"); 65122 return r.type = t.shift().trim(), t.forEach(function (e) { 65123 var t = e.trim().split("="); 65124 65125 if (1 < t.length) { 65126 var i = t[0].replace(/"/g, "").trim(), 65127 n = t[1].replace(/"/g, "").trim(); 65128 r.parameters[i] = n; 65129 } 65130 }), r; 65131 } 65132 65133 function Tc(e) { 65134 return /mp4a\.\d+.\d+/i.test(e); 65135 } 65136 65137 function Sc(e) { 65138 return /avc1\.[\da-f]+/i.test(e); 65139 } 65140 65141 var kc = new hc("./transmuxer-worker.worker.js", function (e, t) { 65142 var kt = this; 65143 !function () { 65144 function e() { 65145 this.init = function () { 65146 var s = {}; 65147 this.on = function (e, t) { 65148 s[e] || (s[e] = []), s[e] = s[e].concat(t); 65149 }, this.off = function (e, t) { 65150 var i; 65151 return !!s[e] && (i = s[e].indexOf(t), s[e] = s[e].slice(), s[e].splice(i, 1), -1 < i); 65152 }, this.trigger = function (e) { 65153 var t, i, n, r; 65154 if (t = s[e]) if (2 === arguments.length) for (n = t.length, i = 0; i < n; ++i) { 65155 t[i].call(this, arguments[1]); 65156 } else { 65157 for (r = [], i = arguments.length, i = 1; i < arguments.length; ++i) { 65158 r.push(arguments[i]); 65159 } 65160 65161 for (n = t.length, i = 0; i < n; ++i) { 65162 t[i].apply(this, r); 65163 } 65164 } 65165 }, this.dispose = function () { 65166 s = {}; 65167 }; 65168 }; 65169 } 65170 65171 e.prototype.pipe = function (t) { 65172 return this.on("data", function (e) { 65173 t.push(e); 65174 }), this.on("done", function (e) { 65175 t.flush(e); 65176 }), this.on("partialdone", function (e) { 65177 t.partialFlush(e); 65178 }), this.on("endedtimeline", function (e) { 65179 t.endTimeline(e); 65180 }), this.on("reset", function (e) { 65181 t.reset(e); 65182 }), t; 65183 }, e.prototype.push = function (e) { 65184 this.trigger("data", e); 65185 }, e.prototype.flush = function (e) { 65186 this.trigger("done", e); 65187 }, e.prototype.partialFlush = function (e) { 65188 this.trigger("partialdone", e); 65189 }, e.prototype.endTimeline = function (e) { 65190 this.trigger("endedtimeline", e); 65191 }, e.prototype.reset = function (e) { 65192 this.trigger("reset", e); 65193 }; 65194 65195 var l, 65196 t, 65197 i, 65198 r, 65199 s, 65200 n, 65201 a, 65202 o, 65203 u, 65204 c, 65205 h, 65206 d, 65207 p, 65208 f, 65209 m, 65210 g, 65211 v, 65212 y, 65213 _, 65214 b, 65215 T, 65216 S, 65217 k, 65218 C, 65219 w, 65220 E, 65221 x, 65222 A, 65223 I, 65224 P, 65225 L, 65226 O, 65227 D, 65228 N, 65229 R, 65230 U, 65231 M, 65232 B, 65233 j, 65234 F, 65235 H = e, 65236 V = Math.pow(2, 32) - 1; 65237 65238 !function () { 65239 var e; 65240 65241 if (S = { 65242 avc1: [], 65243 avcC: [], 65244 btrt: [], 65245 dinf: [], 65246 dref: [], 65247 esds: [], 65248 ftyp: [], 65249 hdlr: [], 65250 mdat: [], 65251 mdhd: [], 65252 mdia: [], 65253 mfhd: [], 65254 minf: [], 65255 moof: [], 65256 moov: [], 65257 mp4a: [], 65258 mvex: [], 65259 mvhd: [], 65260 pasp: [], 65261 sdtp: [], 65262 smhd: [], 65263 stbl: [], 65264 stco: [], 65265 stsc: [], 65266 stsd: [], 65267 stsz: [], 65268 stts: [], 65269 styp: [], 65270 tfdt: [], 65271 tfhd: [], 65272 traf: [], 65273 trak: [], 65274 trun: [], 65275 trex: [], 65276 tkhd: [], 65277 vmhd: [] 65278 }, "undefined" != typeof Uint8Array) { 65279 for (e in S) { 65280 S.hasOwnProperty(e) && (S[e] = [e.charCodeAt(0), e.charCodeAt(1), e.charCodeAt(2), e.charCodeAt(3)]); 65281 } 65282 65283 k = new Uint8Array(["i".charCodeAt(0), "s".charCodeAt(0), "o".charCodeAt(0), "m".charCodeAt(0)]), w = new Uint8Array(["a".charCodeAt(0), "v".charCodeAt(0), "c".charCodeAt(0), "1".charCodeAt(0)]), C = new Uint8Array([0, 0, 0, 1]), E = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 105, 100, 101, 111, 72, 97, 110, 100, 108, 101, 114, 0]), x = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 115, 111, 117, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 111, 117, 110, 100, 72, 97, 110, 100, 108, 101, 114, 0]), A = { 65284 video: E, 65285 audio: x 65286 }, L = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 117, 114, 108, 32, 0, 0, 0, 1]), P = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]), O = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]), D = O, N = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), R = O, I = new Uint8Array([0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]); 65287 } 65288 }(), l = function l(e) { 65289 var t, 65290 i, 65291 n = [], 65292 r = 0; 65293 65294 for (t = 1; t < arguments.length; t++) { 65295 n.push(arguments[t]); 65296 } 65297 65298 for (t = n.length; t--;) { 65299 r += n[t].byteLength; 65300 } 65301 65302 for (i = new Uint8Array(r + 8), new DataView(i.buffer, i.byteOffset, i.byteLength).setUint32(0, i.byteLength), i.set(e, 4), t = 0, r = 8; t < n.length; t++) { 65303 i.set(n[t], r), r += n[t].byteLength; 65304 } 65305 65306 return i; 65307 }, t = function t() { 65308 return l(S.dinf, l(S.dref, L)); 65309 }, i = function i(e) { 65310 return l(S.esds, new Uint8Array([0, 0, 0, 0, 3, 25, 0, 0, 0, 4, 17, 64, 21, 0, 6, 0, 0, 0, 218, 192, 0, 0, 218, 192, 5, 2, e.audioobjecttype << 3 | e.samplingfrequencyindex >>> 1, e.samplingfrequencyindex << 7 | e.channelcount << 3, 6, 1, 2])); 65311 }, m = function m(e) { 65312 return l(S.hdlr, A[e]); 65313 }, f = function f(e) { 65314 var t = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 1, 95, 144, e.duration >>> 24 & 255, e.duration >>> 16 & 255, e.duration >>> 8 & 255, 255 & e.duration, 85, 196, 0, 0]); 65315 return e.samplerate && (t[12] = e.samplerate >>> 24 & 255, t[13] = e.samplerate >>> 16 & 255, t[14] = e.samplerate >>> 8 & 255, t[15] = 255 & e.samplerate), l(S.mdhd, t); 65316 }, p = function p(e) { 65317 return l(S.mdia, f(e), m(e.type), n(e)); 65318 }, s = function s(e) { 65319 return l(S.mfhd, new Uint8Array([0, 0, 0, 0, (4278190080 & e) >> 24, (16711680 & e) >> 16, (65280 & e) >> 8, 255 & e])); 65320 }, n = function n(e) { 65321 return l(S.minf, "video" === e.type ? l(S.vmhd, I) : l(S.smhd, P), t(), v(e)); 65322 }, a = function a(e, t) { 65323 for (var i = [], n = t.length; n--;) { 65324 i[n] = _(t[n]); 65325 } 65326 65327 return l.apply(null, [S.moof, s(e)].concat(i)); 65328 }, o = function o(e) { 65329 for (var t = e.length, i = []; t--;) { 65330 i[t] = h(e[t]); 65331 } 65332 65333 return l.apply(null, [S.moov, c(4294967295)].concat(i).concat(u(e))); 65334 }, u = function u(e) { 65335 for (var t = e.length, i = []; t--;) { 65336 i[t] = b(e[t]); 65337 } 65338 65339 return l.apply(null, [S.mvex].concat(i)); 65340 }, c = function c(e) { 65341 var t = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 95, 144, (4278190080 & e) >> 24, (16711680 & e) >> 16, (65280 & e) >> 8, 255 & e, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255]); 65342 return l(S.mvhd, t); 65343 }, g = function g(e) { 65344 var t, 65345 i, 65346 n = e.samples || [], 65347 r = new Uint8Array(4 + n.length); 65348 65349 for (i = 0; i < n.length; i++) { 65350 t = n[i].flags, r[i + 4] = t.dependsOn << 4 | t.isDependedOn << 2 | t.hasRedundancy; 65351 } 65352 65353 return l(S.sdtp, r); 65354 }, v = function v(e) { 65355 return l(S.stbl, y(e), l(S.stts, R), l(S.stsc, D), l(S.stsz, N), l(S.stco, O)); 65356 }, y = function y(e) { 65357 return l(S.stsd, new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1]), "video" === e.type ? U(e) : M(e)); 65358 }, U = function U(e) { 65359 var t, 65360 i, 65361 n = e.sps || [], 65362 r = e.pps || [], 65363 s = [], 65364 a = []; 65365 65366 for (t = 0; t < n.length; t++) { 65367 s.push((65280 & n[t].byteLength) >>> 8), s.push(255 & n[t].byteLength), s = s.concat(Array.prototype.slice.call(n[t])); 65368 } 65369 65370 for (t = 0; t < r.length; t++) { 65371 a.push((65280 & r[t].byteLength) >>> 8), a.push(255 & r[t].byteLength), a = a.concat(Array.prototype.slice.call(r[t])); 65372 } 65373 65374 if (i = [S.avc1, new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (65280 & e.width) >> 8, 255 & e.width, (65280 & e.height) >> 8, 255 & e.height, 0, 72, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 1, 19, 118, 105, 100, 101, 111, 106, 115, 45, 99, 111, 110, 116, 114, 105, 98, 45, 104, 108, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 17, 17]), l(S.avcC, new Uint8Array([1, e.profileIdc, e.profileCompatibility, e.levelIdc, 255].concat([n.length], s, [r.length], a))), l(S.btrt, new Uint8Array([0, 28, 156, 128, 0, 45, 198, 192, 0, 45, 198, 192]))], e.sarRatio) { 65375 var o = e.sarRatio[0], 65376 u = e.sarRatio[1]; 65377 i.push(l(S.pasp, new Uint8Array([(4278190080 & o) >> 24, (16711680 & o) >> 16, (65280 & o) >> 8, 255 & o, (4278190080 & u) >> 24, (16711680 & u) >> 16, (65280 & u) >> 8, 255 & u]))); 65378 } 65379 65380 return l.apply(null, i); 65381 }, M = function M(e) { 65382 return l(S.mp4a, new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, (65280 & e.channelcount) >> 8, 255 & e.channelcount, (65280 & e.samplesize) >> 8, 255 & e.samplesize, 0, 0, 0, 0, (65280 & e.samplerate) >> 8, 255 & e.samplerate, 0, 0]), i(e)); 65383 }, d = function d(e) { 65384 var t = new Uint8Array([0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, (4278190080 & e.id) >> 24, (16711680 & e.id) >> 16, (65280 & e.id) >> 8, 255 & e.id, 0, 0, 0, 0, (4278190080 & e.duration) >> 24, (16711680 & e.duration) >> 16, (65280 & e.duration) >> 8, 255 & e.duration, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, (65280 & e.width) >> 8, 255 & e.width, 0, 0, (65280 & e.height) >> 8, 255 & e.height, 0, 0]); 65385 return l(S.tkhd, t); 65386 }, _ = function _(e) { 65387 var t, i, n, r, s, a; 65388 return t = l(S.tfhd, new Uint8Array([0, 0, 0, 58, (4278190080 & e.id) >> 24, (16711680 & e.id) >> 16, (65280 & e.id) >> 8, 255 & e.id, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])), s = Math.floor(e.baseMediaDecodeTime / (1 + V)), a = Math.floor(e.baseMediaDecodeTime % (1 + V)), i = l(S.tfdt, new Uint8Array([1, 0, 0, 0, s >>> 24 & 255, s >>> 16 & 255, s >>> 8 & 255, 255 & s, a >>> 24 & 255, a >>> 16 & 255, a >>> 8 & 255, 255 & a])), 92, "audio" === e.type ? (n = T(e, 92), l(S.traf, t, i, n)) : (r = g(e), n = T(e, r.length + 92), l(S.traf, t, i, n, r)); 65389 }, h = function h(e) { 65390 return e.duration = e.duration || 4294967295, l(S.trak, d(e), p(e)); 65391 }, b = function b(e) { 65392 var t = new Uint8Array([0, 0, 0, 0, (4278190080 & e.id) >> 24, (16711680 & e.id) >> 16, (65280 & e.id) >> 8, 255 & e.id, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1]); 65393 return "video" !== e.type && (t[t.length - 1] = 0), l(S.trex, t); 65394 }, F = function F(e, t) { 65395 var i = 0, 65396 n = 0, 65397 r = 0, 65398 s = 0; 65399 return e.length && (void 0 !== e[0].duration && (i = 1), void 0 !== e[0].size && (n = 2), void 0 !== e[0].flags && (r = 4), void 0 !== e[0].compositionTimeOffset && (s = 8)), [0, 0, i | n | r | s, 1, (4278190080 & e.length) >>> 24, (16711680 & e.length) >>> 16, (65280 & e.length) >>> 8, 255 & e.length, (4278190080 & t) >>> 24, (16711680 & t) >>> 16, (65280 & t) >>> 8, 255 & t]; 65400 }, j = function j(e, t) { 65401 var i, n, r, s; 65402 65403 for (t += 20 + 16 * (n = e.samples || []).length, i = F(n, t), s = 0; s < n.length; s++) { 65404 r = n[s], i = i.concat([(4278190080 & r.duration) >>> 24, (16711680 & r.duration) >>> 16, (65280 & r.duration) >>> 8, 255 & r.duration, (4278190080 & r.size) >>> 24, (16711680 & r.size) >>> 16, (65280 & r.size) >>> 8, 255 & r.size, r.flags.isLeading << 2 | r.flags.dependsOn, r.flags.isDependedOn << 6 | r.flags.hasRedundancy << 4 | r.flags.paddingValue << 1 | r.flags.isNonSyncSample, 61440 & r.flags.degradationPriority, 15 & r.flags.degradationPriority, (4278190080 & r.compositionTimeOffset) >>> 24, (16711680 & r.compositionTimeOffset) >>> 16, (65280 & r.compositionTimeOffset) >>> 8, 255 & r.compositionTimeOffset]); 65405 } 65406 65407 return l(S.trun, new Uint8Array(i)); 65408 }, B = function B(e, t) { 65409 var i, n, r, s; 65410 65411 for (t += 20 + 8 * (n = e.samples || []).length, i = F(n, t), s = 0; s < n.length; s++) { 65412 r = n[s], i = i.concat([(4278190080 & r.duration) >>> 24, (16711680 & r.duration) >>> 16, (65280 & r.duration) >>> 8, 255 & r.duration, (4278190080 & r.size) >>> 24, (16711680 & r.size) >>> 16, (65280 & r.size) >>> 8, 255 & r.size]); 65413 } 65414 65415 return l(S.trun, new Uint8Array(i)); 65416 }, T = function T(e, t) { 65417 return "audio" === e.type ? B(e, t) : j(e, t); 65418 }; 65419 65420 r = function r() { 65421 return l(S.ftyp, k, C, k, w); 65422 }; 65423 65424 function q(e, t) { 65425 var i = { 65426 size: 0, 65427 flags: { 65428 isLeading: 0, 65429 dependsOn: 1, 65430 isDependedOn: 0, 65431 hasRedundancy: 0, 65432 degradationPriority: 0, 65433 isNonSyncSample: 1 65434 } 65435 }; 65436 return i.dataOffset = t, i.compositionTimeOffset = e.pts - e.dts, i.duration = e.duration, i.size = 4 * e.length, i.size += e.byteLength, e.keyFrame && (i.flags.dependsOn = 2, i.flags.isNonSyncSample = 0), i; 65437 } 65438 65439 function W(e) { 65440 for (var t = []; e--;) { 65441 t.push(0); 65442 } 65443 65444 return t; 65445 } 65446 65447 function z() { 65448 z.prototype.init.call(this), this.captionPackets_ = [], this.ccStreams_ = [new Ie(0, 0), new Ie(0, 1), new Ie(1, 0), new Ie(1, 1)], this.reset(), this.ccStreams_.forEach(function (e) { 65449 e.on("data", this.trigger.bind(this, "data")), e.on("partialdone", this.trigger.bind(this, "partialdone")), e.on("done", this.trigger.bind(this, "done")); 65450 }, this); 65451 } 65452 65453 var G, 65454 X, 65455 K, 65456 Y, 65457 $, 65458 Q = function Q(e) { 65459 return l(S.mdat, e); 65460 }, 65461 J = a, 65462 Z = function Z(e) { 65463 var t, 65464 i = r(), 65465 n = o(e); 65466 return (t = new Uint8Array(i.byteLength + n.byteLength)).set(i), t.set(n, i.byteLength), t; 65467 }, 65468 ee = function ee(e) { 65469 var t, 65470 i, 65471 n = [], 65472 r = []; 65473 65474 for (r.byteLength = 0, r.nalCount = 0, r.duration = 0, t = n.byteLength = 0; t < e.length; t++) { 65475 "access_unit_delimiter_rbsp" === (i = e[t]).nalUnitType ? (n.length && (n.duration = i.dts - n.dts, r.byteLength += n.byteLength, r.nalCount += n.length, r.duration += n.duration, r.push(n)), (n = [i]).byteLength = i.data.byteLength, n.pts = i.pts, n.dts = i.dts) : ("slice_layer_without_partitioning_rbsp_idr" === i.nalUnitType && (n.keyFrame = !0), n.duration = i.dts - n.dts, n.byteLength += i.data.byteLength, n.push(i)); 65476 } 65477 65478 return r.length && (!n.duration || n.duration <= 0) && (n.duration = r[r.length - 1].duration), r.byteLength += n.byteLength, r.nalCount += n.length, r.duration += n.duration, r.push(n), r; 65479 }, 65480 te = function te(e) { 65481 var t, 65482 i, 65483 n = [], 65484 r = []; 65485 65486 for (n.byteLength = 0, n.nalCount = 0, n.duration = 0, n.pts = e[0].pts, n.dts = e[0].dts, r.byteLength = 0, r.nalCount = 0, r.duration = 0, r.pts = e[0].pts, r.dts = e[0].dts, t = 0; t < e.length; t++) { 65487 (i = e[t]).keyFrame ? (n.length && (r.push(n), r.byteLength += n.byteLength, r.nalCount += n.nalCount, r.duration += n.duration), (n = [i]).nalCount = i.length, n.byteLength = i.byteLength, n.pts = i.pts, n.dts = i.dts, n.duration = i.duration) : (n.duration += i.duration, n.nalCount += i.length, n.byteLength += i.byteLength, n.push(i)); 65488 } 65489 65490 return r.length && n.duration <= 0 && (n.duration = r[r.length - 1].duration), r.byteLength += n.byteLength, r.nalCount += n.nalCount, r.duration += n.duration, r.push(n), r; 65491 }, 65492 ie = function ie(e) { 65493 var t; 65494 return !e[0][0].keyFrame && 1 < e.length && (t = e.shift(), e.byteLength -= t.byteLength, e.nalCount -= t.nalCount, e[0][0].dts = t.dts, e[0][0].pts = t.pts, e[0][0].duration += t.duration), e; 65495 }, 65496 ne = function ne(e, t) { 65497 var i, 65498 n, 65499 r, 65500 s, 65501 a, 65502 o = t || 0, 65503 u = []; 65504 65505 for (i = 0; i < e.length; i++) { 65506 for (s = e[i], n = 0; n < s.length; n++) { 65507 a = s[n], o += (r = q(a, o)).size, u.push(r); 65508 } 65509 } 65510 65511 return u; 65512 }, 65513 re = function re(e) { 65514 var t, 65515 i, 65516 n, 65517 r, 65518 s, 65519 a, 65520 o = 0, 65521 u = e.byteLength, 65522 l = e.nalCount, 65523 c = new Uint8Array(u + 4 * l), 65524 h = new DataView(c.buffer); 65525 65526 for (t = 0; t < e.length; t++) { 65527 for (r = e[t], i = 0; i < r.length; i++) { 65528 for (s = r[i], n = 0; n < s.length; n++) { 65529 a = s[n], h.setUint32(o, a.data.byteLength), o += 4, c.set(a.data, o), o += a.data.byteLength; 65530 } 65531 } 65532 } 65533 65534 return c; 65535 }, 65536 se = [33, 16, 5, 32, 164, 27], 65537 ae = [33, 65, 108, 84, 1, 2, 4, 8, 168, 2, 4, 8, 17, 191, 252], 65538 oe = { 65539 96e3: [se, [227, 64], W(154), [56]], 65540 88200: [se, [231], W(170), [56]], 65541 64e3: [se, [248, 192], W(240), [56]], 65542 48e3: [se, [255, 192], W(268), [55, 148, 128], W(54), [112]], 65543 44100: [se, [255, 192], W(268), [55, 163, 128], W(84), [112]], 65544 32e3: [se, [255, 192], W(268), [55, 234], W(226), [112]], 65545 24e3: [se, [255, 192], W(268), [55, 255, 128], W(268), [111, 112], W(126), [224]], 65546 16e3: [se, [255, 192], W(268), [55, 255, 128], W(268), [111, 255], W(269), [223, 108], W(195), [1, 192]], 65547 12e3: [ae, W(268), [3, 127, 248], W(268), [6, 255, 240], W(268), [13, 255, 224], W(268), [27, 253, 128], W(259), [56]], 65548 11025: [ae, W(268), [3, 127, 248], W(268), [6, 255, 240], W(268), [13, 255, 224], W(268), [27, 255, 192], W(268), [55, 175, 128], W(108), [112]], 65549 8e3: [ae, W(268), [3, 121, 16], W(47), [7]] 65550 }, 65551 ue = (G = oe, Object.keys(G).reduce(function (e, t) { 65552 return e[t] = new Uint8Array(G[t].reduce(function (e, t) { 65553 return e.concat(t); 65554 }, [])), e; 65555 }, {})), 65556 le = 9e4, 65557 ce = (X = function X(e) { 65558 return 9e4 * e; 65559 }, K = function K(e, t) { 65560 return e * t; 65561 }, Y = function Y(e) { 65562 return e / 9e4; 65563 }, $ = function $(e, t) { 65564 return e / t; 65565 }, function (e, t) { 65566 return X($(e, t)); 65567 }), 65568 he = function he(e, t) { 65569 return K(Y(e), t); 65570 }, 65571 de = function de(e, t, i) { 65572 return Y(i ? e : e - t); 65573 }, 65574 pe = function pe(e, t, i, n) { 65575 var r, 65576 s, 65577 a, 65578 o, 65579 u, 65580 l = 0, 65581 c = 0, 65582 h = 0; 65583 65584 if (t.length && (r = ce(e.baseMediaDecodeTime, e.samplerate), s = Math.ceil(le / (e.samplerate / 1024)), i && n && (l = r - Math.max(i, n), h = (c = Math.floor(l / s)) * s), !(c < 1 || le / 2 < h))) { 65585 for (a = (a = ue[e.samplerate]) || t[0].data, o = 0; o < c; o++) { 65586 u = t[0], t.splice(0, 0, { 65587 data: a, 65588 dts: u.dts - s, 65589 pts: u.pts - s 65590 }); 65591 } 65592 65593 e.baseMediaDecodeTime -= Math.floor(he(h, e.samplerate)); 65594 } 65595 }, 65596 fe = function fe(e, t, i) { 65597 return t.minSegmentDts >= i ? e : (t.minSegmentDts = 1 / 0, e.filter(function (e) { 65598 return e.dts >= i && (t.minSegmentDts = Math.min(t.minSegmentDts, e.dts), t.minSegmentPts = t.minSegmentDts, !0); 65599 })); 65600 }, 65601 me = function me(e) { 65602 var t, 65603 i, 65604 n = []; 65605 65606 for (t = 0; t < e.length; t++) { 65607 i = e[t], n.push({ 65608 size: i.data.byteLength, 65609 duration: 1024 65610 }); 65611 } 65612 65613 return n; 65614 }, 65615 ge = function ge(e) { 65616 var t, 65617 i, 65618 n = 0, 65619 r = new Uint8Array(function (e) { 65620 var t, 65621 i = 0; 65622 65623 for (t = 0; t < e.length; t++) { 65624 i += e[t].data.byteLength; 65625 } 65626 65627 return i; 65628 }(e)); 65629 65630 for (t = 0; t < e.length; t++) { 65631 i = e[t], r.set(i.data, n), n += i.data.byteLength; 65632 } 65633 65634 return r; 65635 }, 65636 ve = le, 65637 ye = function ye(e) { 65638 delete e.minSegmentDts, delete e.maxSegmentDts, delete e.minSegmentPts, delete e.maxSegmentPts; 65639 }, 65640 _e = function _e(e, t) { 65641 var i, 65642 n = e.minSegmentDts; 65643 return t || (n -= e.timelineStartInfo.dts), i = e.timelineStartInfo.baseMediaDecodeTime, i += n, i = Math.max(0, i), "audio" === e.type && (i *= e.samplerate / ve, i = Math.floor(i)), i; 65644 }, 65645 be = function be(e, t) { 65646 "number" == typeof t.pts && (void 0 === e.timelineStartInfo.pts && (e.timelineStartInfo.pts = t.pts), void 0 === e.minSegmentPts ? e.minSegmentPts = t.pts : e.minSegmentPts = Math.min(e.minSegmentPts, t.pts), void 0 === e.maxSegmentPts ? e.maxSegmentPts = t.pts : e.maxSegmentPts = Math.max(e.maxSegmentPts, t.pts)), "number" == typeof t.dts && (void 0 === e.timelineStartInfo.dts && (e.timelineStartInfo.dts = t.dts), void 0 === e.minSegmentDts ? e.minSegmentDts = t.dts : e.minSegmentDts = Math.min(e.minSegmentDts, t.dts), void 0 === e.maxSegmentDts ? e.maxSegmentDts = t.dts : e.maxSegmentDts = Math.max(e.maxSegmentDts, t.dts)); 65647 }, 65648 Te = function Te(e) { 65649 for (var t = 0, i = { 65650 payloadType: -1, 65651 payloadSize: 0 65652 }, n = 0, r = 0; t < e.byteLength && 128 !== e[t];) { 65653 for (; 255 === e[t];) { 65654 n += 255, t++; 65655 } 65656 65657 for (n += e[t++]; 255 === e[t];) { 65658 r += 255, t++; 65659 } 65660 65661 if (r += e[t++], !i.payload && 4 === n) { 65662 i.payloadType = n, i.payloadSize = r, i.payload = e.subarray(t, t + r); 65663 break; 65664 } 65665 65666 t += r, r = n = 0; 65667 } 65668 65669 return i; 65670 }, 65671 Se = function Se(e) { 65672 return 181 !== e.payload[0] ? null : 49 != (e.payload[1] << 8 | e.payload[2]) ? null : "GA94" !== String.fromCharCode(e.payload[3], e.payload[4], e.payload[5], e.payload[6]) ? null : 3 !== e.payload[7] ? null : e.payload.subarray(8, e.payload.length - 1); 65673 }, 65674 ke = function ke(e, t) { 65675 var i, 65676 n, 65677 r, 65678 s, 65679 a = []; 65680 if (!(64 & t[0])) return a; 65681 65682 for (n = 31 & t[0], i = 0; i < n; i++) { 65683 s = { 65684 type: 3 & t[2 + (r = 3 * i)], 65685 pts: e 65686 }, 4 & t[2 + r] && (s.ccData = t[3 + r] << 8 | t[4 + r], a.push(s)); 65687 } 65688 65689 return a; 65690 }, 65691 Ce = 4; 65692 65693 (z.prototype = new H()).push = function (e) { 65694 var t, i, n; 65695 if ("sei_rbsp" === e.nalUnitType && (t = Te(e.escapedRBSP)).payloadType === Ce && (i = Se(t))) if (e.dts < this.latestDts_) this.ignoreNextEqualDts_ = !0;else { 65696 if (e.dts === this.latestDts_ && this.ignoreNextEqualDts_) return this.numSameDts_--, void (this.numSameDts_ || (this.ignoreNextEqualDts_ = !1)); 65697 n = ke(e.pts, i), this.captionPackets_ = this.captionPackets_.concat(n), this.latestDts_ !== e.dts && (this.numSameDts_ = 0), this.numSameDts_++, this.latestDts_ = e.dts; 65698 } 65699 }, z.prototype.flushCCStreams = function (t) { 65700 this.ccStreams_.forEach(function (e) { 65701 return "flush" === t ? e.flush() : e.partialFlush(); 65702 }, this); 65703 }, z.prototype.flushStream = function (e) { 65704 this.captionPackets_.length && (this.captionPackets_.forEach(function (e, t) { 65705 e.presortIndex = t; 65706 }), this.captionPackets_.sort(function (e, t) { 65707 return e.pts === t.pts ? e.presortIndex - t.presortIndex : e.pts - t.pts; 65708 }), this.captionPackets_.forEach(function (e) { 65709 e.type < 2 && this.dispatchCea608Packet(e); 65710 }, this), this.captionPackets_.length = 0), this.flushCCStreams(e); 65711 }, z.prototype.flush = function () { 65712 return this.flushStream("flush"); 65713 }, z.prototype.partialFlush = function () { 65714 return this.flushStream("partialFlush"); 65715 }, z.prototype.reset = function () { 65716 this.latestDts_ = null, this.ignoreNextEqualDts_ = !1, this.numSameDts_ = 0, this.activeCea608Channel_ = [null, null], this.ccStreams_.forEach(function (e) { 65717 e.reset(); 65718 }); 65719 }, z.prototype.dispatchCea608Packet = function (e) { 65720 this.setsTextOrXDSActive(e) ? this.activeCea608Channel_[e.type] = null : this.setsChannel1Active(e) ? this.activeCea608Channel_[e.type] = 0 : this.setsChannel2Active(e) && (this.activeCea608Channel_[e.type] = 1), null !== this.activeCea608Channel_[e.type] && this.ccStreams_[(e.type << 1) + this.activeCea608Channel_[e.type]].push(e); 65721 }, z.prototype.setsChannel1Active = function (e) { 65722 return 4096 == (30720 & e.ccData); 65723 }, z.prototype.setsChannel2Active = function (e) { 65724 return 6144 == (30720 & e.ccData); 65725 }, z.prototype.setsTextOrXDSActive = function (e) { 65726 return 256 == (28928 & e.ccData) || 4138 == (30974 & e.ccData) || 6186 == (30974 & e.ccData); 65727 }; 65728 65729 function we(e) { 65730 return null === e ? "" : (e = xe[e] || e, String.fromCharCode(e)); 65731 } 65732 65733 function Ee() { 65734 for (var e = [], t = 15; t--;) { 65735 e.push(""); 65736 } 65737 65738 return e; 65739 } 65740 65741 var xe = { 65742 42: 225, 65743 92: 233, 65744 94: 237, 65745 95: 243, 65746 96: 250, 65747 123: 231, 65748 124: 247, 65749 125: 209, 65750 126: 241, 65751 127: 9608, 65752 304: 174, 65753 305: 176, 65754 306: 189, 65755 307: 191, 65756 308: 8482, 65757 309: 162, 65758 310: 163, 65759 311: 9834, 65760 312: 224, 65761 313: 160, 65762 314: 232, 65763 315: 226, 65764 316: 234, 65765 317: 238, 65766 318: 244, 65767 319: 251, 65768 544: 193, 65769 545: 201, 65770 546: 211, 65771 547: 218, 65772 548: 220, 65773 549: 252, 65774 550: 8216, 65775 551: 161, 65776 552: 42, 65777 553: 39, 65778 554: 8212, 65779 555: 169, 65780 556: 8480, 65781 557: 8226, 65782 558: 8220, 65783 559: 8221, 65784 560: 192, 65785 561: 194, 65786 562: 199, 65787 563: 200, 65788 564: 202, 65789 565: 203, 65790 566: 235, 65791 567: 206, 65792 568: 207, 65793 569: 239, 65794 570: 212, 65795 571: 217, 65796 572: 249, 65797 573: 219, 65798 574: 171, 65799 575: 187, 65800 800: 195, 65801 801: 227, 65802 802: 205, 65803 803: 204, 65804 804: 236, 65805 805: 210, 65806 806: 242, 65807 807: 213, 65808 808: 245, 65809 809: 123, 65810 810: 125, 65811 811: 92, 65812 812: 94, 65813 813: 95, 65814 814: 124, 65815 815: 126, 65816 816: 196, 65817 817: 228, 65818 818: 214, 65819 819: 246, 65820 820: 223, 65821 821: 165, 65822 822: 164, 65823 823: 9474, 65824 824: 197, 65825 825: 229, 65826 826: 216, 65827 827: 248, 65828 828: 9484, 65829 829: 9488, 65830 830: 9492, 65831 831: 9496 65832 }, 65833 Ae = [4352, 4384, 4608, 4640, 5376, 5408, 5632, 5664, 5888, 5920, 4096, 4864, 4896, 5120, 5152], 65834 Ie = function e(t, i) { 65835 e.prototype.init.call(this), this.field_ = t || 0, this.dataChannel_ = i || 0, this.name_ = "CC" + (1 + (this.field_ << 1 | this.dataChannel_)), this.setConstants(), this.reset(), this.push = function (e) { 65836 var t, i, n, r, s; 65837 65838 if ((t = 32639 & e.ccData) !== this.lastControlCode_) { 65839 if (4096 == (61440 & t) ? this.lastControlCode_ = t : t !== this.PADDING_ && (this.lastControlCode_ = null), n = t >>> 8, r = 255 & t, t !== this.PADDING_) if (t === this.RESUME_CAPTION_LOADING_) this.mode_ = "popOn";else if (t === this.END_OF_CAPTION_) this.mode_ = "popOn", this.clearFormatting(e.pts), this.flushDisplayed(e.pts), i = this.displayed_, this.displayed_ = this.nonDisplayed_, this.nonDisplayed_ = i, this.startPts_ = e.pts;else if (t === this.ROLL_UP_2_ROWS_) this.rollUpRows_ = 2, this.setRollUp(e.pts);else if (t === this.ROLL_UP_3_ROWS_) this.rollUpRows_ = 3, this.setRollUp(e.pts);else if (t === this.ROLL_UP_4_ROWS_) this.rollUpRows_ = 4, this.setRollUp(e.pts);else if (t === this.CARRIAGE_RETURN_) this.clearFormatting(e.pts), this.flushDisplayed(e.pts), this.shiftRowsUp_(), this.startPts_ = e.pts;else if (t === this.BACKSPACE_) "popOn" === this.mode_ ? this.nonDisplayed_[this.row_] = this.nonDisplayed_[this.row_].slice(0, -1) : this.displayed_[this.row_] = this.displayed_[this.row_].slice(0, -1);else if (t === this.ERASE_DISPLAYED_MEMORY_) this.flushDisplayed(e.pts), this.displayed_ = Ee();else if (t === this.ERASE_NON_DISPLAYED_MEMORY_) this.nonDisplayed_ = Ee();else if (t === this.RESUME_DIRECT_CAPTIONING_) "paintOn" !== this.mode_ && (this.flushDisplayed(e.pts), this.displayed_ = Ee()), this.mode_ = "paintOn", this.startPts_ = e.pts;else if (this.isSpecialCharacter(n, r)) s = we((n = (3 & n) << 8) | r), this[this.mode_](e.pts, s), this.column_++;else if (this.isExtCharacter(n, r)) "popOn" === this.mode_ ? this.nonDisplayed_[this.row_] = this.nonDisplayed_[this.row_].slice(0, -1) : this.displayed_[this.row_] = this.displayed_[this.row_].slice(0, -1), s = we((n = (3 & n) << 8) | r), this[this.mode_](e.pts, s), this.column_++;else if (this.isMidRowCode(n, r)) this.clearFormatting(e.pts), this[this.mode_](e.pts, " "), this.column_++, 14 == (14 & r) && this.addFormatting(e.pts, ["i"]), 1 == (1 & r) && this.addFormatting(e.pts, ["u"]);else if (this.isOffsetControlCode(n, r)) this.column_ += 3 & r;else if (this.isPAC(n, r)) { 65840 var a = Ae.indexOf(7968 & t); 65841 "rollUp" === this.mode_ && (a - this.rollUpRows_ + 1 < 0 && (a = this.rollUpRows_ - 1), this.setRollUp(e.pts, a)), a !== this.row_ && (this.clearFormatting(e.pts), this.row_ = a), 1 & r && -1 === this.formatting_.indexOf("u") && this.addFormatting(e.pts, ["u"]), 16 == (16 & t) && (this.column_ = 4 * ((14 & t) >> 1)), this.isColorPAC(r) && 14 == (14 & r) && this.addFormatting(e.pts, ["i"]); 65842 } else this.isNormalChar(n) && (0 === r && (r = null), s = we(n), s += we(r), this[this.mode_](e.pts, s), this.column_ += s.length); 65843 } else this.lastControlCode_ = null; 65844 }; 65845 }; 65846 65847 Ie.prototype = new H(), Ie.prototype.flushDisplayed = function (e) { 65848 var t = this.displayed_.map(function (e) { 65849 try { 65850 return e.trim(); 65851 } catch (e) { 65852 return ""; 65853 } 65854 }).join("\n").replace(/^\n+|\n+$/g, ""); 65855 t.length && this.trigger("data", { 65856 startPts: this.startPts_, 65857 endPts: e, 65858 text: t, 65859 stream: this.name_ 65860 }); 65861 }, Ie.prototype.reset = function () { 65862 this.mode_ = "popOn", this.topRow_ = 0, this.startPts_ = 0, this.displayed_ = Ee(), this.nonDisplayed_ = Ee(), this.lastControlCode_ = null, this.column_ = 0, this.row_ = 14, this.rollUpRows_ = 2, this.formatting_ = []; 65863 }, Ie.prototype.setConstants = function () { 65864 0 === this.dataChannel_ ? (this.BASE_ = 16, this.EXT_ = 17, this.CONTROL_ = (20 | this.field_) << 8, this.OFFSET_ = 23) : 1 === this.dataChannel_ && (this.BASE_ = 24, this.EXT_ = 25, this.CONTROL_ = (28 | this.field_) << 8, this.OFFSET_ = 31), this.PADDING_ = 0, this.RESUME_CAPTION_LOADING_ = 32 | this.CONTROL_, this.END_OF_CAPTION_ = 47 | this.CONTROL_, this.ROLL_UP_2_ROWS_ = 37 | this.CONTROL_, this.ROLL_UP_3_ROWS_ = 38 | this.CONTROL_, this.ROLL_UP_4_ROWS_ = 39 | this.CONTROL_, this.CARRIAGE_RETURN_ = 45 | this.CONTROL_, this.RESUME_DIRECT_CAPTIONING_ = 41 | this.CONTROL_, this.BACKSPACE_ = 33 | this.CONTROL_, this.ERASE_DISPLAYED_MEMORY_ = 44 | this.CONTROL_, this.ERASE_NON_DISPLAYED_MEMORY_ = 46 | this.CONTROL_; 65865 }, Ie.prototype.isSpecialCharacter = function (e, t) { 65866 return e === this.EXT_ && 48 <= t && t <= 63; 65867 }, Ie.prototype.isExtCharacter = function (e, t) { 65868 return (e === this.EXT_ + 1 || e === this.EXT_ + 2) && 32 <= t && t <= 63; 65869 }, Ie.prototype.isMidRowCode = function (e, t) { 65870 return e === this.EXT_ && 32 <= t && t <= 47; 65871 }, Ie.prototype.isOffsetControlCode = function (e, t) { 65872 return e === this.OFFSET_ && 33 <= t && t <= 35; 65873 }, Ie.prototype.isPAC = function (e, t) { 65874 return e >= this.BASE_ && e < this.BASE_ + 8 && 64 <= t && t <= 127; 65875 }, Ie.prototype.isColorPAC = function (e) { 65876 return 64 <= e && e <= 79 || 96 <= e && e <= 127; 65877 }, Ie.prototype.isNormalChar = function (e) { 65878 return 32 <= e && e <= 127; 65879 }, Ie.prototype.setRollUp = function (e, t) { 65880 if ("rollUp" !== this.mode_ && (this.row_ = 14, this.mode_ = "rollUp", this.flushDisplayed(e), this.nonDisplayed_ = Ee(), this.displayed_ = Ee()), void 0 !== t && t !== this.row_) for (var i = 0; i < this.rollUpRows_; i++) { 65881 this.displayed_[t - i] = this.displayed_[this.row_ - i], this.displayed_[this.row_ - i] = ""; 65882 } 65883 void 0 === t && (t = this.row_), this.topRow_ = t - this.rollUpRows_ + 1; 65884 }, Ie.prototype.addFormatting = function (e, t) { 65885 this.formatting_ = this.formatting_.concat(t); 65886 var i = t.reduce(function (e, t) { 65887 return e + "<" + t + ">"; 65888 }, ""); 65889 this[this.mode_](e, i); 65890 }, Ie.prototype.clearFormatting = function (e) { 65891 if (this.formatting_.length) { 65892 var t = this.formatting_.reverse().reduce(function (e, t) { 65893 return e + "</" + t + ">"; 65894 }, ""); 65895 this.formatting_ = [], this[this.mode_](e, t); 65896 } 65897 }, Ie.prototype.popOn = function (e, t) { 65898 var i = this.nonDisplayed_[this.row_]; 65899 i += t, this.nonDisplayed_[this.row_] = i; 65900 }, Ie.prototype.rollUp = function (e, t) { 65901 var i = this.displayed_[this.row_]; 65902 i += t, this.displayed_[this.row_] = i; 65903 }, Ie.prototype.shiftRowsUp_ = function () { 65904 var e; 65905 65906 for (e = 0; e < this.topRow_; e++) { 65907 this.displayed_[e] = ""; 65908 } 65909 65910 for (e = this.row_ + 1; e < 15; e++) { 65911 this.displayed_[e] = ""; 65912 } 65913 65914 for (e = this.topRow_; e < this.row_; e++) { 65915 this.displayed_[e] = this.displayed_[e + 1]; 65916 } 65917 65918 this.displayed_[this.row_] = ""; 65919 }, Ie.prototype.paintOn = function (e, t) { 65920 var i = this.displayed_[this.row_]; 65921 i += t, this.displayed_[this.row_] = i; 65922 }; 65923 65924 function Pe(e, t) { 65925 var i = 1; 65926 65927 for (t < e && (i = -1); 4294967296 < Math.abs(t - e);) { 65928 e += 8589934592 * i; 65929 } 65930 65931 return e; 65932 } 65933 65934 function Le(e) { 65935 var t, i; 65936 Le.prototype.init.call(this), this.type_ = e || "shared", this.push = function (e) { 65937 "shared" !== this.type_ && e.type !== this.type_ || (void 0 === i && (i = e.dts), e.dts = Pe(e.dts, i), e.pts = Pe(e.pts, i), t = e.dts, this.trigger("data", e)); 65938 }, this.flush = function () { 65939 i = t, this.trigger("done"); 65940 }, this.endTimeline = function () { 65941 this.flush(), this.trigger("endedtimeline"); 65942 }, this.discontinuity = function () { 65943 t = i = void 0; 65944 }, this.reset = function () { 65945 this.discontinuity(), this.trigger("reset"); 65946 }; 65947 } 65948 65949 var Oe = { 65950 CaptionStream: z, 65951 Cea608Stream: Ie 65952 }, 65953 De = { 65954 H264_STREAM_TYPE: 27, 65955 ADTS_STREAM_TYPE: 15, 65956 METADATA_STREAM_TYPE: 21 65957 }; 65958 Le.prototype = new H(); 65959 65960 function Ne(e, t, i) { 65961 var n, 65962 r = ""; 65963 65964 for (n = t; n < i; n++) { 65965 r += "%" + ("00" + e[n].toString(16)).slice(-2); 65966 } 65967 65968 return r; 65969 } 65970 65971 function Re(e, t, i) { 65972 return decodeURIComponent(Ne(e, t, i)); 65973 } 65974 65975 function Ue(e) { 65976 return e[0] << 21 | e[1] << 14 | e[2] << 7 | e[3]; 65977 } 65978 65979 var _Me, 65980 Be = Le, 65981 je = { 65982 TXXX: function TXXX(e) { 65983 var t; 65984 65985 if (3 === e.data[0]) { 65986 for (t = 1; t < e.data.length; t++) { 65987 if (0 === e.data[t]) { 65988 e.description = Re(e.data, 1, t), e.value = Re(e.data, t + 1, e.data.length).replace(/\0*$/, ""); 65989 break; 65990 } 65991 } 65992 65993 e.data = e.value; 65994 } 65995 }, 65996 WXXX: function WXXX(e) { 65997 var t; 65998 if (3 === e.data[0]) for (t = 1; t < e.data.length; t++) { 65999 if (0 === e.data[t]) { 66000 e.description = Re(e.data, 1, t), e.url = Re(e.data, t + 1, e.data.length); 66001 break; 66002 } 66003 } 66004 }, 66005 PRIV: function PRIV(e) { 66006 var t, i; 66007 66008 for (t = 0; t < e.data.length; t++) { 66009 if (0 === e.data[t]) { 66010 e.owner = (i = e.data, unescape(Ne(i, 0, t))); 66011 break; 66012 } 66013 } 66014 66015 e.privateData = e.data.subarray(t + 1), e.data = e.privateData; 66016 } 66017 }; 66018 66019 (_Me = function Me(e) { 66020 var t, 66021 u = { 66022 debug: !(!e || !e.debug), 66023 descriptor: e && e.descriptor 66024 }, 66025 l = 0, 66026 c = [], 66027 h = 0; 66028 if (_Me.prototype.init.call(this), this.dispatchType = De.METADATA_STREAM_TYPE.toString(16), u.descriptor) for (t = 0; t < u.descriptor.length; t++) { 66029 this.dispatchType += ("00" + u.descriptor[t].toString(16)).slice(-2); 66030 } 66031 66032 this.push = function (e) { 66033 var t, i, n, r, s; 66034 if ("timed-metadata" === e.type) if (e.dataAlignmentIndicator && (h = 0, c.length = 0), 0 === c.length && (e.data.length < 10 || e.data[0] !== "I".charCodeAt(0) || e.data[1] !== "D".charCodeAt(0) || e.data[2] !== "3".charCodeAt(0))) u.debug;else if (c.push(e), h += e.data.byteLength, 1 === c.length && (l = Ue(e.data.subarray(6, 10)), l += 10), !(h < l)) { 66035 for (t = { 66036 data: new Uint8Array(l), 66037 frames: [], 66038 pts: c[0].pts, 66039 dts: c[0].dts 66040 }, s = 0; s < l;) { 66041 t.data.set(c[0].data.subarray(0, l - s), s), s += c[0].data.byteLength, h -= c[0].data.byteLength, c.shift(); 66042 } 66043 66044 i = 10, 64 & t.data[5] && (i += 4, i += Ue(t.data.subarray(10, 14)), l -= Ue(t.data.subarray(16, 20))); 66045 66046 do { 66047 if ((n = Ue(t.data.subarray(i + 4, i + 8))) < 1) return; 66048 66049 if ((r = { 66050 id: String.fromCharCode(t.data[i], t.data[i + 1], t.data[i + 2], t.data[i + 3]), 66051 data: t.data.subarray(i + 10, i + n + 10) 66052 }).key = r.id, je[r.id] && (je[r.id](r), "com.apple.streaming.transportStreamTimestamp" === r.owner)) { 66053 var a = r.data, 66054 o = (1 & a[3]) << 30 | a[4] << 22 | a[5] << 14 | a[6] << 6 | a[7] >>> 2; 66055 o *= 4, o += 3 & a[7], r.timeStamp = o, void 0 === t.pts && void 0 === t.dts && (t.pts = r.timeStamp, t.dts = r.timeStamp), this.trigger("timestamp", r); 66056 } 66057 66058 t.frames.push(r), i += 10, i += n; 66059 } while (i < l); 66060 66061 this.trigger("data", t); 66062 } 66063 }; 66064 }).prototype = new H(); 66065 66066 var _Fe, 66067 _He, 66068 _Ve, 66069 qe = _Me, 66070 We = Be; 66071 66072 (_Fe = function Fe() { 66073 var r = new Uint8Array(188), 66074 s = 0; 66075 _Fe.prototype.init.call(this), this.push = function (e) { 66076 var t, 66077 i = 0, 66078 n = 188; 66079 66080 for (s ? ((t = new Uint8Array(e.byteLength + s)).set(r.subarray(0, s)), t.set(e, s), s = 0) : t = e; n < t.byteLength;) { 66081 71 !== t[i] || 71 !== t[n] ? (i++, n++) : (this.trigger("data", t.subarray(i, n)), i += 188, n += 188); 66082 } 66083 66084 i < t.byteLength && (r.set(t.subarray(i), 0), s = t.byteLength - i); 66085 }, this.flush = function () { 66086 188 === s && 71 === r[0] && (this.trigger("data", r), s = 0), this.trigger("done"); 66087 }, this.endTimeline = function () { 66088 this.flush(), this.trigger("endedtimeline"); 66089 }, this.reset = function () { 66090 s = 0, this.trigger("reset"); 66091 }; 66092 }).prototype = new H(), (_He = function He() { 66093 var n, r, s, a; 66094 _He.prototype.init.call(this), (a = this).packetsWaitingForPmt = [], this.programMapTable = void 0, n = function n(e, t) { 66095 var i = 0; 66096 t.payloadUnitStartIndicator && (i += e[i] + 1), "pat" === t.type ? r(e.subarray(i), t) : s(e.subarray(i), t); 66097 }, r = function r(e, t) { 66098 t.section_number = e[7], t.last_section_number = e[8], a.pmtPid = (31 & e[10]) << 8 | e[11], t.pmtPid = a.pmtPid; 66099 }, s = function s(e, t) { 66100 var i, n; 66101 66102 if (1 & e[5]) { 66103 for (a.programMapTable = { 66104 video: null, 66105 audio: null, 66106 "timed-metadata": {} 66107 }, i = 3 + ((15 & e[1]) << 8 | e[2]) - 4, n = 12 + ((15 & e[10]) << 8 | e[11]); n < i;) { 66108 var r = e[n], 66109 s = (31 & e[n + 1]) << 8 | e[n + 2]; 66110 r === De.H264_STREAM_TYPE && null === a.programMapTable.video ? a.programMapTable.video = s : r === De.ADTS_STREAM_TYPE && null === a.programMapTable.audio ? a.programMapTable.audio = s : r === De.METADATA_STREAM_TYPE && (a.programMapTable["timed-metadata"][s] = r), n += 5 + ((15 & e[n + 3]) << 8 | e[n + 4]); 66111 } 66112 66113 t.programMapTable = a.programMapTable; 66114 } 66115 }, this.push = function (e) { 66116 var t = {}, 66117 i = 4; 66118 if (t.payloadUnitStartIndicator = !!(64 & e[1]), t.pid = 31 & e[1], t.pid <<= 8, t.pid |= e[2], 1 < (48 & e[3]) >>> 4 && (i += e[i] + 1), 0 === t.pid) t.type = "pat", n(e.subarray(i), t), this.trigger("data", t);else if (t.pid === this.pmtPid) for (t.type = "pmt", n(e.subarray(i), t), this.trigger("data", t); this.packetsWaitingForPmt.length;) { 66119 this.processPes_.apply(this, this.packetsWaitingForPmt.shift()); 66120 } else void 0 === this.programMapTable ? this.packetsWaitingForPmt.push([e, i, t]) : this.processPes_(e, i, t); 66121 }, this.processPes_ = function (e, t, i) { 66122 i.pid === this.programMapTable.video ? i.streamType = De.H264_STREAM_TYPE : i.pid === this.programMapTable.audio ? i.streamType = De.ADTS_STREAM_TYPE : i.streamType = this.programMapTable["timed-metadata"][i.pid], i.type = "pes", i.data = e.subarray(t), this.trigger("data", i); 66123 }; 66124 }).prototype = new H(), _He.STREAM_TYPES = { 66125 h264: 27, 66126 adts: 15 66127 }, (_Ve = function Ve() { 66128 function n(e, t, i) { 66129 var n, 66130 r, 66131 s = new Uint8Array(e.size), 66132 a = { 66133 type: t 66134 }, 66135 o = 0, 66136 u = 0; 66137 66138 if (e.data.length && !(e.size < 9)) { 66139 for (a.trackId = e.data[0].pid, o = 0; o < e.data.length; o++) { 66140 r = e.data[o], s.set(r.data, u), u += r.data.byteLength; 66141 } 66142 66143 !function (e, t) { 66144 var i; 66145 t.packetLength = 6 + (e[4] << 8 | e[5]), t.dataAlignmentIndicator = 0 != (4 & e[6]), 192 & (i = e[7]) && (t.pts = (14 & e[9]) << 27 | (255 & e[10]) << 20 | (254 & e[11]) << 12 | (255 & e[12]) << 5 | (254 & e[13]) >>> 3, t.pts *= 4, t.pts += (6 & e[13]) >>> 1, t.dts = t.pts, 64 & i && (t.dts = (14 & e[14]) << 27 | (255 & e[15]) << 20 | (254 & e[16]) << 12 | (255 & e[17]) << 5 | (254 & e[18]) >>> 3, t.dts *= 4, t.dts += (6 & e[18]) >>> 1)), t.data = e.subarray(9 + e[8]); 66146 }(s, a), n = "video" === t || a.packetLength <= e.size, (i || n) && (e.size = 0, e.data.length = 0), n && l.trigger("data", a); 66147 } 66148 } 66149 66150 var t, 66151 l = this, 66152 r = { 66153 data: [], 66154 size: 0 66155 }, 66156 s = { 66157 data: [], 66158 size: 0 66159 }, 66160 a = { 66161 data: [], 66162 size: 0 66163 }; 66164 _Ve.prototype.init.call(this), this.push = function (i) { 66165 ({ 66166 pat: function pat() {}, 66167 pes: function pes() { 66168 var e, t; 66169 66170 switch (i.streamType) { 66171 case De.H264_STREAM_TYPE: 66172 case De.H264_STREAM_TYPE: 66173 e = r, t = "video"; 66174 break; 66175 66176 case De.ADTS_STREAM_TYPE: 66177 e = s, t = "audio"; 66178 break; 66179 66180 case De.METADATA_STREAM_TYPE: 66181 e = a, t = "timed-metadata"; 66182 break; 66183 66184 default: 66185 return; 66186 } 66187 66188 i.payloadUnitStartIndicator && n(e, t, !0), e.data.push(i), e.size += i.data.byteLength; 66189 }, 66190 pmt: function pmt() { 66191 var e = { 66192 type: "metadata", 66193 tracks: [] 66194 }; 66195 null !== (t = i.programMapTable).video && e.tracks.push({ 66196 timelineStartInfo: { 66197 baseMediaDecodeTime: 0 66198 }, 66199 id: +t.video, 66200 codec: "avc", 66201 type: "video" 66202 }), null !== t.audio && e.tracks.push({ 66203 timelineStartInfo: { 66204 baseMediaDecodeTime: 0 66205 }, 66206 id: +t.audio, 66207 codec: "adts", 66208 type: "audio" 66209 }), l.trigger("data", e); 66210 } 66211 })[i.type](); 66212 }, this.reset = function () { 66213 r.size = 0, r.data.length = 0, s.size = 0, s.data.length = 0, this.trigger("reset"); 66214 }, this.flushStreams_ = function () { 66215 n(r, "video"), n(s, "audio"), n(a, "timed-metadata"); 66216 }, this.flush = function () { 66217 this.flushStreams_(), this.trigger("done"); 66218 }; 66219 }).prototype = new H(); 66220 var ze = { 66221 PAT_PID: 0, 66222 MP2T_PACKET_LENGTH: 188, 66223 TransportPacketStream: _Fe, 66224 TransportParseStream: _He, 66225 ElementaryStream: _Ve, 66226 TimestampRolloverStream: We, 66227 CaptionStream: Oe.CaptionStream, 66228 Cea608Stream: Oe.Cea608Stream, 66229 MetadataStream: qe 66230 }; 66231 66232 for (var Ge in De) { 66233 De.hasOwnProperty(Ge) && (ze[Ge] = De[Ge]); 66234 } 66235 66236 var _Xe, 66237 Ke = ze, 66238 Ye = le, 66239 $e = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350]; 66240 66241 (_Xe = function Xe(u) { 66242 var l, 66243 c = 0; 66244 _Xe.prototype.init.call(this), this.push = function (e) { 66245 var t, 66246 i, 66247 n, 66248 r, 66249 s, 66250 a, 66251 o = 0; 66252 if (u || (c = 0), "audio" === e.type) for (l ? (r = l, (l = new Uint8Array(r.byteLength + e.data.byteLength)).set(r), l.set(e.data, r.byteLength)) : l = e.data; o + 5 < l.length;) { 66253 if (255 === l[o] && 240 == (246 & l[o + 1])) { 66254 if (i = 2 * (1 & ~l[o + 1]), t = (3 & l[o + 3]) << 11 | l[o + 4] << 3 | (224 & l[o + 5]) >> 5, a = (s = 1024 * (1 + (3 & l[o + 6]))) * Ye / $e[(60 & l[o + 2]) >>> 2], n = o + t, l.byteLength < n) return; 66255 if (this.trigger("data", { 66256 pts: e.pts + c * a, 66257 dts: e.dts + c * a, 66258 sampleCount: s, 66259 audioobjecttype: 1 + (l[o + 2] >>> 6 & 3), 66260 channelcount: (1 & l[o + 2]) << 2 | (192 & l[o + 3]) >>> 6, 66261 samplerate: $e[(60 & l[o + 2]) >>> 2], 66262 samplingfrequencyindex: (60 & l[o + 2]) >>> 2, 66263 samplesize: 16, 66264 data: l.subarray(o + 7 + i, n) 66265 }), c++, l.byteLength === n) return void (l = void 0); 66266 l = l.subarray(n); 66267 } else o++; 66268 } 66269 }, this.flush = function () { 66270 c = 0, this.trigger("done"); 66271 }, this.reset = function () { 66272 l = void 0, this.trigger("reset"); 66273 }, this.endTimeline = function () { 66274 l = void 0, this.trigger("endedtimeline"); 66275 }; 66276 }).prototype = new H(); 66277 66278 var _Qe, 66279 _Je, 66280 Ze, 66281 et = _Xe, 66282 tt = function tt(n) { 66283 var r = n.byteLength, 66284 s = 0, 66285 a = 0; 66286 this.length = function () { 66287 return 8 * r; 66288 }, this.bitsAvailable = function () { 66289 return 8 * r + a; 66290 }, this.loadWord = function () { 66291 var e = n.byteLength - r, 66292 t = new Uint8Array(4), 66293 i = Math.min(4, r); 66294 if (0 === i) throw new Error("no bytes available"); 66295 t.set(n.subarray(e, e + i)), s = new DataView(t.buffer).getUint32(0), a = 8 * i, r -= i; 66296 }, this.skipBits = function (e) { 66297 var t; 66298 e < a || (e -= a, e -= 8 * (t = Math.floor(e / 8)), r -= t, this.loadWord()), s <<= e, a -= e; 66299 }, this.readBits = function (e) { 66300 var t = Math.min(a, e), 66301 i = s >>> 32 - t; 66302 return 0 < (a -= t) ? s <<= t : 0 < r && this.loadWord(), 0 < (t = e - t) ? i << t | this.readBits(t) : i; 66303 }, this.skipLeadingZeros = function () { 66304 var e; 66305 66306 for (e = 0; e < a; ++e) { 66307 if (0 != (s & 2147483648 >>> e)) return s <<= e, a -= e, e; 66308 } 66309 66310 return this.loadWord(), e + this.skipLeadingZeros(); 66311 }, this.skipUnsignedExpGolomb = function () { 66312 this.skipBits(1 + this.skipLeadingZeros()); 66313 }, this.skipExpGolomb = function () { 66314 this.skipBits(1 + this.skipLeadingZeros()); 66315 }, this.readUnsignedExpGolomb = function () { 66316 var e = this.skipLeadingZeros(); 66317 return this.readBits(e + 1) - 1; 66318 }, this.readExpGolomb = function () { 66319 var e = this.readUnsignedExpGolomb(); 66320 return 1 & e ? 1 + e >>> 1 : -1 * (e >>> 1); 66321 }, this.readBoolean = function () { 66322 return 1 === this.readBits(1); 66323 }, this.readUnsignedByte = function () { 66324 return this.readBits(8); 66325 }, this.loadWord(); 66326 }; 66327 66328 (_Je = function Je() { 66329 var n, 66330 r, 66331 s = 0; 66332 _Je.prototype.init.call(this), this.push = function (e) { 66333 for (var t, i = (r = r ? ((t = new Uint8Array(r.byteLength + e.data.byteLength)).set(r), t.set(e.data, r.byteLength), t) : e.data).byteLength; s < i - 3; s++) { 66334 if (1 === r[s + 2]) { 66335 n = s + 5; 66336 break; 66337 } 66338 } 66339 66340 for (; n < i;) { 66341 switch (r[n]) { 66342 case 0: 66343 if (0 !== r[n - 1]) { 66344 n += 2; 66345 break; 66346 } 66347 66348 if (0 !== r[n - 2]) { 66349 n++; 66350 break; 66351 } 66352 66353 for (s + 3 !== n - 2 && this.trigger("data", r.subarray(s + 3, n - 2)); 1 !== r[++n] && n < i;) { 66354 ; 66355 } 66356 66357 s = n - 2, n += 3; 66358 break; 66359 66360 case 1: 66361 if (0 !== r[n - 1] || 0 !== r[n - 2]) { 66362 n += 3; 66363 break; 66364 } 66365 66366 this.trigger("data", r.subarray(s + 3, n - 2)), s = n - 2, n += 3; 66367 break; 66368 66369 default: 66370 n += 3; 66371 } 66372 } 66373 66374 r = r.subarray(s), n -= s, s = 0; 66375 }, this.reset = function () { 66376 r = null, s = 0, this.trigger("reset"); 66377 }, this.flush = function () { 66378 r && 3 < r.byteLength && this.trigger("data", r.subarray(s + 3)), r = null, s = 0, this.trigger("done"); 66379 }, this.endTimeline = function () { 66380 this.flush(), this.trigger("endedtimeline"); 66381 }; 66382 }).prototype = new H(), Ze = { 66383 100: !0, 66384 110: !0, 66385 122: !0, 66386 244: !0, 66387 44: !0, 66388 83: !0, 66389 86: !0, 66390 118: !0, 66391 128: !0, 66392 138: !0, 66393 139: !0, 66394 134: !0 66395 }, (_Qe = function Qe() { 66396 var i, 66397 n, 66398 r, 66399 s, 66400 a, 66401 o, 66402 _, 66403 t = new _Je(); 66404 66405 _Qe.prototype.init.call(this), (i = this).push = function (e) { 66406 "video" === e.type && (n = e.trackId, r = e.pts, s = e.dts, t.push(e)); 66407 }, t.on("data", function (e) { 66408 var t = { 66409 trackId: n, 66410 pts: r, 66411 dts: s, 66412 data: e 66413 }; 66414 66415 switch (31 & e[0]) { 66416 case 5: 66417 t.nalUnitType = "slice_layer_without_partitioning_rbsp_idr"; 66418 break; 66419 66420 case 6: 66421 t.nalUnitType = "sei_rbsp", t.escapedRBSP = a(e.subarray(1)); 66422 break; 66423 66424 case 7: 66425 t.nalUnitType = "seq_parameter_set_rbsp", t.escapedRBSP = a(e.subarray(1)), t.config = o(t.escapedRBSP); 66426 break; 66427 66428 case 8: 66429 t.nalUnitType = "pic_parameter_set_rbsp"; 66430 break; 66431 66432 case 9: 66433 t.nalUnitType = "access_unit_delimiter_rbsp"; 66434 } 66435 66436 i.trigger("data", t); 66437 }), t.on("done", function () { 66438 i.trigger("done"); 66439 }), t.on("partialdone", function () { 66440 i.trigger("partialdone"); 66441 }), t.on("reset", function () { 66442 i.trigger("reset"); 66443 }), t.on("endedtimeline", function () { 66444 i.trigger("endedtimeline"); 66445 }), this.flush = function () { 66446 t.flush(); 66447 }, this.partialFlush = function () { 66448 t.partialFlush(); 66449 }, this.reset = function () { 66450 t.reset(); 66451 }, this.endTimeline = function () { 66452 t.endTimeline(); 66453 }, _ = function _(e, t) { 66454 var i, 66455 n = 8, 66456 r = 8; 66457 66458 for (i = 0; i < e; i++) { 66459 0 !== r && (r = (n + t.readExpGolomb() + 256) % 256), n = 0 === r ? n : r; 66460 } 66461 }, a = function a(e) { 66462 for (var t, i, n = e.byteLength, r = [], s = 1; s < n - 2;) { 66463 0 === e[s] && 0 === e[s + 1] && 3 === e[s + 2] ? (r.push(s + 2), s += 2) : s++; 66464 } 66465 66466 if (0 === r.length) return e; 66467 t = n - r.length, i = new Uint8Array(t); 66468 var a = 0; 66469 66470 for (s = 0; s < t; a++, s++) { 66471 a === r[0] && (a++, r.shift()), i[s] = e[a]; 66472 } 66473 66474 return i; 66475 }, o = function o(e) { 66476 var t, 66477 i, 66478 n, 66479 r, 66480 s, 66481 a, 66482 o, 66483 u, 66484 l, 66485 c, 66486 h, 66487 d, 66488 p, 66489 f = 0, 66490 m = 0, 66491 g = 0, 66492 v = 0, 66493 y = 1; 66494 if (i = (t = new tt(e)).readUnsignedByte(), r = t.readUnsignedByte(), n = t.readUnsignedByte(), t.skipUnsignedExpGolomb(), Ze[i] && (3 === (s = t.readUnsignedExpGolomb()) && t.skipBits(1), t.skipUnsignedExpGolomb(), t.skipUnsignedExpGolomb(), t.skipBits(1), t.readBoolean())) for (h = 3 !== s ? 8 : 12, p = 0; p < h; p++) { 66495 t.readBoolean() && _(p < 6 ? 16 : 64, t); 66496 } 66497 if (t.skipUnsignedExpGolomb(), 0 === (a = t.readUnsignedExpGolomb())) t.readUnsignedExpGolomb();else if (1 === a) for (t.skipBits(1), t.skipExpGolomb(), t.skipExpGolomb(), o = t.readUnsignedExpGolomb(), p = 0; p < o; p++) { 66498 t.skipExpGolomb(); 66499 } 66500 66501 if (t.skipUnsignedExpGolomb(), t.skipBits(1), u = t.readUnsignedExpGolomb(), l = t.readUnsignedExpGolomb(), 0 === (c = t.readBits(1)) && t.skipBits(1), t.skipBits(1), t.readBoolean() && (f = t.readUnsignedExpGolomb(), m = t.readUnsignedExpGolomb(), g = t.readUnsignedExpGolomb(), v = t.readUnsignedExpGolomb()), t.readBoolean() && t.readBoolean()) { 66502 switch (t.readUnsignedByte()) { 66503 case 1: 66504 d = [1, 1]; 66505 break; 66506 66507 case 2: 66508 d = [12, 11]; 66509 break; 66510 66511 case 3: 66512 d = [10, 11]; 66513 break; 66514 66515 case 4: 66516 d = [16, 11]; 66517 break; 66518 66519 case 5: 66520 d = [40, 33]; 66521 break; 66522 66523 case 6: 66524 d = [24, 11]; 66525 break; 66526 66527 case 7: 66528 d = [20, 11]; 66529 break; 66530 66531 case 8: 66532 d = [32, 11]; 66533 break; 66534 66535 case 9: 66536 d = [80, 33]; 66537 break; 66538 66539 case 10: 66540 d = [18, 11]; 66541 break; 66542 66543 case 11: 66544 d = [15, 11]; 66545 break; 66546 66547 case 12: 66548 d = [64, 33]; 66549 break; 66550 66551 case 13: 66552 d = [160, 99]; 66553 break; 66554 66555 case 14: 66556 d = [4, 3]; 66557 break; 66558 66559 case 15: 66560 d = [3, 2]; 66561 break; 66562 66563 case 16: 66564 d = [2, 1]; 66565 break; 66566 66567 case 255: 66568 d = [t.readUnsignedByte() << 8 | t.readUnsignedByte(), t.readUnsignedByte() << 8 | t.readUnsignedByte()]; 66569 } 66570 66571 d && (y = d[0] / d[1]); 66572 } 66573 66574 return { 66575 profileIdc: i, 66576 levelIdc: n, 66577 profileCompatibility: r, 66578 width: Math.ceil((16 * (u + 1) - 2 * f - 2 * m) * y), 66579 height: (2 - c) * (l + 1) * 16 - 2 * g - 2 * v, 66580 sarRatio: d 66581 }; 66582 }; 66583 }).prototype = new H(); 66584 66585 var _it, 66586 nt = { 66587 H264Stream: _Qe, 66588 NalByteStream: _Je 66589 }, 66590 rt = function rt(e) { 66591 return e[0] === "I".charCodeAt(0) && e[1] === "D".charCodeAt(0) && e[2] === "3".charCodeAt(0); 66592 }, 66593 st = function st(e, t) { 66594 var i = e[t + 6] << 21 | e[t + 7] << 14 | e[t + 8] << 7 | e[t + 9]; 66595 return (16 & e[t + 5]) >> 4 ? 20 + i : 10 + i; 66596 }, 66597 at = function at(e, t) { 66598 var i = (224 & e[t + 5]) >> 5, 66599 n = e[t + 4] << 3; 66600 return 6144 & e[t + 3] | n | i; 66601 }; 66602 66603 (_it = function it() { 66604 var o = new Uint8Array(), 66605 u = 0; 66606 _it.prototype.init.call(this), this.setTimestamp = function (e) { 66607 u = e; 66608 }, this.push = function (e) { 66609 var t, 66610 i, 66611 n, 66612 r, 66613 s = 0, 66614 a = 0; 66615 66616 for (o.length ? (r = o.length, (o = new Uint8Array(e.byteLength + r)).set(o.subarray(0, r)), o.set(e, r)) : o = e; 3 <= o.length - a;) { 66617 if (o[a] !== "I".charCodeAt(0) || o[a + 1] !== "D".charCodeAt(0) || o[a + 2] !== "3".charCodeAt(0)) { 66618 if (255 != (255 & o[a]) || 240 != (240 & o[a + 1])) a++;else { 66619 if (o.length - a < 7) break; 66620 if (a + (s = at(o, a)) > o.length) break; 66621 n = { 66622 type: "audio", 66623 data: o.subarray(a, a + s), 66624 pts: u, 66625 dts: u 66626 }, this.trigger("data", n), a += s; 66627 } 66628 } else { 66629 if (o.length - a < 10) break; 66630 if (a + (s = st(o, a)) > o.length) break; 66631 i = { 66632 type: "timed-metadata", 66633 data: o.subarray(a, a + s) 66634 }, this.trigger("data", i), a += s; 66635 } 66636 } 66637 66638 t = o.length - a, o = 0 < t ? o.subarray(a) : new Uint8Array(); 66639 }, this.reset = function () { 66640 o = new Uint8Array(), this.trigger("reset"); 66641 }, this.endTimeline = function () { 66642 o = new Uint8Array(), this.trigger("endedtimeline"); 66643 }; 66644 }).prototype = new H(); 66645 66646 function ot(e, t) { 66647 var i; 66648 if (e.length !== t.length) return !1; 66649 66650 for (i = 0; i < e.length; i++) { 66651 if (e[i] !== t[i]) return !1; 66652 } 66653 66654 return !0; 66655 } 66656 66657 function ut(e, t, i, n, r, s) { 66658 return { 66659 start: { 66660 dts: e, 66661 pts: e + (i - t) 66662 }, 66663 end: { 66664 dts: e + (n - t), 66665 pts: e + (r - i) 66666 }, 66667 prependedContentDuration: s, 66668 baseMediaDecodeTime: e 66669 }; 66670 } 66671 66672 var _lt, 66673 _ct, 66674 _ht, 66675 _dt, 66676 pt = _it, 66677 ft = nt.H264Stream, 66678 mt = rt, 66679 gt = le, 66680 vt = ["audioobjecttype", "channelcount", "samplerate", "samplingfrequencyindex", "samplesize"], 66681 yt = ["width", "height", "profileIdc", "levelIdc", "profileCompatibility", "sarRatio"]; 66682 66683 (_ct = function ct(s, a) { 66684 var o = [], 66685 u = 0, 66686 l = 0, 66687 c = 0, 66688 h = 1 / 0; 66689 a = a || {}, _ct.prototype.init.call(this), this.push = function (t) { 66690 be(s, t), s && vt.forEach(function (e) { 66691 s[e] = t[e]; 66692 }), o.push(t); 66693 }, this.setEarliestDts = function (e) { 66694 l = e - s.timelineStartInfo.baseMediaDecodeTime; 66695 }, this.setVideoBaseMediaDecodeTime = function (e) { 66696 h = e; 66697 }, this.setAudioAppendStart = function (e) { 66698 c = e; 66699 }, this.flush = function () { 66700 var e, t, i, n, r; 66701 0 !== o.length && (e = fe(o, s, l), s.baseMediaDecodeTime = _e(s, a.keepOriginalTimestamps), pe(s, e, c, h), s.samples = me(e), i = Q(ge(e)), o = [], t = J(u, [s]), n = new Uint8Array(t.byteLength + i.byteLength), u++, n.set(t), n.set(i, t.byteLength), ye(s), r = Math.ceil(1024 * gt / s.samplerate), e.length && this.trigger("timingInfo", { 66702 start: e[0].pts, 66703 end: e[0].pts + e.length * r 66704 }), this.trigger("data", { 66705 track: s, 66706 boxes: n 66707 })), this.trigger("done", "AudioSegmentStream"); 66708 }, this.reset = function () { 66709 ye(s), o = [], this.trigger("reset"); 66710 }; 66711 }).prototype = new H(), (_lt = function lt(c, h) { 66712 var t, 66713 i, 66714 d = 0, 66715 p = [], 66716 f = []; 66717 h = h || {}, _lt.prototype.init.call(this), delete c.minPTS, this.gopCache_ = [], this.push = function (e) { 66718 be(c, e), "seq_parameter_set_rbsp" !== e.nalUnitType || t || (t = e.config, c.sps = [e.data], yt.forEach(function (e) { 66719 c[e] = t[e]; 66720 }, this)), "pic_parameter_set_rbsp" !== e.nalUnitType || i || (i = e.data, c.pps = [e.data]), p.push(e); 66721 }, this.flush = function () { 66722 for (var e, t, i, n, r, s, a, o, u = 0; p.length && "access_unit_delimiter_rbsp" !== p[0].nalUnitType;) { 66723 p.shift(); 66724 } 66725 66726 if (0 === p.length) return this.resetStream_(), void this.trigger("done", "VideoSegmentStream"); 66727 66728 if (e = ee(p), (i = te(e))[0][0].keyFrame || ((t = this.getGopForFusion_(p[0], c)) ? (u = t.duration, i.unshift(t), i.byteLength += t.byteLength, i.nalCount += t.nalCount, i.pts = t.pts, i.dts = t.dts, i.duration += t.duration) : i = ie(i)), f.length) { 66729 var l; 66730 if (!(l = h.alignGopsAtEnd ? this.alignGopsAtEnd_(i) : this.alignGopsAtStart_(i))) return this.gopCache_.unshift({ 66731 gop: i.pop(), 66732 pps: c.pps, 66733 sps: c.sps 66734 }), this.gopCache_.length = Math.min(6, this.gopCache_.length), p = [], this.resetStream_(), void this.trigger("done", "VideoSegmentStream"); 66735 ye(c), i = l; 66736 } 66737 66738 be(c, i), c.samples = ne(i), r = Q(re(i)), c.baseMediaDecodeTime = _e(c, h.keepOriginalTimestamps), this.trigger("processedGopsInfo", i.map(function (e) { 66739 return { 66740 pts: e.pts, 66741 dts: e.dts, 66742 byteLength: e.byteLength 66743 }; 66744 })), a = i[0], o = i[i.length - 1], this.trigger("segmentTimingInfo", ut(c.baseMediaDecodeTime, a.dts, a.pts, o.dts + o.duration, o.pts + o.duration, u)), this.trigger("timingInfo", { 66745 start: i[0].pts, 66746 end: i[i.length - 1].pts + i[i.length - 1].duration 66747 }), this.gopCache_.unshift({ 66748 gop: i.pop(), 66749 pps: c.pps, 66750 sps: c.sps 66751 }), this.gopCache_.length = Math.min(6, this.gopCache_.length), p = [], this.trigger("baseMediaDecodeTime", c.baseMediaDecodeTime), this.trigger("timelineStartInfo", c.timelineStartInfo), n = J(d, [c]), s = new Uint8Array(n.byteLength + r.byteLength), d++, s.set(n), s.set(r, n.byteLength), this.trigger("data", { 66752 track: c, 66753 boxes: s 66754 }), this.resetStream_(), this.trigger("done", "VideoSegmentStream"); 66755 }, this.reset = function () { 66756 this.resetStream_(), p = [], this.gopCache_.length = 0, f.length = 0, this.trigger("reset"); 66757 }, this.resetStream_ = function () { 66758 ye(c), i = t = void 0; 66759 }, this.getGopForFusion_ = function (e) { 66760 var t, 66761 i, 66762 n, 66763 r, 66764 s, 66765 a = 1 / 0; 66766 66767 for (s = 0; s < this.gopCache_.length; s++) { 66768 n = (r = this.gopCache_[s]).gop, c.pps && ot(c.pps[0], r.pps[0]) && c.sps && ot(c.sps[0], r.sps[0]) && (n.dts < c.timelineStartInfo.dts || -1e4 <= (t = e.dts - n.dts - n.duration) && t <= 45e3 && (!i || t < a) && (i = r, a = t)); 66769 } 66770 66771 return i ? i.gop : null; 66772 }, this.alignGopsAtStart_ = function (e) { 66773 var t, i, n, r, s, a, o, u; 66774 66775 for (s = e.byteLength, a = e.nalCount, o = e.duration, t = i = 0; t < f.length && i < e.length && (n = f[t], r = e[i], n.pts !== r.pts);) { 66776 r.pts > n.pts ? t++ : (i++, s -= r.byteLength, a -= r.nalCount, o -= r.duration); 66777 } 66778 66779 return 0 === i ? e : i === e.length ? null : ((u = e.slice(i)).byteLength = s, u.duration = o, u.nalCount = a, u.pts = u[0].pts, u.dts = u[0].dts, u); 66780 }, this.alignGopsAtEnd_ = function (e) { 66781 var t, i, n, r, s, a, o; 66782 66783 for (t = f.length - 1, i = e.length - 1, s = null, a = !1; 0 <= t && 0 <= i;) { 66784 if (n = f[t], r = e[i], n.pts === r.pts) { 66785 a = !0; 66786 break; 66787 } 66788 66789 n.pts > r.pts ? t-- : (t === f.length - 1 && (s = i), i--); 66790 } 66791 66792 if (!a && null === s) return null; 66793 if (0 === (o = a ? i : s)) return e; 66794 var u = e.slice(o), 66795 l = u.reduce(function (e, t) { 66796 return e.byteLength += t.byteLength, e.duration += t.duration, e.nalCount += t.nalCount, e; 66797 }, { 66798 byteLength: 0, 66799 duration: 0, 66800 nalCount: 0 66801 }); 66802 return u.byteLength = l.byteLength, u.duration = l.duration, u.nalCount = l.nalCount, u.pts = u[0].pts, u.dts = u[0].dts, u; 66803 }, this.alignGopsWith = function (e) { 66804 f = e; 66805 }; 66806 }).prototype = new H(), (_dt = function dt(e, t) { 66807 this.numberOfTracks = 0, this.metadataStream = t, "undefined" != typeof (e = e || {}).remux ? this.remuxTracks = !!e.remux : this.remuxTracks = !0, "boolean" == typeof e.keepOriginalTimestamps ? this.keepOriginalTimestamps = e.keepOriginalTimestamps : this.keepOriginalTimestamps = !1, this.pendingTracks = [], this.videoTrack = null, this.pendingBoxes = [], this.pendingCaptions = [], this.pendingMetadata = [], this.pendingBytes = 0, this.emittedTracks = 0, _dt.prototype.init.call(this), this.push = function (e) { 66808 return e.text ? this.pendingCaptions.push(e) : e.frames ? this.pendingMetadata.push(e) : (this.pendingTracks.push(e.track), this.pendingBytes += e.boxes.byteLength, "video" === e.track.type && (this.videoTrack = e.track, this.pendingBoxes.push(e.boxes)), void ("audio" === e.track.type && (this.audioTrack = e.track, this.pendingBoxes.unshift(e.boxes)))); 66809 }; 66810 }).prototype = new H(), _dt.prototype.flush = function (e) { 66811 var t, 66812 i, 66813 n, 66814 r, 66815 s = 0, 66816 a = { 66817 captions: [], 66818 captionStreams: {}, 66819 metadata: [], 66820 info: {} 66821 }, 66822 o = 0; 66823 66824 if (this.pendingTracks.length < this.numberOfTracks) { 66825 if ("VideoSegmentStream" !== e && "AudioSegmentStream" !== e) return; 66826 if (this.remuxTracks) return; 66827 if (0 === this.pendingTracks.length) return this.emittedTracks++, void (this.emittedTracks >= this.numberOfTracks && (this.trigger("done"), this.emittedTracks = 0)); 66828 } 66829 66830 if (this.videoTrack ? (o = this.videoTrack.timelineStartInfo.pts, yt.forEach(function (e) { 66831 a.info[e] = this.videoTrack[e]; 66832 }, this)) : this.audioTrack && (o = this.audioTrack.timelineStartInfo.pts, vt.forEach(function (e) { 66833 a.info[e] = this.audioTrack[e]; 66834 }, this)), this.videoTrack || this.audioTrack) { 66835 for (1 === this.pendingTracks.length ? a.type = this.pendingTracks[0].type : a.type = "combined", this.emittedTracks += this.pendingTracks.length, n = Z(this.pendingTracks), a.initSegment = new Uint8Array(n.byteLength), a.initSegment.set(n), a.data = new Uint8Array(this.pendingBytes), r = 0; r < this.pendingBoxes.length; r++) { 66836 a.data.set(this.pendingBoxes[r], s), s += this.pendingBoxes[r].byteLength; 66837 } 66838 66839 for (r = 0; r < this.pendingCaptions.length; r++) { 66840 (t = this.pendingCaptions[r]).startTime = de(t.startPts, o, this.keepOriginalTimestamps), t.endTime = de(t.endPts, o, this.keepOriginalTimestamps), a.captionStreams[t.stream] = !0, a.captions.push(t); 66841 } 66842 66843 for (r = 0; r < this.pendingMetadata.length; r++) { 66844 (i = this.pendingMetadata[r]).cueTime = de(i.pts, o, this.keepOriginalTimestamps), a.metadata.push(i); 66845 } 66846 66847 for (a.metadata.dispatchType = this.metadataStream.dispatchType, this.pendingTracks.length = 0, this.videoTrack = null, this.pendingBoxes.length = 0, this.pendingCaptions.length = 0, this.pendingBytes = 0, this.pendingMetadata.length = 0, this.trigger("data", a), r = 0; r < a.captions.length; r++) { 66848 t = a.captions[r], this.trigger("caption", t); 66849 } 66850 66851 for (r = 0; r < a.metadata.length; r++) { 66852 i = a.metadata[r], this.trigger("id3Frame", i); 66853 } 66854 } 66855 66856 this.emittedTracks >= this.numberOfTracks && (this.trigger("done"), this.emittedTracks = 0); 66857 }, _dt.prototype.setRemux = function (e) { 66858 this.remuxTracks = e; 66859 }, (_ht = function ht(n) { 66860 var r, 66861 s, 66862 a = this, 66863 i = !0; 66864 _ht.prototype.init.call(this), n = n || {}, this.baseMediaDecodeTime = n.baseMediaDecodeTime || 0, this.transmuxPipeline_ = {}, this.setupAacPipeline = function () { 66865 var t = {}; 66866 (this.transmuxPipeline_ = t).type = "aac", t.metadataStream = new Ke.MetadataStream(), t.aacStream = new pt(), t.audioTimestampRolloverStream = new Ke.TimestampRolloverStream("audio"), t.timedMetadataTimestampRolloverStream = new Ke.TimestampRolloverStream("timed-metadata"), t.adtsStream = new et(), t.coalesceStream = new _dt(n, t.metadataStream), t.headOfPipeline = t.aacStream, t.aacStream.pipe(t.audioTimestampRolloverStream).pipe(t.adtsStream), t.aacStream.pipe(t.timedMetadataTimestampRolloverStream).pipe(t.metadataStream).pipe(t.coalesceStream), t.metadataStream.on("timestamp", function (e) { 66867 t.aacStream.setTimestamp(e.timeStamp); 66868 }), t.aacStream.on("data", function (e) { 66869 "timed-metadata" !== e.type || t.audioSegmentStream || (s = s || { 66870 timelineStartInfo: { 66871 baseMediaDecodeTime: a.baseMediaDecodeTime 66872 }, 66873 codec: "adts", 66874 type: "audio" 66875 }, t.coalesceStream.numberOfTracks++, t.audioSegmentStream = new _ct(s, n), t.audioSegmentStream.on("timingInfo", a.trigger.bind(a, "audioTimingInfo")), t.adtsStream.pipe(t.audioSegmentStream).pipe(t.coalesceStream)), a.trigger("trackinfo", { 66876 hasAudio: !!s, 66877 hasVideo: !!r 66878 }); 66879 }), t.coalesceStream.on("data", this.trigger.bind(this, "data")), t.coalesceStream.on("done", this.trigger.bind(this, "done")); 66880 }, this.setupTsPipeline = function () { 66881 var i = {}; 66882 (this.transmuxPipeline_ = i).type = "ts", i.metadataStream = new Ke.MetadataStream(), i.packetStream = new Ke.TransportPacketStream(), i.parseStream = new Ke.TransportParseStream(), i.elementaryStream = new Ke.ElementaryStream(), i.timestampRolloverStream = new Ke.TimestampRolloverStream(), i.adtsStream = new et(), i.h264Stream = new ft(), i.captionStream = new Ke.CaptionStream(), i.coalesceStream = new _dt(n, i.metadataStream), i.headOfPipeline = i.packetStream, i.packetStream.pipe(i.parseStream).pipe(i.elementaryStream).pipe(i.timestampRolloverStream), i.timestampRolloverStream.pipe(i.h264Stream), i.timestampRolloverStream.pipe(i.adtsStream), i.timestampRolloverStream.pipe(i.metadataStream).pipe(i.coalesceStream), i.h264Stream.pipe(i.captionStream).pipe(i.coalesceStream), i.elementaryStream.on("data", function (e) { 66883 var t; 66884 66885 if ("metadata" === e.type) { 66886 for (t = e.tracks.length; t--;) { 66887 r || "video" !== e.tracks[t].type ? s || "audio" !== e.tracks[t].type || ((s = e.tracks[t]).timelineStartInfo.baseMediaDecodeTime = a.baseMediaDecodeTime) : (r = e.tracks[t]).timelineStartInfo.baseMediaDecodeTime = a.baseMediaDecodeTime; 66888 } 66889 66890 r && !i.videoSegmentStream && (i.coalesceStream.numberOfTracks++, i.videoSegmentStream = new _lt(r, n), i.videoSegmentStream.on("timelineStartInfo", function (e) { 66891 s && (s.timelineStartInfo = e, i.audioSegmentStream.setEarliestDts(e.dts)); 66892 }), i.videoSegmentStream.on("processedGopsInfo", a.trigger.bind(a, "gopInfo")), i.videoSegmentStream.on("segmentTimingInfo", a.trigger.bind(a, "videoSegmentTimingInfo")), i.videoSegmentStream.on("baseMediaDecodeTime", function (e) { 66893 s && i.audioSegmentStream.setVideoBaseMediaDecodeTime(e); 66894 }), i.videoSegmentStream.on("timingInfo", a.trigger.bind(a, "videoTimingInfo")), i.h264Stream.pipe(i.videoSegmentStream).pipe(i.coalesceStream)), s && !i.audioSegmentStream && (i.coalesceStream.numberOfTracks++, i.audioSegmentStream = new _ct(s, n), i.audioSegmentStream.on("timingInfo", a.trigger.bind(a, "audioTimingInfo")), i.adtsStream.pipe(i.audioSegmentStream).pipe(i.coalesceStream)), a.trigger("trackinfo", { 66895 hasAudio: !!s, 66896 hasVideo: !!r 66897 }); 66898 } 66899 }), i.coalesceStream.on("data", this.trigger.bind(this, "data")), i.coalesceStream.on("id3Frame", function (e) { 66900 e.dispatchType = i.metadataStream.dispatchType, a.trigger("id3Frame", e); 66901 }), i.coalesceStream.on("caption", this.trigger.bind(this, "caption")), i.coalesceStream.on("done", this.trigger.bind(this, "done")); 66902 }, this.setBaseMediaDecodeTime = function (e) { 66903 var t = this.transmuxPipeline_; 66904 n.keepOriginalTimestamps || (this.baseMediaDecodeTime = e), s && (s.timelineStartInfo.dts = void 0, s.timelineStartInfo.pts = void 0, ye(s), n.keepOriginalTimestamps || (s.timelineStartInfo.baseMediaDecodeTime = e), t.audioTimestampRolloverStream && t.audioTimestampRolloverStream.discontinuity()), r && (t.videoSegmentStream && (t.videoSegmentStream.gopCache_ = []), r.timelineStartInfo.dts = void 0, r.timelineStartInfo.pts = void 0, ye(r), t.captionStream.reset(), n.keepOriginalTimestamps || (r.timelineStartInfo.baseMediaDecodeTime = e)), t.timestampRolloverStream && t.timestampRolloverStream.discontinuity(); 66905 }, this.setAudioAppendStart = function (e) { 66906 s && this.transmuxPipeline_.audioSegmentStream.setAudioAppendStart(e); 66907 }, this.setRemux = function (e) { 66908 var t = this.transmuxPipeline_; 66909 n.remux = e, t && t.coalesceStream && t.coalesceStream.setRemux(e); 66910 }, this.alignGopsWith = function (e) { 66911 r && this.transmuxPipeline_.videoSegmentStream && this.transmuxPipeline_.videoSegmentStream.alignGopsWith(e); 66912 }, this.push = function (e) { 66913 if (i) { 66914 var t = mt(e); 66915 t && "aac" !== this.transmuxPipeline_.type ? this.setupAacPipeline() : t || "ts" === this.transmuxPipeline_.type || this.setupTsPipeline(), i = !1; 66916 } 66917 66918 this.transmuxPipeline_.headOfPipeline.push(e); 66919 }, this.flush = function () { 66920 i = !0, this.transmuxPipeline_.headOfPipeline.flush(); 66921 }, this.endTimeline = function () { 66922 this.transmuxPipeline_.headOfPipeline.endTimeline(); 66923 }, this.reset = function () { 66924 this.transmuxPipeline_.headOfPipeline && this.transmuxPipeline_.headOfPipeline.reset(); 66925 }, this.resetCaptions = function () { 66926 this.transmuxPipeline_.captionStream && this.transmuxPipeline_.captionStream.reset(); 66927 }; 66928 }).prototype = new H(); 66929 var _t = { 66930 Transmuxer: _ht, 66931 VideoSegmentStream: _lt, 66932 AudioSegmentStream: _ct, 66933 AUDIO_PROPERTIES: vt, 66934 VIDEO_PROPERTIES: yt, 66935 generateVideoSegmentTimingInfo: ut 66936 }; 66937 66938 function bt(e, t) { 66939 for (var i = 0; i < t.length; i++) { 66940 var n = t[i]; 66941 n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n); 66942 } 66943 } 66944 66945 var Tt = (function (e, t, i) { 66946 return t && bt(e.prototype, t), i && bt(e, i), e; 66947 }(St, [{ 66948 key: "init", 66949 value: function value() { 66950 this.transmuxer && this.transmuxer.dispose(), this.transmuxer = new _t.Transmuxer(this.options), function (n, e) { 66951 e.on("data", function (e) { 66952 var t = e.initSegment; 66953 e.initSegment = { 66954 data: t.buffer, 66955 byteOffset: t.byteOffset, 66956 byteLength: t.byteLength 66957 }; 66958 var i = e.data; 66959 e.data = i.buffer, n.postMessage({ 66960 action: "data", 66961 segment: e, 66962 byteOffset: i.byteOffset, 66963 byteLength: i.byteLength 66964 }, [e.data]); 66965 }), e.captionStream && e.captionStream.on("data", function (e) { 66966 n.postMessage({ 66967 action: "caption", 66968 data: e 66969 }); 66970 }), e.on("done", function (e) { 66971 n.postMessage({ 66972 action: "done" 66973 }); 66974 }), e.on("gopInfo", function (e) { 66975 n.postMessage({ 66976 action: "gopInfo", 66977 gopInfo: e 66978 }); 66979 }), e.on("videoSegmentTimingInfo", function (e) { 66980 n.postMessage({ 66981 action: "videoSegmentTimingInfo", 66982 videoSegmentTimingInfo: e 66983 }); 66984 }); 66985 }(this.self, this.transmuxer); 66986 } 66987 }, { 66988 key: "push", 66989 value: function value(e) { 66990 var t = new Uint8Array(e.data, e.byteOffset, e.byteLength); 66991 this.transmuxer.push(t); 66992 } 66993 }, { 66994 key: "reset", 66995 value: function value() { 66996 this.init(); 66997 } 66998 }, { 66999 key: "setTimestampOffset", 67000 value: function value(e) { 67001 var t = e.timestampOffset || 0; 67002 this.transmuxer.setBaseMediaDecodeTime(Math.round(9e4 * t)); 67003 } 67004 }, { 67005 key: "setAudioAppendStart", 67006 value: function value(e) { 67007 this.transmuxer.setAudioAppendStart(Math.ceil(9e4 * e.appendStart)); 67008 } 67009 }, { 67010 key: "flush", 67011 value: function value(e) { 67012 this.transmuxer.flush(); 67013 } 67014 }, { 67015 key: "resetCaptions", 67016 value: function value() { 67017 this.transmuxer.resetCaptions(); 67018 } 67019 }, { 67020 key: "alignGopsWith", 67021 value: function value(e) { 67022 this.transmuxer.alignGopsWith(e.gopsToAlignWith.slice()); 67023 } 67024 }]), St); 67025 67026 function St(e, t) { 67027 !function (e, t) { 67028 if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); 67029 }(this, St), this.options = t || {}, this.self = e, this.init(); 67030 } 67031 67032 new function (t) { 67033 t.onmessage = function (e) { 67034 "init" === e.data.action && e.data.options ? this.messageHandlers = new Tt(t, e.data.options) : (this.messageHandlers || (this.messageHandlers = new Tt(t)), e.data && e.data.action && "init" !== e.data.action && this.messageHandlers[e.data.action] && this.messageHandlers[e.data.action](e.data)); 67035 }; 67036 }(kt); 67037 }(); 67038 }), 67039 Cc = { 67040 videoCodec: "avc1", 67041 videoObjectTypeIndicator: ".4d400d", 67042 audioProfile: "2" 67043 }, 67044 wc = (ll(Ec, as.EventTarget), ol(Ec, [{ 67045 key: "data_", 67046 value: function value(e) { 67047 var t = e.data.segment; 67048 t.data = new Uint8Array(t.data, e.data.byteOffset, e.data.byteLength), t.initSegment = new Uint8Array(t.initSegment.data, t.initSegment.byteOffset, t.initSegment.byteLength), function (e, t, i) { 67049 var n = t.player_; 67050 if (i.captions && i.captions.length) for (var r in e.inbandTextTracks_ || (e.inbandTextTracks_ = {}), i.captionStreams) { 67051 if (!e.inbandTextTracks_[r]) { 67052 n.tech_.trigger({ 67053 type: "usage", 67054 name: "hls-608" 67055 }); 67056 var s = n.textTracks().getTrackById(r); 67057 e.inbandTextTracks_[r] = s || n.addRemoteTextTrack({ 67058 kind: "captions", 67059 id: r, 67060 label: r 67061 }, !1).track; 67062 } 67063 } 67064 i.metadata && i.metadata.length && !e.metadataTrack_ && (e.metadataTrack_ = n.addRemoteTextTrack({ 67065 kind: "metadata", 67066 label: "Timed Metadata" 67067 }, !1).track, e.metadataTrack_.inBandMetadataTrackDispatchType = i.metadata.dispatchType); 67068 }(this, this.mediaSource_, t), this.pendingBuffers_.push(t); 67069 } 67070 }, { 67071 key: "done_", 67072 value: function value(e) { 67073 "closed" !== this.mediaSource_.readyState ? this.processPendingSegments_() : this.pendingBuffers_.length = 0; 67074 } 67075 }, { 67076 key: "videoSegmentTimingInfo_", 67077 value: function value(e) { 67078 var t = { 67079 start: { 67080 decode: e.start.dts / 9e4, 67081 presentation: e.start.pts / 9e4 67082 }, 67083 end: { 67084 decode: e.end.dts / 9e4, 67085 presentation: e.end.pts / 9e4 67086 }, 67087 baseMediaDecodeTime: e.baseMediaDecodeTime / 9e4 67088 }; 67089 e.prependedContentDuration && (t.prependedContentDuration = e.prependedContentDuration / 9e4), this.trigger({ 67090 type: "videoSegmentTimingInfo", 67091 videoSegmentTimingInfo: t 67092 }); 67093 } 67094 }, { 67095 key: "createRealSourceBuffers_", 67096 value: function value() { 67097 var n = this, 67098 r = ["audio", "video"]; 67099 r.forEach(function (t) { 67100 if (n[t + "Codec_"] && !n[t + "Buffer_"]) { 67101 var i = null; 67102 if (n.mediaSource_[t + "Buffer_"]) (i = n.mediaSource_[t + "Buffer_"]).updating = !1;else { 67103 var e = t + '/mp4;codecs="' + n[t + "Codec_"] + '"'; 67104 i = function (e, t) { 67105 var i = e.addSourceBuffer(t), 67106 n = Object.create(null); 67107 67108 function r(t) { 67109 "function" == typeof i[t] ? n[t] = function () { 67110 return i[t].apply(i, arguments); 67111 } : "undefined" == typeof n[t] && Object.defineProperty(n, t, { 67112 get: function get() { 67113 return i[t]; 67114 }, 67115 set: function set(e) { 67116 return i[t] = e; 67117 } 67118 }); 67119 } 67120 67121 for (var s in n.updating = !1, n.realBuffer_ = i) { 67122 r(s); 67123 } 67124 67125 return n; 67126 }(n.mediaSource_.nativeMediaSource_, e), n.mediaSource_[t + "Buffer_"] = i; 67127 } 67128 n[t + "Buffer_"] = i, ["update", "updatestart", "updateend"].forEach(function (e) { 67129 i.addEventListener(e, function () { 67130 if ("audio" !== t || !n.audioDisabled_) return "updateend" === e && (n[t + "Buffer_"].updating = !1), r.every(function (e) { 67131 return !("audio" !== e || !n.audioDisabled_) || t === e || !n[e + "Buffer_"] || !n[e + "Buffer_"].updating; 67132 }) ? n.trigger(e) : void 0; 67133 }); 67134 }); 67135 } 67136 }); 67137 } 67138 }, { 67139 key: "appendBuffer", 67140 value: function value(e) { 67141 if (this.bufferUpdating_ = !0, this.audioBuffer_ && this.audioBuffer_.buffered.length) { 67142 var t = this.audioBuffer_.buffered; 67143 this.transmuxer_.postMessage({ 67144 action: "setAudioAppendStart", 67145 appendStart: t.end(t.length - 1) 67146 }); 67147 } 67148 67149 this.videoBuffer_ && this.transmuxer_.postMessage({ 67150 action: "alignGopsWith", 67151 gopsToAlignWith: function (e, t, i) { 67152 if ("undefined" == typeof t || null === t || !e.length) return []; 67153 var n = Math.ceil(9e4 * (t - i + 3)), 67154 r = void 0; 67155 67156 for (r = 0; r < e.length && !(e[r].pts > n); r++) { 67157 ; 67158 } 67159 67160 return e.slice(r); 67161 }(this.gopBuffer_, this.mediaSource_.player_ ? this.mediaSource_.player_.currentTime() : null, this.timeMapping_) 67162 }), this.transmuxer_.postMessage({ 67163 action: "push", 67164 data: e.buffer, 67165 byteOffset: e.byteOffset, 67166 byteLength: e.byteLength 67167 }, [e.buffer]), this.transmuxer_.postMessage({ 67168 action: "flush" 67169 }); 67170 } 67171 }, { 67172 key: "appendGopInfo_", 67173 value: function value(e) { 67174 this.gopBuffer_ = function (e, t, i) { 67175 if (!t.length) return e; 67176 if (i) return t.slice(); 67177 67178 for (var n = t[0].pts, r = 0; r < e.length && !(e[r].pts >= n); r++) { 67179 ; 67180 } 67181 67182 return e.slice(0, r).concat(t); 67183 }(this.gopBuffer_, e.data.gopInfo, this.safeAppend_); 67184 } 67185 }, { 67186 key: "remove", 67187 value: function value(e, t) { 67188 if (this.videoBuffer_ && (this.videoBuffer_.updating = !0, this.videoBuffer_.remove(e, t), this.gopBuffer_ = function (e, t, i, n) { 67189 for (var r = Math.ceil(9e4 * (t - n)), s = Math.ceil(9e4 * (i - n)), a = e.slice(), o = e.length; o-- && !(e[o].pts <= s);) { 67190 ; 67191 } 67192 67193 if (-1 === o) return a; 67194 67195 for (var u = o + 1; u-- && !(e[u].pts <= r);) { 67196 ; 67197 } 67198 67199 return u = Math.max(u, 0), a.splice(u, o - u + 1), a; 67200 }(this.gopBuffer_, e, t, this.timeMapping_)), !this.audioDisabled_ && this.audioBuffer_ && (this.audioBuffer_.updating = !0, this.audioBuffer_.remove(e, t)), Yl(e, t, this.metadataTrack_), this.inbandTextTracks_) for (var i in this.inbandTextTracks_) { 67201 Yl(e, t, this.inbandTextTracks_[i]); 67202 } 67203 } 67204 }, { 67205 key: "processPendingSegments_", 67206 value: function value() { 67207 var e = { 67208 video: { 67209 segments: [], 67210 bytes: 0 67211 }, 67212 audio: { 67213 segments: [], 67214 bytes: 0 67215 }, 67216 captions: [], 67217 metadata: [] 67218 }; 67219 if (!this.pendingBuffers_.length) return this.trigger("updateend"), void (this.bufferUpdating_ = !1); 67220 e = this.pendingBuffers_.reduce(function (e, t) { 67221 var i = t.type, 67222 n = t.data, 67223 r = t.initSegment; 67224 return e[i].segments.push(n), e[i].bytes += n.byteLength, e[i].initSegment = r, t.captions && (e.captions = e.captions.concat(t.captions)), t.info && (e[i].info = t.info), t.metadata && (e.metadata = e.metadata.concat(t.metadata)), e; 67225 }, e), this.videoBuffer_ || this.audioBuffer_ || (0 === e.video.bytes && (this.videoCodec_ = null), 0 === e.audio.bytes && (this.audioCodec_ = null), this.createRealSourceBuffers_()), e.audio.info && this.mediaSource_.trigger({ 67226 type: "audioinfo", 67227 info: e.audio.info 67228 }), e.video.info && this.mediaSource_.trigger({ 67229 type: "videoinfo", 67230 info: e.video.info 67231 }), this.appendAudioInitSegment_ && (!this.audioDisabled_ && this.audioBuffer_ && (e.audio.segments.unshift(e.audio.initSegment), e.audio.bytes += e.audio.initSegment.byteLength), this.appendAudioInitSegment_ = !1); 67232 var t = !1; 67233 this.videoBuffer_ && e.video.bytes ? (e.video.segments.unshift(e.video.initSegment), e.video.bytes += e.video.initSegment.byteLength, this.concatAndAppendSegments_(e.video, this.videoBuffer_)) : !this.videoBuffer_ || !this.audioDisabled_ && this.audioBuffer_ || (t = !0), Ql(this, e.captions, e.metadata), !this.audioDisabled_ && this.audioBuffer_ && this.concatAndAppendSegments_(e.audio, this.audioBuffer_), this.pendingBuffers_.length = 0, t && this.trigger("updateend"), this.bufferUpdating_ = !1; 67234 } 67235 }, { 67236 key: "concatAndAppendSegments_", 67237 value: function value(e, t) { 67238 var i = 0, 67239 n = void 0; 67240 67241 if (e.bytes) { 67242 n = new Uint8Array(e.bytes), e.segments.forEach(function (e) { 67243 n.set(e, i), i += e.byteLength; 67244 }); 67245 67246 try { 67247 t.updating = !0, t.appendBuffer(n); 67248 } catch (e) { 67249 this.mediaSource_.player_ && this.mediaSource_.player_.error({ 67250 code: -3, 67251 type: "APPEND_BUFFER_ERR", 67252 message: e.message, 67253 originalError: e 67254 }); 67255 } 67256 } 67257 } 67258 }, { 67259 key: "abort", 67260 value: function value() { 67261 this.videoBuffer_ && this.videoBuffer_.abort(), !this.audioDisabled_ && this.audioBuffer_ && this.audioBuffer_.abort(), this.transmuxer_ && this.transmuxer_.postMessage({ 67262 action: "reset" 67263 }), this.pendingBuffers_.length = 0, this.bufferUpdating_ = !1; 67264 } 67265 }, { 67266 key: "dispose", 67267 value: function value() { 67268 this.transmuxer_ && this.transmuxer_.terminate(), this.trigger("dispose"), this.off(); 67269 } 67270 }]), Ec); 67271 67272 function Ec(e, t) { 67273 al(this, Ec); 67274 var i = cl(this, (Ec.__proto__ || Object.getPrototypeOf(Ec)).call(this, as.EventTarget)); 67275 i.timestampOffset_ = 0, i.pendingBuffers_ = [], i.bufferUpdating_ = !1, i.mediaSource_ = e, i.codecs_ = t, i.audioCodec_ = null, i.videoCodec_ = null, i.audioDisabled_ = !1, i.appendAudioInitSegment_ = !0, i.gopBuffer_ = [], i.timeMapping_ = 0, i.safeAppend_ = 11 <= as.browser.IE_VERSION; 67276 var n = { 67277 remux: !1, 67278 alignGopsAtEnd: i.safeAppend_ 67279 }; 67280 return i.codecs_.forEach(function (e) { 67281 Tc(e) ? i.audioCodec_ = e : Sc(e) && (i.videoCodec_ = e); 67282 }), i.transmuxer_ = new kc(), i.transmuxer_.postMessage({ 67283 action: "init", 67284 options: n 67285 }), i.transmuxer_.onmessage = function (e) { 67286 return "data" === e.data.action ? i.data_(e) : "done" === e.data.action ? i.done_(e) : "gopInfo" === e.data.action ? i.appendGopInfo_(e) : "videoSegmentTimingInfo" === e.data.action ? i.videoSegmentTimingInfo_(e.data.videoSegmentTimingInfo) : void 0; 67287 }, Object.defineProperty(i, "timestampOffset", { 67288 get: function get() { 67289 return this.timestampOffset_; 67290 }, 67291 set: function set(e) { 67292 "number" == typeof e && 0 <= e && (this.timestampOffset_ = e, this.appendAudioInitSegment_ = !0, this.gopBuffer_.length = 0, this.timeMapping_ = 0, this.transmuxer_.postMessage({ 67293 action: "setTimestampOffset", 67294 timestampOffset: e 67295 })); 67296 } 67297 }), Object.defineProperty(i, "appendWindowStart", { 67298 get: function get() { 67299 return (this.videoBuffer_ || this.audioBuffer_).appendWindowStart; 67300 }, 67301 set: function set(e) { 67302 this.videoBuffer_ && (this.videoBuffer_.appendWindowStart = e), this.audioBuffer_ && (this.audioBuffer_.appendWindowStart = e); 67303 } 67304 }), Object.defineProperty(i, "updating", { 67305 get: function get() { 67306 return !!(this.bufferUpdating_ || !this.audioDisabled_ && this.audioBuffer_ && this.audioBuffer_.updating || this.videoBuffer_ && this.videoBuffer_.updating); 67307 } 67308 }), Object.defineProperty(i, "buffered", { 67309 get: function get() { 67310 return function (e, t, i) { 67311 var n = null, 67312 r = null, 67313 s = 0, 67314 a = [], 67315 o = []; 67316 if (!e && !t) return as.createTimeRange(); 67317 if (!e) return t.buffered; 67318 if (!t) return e.buffered; 67319 if (i) return e.buffered; 67320 if (0 === e.buffered.length && 0 === t.buffered.length) return as.createTimeRange(); 67321 67322 for (var u = e.buffered, l = t.buffered, c = u.length; c--;) { 67323 a.push({ 67324 time: u.start(c), 67325 type: "start" 67326 }), a.push({ 67327 time: u.end(c), 67328 type: "end" 67329 }); 67330 } 67331 67332 for (c = l.length; c--;) { 67333 a.push({ 67334 time: l.start(c), 67335 type: "start" 67336 }), a.push({ 67337 time: l.end(c), 67338 type: "end" 67339 }); 67340 } 67341 67342 for (a.sort(function (e, t) { 67343 return e.time - t.time; 67344 }), c = 0; c < a.length; c++) { 67345 "start" === a[c].type ? 2 === ++s && (n = a[c].time) : "end" === a[c].type && 1 === --s && (r = a[c].time), null !== n && null !== r && (o.push([n, r]), r = n = null); 67346 } 67347 67348 return as.createTimeRanges(o); 67349 }(this.videoBuffer_, this.audioBuffer_, this.audioDisabled_); 67350 } 67351 }), i; 67352 } 67353 67354 var xc = (ll(Ac, as.EventTarget), ol(Ac, [{ 67355 key: "addSeekableRange_", 67356 value: function value(e, t) { 67357 var i = void 0; 67358 if (this.duration !== 1 / 0) throw (i = new Error("MediaSource.addSeekableRange() can only be invoked when the duration is Infinity")).name = "InvalidStateError", i.code = 11, i; 67359 (t > this.nativeMediaSource_.duration || isNaN(this.nativeMediaSource_.duration)) && (this.nativeMediaSource_.duration = t); 67360 } 67361 }, { 67362 key: "addSourceBuffer", 67363 value: function value(e) { 67364 var t = void 0, 67365 i = bc(e); 67366 67367 if (/^(video|audio)\/mp2t$/i.test(i.type)) { 67368 var n = []; 67369 i.parameters && i.parameters.codecs && (n = i.parameters.codecs.split(","), n = (n = gc(n)).filter(function (e) { 67370 return Tc(e) || Sc(e); 67371 })), 0 === n.length && (n = ["avc1.4d400d", "mp4a.40.2"]), t = new wc(this, n), 0 !== this.sourceBuffers.length && (this.sourceBuffers[0].createRealSourceBuffers_(), t.createRealSourceBuffers_(), this.sourceBuffers[0].audioDisabled_ = !0); 67372 } else t = this.nativeMediaSource_.addSourceBuffer(e); 67373 67374 return this.sourceBuffers.push(t), t; 67375 } 67376 }, { 67377 key: "dispose", 67378 value: function value() { 67379 this.trigger("dispose"), this.off(), this.sourceBuffers.forEach(function (e) { 67380 e.dispose && e.dispose(); 67381 }), this.sourceBuffers.length = 0; 67382 } 67383 }]), Ac); 67384 67385 function Ac() { 67386 al(this, Ac); 67387 var s = cl(this, (Ac.__proto__ || Object.getPrototypeOf(Ac)).call(this)), 67388 e = void 0; 67389 67390 for (e in s.nativeMediaSource_ = new y.MediaSource(), s.nativeMediaSource_) { 67391 e in Ac.prototype || "function" != typeof s.nativeMediaSource_[e] || (s[e] = s.nativeMediaSource_[e].bind(s.nativeMediaSource_)); 67392 } 67393 67394 return s.duration_ = NaN, Object.defineProperty(s, "duration", { 67395 get: function get() { 67396 return this.duration_ === 1 / 0 ? this.duration_ : this.nativeMediaSource_.duration; 67397 }, 67398 set: function set(e) { 67399 (this.duration_ = e) === 1 / 0 || (this.nativeMediaSource_.duration = e); 67400 } 67401 }), Object.defineProperty(s, "seekable", { 67402 get: function get() { 67403 return this.duration_ === 1 / 0 ? as.createTimeRanges([[0, this.nativeMediaSource_.duration]]) : this.nativeMediaSource_.seekable; 67404 } 67405 }), Object.defineProperty(s, "readyState", { 67406 get: function get() { 67407 return this.nativeMediaSource_.readyState; 67408 } 67409 }), Object.defineProperty(s, "activeSourceBuffers", { 67410 get: function get() { 67411 return this.activeSourceBuffers_; 67412 } 67413 }), s.sourceBuffers = [], s.activeSourceBuffers_ = [], s.updateActiveSourceBuffers_ = function () { 67414 if (s.activeSourceBuffers_.length = 0, 1 === s.sourceBuffers.length) { 67415 var e = s.sourceBuffers[0]; 67416 return e.appendAudioInitSegment_ = !0, e.audioDisabled_ = !e.audioCodec_, void s.activeSourceBuffers_.push(e); 67417 } 67418 67419 for (var i = !1, n = !0, t = 0; t < s.player_.audioTracks().length; t++) { 67420 var r = s.player_.audioTracks()[t]; 67421 67422 if (r.enabled && "main" !== r.kind) { 67423 n = !(i = !0); 67424 break; 67425 } 67426 } 67427 67428 s.sourceBuffers.forEach(function (e, t) { 67429 if (e.appendAudioInitSegment_ = !0, e.videoCodec_ && e.audioCodec_) e.audioDisabled_ = i;else if (e.videoCodec_ && !e.audioCodec_) e.audioDisabled_ = !0, n = !1;else if (!e.videoCodec_ && e.audioCodec_ && (e.audioDisabled_ = t ? n : !n, e.audioDisabled_)) return; 67430 s.activeSourceBuffers_.push(e); 67431 }); 67432 }, s.onPlayerMediachange_ = function () { 67433 s.sourceBuffers.forEach(function (e) { 67434 e.appendAudioInitSegment_ = !0; 67435 }); 67436 }, s.onHlsReset_ = function () { 67437 s.sourceBuffers.forEach(function (e) { 67438 e.transmuxer_ && e.transmuxer_.postMessage({ 67439 action: "resetCaptions" 67440 }); 67441 }); 67442 }, s.onHlsSegmentTimeMapping_ = function (t) { 67443 s.sourceBuffers.forEach(function (e) { 67444 return e.timeMapping_ = t.mapping; 67445 }); 67446 }, ["sourceopen", "sourceclose", "sourceended"].forEach(function (e) { 67447 this.nativeMediaSource_.addEventListener(e, this.trigger.bind(this)); 67448 }, s), s.on("sourceopen", function (e) { 67449 var t = h.querySelector('[src="' + s.url_ + '"]'); 67450 t && (s.player_ = as(t.parentNode), s.player_ && (s.player_.tech_.on("hls-reset", s.onHlsReset_), s.player_.tech_.on("hls-segment-time-mapping", s.onHlsSegmentTimeMapping_), s.player_.audioTracks && s.player_.audioTracks() && (s.player_.audioTracks().on("change", s.updateActiveSourceBuffers_), s.player_.audioTracks().on("addtrack", s.updateActiveSourceBuffers_), s.player_.audioTracks().on("removetrack", s.updateActiveSourceBuffers_)), s.player_.on("mediachange", s.onPlayerMediachange_))); 67451 }), s.on("sourceended", function (e) { 67452 for (var t = $l(s.duration), i = 0; i < s.sourceBuffers.length; i++) { 67453 var n = s.sourceBuffers[i], 67454 r = n.metadataTrack_ && n.metadataTrack_.cues; 67455 r && r.length && (r[r.length - 1].endTime = t); 67456 } 67457 }), s.on("sourceclose", function (e) { 67458 this.sourceBuffers.forEach(function (e) { 67459 e.transmuxer_ && e.transmuxer_.terminate(); 67460 }), this.sourceBuffers.length = 0, this.player_ && (this.player_.audioTracks && this.player_.audioTracks() && (this.player_.audioTracks().off("change", this.updateActiveSourceBuffers_), this.player_.audioTracks().off("addtrack", this.updateActiveSourceBuffers_), this.player_.audioTracks().off("removetrack", this.updateActiveSourceBuffers_)), this.player_.el_ && this.player_.off("mediachange", this.onPlayerMediachange_), this.player_.tech_ && this.player_.tech_.el_ && (this.player_.tech_.off("hls-reset", this.onHlsReset_), this.player_.tech_.off("hls-segment-time-mapping", this.onHlsSegmentTimeMapping_))); 67461 }), s; 67462 } 67463 67464 var Ic = 0; 67465 as.mediaSources = {}; 67466 67467 function Pc(e, t) { 67468 var i = as.mediaSources[e]; 67469 if (!i) throw new Error("Media Source not found (Video.js)"); 67470 i.trigger({ 67471 type: "sourceopen", 67472 swfId: t 67473 }); 67474 } 67475 67476 function Lc() { 67477 return !!y.MediaSource && !!y.MediaSource.isTypeSupported && y.MediaSource.isTypeSupported('video/mp4;codecs="avc1.4d400d,mp4a.40.2"'); 67478 } 67479 67480 function Oc() { 67481 if (this.MediaSource = { 67482 open: Pc, 67483 supportsNativeMediaSources: Lc 67484 }, Lc()) return new xc(); 67485 throw new Error("Cannot use create a virtual MediaSource for this video"); 67486 } 67487 67488 Oc.open = Pc, Oc.supportsNativeMediaSources = Lc; 67489 var Dc = { 67490 createObjectURL: function createObjectURL(e) { 67491 var t = void 0; 67492 return e instanceof xc ? (t = y.URL.createObjectURL(e.nativeMediaSource_), e.url_ = t) : e instanceof xc ? (t = "blob:vjs-media-source/" + Ic, Ic++, as.mediaSources[t] = e, t) : (t = y.URL.createObjectURL(e), e.url_ = t); 67493 } 67494 }; 67495 as.MediaSource = Oc, as.URL = Dc; 67496 67497 function Nc(e, t) { 67498 for (var a = void 0, o = Bc(e, { 67499 duration: t.duration, 67500 minimumUpdatePeriod: t.minimumUpdatePeriod 67501 }), i = 0; i < t.playlists.length; i++) { 67502 var n = dl(o, t.playlists[i]); 67503 n ? o = n : a = !0; 67504 } 67505 67506 return hl(t, function (e, t, i, n) { 67507 if (e.playlists && e.playlists.length) { 67508 var r = e.playlists[0].id, 67509 s = dl(o, e.playlists[0]); 67510 s && ((o = s).mediaGroups[t][i][n].playlists[0] = o.playlists[r], a = !1); 67511 } 67512 }), a ? null : o; 67513 } 67514 67515 function Rc(e) { 67516 var t = e.byterange.offset + e.byterange.length - 1; 67517 return e.uri + "-" + e.byterange.offset + "-" + t; 67518 } 67519 67520 function Uc(e, t) { 67521 var i, 67522 n, 67523 r = {}; 67524 67525 for (var s in e) { 67526 var a = e[s].sidx; 67527 67528 if (a) { 67529 var o = Rc(a); 67530 if (!t[o]) break; 67531 var u = t[o].sidxInfo; 67532 i = u, n = a, (Boolean(!i.map && !n.map) || Boolean(i.map && n.map && i.map.byterange.offset === n.map.byterange.offset && i.map.byterange.length === n.map.byterange.length)) && i.uri === n.uri && i.byterange.offset === n.byterange.offset && i.byterange.length === n.byterange.length && (r[o] = t[o]); 67533 } 67534 } 67535 67536 return r; 67537 } 67538 67539 function Mc(e, t, i, n, r) { 67540 var s = { 67541 uri: sl(n.handleManifestRedirects, e.resolvedUri), 67542 byterange: e.byterange, 67543 playlist: t 67544 }; 67545 return i(as.mergeOptions(s, { 67546 responseType: "arraybuffer", 67547 headers: Rl(s) 67548 }), r); 67549 } 67550 67551 var Bc = as.mergeOptions, 67552 jc = (ll(Fc, as.EventTarget), ol(Fc, [{ 67553 key: "setupChildLoader", 67554 value: function value(e, t) { 67555 this.masterPlaylistLoader_ = e, this.childPlaylist_ = t; 67556 } 67557 }, { 67558 key: "dispose", 67559 value: function value() { 67560 this.trigger("dispose"), this.stopRequest(), this.loadedPlaylists_ = {}, y.clearTimeout(this.minimumUpdatePeriodTimeout_), y.clearTimeout(this.mediaRequest_), y.clearTimeout(this.mediaUpdateTimeout), this.off(); 67561 } 67562 }, { 67563 key: "hasPendingRequest", 67564 value: function value() { 67565 return this.request || this.mediaRequest_; 67566 } 67567 }, { 67568 key: "stopRequest", 67569 value: function value() { 67570 if (this.request) { 67571 var e = this.request; 67572 this.request = null, e.onreadystatechange = null, e.abort(); 67573 } 67574 } 67575 }, { 67576 key: "sidxRequestFinished_", 67577 value: function value(r, s, a, o) { 67578 var u = this; 67579 return function (e, t) { 67580 if (u.request) { 67581 if (u.request = null, e) return u.error = { 67582 status: t.status, 67583 message: "DASH playlist request error at URL: " + r.uri, 67584 response: t.response, 67585 code: 2 67586 }, a && (u.state = a), u.trigger("error"), o(s, null); 67587 var i = new Uint8Array(t.response), 67588 n = $o.parseSidx(i.subarray(8)); 67589 return o(s, n); 67590 } 67591 }; 67592 } 67593 }, { 67594 key: "media", 67595 value: function value(i) { 67596 var n = this; 67597 if (!i) return this.media_; 67598 if ("HAVE_NOTHING" === this.state) throw new Error("Cannot switch media playlist from " + this.state); 67599 var r = this.state; 67600 67601 if ("string" == typeof i) { 67602 if (!this.master.playlists[i]) throw new Error("Unknown playlist URI: " + i); 67603 i = this.master.playlists[i]; 67604 } 67605 67606 var e = !this.media_ || i.id !== this.media_.id; 67607 if (e && this.loadedPlaylists_[i.id] && this.loadedPlaylists_[i.id].endList) return this.state = "HAVE_METADATA", this.media_ = i, void (e && (this.trigger("mediachanging"), this.trigger("mediachange"))); 67608 if (e) if (this.media_ && this.trigger("mediachanging"), i.sidx) { 67609 var t = void 0, 67610 s = void 0; 67611 s = this.masterPlaylistLoader_ ? (t = this.masterPlaylistLoader_.master, this.masterPlaylistLoader_.sidxMapping_) : (t = this.master, this.sidxMapping_); 67612 var a = Rc(i.sidx); 67613 s[a] = { 67614 sidxInfo: i.sidx 67615 }, this.request = Mc(i.sidx, i, this.hls_.xhr, { 67616 handleManifestRedirects: this.handleManifestRedirects 67617 }, this.sidxRequestFinished_(i, t, r, function (e, t) { 67618 if (!e || !t) throw new Error("failed to request sidx"); 67619 s[a].sidx = t, n.haveMetadata({ 67620 startingState: r, 67621 playlist: e.playlists[i.id] 67622 }); 67623 })); 67624 } else this.mediaRequest_ = y.setTimeout(this.haveMetadata.bind(this, { 67625 startingState: r, 67626 playlist: i 67627 }), 0); 67628 } 67629 }, { 67630 key: "haveMetadata", 67631 value: function value(e) { 67632 var t = e.startingState, 67633 i = e.playlist; 67634 this.state = "HAVE_METADATA", this.loadedPlaylists_[i.id] = i, this.mediaRequest_ = null, this.refreshMedia_(i.id), "HAVE_MASTER" === t ? this.trigger("loadedmetadata") : this.trigger("mediachange"); 67635 } 67636 }, { 67637 key: "pause", 67638 value: function value() { 67639 this.stopRequest(), y.clearTimeout(this.mediaUpdateTimeout), y.clearTimeout(this.minimumUpdatePeriodTimeout_), "HAVE_NOTHING" === this.state && (this.started = !1); 67640 } 67641 }, { 67642 key: "load", 67643 value: function value(e) { 67644 var t = this; 67645 y.clearTimeout(this.mediaUpdateTimeout), y.clearTimeout(this.minimumUpdatePeriodTimeout_); 67646 var i = this.media(); 67647 67648 if (e) { 67649 var n = i ? i.targetDuration / 2 * 1e3 : 5e3; 67650 this.mediaUpdateTimeout = y.setTimeout(function () { 67651 return t.load(); 67652 }, n); 67653 } else this.started ? i && !i.endList ? this.trigger("mediaupdatetimeout") : this.trigger("loadedplaylist") : this.start(); 67654 } 67655 }, { 67656 key: "parseMasterXml", 67657 value: function value() { 67658 var a = To(this.masterXml_, { 67659 manifestUri: this.srcUrl, 67660 clientOffset: this.clientOffset_, 67661 sidxMapping: this.sidxMapping_ 67662 }); 67663 a.uri = this.srcUrl; 67664 67665 for (var e = 0; e < a.playlists.length; e++) { 67666 var t = "placeholder-uri-" + e; 67667 a.playlists[e].uri = t; 67668 } 67669 67670 return hl(a, function (e, t, i, n) { 67671 if (e.playlists && e.playlists.length) { 67672 var r = "placeholder-uri-" + t + "-" + i + "-" + n, 67673 s = pl(0, r); 67674 e.playlists[0].uri = r, e.playlists[0].id = s, a.playlists[s] = e.playlists[0], a.playlists[r] = e.playlists[0]; 67675 } 67676 }), fl(a), ml(a), a; 67677 } 67678 }, { 67679 key: "start", 67680 value: function value() { 67681 var i = this; 67682 this.started = !0, this.masterPlaylistLoader_ ? this.mediaRequest_ = y.setTimeout(this.haveMaster_.bind(this), 0) : this.request = this.hls_.xhr({ 67683 uri: this.srcUrl, 67684 withCredentials: this.withCredentials 67685 }, function (e, t) { 67686 if (i.request) { 67687 if (i.request = null, e) return i.error = { 67688 status: t.status, 67689 message: "DASH playlist request error at URL: " + i.srcUrl, 67690 responseText: t.responseText, 67691 code: 2 67692 }, "HAVE_NOTHING" === i.state && (i.started = !1), i.trigger("error"); 67693 i.masterXml_ = t.responseText, t.responseHeaders && t.responseHeaders.date ? i.masterLoaded_ = Date.parse(t.responseHeaders.date) : i.masterLoaded_ = Date.now(), i.srcUrl = sl(i.handleManifestRedirects, i.srcUrl, t), i.syncClientServerClock_(i.onClientServerClockSync_.bind(i)); 67694 } 67695 }); 67696 } 67697 }, { 67698 key: "syncClientServerClock_", 67699 value: function value(n) { 67700 var r = this, 67701 s = So(this.masterXml_); 67702 return null === s ? (this.clientOffset_ = this.masterLoaded_ - Date.now(), n()) : "DIRECT" === s.method ? (this.clientOffset_ = s.value - Date.now(), n()) : void (this.request = this.hls_.xhr({ 67703 uri: rl(this.srcUrl, s.value), 67704 method: s.method, 67705 withCredentials: this.withCredentials 67706 }, function (e, t) { 67707 if (r.request) { 67708 if (e) return r.clientOffset_ = r.masterLoaded_ - Date.now(), n(); 67709 var i = void 0; 67710 i = "HEAD" === s.method ? t.responseHeaders && t.responseHeaders.date ? Date.parse(t.responseHeaders.date) : r.masterLoaded_ : Date.parse(t.responseText), r.clientOffset_ = i - Date.now(), n(); 67711 } 67712 })); 67713 } 67714 }, { 67715 key: "haveMaster_", 67716 value: function value() { 67717 this.state = "HAVE_MASTER", this.mediaRequest_ = null, this.masterPlaylistLoader_ ? this.media_ || this.media(this.childPlaylist_) : (this.master = this.parseMasterXml(), this.trigger("loadedplaylist")); 67718 } 67719 }, { 67720 key: "onClientServerClockSync_", 67721 value: function value() { 67722 var e = this; 67723 this.haveMaster_(), this.hasPendingRequest() || this.media_ || this.media(this.master.playlists[0]), this.master && this.master.minimumUpdatePeriod && (this.minimumUpdatePeriodTimeout_ = y.setTimeout(function () { 67724 e.trigger("minimumUpdatePeriod"); 67725 }, this.master.minimumUpdatePeriod)); 67726 } 67727 }, { 67728 key: "refreshXml_", 67729 value: function value() { 67730 var o = this; 67731 this.request = this.hls_.xhr({ 67732 uri: this.srcUrl, 67733 withCredentials: this.withCredentials 67734 }, function (e, t) { 67735 if (o.request) { 67736 if (o.request = null, e) return o.error = { 67737 status: t.status, 67738 message: "DASH playlist request error at URL: " + o.srcUrl, 67739 responseText: t.responseText, 67740 code: 2 67741 }, "HAVE_NOTHING" === o.state && (o.started = !1), o.trigger("error"); 67742 o.masterXml_ = t.responseText, o.sidxMapping_ = function (e, t, i, s) { 67743 var n = To(e, { 67744 manifestUri: t, 67745 clientOffset: i 67746 }), 67747 a = Uc(n.playlists, s); 67748 return hl(n, function (e, t, i, n) { 67749 if (e.playlists && e.playlists.length) { 67750 var r = e.playlists; 67751 a = Bc(a, Uc(r, s)); 67752 } 67753 }), a; 67754 }(o.masterXml_, o.srcUrl, o.clientOffset_, o.sidxMapping_); 67755 var i = o.parseMasterXml(), 67756 n = Nc(o.master, i), 67757 r = o.media().sidx; 67758 if (n) if (r) { 67759 var s = Rc(r); 67760 67761 if (!o.sidxMapping_[s]) { 67762 var a = o.media(); 67763 o.request = Mc(a.sidx, a, o.hls_.xhr, { 67764 handleManifestRedirects: o.handleManifestRedirects 67765 }, o.sidxRequestFinished_(a, i, o.state, function (e, t) { 67766 if (!e || !t) throw new Error("failed to request sidx on minimumUpdatePeriod"); 67767 o.sidxMapping_[s].sidx = t, o.minimumUpdatePeriodTimeout_ = y.setTimeout(function () { 67768 o.trigger("minimumUpdatePeriod"); 67769 }, o.master.minimumUpdatePeriod), o.refreshMedia_(o.media().id); 67770 })); 67771 } 67772 } else o.master = n; 67773 o.minimumUpdatePeriodTimeout_ = y.setTimeout(function () { 67774 o.trigger("minimumUpdatePeriod"); 67775 }, o.master.minimumUpdatePeriod); 67776 } 67777 }); 67778 } 67779 }, { 67780 key: "refreshMedia_", 67781 value: function value(e) { 67782 var t = this; 67783 if (!e) throw new Error("refreshMedia_ must take a media id"); 67784 var i = void 0, 67785 n = void 0; 67786 n = this.masterPlaylistLoader_ ? (i = this.masterPlaylistLoader_.master, this.masterPlaylistLoader_.parseMasterXml()) : (i = this.master, this.parseMasterXml()); 67787 var r = Nc(i, n); 67788 r ? (this.masterPlaylistLoader_ ? this.masterPlaylistLoader_.master = r : this.master = r, this.media_ = r.playlists[e]) : (this.media_ = n.playlists[e], this.trigger("playlistunchanged")), this.media().endList || (this.mediaUpdateTimeout = y.setTimeout(function () { 67789 t.trigger("mediaupdatetimeout"); 67790 }, gl(this.media(), !!r))), this.trigger("loadedplaylist"); 67791 } 67792 }]), Fc); 67793 67794 function Fc(e, t) { 67795 var i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}, 67796 n = arguments[3]; 67797 al(this, Fc); 67798 var r = cl(this, (Fc.__proto__ || Object.getPrototypeOf(Fc)).call(this)), 67799 s = i.withCredentials, 67800 a = void 0 !== s && s, 67801 o = i.handleManifestRedirects, 67802 u = void 0 !== o && o; 67803 if (r.hls_ = t, r.withCredentials = a, r.handleManifestRedirects = u, !e) throw new Error("A non-empty playlist URL or playlist is required"); 67804 return r.on("minimumUpdatePeriod", function () { 67805 r.refreshXml_(); 67806 }), r.on("mediaupdatetimeout", function () { 67807 r.refreshMedia_(r.media().id); 67808 }), r.state = "HAVE_NOTHING", r.loadedPlaylists_ = {}, "string" == typeof e ? (r.srcUrl = e, r.sidxMapping_ = {}, cl(r)) : (r.setupChildLoader(n, e), r); 67809 } 67810 67811 function Hc(e) { 67812 return as.log.debug ? as.log.debug.bind(as, "VHS:", e + " >") : function () {}; 67813 } 67814 67815 function Vc() {} 67816 67817 var qc = (ol(Wc, [{ 67818 key: "createSourceBuffer_", 67819 value: function value(e, t) { 67820 var i = this; 67821 this.sourceBuffer_ = this.mediaSource.addSourceBuffer(e), this.logger_("created SourceBuffer"), t && (t.trigger("sourcebufferadded"), this.mediaSource.sourceBuffers.length < 2) ? t.on("sourcebufferadded", function () { 67822 i.start_(); 67823 }) : this.start_(); 67824 } 67825 }, { 67826 key: "start_", 67827 value: function value() { 67828 var t = this; 67829 this.started_ = !0, this.onUpdateendCallback_ = function () { 67830 var e = t.pendingCallback_; 67831 t.pendingCallback_ = null, t.sourceBuffer_.removing = !1, t.logger_("buffered [" + Xl(t.buffered()) + "]"), e && e(), t.runCallback_(); 67832 }, this.sourceBuffer_.addEventListener("updateend", this.onUpdateendCallback_), this.runCallback_(); 67833 } 67834 }, { 67835 key: "abort", 67836 value: function value(e) { 67837 var t = this; 67838 this.processedAppend_ && this.queueCallback_(function () { 67839 t.sourceBuffer_.abort(); 67840 }, e); 67841 } 67842 }, { 67843 key: "appendBuffer", 67844 value: function value(e, t) { 67845 var i = this; 67846 this.processedAppend_ = !0, this.queueCallback_(function () { 67847 e.videoSegmentTimingInfoCallback && i.sourceBuffer_.addEventListener("videoSegmentTimingInfo", e.videoSegmentTimingInfoCallback), i.sourceBuffer_.appendBuffer(e.bytes); 67848 }, function () { 67849 e.videoSegmentTimingInfoCallback && i.sourceBuffer_.removeEventListener("videoSegmentTimingInfo", e.videoSegmentTimingInfoCallback), t(); 67850 }); 67851 } 67852 }, { 67853 key: "buffered", 67854 value: function value() { 67855 return this.sourceBuffer_ ? this.sourceBuffer_.buffered : as.createTimeRanges(); 67856 } 67857 }, { 67858 key: "remove", 67859 value: function value(e, t, i) { 67860 var n = this, 67861 r = 2 < arguments.length && void 0 !== i ? i : Vc; 67862 this.processedAppend_ && this.queueCallback_(function () { 67863 n.logger_("remove [" + e + " => " + t + "]"), n.sourceBuffer_.removing = !0, n.sourceBuffer_.remove(e, t); 67864 }, r); 67865 } 67866 }, { 67867 key: "updating", 67868 value: function value() { 67869 return !this.sourceBuffer_ || this.sourceBuffer_.updating || !!this.pendingCallback_ && this.pendingCallback_ !== Vc; 67870 } 67871 }, { 67872 key: "timestampOffset", 67873 value: function value(e) { 67874 var t = this; 67875 return "undefined" != typeof e && (this.queueCallback_(function () { 67876 t.sourceBuffer_.timestampOffset = e, t.runCallback_(); 67877 }), this.timestampOffset_ = e), this.timestampOffset_; 67878 } 67879 }, { 67880 key: "queueCallback_", 67881 value: function value(e, t) { 67882 this.callbacks_.push([e.bind(this), t]), this.runCallback_(); 67883 } 67884 }, { 67885 key: "runCallback_", 67886 value: function value() { 67887 var e = void 0; 67888 !this.updating() && this.callbacks_.length && this.started_ && (e = this.callbacks_.shift(), this.pendingCallback_ = e[1], e[0]()); 67889 } 67890 }, { 67891 key: "dispose", 67892 value: function value() { 67893 function e() { 67894 t.sourceBuffer_ && "open" === t.mediaSource.readyState && t.sourceBuffer_.abort(), t.sourceBuffer_.removeEventListener("updateend", e); 67895 } 67896 67897 var t = this; 67898 this.sourceBuffer_.removeEventListener("updateend", this.onUpdateendCallback_), this.sourceBuffer_.removing ? this.sourceBuffer_.addEventListener("updateend", e) : e(); 67899 } 67900 }]), Wc); 67901 67902 function Wc(e, t, i, n) { 67903 al(this, Wc), this.callbacks_ = [], this.pendingCallback_ = null, this.timestampOffset_ = 0, this.mediaSource = e, this.processedAppend_ = !1, this.type_ = i, this.mimeType_ = t, this.logger_ = Hc("SourceUpdater[" + i + "][" + t + "]"), "closed" === e.readyState ? e.addEventListener("sourceopen", this.createSourceBuffer_.bind(this, t, n)) : this.createSourceBuffer_(t, n); 67904 } 67905 67906 function zc(e) { 67907 e.forEach(function (e) { 67908 e.abort(); 67909 }); 67910 } 67911 67912 function Gc(e, t) { 67913 return t.timedout ? { 67914 status: t.status, 67915 message: "HLS request timed-out at URL: " + t.uri, 67916 code: ih, 67917 xhr: t 67918 } : t.aborted ? { 67919 status: t.status, 67920 message: "HLS request aborted at URL: " + t.uri, 67921 code: nh, 67922 xhr: t 67923 } : e ? { 67924 status: t.status, 67925 message: "HLS request errored at URL: " + t.uri, 67926 code: th, 67927 xhr: t 67928 } : null; 67929 } 67930 67931 function Xc(i, n, r) { 67932 var s = 0, 67933 a = !1; 67934 return function (e, t) { 67935 if (!a) return e ? (a = !0, zc(i), r(e, t)) : (s += 1) === i.length ? (t.endOfAllRequests = Date.now(), t.encryptedBytes ? function (n, r, s) { 67936 n.addEventListener("message", function e(t) { 67937 if (t.data.source === r.requestId) { 67938 n.removeEventListener("message", e); 67939 var i = t.data.decrypted; 67940 return r.bytes = new Uint8Array(i.bytes, i.byteOffset, i.byteLength), s(null, r); 67941 } 67942 }); 67943 var e = void 0; 67944 e = r.key.bytes.slice ? r.key.bytes.slice() : new Uint32Array(Array.prototype.slice.call(r.key.bytes)), n.postMessage(Bl({ 67945 source: r.requestId, 67946 encrypted: r.encryptedBytes, 67947 key: e, 67948 iv: r.key.iv 67949 }), [r.encryptedBytes.buffer, e.buffer]); 67950 }(n, t, r) : r(null, t)) : void 0; 67951 }; 67952 } 67953 67954 function Kc(t, i) { 67955 return function (e) { 67956 return t.stats = as.mergeOptions(t.stats, function (e) { 67957 var t = e.target, 67958 i = { 67959 bandwidth: 1 / 0, 67960 bytesReceived: 0, 67961 roundTripTime: Date.now() - t.requestTime || 0 67962 }; 67963 return i.bytesReceived = e.loaded, i.bandwidth = Math.floor(i.bytesReceived / i.roundTripTime * 8 * 1e3), i; 67964 }(e)), !t.stats.firstBytesReceivedAt && t.stats.bytesReceived && (t.stats.firstBytesReceivedAt = Date.now()), i(e, t); 67965 }; 67966 } 67967 67968 function Yc(e, t, i, n, r, s, a) { 67969 var o = [], 67970 u = Xc(o, i, a); 67971 67972 if (r.key && !r.key.bytes) { 67973 var l = e(as.mergeOptions(t, { 67974 uri: r.key.resolvedUri, 67975 responseType: "arraybuffer" 67976 }), function (s, a) { 67977 return function (e, t) { 67978 var i = t.response, 67979 n = Gc(e, t); 67980 if (n) return a(n, s); 67981 if (16 !== i.byteLength) return a({ 67982 status: t.status, 67983 message: "Invalid HLS key at URL: " + t.uri, 67984 code: th, 67985 xhr: t 67986 }, s); 67987 var r = new DataView(i); 67988 return s.key.bytes = new Uint32Array([r.getUint32(0), r.getUint32(4), r.getUint32(8), r.getUint32(12)]), a(null, s); 67989 }; 67990 }(r, u)); 67991 o.push(l); 67992 } 67993 67994 if (r.map && !r.map.bytes) { 67995 var c = e(as.mergeOptions(t, { 67996 uri: r.map.resolvedUri, 67997 responseType: "arraybuffer", 67998 headers: Rl(r.map) 67999 }), function (r, s, a) { 68000 return function (e, t) { 68001 var i = t.response, 68002 n = Gc(e, t); 68003 return n ? a(n, r) : 0 === i.byteLength ? a({ 68004 status: t.status, 68005 message: "Empty HLS segment content at URL: " + t.uri, 68006 code: th, 68007 xhr: t 68008 }, r) : (r.map.bytes = new Uint8Array(t.response), s && !s.isInitialized() && s.init(), r.map.timescales = eu.timescale(r.map.bytes), r.map.videoTrackIds = eu.videoTrackIds(r.map.bytes), a(null, r)); 68009 }; 68010 }(r, n, u)); 68011 o.push(c); 68012 } 68013 68014 var h = e(as.mergeOptions(t, { 68015 uri: r.resolvedUri, 68016 responseType: "arraybuffer", 68017 headers: Rl(r) 68018 }), function (s, a, o) { 68019 return function (e, t) { 68020 var i = t.response, 68021 n = Gc(e, t), 68022 r = void 0; 68023 return n ? o(n, s) : 0 === i.byteLength ? o({ 68024 status: t.status, 68025 message: "Empty HLS segment content at URL: " + t.uri, 68026 code: th, 68027 xhr: t 68028 }, s) : (s.stats = function (e) { 68029 return { 68030 bandwidth: e.bandwidth, 68031 bytesReceived: e.bytesReceived || 0, 68032 roundTripTime: e.roundTripTime || 0 68033 }; 68034 }(t), s.key ? s.encryptedBytes = new Uint8Array(t.response) : s.bytes = new Uint8Array(t.response), a && s.map && s.map.bytes && (a.isInitialized() || a.init(), (r = a.parse(s.bytes, s.map.videoTrackIds, s.map.timescales)) && r.captions && (s.captionStreams = r.captionStreams, s.fmp4Captions = r.captions)), o(null, s)); 68035 }; 68036 }(r, n, u)); 68037 return h.addEventListener("progress", Kc(r, s)), o.push(h), function () { 68038 return zc(o); 68039 }; 68040 } 68041 68042 function $c(e, t) { 68043 var i; 68044 return e && (i = y.getComputedStyle(e)) ? i[t] : ""; 68045 } 68046 68047 function Qc(e, n) { 68048 var r = e.slice(); 68049 e.sort(function (e, t) { 68050 var i = n(e, t); 68051 return 0 === i ? r.indexOf(e) - r.indexOf(t) : i; 68052 }); 68053 } 68054 68055 function Jc(e, t) { 68056 var i = void 0, 68057 n = void 0; 68058 return e.attributes.BANDWIDTH && (i = e.attributes.BANDWIDTH), i = i || y.Number.MAX_VALUE, t.attributes.BANDWIDTH && (n = t.attributes.BANDWIDTH), i - (n = n || y.Number.MAX_VALUE); 68059 } 68060 68061 function Zc(e) { 68062 return "number" == typeof e && isFinite(e); 68063 } 68064 68065 var eh = { 68066 GOAL_BUFFER_LENGTH: 30, 68067 MAX_GOAL_BUFFER_LENGTH: 60, 68068 GOAL_BUFFER_LENGTH_RATE: 1, 68069 INITIAL_BANDWIDTH: 4194304, 68070 BANDWIDTH_VARIANCE: 1.2, 68071 BUFFER_LOW_WATER_LINE: 0, 68072 MAX_BUFFER_LOW_WATER_LINE: 30, 68073 BUFFER_LOW_WATER_LINE_RATE: 1 68074 }, 68075 th = 2, 68076 ih = -101, 68077 nh = -102, 68078 rh = (ll(sh, as.EventTarget), ol(sh, [{ 68079 key: "resetStats_", 68080 value: function value() { 68081 this.mediaBytesTransferred = 0, this.mediaRequests = 0, this.mediaRequestsAborted = 0, this.mediaRequestsTimedout = 0, this.mediaRequestsErrored = 0, this.mediaTransferDuration = 0, this.mediaSecondsLoaded = 0; 68082 } 68083 }, { 68084 key: "dispose", 68085 value: function value() { 68086 this.trigger("dispose"), this.state = "DISPOSED", this.pause(), this.abort_(), this.sourceUpdater_ && this.sourceUpdater_.dispose(), this.resetStats_(), this.captionParser_ && this.captionParser_.reset(), this.checkBufferTimeout_ && y.clearTimeout(this.checkBufferTimeout_), this.syncController_ && this.triggerSyncInfoUpdate_ && this.syncController_.off("syncinfoupdate", this.triggerSyncInfoUpdate_), this.off(); 68087 } 68088 }, { 68089 key: "abort", 68090 value: function value() { 68091 "WAITING" === this.state ? (this.abort_(), this.state = "READY", this.paused() || this.monitorBuffer_()) : this.pendingSegment_ && (this.pendingSegment_ = null); 68092 } 68093 }, { 68094 key: "abort_", 68095 value: function value() { 68096 this.pendingSegment_ && this.pendingSegment_.abortRequests(), this.pendingSegment_ = null; 68097 } 68098 }, { 68099 key: "error", 68100 value: function value(e) { 68101 return "undefined" != typeof e && (this.error_ = e), this.pendingSegment_ = null, this.error_; 68102 } 68103 }, { 68104 key: "endOfStream", 68105 value: function value() { 68106 this.ended_ = !0, this.pause(), this.trigger("ended"); 68107 } 68108 }, { 68109 key: "buffered_", 68110 value: function value() { 68111 return this.sourceUpdater_ ? this.sourceUpdater_.buffered() : as.createTimeRanges(); 68112 } 68113 }, { 68114 key: "initSegment", 68115 value: function value(e, t) { 68116 var i = 1 < arguments.length && void 0 !== t && t; 68117 if (!e) return null; 68118 var n = jl(e), 68119 r = this.initSegments_[n]; 68120 return i && !r && e.bytes && (this.initSegments_[n] = r = { 68121 resolvedUri: e.resolvedUri, 68122 byterange: e.byterange, 68123 bytes: e.bytes, 68124 timescales: e.timescales, 68125 videoTrackIds: e.videoTrackIds 68126 }), r || e; 68127 } 68128 }, { 68129 key: "segmentKey", 68130 value: function value(e, t) { 68131 var i = 1 < arguments.length && void 0 !== t && t; 68132 if (!e) return null; 68133 var n = Fl(e), 68134 r = this.keyCache_[n]; 68135 this.cacheEncryptionKeys_ && i && !r && e.bytes && (this.keyCache_[n] = r = { 68136 resolvedUri: e.resolvedUri, 68137 bytes: e.bytes 68138 }); 68139 var s = { 68140 resolvedUri: (r || e).resolvedUri 68141 }; 68142 return r && (s.bytes = r.bytes), s; 68143 } 68144 }, { 68145 key: "couldBeginLoading_", 68146 value: function value() { 68147 return this.playlist_ && (this.sourceUpdater_ || this.mimeType_ && "INIT" === this.state) && !this.paused(); 68148 } 68149 }, { 68150 key: "load", 68151 value: function value() { 68152 if (this.monitorBuffer_(), this.playlist_) { 68153 if (this.syncController_.setDateTimeMapping(this.playlist_), "INIT" === this.state && this.couldBeginLoading_()) return this.init_(); 68154 !this.couldBeginLoading_() || "READY" !== this.state && "INIT" !== this.state || (this.state = "READY"); 68155 } 68156 } 68157 }, { 68158 key: "init_", 68159 value: function value() { 68160 return this.state = "READY", this.sourceUpdater_ = new qc(this.mediaSource_, this.mimeType_, this.loaderType_, this.sourceBufferEmitter_), this.resetEverything(), this.monitorBuffer_(); 68161 } 68162 }, { 68163 key: "playlist", 68164 value: function value(e, t) { 68165 var i = 1 < arguments.length && void 0 !== t ? t : {}; 68166 68167 if (e) { 68168 var n = this.playlist_, 68169 r = this.pendingSegment_; 68170 this.playlist_ = e, this.xhrOptions_ = i, "INIT" === this.state && (e.syncInfo = { 68171 mediaSequence: e.mediaSequence, 68172 time: 0 68173 }); 68174 var s = null; 68175 if (n && (n.id ? s = n.id : n.uri && (s = n.uri)), this.logger_("playlist update [" + s + " => " + (e.id || e.uri) + "]"), this.trigger("syncinfoupdate"), "INIT" === this.state && this.couldBeginLoading_()) return this.init_(); 68176 68177 if (n && n.uri === e.uri) { 68178 var a = e.mediaSequence - n.mediaSequence; 68179 this.logger_("live window shift [" + a + "]"), null !== this.mediaIndex && (this.mediaIndex -= a), r && (r.mediaIndex -= a, 0 <= r.mediaIndex && (r.segment = e.segments[r.mediaIndex])), this.syncController_.saveExpiredSegmentInfo(n, e); 68180 } else null !== this.mediaIndex && this.resyncLoader(); 68181 } 68182 } 68183 }, { 68184 key: "pause", 68185 value: function value() { 68186 this.checkBufferTimeout_ && (y.clearTimeout(this.checkBufferTimeout_), this.checkBufferTimeout_ = null); 68187 } 68188 }, { 68189 key: "paused", 68190 value: function value() { 68191 return null === this.checkBufferTimeout_; 68192 } 68193 }, { 68194 key: "mimeType", 68195 value: function value(e, t) { 68196 this.mimeType_ || (this.mimeType_ = e, this.sourceBufferEmitter_ = t, "INIT" === this.state && this.couldBeginLoading_() && this.init_()); 68197 } 68198 }, { 68199 key: "resetEverything", 68200 value: function value(e) { 68201 this.ended_ = !1, this.resetLoader(), this.remove(0, 1 / 0, e), this.captionParser_ && this.captionParser_.clearAllCaptions(), this.trigger("reseteverything"); 68202 } 68203 }, { 68204 key: "resetLoader", 68205 value: function value() { 68206 this.fetchAtBuffer_ = !1, this.resyncLoader(); 68207 } 68208 }, { 68209 key: "resyncLoader", 68210 value: function value() { 68211 this.mediaIndex = null, this.syncPoint_ = null, this.abort(); 68212 } 68213 }, { 68214 key: "remove", 68215 value: function value(e, t, i) { 68216 if (t === 1 / 0 && (t = this.duration_()), this.sourceUpdater_ && this.sourceUpdater_.remove(e, t, i), Yl(e, t, this.segmentMetadataTrack_), this.inbandTextTracks_) for (var n in this.inbandTextTracks_) { 68217 Yl(e, t, this.inbandTextTracks_[n]); 68218 } 68219 } 68220 }, { 68221 key: "monitorBuffer_", 68222 value: function value() { 68223 this.checkBufferTimeout_ && y.clearTimeout(this.checkBufferTimeout_), this.checkBufferTimeout_ = y.setTimeout(this.monitorBufferTick_.bind(this), 1); 68224 } 68225 }, { 68226 key: "monitorBufferTick_", 68227 value: function value() { 68228 "READY" === this.state && this.fillBuffer_(), this.checkBufferTimeout_ && y.clearTimeout(this.checkBufferTimeout_), this.checkBufferTimeout_ = y.setTimeout(this.monitorBufferTick_.bind(this), 500); 68229 } 68230 }, { 68231 key: "fillBuffer_", 68232 value: function value() { 68233 if (!this.sourceUpdater_.updating()) { 68234 this.syncPoint_ || (this.syncPoint_ = this.syncController_.getSyncPoint(this.playlist_, this.duration_(), this.currentTimeline_, this.currentTime_())); 68235 var e = this.checkBuffer_(this.buffered_(), this.playlist_, this.mediaIndex, this.hasPlayed_(), this.currentTime_(), this.syncPoint_); 68236 e && (this.isEndOfStream_(e.mediaIndex) ? this.endOfStream() : e.mediaIndex === this.playlist_.segments.length - 1 && "ended" === this.mediaSource_.readyState && !this.seeking_() || (e.timeline !== this.currentTimeline_ && (this.syncController_.reset(), e.timestampOffset = e.startOfSegment, this.captionParser_ && this.captionParser_.clearAllCaptions()), this.loadSegment_(e))); 68237 } 68238 } 68239 }, { 68240 key: "isEndOfStream_", 68241 value: function value(e, t) { 68242 return function (e, t, i) { 68243 if (!e || !t) return !1; 68244 var n = i === e.segments.length; 68245 return e.endList && "open" === t.readyState && n; 68246 }(1 < arguments.length && void 0 !== t ? t : this.playlist_, this.mediaSource_, e) && !this.sourceUpdater_.updating(); 68247 } 68248 }, { 68249 key: "checkBuffer_", 68250 value: function value(e, t, i, n, r, s) { 68251 var a = 0, 68252 o = void 0; 68253 e.length && (a = e.end(e.length - 1)); 68254 var u = Math.max(0, a - r); 68255 if (!t.segments.length) return null; 68256 if (u >= this.goalBufferLength_()) return null; 68257 if (!n && 1 <= u) return null; 68258 if (null === s) return i = this.getSyncSegmentCandidate_(t), this.generateSegmentInfo_(t, i, null, !0); 68259 if (null !== i) return t.segments[i], o = a, this.generateSegmentInfo_(t, i + 1, o, !1); 68260 68261 if (this.fetchAtBuffer_) { 68262 var l = tc.getMediaInfoForTime(t, a, s.segmentIndex, s.time); 68263 i = l.mediaIndex, o = l.startTime; 68264 } else { 68265 var c = tc.getMediaInfoForTime(t, r, s.segmentIndex, s.time); 68266 i = c.mediaIndex, o = c.startTime; 68267 } 68268 68269 return this.generateSegmentInfo_(t, i, o, !1); 68270 } 68271 }, { 68272 key: "getSyncSegmentCandidate_", 68273 value: function value(e) { 68274 var t = this; 68275 if (-1 === this.currentTimeline_) return 0; 68276 var i = e.segments.map(function (e, t) { 68277 return { 68278 timeline: e.timeline, 68279 segmentIndex: t 68280 }; 68281 }).filter(function (e) { 68282 return e.timeline === t.currentTimeline_; 68283 }); 68284 return i.length ? i[Math.min(i.length - 1, 1)].segmentIndex : Math.max(e.segments.length - 1, 0); 68285 } 68286 }, { 68287 key: "generateSegmentInfo_", 68288 value: function value(e, t, i, n) { 68289 if (t < 0 || t >= e.segments.length) return null; 68290 var r = e.segments[t]; 68291 return { 68292 requestId: "segment-loader-" + Math.random(), 68293 uri: r.resolvedUri, 68294 mediaIndex: t, 68295 isSyncRequest: n, 68296 startOfSegment: i, 68297 playlist: e, 68298 bytes: null, 68299 encryptedBytes: null, 68300 timestampOffset: null, 68301 timeline: r.timeline, 68302 duration: r.duration, 68303 segment: r 68304 }; 68305 } 68306 }, { 68307 key: "abortRequestEarly_", 68308 value: function value(e) { 68309 if (this.hls_.tech_.paused() || !this.xhrOptions_.timeout || !this.playlist_.attributes.BANDWIDTH) return !1; 68310 if (Date.now() - (e.firstBytesReceivedAt || Date.now()) < 1e3) return !1; 68311 68312 var t = this.currentTime_(), 68313 i = e.bandwidth, 68314 n = this.pendingSegment_.duration, 68315 r = tc.estimateSegmentRequestTime(n, i, this.playlist_, e.bytesReceived), 68316 s = function (e, t, i) { 68317 var n = 2 < arguments.length && void 0 !== i ? i : 1; 68318 return ((e.length ? e.end(e.length - 1) : 0) - t) / n; 68319 }(this.buffered_(), t, this.hls_.tech_.playbackRate()) - 1; 68320 68321 if (r <= s) return !1; 68322 68323 var a = function (e) { 68324 var t = e.master, 68325 i = e.currentTime, 68326 n = e.bandwidth, 68327 r = e.duration, 68328 s = e.segmentDuration, 68329 a = e.timeUntilRebuffer, 68330 o = e.currentTimeline, 68331 u = e.syncController, 68332 l = t.playlists.filter(function (e) { 68333 return !tc.isIncompatible(e); 68334 }), 68335 c = l.filter(tc.isEnabled); 68336 c.length || (c = l.filter(function (e) { 68337 return !tc.isDisabled(e); 68338 })); 68339 var h = c.filter(tc.hasAttribute.bind(null, "BANDWIDTH")).map(function (e) { 68340 var t = u.getSyncPoint(e, r, o, i) ? 1 : 2; 68341 return { 68342 playlist: e, 68343 rebufferingImpact: tc.estimateSegmentRequestTime(s, n, e) * t - a 68344 }; 68345 }), 68346 d = h.filter(function (e) { 68347 return e.rebufferingImpact <= 0; 68348 }); 68349 return Qc(d, function (e, t) { 68350 return Jc(t.playlist, e.playlist); 68351 }), d.length ? d[0] : (Qc(h, function (e, t) { 68352 return e.rebufferingImpact - t.rebufferingImpact; 68353 }), h[0] || null); 68354 }({ 68355 master: this.hls_.playlists.master, 68356 currentTime: t, 68357 bandwidth: i, 68358 duration: this.duration_(), 68359 segmentDuration: n, 68360 timeUntilRebuffer: s, 68361 currentTimeline: this.currentTimeline_, 68362 syncController: this.syncController_ 68363 }); 68364 68365 if (a) { 68366 var o = r - s - a.rebufferingImpact, 68367 u = .5; 68368 return s <= 1 / 30 && (u = 1), !(!a.playlist || a.playlist.uri === this.playlist_.uri || o < u) && (this.bandwidth = a.playlist.attributes.BANDWIDTH * eh.BANDWIDTH_VARIANCE + 1, this.abort(), this.trigger("earlyabort"), !0); 68369 } 68370 } 68371 }, { 68372 key: "handleProgress_", 68373 value: function value(e, t) { 68374 this.pendingSegment_ && t.requestId === this.pendingSegment_.requestId && !this.abortRequestEarly_(t.stats) && this.trigger("progress"); 68375 } 68376 }, { 68377 key: "loadSegment_", 68378 value: function value(e) { 68379 this.state = "WAITING", this.pendingSegment_ = e, this.trimBackBuffer_(e), e.abortRequests = Yc(this.hls_.xhr, this.xhrOptions_, this.decrypter_, this.captionParser_, this.createSimplifiedSegmentObj_(e), this.handleProgress_.bind(this), this.segmentRequestFinished_.bind(this)); 68380 } 68381 }, { 68382 key: "trimBackBuffer_", 68383 value: function value(e) { 68384 var t = function (e, t, i) { 68385 var n = t - 30; 68386 e.length && (n = Math.max(n, e.start(0))); 68387 var r = t - i; 68388 return Math.min(r, n); 68389 }(this.seekable_(), this.currentTime_(), this.playlist_.targetDuration || 10); 68390 68391 0 < t && this.remove(0, t); 68392 } 68393 }, { 68394 key: "createSimplifiedSegmentObj_", 68395 value: function value(e) { 68396 var t = e.segment, 68397 i = { 68398 resolvedUri: t.resolvedUri, 68399 byterange: t.byterange, 68400 requestId: e.requestId 68401 }; 68402 68403 if (t.key) { 68404 var n = t.key.iv || new Uint32Array([0, 0, 0, e.mediaIndex + e.playlist.mediaSequence]); 68405 i.key = this.segmentKey(t.key), i.key.iv = n; 68406 } 68407 68408 return t.map && (i.map = this.initSegment(t.map)), i; 68409 } 68410 }, { 68411 key: "segmentRequestFinished_", 68412 value: function value(e, t) { 68413 if (this.mediaRequests += 1, t.stats && (this.mediaBytesTransferred += t.stats.bytesReceived, this.mediaTransferDuration += t.stats.roundTripTime), this.pendingSegment_) { 68414 if (t.requestId === this.pendingSegment_.requestId) { 68415 if (e) return this.pendingSegment_ = null, this.state = "READY", e.code === nh ? void (this.mediaRequestsAborted += 1) : (this.pause(), e.code === ih ? (this.mediaRequestsTimedout += 1, this.bandwidth = 1, this.roundTrip = NaN, void this.trigger("bandwidthupdate")) : (this.mediaRequestsErrored += 1, this.error(e), void this.trigger("error"))); 68416 this.bandwidth = t.stats.bandwidth, this.roundTrip = t.stats.roundTripTime, t.map && (t.map = this.initSegment(t.map, !0)), t.key && this.segmentKey(t.key, !0), this.processSegmentResponse_(t); 68417 } 68418 } else this.mediaRequestsAborted += 1; 68419 } 68420 }, { 68421 key: "processSegmentResponse_", 68422 value: function value(e) { 68423 var t = this.pendingSegment_; 68424 t.bytes = e.bytes, e.map && (t.segment.map.bytes = e.map.bytes), t.endOfAllRequests = e.endOfAllRequests, e.fmp4Captions && (function (e, t, i) { 68425 for (var n in i) { 68426 if (!e[n]) { 68427 t.trigger({ 68428 type: "usage", 68429 name: "hls-608" 68430 }); 68431 var r = t.textTracks().getTrackById(n); 68432 e[n] = r || t.addRemoteTextTrack({ 68433 kind: "captions", 68434 id: n, 68435 label: n 68436 }, !1).track; 68437 } 68438 } 68439 }(this.inbandTextTracks_, this.hls_.tech_, e.captionStreams), function (e) { 68440 var r = e.inbandTextTracks, 68441 t = e.captionArray, 68442 s = e.timestampOffset; 68443 68444 if (t) { 68445 var a = window.WebKitDataCue || window.VTTCue; 68446 t.forEach(function (e) { 68447 var t = e.stream, 68448 i = e.startTime, 68449 n = e.endTime; 68450 r[t] && (i += s, n += s, r[t].addCue(new a(i, n, e.text))); 68451 }); 68452 } 68453 }({ 68454 inbandTextTracks: this.inbandTextTracks_, 68455 captionArray: e.fmp4Captions, 68456 timestampOffset: 0 68457 }), this.captionParser_ && this.captionParser_.clearParsedCaptions()), this.handleSegment_(); 68458 } 68459 }, { 68460 key: "handleSegment_", 68461 value: function value() { 68462 var e = this; 68463 68464 if (this.pendingSegment_) { 68465 var t = this.pendingSegment_, 68466 i = t.segment, 68467 n = this.syncController_.probeSegmentInfo(t); 68468 "undefined" == typeof this.startingMedia_ && n && (n.containsAudio || n.containsVideo) && (this.startingMedia_ = { 68469 containsAudio: n.containsAudio, 68470 containsVideo: n.containsVideo 68471 }); 68472 68473 var r = function (e, t, i) { 68474 return "main" === e && t && i ? i.containsAudio || i.containsVideo ? t.containsVideo && !i.containsVideo ? "Only audio found in segment when we expected video. We can't switch to audio only from a stream that had video. To get rid of this message, please add codec information to the manifest." : !t.containsVideo && i.containsVideo ? "Video found in segment when we expected only audio. We can't switch to a stream with video from an audio only stream. To get rid of this message, please add codec information to the manifest." : null : "Neither audio nor video found in segment." : null; 68475 }(this.loaderType_, this.startingMedia_, n); 68476 68477 if (r) return this.error({ 68478 message: r, 68479 blacklistDuration: 1 / 0 68480 }), void this.trigger("error"); 68481 if (t.isSyncRequest) return this.trigger("syncinfoupdate"), this.pendingSegment_ = null, void (this.state = "READY"); 68482 68483 if (null !== t.timestampOffset && t.timestampOffset !== this.sourceUpdater_.timestampOffset()) { 68484 if (n && n.segmentTimestampInfo) { 68485 var s = n.segmentTimestampInfo[0].ptsTime, 68486 a = n.segmentTimestampInfo[0].dtsTime; 68487 t.timestampOffset -= s - a; 68488 } 68489 68490 this.sourceUpdater_.timestampOffset(t.timestampOffset), this.trigger("timestampoffset"); 68491 } 68492 68493 var o = this.syncController_.mappingForTimeline(t.timeline); 68494 68495 if (null !== o && this.trigger({ 68496 type: "segmenttimemapping", 68497 mapping: o 68498 }), this.state = "APPENDING", i.map) { 68499 var u = jl(i.map); 68500 68501 if (!this.activeInitSegmentId_ || this.activeInitSegmentId_ !== u) { 68502 var l = this.initSegment(i.map); 68503 this.sourceUpdater_.appendBuffer({ 68504 bytes: l.bytes 68505 }, function () { 68506 e.activeInitSegmentId_ = u; 68507 }); 68508 } 68509 } 68510 68511 t.byteLength = t.bytes.byteLength, "number" == typeof i.start && "number" == typeof i.end ? this.mediaSecondsLoaded += i.end - i.start : this.mediaSecondsLoaded += i.duration, this.logger_(function (e) { 68512 var t = e.segment, 68513 i = t.start, 68514 n = t.end, 68515 r = e.playlist, 68516 s = r.mediaSequence, 68517 a = r.id, 68518 o = r.segments, 68519 u = void 0 === o ? [] : o, 68520 l = e.mediaIndex, 68521 c = e.timeline; 68522 return ["appending [" + l + "] of [" + s + ", " + (s + u.length) + "] from playlist [" + a + "]", "[" + i + " => " + n + "] in timeline [" + c + "]"].join(" "); 68523 }(t)), this.sourceUpdater_.appendBuffer({ 68524 bytes: t.bytes, 68525 videoSegmentTimingInfoCallback: this.handleVideoSegmentTimingInfo_.bind(this, t.requestId) 68526 }, this.handleUpdateEnd_.bind(this)); 68527 } else this.state = "READY"; 68528 } 68529 }, { 68530 key: "handleVideoSegmentTimingInfo_", 68531 value: function value(e, t) { 68532 if (this.pendingSegment_ && e === this.pendingSegment_.requestId) { 68533 var i = this.pendingSegment_.segment; 68534 i.videoTimingInfo || (i.videoTimingInfo = {}), i.videoTimingInfo.transmuxerPrependedSeconds = t.videoSegmentTimingInfo.prependedContentDuration || 0, i.videoTimingInfo.transmuxedPresentationStart = t.videoSegmentTimingInfo.start.presentation, i.videoTimingInfo.transmuxedPresentationEnd = t.videoSegmentTimingInfo.end.presentation, i.videoTimingInfo.baseMediaDecodeTime = t.videoSegmentTimingInfo.baseMediaDecodeTime; 68535 } 68536 } 68537 }, { 68538 key: "handleUpdateEnd_", 68539 value: function value() { 68540 if (!this.pendingSegment_) return this.state = "READY", void (this.paused() || this.monitorBuffer_()); 68541 var e = this.pendingSegment_, 68542 t = e.segment, 68543 i = null !== this.mediaIndex; 68544 this.pendingSegment_ = null, this.recordThroughput_(e), this.addSegmentMetadataCue_(e), this.state = "READY", this.mediaIndex = e.mediaIndex, this.fetchAtBuffer_ = !0, this.currentTimeline_ = e.timeline, this.trigger("syncinfoupdate"), t.end && this.currentTime_() - t.end > 3 * e.playlist.targetDuration ? this.resetEverything() : (i && this.trigger("bandwidthupdate"), this.trigger("progress"), this.isEndOfStream_(e.mediaIndex + 1, e.playlist) && this.endOfStream(), this.paused() || this.monitorBuffer_()); 68545 } 68546 }, { 68547 key: "recordThroughput_", 68548 value: function value(e) { 68549 var t = this.throughput.rate, 68550 i = Date.now() - e.endOfAllRequests + 1, 68551 n = Math.floor(e.byteLength / i * 8 * 1e3); 68552 this.throughput.rate += (n - t) / ++this.throughput.count; 68553 } 68554 }, { 68555 key: "addSegmentMetadataCue_", 68556 value: function value(e) { 68557 if (this.segmentMetadataTrack_) { 68558 var t = e.segment, 68559 i = t.start, 68560 n = t.end; 68561 68562 if (Zc(i) && Zc(n)) { 68563 Yl(i, n, this.segmentMetadataTrack_); 68564 var r = y.WebKitDataCue || y.VTTCue, 68565 s = { 68566 custom: t.custom, 68567 dateTimeObject: t.dateTimeObject, 68568 dateTimeString: t.dateTimeString, 68569 bandwidth: e.playlist.attributes.BANDWIDTH, 68570 resolution: e.playlist.attributes.RESOLUTION, 68571 codecs: e.playlist.attributes.CODECS, 68572 byteLength: e.byteLength, 68573 uri: e.uri, 68574 timeline: e.timeline, 68575 playlist: e.playlist.id, 68576 start: i, 68577 end: n 68578 }, 68579 a = new r(i, n, JSON.stringify(s)); 68580 a.value = s, this.segmentMetadataTrack_.addCue(a); 68581 } 68582 } 68583 } 68584 }]), sh); 68585 68586 function sh(e) { 68587 al(this, sh); 68588 var t = cl(this, (sh.__proto__ || Object.getPrototypeOf(sh)).call(this)); 68589 if (!e) throw new TypeError("Initialization settings are required"); 68590 if ("function" != typeof e.currentTime) throw new TypeError("No currentTime getter specified"); 68591 if (!e.mediaSource) throw new TypeError("No MediaSource specified"); 68592 return t.bandwidth = e.bandwidth, t.throughput = { 68593 rate: 0, 68594 count: 0 68595 }, t.roundTrip = NaN, t.resetStats_(), t.mediaIndex = null, t.hasPlayed_ = e.hasPlayed, t.currentTime_ = e.currentTime, t.seekable_ = e.seekable, t.seeking_ = e.seeking, t.duration_ = e.duration, t.mediaSource_ = e.mediaSource, t.hls_ = e.hls, t.loaderType_ = e.loaderType, t.startingMedia_ = void 0, t.segmentMetadataTrack_ = e.segmentMetadataTrack, t.goalBufferLength_ = e.goalBufferLength, t.sourceType_ = e.sourceType, t.inbandTextTracks_ = e.inbandTextTracks, t.state_ = "INIT", t.checkBufferTimeout_ = null, t.error_ = void 0, t.currentTimeline_ = -1, t.pendingSegment_ = null, t.mimeType_ = null, t.sourceUpdater_ = null, t.xhrOptions_ = null, t.activeInitSegmentId_ = null, t.initSegments_ = {}, t.cacheEncryptionKeys_ = e.cacheEncryptionKeys, t.keyCache_ = {}, "main" === t.loaderType_ ? t.captionParser_ = new yu() : t.captionParser_ = null, t.decrypter_ = e.decrypter, t.syncController_ = e.syncController, t.syncPoint_ = { 68596 segmentIndex: 0, 68597 time: 0 68598 }, t.triggerSyncInfoUpdate_ = function () { 68599 return t.trigger("syncinfoupdate"); 68600 }, t.syncController_.on("syncinfoupdate", t.triggerSyncInfoUpdate_), t.mediaSource_.addEventListener("sourceopen", function () { 68601 return t.ended_ = !1; 68602 }), t.fetchAtBuffer_ = !1, t.logger_ = Hc("SegmentLoader[" + t.loaderType_ + "]"), Object.defineProperty(t, "state", { 68603 get: function get() { 68604 return this.state_; 68605 }, 68606 set: function set(e) { 68607 e !== this.state_ && (this.logger_(this.state_ + " -> " + e), this.state_ = e); 68608 } 68609 }), t; 68610 } 68611 68612 function ah(e) { 68613 return decodeURIComponent(escape(String.fromCharCode.apply(null, e))); 68614 } 68615 68616 var oh = new Uint8Array("\n\n".split("").map(function (e) { 68617 return e.charCodeAt(0); 68618 })), 68619 uh = (ll(lh, rh), ol(lh, [{ 68620 key: "buffered_", 68621 value: function value() { 68622 if (!this.subtitlesTrack_ || !this.subtitlesTrack_.cues.length) return as.createTimeRanges(); 68623 var e = this.subtitlesTrack_.cues, 68624 t = e[0].startTime, 68625 i = e[e.length - 1].startTime; 68626 return as.createTimeRanges([[t, i]]); 68627 } 68628 }, { 68629 key: "initSegment", 68630 value: function value(e, t) { 68631 var i = 1 < arguments.length && void 0 !== t && t; 68632 if (!e) return null; 68633 var n = jl(e), 68634 r = this.initSegments_[n]; 68635 68636 if (i && !r && e.bytes) { 68637 var s = oh.byteLength + e.bytes.byteLength, 68638 a = new Uint8Array(s); 68639 a.set(e.bytes), a.set(oh, e.bytes.byteLength), this.initSegments_[n] = r = { 68640 resolvedUri: e.resolvedUri, 68641 byterange: e.byterange, 68642 bytes: a 68643 }; 68644 } 68645 68646 return r || e; 68647 } 68648 }, { 68649 key: "couldBeginLoading_", 68650 value: function value() { 68651 return this.playlist_ && this.subtitlesTrack_ && !this.paused(); 68652 } 68653 }, { 68654 key: "init_", 68655 value: function value() { 68656 return this.state = "READY", this.resetEverything(), this.monitorBuffer_(); 68657 } 68658 }, { 68659 key: "track", 68660 value: function value(e) { 68661 return "undefined" == typeof e || (this.subtitlesTrack_ = e, "INIT" === this.state && this.couldBeginLoading_() && this.init_()), this.subtitlesTrack_; 68662 } 68663 }, { 68664 key: "remove", 68665 value: function value(e, t) { 68666 Yl(e, t, this.subtitlesTrack_); 68667 } 68668 }, { 68669 key: "fillBuffer_", 68670 value: function value() { 68671 var e = this; 68672 this.syncPoint_ || (this.syncPoint_ = this.syncController_.getSyncPoint(this.playlist_, this.duration_(), this.currentTimeline_, this.currentTime_())); 68673 var t = this.checkBuffer_(this.buffered_(), this.playlist_, this.mediaIndex, this.hasPlayed_(), this.currentTime_(), this.syncPoint_); 68674 68675 if (t = this.skipEmptySegments_(t)) { 68676 if (null === this.syncController_.timestampOffsetForTimeline(t.timeline)) return this.syncController_.one("timestampoffset", function () { 68677 e.state = "READY", e.paused() || e.monitorBuffer_(); 68678 }), void (this.state = "WAITING_ON_TIMELINE"); 68679 this.loadSegment_(t); 68680 } 68681 } 68682 }, { 68683 key: "skipEmptySegments_", 68684 value: function value(e) { 68685 for (; e && e.segment.empty;) { 68686 e = this.generateSegmentInfo_(e.playlist, e.mediaIndex + 1, e.startOfSegment + e.duration, e.isSyncRequest); 68687 } 68688 68689 return e; 68690 } 68691 }, { 68692 key: "handleSegment_", 68693 value: function value() { 68694 var t = this; 68695 68696 if (this.pendingSegment_ && this.subtitlesTrack_) { 68697 this.state = "APPENDING"; 68698 var e = this.pendingSegment_, 68699 i = e.segment; 68700 68701 if ("function" != typeof y.WebVTT && this.subtitlesTrack_ && this.subtitlesTrack_.tech_) { 68702 var n = void 0, 68703 r = function r() { 68704 t.subtitlesTrack_.tech_.off("vttjsloaded", n), t.error({ 68705 message: "Error loading vtt.js" 68706 }), t.state = "READY", t.pause(), t.trigger("error"); 68707 }; 68708 68709 return n = function n() { 68710 t.subtitlesTrack_.tech_.off("vttjserror", r), t.handleSegment_(); 68711 }, this.state = "WAITING_ON_VTTJS", this.subtitlesTrack_.tech_.one("vttjsloaded", n), void this.subtitlesTrack_.tech_.one("vttjserror", r); 68712 } 68713 68714 i.requested = !0; 68715 68716 try { 68717 this.parseVTTCues_(e); 68718 } catch (e) { 68719 return this.error({ 68720 message: e.message 68721 }), this.state = "READY", this.pause(), this.trigger("error"); 68722 } 68723 68724 if (this.updateTimeMapping_(e, this.syncController_.timelines[e.timeline], this.playlist_), e.isSyncRequest) return this.trigger("syncinfoupdate"), this.pendingSegment_ = null, void (this.state = "READY"); 68725 e.byteLength = e.bytes.byteLength, this.mediaSecondsLoaded += i.duration, e.cues.length && this.remove(e.cues[0].endTime, e.cues[e.cues.length - 1].endTime), e.cues.forEach(function (e) { 68726 t.subtitlesTrack_.addCue(t.featuresNativeTextTracks_ ? new y.VTTCue(e.startTime, e.endTime, e.text) : e); 68727 }), this.handleUpdateEnd_(); 68728 } else this.state = "READY"; 68729 } 68730 }, { 68731 key: "parseVTTCues_", 68732 value: function value(t) { 68733 var e = void 0, 68734 i = !1; 68735 "function" == typeof y.TextDecoder ? e = new y.TextDecoder("utf8") : (e = y.WebVTT.StringDecoder(), i = !0); 68736 var n = new y.WebVTT.Parser(y, y.vttjs, e); 68737 68738 if (t.cues = [], t.timestampmap = { 68739 MPEGTS: 0, 68740 LOCAL: 0 68741 }, n.oncue = t.cues.push.bind(t.cues), n.ontimestampmap = function (e) { 68742 return t.timestampmap = e; 68743 }, n.onparsingerror = function (e) { 68744 as.log.warn("Error encountered when parsing cues: " + e.message); 68745 }, t.segment.map) { 68746 var r = t.segment.map.bytes; 68747 i && (r = ah(r)), n.parse(r); 68748 } 68749 68750 var s = t.bytes; 68751 i && (s = ah(s)), n.parse(s), n.flush(); 68752 } 68753 }, { 68754 key: "updateTimeMapping_", 68755 value: function value(e, t, i) { 68756 var n = e.segment; 68757 if (t) if (e.cues.length) { 68758 var r = e.timestampmap, 68759 s = r.MPEGTS / 9e4 - r.LOCAL + t.mapping; 68760 68761 if (e.cues.forEach(function (e) { 68762 e.startTime += s, e.endTime += s; 68763 }), !i.syncInfo) { 68764 var a = e.cues[0].startTime, 68765 o = e.cues[e.cues.length - 1].startTime; 68766 i.syncInfo = { 68767 mediaSequence: i.mediaSequence + e.mediaIndex, 68768 time: Math.min(a, o - n.duration) 68769 }; 68770 } 68771 } else n.empty = !0; 68772 } 68773 }]), lh); 68774 68775 function lh(e) { 68776 var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}; 68777 al(this, lh); 68778 var i = cl(this, (lh.__proto__ || Object.getPrototypeOf(lh)).call(this, e, t)); 68779 return i.mediaSource_ = null, i.subtitlesTrack_ = null, i.featuresNativeTextTracks_ = e.featuresNativeTextTracks, i; 68780 } 68781 68782 function ch(e, t) { 68783 for (var i = e.cues, n = 0; n < i.length; n++) { 68784 var r = i[n]; 68785 if (t >= r.adStartTime && t <= r.adEndTime) return r; 68786 } 68787 68788 return null; 68789 } 68790 68791 var hh = Vu, 68792 dh = [{ 68793 name: "VOD", 68794 run: function run(e, t, i, n, r) { 68795 if (i === 1 / 0) return null; 68796 return { 68797 time: 0, 68798 segmentIndex: 0 68799 }; 68800 } 68801 }, { 68802 name: "ProgramDateTime", 68803 run: function run(e, t, i, n, r) { 68804 if (!e.datetimeToDisplayTime) return null; 68805 var s = t.segments || [], 68806 a = null, 68807 o = null; 68808 r = r || 0; 68809 68810 for (var u = 0; u < s.length; u++) { 68811 var l = s[u]; 68812 68813 if (l.dateTimeObject) { 68814 var c = l.dateTimeObject.getTime() / 1e3 + e.datetimeToDisplayTime, 68815 h = Math.abs(r - c); 68816 if (null !== o && (0 === h || o < h)) break; 68817 o = h, a = { 68818 time: c, 68819 segmentIndex: u 68820 }; 68821 } 68822 } 68823 68824 return a; 68825 } 68826 }, { 68827 name: "Segment", 68828 run: function run(e, t, i, n, r) { 68829 var s = t.segments || [], 68830 a = null, 68831 o = null; 68832 r = r || 0; 68833 68834 for (var u = 0; u < s.length; u++) { 68835 var l = s[u]; 68836 68837 if (l.timeline === n && "undefined" != typeof l.start) { 68838 var c = Math.abs(r - l.start); 68839 if (null !== o && o < c) break; 68840 (!a || null === o || c <= o) && (o = c, a = { 68841 time: l.start, 68842 segmentIndex: u 68843 }); 68844 } 68845 } 68846 68847 return a; 68848 } 68849 }, { 68850 name: "Discontinuity", 68851 run: function run(e, t, i, n, r) { 68852 var s = null; 68853 if (r = r || 0, t.discontinuityStarts && t.discontinuityStarts.length) for (var a = null, o = 0; o < t.discontinuityStarts.length; o++) { 68854 var u = t.discontinuityStarts[o], 68855 l = t.discontinuitySequence + o + 1, 68856 c = e.discontinuities[l]; 68857 68858 if (c) { 68859 var h = Math.abs(r - c.time); 68860 if (null !== a && a < h) break; 68861 (!s || null === a || h <= a) && (a = h, s = { 68862 time: c.time, 68863 segmentIndex: u 68864 }); 68865 } 68866 } 68867 return s; 68868 } 68869 }, { 68870 name: "Playlist", 68871 run: function run(e, t, i, n, r) { 68872 return t.syncInfo ? { 68873 time: t.syncInfo.time, 68874 segmentIndex: t.syncInfo.mediaSequence - t.mediaSequence 68875 } : null; 68876 } 68877 }], 68878 ph = (ll(fh, as.EventTarget), ol(fh, [{ 68879 key: "getSyncPoint", 68880 value: function value(e, t, i, n) { 68881 var r = this.runStrategies_(e, t, i, n); 68882 return r.length ? this.selectSyncPoint_(r, { 68883 key: "time", 68884 value: n 68885 }) : null; 68886 } 68887 }, { 68888 key: "getExpiredTime", 68889 value: function value(e, t) { 68890 if (!e || !e.segments) return null; 68891 var i = this.runStrategies_(e, t, e.discontinuitySequence, 0); 68892 if (!i.length) return null; 68893 var n = this.selectSyncPoint_(i, { 68894 key: "segmentIndex", 68895 value: 0 68896 }); 68897 return 0 < n.segmentIndex && (n.time *= -1), Math.abs(n.time + Cl(e, n.segmentIndex, 0)); 68898 } 68899 }, { 68900 key: "runStrategies_", 68901 value: function value(e, t, i, n) { 68902 for (var r = [], s = 0; s < dh.length; s++) { 68903 var a = dh[s], 68904 o = a.run(this, e, t, i, n); 68905 o && (o.strategy = a.name, r.push({ 68906 strategy: a.name, 68907 syncPoint: o 68908 })); 68909 } 68910 68911 return r; 68912 } 68913 }, { 68914 key: "selectSyncPoint_", 68915 value: function value(e, t) { 68916 for (var i = e[0].syncPoint, n = Math.abs(e[0].syncPoint[t.key] - t.value), r = e[0].strategy, s = 1; s < e.length; s++) { 68917 var a = Math.abs(e[s].syncPoint[t.key] - t.value); 68918 a < n && (n = a, i = e[s].syncPoint, r = e[s].strategy); 68919 } 68920 68921 return this.logger_("syncPoint for [" + t.key + ": " + t.value + "] chosen with strategy [" + r + "]: [time:" + i.time + ", segmentIndex:" + i.segmentIndex + "]"), i; 68922 } 68923 }, { 68924 key: "saveExpiredSegmentInfo", 68925 value: function value(e, t) { 68926 for (var i = t.mediaSequence - e.mediaSequence - 1; 0 <= i; i--) { 68927 var n = e.segments[i]; 68928 68929 if (n && "undefined" != typeof n.start) { 68930 t.syncInfo = { 68931 mediaSequence: e.mediaSequence + i, 68932 time: n.start 68933 }, this.logger_("playlist refresh sync: [time:" + t.syncInfo.time + ", mediaSequence: " + t.syncInfo.mediaSequence + "]"), this.trigger("syncinfoupdate"); 68934 break; 68935 } 68936 } 68937 } 68938 }, { 68939 key: "setDateTimeMapping", 68940 value: function value(e) { 68941 if (!this.datetimeToDisplayTime && e.segments && e.segments.length && e.segments[0].dateTimeObject) { 68942 var t = e.segments[0].dateTimeObject.getTime() / 1e3; 68943 this.datetimeToDisplayTime = -t; 68944 } 68945 } 68946 }, { 68947 key: "reset", 68948 value: function value() { 68949 this.inspectCache_ = void 0; 68950 } 68951 }, { 68952 key: "probeSegmentInfo", 68953 value: function value(e) { 68954 var t = e.segment, 68955 i = e.playlist, 68956 n = void 0; 68957 return (n = t.map ? this.probeMp4Segment_(e) : this.probeTsSegment_(e)) && this.calculateSegmentTimeMapping_(e, n) && (this.saveDiscontinuitySyncInfo_(e), i.syncInfo || (i.syncInfo = { 68958 mediaSequence: i.mediaSequence + e.mediaIndex, 68959 time: t.start 68960 })), n; 68961 } 68962 }, { 68963 key: "probeMp4Segment_", 68964 value: function value(e) { 68965 var t = e.segment, 68966 i = eu.timescale(t.map.bytes), 68967 n = eu.compositionStartTime(i, e.bytes); 68968 return null !== e.timestampOffset && (e.timestampOffset -= n), { 68969 start: n, 68970 end: n + t.duration 68971 }; 68972 } 68973 }, { 68974 key: "probeTsSegment_", 68975 value: function value(e) { 68976 var t = hh(e.bytes, this.inspectCache_), 68977 i = void 0, 68978 n = void 0, 68979 r = void 0; 68980 return t ? (t.video && 2 === t.video.length ? (this.inspectCache_ = t.video[1].dts, i = t.video[0].dtsTime, n = t.video[1].dtsTime, r = t.video) : t.audio && 2 === t.audio.length && (this.inspectCache_ = t.audio[1].dts, i = t.audio[0].dtsTime, n = t.audio[1].dtsTime, r = t.audio), { 68981 segmentTimestampInfo: r, 68982 start: i, 68983 end: n, 68984 containsVideo: t.video && 2 === t.video.length, 68985 containsAudio: t.audio && 2 === t.audio.length 68986 }) : null; 68987 } 68988 }, { 68989 key: "timestampOffsetForTimeline", 68990 value: function value(e) { 68991 return "undefined" == typeof this.timelines[e] ? null : this.timelines[e].time; 68992 } 68993 }, { 68994 key: "mappingForTimeline", 68995 value: function value(e) { 68996 return "undefined" == typeof this.timelines[e] ? null : this.timelines[e].mapping; 68997 } 68998 }, { 68999 key: "calculateSegmentTimeMapping_", 69000 value: function value(e, t) { 69001 var i = e.segment, 69002 n = this.timelines[e.timeline]; 69003 if (null !== e.timestampOffset) n = { 69004 time: e.startOfSegment, 69005 mapping: e.startOfSegment - t.start 69006 }, this.timelines[e.timeline] = n, this.trigger("timestampoffset"), this.logger_("time mapping for timeline " + e.timeline + ": [time: " + n.time + "] [mapping: " + n.mapping + "]"), i.start = e.startOfSegment, i.end = t.end + n.mapping;else { 69007 if (!n) return !1; 69008 i.start = t.start + n.mapping, i.end = t.end + n.mapping; 69009 } 69010 return !0; 69011 } 69012 }, { 69013 key: "saveDiscontinuitySyncInfo_", 69014 value: function value(e) { 69015 var t = e.playlist, 69016 i = e.segment; 69017 if (i.discontinuity) this.discontinuities[i.timeline] = { 69018 time: i.start, 69019 accuracy: 0 69020 };else if (t.discontinuityStarts && t.discontinuityStarts.length) for (var n = 0; n < t.discontinuityStarts.length; n++) { 69021 var r = t.discontinuityStarts[n], 69022 s = t.discontinuitySequence + n + 1, 69023 a = r - e.mediaIndex, 69024 o = Math.abs(a); 69025 69026 if (!this.discontinuities[s] || this.discontinuities[s].accuracy > o) { 69027 var u = void 0; 69028 u = a < 0 ? i.start - Cl(t, e.mediaIndex, r) : i.end + Cl(t, e.mediaIndex + 1, r), this.discontinuities[s] = { 69029 time: u, 69030 accuracy: o 69031 }; 69032 } 69033 } 69034 } 69035 }, { 69036 key: "dispose", 69037 value: function value() { 69038 this.trigger("dispose"), this.off(); 69039 } 69040 }]), fh); 69041 69042 function fh() { 69043 al(this, fh); 69044 var e = cl(this, (fh.__proto__ || Object.getPrototypeOf(fh)).call(this)); 69045 return e.inspectCache_ = void 0, e.timelines = [], e.discontinuities = [], e.datetimeToDisplayTime = null, e.logger_ = Hc("SyncController"), e; 69046 } 69047 69048 function mh(e, t) { 69049 e.abort(), e.pause(), t && t.activePlaylistLoader && (t.activePlaylistLoader.pause(), t.activePlaylistLoader = null); 69050 } 69051 69052 function gh(e, t) { 69053 (t.activePlaylistLoader = e).load(); 69054 } 69055 69056 function vh(t) { 69057 ["AUDIO", "SUBTITLES", "CLOSED-CAPTIONS"].forEach(function (e) { 69058 Th[e](e, t); 69059 }); 69060 var i = t.mediaTypes, 69061 e = t.masterPlaylistLoader, 69062 n = t.tech, 69063 r = t.hls; 69064 ["AUDIO", "SUBTITLES"].forEach(function (e) { 69065 i[e].activeGroup = function (s, a) { 69066 return function (t) { 69067 var e = a.masterPlaylistLoader, 69068 i = a.mediaTypes[s].groups, 69069 n = e.media(); 69070 if (!n) return null; 69071 var r = null; 69072 return n.attributes[s] && (r = i[n.attributes[s]]), r = r || i.main, "undefined" == typeof t ? r : null === t ? null : r.filter(function (e) { 69073 return e.id === t.id; 69074 })[0] || null; 69075 }; 69076 }(e, t), i[e].activeTrack = Sh[e](e, t), i[e].onGroupChanged = function (o, u) { 69077 return function () { 69078 var e = u.segmentLoaders, 69079 t = e[o], 69080 i = e.main, 69081 n = u.mediaTypes[o], 69082 r = n.activeTrack(), 69083 s = n.activeGroup(r), 69084 a = n.activePlaylistLoader; 69085 mh(t, n), s && (s.playlistLoader ? (t.resyncLoader(), gh(s.playlistLoader, n)) : a && i.resetEverything()); 69086 }; 69087 }(e, t), i[e].onTrackChanged = function (o, u) { 69088 return function () { 69089 var e = u.segmentLoaders, 69090 t = e[o], 69091 i = e.main, 69092 n = u.mediaTypes[o], 69093 r = n.activeTrack(), 69094 s = n.activeGroup(r), 69095 a = n.activePlaylistLoader; 69096 mh(t, n), s && (s.playlistLoader ? (a !== s.playlistLoader && (t.track && t.track(r), t.resetEverything()), gh(s.playlistLoader, n)) : i.resetEverything()); 69097 }; 69098 }(e, t); 69099 }); 69100 var s = i.AUDIO.activeGroup(), 69101 a = (s.filter(function (e) { 69102 return e["default"]; 69103 })[0] || s[0]).id; 69104 69105 function o() { 69106 i.AUDIO.onTrackChanged(), n.trigger({ 69107 type: "usage", 69108 name: "hls-audio-change" 69109 }); 69110 } 69111 69112 for (var u in i.AUDIO.tracks[a].enabled = !0, i.AUDIO.onTrackChanged(), e.on("mediachange", function () { 69113 ["AUDIO", "SUBTITLES"].forEach(function (e) { 69114 return i[e].onGroupChanged(); 69115 }); 69116 }), n.audioTracks().addEventListener("change", o), n.remoteTextTracks().addEventListener("change", i.SUBTITLES.onTrackChanged), r.on("dispose", function () { 69117 n.audioTracks().removeEventListener("change", o), n.remoteTextTracks().removeEventListener("change", i.SUBTITLES.onTrackChanged); 69118 }), n.clearTracks("audio"), i.AUDIO.tracks) { 69119 n.audioTracks().addTrack(i.AUDIO.tracks[u]); 69120 } 69121 } 69122 69123 var yh = new hc("./decrypter-worker.worker.js", function (e, t) { 69124 var i, 69125 c, 69126 g, 69127 n, 69128 r, 69129 u, 69130 a, 69131 s = this; 69132 i = function i(e, t, _i3) { 69133 return t && o(e.prototype, t), _i3 && o(e, _i3), e; 69134 }, c = null, d.prototype.decrypt = function (e, t, i, n, r, s) { 69135 var a = this._key[1], 69136 o = e ^ a[0], 69137 u = n ^ a[1], 69138 l = i ^ a[2], 69139 c = t ^ a[3], 69140 h = void 0, 69141 d = void 0, 69142 p = void 0, 69143 f = a.length / 4 - 2, 69144 m = void 0, 69145 g = 4, 69146 v = this._tables[1], 69147 y = v[0], 69148 _ = v[1], 69149 b = v[2], 69150 T = v[3], 69151 S = v[4]; 69152 69153 for (m = 0; m < f; m++) { 69154 h = y[o >>> 24] ^ _[u >> 16 & 255] ^ b[l >> 8 & 255] ^ T[255 & c] ^ a[g], d = y[u >>> 24] ^ _[l >> 16 & 255] ^ b[c >> 8 & 255] ^ T[255 & o] ^ a[g + 1], p = y[l >>> 24] ^ _[c >> 16 & 255] ^ b[o >> 8 & 255] ^ T[255 & u] ^ a[g + 2], c = y[c >>> 24] ^ _[o >> 16 & 255] ^ b[u >> 8 & 255] ^ T[255 & l] ^ a[g + 3], g += 4, o = h, u = d, l = p; 69155 } 69156 69157 for (m = 0; m < 4; m++) { 69158 r[(3 & -m) + s] = S[o >>> 24] << 24 ^ S[u >> 16 & 255] << 16 ^ S[l >> 8 & 255] << 8 ^ S[255 & c] ^ a[g++], h = o, o = u, u = l, l = c, c = h; 69159 } 69160 }, g = d, l.prototype.on = function (e, t) { 69161 this.listeners[e] || (this.listeners[e] = []), this.listeners[e].push(t); 69162 }, l.prototype.off = function (e, t) { 69163 if (!this.listeners[e]) return !1; 69164 var i = this.listeners[e].indexOf(t); 69165 return this.listeners[e].splice(i, 1), -1 < i; 69166 }, l.prototype.trigger = function (e, t) { 69167 var i = this.listeners[e]; 69168 if (i) if (2 === arguments.length) for (var n = i.length, r = 0; r < n; ++r) { 69169 i[r].call(this, t); 69170 } else for (var s = Array.prototype.slice.call(arguments, 1), a = i.length, o = 0; o < a; ++o) { 69171 i[o].apply(this, s); 69172 } 69173 }, l.prototype.dispose = function () { 69174 this.listeners = {}; 69175 }, l.prototype.pipe = function (t) { 69176 this.on("data", function (e) { 69177 t.push(e); 69178 }); 69179 }, function (e, t) { 69180 if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + _typeof(t)); 69181 e.prototype = Object.create(t && t.prototype, { 69182 constructor: { 69183 value: e, 69184 enumerable: !1, 69185 writable: !0, 69186 configurable: !0 69187 } 69188 }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t); 69189 }(p, r = n = l), p.prototype.processJob_ = function () { 69190 this.jobs.shift()(), this.jobs.length ? this.timeout_ = setTimeout(this.processJob_.bind(this), this.delay) : this.timeout_ = null; 69191 }, p.prototype.push = function (e) { 69192 this.jobs.push(e), this.timeout_ || (this.timeout_ = setTimeout(this.processJob_.bind(this), this.delay)); 69193 }, u = p, f.prototype.decryptChunk_ = function (t, i, n, r) { 69194 return function () { 69195 var e = function (e, t, i) { 69196 var n = new Int32Array(e.buffer, e.byteOffset, e.byteLength >> 2), 69197 r = new g(Array.prototype.slice.call(t)), 69198 s = new Uint8Array(e.byteLength), 69199 a = new Int32Array(s.buffer), 69200 o = void 0, 69201 u = void 0, 69202 l = void 0, 69203 c = void 0, 69204 h = void 0, 69205 d = void 0, 69206 p = void 0, 69207 f = void 0, 69208 m = void 0; 69209 69210 for (o = i[0], u = i[1], l = i[2], c = i[3], m = 0; m < n.length; m += 4) { 69211 h = v(n[m]), d = v(n[m + 1]), p = v(n[m + 2]), f = v(n[m + 3]), r.decrypt(h, d, p, f, a, m), a[m] = v(a[m] ^ o), a[m + 1] = v(a[m + 1] ^ u), a[m + 2] = v(a[m + 2] ^ l), a[m + 3] = v(a[m + 3] ^ c), o = h, u = d, l = p, c = f; 69212 } 69213 69214 return s; 69215 }(t, i, n); 69216 69217 r.set(e, t.byteOffset); 69218 }; 69219 }, i(f, null, [{ 69220 key: "STEP", 69221 get: function get() { 69222 return 32e3; 69223 } 69224 }]), a = f, new function (s) { 69225 s.onmessage = function (e) { 69226 var i = e.data, 69227 t = new Uint8Array(i.encrypted.bytes, i.encrypted.byteOffset, i.encrypted.byteLength), 69228 n = new Uint32Array(i.key.bytes, i.key.byteOffset, i.key.byteLength / 4), 69229 r = new Uint32Array(i.iv.bytes, i.iv.byteOffset, i.iv.byteLength / 4); 69230 new a(t, n, r, function (e, t) { 69231 s.postMessage(function (i) { 69232 var n = {}; 69233 return Object.keys(i).forEach(function (e) { 69234 var t = i[e]; 69235 ArrayBuffer.isView(t) ? n[e] = { 69236 bytes: t.buffer, 69237 byteOffset: t.byteOffset, 69238 byteLength: t.byteLength 69239 } : n[e] = t; 69240 }), n; 69241 }({ 69242 source: i.source, 69243 decrypted: t 69244 }), [t.buffer]); 69245 }); 69246 }; 69247 }(s); 69248 69249 function h(e, t) { 69250 if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); 69251 } 69252 69253 function o(e, t) { 69254 for (var i = 0; i < t.length; i++) { 69255 var n = t[i]; 69256 n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n); 69257 } 69258 } 69259 69260 function d(e) { 69261 h(this, d), c = c || function () { 69262 var e = [[[], [], [], [], []], [[], [], [], [], []]], 69263 t = e[0], 69264 i = e[1], 69265 n = t[4], 69266 r = i[4], 69267 s = void 0, 69268 a = void 0, 69269 o = void 0, 69270 u = [], 69271 l = [], 69272 c = void 0, 69273 h = void 0, 69274 d = void 0, 69275 p = void 0, 69276 f = void 0; 69277 69278 for (s = 0; s < 256; s++) { 69279 l[(u[s] = s << 1 ^ 283 * (s >> 7)) ^ s] = s; 69280 } 69281 69282 for (a = o = 0; !n[a]; a ^= c || 1, o = l[o] || 1) { 69283 for (d = (d = o ^ o << 1 ^ o << 2 ^ o << 3 ^ o << 4) >> 8 ^ 255 & d ^ 99, f = 16843009 * u[h = u[c = u[r[n[a] = d] = a]]] ^ 65537 * h ^ 257 * c ^ 16843008 * a, p = 257 * u[d] ^ 16843008 * d, s = 0; s < 4; s++) { 69284 t[s][a] = p = p << 24 ^ p >>> 8, i[s][d] = f = f << 24 ^ f >>> 8; 69285 } 69286 } 69287 69288 for (s = 0; s < 5; s++) { 69289 t[s] = t[s].slice(0), i[s] = i[s].slice(0); 69290 } 69291 69292 return e; 69293 }(), this._tables = [[c[0][0].slice(), c[0][1].slice(), c[0][2].slice(), c[0][3].slice(), c[0][4].slice()], [c[1][0].slice(), c[1][1].slice(), c[1][2].slice(), c[1][3].slice(), c[1][4].slice()]]; 69294 var t = void 0, 69295 i = void 0, 69296 n = void 0, 69297 r = void 0, 69298 s = void 0, 69299 a = this._tables[0][4], 69300 o = this._tables[1], 69301 u = e.length, 69302 l = 1; 69303 if (4 !== u && 6 !== u && 8 !== u) throw new Error("Invalid aes key size"); 69304 69305 for (r = e.slice(0), s = [], this._key = [r, s], t = u; t < 4 * u + 28; t++) { 69306 n = r[t - 1], (t % u == 0 || 8 === u && t % u == 4) && (n = a[n >>> 24] << 24 ^ a[n >> 16 & 255] << 16 ^ a[n >> 8 & 255] << 8 ^ a[255 & n], t % u == 0 && (n = n << 8 ^ n >>> 24 ^ l << 24, l = l << 1 ^ 283 * (l >> 7))), r[t] = r[t - u] ^ n; 69307 } 69308 69309 for (i = 0; t; i++, t--) { 69310 n = r[3 & i ? t : t - 4], s[i] = t <= 4 || i < 4 ? n : o[0][a[n >>> 24]] ^ o[1][a[n >> 16 & 255]] ^ o[2][a[n >> 8 & 255]] ^ o[3][a[255 & n]]; 69311 } 69312 } 69313 69314 function l() { 69315 h(this, l), this.listeners = {}; 69316 } 69317 69318 function p() { 69319 h(this, p); 69320 69321 var e = function (e, t) { 69322 if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 69323 return !t || "object" != _typeof(t) && "function" != typeof t ? e : t; 69324 }(this, r.call(this, n)); 69325 69326 return e.jobs = [], e.delay = 1, e.timeout_ = null, e; 69327 } 69328 69329 function v(e) { 69330 return e << 24 | (65280 & e) << 8 | (16711680 & e) >> 8 | e >>> 24; 69331 } 69332 69333 function f(e, t, i, n) { 69334 h(this, f); 69335 var r = f.STEP, 69336 s = new Int32Array(e.buffer), 69337 a = new Uint8Array(e.byteLength), 69338 o = 0; 69339 69340 for (this.asyncStream_ = new u(), this.asyncStream_.push(this.decryptChunk_(s.subarray(o, o + r), t, i, a)), o = r; o < s.length; o += r) { 69341 i = new Uint32Array([v(s[o - 4]), v(s[o - 3]), v(s[o - 2]), v(s[o - 1])]), this.asyncStream_.push(this.decryptChunk_(s.subarray(o, o + r), t, i, a)); 69342 } 69343 69344 this.asyncStream_.push(function () { 69345 n(null, function (e) { 69346 return e.subarray(0, e.byteLength - e[e.byteLength - 1]); 69347 }(a)); 69348 }); 69349 } 69350 }), 69351 _h = { 69352 AUDIO: function AUDIO(u, l) { 69353 return function () { 69354 var e = l.segmentLoaders[u], 69355 t = l.mediaTypes[u], 69356 i = l.blacklistCurrentPlaylist; 69357 mh(e, t); 69358 var n = t.activeTrack(), 69359 r = t.activeGroup(), 69360 s = (r.filter(function (e) { 69361 return e["default"]; 69362 })[0] || r[0]).id, 69363 a = t.tracks[s]; 69364 69365 if (n !== a) { 69366 for (var o in as.log.warn("Problem encountered loading the alternate audio track.Switching back to default."), t.tracks) { 69367 t.tracks[o].enabled = t.tracks[o] === a; 69368 } 69369 69370 t.onTrackChanged(); 69371 } else i({ 69372 message: "Problem encountered loading the default audio track." 69373 }); 69374 }; 69375 }, 69376 SUBTITLES: function SUBTITLES(n, r) { 69377 return function () { 69378 var e = r.segmentLoaders[n], 69379 t = r.mediaTypes[n]; 69380 as.log.warn("Problem encountered loading the subtitle track.Disabling subtitle track."), mh(e, t); 69381 var i = t.activeTrack(); 69382 i && (i.mode = "disabled"), t.onTrackChanged(); 69383 }; 69384 } 69385 }, 69386 bh = { 69387 AUDIO: function AUDIO(e, t, i) { 69388 if (t) { 69389 var n = i.tech, 69390 r = i.requestOptions, 69391 s = i.segmentLoaders[e]; 69392 t.on("loadedmetadata", function () { 69393 var e = t.media(); 69394 s.playlist(e, r), (!n.paused() || e.endList && "none" !== n.preload()) && s.load(); 69395 }), t.on("loadedplaylist", function () { 69396 s.playlist(t.media(), r), n.paused() || s.load(); 69397 }), t.on("error", _h[e](e, i)); 69398 } 69399 }, 69400 SUBTITLES: function SUBTITLES(e, t, i) { 69401 var n = i.tech, 69402 r = i.requestOptions, 69403 s = i.segmentLoaders[e], 69404 a = i.mediaTypes[e]; 69405 t.on("loadedmetadata", function () { 69406 var e = t.media(); 69407 s.playlist(e, r), s.track(a.activeTrack()), (!n.paused() || e.endList && "none" !== n.preload()) && s.load(); 69408 }), t.on("loadedplaylist", function () { 69409 s.playlist(t.media(), r), n.paused() || s.load(); 69410 }), t.on("error", _h[e](e, i)); 69411 } 69412 }, 69413 Th = { 69414 AUDIO: function AUDIO(e, t) { 69415 var i, 69416 n, 69417 r = t.hls, 69418 s = t.sourceType, 69419 a = t.segmentLoaders[e], 69420 o = t.requestOptions, 69421 u = t.master.mediaGroups, 69422 l = t.mediaTypes[e], 69423 c = l.groups, 69424 h = l.tracks, 69425 d = t.masterPlaylistLoader; 69426 69427 for (var p in u[e] && 0 !== Object.keys(u[e]).length || (u[e] = { 69428 main: { 69429 "default": { 69430 "default": !0 69431 } 69432 } 69433 }), u[e]) { 69434 for (var f in c[p] || (c[p] = []), u[e][p]) { 69435 var m = u[e][p][f], 69436 g = void 0; 69437 69438 if (g = m.resolvedUri ? new bl(m.resolvedUri, r, o) : m.playlists && "dash" === s ? new jc(m.playlists[0], r, o, d) : null, m = as.mergeOptions({ 69439 id: f, 69440 playlistLoader: g 69441 }, m), bh[e](e, m.playlistLoader, t), c[p].push(m), "undefined" == typeof h[f]) { 69442 var v = new as.AudioTrack({ 69443 id: f, 69444 kind: (i = m, n = void 0, n = i["default"] ? "main" : "alternative", i.characteristics && 0 <= i.characteristics.indexOf("public.accessibility.describes-video") && (n = "main-desc"), n), 69445 enabled: !1, 69446 language: m.language, 69447 "default": m["default"], 69448 label: f 69449 }); 69450 h[f] = v; 69451 } 69452 } 69453 } 69454 69455 a.on("error", _h[e](e, t)); 69456 }, 69457 SUBTITLES: function SUBTITLES(e, t) { 69458 var i = t.tech, 69459 n = t.hls, 69460 r = t.sourceType, 69461 s = t.segmentLoaders[e], 69462 a = t.requestOptions, 69463 o = t.master.mediaGroups, 69464 u = t.mediaTypes[e], 69465 l = u.groups, 69466 c = u.tracks, 69467 h = t.masterPlaylistLoader; 69468 69469 for (var d in o[e]) { 69470 for (var p in l[d] || (l[d] = []), o[e][d]) { 69471 if (!o[e][d][p].forced) { 69472 var f = o[e][d][p], 69473 m = void 0; 69474 69475 if ("hls" === r ? m = new bl(f.resolvedUri, n, a) : "dash" === r && (m = new jc(f.playlists[0], n, a, h)), f = as.mergeOptions({ 69476 id: p, 69477 playlistLoader: m 69478 }, f), bh[e](e, f.playlistLoader, t), l[d].push(f), "undefined" == typeof c[p]) { 69479 var g = i.addRemoteTextTrack({ 69480 id: p, 69481 kind: "subtitles", 69482 "default": f["default"] && f.autoselect, 69483 language: f.language, 69484 label: p 69485 }, !1).track; 69486 c[p] = g; 69487 } 69488 } 69489 } 69490 } 69491 69492 s.on("error", _h[e](e, t)); 69493 }, 69494 "CLOSED-CAPTIONS": function CLOSEDCAPTIONS(e, t) { 69495 var i = t.tech, 69496 n = t.master.mediaGroups, 69497 r = t.mediaTypes[e], 69498 s = r.groups, 69499 a = r.tracks; 69500 69501 for (var o in n[e]) { 69502 for (var u in s[o] || (s[o] = []), n[e][o]) { 69503 var l = n[e][o][u]; 69504 69505 if (l.instreamId.match(/CC\d/) && (s[o].push(as.mergeOptions({ 69506 id: u 69507 }, l)), "undefined" == typeof a[u])) { 69508 var c = i.addRemoteTextTrack({ 69509 id: l.instreamId, 69510 kind: "captions", 69511 "default": l["default"] && l.autoselect, 69512 language: l.language, 69513 label: u 69514 }, !1).track; 69515 a[u] = c; 69516 } 69517 } 69518 } 69519 } 69520 }, 69521 Sh = { 69522 AUDIO: function AUDIO(i, n) { 69523 return function () { 69524 var e = n.mediaTypes[i].tracks; 69525 69526 for (var t in e) { 69527 if (e[t].enabled) return e[t]; 69528 } 69529 69530 return null; 69531 }; 69532 }, 69533 SUBTITLES: function SUBTITLES(i, n) { 69534 return function () { 69535 var e = n.mediaTypes[i].tracks; 69536 69537 for (var t in e) { 69538 if ("showing" === e[t].mode || "hidden" === e[t].mode) return e[t]; 69539 } 69540 69541 return null; 69542 }; 69543 } 69544 }, 69545 kh = void 0, 69546 Ch = ["mediaRequests", "mediaRequestsAborted", "mediaRequestsTimedout", "mediaRequestsErrored", "mediaTransferDuration", "mediaBytesTransferred"], 69547 wh = (ll(Eh, as.EventTarget), ol(Eh, [{ 69548 key: "setupMasterPlaylistLoaderListeners_", 69549 value: function value() { 69550 var n = this; 69551 this.masterPlaylistLoader_.on("loadedmetadata", function () { 69552 var e = n.masterPlaylistLoader_.media(), 69553 t = 1.5 * e.targetDuration * 1e3; 69554 Dl(n.masterPlaylistLoader_.master, n.masterPlaylistLoader_.media()) ? n.requestOptions_.timeout = 0 : n.requestOptions_.timeout = t, e.endList && "none" !== n.tech_.preload() && (n.mainSegmentLoader_.playlist(e, n.requestOptions_), n.mainSegmentLoader_.load()), vh({ 69555 sourceType: n.sourceType_, 69556 segmentLoaders: { 69557 AUDIO: n.audioSegmentLoader_, 69558 SUBTITLES: n.subtitleSegmentLoader_, 69559 main: n.mainSegmentLoader_ 69560 }, 69561 tech: n.tech_, 69562 requestOptions: n.requestOptions_, 69563 masterPlaylistLoader: n.masterPlaylistLoader_, 69564 hls: n.hls_, 69565 master: n.master(), 69566 mediaTypes: n.mediaTypes_, 69567 blacklistCurrentPlaylist: n.blacklistCurrentPlaylist.bind(n) 69568 }), n.triggerPresenceUsage_(n.master(), e); 69569 69570 try { 69571 n.setupSourceBuffers_(); 69572 } catch (e) { 69573 return as.log.warn("Failed to create SourceBuffers", e), n.mediaSource.endOfStream("decode"); 69574 } 69575 69576 n.setupFirstPlay(), !n.mediaTypes_.AUDIO.activePlaylistLoader || n.mediaTypes_.AUDIO.activePlaylistLoader.media() ? n.trigger("selectedinitialmedia") : n.mediaTypes_.AUDIO.activePlaylistLoader.one("loadedmetadata", function () { 69577 n.trigger("selectedinitialmedia"); 69578 }); 69579 }), this.masterPlaylistLoader_.on("loadedplaylist", function () { 69580 var e = n.masterPlaylistLoader_.media(); 69581 69582 if (!e) { 69583 n.excludeUnsupportedVariants_(); 69584 var t = void 0; 69585 return n.enableLowInitialPlaylist && (t = n.selectInitialPlaylist()), t = t || n.selectPlaylist(), n.initialMedia_ = t, void n.masterPlaylistLoader_.media(n.initialMedia_); 69586 } 69587 69588 if (n.useCueTags_ && n.updateAdCues_(e), n.mainSegmentLoader_.playlist(e, n.requestOptions_), n.updateDuration(), n.tech_.paused() || (n.mainSegmentLoader_.load(), n.audioSegmentLoader_ && n.audioSegmentLoader_.load()), !e.endList) { 69589 var i = function i() { 69590 var e = n.seekable(); 69591 0 !== e.length && n.mediaSource.addSeekableRange_(e.start(0), e.end(0)); 69592 }; 69593 69594 n.duration() !== 1 / 0 ? n.tech_.one("durationchange", function e() { 69595 n.duration() === 1 / 0 ? i() : n.tech_.one("durationchange", e); 69596 }) : i(); 69597 } 69598 }), this.masterPlaylistLoader_.on("error", function () { 69599 n.blacklistCurrentPlaylist(n.masterPlaylistLoader_.error); 69600 }), this.masterPlaylistLoader_.on("mediachanging", function () { 69601 n.mainSegmentLoader_.abort(), n.mainSegmentLoader_.pause(); 69602 }), this.masterPlaylistLoader_.on("mediachange", function () { 69603 var e = n.masterPlaylistLoader_.media(), 69604 t = 1.5 * e.targetDuration * 1e3; 69605 Dl(n.masterPlaylistLoader_.master, n.masterPlaylistLoader_.media()) ? n.requestOptions_.timeout = 0 : n.requestOptions_.timeout = t, n.mainSegmentLoader_.playlist(e, n.requestOptions_), n.mainSegmentLoader_.load(), n.tech_.trigger({ 69606 type: "mediachange", 69607 bubbles: !0 69608 }); 69609 }), this.masterPlaylistLoader_.on("playlistunchanged", function () { 69610 var e = n.masterPlaylistLoader_.media(); 69611 n.stuckAtPlaylistEnd_(e) && (n.blacklistCurrentPlaylist({ 69612 message: "Playlist no longer updating." 69613 }), n.tech_.trigger("playliststuck")); 69614 }), this.masterPlaylistLoader_.on("renditiondisabled", function () { 69615 n.tech_.trigger({ 69616 type: "usage", 69617 name: "hls-rendition-disabled" 69618 }); 69619 }), this.masterPlaylistLoader_.on("renditionenabled", function () { 69620 n.tech_.trigger({ 69621 type: "usage", 69622 name: "hls-rendition-enabled" 69623 }); 69624 }); 69625 } 69626 }, { 69627 key: "triggerPresenceUsage_", 69628 value: function value(e, t) { 69629 var i = e.mediaGroups || {}, 69630 n = !0, 69631 r = Object.keys(i.AUDIO); 69632 69633 for (var s in i.AUDIO) { 69634 for (var a in i.AUDIO[s]) { 69635 i.AUDIO[s][a].uri || (n = !1); 69636 } 69637 } 69638 69639 n && this.tech_.trigger({ 69640 type: "usage", 69641 name: "hls-demuxed" 69642 }), Object.keys(i.SUBTITLES).length && this.tech_.trigger({ 69643 type: "usage", 69644 name: "hls-webvtt" 69645 }), kh.Playlist.isAes(t) && this.tech_.trigger({ 69646 type: "usage", 69647 name: "hls-aes" 69648 }), kh.Playlist.isFmp4(t) && this.tech_.trigger({ 69649 type: "usage", 69650 name: "hls-fmp4" 69651 }), r.length && 1 < Object.keys(i.AUDIO[r[0]]).length && this.tech_.trigger({ 69652 type: "usage", 69653 name: "hls-alternate-audio" 69654 }), this.useCueTags_ && this.tech_.trigger({ 69655 type: "usage", 69656 name: "hls-playlist-cue-tags" 69657 }); 69658 } 69659 }, { 69660 key: "setupSegmentLoaderListeners_", 69661 value: function value() { 69662 var n = this; 69663 this.mainSegmentLoader_.on("bandwidthupdate", function () { 69664 var e = n.selectPlaylist(), 69665 t = n.masterPlaylistLoader_.media(), 69666 i = n.tech_.buffered(); 69667 !function (e) { 69668 var t = e.currentPlaylist, 69669 i = e.nextPlaylist, 69670 n = e.forwardBuffer, 69671 r = e.bufferLowWaterLine, 69672 s = e.duration; 69673 return e.log, i ? !t.endList || s < eh.MAX_BUFFER_LOW_WATER_LINE || i.attributes.BANDWIDTH < t.attributes.BANDWIDTH || r <= n : (as.log.warn("We received no playlist to switch to. Please check your stream."), !1); 69674 }({ 69675 currentPlaylist: t, 69676 nextPlaylist: e, 69677 forwardBuffer: i.length ? i.end(i.length - 1) - n.tech_.currentTime() : 0, 69678 bufferLowWaterLine: n.bufferLowWaterLine(), 69679 duration: n.duration(), 69680 log: n.logger_ 69681 }) || n.masterPlaylistLoader_.media(e), n.tech_.trigger("bandwidthupdate"); 69682 }), this.mainSegmentLoader_.on("progress", function () { 69683 n.trigger("progress"); 69684 }), this.mainSegmentLoader_.on("error", function () { 69685 n.blacklistCurrentPlaylist(n.mainSegmentLoader_.error()); 69686 }), this.mainSegmentLoader_.on("syncinfoupdate", function () { 69687 n.onSyncInfoUpdate_(); 69688 }), this.mainSegmentLoader_.on("timestampoffset", function () { 69689 n.tech_.trigger({ 69690 type: "usage", 69691 name: "hls-timestamp-offset" 69692 }); 69693 }), this.audioSegmentLoader_.on("syncinfoupdate", function () { 69694 n.onSyncInfoUpdate_(); 69695 }), this.mainSegmentLoader_.on("ended", function () { 69696 n.onEndOfStream(); 69697 }), this.mainSegmentLoader_.on("earlyabort", function () { 69698 n.blacklistCurrentPlaylist({ 69699 message: "Aborted early because there isn't enough bandwidth to complete the request without rebuffering." 69700 }, 120); 69701 }), this.mainSegmentLoader_.on("reseteverything", function () { 69702 n.tech_.trigger("hls-reset"); 69703 }), this.mainSegmentLoader_.on("segmenttimemapping", function (e) { 69704 n.tech_.trigger({ 69705 type: "hls-segment-time-mapping", 69706 mapping: e.mapping 69707 }); 69708 }), this.audioSegmentLoader_.on("ended", function () { 69709 n.onEndOfStream(); 69710 }); 69711 } 69712 }, { 69713 key: "mediaSecondsLoaded_", 69714 value: function value() { 69715 return Math.max(this.audioSegmentLoader_.mediaSecondsLoaded + this.mainSegmentLoader_.mediaSecondsLoaded); 69716 } 69717 }, { 69718 key: "load", 69719 value: function value() { 69720 this.mainSegmentLoader_.load(), this.mediaTypes_.AUDIO.activePlaylistLoader && this.audioSegmentLoader_.load(), this.mediaTypes_.SUBTITLES.activePlaylistLoader && this.subtitleSegmentLoader_.load(); 69721 } 69722 }, { 69723 key: "smoothQualityChange_", 69724 value: function value() { 69725 var e = this.selectPlaylist(); 69726 e !== this.masterPlaylistLoader_.media() && (this.masterPlaylistLoader_.media(e), this.mainSegmentLoader_.resetLoader()); 69727 } 69728 }, { 69729 key: "fastQualityChange_", 69730 value: function value() { 69731 var e = this, 69732 t = this.selectPlaylist(); 69733 t !== this.masterPlaylistLoader_.media() && (this.masterPlaylistLoader_.media(t), this.mainSegmentLoader_.resetEverything(function () { 69734 as.browser.IE_VERSION || as.browser.IS_EDGE ? e.tech_.setCurrentTime(e.tech_.currentTime() + .04) : e.tech_.setCurrentTime(e.tech_.currentTime()); 69735 })); 69736 } 69737 }, { 69738 key: "play", 69739 value: function value() { 69740 if (!this.setupFirstPlay()) { 69741 this.tech_.ended() && this.tech_.setCurrentTime(0), this.hasPlayed_ && this.load(); 69742 var e = this.tech_.seekable(); 69743 return this.tech_.duration() === 1 / 0 && this.tech_.currentTime() < e.start(0) ? this.tech_.setCurrentTime(e.end(e.length - 1)) : void 0; 69744 } 69745 } 69746 }, { 69747 key: "setupFirstPlay", 69748 value: function value() { 69749 var e = this, 69750 t = this.masterPlaylistLoader_.media(); 69751 if (!t || this.tech_.paused() || this.hasPlayed_) return !1; 69752 69753 if (!t.endList) { 69754 var i = this.seekable(); 69755 if (!i.length) return !1; 69756 if (as.browser.IE_VERSION && 0 === this.tech_.readyState()) return this.tech_.one("loadedmetadata", function () { 69757 e.trigger("firstplay"), e.tech_.setCurrentTime(i.end(0)), e.hasPlayed_ = !0; 69758 }), !1; 69759 this.trigger("firstplay"), this.tech_.setCurrentTime(i.end(0)); 69760 } 69761 69762 return this.hasPlayed_ = !0, this.load(), !0; 69763 } 69764 }, { 69765 key: "handleSourceOpen_", 69766 value: function value() { 69767 try { 69768 this.setupSourceBuffers_(); 69769 } catch (e) { 69770 return as.log.warn("Failed to create Source Buffers", e), this.mediaSource.endOfStream("decode"); 69771 } 69772 69773 if (this.tech_.autoplay()) { 69774 var e = this.tech_.play(); 69775 "undefined" != typeof e && "function" == typeof e.then && e.then(null, function (e) {}); 69776 } 69777 69778 this.trigger("sourceopen"); 69779 } 69780 }, { 69781 key: "onEndOfStream", 69782 value: function value() { 69783 var e = this.mainSegmentLoader_.ended_; 69784 69785 if (this.mediaTypes_.AUDIO.activePlaylistLoader && (e = !this.mainSegmentLoader_.startingMedia_ || this.mainSegmentLoader_.startingMedia_.containsVideo ? e && this.audioSegmentLoader_.ended_ : this.audioSegmentLoader_.ended_), e) { 69786 this.logger_("calling mediaSource.endOfStream()"); 69787 69788 try { 69789 this.mediaSource.endOfStream(); 69790 } catch (e) { 69791 as.log.warn("Failed to call media source endOfStream", e); 69792 } 69793 } 69794 } 69795 }, { 69796 key: "stuckAtPlaylistEnd_", 69797 value: function value(e) { 69798 if (!this.seekable().length) return !1; 69799 var t = this.syncController_.getExpiredTime(e, this.mediaSource.duration); 69800 if (null === t) return !1; 69801 var i = kh.Playlist.playlistEnd(e, t), 69802 n = this.tech_.currentTime(), 69803 r = this.tech_.buffered(); 69804 if (!r.length) return i - n <= .1; 69805 var s = r.end(r.length - 1); 69806 return s - n <= .1 && i - s <= .1; 69807 } 69808 }, { 69809 key: "blacklistCurrentPlaylist", 69810 value: function value(e, t) { 69811 var i, 69812 n = 0 < arguments.length && void 0 !== e ? e : {}, 69813 r = t, 69814 s = void 0; 69815 69816 if (s = n.playlist || this.masterPlaylistLoader_.media(), r = r || n.blacklistDuration || this.blacklistDuration, !s) { 69817 this.error = n; 69818 69819 try { 69820 return this.mediaSource.endOfStream("network"); 69821 } catch (e) { 69822 return this.trigger("error"); 69823 } 69824 } 69825 69826 var a = 1 === this.masterPlaylistLoader_.master.playlists.filter(Ll).length, 69827 o = this.masterPlaylistLoader_.master.playlists; 69828 return 1 === o.length ? (as.log.warn("Problem encountered with the current HLS playlist. Trying again since it is the only playlist."), this.tech_.trigger("retryplaylist"), this.masterPlaylistLoader_.load(a)) : (a && (as.log.warn("Removing all playlists from the blacklist because the last rendition is about to be blacklisted."), o.forEach(function (e) { 69829 e.excludeUntil !== 1 / 0 && delete e.excludeUntil; 69830 }), this.tech_.trigger("retryplaylist")), s.excludeUntil = Date.now() + 1e3 * r, this.tech_.trigger("blacklistplaylist"), this.tech_.trigger({ 69831 type: "usage", 69832 name: "hls-rendition-blacklisted" 69833 }), i = this.selectPlaylist(), as.log.warn("Problem encountered with the current HLS playlist." + (n.message ? " " + n.message : "") + " Switching to another playlist."), this.masterPlaylistLoader_.media(i, a)); 69834 } 69835 }, { 69836 key: "pauseLoading", 69837 value: function value() { 69838 this.mainSegmentLoader_.pause(), this.mediaTypes_.AUDIO.activePlaylistLoader && this.audioSegmentLoader_.pause(), this.mediaTypes_.SUBTITLES.activePlaylistLoader && this.subtitleSegmentLoader_.pause(); 69839 } 69840 }, { 69841 key: "setCurrentTime", 69842 value: function value(e) { 69843 var t = zl(this.tech_.buffered(), e); 69844 return this.masterPlaylistLoader_ && this.masterPlaylistLoader_.media() && this.masterPlaylistLoader_.media().segments ? t && t.length ? e : (this.mainSegmentLoader_.resetEverything(), this.mainSegmentLoader_.abort(), this.mediaTypes_.AUDIO.activePlaylistLoader && (this.audioSegmentLoader_.resetEverything(), this.audioSegmentLoader_.abort()), this.mediaTypes_.SUBTITLES.activePlaylistLoader && (this.subtitleSegmentLoader_.resetEverything(), this.subtitleSegmentLoader_.abort()), void this.load()) : 0; 69845 } 69846 }, { 69847 key: "duration", 69848 value: function value() { 69849 return this.masterPlaylistLoader_ ? this.mediaSource ? this.mediaSource.duration : kh.Playlist.duration(this.masterPlaylistLoader_.media()) : 0; 69850 } 69851 }, { 69852 key: "seekable", 69853 value: function value() { 69854 return this.seekable_; 69855 } 69856 }, { 69857 key: "onSyncInfoUpdate_", 69858 value: function value() { 69859 var e = void 0; 69860 69861 if (this.masterPlaylistLoader_) { 69862 var t = this.masterPlaylistLoader_.media(); 69863 69864 if (t) { 69865 var i = this.syncController_.getExpiredTime(t, this.mediaSource.duration); 69866 69867 if (null !== i) { 69868 var n = this.masterPlaylistLoader_.master.suggestedPresentationDelay, 69869 r = kh.Playlist.seekable(t, i, n); 69870 69871 if (0 !== r.length) { 69872 if (this.mediaTypes_.AUDIO.activePlaylistLoader) { 69873 if (t = this.mediaTypes_.AUDIO.activePlaylistLoader.media(), null === (i = this.syncController_.getExpiredTime(t, this.mediaSource.duration))) return; 69874 if (0 === (e = kh.Playlist.seekable(t, i, n)).length) return; 69875 } 69876 69877 var s = void 0, 69878 a = void 0; 69879 this.seekable_ && this.seekable_.length && (s = this.seekable_.end(0), a = this.seekable_.start(0)), e ? e.start(0) > r.end(0) || r.start(0) > e.end(0) ? this.seekable_ = r : this.seekable_ = as.createTimeRanges([[e.start(0) > r.start(0) ? e.start(0) : r.start(0), e.end(0) < r.end(0) ? e.end(0) : r.end(0)]]) : this.seekable_ = r, this.seekable_ && this.seekable_.length && this.seekable_.end(0) === s && this.seekable_.start(0) === a || (this.logger_("seekable updated [" + Xl(this.seekable_) + "]"), this.tech_.trigger("seekablechanged")); 69880 } 69881 } 69882 } 69883 } 69884 } 69885 }, { 69886 key: "updateDuration", 69887 value: function value() { 69888 function e() { 69889 t.logger_("Setting duration from " + t.mediaSource.duration + " => " + n); 69890 69891 try { 69892 t.mediaSource.duration = n; 69893 } catch (e) { 69894 as.log.warn("Failed to set media source duration", e); 69895 } 69896 69897 t.tech_.trigger("durationchange"), t.mediaSource.removeEventListener("sourceopen", e); 69898 } 69899 69900 var t = this, 69901 i = this.mediaSource.duration, 69902 n = kh.Playlist.duration(this.masterPlaylistLoader_.media()), 69903 r = this.tech_.buffered(); 69904 0 < r.length && (n = Math.max(n, r.end(r.length - 1))), i !== n && ("open" !== this.mediaSource.readyState ? this.mediaSource.addEventListener("sourceopen", e) : e()); 69905 } 69906 }, { 69907 key: "dispose", 69908 value: function value() { 69909 var n = this; 69910 this.trigger("dispose"), this.decrypter_ && this.decrypter_.terminate(), this.masterPlaylistLoader_.dispose(), this.mainSegmentLoader_.dispose(), ["AUDIO", "SUBTITLES"].forEach(function (e) { 69911 var t = n.mediaTypes_[e].groups; 69912 69913 for (var i in t) { 69914 t[i].forEach(function (e) { 69915 e.playlistLoader && e.playlistLoader.dispose(); 69916 }); 69917 } 69918 }), this.audioSegmentLoader_.dispose(), this.subtitleSegmentLoader_.dispose(), this.off(), this.mediaSource.dispose && this.mediaSource.dispose(); 69919 } 69920 }, { 69921 key: "master", 69922 value: function value() { 69923 return this.masterPlaylistLoader_.master; 69924 } 69925 }, { 69926 key: "media", 69927 value: function value() { 69928 return this.masterPlaylistLoader_.media() || this.initialMedia_; 69929 } 69930 }, { 69931 key: "setupSourceBuffers_", 69932 value: function value() { 69933 var e, 69934 t = this.masterPlaylistLoader_.media(); 69935 69936 if (t && "open" === this.mediaSource.readyState) { 69937 if ((e = _c(this.masterPlaylistLoader_.master, t)).length < 1) return this.error = "No compatible SourceBuffer configuration for the variant stream:" + t.resolvedUri, this.mediaSource.endOfStream("decode"); 69938 this.configureLoaderMimeTypes_(e), this.excludeIncompatibleVariants_(t); 69939 } 69940 } 69941 }, { 69942 key: "configureLoaderMimeTypes_", 69943 value: function value(e) { 69944 var t = 1 < e.length && -1 === e[0].indexOf(",") && e[0] !== e[1] ? new as.EventTarget() : null; 69945 this.mainSegmentLoader_.mimeType(e[0], t), e[1] && this.audioSegmentLoader_.mimeType(e[1], t); 69946 } 69947 }, { 69948 key: "excludeUnsupportedVariants_", 69949 value: function value() { 69950 this.master().playlists.forEach(function (e) { 69951 e.attributes.CODECS && y.MediaSource && y.MediaSource.isTypeSupported && !y.MediaSource.isTypeSupported('video/mp4; codecs="' + function (e) { 69952 return e.replace(/avc1\.(\d+)\.(\d+)/i, function (e) { 69953 return gc([e])[0]; 69954 }); 69955 }(e.attributes.CODECS) + '"') && (e.excludeUntil = 1 / 0); 69956 }); 69957 } 69958 }, { 69959 key: "excludeIncompatibleVariants_", 69960 value: function value(e) { 69961 var i = 2, 69962 n = null, 69963 t = void 0; 69964 e.attributes.CODECS && (t = vc(e.attributes.CODECS), n = t.videoCodec, i = t.codecCount), this.master().playlists.forEach(function (e) { 69965 var t = { 69966 codecCount: 2, 69967 videoCodec: null 69968 }; 69969 e.attributes.CODECS && (t = vc(e.attributes.CODECS)), t.codecCount !== i && (e.excludeUntil = 1 / 0), t.videoCodec !== n && (e.excludeUntil = 1 / 0); 69970 }); 69971 } 69972 }, { 69973 key: "updateAdCues_", 69974 value: function value(e) { 69975 var t = 0, 69976 i = this.seekable(); 69977 i.length && (t = i.start(0)), function (e, t, i) { 69978 var n = 2 < arguments.length && void 0 !== i ? i : 0; 69979 if (e.segments) for (var r = n, s = void 0, a = 0; a < e.segments.length; a++) { 69980 var o = e.segments[a]; 69981 69982 if (s = s || ch(t, r + o.duration / 2)) { 69983 if ("cueIn" in o) { 69984 s.endTime = r, s.adEndTime = r, r += o.duration, s = null; 69985 continue; 69986 } 69987 69988 if (r < s.endTime) { 69989 r += o.duration; 69990 continue; 69991 } 69992 69993 s.endTime += o.duration; 69994 } else if ("cueOut" in o && ((s = new y.VTTCue(r, r + o.duration, o.cueOut)).adStartTime = r, s.adEndTime = r + parseFloat(o.cueOut), t.addCue(s)), "cueOutCont" in o) { 69995 var u, 69996 l, 69997 c = o.cueOutCont.split("/").map(parseFloat), 69998 h = vl(c, 2); 69999 u = h[0], l = h[1], (s = new y.VTTCue(r, r + o.duration, "")).adStartTime = r - u, s.adEndTime = s.adStartTime + l, t.addCue(s); 70000 } 70001 70002 r += o.duration; 70003 } 70004 }(e, this.cueTagsTrack_, t); 70005 } 70006 }, { 70007 key: "goalBufferLength", 70008 value: function value() { 70009 var e = this.tech_.currentTime(), 70010 t = eh.GOAL_BUFFER_LENGTH, 70011 i = eh.GOAL_BUFFER_LENGTH_RATE, 70012 n = Math.max(t, eh.MAX_GOAL_BUFFER_LENGTH); 70013 return Math.min(t + e * i, n); 70014 } 70015 }, { 70016 key: "bufferLowWaterLine", 70017 value: function value() { 70018 var e = this.tech_.currentTime(), 70019 t = eh.BUFFER_LOW_WATER_LINE, 70020 i = eh.BUFFER_LOW_WATER_LINE_RATE, 70021 n = Math.max(t, eh.MAX_BUFFER_LOW_WATER_LINE); 70022 return Math.min(t + e * i, n); 70023 } 70024 }]), Eh); 70025 70026 function Eh(e) { 70027 al(this, Eh); 70028 var t = cl(this, (Eh.__proto__ || Object.getPrototypeOf(Eh)).call(this)), 70029 i = e.url, 70030 n = e.handleManifestRedirects, 70031 r = e.withCredentials, 70032 s = e.tech, 70033 a = e.bandwidth, 70034 o = e.externHls, 70035 u = e.useCueTags, 70036 l = e.blacklistDuration, 70037 c = e.enableLowInitialPlaylist, 70038 h = e.cacheEncryptionKeys, 70039 d = e.sourceType; 70040 if (!i) throw new Error("A non-empty playlist URL is required"); 70041 kh = o, t.withCredentials = r, t.tech_ = s, t.hls_ = s.hls, t.sourceType_ = d, t.useCueTags_ = u, t.blacklistDuration = l, t.enableLowInitialPlaylist = c, t.useCueTags_ && (t.cueTagsTrack_ = t.tech_.addTextTrack("metadata", "ad-cues"), t.cueTagsTrack_.inBandMetadataTrackDispatchType = ""), t.requestOptions_ = { 70042 withCredentials: r, 70043 handleManifestRedirects: n, 70044 timeout: null 70045 }, t.mediaTypes_ = function () { 70046 var t = {}; 70047 return ["AUDIO", "SUBTITLES", "CLOSED-CAPTIONS"].forEach(function (e) { 70048 t[e] = { 70049 groups: {}, 70050 tracks: {}, 70051 activePlaylistLoader: null, 70052 activeGroup: Vc, 70053 activeTrack: Vc, 70054 onGroupChanged: Vc, 70055 onTrackChanged: Vc 70056 }; 70057 }), t; 70058 }(), t.mediaSource = new as.MediaSource(), t.mediaSource.addEventListener("sourceopen", t.handleSourceOpen_.bind(t)), t.seekable_ = as.createTimeRanges(), t.hasPlayed_ = !1, t.syncController_ = new ph(e), t.segmentMetadataTrack_ = s.addRemoteTextTrack({ 70059 kind: "metadata", 70060 label: "segment-metadata" 70061 }, !1).track, t.decrypter_ = new yh(), t.inbandTextTracks_ = {}; 70062 var p = { 70063 hls: t.hls_, 70064 mediaSource: t.mediaSource, 70065 currentTime: t.tech_.currentTime.bind(t.tech_), 70066 seekable: function seekable() { 70067 return t.seekable(); 70068 }, 70069 seeking: function seeking() { 70070 return t.tech_.seeking(); 70071 }, 70072 duration: function duration() { 70073 return t.mediaSource.duration; 70074 }, 70075 hasPlayed: function hasPlayed() { 70076 return t.hasPlayed_; 70077 }, 70078 goalBufferLength: function goalBufferLength() { 70079 return t.goalBufferLength(); 70080 }, 70081 bandwidth: a, 70082 syncController: t.syncController_, 70083 decrypter: t.decrypter_, 70084 sourceType: t.sourceType_, 70085 inbandTextTracks: t.inbandTextTracks_, 70086 cacheEncryptionKeys: h 70087 }; 70088 return t.masterPlaylistLoader_ = "dash" === t.sourceType_ ? new jc(i, t.hls_, t.requestOptions_) : new bl(i, t.hls_, t.requestOptions_), t.setupMasterPlaylistLoaderListeners_(), t.mainSegmentLoader_ = new rh(as.mergeOptions(p, { 70089 segmentMetadataTrack: t.segmentMetadataTrack_, 70090 loaderType: "main" 70091 }), e), t.audioSegmentLoader_ = new rh(as.mergeOptions(p, { 70092 loaderType: "audio" 70093 }), e), t.subtitleSegmentLoader_ = new uh(as.mergeOptions(p, { 70094 loaderType: "vtt", 70095 featuresNativeTextTracks: t.tech_.featuresNativeTextTracks 70096 }), e), t.setupSegmentLoaderListeners_(), Ch.forEach(function (e) { 70097 t[e + "_"] = function (e) { 70098 return this.audioSegmentLoader_[e] + this.mainSegmentLoader_[e]; 70099 }.bind(t, e); 70100 }), t.logger_ = Hc("MPC"), t.masterPlaylistLoader_.load(), t; 70101 } 70102 70103 function xh(e, t, i) { 70104 al(this, xh); 70105 var n = e.masterPlaylistController_, 70106 r = n[(e.options_.smoothQualityChange ? "smooth" : "fast") + "QualityChange_"].bind(n); 70107 70108 if (t.attributes.RESOLUTION) { 70109 var s = t.attributes.RESOLUTION; 70110 this.width = s.width, this.height = s.height; 70111 } 70112 70113 this.bandwidth = t.attributes.BANDWIDTH, this.id = i, this.enabled = function (r, s, a) { 70114 return function (e) { 70115 var t = r.master.playlists[s], 70116 i = Pl(t), 70117 n = Ll(t); 70118 return "undefined" == typeof e ? n : (e ? delete t.disabled : t.disabled = !0, e === n || i || (a(), e ? r.trigger("renditionenabled") : r.trigger("renditiondisabled")), e); 70119 }; 70120 }(e.playlists, t.id, r); 70121 } 70122 70123 var Ah = ["seeking", "seeked", "pause", "playing", "error"], 70124 Ih = (ol(Ph, [{ 70125 key: "monitorCurrentTime_", 70126 value: function value() { 70127 this.checkCurrentTime_(), this.checkCurrentTimeTimeout_ && y.clearTimeout(this.checkCurrentTimeTimeout_), this.checkCurrentTimeTimeout_ = y.setTimeout(this.monitorCurrentTime_.bind(this), 250); 70128 } 70129 }, { 70130 key: "checkCurrentTime_", 70131 value: function value() { 70132 if (this.tech_.seeking() && this.fixesBadSeeks_()) return this.consecutiveUpdates = 0, void (this.lastRecordedTime = this.tech_.currentTime()); 70133 70134 if (!this.tech_.paused() && !this.tech_.seeking()) { 70135 var e = this.tech_.currentTime(), 70136 t = this.tech_.buffered(); 70137 if (this.lastRecordedTime === e && (!t.length || e + .1 >= t.end(t.length - 1))) return this.techWaiting_(); 70138 5 <= this.consecutiveUpdates && e === this.lastRecordedTime ? (this.consecutiveUpdates++, this.waiting_()) : e === this.lastRecordedTime ? this.consecutiveUpdates++ : (this.consecutiveUpdates = 0, this.lastRecordedTime = e); 70139 } 70140 } 70141 }, { 70142 key: "cancelTimer_", 70143 value: function value() { 70144 this.consecutiveUpdates = 0, this.timer_ && (this.logger_("cancelTimer_"), clearTimeout(this.timer_)), this.timer_ = null; 70145 } 70146 }, { 70147 key: "fixesBadSeeks_", 70148 value: function value() { 70149 if (!this.tech_.seeking()) return !1; 70150 var e = this.seekable(), 70151 t = this.tech_.currentTime(), 70152 i = void 0; 70153 return this.afterSeekableWindow_(e, t, this.media(), this.allowSeeksWithinUnsafeLiveWindow) && (i = e.end(e.length - 1)), this.beforeSeekableWindow_(e, t) && (i = e.start(0) + .1), "undefined" != typeof i && (this.logger_("Trying to seek outside of seekable at time " + t + " with seekable range " + Xl(e) + ". Seeking to " + i + "."), this.tech_.setCurrentTime(i), !0); 70154 } 70155 }, { 70156 key: "waiting_", 70157 value: function value() { 70158 if (!this.techWaiting_()) { 70159 var e = this.tech_.currentTime(), 70160 t = this.tech_.buffered(), 70161 i = zl(t, e); 70162 return i.length && e + 3 <= i.end(0) ? (this.cancelTimer_(), this.tech_.setCurrentTime(e), this.logger_("Stopped at " + e + " while inside a buffered region [" + i.start(0) + " -> " + i.end(0) + "]. Attempting to resume playback by seeking to the current time."), void this.tech_.trigger({ 70163 type: "usage", 70164 name: "hls-unknown-waiting" 70165 })) : void 0; 70166 } 70167 } 70168 }, { 70169 key: "techWaiting_", 70170 value: function value() { 70171 var e = this.seekable(), 70172 t = this.tech_.currentTime(); 70173 if (this.tech_.seeking() && this.fixesBadSeeks_()) return !0; 70174 if (this.tech_.seeking() || null !== this.timer_) return !0; 70175 70176 if (this.beforeSeekableWindow_(e, t)) { 70177 var i = e.end(e.length - 1); 70178 return this.logger_("Fell out of live window at time " + t + ". Seeking to live point (seekable end) " + i), this.cancelTimer_(), this.tech_.setCurrentTime(i), this.tech_.trigger({ 70179 type: "usage", 70180 name: "hls-live-resync" 70181 }), !0; 70182 } 70183 70184 var n = this.tech_.buffered(), 70185 r = Gl(n, t); 70186 if (this.videoUnderflow_(r, n, t)) return this.cancelTimer_(), this.tech_.setCurrentTime(t), this.tech_.trigger({ 70187 type: "usage", 70188 name: "hls-video-underflow" 70189 }), !0; 70190 70191 if (0 < r.length) { 70192 var s = r.start(0) - t; 70193 return this.logger_("Stopped at " + t + ", setting timer for " + s + ", seeking to " + r.start(0)), this.timer_ = setTimeout(this.skipTheGap_.bind(this), 1e3 * s, t), !0; 70194 } 70195 70196 return !1; 70197 } 70198 }, { 70199 key: "afterSeekableWindow_", 70200 value: function value(e, t, i, n) { 70201 var r = 3 < arguments.length && void 0 !== n && n; 70202 if (!e.length) return !1; 70203 var s = e.end(e.length - 1) + .1; 70204 return !i.endList && r && (s = e.end(e.length - 1) + 3 * i.targetDuration), s < t; 70205 } 70206 }, { 70207 key: "beforeSeekableWindow_", 70208 value: function value(e, t) { 70209 return !!(e.length && 0 < e.start(0) && t < e.start(0) - .1); 70210 } 70211 }, { 70212 key: "videoUnderflow_", 70213 value: function value(e, t, i) { 70214 if (0 === e.length) { 70215 var n = this.gapFromVideoUnderflow_(t, i); 70216 if (n) return this.logger_("Encountered a gap in video from " + n.start + " to " + n.end + ". Seeking to current time " + i), !0; 70217 } 70218 70219 return !1; 70220 } 70221 }, { 70222 key: "skipTheGap_", 70223 value: function value(e) { 70224 var t = this.tech_.buffered(), 70225 i = this.tech_.currentTime(), 70226 n = Gl(t, i); 70227 this.cancelTimer_(), 0 !== n.length && i === e && (this.logger_("skipTheGap_:", "currentTime:", i, "scheduled currentTime:", e, "nextRange start:", n.start(0)), this.tech_.setCurrentTime(n.start(0) + 1 / 30), this.tech_.trigger({ 70228 type: "usage", 70229 name: "hls-gap-skip" 70230 })); 70231 } 70232 }, { 70233 key: "gapFromVideoUnderflow_", 70234 value: function value(e, t) { 70235 for (var i = function (e) { 70236 if (e.length < 2) return as.createTimeRanges(); 70237 70238 for (var t = [], i = 1; i < e.length; i++) { 70239 var n = e.end(i - 1), 70240 r = e.start(i); 70241 t.push([n, r]); 70242 } 70243 70244 return as.createTimeRanges(t); 70245 }(e), n = 0; n < i.length; n++) { 70246 var r = i.start(n), 70247 s = i.end(n); 70248 if (t - r < 4 && 2 < t - r) return { 70249 start: r, 70250 end: s 70251 }; 70252 } 70253 70254 return null; 70255 } 70256 }]), Ph); 70257 70258 function Ph(e) { 70259 var t = this; 70260 al(this, Ph), this.tech_ = e.tech, this.seekable = e.seekable, this.allowSeeksWithinUnsafeLiveWindow = e.allowSeeksWithinUnsafeLiveWindow, this.media = e.media, this.consecutiveUpdates = 0, this.lastRecordedTime = null, this.timer_ = null, this.checkCurrentTimeTimeout_ = null, this.logger_ = Hc("PlaybackWatcher"), this.logger_("initialize"); 70261 70262 function i() { 70263 return t.monitorCurrentTime_(); 70264 } 70265 70266 function n() { 70267 return t.techWaiting_(); 70268 } 70269 70270 function r() { 70271 return t.cancelTimer_(); 70272 } 70273 70274 function s() { 70275 return t.fixesBadSeeks_(); 70276 } 70277 70278 this.tech_.on("seekablechanged", s), this.tech_.on("waiting", n), this.tech_.on(Ah, r), this.tech_.on("canplay", i), this.dispose = function () { 70279 t.logger_("dispose"), t.tech_.off("seekablechanged", s), t.tech_.off("waiting", n), t.tech_.off(Ah, r), t.tech_.off("canplay", i), t.checkCurrentTimeTimeout_ && y.clearTimeout(t.checkCurrentTimeTimeout_), t.cancelTimer_(); 70280 }; 70281 } 70282 70283 function Lh(e) { 70284 !function t(i, e) { 70285 var n = 0, 70286 r = 0, 70287 s = as.mergeOptions(Oh, e); 70288 i.ready(function () { 70289 i.trigger({ 70290 type: "usage", 70291 name: "hls-error-reload-initialized" 70292 }); 70293 }); 70294 70295 function a() { 70296 r && i.currentTime(r); 70297 } 70298 70299 function o(e) { 70300 null != e && (r = i.duration() !== 1 / 0 && i.currentTime() || 0, i.one("loadedmetadata", a), i.src(e), i.trigger({ 70301 type: "usage", 70302 name: "hls-error-reload" 70303 }), i.play()); 70304 } 70305 70306 function u() { 70307 if (Date.now() - n < 1e3 * s.errorInterval) i.trigger({ 70308 type: "usage", 70309 name: "hls-error-reload-canceled" 70310 });else { 70311 if (s.getSource && "function" == typeof s.getSource) return n = Date.now(), s.getSource.call(i, o); 70312 as.log.error("ERROR: reloadSourceOnError - The option getSource must be a function!"); 70313 } 70314 } 70315 70316 function l() { 70317 i.off("loadedmetadata", a), i.off("error", u), i.off("dispose", l); 70318 } 70319 70320 i.on("error", u), i.on("dispose", l), i.reloadSourceOnError = function (e) { 70321 l(), t(i, e); 70322 }; 70323 }(this, e); 70324 } 70325 70326 var Oh = { 70327 errorInterval: 30, 70328 getSource: function getSource(e) { 70329 return e(this.tech({ 70330 IWillNotUseThisInPlugins: !0 70331 }).currentSource_); 70332 } 70333 }, 70334 Dh = { 70335 PlaylistLoader: bl, 70336 Playlist: tc, 70337 Decrypter: il, 70338 AsyncStream: Ju, 70339 decrypt: tl, 70340 utils: rc, 70341 STANDARD_PLAYLIST_SELECTOR: function STANDARD_PLAYLIST_SELECTOR() { 70342 var e = this.useDevicePixelRatio && y.devicePixelRatio || 1; 70343 return function (e, t, i, n, r) { 70344 var s = e.playlists.map(function (e) { 70345 var t, i; 70346 return t = e.attributes.RESOLUTION && e.attributes.RESOLUTION.width, i = e.attributes.RESOLUTION && e.attributes.RESOLUTION.height, { 70347 bandwidth: e.attributes.BANDWIDTH || y.Number.MAX_VALUE, 70348 width: t, 70349 height: i, 70350 playlist: e 70351 }; 70352 }); 70353 Qc(s, function (e, t) { 70354 return e.bandwidth - t.bandwidth; 70355 }); 70356 var a = (s = s.filter(function (e) { 70357 return !tc.isIncompatible(e.playlist); 70358 })).filter(function (e) { 70359 return tc.isEnabled(e.playlist); 70360 }); 70361 a.length || (a = s.filter(function (e) { 70362 return !tc.isDisabled(e.playlist); 70363 })); 70364 var o = a.filter(function (e) { 70365 return e.bandwidth * eh.BANDWIDTH_VARIANCE < t; 70366 }), 70367 u = o[o.length - 1], 70368 l = o.filter(function (e) { 70369 return e.bandwidth === u.bandwidth; 70370 })[0]; 70371 70372 if (!1 === r) { 70373 var c = l || a[0] || s[0]; 70374 return c ? c.playlist : null; 70375 } 70376 70377 var h = o.filter(function (e) { 70378 return e.width && e.height; 70379 }); 70380 Qc(h, function (e, t) { 70381 return e.width - t.width; 70382 }); 70383 var d = h.filter(function (e) { 70384 return e.width === i && e.height === n; 70385 }); 70386 u = d[d.length - 1]; 70387 var p = d.filter(function (e) { 70388 return e.bandwidth === u.bandwidth; 70389 })[0], 70390 f = void 0, 70391 m = void 0, 70392 g = void 0; 70393 p || (m = (f = h.filter(function (e) { 70394 return e.width > i || e.height > n; 70395 })).filter(function (e) { 70396 return e.width === f[0].width && e.height === f[0].height; 70397 }), u = m[m.length - 1], g = m.filter(function (e) { 70398 return e.bandwidth === u.bandwidth; 70399 })[0]); 70400 var v = g || p || l || a[0] || s[0]; 70401 return v ? v.playlist : null; 70402 }(this.playlists.master, this.systemBandwidth, parseInt($c(this.tech_.el(), "width"), 10) * e, parseInt($c(this.tech_.el(), "height"), 10) * e, this.limitRenditionByPlayerDimensions); 70403 }, 70404 INITIAL_PLAYLIST_SELECTOR: function INITIAL_PLAYLIST_SELECTOR() { 70405 var e = this.playlists.master.playlists.filter(tc.isEnabled); 70406 return Qc(e, function (e, t) { 70407 return Jc(e, t); 70408 }), e.filter(function (e) { 70409 return vc(e.attributes.CODECS).videoCodec; 70410 })[0] || null; 70411 }, 70412 comparePlaylistBandwidth: Jc, 70413 comparePlaylistResolution: function comparePlaylistResolution(e, t) { 70414 var i = void 0, 70415 n = void 0; 70416 return e.attributes.RESOLUTION && e.attributes.RESOLUTION.width && (i = e.attributes.RESOLUTION.width), i = i || y.Number.MAX_VALUE, t.attributes.RESOLUTION && t.attributes.RESOLUTION.width && (n = t.attributes.RESOLUTION.width), i === (n = n || y.Number.MAX_VALUE) && e.attributes.BANDWIDTH && t.attributes.BANDWIDTH ? e.attributes.BANDWIDTH - t.attributes.BANDWIDTH : i - n; 70417 }, 70418 xhr: Nl() 70419 }; 70420 ["GOAL_BUFFER_LENGTH", "MAX_GOAL_BUFFER_LENGTH", "GOAL_BUFFER_LENGTH_RATE", "BUFFER_LOW_WATER_LINE", "MAX_BUFFER_LOW_WATER_LINE", "BUFFER_LOW_WATER_LINE_RATE", "BANDWIDTH_VARIANCE"].forEach(function (t) { 70421 Object.defineProperty(Dh, t, { 70422 get: function get() { 70423 return as.log.warn("using Hls." + t + " is UNSAFE be sure you know what you are doing"), eh[t]; 70424 }, 70425 set: function set(e) { 70426 as.log.warn("using Hls." + t + " is UNSAFE be sure you know what you are doing"), "number" != typeof e || e < 0 ? as.log.warn("value of Hls." + t + " must be greater than or equal to 0") : eh[t] = e; 70427 } 70428 }); 70429 }); 70430 70431 function Nh(e) { 70432 return /^(audio|video|application)\/(x-|vnd\.apple\.)?mpegurl/i.test(e) ? "hls" : /^application\/dash\+xml/i.test(e) ? "dash" : null; 70433 } 70434 70435 function Rh(e, t) { 70436 for (var i = t.media(), n = -1, r = 0; r < e.length; r++) { 70437 if (e[r].id === i.id) { 70438 n = r; 70439 break; 70440 } 70441 } 70442 70443 e.selectedIndex_ = n, e.trigger({ 70444 selectedIndex: n, 70445 type: "change" 70446 }); 70447 } 70448 70449 var Uh = "videojs-vhs"; 70450 70451 Dh.canPlaySource = function () { 70452 return as.log.warn("HLS is no longer a tech. Please remove it from your player's techOrder."); 70453 }; 70454 70455 function Mh(e) { 70456 var t = e.masterPlaylistController_.mainSegmentLoader_, 70457 i = e.masterPlaylistController_.audioSegmentLoader_, 70458 n = as.players[e.tech_.options_.playerId]; 70459 70460 if (n.eme) { 70461 var r = function (e, t, i) { 70462 if (!e) return e; 70463 var n = void 0, 70464 r = void 0; 70465 if (i.mimeType_) n = t.mimeType_, r = i.mimeType_;else { 70466 var s = bc(t.mimeType_), 70467 a = s.parameters.codecs.split(","), 70468 o = void 0, 70469 u = void 0; 70470 a.forEach(function (e) { 70471 e = e.trim(), Tc(e) ? o = e : Sc(e) && (u = e); 70472 }), n = s.type + '; codecs="' + u + '"', r = s.type.replace("video", "audio") + '; codecs="' + o + '"'; 70473 } 70474 var l = {}, 70475 c = t.playlist_; 70476 70477 for (var h in e) { 70478 l[h] = { 70479 audioContentType: r, 70480 videoContentType: n 70481 }, c.contentProtection && c.contentProtection[h] && c.contentProtection[h].pssh && (l[h].pssh = c.contentProtection[h].pssh), "string" == typeof e[h] && (l[h].url = e[h]); 70482 } 70483 70484 return as.mergeOptions(e, l); 70485 }(e.source_.keySystems, t, i); 70486 70487 r && (n.currentSource().keySystems = r, 11 !== as.browser.IE_VERSION && n.eme.initializeMediaKeys && n.eme.initializeMediaKeys()); 70488 } 70489 } 70490 70491 function Bh() { 70492 if (!window.localStorage) return null; 70493 var e = window.localStorage.getItem(Uh); 70494 if (!e) return null; 70495 70496 try { 70497 return JSON.parse(e); 70498 } catch (e) { 70499 return null; 70500 } 70501 } 70502 70503 Dh.supportsNativeHls = function () { 70504 var t = h.createElement("video"); 70505 if (!as.getTech("Html5").isSupported()) return !1; 70506 return ["application/vnd.apple.mpegurl", "audio/mpegurl", "audio/x-mpegurl", "application/x-mpegurl", "video/x-mpegurl", "video/mpegurl", "application/mpegurl"].some(function (e) { 70507 return /maybe|probably/i.test(t.canPlayType(e)); 70508 }); 70509 }(), Dh.supportsNativeDash = !!as.getTech("Html5").isSupported() && /maybe|probably/i.test(h.createElement("video").canPlayType("application/dash+xml")), Dh.supportsTypeNatively = function (e) { 70510 return "hls" === e ? Dh.supportsNativeHls : "dash" === e && Dh.supportsNativeDash; 70511 }, Dh.isSupported = function () { 70512 return as.log.warn("HLS is no longer a tech. Please remove it from your player's techOrder."); 70513 }; 70514 var jh = as.getComponent("Component"), 70515 Fh = (ll(Hh, jh), ol(Hh, [{ 70516 key: "setOptions_", 70517 value: function value() { 70518 var t = this; 70519 70520 if (this.options_.withCredentials = this.options_.withCredentials || !1, this.options_.handleManifestRedirects = this.options_.handleManifestRedirects || !1, this.options_.limitRenditionByPlayerDimensions = !1 !== this.options_.limitRenditionByPlayerDimensions, this.options_.useDevicePixelRatio = this.options_.useDevicePixelRatio || !1, this.options_.smoothQualityChange = this.options_.smoothQualityChange || !1, this.options_.useBandwidthFromLocalStorage = "undefined" != typeof this.source_.useBandwidthFromLocalStorage ? this.source_.useBandwidthFromLocalStorage : this.options_.useBandwidthFromLocalStorage || !1, this.options_.customTagParsers = this.options_.customTagParsers || [], this.options_.customTagMappers = this.options_.customTagMappers || [], this.options_.cacheEncryptionKeys = this.options_.cacheEncryptionKeys || !1, "number" != typeof this.options_.blacklistDuration && (this.options_.blacklistDuration = 300), "number" != typeof this.options_.bandwidth && this.options_.useBandwidthFromLocalStorage) { 70521 var e = Bh(); 70522 e && e.bandwidth && (this.options_.bandwidth = e.bandwidth, this.tech_.trigger({ 70523 type: "usage", 70524 name: "hls-bandwidth-from-local-storage" 70525 })), e && e.throughput && (this.options_.throughput = e.throughput, this.tech_.trigger({ 70526 type: "usage", 70527 name: "hls-throughput-from-local-storage" 70528 })); 70529 } 70530 70531 "number" != typeof this.options_.bandwidth && (this.options_.bandwidth = eh.INITIAL_BANDWIDTH), this.options_.enableLowInitialPlaylist = this.options_.enableLowInitialPlaylist && this.options_.bandwidth === eh.INITIAL_BANDWIDTH, ["withCredentials", "useDevicePixelRatio", "limitRenditionByPlayerDimensions", "bandwidth", "smoothQualityChange", "customTagParsers", "customTagMappers", "handleManifestRedirects", "cacheEncryptionKeys"].forEach(function (e) { 70532 "undefined" != typeof t.source_[e] && (t.options_[e] = t.source_[e]); 70533 }), this.limitRenditionByPlayerDimensions = this.options_.limitRenditionByPlayerDimensions, this.useDevicePixelRatio = this.options_.useDevicePixelRatio; 70534 } 70535 }, { 70536 key: "src", 70537 value: function value(e, t) { 70538 var i = this; 70539 e && (this.setOptions_(), this.options_.url = this.source_.src, this.options_.tech = this.tech_, this.options_.externHls = Dh, this.options_.sourceType = Nh(t), this.options_.seekTo = function (e) { 70540 i.tech_.setCurrentTime(e); 70541 }, this.masterPlaylistController_ = new wh(this.options_), this.playbackWatcher_ = new Ih(as.mergeOptions(this.options_, { 70542 seekable: function seekable() { 70543 return i.seekable(); 70544 }, 70545 media: function media() { 70546 return i.masterPlaylistController_.media(); 70547 } 70548 })), this.masterPlaylistController_.on("error", function () { 70549 as.players[i.tech_.options_.playerId].error(i.masterPlaylistController_.error); 70550 }), this.masterPlaylistController_.selectPlaylist = this.selectPlaylist ? this.selectPlaylist.bind(this) : Dh.STANDARD_PLAYLIST_SELECTOR.bind(this), this.masterPlaylistController_.selectInitialPlaylist = Dh.INITIAL_PLAYLIST_SELECTOR.bind(this), this.playlists = this.masterPlaylistController_.masterPlaylistLoader_, this.mediaSource = this.masterPlaylistController_.mediaSource, Object.defineProperties(this, { 70551 selectPlaylist: { 70552 get: function get() { 70553 return this.masterPlaylistController_.selectPlaylist; 70554 }, 70555 set: function set(e) { 70556 this.masterPlaylistController_.selectPlaylist = e.bind(this); 70557 } 70558 }, 70559 throughput: { 70560 get: function get() { 70561 return this.masterPlaylistController_.mainSegmentLoader_.throughput.rate; 70562 }, 70563 set: function set(e) { 70564 this.masterPlaylistController_.mainSegmentLoader_.throughput.rate = e, this.masterPlaylistController_.mainSegmentLoader_.throughput.count = 1; 70565 } 70566 }, 70567 bandwidth: { 70568 get: function get() { 70569 return this.masterPlaylistController_.mainSegmentLoader_.bandwidth; 70570 }, 70571 set: function set(e) { 70572 this.masterPlaylistController_.mainSegmentLoader_.bandwidth = e, this.masterPlaylistController_.mainSegmentLoader_.throughput = { 70573 rate: 0, 70574 count: 0 70575 }; 70576 } 70577 }, 70578 systemBandwidth: { 70579 get: function get() { 70580 var e = 1 / (this.bandwidth || 1), 70581 t = void 0; 70582 return t = 0 < this.throughput ? 1 / this.throughput : 0, Math.floor(1 / (e + t)); 70583 }, 70584 set: function set() { 70585 as.log.error('The "systemBandwidth" property is read-only'); 70586 } 70587 } 70588 }), this.options_.bandwidth && (this.bandwidth = this.options_.bandwidth), this.options_.throughput && (this.throughput = this.options_.throughput), Object.defineProperties(this.stats, { 70589 bandwidth: { 70590 get: function get() { 70591 return i.bandwidth || 0; 70592 }, 70593 enumerable: !0 70594 }, 70595 mediaRequests: { 70596 get: function get() { 70597 return i.masterPlaylistController_.mediaRequests_() || 0; 70598 }, 70599 enumerable: !0 70600 }, 70601 mediaRequestsAborted: { 70602 get: function get() { 70603 return i.masterPlaylistController_.mediaRequestsAborted_() || 0; 70604 }, 70605 enumerable: !0 70606 }, 70607 mediaRequestsTimedout: { 70608 get: function get() { 70609 return i.masterPlaylistController_.mediaRequestsTimedout_() || 0; 70610 }, 70611 enumerable: !0 70612 }, 70613 mediaRequestsErrored: { 70614 get: function get() { 70615 return i.masterPlaylistController_.mediaRequestsErrored_() || 0; 70616 }, 70617 enumerable: !0 70618 }, 70619 mediaTransferDuration: { 70620 get: function get() { 70621 return i.masterPlaylistController_.mediaTransferDuration_() || 0; 70622 }, 70623 enumerable: !0 70624 }, 70625 mediaBytesTransferred: { 70626 get: function get() { 70627 return i.masterPlaylistController_.mediaBytesTransferred_() || 0; 70628 }, 70629 enumerable: !0 70630 }, 70631 mediaSecondsLoaded: { 70632 get: function get() { 70633 return i.masterPlaylistController_.mediaSecondsLoaded_() || 0; 70634 }, 70635 enumerable: !0 70636 }, 70637 buffered: { 70638 get: function get() { 70639 return Kl(i.tech_.buffered()); 70640 }, 70641 enumerable: !0 70642 }, 70643 currentTime: { 70644 get: function get() { 70645 return i.tech_.currentTime(); 70646 }, 70647 enumerable: !0 70648 }, 70649 currentSource: { 70650 get: function get() { 70651 return i.tech_.currentSource_; 70652 }, 70653 enumerable: !0 70654 }, 70655 currentTech: { 70656 get: function get() { 70657 return i.tech_.name_; 70658 }, 70659 enumerable: !0 70660 }, 70661 duration: { 70662 get: function get() { 70663 return i.tech_.duration(); 70664 }, 70665 enumerable: !0 70666 }, 70667 master: { 70668 get: function get() { 70669 return i.playlists.master; 70670 }, 70671 enumerable: !0 70672 }, 70673 playerDimensions: { 70674 get: function get() { 70675 return i.tech_.currentDimensions(); 70676 }, 70677 enumerable: !0 70678 }, 70679 seekable: { 70680 get: function get() { 70681 return Kl(i.tech_.seekable()); 70682 }, 70683 enumerable: !0 70684 }, 70685 timestamp: { 70686 get: function get() { 70687 return Date.now(); 70688 }, 70689 enumerable: !0 70690 }, 70691 videoPlaybackQuality: { 70692 get: function get() { 70693 return i.tech_.getVideoPlaybackQuality(); 70694 }, 70695 enumerable: !0 70696 } 70697 }), this.tech_.one("canplay", this.masterPlaylistController_.setupFirstPlay.bind(this.masterPlaylistController_)), this.tech_.on("bandwidthupdate", function () { 70698 i.options_.useBandwidthFromLocalStorage && function (e) { 70699 if (window.localStorage) { 70700 var t = Bh(); 70701 t = t ? as.mergeOptions(t, e) : e; 70702 70703 try { 70704 window.localStorage.setItem(Uh, JSON.stringify(t)); 70705 } catch (e) { 70706 return; 70707 } 70708 } 70709 }({ 70710 bandwidth: i.bandwidth, 70711 throughput: Math.round(i.throughput) 70712 }); 70713 }), this.masterPlaylistController_.on("selectedinitialmedia", function () { 70714 !function (i) { 70715 var e = i.playlists; 70716 70717 i.representations = function () { 70718 return e && e.master && e.master.playlists ? e.master.playlists.filter(function (e) { 70719 return !Pl(e); 70720 }).map(function (e, t) { 70721 return new xh(i, e, e.id); 70722 }) : []; 70723 }; 70724 }(i), Mh(i); 70725 }), this.on(this.masterPlaylistController_, "progress", function () { 70726 this.tech_.trigger("progress"); 70727 }), this.on(this.masterPlaylistController_, "firstplay", function () { 70728 this.ignoreNextSeekingEvent_ = !0; 70729 }), this.setupQualityLevels_(), this.tech_.el() && this.tech_.src(as.URL.createObjectURL(this.masterPlaylistController_.mediaSource))); 70730 } 70731 }, { 70732 key: "setupQualityLevels_", 70733 value: function value() { 70734 var e = this, 70735 t = as.players[this.tech_.options_.playerId]; 70736 t && t.qualityLevels && !this.qualityLevels_ && (this.qualityLevels_ = t.qualityLevels(), this.masterPlaylistController_.on("selectedinitialmedia", function () { 70737 !function (t, e) { 70738 e.representations().forEach(function (e) { 70739 t.addQualityLevel(e); 70740 }), Rh(t, e.playlists); 70741 }(e.qualityLevels_, e); 70742 }), this.playlists.on("mediachange", function () { 70743 Rh(e.qualityLevels_, e.playlists); 70744 })); 70745 } 70746 }, { 70747 key: "play", 70748 value: function value() { 70749 this.masterPlaylistController_.play(); 70750 } 70751 }, { 70752 key: "setCurrentTime", 70753 value: function value(e) { 70754 this.masterPlaylistController_.setCurrentTime(e); 70755 } 70756 }, { 70757 key: "duration", 70758 value: function value() { 70759 return this.masterPlaylistController_.duration(); 70760 } 70761 }, { 70762 key: "seekable", 70763 value: function value() { 70764 return this.masterPlaylistController_.seekable(); 70765 } 70766 }, { 70767 key: "dispose", 70768 value: function value() { 70769 this.playbackWatcher_ && this.playbackWatcher_.dispose(), this.masterPlaylistController_ && this.masterPlaylistController_.dispose(), this.qualityLevels_ && this.qualityLevels_.dispose(), this.player_ && (delete this.player_.vhs, delete this.player_.dash, delete this.player_.hls), this.tech_ && this.tech_.hls && delete this.tech_.hls, function e(t, i, n) { 70770 null === t && (t = Function.prototype); 70771 var r = Object.getOwnPropertyDescriptor(t, i); 70772 70773 if (void 0 === r) { 70774 var s = Object.getPrototypeOf(t); 70775 return null === s ? void 0 : e(s, i, n); 70776 } 70777 70778 if ("value" in r) return r.value; 70779 var a = r.get; 70780 return void 0 !== a ? a.call(n) : void 0; 70781 }(Hh.prototype.__proto__ || Object.getPrototypeOf(Hh.prototype), "dispose", this).call(this); 70782 } 70783 }, { 70784 key: "convertToProgramTime", 70785 value: function value(e, t) { 70786 return Vl({ 70787 playlist: this.masterPlaylistController_.media(), 70788 time: e, 70789 callback: t 70790 }); 70791 } 70792 }, { 70793 key: "seekToProgramTime", 70794 value: function value(e, t, i, n) { 70795 var r = !(2 < arguments.length && void 0 !== i) || i, 70796 s = 3 < arguments.length && void 0 !== n ? n : 2; 70797 return ql({ 70798 programTime: e, 70799 playlist: this.masterPlaylistController_.media(), 70800 retryCount: s, 70801 pauseAfterSeek: r, 70802 seekTo: this.options_.seekTo, 70803 tech: this.options_.tech, 70804 callback: t 70805 }); 70806 } 70807 }]), Hh); 70808 70809 function Hh(e, t, i) { 70810 al(this, Hh); 70811 var n = cl(this, (Hh.__proto__ || Object.getPrototypeOf(Hh)).call(this, t, i.hls)); 70812 70813 if (t.options_ && t.options_.playerId) { 70814 var r = as(t.options_.playerId); 70815 r.hasOwnProperty("hls") || Object.defineProperty(r, "hls", { 70816 get: function get() { 70817 return as.log.warn("player.hls is deprecated. Use player.tech().hls instead."), t.trigger({ 70818 type: "usage", 70819 name: "hls-player-access" 70820 }), n; 70821 }, 70822 configurable: !0 70823 }), r.vhs = n, (r.dash = n).player_ = r; 70824 } 70825 70826 if (n.tech_ = t, n.source_ = e, n.stats = {}, n.ignoreNextSeekingEvent_ = !1, n.setOptions_(), n.options_.overrideNative && t.overrideNativeAudioTracks && t.overrideNativeVideoTracks) t.overrideNativeAudioTracks(!0), t.overrideNativeVideoTracks(!0);else if (n.options_.overrideNative && (t.featuresNativeVideoTracks || t.featuresNativeAudioTracks)) throw new Error("Overriding native HLS requires emulated tracks. See https://git.io/vMpjB"); 70827 return n.on(h, ["fullscreenchange", "webkitfullscreenchange", "mozfullscreenchange", "MSFullscreenChange"], function (e) { 70828 var t = h.fullscreenElement || h.webkitFullscreenElement || h.mozFullScreenElement || h.msFullscreenElement; 70829 t && t.contains(n.tech_.el()) && n.masterPlaylistController_.smoothQualityChange_(); 70830 }), n.on(n.tech_, "seeking", function () { 70831 this.ignoreNextSeekingEvent_ ? this.ignoreNextSeekingEvent_ = !1 : this.setCurrentTime(this.tech_.currentTime()); 70832 }), n.on(n.tech_, "error", function () { 70833 this.masterPlaylistController_ && this.masterPlaylistController_.pauseLoading(); 70834 }), n.on(n.tech_, "play", n.play), n; 70835 } 70836 70837 var Vh = { 70838 name: "videojs-http-streaming", 70839 VERSION: "1.13.2", 70840 canHandleSource: function canHandleSource(e, t) { 70841 var i = as.mergeOptions(as.options, 1 < arguments.length && void 0 !== t ? t : {}); 70842 return Vh.canPlayType(e.type, i); 70843 }, 70844 handleSource: function handleSource(e, t, i) { 70845 var n = as.mergeOptions(as.options, 2 < arguments.length && void 0 !== i ? i : {}); 70846 return t.hls = new Fh(e, t, n), t.hls.xhr = Nl(), t.hls.src(e.src, e.type), t.hls; 70847 }, 70848 canPlayType: function canPlayType(e, t) { 70849 var i = as.mergeOptions(as.options, 1 < arguments.length && void 0 !== t ? t : {}).hls.overrideNative, 70850 n = Nh(e); 70851 return n && (!Dh.supportsTypeNatively(n) || i) ? "maybe" : ""; 70852 } 70853 }; 70854 return "undefined" != typeof as.MediaSource && "undefined" != typeof as.URL || (as.MediaSource = Oc, as.URL = Dc), Oc.supportsNativeMediaSources() && as.getTech("Html5").registerSourceHandler(Vh, 0), as.HlsHandler = Fh, as.HlsSourceHandler = Vh, as.Hls = Dh, as.use || as.registerComponent("Hls", Dh), as.options.hls = as.options.hls || {}, as.registerPlugin ? as.registerPlugin("reloadSourceOnError", Lh) : as.plugin("reloadSourceOnError", Lh), as; 70855}); 70856/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../sfra-webpack-builder/node_modules/node-libs-browser/node_modules/buffer/index.js */ "./node_modules/node-libs-browser/node_modules/buffer/index.js").Buffer)) 70857 70858/***/ }), 70859
70860/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/cart.js": 70861/*!*****************************************************************************************************!*\ 70862 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/cart.js ***! 70863 \*****************************************************************************************************/ 70864/*! no static exports found */ 70865/***/ (function(module, exports, __webpack_require__) { 70866 70867"use strict"; 70868 70869 70870var core = __webpack_require__(/*! core/cart */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/cart.js"); 70871 70872var siteIntegrations = __webpack_require__(/*! ./integrations/siteIntegrationsUtils */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/siteIntegrationsUtils.js"); 70873 70874var toggleObject = siteIntegrations.getIntegrationSettings(); 70875 70876if (toggleObject.subproEnabled) { 70877 core.baseFiles.subproSubscriptionOptions = __webpack_require__(/*! ./integrations/subpro/subscriptionOptions */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/subpro/subscriptionOptions.js"); 70878} 70879 70880if (toggleObject.bopisCartridgeEnabled) { 70881 core.baseFiles.instore = __webpack_require__(/*! ./integrations/bopis/cart/instore */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/bopis/cart/instore.js"); 70882} 70883 70884if (toggleObject.cybersourceCartridgeEnabled || toggleObject.adyenCartridgeEnabled) { 70885 core.baseFiles.applepay = __webpack_require__(/*! ./integrations/applepay */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/applepay.js"); 70886} 70887 70888if (toggleObject.cybersourceCartridgeEnabled) { 70889 core.baseFiles.cybersourceMinicart = __webpack_require__(/*! ./integrations/cybersource/components/miniCart */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/cybersource/components/miniCart.js"); 70890 core.baseFiles.cybersourcePaypal = __webpack_require__(/*! ./integrations/cybersource/paypal */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/cybersource/paypal.js"); 70891} //Standalone paypal does not have a toggle 70892 70893 70894core.baseFiles.paypalUtils = __webpack_require__(/*! ./integrations/paypal */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/paypal.js"); 70895module.exports = core; 70896 70897/***/ }), 70898
70899/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/applepay.js": 70900/*!**********************************************************************************************************************!*\ 70901 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/applepay.js ***! 70902 \**********************************************************************************************************************/ 70903/*! no static exports found */ 70904/***/ (function(module, exports, __webpack_require__) { 70905 70906"use strict"; 70907 70908 70909function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } 70910 70911function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } 70912 70913function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } 70914 70915module.exports = { 70916 methods: { 70917 afterApplePayTagReplacement: function afterApplePayTagReplacement(data) { 70918 var checkoutPaymentTab = $('.nav-item.applepay-tab-wrapper'); 70919 70920 if (checkoutPaymentTab.length === 1) { 70921 checkoutPaymentTab.removeAttr('hidden'); 70922 } 70923 70924 var container; 70925 70926 if (data && data.target) { 70927 container = $(data.target).find('.js-paymentmethodwarning-msgcontainer'); 70928 } else { 70929 container = $('#applepay-content .js-paymentmethodwarning-msgcontainer'); 70930 } 70931 70932 if (container) { 70933 container.attr('data-iframepresent', true); 70934 container.data('iframepresent', true); 70935 $('body').trigger('PaymentMethodObserver:iframePresent'); 70936 } 70937 } 70938 }, 70939 updateAddToCart: function updateAddToCart() { 70940 $('body').on('product:updateAddToCart', function (e, response) { 70941 var $productContainer = response.$productContainer; 70942 var appleButton = $productContainer.find('button.dw-apple-pay-button'); 70943 70944 if (appleButton && appleButton.length) { 70945 $('body').trigger('PaymentMethodObserver:Show', { 70946 name: 'available', 70947 show: !response.product.readyToOrder || !response.product.available 70948 }); 70949 appleButton.attr('sku', response.product.id); 70950 } 70951 }); 70952 }, 70953 detectIsApplePayTagReplacement: function detectIsApplePayTagReplacement() { 70954 //can handle running before or after replacement by internal demandware applepay script 70955 var applePayTag = $('isapplepay'); 70956 70957 if (applePayTag.length === 0) { 70958 module.exports.methods.afterApplePayTagReplacement(); 70959 } else { 70960 $('body').on('PaymentMethodObserver:AddNode', function (e, data) { 70961 if (data && data.addNode && data.addNode.classList) { 70962 var _iterator = _createForOfIteratorHelper(data.addNode.classList), 70963 _step; 70964 70965 try { 70966 for (_iterator.s(); !(_step = _iterator.n()).done;) { 70967 var className = _step.value; 70968 70969 if (className === 'dw-apple-pay-button') { 70970 module.exports.methods.afterApplePayTagReplacement(data); 70971 data.observer.disconnect(); 70972 return; 70973 } 70974 } 70975 } catch (err) { 70976 _iterator.e(err); 70977 } finally { 70978 _iterator.f(); 70979 } 70980 } 70981 }); 70982 } 70983 } 70984}; 70985 70986/***/ }), 70987
70988/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/bopis/cart/instore.js": 70989/*!********************************************************************************************************************************!*\ 70990 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/bopis/cart/instore.js ***! 70991 \********************************************************************************************************************************/ 70992/*! no static exports found */ 70993/***/ (function(module, exports, __webpack_require__) { 70994 70995"use strict"; 70996 70997 70998function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } 70999 71000function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } 71001 71002function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } 71003 71004function updateEditModalStoreAttribute($modal, storeId) { 71005 var $updateCartUrl = $modal.find('.update-cart-url'); 71006 71007 if ($updateCartUrl.length > 0) { 71008 $updateCartUrl.attr('data-store-id', storeId || null); 71009 } 71010} 71011 71012function getUrlParam(name) { 71013 var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href); 71014 71015 if (results == null) { 71016 return null; 71017 } else { 71018 return decodeURI(results[1]) || 0; 71019 } 71020} 71021 71022function onCartUpdate() { 71023 $('body').on('cart:update', function (e, data, uuid) { 71024 var hasInstorePickup = false; 71025 var basket = data.basket || data.cartModel || data; 71026 71027 if (basket && basket.numItems) { 71028 var _iterator = _createForOfIteratorHelper(basket.items), 71029 _step; 71030 71031 try { 71032 for (_iterator.s(); !(_step = _iterator.n()).done;) { 71033 var item = _step.value; 71034 hasInstorePickup = hasInstorePickup || item.fromStoreId; 71035 } 71036 } catch (err) { 71037 _iterator.e(err); 71038 } finally { 71039 _iterator.f(); 71040 } 71041 } 71042 71043 $('body').trigger('PaymentMethodObserver:Show', { 71044 name: 'bopis', 71045 show: hasInstorePickup ? true : false 71046 }); 71047 }); 71048} 71049 71050module.exports = {
71051 watchForEditModalLaunch: function watchForEditModalLaunch() { 71052 $('body').on('quickview:ready', function (event, modal) { 71053 var $modal = $(modal); 71054 var isEditModal = $modal.find('.cart-and-ipay').length > 0; 71055 var storeId = $modal.find('.store-details[data-store-id]').data('store-id'); 71056 71057 if (isEditModal && storeId) { 71058 updateEditModalStoreAttribute($modal, storeId); 71059 } 71060 }); 71061 }, 71062 watchForStoreChange: function watchForStoreChange() { 71063 $('body').on('store:selected', function (event, data) { 71064 updateEditModalStoreAttribute($('#quickViewModal.show'), data.storeID); 71065 }); 71066 $(document).on('store:afterRemoveStoreSelection', function (event, data) { 71067 updateEditModalStoreAttribute($('#quickViewModal.show'), null); 71068 }); 71069 }, 71070 editModalAutoLaunch: function editModalAutoLaunch() { 71071 var lineItemUUID = getUrlParam('editUUID'); 71072 71073 if (lineItemUUID) { 71074 $('.product-edit .edit[data-uuid="' + lineItemUUID + '"]').trigger('click'); 71075 } 71076 }, 71077 onCartUpdate: onCartUpdate 71078}; 71079 71080/***/ }), 71081
71082/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/bopis/product/detail.js": 71083/*!**********************************************************************************************************************************!*\ 71084 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/bopis/product/detail.js ***! 71085 \**********************************************************************************************************************************/ 71086/*! no static exports found */ 71087/***/ (function(module, exports, __webpack_require__) { 71088 71089"use strict"; 71090 71091 71092var base = __webpack_require__(/*! core/product/base */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/base.js"); 71093/** 71094 * Update availability on change event on quantity selector and on store:afterRemoveStoreSelection event. 71095 * If store has been selected, exit function otherwise proceed to update attributes. 71096 * @param {Object} element DOM Element. 71097 */ 71098 71099 71100function updateAvailability(element) { 71101 var searchPID = $(element).closest('.product-detail').attr('data-pid'); 71102 var selectorPrefix = '.product-detail[data-pid="' + searchPID + '"]'; 71103 71104 if ($(selectorPrefix + ' .selected-store-with-inventory').is(':visible')) { 71105 return; 71106 } 71107 71108 var $productContainer = $(element).closest('.product-detail'); 71109
71110 if (!$productContainer.length) { 71111 $productContainer = $(element).closest('.modal-content').find('.product-quickview'); 71112 } 71113 71114 if ($('.bundle-items', $productContainer).length === 0) { 71115 base.methods.attributeSelect($(element).find('option:selected').data('url'), $(element).find('option:selected').data('htmlUrl'), $productContainer); 71116 } 71117} 71118/** 71119 * Registering on change event on quantity selector and on store:afterRemoveStoreSelection event. 71120 */ 71121 71122 71123function availability() { 71124 $(document).on('change', '.quantity-select', function (e) { 71125 e.preventDefault(); 71126 updateAvailability($(this)); 71127 }); 71128 $(document).on('store:afterRemoveStoreSelection', function (e, element) { 71129 e.preventDefault(); 71130 updateAvailability(element); 71131 }); 71132} 71133 71134module.exports = { 71135 availability: availability 71136}; 71137 71138/***/ }), 71139
71140/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/bopis/product/pdpInstoreInventory.js": 71141/*!***********************************************************************************************************************************************!*\ 71142 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/bopis/product/pdpInstoreInventory.js ***! 71143 \***********************************************************************************************************************************************/ 71144/*! no static exports found */ 71145/***/ (function(module, exports, __webpack_require__) { 71146 71147"use strict"; 71148 71149 71150var storeLocator = __webpack_require__(/*! core/storeLocator/storeLocator */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/storeLocator/storeLocator.js"); 71151 71152var base = __webpack_require__(/*! core/product/base */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/base.js"); 71153/** 71154 * Restores Quantity Selector to its original state. 71155 * @param {HTMLElement} $quantitySelect - The Quantity Select Element 71156 */ 71157 71158 71159function restoreQuantityOptions($quantitySelect) { 71160 var originalHTML = $quantitySelect.data('originalHTML'); 71161 71162 if (originalHTML) { 71163 $quantitySelect.html(originalHTML); 71164 } 71165} 71166/** 71167 * Sets the data attribute of Quantity Selector to save its original state. 71168 * @param {HTMLElement} $quantitySelect - The Quantity Select Element 71169 */ 71170 71171 71172function setOriginalQuantitySelect($quantitySelect) { 71173 if (!$quantitySelect.data('originalHTML')) { 71174 $quantitySelect.data('originalHTML', $quantitySelect.html()); 71175 } // If it's already there, don't re-set it 71176 71177} 71178/** 71179 * Updates the Quantity Selector based on the In Store Quantity. 71180 * @param {string} $quantitySelector - Quantity Selector 71181 * @param {number} productAtsValue - Inventory in the selected store 71182 */ 71183 71184 71185function updateQOptions($quantitySelector, productAtsValue) { 71186 var selectedQuantity = $quantitySelector.val(); 71187 module.exports.methods.restoreQuantityOptions($quantitySelector); 71188 $quantitySelector.find('option').each(function (index, option) { 71189 if (index >= productAtsValue) { 71190 $(option).remove(); 71191 } 71192 }); 71193 $quantitySelector.find('option[value="' + selectedQuantity + '"]').attr('selected', 'selected'); // update qty stepper if enabled 71194 71195 var $qtyStepper = $quantitySelector.closest('.quantity').find('.quantity-stepper'); 71196 71197 if ($qtyStepper.length) { 71198 $qtyStepper.attr('data-max', productAtsValue); 71199 base.enableQuantitySteppers($qtyStepper.closest('.quantity')); 71200 } 71201} 71202/** 71203 * Generates the modal window on the first call. 71204 */ 71205 71206 71207function getModalHtmlElement() { 71208 if ($('#inStoreInventoryModal').length !== 0) { 71209 $('#inStoreInventoryModal').remove(); 71210 } 71211 71212 var htmlString = '<!-- Modal -->' + '<div class="modal " id="inStoreInventoryModal" role="dialog">' + '<div class="modal-dialog modal-lg in-store-inventory-dialog">' + '<!-- Modal content-->' + '<div class="modal-content">' + '<div class="modal-header justify-content-end">' + ' <button type="button" class="close pull-right" data-dismiss="modal" title="' + $('.btn-get-in-store-inventory').data('modal-close-text') + '">' // eslint-disable-line 71213 + ' <span aria-hidden="true">×</span>' + ' </button>' + '</div>' + '<div class="modal-body"></div>' + '</div>' + '</div>' + '</div>'; 71214 $('body').append(htmlString); 71215 $('#inStoreInventoryModal').modal('show'); 71216} 71217/** 71218 * Replaces the content in the modal window with find stores components and 71219 * the result store list. 71220 * @param {string} pid - The product ID to search for 71221 * @param {number} quantity - Number of products to search inventory for 71222 * @param {number} selectedPostalCode - The postal code to search for inventory 71223 * @param {number} selectedRadius - The radius to search for inventory 71224 */ 71225 71226 71227function fillModalElement(pid, quantity, selectedPostalCode, selectedRadius) { 71228 var requestData = {}; 71229 71230 if (pid && quantity) { 71231 requestData.products = pid + ':' + quantity; 71232 } 71233 71234 ; 71235 71236 if (selectedRadius) { 71237 requestData.radius = selectedRadius; 71238 } 71239 71240 if (selectedPostalCode) { 71241 requestData.postalCode = selectedPostalCode; 71242 } 71243 71244 $('#inStoreInventoryModal').spinner().start(); 71245 $.ajax({ 71246 url: $('.btn-get-in-store-inventory').data('action-url'), 71247 data: requestData, 71248 method: 'GET', 71249 success: function success(response) { 71250 $('#inStoreInventoryModal .modal-body').empty(); 71251 $('#inStoreInventoryModal .modal-body').html(response.storesResultsHtml); 71252 $('.btn-storelocator-search').attr('data-search-pid', pid); 71253 71254 if (selectedRadius) { 71255 $('#radius').val(selectedRadius); 71256 } 71257 71258 if (selectedPostalCode) { 71259 $('#store-postal-code').val(selectedPostalCode); 71260 } 71261 71262 $('#inStoreInventoryModal').modal('show'); 71263 $('#inStoreInventoryModal').spinner().stop(); 71264 }, 71265 error: function error() { 71266 $('#inStoreInventoryModal').spinner().stop(); 71267 } 71268 }); 71269} 71270/** 71271 * Remove the selected store. 71272 * @param {HTMLElement} $container - the target html element 71273 */ 71274 71275 71276function deselectStore($container) { 71277 var storeElement = $($container).find('.selected-store-with-inventory'); 71278 $(storeElement).find('.card-body').empty(); 71279 $(storeElement).closest('.row').addClass('d-none'); 71280 $($container).find('.btn-get-in-store-inventory').closest('.row').removeClass('d-none'); 71281 $($container).find('.quantity-select').removeData('originalHTML'); 71282} 71283/**
71284 * Update quantity options. Only display quantity options that are available for the store. 71285 * @param {sring} searchPID - The product ID of the selected product. 71286 * @param {number} storeId - The store ID selected for in store pickup. 71287 */ 71288 71289 71290function updateQuantityOptions(searchPID, storeId) { 71291 if (!searchPID) { 71292 return false; 71293 } 71294 71295 var selectorPrefix = '.product-detail[data-pid="' + searchPID + '"]'; 71296 var $productIdSelector = $(selectorPrefix).find('.product-id').first(); 71297 var $quantitySelector = $(selectorPrefix).closest('.modal').length ? $(selectorPrefix).closest('.modal').find('.modal-footer .quantity-select') : $(selectorPrefix).find('.quantity-select'); 71298 setOriginalQuantitySelect($quantitySelector); 71299 var requestData = { 71300 pid: $productIdSelector.text(), 71301 quantitySelected: $quantitySelector.val(), 71302 storeId: storeId 71303 }; 71304 $.ajax({ 71305 url: $('.btn-get-in-store-inventory').data('ats-action-url'), 71306 data: requestData, 71307 method: 'GET', 71308 success: function success(response) { 71309 // Update Quantity dropdown, Remove quantity greater than inventory 71310 var productAtsValue = response.atsValue; 71311 var availabilityValue = ''; 71312 var $productContainer = $('.product-detail[data-pid="' + searchPID + '"]'); 71313 71314 if (!response.product.readyToOrder) { 71315 availabilityValue = '<li><div>' + response.resources.info_selectforstock + '</div></li>'; 71316 } else { 71317 response.product.messages.forEach(function (message) { 71318 availabilityValue += '<li><div>' + message + '</div></li>'; 71319 }); 71320 } 71321 71322 $productContainer.trigger('product:updateAvailability', { 71323 product: response.product, 71324 $productContainer: $productContainer, 71325 message: availabilityValue, 71326 resources: response.resources 71327 }); 71328 $('button.add-to-cart, button.add-to-cart-global, button.update-cart-product-global').trigger('product:updateAddToCart', { 71329 product: response.product, 71330 $productContainer: $productContainer 71331 }); 71332 module.exports.methods.updateQOptions($quantitySelector, productAtsValue); 71333 } 71334 }); 71335} 71336 71337function getQuantitySelect($target) { 71338 var $quantitySelect; 71339 71340 if ($target.closest('#quickViewModal').length) { 71341 $quantitySelect = $target.closest('#quickViewModal').find('.modal-footer .quantity-select'); 71342 } else { 71343 $quantitySelect = $target.closest('.product-detail').find('.quantity-select'); 71344 } 71345 71346 return $quantitySelect; 71347} 71348 71349module.exports = { 71350 updateSelectStore: function updateSelectStore() { 71351 $('body').on('product:updateAddToCart', function (e, response) { 71352 $('.btn-get-in-store-inventory', response.$productContainer).attr('disabled', !response.product.readyToOrder || !response.product.available || !response.product.availableForInStorePickup); 71353 }); 71354 }, 71355 updateSelectedStoreOnAttributeChange: function updateSelectedStoreOnAttributeChange() { 71356 $('body').on('product:afterAttributeSelect', function (e, response) { 71357 var storeId = $(response.container).find('.selected-store-with-inventory [data-store-id]').data('store-id'); 71358 response.container.attr('data-pid', response.data.product.id); 71359 71360 if (storeId) { 71361 module.exports.methods.updateQuantityOptions(response.data.product.id, storeId); 71362 } else { 71363 module.exports.methods.deselectStore(response.container); // update qty stepper if enabled 71364 71365 var $qtyStepper = $(response.container).closest('.modal').length ? response.container.closest('.modal').find('.modal-footer .quantity-stepper') : response.container.find('.quantity-stepper'); 71366 71367 if ($qtyStepper.length) { 71368 var qtyMax = $qtyStepper.closest('.quantity').find('[class*="quantity-select"] option').length; 71369 $qtyStepper.attr('data-max', qtyMax); 71370 base.enableQuantitySteppers($qtyStepper.closest('.quantity')); 71371 } 71372 } 71373 }); 71374 }, 71375 updateAddToCartFormData: function updateAddToCartFormData() { 71376 $('body').on('updateAddToCartFormData', function (e, form) { 71377 if (form.pidsObj) { 71378 var pidsObj = JSON.parse(form.pidsObj); 71379 pidsObj.forEach(function (product) { 71380 var storeElement = $('.product-detail[data-pid="' + product.pid + '"]').find('.store-name'); 71381 product.storeId = $(storeElement).length // eslint-disable-line no-param-reassign 71382 ? $(storeElement).attr('data-store-id') : null; 71383 });
71384 form.pidsObj = JSON.stringify(pidsObj); // eslint-disable-line no-param-reassign 71385 } 71386 71387 var storeElement = $('.product-detail[data-pid="' + form.pid + '"]'); 71388 71389 if ($(storeElement).length) { 71390 form.storeId = $(storeElement).find('.store-name') // eslint-disable-line 71391 .attr('data-store-id'); 71392 } 71393 }); 71394 }, 71395 showInStoreInventory: function showInStoreInventory() { 71396 $('body').on('click', '.btn-get-in-store-inventory', function (event) { 71397 var $target = $(event.target); 71398 var pid = $target.closest('.product-detail').attr('data-pid'); 71399 var $quantitySelect = module.exports.methods.getQuantitySelect($target); 71400 var quantity = $quantitySelect.val(); 71401 module.exports.methods.getModalHtmlElement(); 71402 module.exports.methods.fillModalElement(pid, quantity); 71403 event.stopPropagation(); 71404 }); 71405 }, 71406 removeStoreSelection: function removeStoreSelection() { 71407 $('body').on('click', '#remove-store-selection', function (event) { 71408 var $target = $(event.target); 71409 var $quantitySelect = module.exports.methods.getQuantitySelect($target); 71410 module.exports.methods.deselectStore($target.closest('.product-detail')); 71411 $(document).trigger('store:afterRemoveStoreSelection', $quantitySelect); 71412 }); 71413 }, 71414 selectStoreWithInventory: function selectStoreWithInventory() { 71415 $('body').on('store:selected', function (e, data) { 71416 var searchPID = data.scope.find('.btn-storelocator-search').attr('data-search-pid'); 71417 71418 if (searchPID) { 71419 var $storeElement = $('.product-detail[data-pid="' + searchPID + '"]'); 71420 $storeElement.find('.selected-store-with-inventory .card-body').empty(); 71421 $storeElement.find('.selected-store-with-inventory .card-body').append(data.storeDetailsHtml); 71422 $storeElement.find('.store-name').attr('data-store-id', data.storeID); 71423 $storeElement.find('.selected-store-with-inventory').closest('.row').removeClass('d-none'); 71424 var $changeStoreButton = $storeElement.find('.change-store'); 71425 $changeStoreButton.data('postal', data.searchPostalCode); 71426 $changeStoreButton.data('radius', data.searchRadius); 71427 $storeElement.find('.btn-get-in-store-inventory').closest('.row').addClass('d-none'); 71428 module.exports.methods.updateQuantityOptions(searchPID, data.storeID); 71429 data.scope.closest('.modal').modal('hide'); 71430 data.scope.closest('.modal').remove(); 71431 } 71432 }); 71433 }, 71434 changeStore: function changeStore() { 71435 $('body').on('click', '.change-store', function (event) { 71436 var $target = $(event.target); 71437 var pid = $target.closest('.product-detail').attr('data-pid'); 71438 var $quantitySelect = module.exports.methods.getQuantitySelect($target); 71439 var quantity = $quantitySelect.val(); 71440 module.exports.methods.getModalHtmlElement(); 71441 module.exports.methods.fillModalElement(pid, quantity, $target.data('postal'), $target.data('radius')); 71442 }); 71443 }, 71444 methods: { 71445 restoreQuantityOptions: restoreQuantityOptions, 71446 setOriginalQuantitySelect: setOriginalQuantitySelect, 71447 updateQOptions: updateQOptions, 71448 getModalHtmlElement: getModalHtmlElement, 71449 fillModalElement: fillModalElement, 71450 deselectStore: deselectStore, 71451 updateQuantityOptions: updateQuantityOptions, 71452 getQuantitySelect: getQuantitySelect 71453 } 71454}; 71455 71456/***/ }), 71457
71458/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/commercepayments/components/payment.js": 71459/*!*************************************************************************************************************************************************!*\ 71460 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/commercepayments/components/payment.js ***! 71461 \*************************************************************************************************************************************************/ 71462/*! no static exports found */ 71463/***/ (function(module, exports, __webpack_require__) { 71464 71465"use strict"; 71466 71467 71468function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } 71469 71470function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } 71471 71472function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } 71473 71474var recaptcha = __webpack_require__(/*! core/components/recaptcha */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/recaptcha.js"); 71475/** 71476 * Returns the expected number of express checkout buttons that may be rendered for the given component. 71477 * @param {Object} component - the SFPP component 71478 * @returns {integer} expected number of buttons 71479 */ 71480 71481 71482function getExpectedExpressCheckoutButtonsCount(component) { 71483 var renderedTypes = component.getRenderedTypes(); 71484 var count = 0; 71485 71486 if (renderedTypes.indexOf('applepay') !== -1 || renderedTypes.indexOf('paymentrequest') !== -1) { 71487 count++; 71488 } 71489 71490 if (renderedTypes.indexOf('paypalexpress') !== -1) { 71491 count++; 71492 } 71493 71494 return count; 71495} 71496/** 71497 * Register payment request buttons on the page that have not yet been registered. 71498 */ 71499 71500 71501function registerPaymentRequestButtons() { 71502 if (window.sfpp) { 71503 sfpp.ready(function () { 71504 // eslint-disable-line 71505 $('.salesforce-paymentrequest-element').each(function () { 71506 var element = $(this); 71507 71508 if (element.hasClass('salesforce-paymentrequest-element-registered')) { 71509 // Only register each button once 71510 return; 71511 } 71512 71513 element.addClass('salesforce-paymentrequest-element-registered'); 71514 var errorElement = $('.' + element.data('errorsclass')); 71515 var paymentrequest = sfpp.get(element.data('paymentrequestid')); // eslint-disable-line 71516 // Update current payment request with initial data 71517 71518 var abPaymentrequestoptions = element.data('abPaymentrequestoptions'); 71519 71520 if (abPaymentrequestoptions) { 71521 paymentrequest.updatePaymentRequest(abPaymentrequestoptions); 71522 } 71523 71524 var paypalMessage = element.closest('.checkout-buttons').find('.salesforce-paypal-messaging'); 71525 /** 71526 * Shows/hides PayPal messages component based on rendered payment method types. 71527 */ 71528 71529 function updatePayPalMessageVisibility() { 71530 paypalMessage.toggleClass('salesforce-paypal-messaging-hidden', paymentrequest.getRenderedTypes().indexOf('paypalexpress') === -1); 71531 } 71532 71533 var expectedExpressCheckoutButtons = getExpectedExpressCheckoutButtonsCount(paymentrequest); 71534 var renderedExpressCheckoutButtons; 71535 /** 71536 * Shows express checkout button skeletons. 71537 */ 71538 71539 function showExpressCheckoutButtonSkeletons() { 71540 element.addClass('salesforce-paymentrequest-element-loading');
71541 element.prepend('<div class="salesforce-paymentrequest-element-skeletons"></div>'); 71542 71543 for (var i = 0; i < expectedExpressCheckoutButtons; i++) { 71544 element.children('.salesforce-paymentrequest-element-skeletons').append('<div class="salesforce-paymentrequest-element-skeleton"><button type="button" class="btn" disabled></button></div>'); 71545 } 71546 71547 renderedExpressCheckoutButtons = 0; 71548 } 71549 /** 71550 * Removes express checkout button skeletons. 71551 */ 71552 71553 71554 function removeExpressCheckoutButtonSkeletons() { 71555 element.children('.salesforce-paymentrequest-element-skeletons').remove(); 71556 element.removeClass('salesforce-paymentrequest-element-loading'); 71557 } // Show PayPal messages component after initial render 71558 71559 71560 setTimeout(updatePayPalMessageVisibility); // Don't Show express checkout buttons skeletons while initially loading 71561 // showExpressCheckoutButtonSkeletons(); 71562 71563 paymentrequest.on('render', function () { 71564 // Show express checkout buttons skeletons after refreshing 71565 expectedExpressCheckoutButtons = getExpectedExpressCheckoutButtonsCount(paymentrequest); 71566 showExpressCheckoutButtonSkeletons(); // Show/hide PayPal messages component after refreshing 71567 71568 updatePayPalMessageVisibility(); 71569 }); 71570 /** 71571 * Called each time an express checkout button is shown. 71572 */ 71573 71574 function expressCheckoutButtonShown() { 71575 renderedExpressCheckoutButtons++; 71576 71577 if (renderedExpressCheckoutButtons >= expectedExpressCheckoutButtons) { 71578 removeExpressCheckoutButtonSkeletons(); 71579 } // Show/hide PayPal messages component after refreshing 71580 71581 71582 updatePayPalMessageVisibility(); 71583 } 71584 71585 paymentrequest.on('paypal.init', expressCheckoutButtonShown); 71586 paymentrequest.on('paymentrequest.init', expressCheckoutButtonShown); // Update error message on change 71587 71588 paymentrequest.on('change', function (event) { 71589 if (event.error) { 71590 // Inform the customer that there is an error. 71591 errorElement.empty().text(event.error.message); 71592 } else { 71593 // Clear out error message 71594 errorElement.empty(); 71595 } 71596 }); 71597 $('body').on('cart:beforeUpdate cart:beforeShippingMethodSelected checkout:beforeShippingMethodSelected promotion:beforeUpdate checkout:beforeGiftCertificateUpdate', function () { 71598 element.attr('disabled', true); 71599 }); 71600 $('body').on('cart:update cart:shippingMethodSelected checkout:shippingMethodSelected promotion:success promotion:error checkout:giftCertificateUpdate', function (e, data) { 71601 if ('paymentRequestOptions' in data && data.paymentRequestOptions) { 71602 paymentrequest.updatePaymentRequest(data.paymentRequestOptions); 71603 var enabled = data.paymentRequestOptions.total.amount > 0; 71604 element.attr('disabled', !enabled); 71605 paypalMessage.find('div[data-pp-message]').attr('data-pp-amount', data.paypalAmount); 71606 } 71607 }); 71608 $('body').on('checkout:billingCountrySelected', function (e, data) { 71609 // Update payment billing details and refresh when country changed 71610 paymentrequest.updateBillingDetails(data.billingDetails); 71611 paymentrequest.refresh(); 71612 }); 71613 paymentrequest.on('payment', function (e) { 71614 recaptcha.check(e, { 71615 url: element.data('placeorder'), 71616 method: 'POST', 71617 success: function success(data) { 71618 if (data.error) { 71619 // Inform the customer that there is an error. 71620 errorElement.empty().text(data.errorMessage); 71621 } else { 71622 // Show the order confirmation page 71623 var redirect = $('<form>').appendTo(document.body).attr({ 71624 method: 'POST', 71625 action: data.continueUrl 71626 }); 71627 $('<input>').appendTo(redirect).attr({ 71628 name: 'orderID', 71629 value: data.orderID 71630 }); 71631 $('<input>').appendTo(redirect).attr({ 71632 name: 'orderToken', 71633 value: data.orderToken 71634 }); 71635 redirect.submit(); 71636 } 71637 }, 71638 error: function error(err) { 71639 // Inform the customer that there is an error. 71640 errorElement.empty().text(err.message); 71641 } 71642 }); 71643 }); 71644 paymentrequest.on('paypal.approve', function () { 71645 $.ajax({ 71646 url: element.data('paypalapprove'), 71647 type: 'post', 71648 data: '', 71649 success: function success(data) { 71650 window.location.href = data.redirectUrl; 71651 }, 71652 error: function error(err) { 71653 if (err.responseJSON && err.responseJSON.redirectUrl) { 71654 window.location.href = err.responseJSON.redirectUrl; 71655 } else { 71656 // Inform the customer that there is an error. 71657 errorElement.empty().text(err.responseJSON.message); 71658 } 71659 } 71660 }); 71661 }); 71662 }); 71663 }); 71664 } 71665} 71666 71667function onPaymentRequestButtonRegister() { 71668 $('body').on('paymentrequestbutton:register', function () { 71669 module.exports.methods.registerPaymentRequestButtons(); 71670 }); 71671} 71672 71673function onTrackBuyNowiframe() { 71674 $('body').on('PaymentMethodObserver:AddNode', function (e, data) { 71675 if (data && data.addNode && data.addNode.classList) { 71676 var _iterator = _createForOfIteratorHelper(data.addNode.classList), 71677 _step; 71678
71679 try { 71680 for (_iterator.s(); !(_step = _iterator.n()).done;) { 71681 var className = _step.value; 71682 71683 if (className === 'StripeElement') { 71684 var container = $(data.target).find('.js-paymentmethodwarning-msgcontainer'); 71685 71686 if (container.length) { 71687 container.attr('data-iframepresent', true); 71688 container.data('iframepresent', true); 71689 $('body').trigger('PaymentMethodObserver:iframePresent'); 71690 data.observer.disconnect(); 71691 } 71692 71693 return; 71694 } 71695 } 71696 } catch (err) { 71697 _iterator.e(err); 71698 } finally { 71699 _iterator.f(); 71700 } 71701 } 71702 }); 71703} 71704 71705function onTrackCreditCardiframe() { 71706 $('body').on('PaymentMethodObserver:AddNode', function (e, data) { 71707 if (data && data.addNode && data.addNode.classList) { 71708 var _iterator2 = _createForOfIteratorHelper(data.addNode.classList), 71709 _step2; 71710 71711 try { 71712 for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { 71713 var className = _step2.value; 71714 71715 if (className === 'sfpp-payment-method-card') { 71716 var container = $(data.target).find('.js-paymentmethodwarning-msgcontainer'); 71717 71718 if (container.length) { 71719 container.attr('data-iframepresent', true); 71720 container.data('iframepresent', true); 71721 $('body').trigger('PaymentMethodObserver:iframePresent'); 71722 data.observer.disconnect(); 71723 } 71724 71725 return; 71726 } 71727 } 71728 } catch (err) { 71729 _iterator2.e(err); 71730 } finally { 71731 _iterator2.f(); 71732 } 71733 } 71734 }); 71735} 71736 71737module.exports = { 71738 methods: { 71739 registerPaymentRequestButtons: registerPaymentRequestButtons 71740 }, 71741 onTrackBuyNowiframe: onTrackBuyNowiframe, 71742 onTrackCreditCardiframe: onTrackCreditCardiframe, 71743 onPaymentRequestButtonRegister: onPaymentRequestButtonRegister 71744}; 71745 71746/***/ }), 71747
71748/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/cybersource/components/miniCart.js": 71749/*!*********************************************************************************************************************************************!*\ 71750 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/cybersource/components/miniCart.js ***! 71751 \*********************************************************************************************************************************************/ 71752/*! no static exports found */ 71753/***/ (function(module, exports, __webpack_require__) { 71754 71755"use strict"; 71756 71757 71758module.exports = { 71759 // AB doesn't want extra buttons on minicart, but enabling this code will allow that 71760 // onCybersourceMiniCartLoaded: function () { 71761 // $('body').on('minicart:loaded', (event, minicart) => { 71762 // var isPaypalEnabled = !!($('#paypal_enabled').length > 0 && document.getElementById('paypal_enabled').value == 'true'); 71763 // var isGooglePayEnabled = !!($('#isGooglePayEnabled').length > 0 && $('#isGooglePayEnabled').val() == 'true'); 71764 // if (isPaypalEnabled) { 71765 // paypalhelper.paypalMini(); 71766 // } 71767 // if (isGooglePayEnabled) { 71768 // onGooglePayLoaded(); 71769 // } 71770 // }); 71771 // }, 71772 onCybersourceMiniCartMouseLeaveFocusOut: function onCybersourceMiniCartMouseLeaveFocusOut() { 71773 $('body').on('minicart:mouseleave_focusout', function (event, minicart) { 71774 if (!($(document).find('.paypal-checkout-sandbox').length > 0)) { 71775 $('.minicart .popover').empty(); 71776 $('.minicart .popover').removeClass('show'); 71777 } 71778 }); 71779 } 71780}; 71781 71782/***/ }), 71783
71784/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/cybersource/paypal.js": 71785/*!********************************************************************************************************************************!*\ 71786 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/cybersource/paypal.js ***! 71787 \********************************************************************************************************************************/ 71788/*! no static exports found */ 71789/***/ (function(module, exports, __webpack_require__) { 71790 71791"use strict"; 71792 //This file is intended for use with the standalone paypal plugin 71793 71794function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } 71795 71796function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } 71797 71798function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } 71799 71800module.exports = { 71801 methods: { 71802 afterPayPalIframe: function afterPayPalIframe(data) { 71803 var container; 71804 71805 if (data && data.target) { 71806 container = $(data.target).find('.js-paymentmethodwarning-msgcontainer'); 71807 } else { 71808 container = $('.js-paypal-checkout.js-paymentmethodwarning-msgcontainer'); 71809 } 71810 71811 if (container) { 71812 container.attr('data-iframepresent', true); 71813 container.data('iframepresent', true); 71814 $('body').trigger('PaymentMethodObserver:iframePresent'); 71815 } 71816 } 71817 }, 71818 detectPayPalIframe: function detectPayPalIframe() { 71819 //can handle running before or after replacement by paypal blob 71820 var paypalIframe = $('.paypal-buttons-context-iframe'); 71821 71822 if (paypalIframe.length === 1) { 71823 module.exports.methods.afterPayPalIframe(); 71824 } else { 71825 $('body').on('PaymentMethodObserver:AddNode', function (e, data) { 71826 if (data && data.addNode && data.addNode.classList) { 71827 var _iterator = _createForOfIteratorHelper(data.addNode.classList), 71828 _step; 71829 71830 try { 71831 for (_iterator.s(); !(_step = _iterator.n()).done;) { 71832 var className = _step.value; 71833 71834 if (className === 'paypal-buttons-context-iframe') { 71835 module.exports.methods.afterPayPalIframe(data); 71836 data.observer.disconnect(); 71837 return; 71838 } 71839 } 71840 } catch (err) { 71841 _iterator.e(err); 71842 } finally { 71843 _iterator.f(); 71844 } 71845 } 71846 }); 71847 } 71848 } 71849}; 71850 71851/***/ }), 71852
71853/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/klaviyo/identify.js": 71854/*!******************************************************************************************************************************!*\ 71855 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/klaviyo/identify.js ***! 71856 \******************************************************************************************************************************/ 71857/*! no static exports found */ 71858/***/ (function(module, exports, __webpack_require__) { 71859 71860"use strict"; 71861 71862/** 71863 * appends params to a url 71864 * @param {string} data - data returned from the server's ajax call 71865 * @param {Object} button - button that was clicked for email sign-up 71866 */ 71867 71868function displayMessage(success, msg) { 71869 var status = success ? 'alert-success' : 'alert-danger'; 71870 71871 if ($('.email-signup-message').length === 0) { 71872 $('body').append('<div class="email-signup-message"></div>'); 71873 } 71874 71875 if (!msg && $('#fallback-fail-msg')) { 71876 var msg = $('#fallback-fail-msg').val(); 71877 } 71878 71879 $('.email-signup-message').append('<div class="email-signup-alert text-center alert ' + status + '">' + msg + '</div>'); 71880 setTimeout(function () { 71881 $('.email-signup-message').remove(); 71882 }, 3000); 71883} 71884 71885module.exports = { 71886 klaviyoPush: function klaviyoPush() { 71887 $('body').on('login:register:success footer:signup:success subscribe:success klaviyoSubscribe:success klaviyoUpdateSubscription:success', function (e, data) { 71888 if (data._learnq) { 71889 // klaviyo integration â identifies user 71890 _learnq.push(['identify', data._learnq]); 71891 } 71892 }); 71893 }, 71894 71895 /** 71896 * Enables user to opt in/opt out of klaviyo email subscriptions in account dashboard 71897 */ 71898 klaviyoUpdateSubscription: function klaviyoUpdateSubscription() { 71899 $('body').on('change', '.account-page .klaviyo-form .klaviyo-subscription', function (e) { 71900 // 71901 // Submit the Klaviyo Subscribe Form 71902 // 71903 var form = $('[name="klaviyoSubscribe"]'); 71904 var subscribe = form.find('#klaviyo-subscription-checkbox'); 71905 var csrf_token = form.find('[name="csrf_token"]').val(); 71906 var email = subscribe.val(); 71907 var isChecked = subscribe.is(':checked'); // CLIENT MOD: Prevent unchecking this box from unsubscribing users (users must unsubscrbe through the email) 71908 71909 if (!isChecked) { 71910 return; 71911 } 71912 71913 var data = { 71914 email: email, 71915 marketingOptIn: isChecked ? true : false, 71916 unsubscribe: isChecked ? false : true, 71917 csrf_token: csrf_token 71918 }; 71919 var queryString = encodeURIComponent(Object.keys(data).map(function (key) { 71920 return key + '=' + data[key]; 71921 }).join('&')); 71922 71923 if (email != null) { 71924 $.ajax({ 71925 url: form.attr('action') + '?' + queryString, 71926 type: 'post', 71927 data: queryString, 71928 contentType: "application/json", 71929 dataType: "json", 71930 success: function success(data) { 71931 // push the checkbox data 71932 $('body').trigger('klaviyoUpdateSubscription:success', data); 71933 displayMessage(data.success, data.msg); 71934 } 71935 }); 71936 } 71937 }); 71938 } 71939}; 71940 71941/***/ }), 71942
71943/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/marketingCloud/account/marketing.js": 71944/*!**********************************************************************************************************************************************!*\ 71945 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/marketingCloud/account/marketing.js ***! 71946 \**********************************************************************************************************************************************/ 71947/*! no static exports found */ 71948/***/ (function(module, exports, __webpack_require__) { 71949 71950"use strict"; 71951 71952/** 71953 * appends params to a url 71954 * @param {string} data - data returned from the server's ajax call 71955 * @param {Object} button - button that was clicked for email subscription 71956 */ 71957 71958function displayMessage(success, msg) { 71959 var status = success ? 'alert-success' : 'alert-danger'; 71960 71961 if ($('.email-signup-message').length === 0) { 71962 $('body').append('<div class="email-signup-message"></div>'); 71963 } 71964 71965 if (!msg && $('#fallback-fail-msg')) { 71966 var msg = $('#fallback-fail-msg').data('msg'); 71967 } 71968 71969 $('.email-signup-message').append('<div class="email-signup-alert text-center alert ' + status + '">' + msg + '</div>'); 71970 setTimeout(function () { 71971 $('.email-signup-message').remove(); 71972 }, 3000); 71973} 71974 71975module.exports = { 71976 /** 71977 * Enables user to opt in/opt out of Marketing Cloud email subscriptions in account dashboard 71978 */ 71979 marketingCloudUpdateSubscription: function marketingCloudUpdateSubscription() { 71980 $('body').on('change', '.account-page .mc-form .email-subscription', function (e) { 71981 var checkbox = $(this); 71982 checkbox.attr('disabled', true); 71983 var form = checkbox.closest('form'); 71984 var url = form.data('action'); 71985 71986 if (!url) { 71987 checkbox.removeAttr('disabled'); 71988 return; 71989 } 71990 71991 var subscriberEmail = checkbox.data('subscriber-email'); 71992 var encodedEmail = encodeURIComponent(subscriberEmail); // Handle email with plus signs 71993 //action: (String Constants) Active|Bounced|Held|Unsubscribed|Deleted 71994 71995 var urlParams = { 71996 partnerKey: null, 71997 objectID: null, 71998 csrf_token: form.find('[name="csrf_token"]').val(), 71999 action: checkbox.is(':checked') ? 'Active' : 'Unsubscribed', 72000 listID: checkbox.data('id'), 72001 listName: checkbox.data('listName'), 72002 email: encodedEmail 72003 }; 72004 var queryString = Object.keys(urlParams).map(function (key) { 72005 return key + '=' + urlParams[key]; 72006 }).join('&'); 72007 $.ajax({ 72008 url: url + '?' + queryString, 72009 type: 'post', 72010 contentType: "application/json", 72011 dataType: "json", 72012 data: queryString, 72013 success: function success(data) { 72014 displayMessage(data.success, data.msg); 72015 checkbox.removeAttr('disabled'); 72016 72017 if (data.error) { 72018 checkbox.prop('checked', false); 72019 } else { 72020 $('body').trigger('marketingCloudUpdateSubscription:success', data); 72021 } 72022 } 72023 }); 72024 }); 72025 }, 72026 marketingCloudUnsubscribeAll: function marketingCloudUnsubscribeAll() { 72027 $('body').on('change', '.account-page #opt_out_all', function (e) { 72028 if ($(this).is(':checked')) { 72029 $('.account-page .mc-form .email-subscription').each(function () { 72030 var checkbox = $(this); 72031 72032 if (checkbox.is(':checked')) { 72033 checkbox.prop('checked', false).change(); 72034 } 72035 }); 72036 } 72037 }); 72038 }, 72039 handleUpdateEmailButton: function handleUpdateEmailButton() { 72040 $('body').on('keyup change', '.account-page .mc-email-input', function (e) { 72041 $('.account-page .mc-update-email-button').removeClass('d-none'); 72042 }); 72043 } 72044}; 72045 72046/***/ }), 72047
72048/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/paypal.js": 72049/*!********************************************************************************************************************!*\ 72050 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/paypal.js ***! 72051 \********************************************************************************************************************/ 72052/*! no static exports found */ 72053/***/ (function(module, exports, __webpack_require__) { 72054 72055"use strict"; 72056 //This file is intended for use with the standalone paypal plugin 72057 72058function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } 72059 72060function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } 72061 72062function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } 72063 72064module.exports = { 72065 methods: { 72066 afterPayPalIframe: function afterPayPalIframe(data) { 72067 var container; 72068 72069 if (data && data.target) { 72070 container = $(data.target).find('.js-paymentmethodwarning-msgcontainer'); 72071 } else { 72072 container = $('.js-paypal-checkout.js-paymentmethodwarning-msgcontainer'); 72073 } 72074 72075 if (container) { 72076 container.attr('data-iframepresent', true); 72077 container.data('iframepresent', true); 72078 $('body').trigger('PaymentMethodObserver:iframePresent'); 72079 } 72080 } 72081 }, 72082 detectPayPalIframe: function detectPayPalIframe() { 72083 //can handle running before or after replacement by paypal blob 72084 var paypalIframe = $('.paypal-buttons-context-iframe'); 72085 72086 if (paypalIframe.length === 1) { 72087 module.exports.methods.afterPayPalIframe(); 72088 } else { 72089 $('body').on('PaymentMethodObserver:AddNode', function (e, data) { 72090 if (data && data.addNode && data.addNode.classList) { 72091 var _iterator = _createForOfIteratorHelper(data.addNode.classList), 72092 _step; 72093 72094 try { 72095 for (_iterator.s(); !(_step = _iterator.n()).done;) { 72096 var className = _step.value; 72097 72098 if (className === 'paypal-buttons-context-iframe') { 72099 module.exports.methods.afterPayPalIframe(data); 72100 data.observer.disconnect(); 72101 return; 72102 } 72103 } 72104 } catch (err) { 72105 _iterator.e(err); 72106 } finally { 72107 _iterator.f(); 72108 } 72109 } 72110 }); 72111 } 72112 } 72113}; 72114 72115/***/ }), 72116
72117/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/siteIntegrationsUtils.js": 72118/*!***********************************************************************************************************************************!*\ 72119 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/siteIntegrationsUtils.js ***! 72120 \***********************************************************************************************************************************/ 72121/*! no static exports found */ 72122/***/ (function(module, exports, __webpack_require__) { 72123 72124"use strict"; 72125 72126/* 72127 * Just have a simple pass through so we can use the site preference integration toggles 72128 * in rvw_integrations_core as well as rvw_autobahn_core 72129 */ 72130 72131var core = __webpack_require__(/*! core/integrations/siteIntegrationsUtils */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/integrations/siteIntegrationsUtils.js"); 72132 72133module.exports = core; 72134 72135/***/ }), 72136
72137/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/subpro/subscriptionOptions.js": 72138/*!****************************************************************************************************************************************!*\ 72139 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/subpro/subscriptionOptions.js ***! 72140 \****************************************************************************************************************************************/ 72141/*! no static exports found */ 72142/***/ (function(module, exports, __webpack_require__) { 72143 72144"use strict"; 72145 72146/** 72147 * Toggle the dropdown list of delivery intervals 72148 * @param {Event} event The event data 72149 * @param {string} $deliveryInterval The delivery interval element 72150 */ 72151 72152function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } 72153 72154function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } 72155 72156function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } 72157 72158function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 72159 72160function toggleDeliveryIntervalDropdown(event, $deliveryInterval) { 72161 var hideDropdown = $(event.currentTarget).val() !== 'regular'; 72162 $deliveryInterval.attr('hidden', hideDropdown); 72163} 72164/** 72165 * Serialize the URL parameters 72166 * @param {Object} obj URL object 72167 * @param {string} prefix Prefix 72168 * @return {string} The serialized parameters 72169 */ 72170 72171 72172function serializeURLParams(obj, prefix) { 72173 var str = []; 72174 var p; 72175 72176 for (p in obj) { 72177 if (obj.hasOwnProperty(p)) { 72178 var k = prefix ? prefix + '[' + p + ']' : p; 72179 var v = obj[p]; 72180 str.push(v !== null && _typeof(v) === 'object' ? serialize(v, k) : encodeURIComponent(k) + '=' + encodeURIComponent(v)); 72181 } 72182 } 72183 72184 return str.join('&'); 72185} 72186/** 72187 * @param {DOMElement} context DOM context to use 72188 */ 72189 72190 72191function showMinimumFrequencyWarning(context) { 72192 $(context).siblings('.error').empty(); 72193 var enteredVal = parseInt($(context).val()); 72194 var minAllowed = parseInt($(context).attr('min')); 72195 72196 if (enteredVal < minAllowed) { 72197 var plural = enteredVal !== 1; 72198 $(context).siblings('.error').append('<p>You have selected to receive this product every ' + enteredVal + ' day' + (plural ? 's' : '') + '. If this is not correct, please update your Auto-Ship frequency.</p>'); 72199 } 72200} 72201 72202var subscriptionOptions = { 72203 cartInit: function cartInit() { 72204 if (!$('body').find('.subpro-options.cart').length) { 72205 return; 72206 } 72207 72208 $('.subpro-options.cart input[name^=subproSubscriptionOptionMode]').off('change').on('change', function (event) { 72209 $(event.currentTarget).parents('.card').spinner().start(); 72210 toggleDeliveryIntervalDropdown(event, $('.subpro-options.cart .delivery-interval-group')); 72211 $('body').trigger('cartOptionsUpdate', { 72212 event: event, 72213 page: 'cart' 72214 }); // page is reloaded upon success in AJAX ajaxUpdateOptions 72215 }); 72216 $('.subpro-options.cart #delivery-interval').off('change').on('change', function (event) { 72217 $(event.currentTarget).parents('.card').spinner().start(); 72218 $('body').trigger('cartOptionsUpdate', { 72219 event: event, 72220 page: 'cart' 72221 }); // page is reloaded upon success in AJAX ajaxUpdateOptions 72222 }); 72223 $('.subpro-options.cart #delivery-periods').off('change').on('change', function (event) { 72224 showMinimumFrequencyWarning(this); 72225 $('body').trigger('cartOptionsUpdate', { 72226 event: event, 72227 page: 'cart' 72228 }); 72229 }); 72230 showMinimumFrequencyWarning($('.subpro-options.cart #delivery-periods')); 72231 var hasScheduledDelivery = false;
72232 var regularDeliveries = $('input[id="regular-delivery"]'); 72233 72234 if (regularDeliveries && regularDeliveries.length) { 72235 var _iterator = _createForOfIteratorHelper(regularDeliveries), 72236 _step; 72237 72238 try { 72239 for (_iterator.s(); !(_step = _iterator.n()).done;) { 72240 var regularDelivery = _step.value; 72241 hasScheduledDelivery = hasScheduledDelivery || regularDelivery.checked; 72242 } 72243 } catch (err) { 72244 _iterator.e(err); 72245 } finally { 72246 _iterator.f(); 72247 } 72248 } 72249 72250 $('body').trigger('PaymentMethodObserver:Show', { 72251 name: 'subpro', 72252 show: hasScheduledDelivery 72253 }); 72254 }, 72255 variantInit: function variantInit() { 72256 if (!$('body').find('.subpro-options.pdp').length) { 72257 return; 72258 } 72259 72260 var options = $('.subpro-options.pdp input[name^=subproSubscriptionOptionMode]:checked'); 72261 72262 for (var i = 0; i < options.length; i++) { 72263 if (options[i].checked) { 72264 $('body').trigger('PaymentMethodObserver:Show', { 72265 name: 'subpro', 72266 show: options[i].value !== 'onetime' 72267 }); 72268 } 72269 72270 var option = $(options[i]); 72271 option.parent().parent().find('.delivery-interval-group').attr('hidden', option.val() !== 'regular'); 72272 } 72273 72274 $('.subpro-options.pdp input[name^=subproSubscriptionOptionMode]').off('change').on('change', function (event) { 72275 toggleDeliveryIntervalDropdown(event, $(event.currentTarget).parent().parent().find('.delivery-interval-group')); 72276 $('body').trigger('pdpOptionsUpdate', { 72277 event: event, 72278 page: 'pdp' 72279 }); 72280 }); 72281 $('.subpro-options.pdp #delivery-interval').off('change').on('change', function (event) { 72282 $('body').trigger('pdpOptionsUpdate', { 72283 event: event, 72284 page: 'pdp' 72285 }); 72286 }); 72287 $('.subpro-options.pdp #delivery-periods').off('change').on('change', function (event) { 72288 showMinimumFrequencyWarning(this); 72289 $('body').trigger('pdpOptionsUpdate', { 72290 event: event, 72291 page: 'pdp' 72292 }); 72293 }); 72294 }, 72295 getOptionsState: function getOptionsState(target, page) { 72296 var parent; 72297 var pliUUID; 72298 72299 if (page !== 'pdp' && page !== 'cart') { 72300 return; 72301 } 72302 72303 parent = target.closest('.subpro-options.' + page); 72304 72305 if (page === 'pdp') { 72306 pliUUID = parent.siblings('input[name=subproSubscriptionProductId]').val(); 72307 } else { 72308 pliUUID = parent.closest('.product-info').find('button.remove-product').data('pid'); 72309 } 72310 72311 return { 72312 pliUUID: pliUUID, 72313 subscriptionMode: parent.find('input[name^=subproSubscriptionOptionMode]:checked').val(), 72314 deliveryInteval: parent.find('#delivery-interval').val(), 72315 deliveryNumPeriods: parent.find('#delivery-periods').val(), 72316 discount: parent.siblings('input[name=subproSubscriptionDiscount]').val(), 72317 isDiscountPercentage: parent.siblings('input[name=subproSubscriptionIsDiscountPercentage]').val() 72318 }; 72319 }, 72320 handleAddToCartSubOptions: function handleAddToCartSubOptions() { 72321 $(document).on('updateAddToCartFormData', function (e, data) { 72322 var subOptions = subscriptionOptions.getOptionsState($(document).find('div.subpro-options.pdp'), 'pdp'); 72323 data.pliUUID = subOptions.pliUUID; 72324 data.subscriptionMode = subOptions.subscriptionMode; 72325 data.deliveryInteval = subOptions.deliveryInteval; 72326 data.deliveryNumPeriods = subOptions.deliveryNumPeriods; 72327 data.discount = subOptions.discount; 72328 data.isDiscountPercentage = subOptions.isDiscountPercentage; 72329 }); 72330 }, 72331 ajaxUpdateOptions: function ajaxUpdateOptions() { 72332 $('body').on('product:afterAttributeSelect', function (e, response) { 72333 $('input[name=subproSubscriptionProductId]').val(response.data.product.id); 72334 }); 72335 $(document).on('pdpOptionsUpdate cartOptionsUpdate', function (e, p) { 72336 _ajaxUpdateOptions($(p.event.currentTarget), p.page); // eslint-disable-line 72337 72338 }); 72339 $(document).on('product:afterAddToCart', function (e, data) { 72340 _ajaxUpdateOptions($(document).find('div.subpro-options.pdp'), 'pdp'); // eslint-disable-line 72341 72342 }); 72343 } 72344}; 72345/** 72346 * Update subscription options via AJAX when they are changed 72347 * @param {string} target DOM target we can use for getting the option state 72348 * @param {string} page The current page (pdp or cart) 72349 */ 72350 72351function _ajaxUpdateOptions(target, page) { 72352 var data = subscriptionOptions.getOptionsState(target, page); 72353 72354 if (page === 'pdp' || data && data.subscriptionMode && data.subscriptionMode !== 'onetime') { 72355 // Run on pdp always and on cart page when subscription is changing to something other than onetime to prevent user quickly clicking applepay button while ajax is in transit 72356 $('body').trigger('PaymentMethodObserver:Show', { 72357 name: 'subpro', 72358 show: data && data.subscriptionMode && data.subscriptionMode !== 'onetime' 72359 }); 72360 } 72361 72362 var queryString = serializeURLParams(data); 72363 $.ajax({ 72364 type: 'POST', 72365 cache: false, 72366 contentType: 'application/json', 72367 url: $('input[name=subproSubscriptionOptionsUrl]').val() + '?' + queryString, 72368 success: function success() { 72369 if (page == 'cart') { 72370 window.location.reload(true); 72371 } 72372 } 72373 }); 72374} 72375 72376module.exports = subscriptionOptions; 72377 72378/***/ }), 72379
vendor: 4,119 bytes, lines 72380-72447
72380/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/main.js": 72381/*!*****************************************************************************************************!*\ 72382 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/main.js ***! 72383 \*****************************************************************************************************/ 72384/*! no static exports found */ 72385/***/ (function(module, exports, __webpack_require__) { 72386 72387function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } 72388 72389function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } 72390 72391function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } 72392 72393var core = __webpack_require__(/*! core/main */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/main.js"); //paymentMethodMutationObserver, onPaymentMethodObserverShow, and onPaymentMethodObserverIframePresent must be before all the integrations that rely on them below to prevent race conditions 72394 72395 72396core.baseFiles.paymentMethodMutationObserver = function paymentMethodMutationObserver() { 72397 var targets = $('.js-paymentmethod-mutationobserver'); 72398 72399 if (targets && targets.length) { 72400 var _iterator = _createForOfIteratorHelper(targets), 72401 _step; 72402 72403 try { 72404 var _loop = function _loop() { 72405 var target = _step.value; 72406 config = { 72407 subtree: true, 72408 childList: true 72409 }; 72410 mutationObserver = new MutationObserver(function (mutationList, observer) { 72411 var _iterator2 = _createForOfIteratorHelper(mutationList), 72412 _step2; 72413 72414 try { 72415 for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { 72416 var mutationRecord = _step2.value; 72417 72418 if (mutationRecord.addedNodes) { 72419 var _iterator3 = _createForOfIteratorHelper(mutationRecord.addedNodes), 72420 _step3; 72421 72422 try { 72423 for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { 72424 var addNode = _step3.value; 72425 $('body').trigger('PaymentMethodObserver:AddNode', { 72426 addNode: addNode, 72427 target: target, 72428 observer: observer 72429 }); 72430 } 72431 } catch (err) { 72432 _iterator3.e(err); 72433 } finally { 72434 _iterator3.f(); 72435 } 72436 } 72437 } 72438 } catch (err) { 72439 _iterator2.e(err); 72440 } finally { 72441 _iterator2.f(); 72442 } 72443 }); 72444 mutationObserver.observe(target, config); 72445 }; 72446 72447 for (_iterator.s();
72447 !(_step = _iterator.n()).done;) { 72448 var config; 72449 var mutationObserver; 72450 72451 _loop(); 72452 } 72453 } catch (err) { 72454 _iterator.e(err); 72455 } finally { 72456 _iterator.f(); 72457 } 72458 } 72459}; 72460 72461core.baseFiles.onPaymentMethodObserverShow = function onPaymentMethodObserverShow() { 72462 $('body').on('PaymentMethodObserver:Show', function (e, data) { 72463 var targets = $('.js-paymentmethodwarning-msgcontainer'); 72464 72465 if (targets && targets.length) { 72466 var _iterator4 = _createForOfIteratorHelper(targets), 72467 _step4; 72468 72469 try { 72470 for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { 72471 var target = _step4.value; 72472 target = $(target); 72473 72474 if (data && data.name) { 72475 target.data(data.name + '_show', data.show); 72476 target.attr('data-' + data.name + '_show', data.show); 72477 } 72478 72479 if (target.data('iframepresent') === true) { 72480 var dataNames = []; 72481 var attrs = target.data(); 72482 72483 for (var _i = 0, _Object$keys = Object.keys(attrs); _i < _Object$keys.length; _i++) { 72484 var attr = _Object$keys[_i]; 72485 var splits = attr.split('_'); 72486 72487 if (splits.length === 2) { 72488 if (attrs[attr] === true && splits[1] === 'show') { 72489 dataNames.push(splits[0]); 72490 } 72491 } 72492 } 72493 72494 var newMsg = ''; 72495 var disable = false; 72496 72497 for (var _i2 = 0, _dataNames = dataNames; _i2 < _dataNames.length; _i2++) { 72498 var dataName = _dataNames[_i2]; 72499 72500 if (target.data(dataName + '_disable') === true) { 72501 disable = true; 72502 newMsg = '<p>' + target.data(dataName + '_msg') + '</p>'; 72503 break; 72504 } 72505 72506 if (target.data(dataName + '_msg')) { 72507 newMsg += '<p>' + target.data(dataName + '_msg') + '</p>'; 72508 } 72509 } 72510 72511 if (newMsg.length) { 72512 target.removeClass('d-none'); 72513 } else { 72514 target.addClass('d-none'); 72515 } 72516 72517 if (disable) { 72518 target.siblings('.js-paymentmethodwarning-affectedcontainer').attr('disabled', true); 72519 } else { 72520 target.siblings('.js-paymentmethodwarning-affectedcontainer').removeAttr('disabled'); 72521 } 72522 72523 target.html(newMsg); 72524 } 72525 } 72526 } catch (err) { 72527 _iterator4.e(err); 72528 } finally { 72529 _iterator4.f(); 72530 } 72531 } 72532 }); 72533}; 72534 72535core.baseFiles.onPaymentMethodObserverIframePresent = function onPaymentMethodObserverIframePresent() { 72536 $('body').on('PaymentMethodObserver:iframePresent', function () { 72537 $('body').trigger('PaymentMethodObserver:Show'); 72538 }); 72539}; 72540 72541core.baseFiles.base = __webpack_require__(/*! ./product/base */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/product/base.js"); 72542core.baseFiles.cart = __webpack_require__(/*! ./cart */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/cart.js"); 72543 72544var siteIntegrations = __webpack_require__(/*! ./integrations/siteIntegrationsUtils */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/siteIntegrationsUtils.js"); 72545 72546var toggleObject = siteIntegrations.getIntegrationSettings(); 72547 72548if (toggleObject.bopisCartridgeEnabled) { 72549 // adding to main.js to make accessible for quickview 72550 core.baseFiles.pdpInstoreInventory = __webpack_require__(/*! ./integrations/bopis/product/pdpInstoreInventory */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/bopis/product/pdpInstoreInventory.js"); 72551} 72552 72553if (toggleObject.sfcommercepaymentsCartridgeEnabled) { 72554 core.baseFiles.sfcppayment = __webpack_require__(/*! ./integrations/commercepayments/components/payment */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/commercepayments/components/payment.js"); 72555} 72556 72557if (toggleObject.klaviyo_enabled) { 72558 core.baseFiles.klaviyo = __webpack_require__(/*! ./integrations/klaviyo/identify */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/klaviyo/identify.js"); 72559} 72560 72561if (toggleObject.MarketingCloudForNewsletterEnabled) { 72562 core.baseFiles.marketing = __webpack_require__(/*! ./integrations/marketingCloud/account/marketing */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/marketingCloud/account/marketing.js"); 72563} 72564 72565module.exports = core; 72566 72567/***/ }), 72568
72569/***/ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/product/base.js": 72570/*!*************************************************************************************************************!*\ 72571 !*** ../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/product/base.js ***! 72572 \*************************************************************************************************************/ 72573/*! no static exports found */ 72574/***/ (function(module, exports, __webpack_require__) { 72575 72576"use strict"; 72577 // Grab the base in autobahn_core 72578 72579var baseCore = __webpack_require__(/*! core/product/base */ "../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/base.js"); // grab the stuff from bopis 72580 72581 72582var detailBopis = __webpack_require__(/*! ../integrations/bopis/product/detail */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/bopis/product/detail.js"); // grab the site pref integration object 72583 72584 72585var siteIntegrations = __webpack_require__(/*! ../integrations/siteIntegrationsUtils */ "../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/siteIntegrationsUtils.js"); 72586 72587var toggleObject = siteIntegrations.getIntegrationSettings(); 72588var exportDetails = {}; 72589 72590if (toggleObject.bopisCartridgeEnabled) { 72591 exportDetails = $.extend({}, baseCore, { 72592 availability: detailBopis.availability 72593 }); 72594} else { 72595 // we aren't modifying baseCore 72596 exportDetails = baseCore; 72597} 72598 72599module.exports = exportDetails; 72600 72601/***/ }), 72602
72603/***/ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/clientSideValidation.js": 72604/*!******************************************************************************************************************************************!*\ 72605 !*** ../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/clientSideValidation.js ***! 72606 \******************************************************************************************************************************************/ 72607/*! no static exports found */ 72608/***/ (function(module, exports, __webpack_require__) { 72609 72610"use strict"; 72611 72612/** 72613 * Validate whole form. Requires `this` to be set to form object 72614 * @param {jQuery.event} event - Event to be canceled if form is invalid. 72615 * @returns {boolean} - Flag to indicate if form is valid 72616 */ 72617 72618function _validateForm(event) { 72619 var valid = true; 72620 72621 if (this.checkValidity && !this.checkValidity()) { 72622 // safari 72623 valid = false; 72624 72625 if (event) { 72626 event.preventDefault(); 72627 event.stopPropagation(); 72628 event.stopImmediatePropagation(); 72629 } 72630 72631 $(this).find('input, select').each(function () { 72632 if (!this.validity.valid) { 72633 $(this).trigger('invalid', this.validity); 72634 } 72635 }); 72636 } 72637 72638 return valid; 72639} 72640/** 72641 * Remove all validation. Should be called every time before revalidating form 72642 * @param {element} form - Form to be cleared 72643 * @returns {void} 72644 */ 72645 72646 72647function clearForm(form) { 72648 $(form).find('.form-control.is-invalid').removeClass('is-invalid'); 72649} 72650 72651module.exports = {
72652 invalid: function invalid() { 72653 $('form input, form select').on('invalid', function (e) { 72654 e.preventDefault(); 72655 this.setCustomValidity(''); 72656 72657 if (!this.validity.valid) { 72658 var validationMessage = this.validationMessage; 72659 $(this).addClass('is-invalid'); 72660 72661 if (this.validity.patternMismatch && $(this).data('pattern-mismatch')) { 72662 validationMessage = $(this).data('pattern-mismatch'); 72663 } 72664 72665 if ((this.validity.rangeOverflow || this.validity.rangeUnderflow) && $(this).data('range-error')) { 72666 validationMessage = $(this).data('range-error'); 72667 } 72668 72669 if ((this.validity.tooLong || this.validity.tooShort) && $(this).data('range-error')) { 72670 validationMessage = $(this).data('range-error'); 72671 } 72672 72673 if (this.validity.valueMissing && $(this).data('missing-error')) { 72674 validationMessage = $(this).data('missing-error'); 72675 } 72676 72677 $(this).parents('.form-group').find('.invalid-feedback').text(validationMessage); 72678 } 72679 }); 72680 }, 72681 submit: function submit() { 72682 $('form').on('submit', function (e) { 72683 return _validateForm.call(this, e); 72684 }); 72685 }, 72686 buttonClick: function buttonClick() { 72687 $('form button[type="submit"], form input[type="submit"]').on('click', function () { 72688 // clear all errors when trying to submit the form 72689 clearForm($(this).parents('form')); 72690 }); 72691 }, 72692 functions: { 72693 validateForm: function validateForm(form, event) { 72694 _validateForm.call($(form), event || null); 72695 }, 72696 clearForm: clearForm 72697 } 72698}; 72699 72700/***/ }), 72701
72702/***/ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/cookie.js": 72703/*!****************************************************************************************************************************!*\ 72704 !*** ../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/cookie.js ***! 72705 \****************************************************************************************************************************/ 72706/*! no static exports found */ 72707/***/ (function(module, exports, __webpack_require__) { 72708 72709"use strict"; 72710 72711/** 72712 * Get cookie value by cookie name from browser 72713 * @param {string} cookieName - name of the cookie 72714 * @returns {string} cookie value of the found cookie name 72715 */ 72716 72717function getCookie(cookieName) { 72718 var name = cookieName + '='; 72719 var decodedCookie = decodeURIComponent(document.cookie); 72720 var cookieArray = decodedCookie.split(';'); 72721 72722 for (var i = 0; i < cookieArray.length; i++) { 72723 var cookieItem = cookieArray[i]; 72724 72725 while (cookieItem.charAt(0) === ' ') { 72726 cookieItem = cookieItem.substring(1); 72727 } 72728 72729 if (cookieItem.indexOf(name) === 0) { 72730 return cookieItem.substring(name.length, cookieItem.length); 72731 } 72732 } 72733 72734 return ''; 72735} 72736 72737module.exports = function () { 72738 if ($('.valid-cookie-warning').length > 0) { 72739 var previousSessionID = window.localStorage.getItem('previousSid'); 72740 var currentSessionID = getCookie('sid'); 72741 72742 if (!previousSessionID && currentSessionID) { 72743 // When a user first time visit the home page, 72744 // set the previousSessionID to currentSessionID 72745 // and Show the cookie alert 72746 previousSessionID = currentSessionID; 72747 window.localStorage.setItem('previousSid', previousSessionID); 72748 $('.cookie-warning-messaging').show(); 72749 } else if (previousSessionID && previousSessionID === currentSessionID) { 72750 // Hide the cookie alert if user is in the same session 72751 $('.cookie-warning-messaging').hide(); 72752 } else { 72753 // Clear the previousSessionID from localStorage 72754 // when user session is changed or expired 72755 window.localStorage.removeItem('previousSid'); 72756 } 72757 } 72758}; 72759 72760/***/ }), 72761
72762/***/ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/countrySelector.js": 72763/*!*************************************************************************************************************************************!*\ 72764 !*** ../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/countrySelector.js ***! 72765 \*************************************************************************************************************************************/ 72766/*! no static exports found */ 72767/***/ (function(module, exports, __webpack_require__) { 72768 72769"use strict"; 72770 72771 72772var keyboardAccessibility = __webpack_require__(/*! ./keyboardAccessibility */ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/keyboardAccessibility.js"); 72773 72774module.exports = function () { 72775 $('.country-selector a').click(function (e) { 72776 e.preventDefault(); 72777 var action = $('.page').data('action'); 72778 var localeCode = $(this).data('locale'); 72779 var localeCurrencyCode = $(this).data('currencycode'); 72780 var queryString = $('.page').data('querystring'); 72781 var url = $('.country-selector').data('url'); 72782 $.ajax({ 72783 url: url, 72784 type: 'get', 72785 dataType: 'json', 72786 data: { 72787 code: localeCode, 72788 queryString: queryString, 72789 CurrencyCode: localeCurrencyCode, 72790 action: action 72791 }, 72792 success: function success(response) { 72793 $.spinner().stop(); 72794 72795 if (response && response.redirectUrl) { 72796 window.location.href = response.redirectUrl; 72797 } 72798 }, 72799 error: function error() { 72800 $.spinner().stop(); 72801 } 72802 }); 72803 }); 72804 keyboardAccessibility('.navbar-header .country-selector', { 72805 40: function _($countryOptions) { 72806 // down 72807 if ($(this).is(':focus')) { 72808 $countryOptions.first().focus(); 72809 } else { 72810 $(':focus').next().focus(); 72811 } 72812 }, 72813 38: function _($countryOptions) { 72814 // up 72815 if ($countryOptions.first().is(':focus') || $(this).is(':focus')) { 72816 $(this).focus(); 72817 $(this).removeClass('show'); 72818 } else { 72819 $(':focus').prev().focus(); 72820 } 72821 }, 72822 27: function _() { 72823 // escape 72824 $(this).focus(); 72825 $(this).removeClass('show').children('.dropdown-menu').removeClass('show'); 72826 }, 72827 9: function _() { 72828 // tab 72829 $(this).removeClass('show').children('.dropdown-menu').removeClass('show'); 72830 } 72831 }, function () { 72832 if (!$(this).hasClass('show')) { 72833 $(this).addClass('show'); 72834 } 72835 72836 return $(this).find('.dropdown-country-selector').children('a'); 72837 }); 72838 $('.navbar-header .country-selector').on('focusin', function () { 72839 $(this).addClass('show').children('.dropdown-menu').addClass('show'); 72840 }); 72841}; 72842 72843/***/ }), 72844
72845/***/ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/errorNotification.js": 72846/*!***************************************************************************************************************************************!*\ 72847 !*** ../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/errorNotification.js ***! 72848 \***************************************************************************************************************************************/ 72849/*! no static exports found */ 72850/***/ (function(module, exports, __webpack_require__) { 72851 72852"use strict"; 72853 72854 72855module.exports = function (element, message) { 72856 var errorHtml = '<div class="alert alert-danger alert-dismissible ' + 'fade show" role="alert">' + '<button type="button" class="close" data-dismiss="alert" aria-label="Close">' + '<span aria-hidden="true">×</span>' + '</button>' + message + '</div>'; 72857 $(element).append(errorHtml); 72858}; 72859 72860/***/ }), 72861
72862/***/ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/focus.js": 72863/*!***************************************************************************************************************************!*\ 72864 !*** ../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/focus.js ***! 72865 \***************************************************************************************************************************/ 72866/*! no static exports found */ 72867/***/ (function(module, exports, __webpack_require__) { 72868 72869"use strict"; 72870 72871 72872module.exports = { 72873 setTabNextFocus: function setTabNextFocus(focusParams) { 72874 var KEYCODE_TAB = 9; 72875 var isTabPressed = focusParams.event.key === 'Tab' || focusParams.event.keyCode === KEYCODE_TAB; 72876 72877 if (!isTabPressed) { 72878 return; 72879 } 72880 72881 var firstFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.firstElementSelector); 72882 var lastFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.lastElementSelector); 72883 72884 if ($(focusParams.containerSelector + ' ' + focusParams.lastElementSelector).is(':disabled')) { 72885 lastFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.nextToLastElementSelector); 72886 72887 if ($('.product-quickview.product-set').length > 0) { 72888 var linkElements = $(focusParams.containerSelector + ' a#fa-link.share-icons'); 72889 lastFocusableEl = linkElements[linkElements.length - 1]; 72890 } 72891 } 72892 72893 if (focusParams.event.shiftKey) 72894 /* shift + tab */ 72895 { 72896 if ($(':focus').is(firstFocusableEl)) {
72897 lastFocusableEl.focus(); 72898 focusParams.event.preventDefault(); 72899 } 72900 } else 72901 /* tab */ 72902 { 72903 if ($(':focus').is(lastFocusableEl)) { 72904 // eslint-disable-line 72905 firstFocusableEl.focus(); 72906 focusParams.event.preventDefault(); 72907 } 72908 } 72909 } 72910}; 72911 72912/***/ }), 72913
72914/***/ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/formValidation.js": 72915/*!************************************************************************************************************************************!*\ 72916 !*** ../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/formValidation.js ***! 72917 \************************************************************************************************************************************/ 72918/*! no static exports found */ 72919/***/ (function(module, exports, __webpack_require__) { 72920 72921"use strict"; 72922 72923/** 72924 * Remove all validation. Should be called every time before revalidating form 72925 * @param {element} form - Form to be cleared 72926 * @returns {void} 72927 */ 72928 72929function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 72930 72931function clearFormErrors(form) { 72932 $(form).find('.form-control.is-invalid').removeClass('is-invalid'); 72933} 72934 72935module.exports = function (formElement, payload) { 72936 // clear form validation first 72937 clearFormErrors(formElement); 72938 $('.alert', formElement).remove(); 72939 72940 if (_typeof(payload) === 'object' && payload.fields) { 72941 Object.keys(payload.fields).forEach(function (key) { 72942 if (payload.fields[key]) { 72943 var feedbackElement = $(formElement).find('[name="' + key + '"]').parent().children('.invalid-feedback'); 72944 72945 if (feedbackElement.length > 0) { 72946 if (Array.isArray(payload[key])) { 72947 feedbackElement.html(payload.fields[key].join('<br/>')); 72948 } else { 72949 feedbackElement.html(payload.fields[key]); 72950 } 72951 72952 feedbackElement.siblings('.form-control').addClass('is-invalid'); 72953 } 72954 } 72955 }); 72956 } 72957 72958 if (payload && payload.error) { 72959 var form = $(formElement).prop('tagName') === 'FORM' ? $(formElement) : $(formElement).parents('form'); 72960 form.prepend('<div class="alert alert-danger" role="alert">' + payload.error.join('<br/>') + '</div>'); 72961 } 72962}; 72963 72964/***/ }), 72965
72966/***/ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/keyboardAccessibility.js": 72967/*!*******************************************************************************************************************************************!*\ 72968 !*** ../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/keyboardAccessibility.js ***! 72969 \*******************************************************************************************************************************************/ 72970/*! no static exports found */ 72971/***/ (function(module, exports, __webpack_require__) { 72972 72973"use strict"; 72974 72975 72976module.exports = function (selector, keyFunctions, preFunction) { 72977 $(selector).on('keydown', function (e) { 72978 var key = e.which; 72979 var supportedKeyCodes = [37, 38, 39, 40, 27]; 72980 72981 if (supportedKeyCodes.indexOf(key) >= 0) { 72982 e.preventDefault(); 72983 } 72984 72985 var returnedScope = preFunction.call(this); 72986 72987 if (keyFunctions[key]) { 72988 keyFunctions[key].call(this, returnedScope); 72989 } 72990 }); 72991}; 72992 72993/***/ }), 72994
72995/***/ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/spinner.js": 72996/*!*****************************************************************************************************************************!*\ 72997 !*** ../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/spinner.js ***! 72998 \*****************************************************************************************************************************/ 72999/*! no static exports found */ 73000/***/ (function(module, exports, __webpack_require__) { 73001 73002"use strict"; 73003 73004/** 73005 * Show a spinner inside a given element 73006 * @param {element} $target - Element to block by the veil and spinner. 73007 * Pass body to block the whole page. 73008 */ 73009 73010function addSpinner($target) { 73011 var $veil = $('<div class="veil"><div class="underlay"></div></div>'); 73012 $veil.append('<div class="spinner"><div class="dot1"></div><div class="dot2"></div></div>'); 73013 73014 if ($target.get(0).tagName === 'IMG') { 73015 $target.after($veil); 73016 $veil.css({ 73017 width: $target.width(), 73018 height: $target.height() 73019 }); 73020 73021 if ($target.parent().css('position') === 'static') { 73022 $target.parent().css('position', 'relative'); 73023 } 73024 } else { 73025 $target.append($veil); 73026 73027 if ($target.css('position') === 'static') { 73028 $target.parent().css('position', 'relative'); 73029 $target.parent().addClass('veiled'); 73030 } 73031 73032 if ($target.get(0).tagName === 'BODY') { 73033 $veil.find('.spinner').css('position', 'fixed'); 73034 } 73035 } 73036 73037 $veil.click(function (e) { 73038 e.stopPropagation(); 73039 }); 73040} 73041/** 73042 * Remove existing spinner 73043 * @param {element} $veil - jQuery pointer to the veil element 73044 */ 73045 73046 73047function removeSpinner($veil) { 73048 if ($veil.parent().hasClass('veiled')) { 73049 $veil.parent().css('position', ''); 73050 $veil.parent().removeClass('veiled'); 73051 } 73052 73053 $veil.off('click'); 73054 $veil.remove(); 73055} // element level spinner: 73056 73057 73058$.fn.spinner = function () { 73059 var $element = $(this); 73060 73061 var Fn = function Fn() { 73062 this.start = function () { 73063 if ($element.length) { 73064 addSpinner($element); 73065 } 73066 }; 73067 73068 this.stop = function () { 73069 if ($element.length) { 73070 var $veil = $('.veil'); 73071 removeSpinner($veil); 73072 } 73073 }; 73074 }; 73075 73076 return new Fn(); 73077}; // page-level spinner: 73078 73079 73080$.spinner = function () { 73081 var Fn = function Fn() { 73082 this.start = function () { 73083 addSpinner($('body')); 73084 }; 73085 73086 this.stop = function () { 73087 removeSpinner($('.veil')); 73088 }; 73089 }; 73090 73091 return new Fn(); 73092}; 73093 73094/***/ }), 73095
73096/***/ "../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js": 73097/*!***************************************************************************************************************!*\ 73098 !*** ../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js ***! 73099 \***************************************************************************************************************/ 73100/*! no static exports found */ 73101/***/ (function(module, exports, __webpack_require__) { 73102 73103"use strict"; 73104 73105 73106function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 73107 73108module.exports = function (include) { 73109 if (typeof include === 'function') { 73110 include.call(this); 73111 } else if (_typeof(include) === 'object') { 73112 Object.keys(include).forEach(function (key) { 73113 if (typeof include[key] === 'function') { 73114 include[key].call(include); 73115 } 73116 }); 73117 } 73118}; 73119 73120/***/ }), 73121
vendor: 4,207 bytes, lines 73122-73251
73122/***/ "../storefront-reference-architecture/node_modules/base64-js/index.js": 73123/*!****************************************************************************!*\ 73124 !*** ../storefront-reference-architecture/node_modules/base64-js/index.js ***! 73125 \****************************************************************************/ 73126/*! no static exports found */ 73127/***/ (function(module, exports, __webpack_require__) { 73128 73129"use strict"; 73130 73131 73132exports.byteLength = byteLength; 73133exports.toByteArray = toByteArray; 73134exports.fromByteArray = fromByteArray; 73135var lookup = []; 73136var revLookup = []; 73137var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array; 73138var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; 73139 73140for (var i = 0, len = code.length; i < len; ++i) { 73141 lookup[i] = code[i]; 73142 revLookup[code.charCodeAt(i)] = i; 73143} // Support decoding URL-safe base64 strings, as Node.js does. 73144// See: https://en.wikipedia.org/wiki/Base64#URL_applications 73145 73146 73147revLookup['-'.charCodeAt(0)] = 62; 73148revLookup['_'.charCodeAt(0)] = 63; 73149 73150function getLens(b64) { 73151 var len = b64.length; 73152 73153 if (len % 4 > 0) { 73154 throw new Error('Invalid string. Length must be a multiple of 4'); 73155 } // Trim off extra bytes after placeholder bytes are found 73156 // See: https://github.com/beatgammit/base64-js/issues/42 73157 73158 73159 var validLen = b64.indexOf('='); 73160 if (validLen === -1) validLen = len; 73161 var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4; 73162 return [validLen, placeHoldersLen]; 73163} // base64 is 4/3 + up to two characters of the original data 73164 73165 73166function byteLength(b64) { 73167 var lens = getLens(b64); 73168 var validLen = lens[0]; 73169 var placeHoldersLen = lens[1]; 73170 return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; 73171} 73172 73173function _byteLength(b64, validLen, placeHoldersLen) { 73174 return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; 73175} 73176 73177function toByteArray(b64) { 73178 var tmp; 73179 var lens = getLens(b64); 73180 var validLen = lens[0]; 73181 var placeHoldersLen = lens[1]; 73182 var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); 73183 var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars 73184 73185 var len = placeHoldersLen > 0 ? validLen - 4 : validLen; 73186 var i; 73187 73188 for (i = 0; i < len; i += 4) { 73189 tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)]; 73190 arr[curByte++] = tmp >> 16 & 0xFF; 73191 arr[curByte++] = tmp >> 8 & 0xFF; 73192 arr[curByte++] = tmp & 0xFF; 73193 } 73194 73195 if (placeHoldersLen === 2) { 73196 tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4; 73197 arr[curByte++] = tmp & 0xFF; 73198 } 73199 73200 if (placeHoldersLen === 1) { 73201 tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2; 73202 arr[curByte++] = tmp >> 8 & 0xFF; 73203 arr[curByte++] = tmp & 0xFF; 73204 } 73205 73206 return arr; 73207} 73208 73209function tripletToBase64(num) { 73210 return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]; 73211} 73212 73213function encodeChunk(uint8, start, end) { 73214 var tmp; 73215 var output = []; 73216 73217 for (var i = start; i < end; i += 3) { 73218 tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF); 73219 output.push(tripletToBase64(tmp)); 73220 } 73221 73222 return output.join(''); 73223} 73224 73225function fromByteArray(uint8) { 73226 var tmp; 73227 var len = uint8.length; 73228 var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes 73229 73230 var parts = []; 73231 var maxChunkLength = 16383; // must be multiple of 3 73232 // go through the array every three bytes, we'll deal with trailing stuff later 73233 73234 for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { 73235 parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength)); 73236 } // pad the end with zeros, but make sure to not forget the extra bytes 73237 73238 73239 if (extraBytes === 1) { 73240 tmp = uint8[len - 1]; 73241 parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '=='); 73242 } else if (extraBytes === 2) { 73243 tmp = (uint8[len - 2] << 8) + uint8[len - 1]; 73244 parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '='); 73245 } 73246 73247 return parts.join(''); 73248} 73249 73250/***/ }), 73251
vendor: 6,953 bytes, lines 73252-73451
73252/***/ "../storefront-reference-architecture/node_modules/bootstrap/js/src/alert.js": 73253/*!***********************************************************************************!*\ 73254 !*** ../storefront-reference-architecture/node_modules/bootstrap/js/src/alert.js ***! 73255 \***********************************************************************************/ 73256/*! exports provided: default */ 73257/***/ (function(module, __webpack_exports__, __webpack_require__) { 73258 73259"use strict"; 73260__webpack_require__.r(__webpack_exports__); 73261/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js"); 73262/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 73263/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/util.js"); 73264function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 73265 73266function _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); } } 73267 73268function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 73269 73270/** 73271 * -------------------------------------------------------------------------- 73272 * Bootstrap (v4.3.1): alert.js 73273 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 73274 * -------------------------------------------------------------------------- 73275 */ 73276 73277 73278/** 73279 * ------------------------------------------------------------------------ 73280 * Constants 73281 * ------------------------------------------------------------------------ 73282 */ 73283 73284var NAME = 'alert'; 73285var VERSION = '4.3.1'; 73286var DATA_KEY = 'bs.alert'; 73287var EVENT_KEY = ".".concat(DATA_KEY); 73288var DATA_API_KEY = '.data-api'; 73289var JQUERY_NO_CONFLICT = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME]; 73290var Selector = { 73291 DISMISS: '[data-dismiss="alert"]' 73292}; 73293var Event = { 73294 CLOSE: "close".concat(EVENT_KEY), 73295 CLOSED: "closed".concat(EVENT_KEY), 73296 CLICK_DATA_API: "click".concat(EVENT_KEY).concat(DATA_API_KEY) 73297}; 73298var ClassName = { 73299 ALERT: 'alert', 73300 FADE: 'fade', 73301 SHOW: 'show' 73302}; 73303/** 73304 * ------------------------------------------------------------------------ 73305 * Class Definition 73306 * ------------------------------------------------------------------------ 73307 */ 73308 73309var Alert = /*#__PURE__*/function () { 73310 function Alert(element) { 73311 _classCallCheck(this, Alert); 73312 73313 this._element = element; 73314 } // Getters 73315 73316 73317 _createClass(Alert, [{ 73318 key: "close", 73319 value: // Public 73320 function close(element) { 73321 var rootElement = this._element; 73322 73323 if (element) { 73324 rootElement = this._getRootElement(element); 73325 } 73326 73327 var customEvent = this._triggerCloseEvent(rootElement); 73328 73329 if (customEvent.isDefaultPrevented()) { 73330 return; 73331 } 73332 73333 this._removeElement(rootElement); 73334 } 73335 }, { 73336 key: "dispose", 73337 value: function dispose() { 73338 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.removeData(this._element, DATA_KEY); 73339 this._element = null; 73340 } // Private 73341 73342 }, { 73343 key: "_getRootElement", 73344 value: function _getRootElement(element) { 73345 var selector = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getSelectorFromElement(element); 73346 var parent = false; 73347 73348 if (selector) { 73349 parent = document.querySelector(selector); 73350 } 73351 73352 if (!parent) { 73353 parent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).closest(".".concat(ClassName.ALERT))[0]; 73354 } 73355 73356 return parent; 73357 } 73358 }, { 73359 key: "_triggerCloseEvent", 73360 value: function _triggerCloseEvent(element) { 73361 var closeEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.CLOSE); 73362 jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).trigger(closeEvent); 73363 return closeEvent; 73364 } 73365 }, { 73366 key: "_removeElement", 73367 value: function _removeElement(element) { 73368 var _this = this; 73369 73370 jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).removeClass(ClassName.SHOW); 73371 73372 if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).hasClass(ClassName.FADE)) { 73373 this._destroyElement(element); 73374 73375 return; 73376 } 73377 73378 var transitionDuration = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getTransitionDurationFromElement(element); 73379 jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).one(_util__WEBPACK_IMPORTED_MODULE_1__["default"].TRANSITION_END, function (event) { 73380 return _this._destroyElement(element, event); 73381 }).emulateTransitionEnd(transitionDuration); 73382 } 73383 }, { 73384 key: "_destroyElement", 73385 value: function _destroyElement(element) { 73386 jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).detach().trigger(Event.CLOSED).remove(); 73387 } // Static 73388 73389 }], [{ 73390 key: "VERSION", 73391 get: function get() { 73392 return VERSION; 73393 } 73394 }, { 73395 key: "_jQueryInterface", 73396 value: function _jQueryInterface(config) { 73397 return this.each(function () { 73398 var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this); 73399 var data = $element.data(DATA_KEY); 73400 73401 if (!data) { 73402 data = new Alert(this); 73403 $element.data(DATA_KEY, data); 73404 } 73405 73406 if (config === 'close') { 73407 data[config](this); 73408 } 73409 }); 73410 } 73411 }, { 73412 key: "_handleDismiss", 73413 value: function _handleDismiss(alertInstance) { 73414 return function (event) { 73415 if (event) { 73416 event.preventDefault(); 73417 } 73418 73419 alertInstance.close(this); 73420 }; 73421 } 73422 }]); 73423 73424 return Alert; 73425}(); 73426/** 73427 * ------------------------------------------------------------------------ 73428 * Data Api implementation 73429 * ------------------------------------------------------------------------ 73430 */ 73431 73432 73433jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert())); 73434/** 73435 * ------------------------------------------------------------------------ 73436 * jQuery 73437 * ------------------------------------------------------------------------ 73438 */ 73439 73440jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = Alert._jQueryInterface; 73441jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].Constructor = Alert; 73442 73443jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].noConflict = function () { 73444 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = JQUERY_NO_CONFLICT; 73445 return Alert._jQueryInterface; 73446}; 73447 73448/* harmony default export */ __webpack_exports__["default"] = (Alert); 73449 73450/***/ }), 73451
vendor: 23,943 bytes, lines 73452-74105
73452/***/ "../storefront-reference-architecture/node_modules/bootstrap/js/src/carousel.js": 73453/*!**************************************************************************************!*\ 73454 !*** ../storefront-reference-architecture/node_modules/bootstrap/js/src/carousel.js ***! 73455 \**************************************************************************************/ 73456/*! exports provided: default */ 73457/***/ (function(module, __webpack_exports__, __webpack_require__) { 73458 73459"use strict"; 73460__webpack_require__.r(__webpack_exports__); 73461/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js"); 73462/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 73463/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/util.js"); 73464function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 73465 73466function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } 73467 73468function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 73469 73470function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 73471 73472function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 73473 73474function _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); } } 73475 73476function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 73477 73478/** 73479 * -------------------------------------------------------------------------- 73480 * Bootstrap (v4.3.1): carousel.js 73481 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 73482 * -------------------------------------------------------------------------- 73483 */ 73484 73485 73486/** 73487 * ------------------------------------------------------------------------ 73488 * Constants 73489 * ------------------------------------------------------------------------ 73490 */ 73491 73492var NAME = 'carousel'; 73493var VERSION = '4.3.1'; 73494var DATA_KEY = 'bs.carousel'; 73495var EVENT_KEY = ".".concat(DATA_KEY); 73496var DATA_API_KEY = '.data-api'; 73497var JQUERY_NO_CONFLICT = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME]; 73498var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key 73499 73500var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key 73501 73502var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch 73503 73504var SWIPE_THRESHOLD = 40; 73505var Default = { 73506 interval: 5000, 73507 keyboard: true, 73508 slide: false, 73509 pause: 'hover', 73510 wrap: true, 73511 touch: true 73512}; 73513var DefaultType = { 73514 interval: '(number|boolean)', 73515 keyboard: 'boolean', 73516 slide: '(boolean|string)', 73517 pause: '(string|boolean)', 73518 wrap: 'boolean', 73519 touch: 'boolean' 73520}; 73521var Direction = { 73522 NEXT: 'next', 73523 PREV: 'prev', 73524 LEFT: 'left', 73525 RIGHT: 'right' 73526}; 73527var Event = { 73528 SLIDE: "slide".concat(EVENT_KEY), 73529 SLID: "slid".concat(EVENT_KEY), 73530 KEYDOWN: "keydown".concat(EVENT_KEY), 73531 MOUSEENTER: "mouseenter".concat(EVENT_KEY), 73532 MOUSELEAVE: "mouseleave".concat(EVENT_KEY), 73533 TOUCHSTART: "touchstart".concat(EVENT_KEY), 73534 TOUCHMOVE: "touchmove".concat(EVENT_KEY), 73535 TOUCHEND: "touchend".concat(EVENT_KEY), 73536 POINTERDOWN: "pointerdown".concat(EVENT_KEY), 73537 POINTERUP: "pointerup".concat(EVENT_KEY), 73538 DRAG_START: "dragstart".concat(EVENT_KEY), 73539 LOAD_DATA_API: "load".concat(EVENT_KEY).concat(DATA_API_KEY), 73540 CLICK_DATA_API: "click".concat(EVENT_KEY).concat(DATA_API_KEY) 73541}; 73542var ClassName = { 73543 CAROUSEL: 'carousel', 73544 ACTIVE: 'active', 73545 SLIDE: 'slide', 73546 RIGHT: 'carousel-item-right', 73547 LEFT: 'carousel-item-left', 73548 NEXT: 'carousel-item-next', 73549 PREV: 'carousel-item-prev', 73550 ITEM: 'carousel-item', 73551 POINTER_EVENT: 'pointer-event' 73552}; 73553var Selector = { 73554 ACTIVE: '.active', 73555 ACTIVE_ITEM: '.active.carousel-item', 73556 ITEM: '.carousel-item', 73557 ITEM_IMG: '.carousel-item img', 73558 NEXT_PREV: '.carousel-item-next, .carousel-item-prev', 73559 INDICATORS: '.carousel-indicators', 73560 DATA_SLIDE: '[data-slide], [data-slide-to]', 73561 DATA_RIDE: '[data-ride="carousel"]' 73562}; 73563var PointerType = { 73564 TOUCH: 'touch', 73565 PEN: 'pen' 73566}; 73567/** 73568 * ------------------------------------------------------------------------ 73569 * Class Definition 73570 * ------------------------------------------------------------------------ 73571 */ 73572 73573var Carousel = /*#__PURE__*/function () { 73574 function Carousel(element, config) { 73575 _classCallCheck(this, Carousel); 73576 73577 this._items = null; 73578 this._interval = null; 73579 this._activeElement = null; 73580 this._isPaused = false; 73581 this._isSliding = false; 73582 this.touchTimeout = null; 73583 this.touchStartX = 0; 73584 this.touchDeltaX = 0; 73585 this._config = this._getConfig(config); 73586 this._element = element; 73587 this._indicatorsElement = this._element.querySelector(Selector.INDICATORS); 73588 this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; 73589 this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent); 73590 73591 this._addEventListeners(); 73592 } // Getters 73593 73594 73595 _createClass(Carousel, [{ 73596 key: "next", 73597 value: // Public 73598 function next() { 73599 if (!this._isSliding) { 73600 this._slide(Direction.NEXT); 73601 } 73602 } 73603 }, { 73604 key: "nextWhenVisible", 73605 value: function nextWhenVisible() { 73606 // Don't call next when the page isn't visible 73607 // or the carousel or its parent isn't visible 73608 if (!document.hidden && jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).is(':visible') && jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).css('visibility') !== 'hidden') { 73609 this.next(); 73610 } 73611 } 73612 }, { 73613 key: "prev", 73614 value: function prev() { 73615 if (!this._isSliding) { 73616 this._slide(Direction.PREV); 73617 } 73618 } 73619 }, { 73620 key: "pause", 73621 value: function pause(event) { 73622 if (!event) { 73623 this._isPaused = true; 73624 } 73625 73626 if (this._element.querySelector(Selector.NEXT_PREV)) { 73627 _util__WEBPACK_IMPORTED_MODULE_1__["default"].triggerTransitionEnd(this._element); 73628 this.cycle(true); 73629 } 73630 73631 clearInterval(this._interval); 73632 this._interval = null; 73633 } 73634 }, { 73635 key: "cycle", 73636 value: function cycle(event) { 73637 if (!event) { 73638 this._isPaused = false; 73639 } 73640 73641 if (this._interval) { 73642 clearInterval(this._interval); 73643 this._interval = null; 73644 } 73645 73646 if (this._config.interval && !this._isPaused) { 73647 this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); 73648 } 73649 } 73650 }, { 73651 key: "to", 73652 value: function to(index) { 73653 var _this = this; 73654 73655 this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM); 73656 73657 var activeIndex = this._getItemIndex(this._activeElement); 73658 73659 if (index > this._items.length - 1 || index < 0) { 73660 return; 73661 } 73662 73663 if (this._isSliding) { 73664 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).one(Event.SLID, function () { 73665 return _this.to(index); 73666 }); 73667 return; 73668 } 73669 73670 if (activeIndex === index) { 73671 this.pause(); 73672 this.cycle(); 73673 return; 73674 } 73675 73676 var direction = index > activeIndex ? Direction.NEXT : Direction.PREV; 73677 73678 this._slide(direction, this._items[index]); 73679 } 73680 }, { 73681 key: "dispose", 73682 value: function dispose() { 73683 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).off(EVENT_KEY); 73684 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.removeData(this._element, DATA_KEY); 73685 this._items = null; 73686 this._config = null; 73687 this._element = null; 73688 this._interval = null; 73689 this._isPaused = null; 73690 this._isSliding = null; 73691 this._activeElement = null; 73692 this._indicatorsElement = null; 73693 } // Private 73694 73695 }, { 73696 key: "_getConfig", 73697 value: function _getConfig(config) { 73698 config = _objectSpread(_objectSpread({}, Default), config); 73699 _util__WEBPACK_IMPORTED_MODULE_1__["default"].typeCheckConfig(NAME, config, DefaultType); 73700 return config; 73701 } 73702 }, { 73703 key: "_handleSwipe", 73704 value: function _handleSwipe() { 73705 var absDeltax = Math.abs(this.touchDeltaX); 73706 73707 if (absDeltax <= SWIPE_THRESHOLD) { 73708 return; 73709 } 73710 73711 var direction = absDeltax / this.touchDeltaX; // swipe left 73712 73713 if (direction > 0) { 73714 this.prev(); 73715 } // swipe right 73716 73717 73718 if (direction < 0) { 73719 this.next(); 73720 } 73721 } 73722 }, { 73723 key: "_addEventListeners", 73724 value: function _addEventListeners() { 73725 var _this2 = this; 73726 73727 if (this._config.keyboard) { 73728 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).on(Event.KEYDOWN, function (event) { 73729 return _this2._keydown(event); 73730 }); 73731 } 73732 73733 if (this._config.pause === 'hover') { 73734 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).on(Event.MOUSEENTER, function (event) { 73735 return _this2.pause(event); 73736 }).on(Event.MOUSELEAVE, function (event) { 73737 return _this2.cycle(event); 73738 }); 73739 } 73740 73741 if (this._config.touch) { 73742 this._addTouchEventListeners(); 73743 } 73744 } 73745 }, { 73746 key: "_addTouchEventListeners", 73747 value: function _addTouchEventListeners() { 73748 var _this3 = this; 73749 73750 if (!this._touchSupported) { 73751 return; 73752 } 73753 73754 var start = function start(event) { 73755 if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) { 73756 _this3.touchStartX = event.originalEvent.clientX; 73757 } else if (!_this3._pointerEvent) { 73758 _this3.touchStartX = event.originalEvent.touches[0].clientX; 73759 } 73760 }; 73761 73762 var move = function move(event) { 73763 // ensure swiping with one touch and not pinching 73764 if (event.originalEvent.touches && event.originalEvent.touches.length > 1) { 73765 _this3.touchDeltaX = 0; 73766 } else { 73767 _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX; 73768 } 73769 }; 73770 73771 var end = function end(event) { 73772 if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) { 73773 _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX; 73774 } 73775 73776 _this3._handleSwipe(); 73777 73778 if (_this3._config.pause === 'hover') { 73779 // If it's a touch-enabled device, mouseenter/leave are fired as 73780 // part of the mouse compatibility events on first tap - the carousel 73781 // would stop cycling until user tapped out of it; 73782 // here, we listen for touchend, explicitly pause the carousel 73783 // (as if it's the second time we tap on it, mouseenter compat event 73784 // is NOT fired) and after a timeout (to allow for mouse compatibility 73785 // events to fire) we explicitly restart cycling 73786 _this3.pause(); 73787 73788 if (_this3.touchTimeout) { 73789 clearTimeout(_this3.touchTimeout); 73790 } 73791 73792 _this3.touchTimeout = setTimeout(function (event) { 73793 return _this3.cycle(event); 73794 }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval); 73795 } 73796 }; 73797 73798 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element.querySelectorAll(Selector.ITEM_IMG)).on(Event.DRAG_START, function (e) { 73799 return e.preventDefault(); 73800 }); 73801 73802 if (this._pointerEvent) { 73803 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).on(Event.POINTERDOWN, function (event) { 73804 return start(event); 73805 }); 73806 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).on(Event.POINTERUP, function (event) { 73807 return end(event); 73808 }); 73809 73810 this._element.classList.add(ClassName.POINTER_EVENT); 73811 } else { 73812 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).on(Event.TOUCHSTART, function (event) { 73813 return start(event); 73814 }); 73815 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).on(Event.TOUCHMOVE, function (event) { 73816 return move(event); 73817 }); 73818 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).on(Event.TOUCHEND, function (event) { 73819 return end(event); 73820 }); 73821 } 73822 } 73823 }, { 73824 key: "_keydown", 73825 value: function _keydown(event) { 73826 if (/input|textarea/i.test(event.target.tagName)) { 73827 return; 73828 } 73829 73830 switch (event.which) { 73831 case ARROW_LEFT_KEYCODE: 73832 event.preventDefault(); 73833 this.prev(); 73834 break; 73835 73836 case ARROW_RIGHT_KEYCODE: 73837 event.preventDefault(); 73838 this.next(); 73839 break; 73840 73841 default: 73842 } 73843 } 73844 }, { 73845 key: "_getItemIndex", 73846 value: function _getItemIndex(element) { 73847 this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM)) : []; 73848 return this._items.indexOf(element); 73849 } 73850 }, { 73851 key: "_getItemByDirection", 73852 value: function _getItemByDirection(direction, activeElement) { 73853 var isNextDirection = direction === Direction.NEXT; 73854 var isPrevDirection = direction === Direction.PREV; 73855 73856 var activeIndex = this._getItemIndex(activeElement); 73857 73858 var lastItemIndex = this._items.length - 1; 73859 var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; 73860 73861 if (isGoingToWrap && !this._config.wrap) { 73862 return activeElement; 73863 } 73864 73865 var delta = direction === Direction.PREV ? -1 : 1; 73866 var itemIndex = (activeIndex + delta) % this._items.length; 73867 return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; 73868 } 73869 }, { 73870 key: "_triggerSlideEvent", 73871 value: function _triggerSlideEvent(relatedTarget, eventDirectionName) { 73872 var targetIndex = this._getItemIndex(relatedTarget); 73873 73874 var fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM)); 73875 73876 var slideEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.SLIDE, { 73877 relatedTarget: relatedTarget, 73878 direction: eventDirectionName, 73879 from: fromIndex, 73880 to: targetIndex 73881 }); 73882 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).trigger(slideEvent); 73883 return slideEvent; 73884 } 73885 }, { 73886 key: "_setActiveIndicatorElement", 73887 value: function _setActiveIndicatorElement(element) { 73888 if (this._indicatorsElement) { 73889 var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE)); 73890 jquery__WEBPACK_IMPORTED_MODULE_0___default()(indicators).removeClass(ClassName.ACTIVE); 73891 73892 var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; 73893 73894 if (nextIndicator) { 73895 jquery__WEBPACK_IMPORTED_MODULE_0___default()(nextIndicator).addClass(ClassName.ACTIVE); 73896 } 73897 } 73898 } 73899 }, { 73900 key: "_slide", 73901 value: function _slide(direction, element) { 73902 var _this4 = this; 73903 73904 var activeElement = this._element.querySelector(Selector.ACTIVE_ITEM); 73905 73906 var activeElementIndex = this._getItemIndex(activeElement); 73907 73908 var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); 73909 73910 var nextElementIndex = this._getItemIndex(nextElement); 73911 73912 var isCycling = Boolean(this._interval); 73913 var directionalClassName; 73914 var orderClassName; 73915 var eventDirectionName; 73916 73917 if (direction === Direction.NEXT) { 73918 directionalClassName = ClassName.LEFT; 73919 orderClassName = ClassName.NEXT; 73920 eventDirectionName = Direction.LEFT; 73921 } else { 73922 directionalClassName = ClassName.RIGHT; 73923 orderClassName = ClassName.PREV; 73924 eventDirectionName = Direction.RIGHT; 73925 } 73926 73927 if (nextElement && jquery__WEBPACK_IMPORTED_MODULE_0___default()(nextElement).hasClass(ClassName.ACTIVE)) { 73928 this._isSliding = false; 73929 return; 73930 } 73931 73932 var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); 73933 73934 if (slideEvent.isDefaultPrevented()) { 73935 return; 73936 } 73937 73938 if (!activeElement || !nextElement) { 73939 // Some weirdness is happening, so we bail 73940 return; 73941 } 73942 73943 this._isSliding = true; 73944 73945 if (isCycling) { 73946 this.pause(); 73947 } 73948 73949 this._setActiveIndicatorElement(nextElement); 73950 73951 var slidEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.SLID, { 73952 relatedTarget: nextElement, 73953 direction: eventDirectionName, 73954 from: activeElementIndex, 73955 to: nextElementIndex 73956 }); 73957 73958 if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.SLIDE)) { 73959 jquery__WEBPACK_IMPORTED_MODULE_0___default()(nextElement).addClass(orderClassName); 73960 _util__WEBPACK_IMPORTED_MODULE_1__["default"].reflow(nextElement); 73961 jquery__WEBPACK_IMPORTED_MODULE_0___default()(activeElement).addClass(directionalClassName); 73962 jquery__WEBPACK_IMPORTED_MODULE_0___default()(nextElement).addClass(directionalClassName); 73963 var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10); 73964 73965 if (nextElementInterval) { 73966 this._config.defaultInterval = this._config.defaultInterval || this._config.interval; 73967 this._config.interval = nextElementInterval; 73968 } else { 73969 this._config.interval = this._config.defaultInterval || this._config.interval; 73970 } 73971 73972 var transitionDuration = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getTransitionDurationFromElement(activeElement); 73973 jquery__WEBPACK_IMPORTED_MODULE_0___default()(activeElement).one(_util__WEBPACK_IMPORTED_MODULE_1__["default"].TRANSITION_END, function () { 73974 jquery__WEBPACK_IMPORTED_MODULE_0___default()(nextElement).removeClass("".concat(directionalClassName, " ").concat(orderClassName)).addClass(ClassName.ACTIVE); 73975 jquery__WEBPACK_IMPORTED_MODULE_0___default()(activeElement).removeClass("".concat(ClassName.ACTIVE, " ").concat(orderClassName, " ").concat(directionalClassName)); 73976 _this4._isSliding = false; 73977 setTimeout(function () { 73978 return jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this4._element).trigger(slidEvent); 73979 }, 0); 73980 }).emulateTransitionEnd(transitionDuration); 73981 } else { 73982 jquery__WEBPACK_IMPORTED_MODULE_0___default()(activeElement).removeClass(ClassName.ACTIVE); 73983 jquery__WEBPACK_IMPORTED_MODULE_0___default()(nextElement).addClass(ClassName.ACTIVE); 73984 this._isSliding = false; 73985 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).trigger(slidEvent); 73986 } 73987 73988 if (isCycling) { 73989 this.cycle(); 73990 } 73991 } // Static 73992 73993 }], [{ 73994 key: "VERSION", 73995 get: function get() { 73996 return VERSION; 73997 } 73998 }, { 73999 key: "Default", 74000 get: function get() { 74001 return Default; 74002 } 74003 }, { 74004 key: "_jQueryInterface", 74005 value: function _jQueryInterface(config) { 74006 return this.each(function () { 74007 var data = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(DATA_KEY); 74008 74009 var _config = _objectSpread(_objectSpread({}, Default), jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data()); 74010 74011 if (_typeof(config) === 'object') { 74012 _config = _objectSpread(_objectSpread({}, _config), config); 74013 } 74014 74015 var action = typeof config === 'string' ? config : _config.slide; 74016 74017 if (!data) { 74018 data = new Carousel(this, _config); 74019 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(DATA_KEY, data); 74020 } 74021 74022 if (typeof config === 'number') { 74023 data.to(config); 74024 } else if (typeof action === 'string') { 74025 if (typeof data[action] === 'undefined') { 74026 throw new TypeError("No method named \"".concat(action, "\"")); 74027 } 74028 74029 data[action](); 74030 } else if (_config.interval && _config.ride) { 74031 data.pause(); 74032 data.cycle(); 74033 } 74034 }); 74035 } 74036 }, { 74037 key: "_dataApiClickHandler", 74038 value: function _dataApiClickHandler(event) { 74039 var selector = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getSelectorFromElement(this); 74040 74041 if (!selector) { 74042 return; 74043 } 74044 74045 var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector)[0]; 74046 74047 if (!target || !jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).hasClass(ClassName.CAROUSEL)) { 74048 return; 74049 } 74050 74051 var config = _objectSpread(_objectSpread({}, jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).data()), jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data()); 74052 74053 var slideIndex = this.getAttribute('data-slide-to'); 74054 74055 if (slideIndex) { 74056 config.interval = false; 74057 } 74058 74059 Carousel._jQueryInterface.call(jquery__WEBPACK_IMPORTED_MODULE_0___default()(target), config); 74060 74061 if (slideIndex) { 74062 jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).data(DATA_KEY).to(slideIndex); 74063 } 74064 74065 event.preventDefault(); 74066 } 74067 }]); 74068 74069 return Carousel; 74070}(); 74071/** 74072 * ------------------------------------------------------------------------ 74073 * Data Api implementation 74074 * ------------------------------------------------------------------------ 74075 */ 74076 74077 74078jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler); 74079jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(Event.LOAD_DATA_API, function () { 74080 var carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE)); 74081 74082 for (var i = 0, len = carousels.length; i < len; i++) { 74083 var $carousel = jquery__WEBPACK_IMPORTED_MODULE_0___default()(carousels[i]); 74084 74085 Carousel._jQueryInterface.call($carousel, $carousel.data()); 74086 } 74087}); 74088/** 74089 * ------------------------------------------------------------------------ 74090 * jQuery 74091 * ------------------------------------------------------------------------ 74092 */ 74093 74094jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = Carousel._jQueryInterface; 74095jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].Constructor = Carousel; 74096 74097jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].noConflict = function () { 74098 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = JQUERY_NO_CONFLICT; 74099 return Carousel._jQueryInterface; 74100}; 74101 74102/* harmony default export */ __webpack_exports__["default"] = (Carousel); 74103 74104/***/ }), 74105
vendor: 16,474 bytes, lines 74106-74511
74106/***/ "../storefront-reference-architecture/node_modules/bootstrap/js/src/collapse.js": 74107/*!**************************************************************************************!*\ 74108 !*** ../storefront-reference-architecture/node_modules/bootstrap/js/src/collapse.js ***! 74109 \**************************************************************************************/ 74110/*! exports provided: default */ 74111/***/ (function(module, __webpack_exports__, __webpack_require__) { 74112 74113"use strict"; 74114__webpack_require__.r(__webpack_exports__); 74115/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js"); 74116/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 74117/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/util.js"); 74118function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 74119 74120function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } 74121 74122function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 74123 74124function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 74125 74126function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 74127 74128function _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); } } 74129 74130function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 74131 74132/** 74133 * -------------------------------------------------------------------------- 74134 * Bootstrap (v4.3.1): collapse.js 74135 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 74136 * -------------------------------------------------------------------------- 74137 */ 74138 74139 74140/** 74141 * ------------------------------------------------------------------------ 74142 * Constants 74143 * ------------------------------------------------------------------------ 74144 */ 74145 74146var NAME = 'collapse'; 74147var VERSION = '4.3.1'; 74148var DATA_KEY = 'bs.collapse'; 74149var EVENT_KEY = ".".concat(DATA_KEY); 74150var DATA_API_KEY = '.data-api'; 74151var JQUERY_NO_CONFLICT = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME]; 74152var Default = { 74153 toggle: true, 74154 parent: '' 74155}; 74156var DefaultType = { 74157 toggle: 'boolean', 74158 parent: '(string|element)' 74159}; 74160var Event = { 74161 SHOW: "show".concat(EVENT_KEY), 74162 SHOWN: "shown".concat(EVENT_KEY), 74163 HIDE: "hide".concat(EVENT_KEY), 74164 HIDDEN: "hidden".concat(EVENT_KEY), 74165 CLICK_DATA_API: "click".concat(EVENT_KEY).concat(DATA_API_KEY) 74166}; 74167var ClassName = { 74168 SHOW: 'show', 74169 COLLAPSE: 'collapse', 74170 COLLAPSING: 'collapsing', 74171 COLLAPSED: 'collapsed' 74172}; 74173var Dimension = { 74174 WIDTH: 'width', 74175 HEIGHT: 'height' 74176}; 74177var Selector = { 74178 ACTIVES: '.show, .collapsing', 74179 DATA_TOGGLE: '[data-toggle="collapse"]' 74180}; 74181/** 74182 * ------------------------------------------------------------------------ 74183 * Class Definition 74184 * ------------------------------------------------------------------------ 74185 */ 74186 74187var Collapse = /*#__PURE__*/function () { 74188 function Collapse(element, config) { 74189 _classCallCheck(this, Collapse); 74190 74191 this._isTransitioning = false; 74192 this._element = element; 74193 this._config = this._getConfig(config); 74194 this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#".concat(element.id, "\"],") + "[data-toggle=\"collapse\"][data-target=\"#".concat(element.id, "\"]"))); 74195 var toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE)); 74196 74197 for (var i = 0, len = toggleList.length; i < len; i++) { 74198 var elem = toggleList[i]; 74199 var selector = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getSelectorFromElement(elem); 74200 var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) { 74201 return foundElem === element; 74202 }); 74203 74204 if (selector !== null && filterElement.length > 0) { 74205 this._selector = selector; 74206 74207 this._triggerArray.push(elem); 74208 } 74209 } 74210 74211 this._parent = this._config.parent ? this._getParent() : null; 74212 74213 if (!this._config.parent) { 74214 this._addAriaAndCollapsedClass(this._element, this._triggerArray); 74215 } 74216 74217 if (this._config.toggle) { 74218 this.toggle(); 74219 } 74220 } // Getters 74221 74222 74223 _createClass(Collapse, [{ 74224 key: "toggle", 74225 value: // Public 74226 function toggle() { 74227 if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.SHOW)) { 74228 this.hide(); 74229 } else { 74230 this.show(); 74231 } 74232 } 74233 }, { 74234 key: "show", 74235 value: function show() { 74236 var _this = this; 74237 74238 if (this._isTransitioning || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.SHOW)) { 74239 return; 74240 } 74241 74242 var actives; 74243 var activesData; 74244 74245 if (this._parent) { 74246 actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES)).filter(function (elem) { 74247 if (typeof _this._config.parent === 'string') { 74248 return elem.getAttribute('data-parent') === _this._config.parent; 74249 } 74250 74251 return elem.classList.contains(ClassName.COLLAPSE); 74252 }); 74253 74254 if (actives.length === 0) { 74255 actives = null; 74256 } 74257 } 74258 74259 if (actives) { 74260 activesData = jquery__WEBPACK_IMPORTED_MODULE_0___default()(actives).not(this._selector).data(DATA_KEY); 74261 74262 if (activesData && activesData._isTransitioning) { 74263 return; 74264 } 74265 } 74266 74267 var startEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.SHOW); 74268 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).trigger(startEvent); 74269 74270 if (startEvent.isDefaultPrevented()) { 74271 return; 74272 } 74273 74274 if (actives) { 74275 Collapse._jQueryInterface.call(jquery__WEBPACK_IMPORTED_MODULE_0___default()(actives).not(this._selector), 'hide'); 74276 74277 if (!activesData) { 74278 jquery__WEBPACK_IMPORTED_MODULE_0___default()(actives).data(DATA_KEY, null); 74279 } 74280 } 74281 74282 var dimension = this._getDimension(); 74283 74284 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING); 74285 this._element.style[dimension] = 0; 74286 74287 if (this._triggerArray.length) { 74288 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true); 74289 } 74290 74291 this.setTransitioning(true); 74292 74293 var complete = function complete() { 74294 jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW); 74295 _this._element.style[dimension] = ''; 74296 74297 _this.setTransitioning(false); 74298 74299 jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this._element).trigger(Event.SHOWN); 74300 }; 74301 74302 var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); 74303 var scrollSize = "scroll".concat(capitalizedDimension); 74304 var transitionDuration = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getTransitionDurationFromElement(this._element); 74305 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).one(_util__WEBPACK_IMPORTED_MODULE_1__["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 74306 this._element.style[dimension] = "".concat(this._element[scrollSize], "px"); 74307 } 74308 }, { 74309 key: "hide", 74310 value: function hide() { 74311 var _this2 = this; 74312 74313 if (this._isTransitioning || !jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.SHOW)) { 74314 return; 74315 } 74316 74317 var startEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.HIDE); 74318 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).trigger(startEvent); 74319 74320 if (startEvent.isDefaultPrevented()) { 74321 return; 74322 } 74323 74324 var dimension = this._getDimension(); 74325 74326 this._element.style[dimension] = "".concat(this._element.getBoundingClientRect()[dimension], "px"); 74327 _util__WEBPACK_IMPORTED_MODULE_1__["default"].reflow(this._element); 74328 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW); 74329 var triggerArrayLength = this._triggerArray.length; 74330 74331 if (triggerArrayLength > 0) { 74332 for (var i = 0; i < triggerArrayLength; i++) { 74333 var trigger = this._triggerArray[i]; 74334 var selector = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getSelectorFromElement(trigger); 74335 74336 if (selector !== null) { 74337 var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()([].slice.call(document.querySelectorAll(selector))); 74338 74339 if (!$elem.hasClass(ClassName.SHOW)) { 74340 jquery__WEBPACK_IMPORTED_MODULE_0___default()(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false); 74341 } 74342 } 74343 } 74344 } 74345 74346 this.setTransitioning(true); 74347 74348 var complete = function complete() { 74349 _this2.setTransitioning(false); 74350 74351 jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN); 74352 }; 74353 74354 this._element.style[dimension] = ''; 74355 var transitionDuration = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getTransitionDurationFromElement(this._element); 74356 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).one(_util__WEBPACK_IMPORTED_MODULE_1__["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 74357 } 74358 }, { 74359 key: "setTransitioning", 74360 value: function setTransitioning(isTransitioning) { 74361 this._isTransitioning = isTransitioning; 74362 } 74363 }, { 74364 key: "dispose", 74365 value: function dispose() { 74366 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.removeData(this._element, DATA_KEY); 74367 this._config = null; 74368 this._parent = null; 74369 this._element = null; 74370 this._triggerArray = null; 74371 this._isTransitioning = null; 74372 } // Private 74373 74374 }, { 74375 key: "_getConfig", 74376 value: function _getConfig(config) { 74377 config = _objectSpread(_objectSpread({}, Default), config); 74378 config.toggle = Boolean(config.toggle); // Coerce string values 74379 74380 _util__WEBPACK_IMPORTED_MODULE_1__["default"].typeCheckConfig(NAME, config, DefaultType); 74381 return config; 74382 } 74383 }, { 74384 key: "_getDimension", 74385 value: function _getDimension() { 74386 var hasWidth = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(Dimension.WIDTH); 74387 return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT; 74388 } 74389 }, { 74390 key: "_getParent", 74391 value: function _getParent() { 74392 var _this3 = this; 74393 74394 var parent; 74395 74396 if (_util__WEBPACK_IMPORTED_MODULE_1__["default"].isElement(this._config.parent)) { 74397 parent = this._config.parent; // It's a jQuery object 74398 74399 if (typeof this._config.parent.jquery !== 'undefined') { 74400 parent = this._config.parent[0]; 74401 } 74402 } else { 74403 parent = document.querySelector(this._config.parent); 74404 } 74405 74406 var selector = "[data-toggle=\"collapse\"][data-parent=\"".concat(this._config.parent, "\"]"); 74407 var children = [].slice.call(parent.querySelectorAll(selector)); 74408 jquery__WEBPACK_IMPORTED_MODULE_0___default()(children).each(function (i, element) { 74409 _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); 74410 }); 74411 return parent; 74412 } 74413 }, { 74414 key: "_addAriaAndCollapsedClass", 74415 value: function _addAriaAndCollapsedClass(element, triggerArray) { 74416 var isOpen = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).hasClass(ClassName.SHOW); 74417 74418 if (triggerArray.length) { 74419 jquery__WEBPACK_IMPORTED_MODULE_0___default()(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); 74420 } 74421 } // Static 74422 74423 }], [{ 74424 key: "VERSION", 74425 get: function get() { 74426 return VERSION; 74427 } 74428 }, { 74429 key: "Default", 74430 get: function get() { 74431 return Default; 74432 } 74433 }, { 74434 key: "_getTargetFromElement", 74435 value: function _getTargetFromElement(element) { 74436 var selector = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getSelectorFromElement(element); 74437 return selector ? document.querySelector(selector) : null; 74438 } 74439 }, { 74440 key: "_jQueryInterface", 74441 value: function _jQueryInterface(config) { 74442 return this.each(function () { 74443 var $this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this); 74444 var data = $this.data(DATA_KEY); 74445 74446 var _config = _objectSpread(_objectSpread(_objectSpread({}, Default), $this.data()), _typeof(config) === 'object' && config ? config : {}); 74447 74448 if (!data && _config.toggle && /show|hide/.test(config)) { 74449 _config.toggle = false; 74450 } 74451 74452 if (!data) { 74453 data = new Collapse(this, _config); 74454 $this.data(DATA_KEY, data); 74455 } 74456 74457 if (typeof config === 'string') { 74458 if (typeof data[config] === 'undefined') { 74459 throw new TypeError("No method named \"".concat(config, "\"")); 74460 } 74461 74462 data[config](); 74463 } 74464 }); 74465 } 74466 }]); 74467 74468 return Collapse; 74469}(); 74470/** 74471 * ------------------------------------------------------------------------ 74472 * Data Api implementation 74473 * ------------------------------------------------------------------------ 74474 */ 74475 74476 74477jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { 74478 // preventDefault only for <a> elements (which change the URL) not inside the collapsible element 74479 if (event.currentTarget.tagName === 'A') { 74480 event.preventDefault(); 74481 } 74482 74483 var $trigger = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this); 74484 var selector = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getSelectorFromElement(this); 74485 var selectors = [].slice.call(document.querySelectorAll(selector)); 74486 jquery__WEBPACK_IMPORTED_MODULE_0___default()(selectors).each(function () { 74487 var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this); 74488 var data = $target.data(DATA_KEY); 74489 var config = data ? 'toggle' : $trigger.data(); 74490 74491 Collapse._jQueryInterface.call($target, config); 74492 }); 74493}); 74494/** 74495 * ------------------------------------------------------------------------ 74496 * jQuery 74497 * ------------------------------------------------------------------------ 74498 */ 74499 74500jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = Collapse._jQueryInterface; 74501jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].Constructor = Collapse; 74502 74503jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].noConflict = function () { 74504 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = JQUERY_NO_CONFLICT; 74505 return Collapse._jQueryInterface; 74506}; 74507 74508/* harmony default export */ __webpack_exports__["default"] = (Collapse); 74509 74510/***/ }), 74511
vendor: 22,308 bytes, lines 74512-75089
74512/***/ "../storefront-reference-architecture/node_modules/bootstrap/js/src/dropdown.js": 74513/*!**************************************************************************************!*\ 74514 !*** ../storefront-reference-architecture/node_modules/bootstrap/js/src/dropdown.js ***! 74515 \**************************************************************************************/ 74516/*! exports provided: default */ 74517/***/ (function(module, __webpack_exports__, __webpack_require__) { 74518 74519"use strict"; 74520__webpack_require__.r(__webpack_exports__); 74521/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js"); 74522/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 74523/* harmony import */ var popper_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! popper.js */ "../rvw_autobahn_core/node_modules/popper.js/dist/esm/popper.js"); 74524/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/util.js"); 74525function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 74526 74527function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } 74528 74529function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 74530 74531function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 74532 74533function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 74534 74535function _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); } } 74536 74537function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 74538 74539/** 74540 * -------------------------------------------------------------------------- 74541 * Bootstrap (v4.3.1): dropdown.js 74542 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 74543 * -------------------------------------------------------------------------- 74544 */ 74545 74546 74547 74548/** 74549 * ------------------------------------------------------------------------ 74550 * Constants 74551 * ------------------------------------------------------------------------ 74552 */ 74553 74554var NAME = 'dropdown'; 74555var VERSION = '4.3.1'; 74556var DATA_KEY = 'bs.dropdown'; 74557var EVENT_KEY = ".".concat(DATA_KEY); 74558var DATA_API_KEY = '.data-api'; 74559var JQUERY_NO_CONFLICT = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME]; 74560var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key 74561 74562var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key 74563 74564var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key 74565 74566var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key 74567 74568var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key 74569 74570var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse) 74571 74572var REGEXP_KEYDOWN = new RegExp("".concat(ARROW_UP_KEYCODE, "|").concat(ARROW_DOWN_KEYCODE, "|").concat(ESCAPE_KEYCODE)); 74573var Event = { 74574 HIDE: "hide".concat(EVENT_KEY), 74575 HIDDEN: "hidden".concat(EVENT_KEY), 74576 SHOW: "show".concat(EVENT_KEY), 74577 SHOWN: "shown".concat(EVENT_KEY), 74578 CLICK: "click".concat(EVENT_KEY), 74579 CLICK_DATA_API: "click".concat(EVENT_KEY).concat(DATA_API_KEY), 74580 KEYDOWN_DATA_API: "keydown".concat(EVENT_KEY).concat(DATA_API_KEY), 74581 KEYUP_DATA_API: "keyup".concat(EVENT_KEY).concat(DATA_API_KEY) 74582}; 74583var ClassName = { 74584 DISABLED: 'disabled', 74585 SHOW: 'show', 74586 DROPUP: 'dropup', 74587 DROPRIGHT: 'dropright', 74588 DROPLEFT: 'dropleft', 74589 MENURIGHT: 'dropdown-menu-right', 74590 MENULEFT: 'dropdown-menu-left', 74591 POSITION_STATIC: 'position-static' 74592}; 74593var Selector = { 74594 DATA_TOGGLE: '[data-toggle="dropdown"]', 74595 FORM_CHILD: '.dropdown form', 74596 MENU: '.dropdown-menu', 74597 NAVBAR_NAV: '.navbar-nav', 74598 VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)' 74599}; 74600var AttachmentMap = { 74601 TOP: 'top-start', 74602 TOPEND: 'top-end', 74603 BOTTOM: 'bottom-start', 74604 BOTTOMEND: 'bottom-end', 74605 RIGHT: 'right-start', 74606 RIGHTEND: 'right-end', 74607 LEFT: 'left-start', 74608 LEFTEND: 'left-end' 74609}; 74610var Default = { 74611 offset: 0, 74612 flip: true, 74613 boundary: 'scrollParent', 74614 reference: 'toggle', 74615 display: 'dynamic' 74616}; 74617var DefaultType = { 74618 offset: '(number|string|function)', 74619 flip: 'boolean', 74620 boundary: '(string|element)', 74621 reference: '(string|element)', 74622 display: 'string' 74623}; 74624/** 74625 * ------------------------------------------------------------------------ 74626 * Class Definition 74627 * ------------------------------------------------------------------------ 74628 */ 74629 74630var Dropdown = /*#__PURE__*/function () { 74631 function Dropdown(element, config) { 74632 _classCallCheck(this, Dropdown); 74633 74634 this._element = element; 74635 this._popper = null; 74636 this._config = this._getConfig(config); 74637 this._menu = this._getMenuElement(); 74638 this._inNavbar = this._detectNavbar(); 74639 74640 this._addEventListeners(); 74641 } // Getters 74642 74643 74644 _createClass(Dropdown, [{ 74645 key: "toggle", 74646 value: // Public 74647 function toggle() { 74648 if (this._element.disabled || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.DISABLED)) { 74649 return; 74650 } 74651 74652 var parent = Dropdown._getParentFromElement(this._element); 74653 74654 var isActive = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._menu).hasClass(ClassName.SHOW); 74655 74656 Dropdown._clearMenus(); 74657 74658 if (isActive) { 74659 return; 74660 } 74661 74662 var relatedTarget = { 74663 relatedTarget: this._element 74664 }; 74665 var showEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.SHOW, relatedTarget); 74666 jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).trigger(showEvent); 74667 74668 if (showEvent.isDefaultPrevented()) { 74669 return; 74670 } // Disable totally Popper.js for Dropdown in Navbar 74671 74672 74673 if (!this._inNavbar) { 74674 /** 74675 * Check for Popper dependency 74676 * Popper - https://popper.js.org 74677 */ 74678 if (typeof popper_js__WEBPACK_IMPORTED_MODULE_1__["default"] === 'undefined') { 74679 throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)'); 74680 } 74681 74682 var referenceElement = this._element; 74683 74684 if (this._config.reference === 'parent') { 74685 referenceElement = parent; 74686 } else if (_util__WEBPACK_IMPORTED_MODULE_2__["default"].isElement(this._config.reference)) { 74687 referenceElement = this._config.reference; // Check if it's jQuery element 74688 74689 if (typeof this._config.reference.jquery !== 'undefined') { 74690 referenceElement = this._config.reference[0]; 74691 } 74692 } // If boundary is not `scrollParent`, then set position to `static` 74693 // to allow the menu to "escape" the scroll parent's boundaries 74694 // https://github.com/twbs/bootstrap/issues/24251 74695 74696 74697 if (this._config.boundary !== 'scrollParent') { 74698 jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).addClass(ClassName.POSITION_STATIC); 74699 } 74700 74701 this._popper = new popper_js__WEBPACK_IMPORTED_MODULE_1__["default"](referenceElement, this._menu, this._getPopperConfig()); 74702 } // If this is a touch-enabled device we add extra 74703 // empty mouseover listeners to the body's immediate children; 74704 // only needed because of broken event delegation on iOS 74705 // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html 74706 74707 74708 if ('ontouchstart' in document.documentElement && jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).closest(Selector.NAVBAR_NAV).length === 0) { 74709 jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).children().on('mouseover', null, jquery__WEBPACK_IMPORTED_MODULE_0___default.a.noop); 74710 } 74711 74712 this._element.focus(); 74713 74714 this._element.setAttribute('aria-expanded', true); 74715 74716 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._menu).toggleClass(ClassName.SHOW); 74717 jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).toggleClass(ClassName.SHOW).trigger(jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.SHOWN, relatedTarget)); 74718 } 74719 }, { 74720 key: "show", 74721 value: function show() { 74722 if (this._element.disabled || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.DISABLED) || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._menu).hasClass(ClassName.SHOW)) { 74723 return; 74724 } 74725 74726 var relatedTarget = { 74727 relatedTarget: this._element 74728 }; 74729 var showEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.SHOW, relatedTarget); 74730 74731 var parent = Dropdown._getParentFromElement(this._element); 74732 74733 jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).trigger(showEvent); 74734 74735 if (showEvent.isDefaultPrevented()) { 74736 return; 74737 } 74738 74739 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._menu).toggleClass(ClassName.SHOW); 74740 jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).toggleClass(ClassName.SHOW).trigger(jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.SHOWN, relatedTarget)); 74741 } 74742 }, { 74743 key: "hide", 74744 value: function hide() { 74745 if (this._element.disabled || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.DISABLED) || !jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._menu).hasClass(ClassName.SHOW)) { 74746 return; 74747 } 74748 74749 var relatedTarget = { 74750 relatedTarget: this._element 74751 }; 74752 var hideEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.HIDE, relatedTarget); 74753 74754 var parent = Dropdown._getParentFromElement(this._element); 74755 74756 jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).trigger(hideEvent); 74757 74758 if (hideEvent.isDefaultPrevented()) { 74759 return; 74760 } 74761 74762 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._menu).toggleClass(ClassName.SHOW); 74763 jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).toggleClass(ClassName.SHOW).trigger(jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.HIDDEN, relatedTarget)); 74764 } 74765 }, { 74766 key: "dispose", 74767 value: function dispose() { 74768 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.removeData(this._element, DATA_KEY); 74769 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).off(EVENT_KEY); 74770 this._element = null; 74771 this._menu = null; 74772 74773 if (this._popper !== null) { 74774 this._popper.destroy(); 74775 74776 this._popper = null; 74777 } 74778 } 74779 }, { 74780 key: "update", 74781 value: function update() { 74782 this._inNavbar = this._detectNavbar(); 74783 74784 if (this._popper !== null) { 74785 this._popper.scheduleUpdate(); 74786 } 74787 } // Private 74788 74789 }, { 74790 key: "_addEventListeners", 74791 value: function _addEventListeners() { 74792 var _this = this; 74793 74794 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).on(Event.CLICK, function (event) { 74795 event.preventDefault(); 74796 event.stopPropagation(); 74797 74798 _this.toggle(); 74799 }); 74800 } 74801 }, { 74802 key: "_getConfig", 74803 value: function _getConfig(config) { 74804 config = _objectSpread(_objectSpread(_objectSpread({}, this.constructor.Default), jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).data()), config); 74805 _util__WEBPACK_IMPORTED_MODULE_2__["default"].typeCheckConfig(NAME, config, this.constructor.DefaultType); 74806 return config; 74807 } 74808 }, { 74809 key: "_getMenuElement", 74810 value: function _getMenuElement() { 74811 if (!this._menu) { 74812 var parent = Dropdown._getParentFromElement(this._element); 74813 74814 if (parent) { 74815 this._menu = parent.querySelector(Selector.MENU); 74816 } 74817 } 74818 74819 return this._menu; 74820 } 74821 }, { 74822 key: "_getPlacement", 74823 value: function _getPlacement() { 74824 var $parentDropdown = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element.parentNode); 74825 var placement = AttachmentMap.BOTTOM; // Handle dropup 74826 74827 if ($parentDropdown.hasClass(ClassName.DROPUP)) { 74828 placement = AttachmentMap.TOP; 74829 74830 if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._menu).hasClass(ClassName.MENURIGHT)) { 74831 placement = AttachmentMap.TOPEND; 74832 } 74833 } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) { 74834 placement = AttachmentMap.RIGHT; 74835 } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) { 74836 placement = AttachmentMap.LEFT; 74837 } else if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._menu).hasClass(ClassName.MENURIGHT)) { 74838 placement = AttachmentMap.BOTTOMEND; 74839 } 74840 74841 return placement; 74842 } 74843 }, { 74844 key: "_detectNavbar", 74845 value: function _detectNavbar() { 74846 return jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).closest('.navbar').length > 0; 74847 } 74848 }, { 74849 key: "_getOffset", 74850 value: function _getOffset() { 74851 var _this2 = this; 74852 74853 var offset = {}; 74854 74855 if (typeof this._config.offset === 'function') { 74856 offset.fn = function (data) { 74857 data.offsets = _objectSpread(_objectSpread({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {}); 74858 return data; 74859 }; 74860 } else { 74861 offset.offset = this._config.offset; 74862 } 74863 74864 return offset; 74865 } 74866 }, { 74867 key: "_getPopperConfig", 74868 value: function _getPopperConfig() { 74869 var popperConfig = { 74870 placement: this._getPlacement(), 74871 modifiers: { 74872 offset: this._getOffset(), 74873 flip: { 74874 enabled: this._config.flip 74875 }, 74876 preventOverflow: { 74877 boundariesElement: this._config.boundary 74878 } 74879 } 74880 }; // Disable Popper.js if we have a static display 74881 74882 if (this._config.display === 'static') { 74883 popperConfig.modifiers.applyStyle = { 74884 enabled: false 74885 }; 74886 } 74887 74888 return popperConfig; 74889 } // Static 74890 74891 }], [{ 74892 key: "VERSION", 74893 get: function get() { 74894 return VERSION; 74895 } 74896 }, { 74897 key: "Default", 74898 get: function get() { 74899 return Default; 74900 } 74901 }, { 74902 key: "DefaultType", 74903 get: function get() { 74904 return DefaultType; 74905 } 74906 }, { 74907 key: "_jQueryInterface", 74908 value: function _jQueryInterface(config) { 74909 return this.each(function () { 74910 var data = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(DATA_KEY); 74911 74912 var _config = _typeof(config) === 'object' ? config : null; 74913 74914 if (!data) { 74915 data = new Dropdown(this, _config); 74916 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(DATA_KEY, data); 74917 } 74918 74919 if (typeof config === 'string') { 74920 if (typeof data[config] === 'undefined') { 74921 throw new TypeError("No method named \"".concat(config, "\"")); 74922 } 74923 74924 data[config](); 74925 } 74926 }); 74927 } 74928 }, { 74929 key: "_clearMenus", 74930 value: function _clearMenus(event) { 74931 if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) { 74932 return; 74933 } 74934 74935 var toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE)); 74936 74937 for (var i = 0, len = toggles.length; i < len; i++) { 74938 var parent = Dropdown._getParentFromElement(toggles[i]); 74939 74940 var context = jquery__WEBPACK_IMPORTED_MODULE_0___default()(toggles[i]).data(DATA_KEY); 74941 var relatedTarget = { 74942 relatedTarget: toggles[i] 74943 }; 74944 74945 if (event && event.type === 'click') { 74946 relatedTarget.clickEvent = event; 74947 } 74948 74949 if (!context) { 74950 continue; 74951 } 74952 74953 var dropdownMenu = context._menu; 74954 74955 if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).hasClass(ClassName.SHOW)) { 74956 continue; 74957 } 74958 74959 if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(parent, event.target)) { 74960 continue; 74961 } 74962 74963 var hideEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.HIDE, relatedTarget); 74964 jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).trigger(hideEvent); 74965 74966 if (hideEvent.isDefaultPrevented()) { 74967 continue; 74968 } // If this is a touch-enabled device we remove the extra 74969 // empty mouseover listeners we added for iOS support 74970 74971 74972 if ('ontouchstart' in document.documentElement) { 74973 jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).children().off('mouseover', null, jquery__WEBPACK_IMPORTED_MODULE_0___default.a.noop); 74974 } 74975 74976 toggles[i].setAttribute('aria-expanded', 'false'); 74977 jquery__WEBPACK_IMPORTED_MODULE_0___default()(dropdownMenu).removeClass(ClassName.SHOW); 74978 jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).removeClass(ClassName.SHOW).trigger(jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.HIDDEN, relatedTarget)); 74979 } 74980 } 74981 }, { 74982 key: "_getParentFromElement", 74983 value: function _getParentFromElement(element) { 74984 var parent; 74985 var selector = _util__WEBPACK_IMPORTED_MODULE_2__["default"].getSelectorFromElement(element); 74986 74987 if (selector) { 74988 parent = document.querySelector(selector); 74989 } 74990 74991 return parent || element.parentNode; 74992 } // eslint-disable-next-line complexity 74993 74994 }, { 74995 key: "_dataApiKeydownHandler", 74996 value: function _dataApiKeydownHandler(event) { 74997 // If not input/textarea: 74998 // - And not a key in REGEXP_KEYDOWN => not a dropdown command 74999 // If input/textarea: 75000 // - If space key => not a dropdown command 75001 // - If key is other than escape 75002 // - If key is not up or down => not a dropdown command 75003 // - If trigger inside the menu => not a dropdown command 75004 if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { 75005 return; 75006 } 75007 75008 event.preventDefault(); 75009 event.stopPropagation(); 75010 75011 if (this.disabled || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).hasClass(ClassName.DISABLED)) { 75012 return; 75013 } 75014 75015 var parent = Dropdown._getParentFromElement(this); 75016 75017 var isActive = jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).hasClass(ClassName.SHOW); 75018 75019 if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) { 75020 if (event.which === ESCAPE_KEYCODE) { 75021 var toggle = parent.querySelector(Selector.DATA_TOGGLE); 75022 jquery__WEBPACK_IMPORTED_MODULE_0___default()(toggle).trigger('focus'); 75023 } 75024 75025 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('click'); 75026 return; 75027 } 75028 75029 var items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS)); 75030 75031 if (items.length === 0) { 75032 return; 75033 } 75034 75035 var index = items.indexOf(event.target); 75036 75037 if (event.which === ARROW_UP_KEYCODE && index > 0) { 75038 // Up 75039 index--; 75040 } 75041 75042 if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { 75043 // Down 75044 index++; 75045 } 75046 75047 if (index < 0) { 75048 index = 0; 75049 } 75050 75051 items[index].focus(); 75052 } 75053 }]); 75054 75055 return Dropdown; 75056}(); 75057/** 75058 * ------------------------------------------------------------------------ 75059 * Data Api implementation 75060 * ------------------------------------------------------------------------ 75061 */ 75062 75063 75064jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on("".concat(Event.CLICK_DATA_API, " ").concat(Event.KEYUP_DATA_API), Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { 75065 event.preventDefault(); 75066 event.stopPropagation(); 75067 75068 Dropdown._jQueryInterface.call(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle'); 75069}).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { 75070 e.stopPropagation(); 75071}); 75072/** 75073 * ------------------------------------------------------------------------ 75074 * jQuery 75075 * ------------------------------------------------------------------------ 75076 */ 75077 75078jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = Dropdown._jQueryInterface; 75079jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].Constructor = Dropdown; 75080 75081jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].noConflict = function () { 75082 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = JQUERY_NO_CONFLICT; 75083 return Dropdown._jQueryInterface; 75084}; 75085 75086/* harmony default export */ __webpack_exports__["default"] = (Dropdown); 75087 75088/***/ }), 75089
vendor: 25,193 bytes, lines 75090-75726
75090/***/ "../storefront-reference-architecture/node_modules/bootstrap/js/src/modal.js": 75091/*!***********************************************************************************!*\ 75092 !*** ../storefront-reference-architecture/node_modules/bootstrap/js/src/modal.js ***! 75093 \***********************************************************************************/ 75094/*! exports provided: default */ 75095/***/ (function(module, __webpack_exports__, __webpack_require__) { 75096 75097"use strict"; 75098__webpack_require__.r(__webpack_exports__); 75099/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js"); 75100/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 75101/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/util.js"); 75102function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 75103 75104function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } 75105 75106function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 75107 75108function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 75109 75110function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 75111 75112function _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); } } 75113 75114function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 75115 75116/** 75117 * -------------------------------------------------------------------------- 75118 * Bootstrap (v4.3.1): modal.js 75119 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 75120 * -------------------------------------------------------------------------- 75121 */ 75122 75123 75124/** 75125 * ------------------------------------------------------------------------ 75126 * Constants 75127 * ------------------------------------------------------------------------ 75128 */ 75129 75130var NAME = 'modal'; 75131var VERSION = '4.3.1'; 75132var DATA_KEY = 'bs.modal'; 75133var EVENT_KEY = ".".concat(DATA_KEY); 75134var DATA_API_KEY = '.data-api'; 75135var JQUERY_NO_CONFLICT = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME]; 75136var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key 75137 75138var Default = { 75139 backdrop: true, 75140 keyboard: true, 75141 focus: true, 75142 show: true 75143}; 75144var DefaultType = { 75145 backdrop: '(boolean|string)', 75146 keyboard: 'boolean', 75147 focus: 'boolean', 75148 show: 'boolean' 75149}; 75150var Event = { 75151 HIDE: "hide".concat(EVENT_KEY), 75152 HIDDEN: "hidden".concat(EVENT_KEY), 75153 SHOW: "show".concat(EVENT_KEY), 75154 SHOWN: "shown".concat(EVENT_KEY), 75155 FOCUSIN: "focusin".concat(EVENT_KEY), 75156 RESIZE: "resize".concat(EVENT_KEY), 75157 CLICK_DISMISS: "click.dismiss".concat(EVENT_KEY), 75158 KEYDOWN_DISMISS: "keydown.dismiss".concat(EVENT_KEY), 75159 MOUSEUP_DISMISS: "mouseup.dismiss".concat(EVENT_KEY), 75160 MOUSEDOWN_DISMISS: "mousedown.dismiss".concat(EVENT_KEY), 75161 CLICK_DATA_API: "click".concat(EVENT_KEY).concat(DATA_API_KEY) 75162}; 75163var ClassName = { 75164 SCROLLABLE: 'modal-dialog-scrollable', 75165 SCROLLBAR_MEASURER: 'modal-scrollbar-measure', 75166 BACKDROP: 'modal-backdrop', 75167 OPEN: 'modal-open', 75168 FADE: 'fade', 75169 SHOW: 'show' 75170}; 75171var Selector = { 75172 DIALOG: '.modal-dialog', 75173 MODAL_BODY: '.modal-body', 75174 DATA_TOGGLE: '[data-toggle="modal"]', 75175 DATA_DISMISS: '[data-dismiss="modal"]', 75176 FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', 75177 STICKY_CONTENT: '.sticky-top' 75178}; 75179/** 75180 * ------------------------------------------------------------------------ 75181 * Class Definition 75182 * ------------------------------------------------------------------------ 75183 */ 75184 75185var Modal = /*#__PURE__*/function () { 75186 function Modal(element, config) { 75187 _classCallCheck(this, Modal); 75188 75189 this._config = this._getConfig(config); 75190 this._element = element; 75191 this._dialog = element.querySelector(Selector.DIALOG); 75192 this._backdrop = null; 75193 this._isShown = false; 75194 this._isBodyOverflowing = false; 75195 this._ignoreBackdropClick = false; 75196 this._isTransitioning = false; 75197 this._scrollbarWidth = 0; 75198 } // Getters 75199 75200 75201 _createClass(Modal, [{ 75202 key: "toggle", 75203 value: // Public 75204 function toggle(relatedTarget) { 75205 return this._isShown ? this.hide() : this.show(relatedTarget); 75206 } 75207 }, { 75208 key: "show", 75209 value: function show(relatedTarget) { 75210 var _this = this; 75211 75212 if (this._isShown || this._isTransitioning) { 75213 return; 75214 } 75215 75216 if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.FADE)) { 75217 this._isTransitioning = true; 75218 } 75219 75220 var showEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.SHOW, { 75221 relatedTarget: relatedTarget 75222 }); 75223 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).trigger(showEvent); 75224 75225 if (this._isShown || showEvent.isDefaultPrevented()) { 75226 return; 75227 } 75228 75229 this._isShown = true; 75230 75231 this._checkScrollbar(); 75232 75233 this._setScrollbar(); 75234 75235 this._adjustDialog(); 75236 75237 this._setEscapeEvent(); 75238 75239 this._setResizeEvent(); 75240 75241 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) { 75242 return _this.hide(event); 75243 }); 75244 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () { 75245 jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this._element).one(Event.MOUSEUP_DISMISS, function (event) { 75246 if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).is(_this._element)) { 75247 _this._ignoreBackdropClick = true; 75248 } 75249 }); 75250 }); 75251 75252 this._showBackdrop(function () { 75253 return _this._showElement(relatedTarget); 75254 }); 75255 } 75256 }, { 75257 key: "hide", 75258 value: function hide(event) { 75259 var _this2 = this; 75260 75261 if (event) { 75262 event.preventDefault(); 75263 } 75264 75265 if (!this._isShown || this._isTransitioning) { 75266 return; 75267 } 75268 75269 var hideEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.HIDE); 75270 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).trigger(hideEvent); 75271 75272 if (!this._isShown || hideEvent.isDefaultPrevented()) { 75273 return; 75274 } 75275 75276 this._isShown = false; 75277 var transition = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.FADE); 75278 75279 if (transition) { 75280 this._isTransitioning = true; 75281 } 75282 75283 this._setEscapeEvent(); 75284 75285 this._setResizeEvent(); 75286 75287 jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).off(Event.FOCUSIN); 75288 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).removeClass(ClassName.SHOW); 75289 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).off(Event.CLICK_DISMISS); 75290 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._dialog).off(Event.MOUSEDOWN_DISMISS); 75291 75292 if (transition) { 75293 var transitionDuration = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getTransitionDurationFromElement(this._element); 75294 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).one(_util__WEBPACK_IMPORTED_MODULE_1__["default"].TRANSITION_END, function (event) { 75295 return _this2._hideModal(event); 75296 }).emulateTransitionEnd(transitionDuration); 75297 } else { 75298 this._hideModal(); 75299 } 75300 } 75301 }, { 75302 key: "dispose", 75303 value: function dispose() { 75304 [window, this._element, this._dialog].forEach(function (htmlElement) { 75305 return jquery__WEBPACK_IMPORTED_MODULE_0___default()(htmlElement).off(EVENT_KEY); 75306 }); 75307 /** 75308 * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API` 75309 * Do not move `document` in `htmlElements` array 75310 * It will remove `Event.CLICK_DATA_API` event that should remain 75311 */ 75312 75313 jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).off(Event.FOCUSIN); 75314 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.removeData(this._element, DATA_KEY); 75315 this._config = null; 75316 this._element = null; 75317 this._dialog = null; 75318 this._backdrop = null; 75319 this._isShown = null; 75320 this._isBodyOverflowing = null; 75321 this._ignoreBackdropClick = null; 75322 this._isTransitioning = null; 75323 this._scrollbarWidth = null; 75324 } 75325 }, { 75326 key: "handleUpdate", 75327 value: function handleUpdate() { 75328 this._adjustDialog(); 75329 } // Private 75330 75331 }, { 75332 key: "_getConfig", 75333 value: function _getConfig(config) { 75334 config = _objectSpread(_objectSpread({}, Default), config); 75335 _util__WEBPACK_IMPORTED_MODULE_1__["default"].typeCheckConfig(NAME, config, DefaultType); 75336 return config; 75337 } 75338 }, { 75339 key: "_showElement", 75340 value: function _showElement(relatedTarget) { 75341 var _this3 = this; 75342 75343 var transition = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.FADE); 75344 75345 if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { 75346 // Don't move modal's DOM position 75347 document.body.appendChild(this._element); 75348 } 75349 75350 this._element.style.display = 'block'; 75351 75352 this._element.removeAttribute('aria-hidden'); 75353 75354 this._element.setAttribute('aria-modal', true); 75355 75356 if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._dialog).hasClass(ClassName.SCROLLABLE)) { 75357 this._dialog.querySelector(Selector.MODAL_BODY).scrollTop = 0; 75358 } else { 75359 this._element.scrollTop = 0; 75360 } 75361 75362 if (transition) { 75363 _util__WEBPACK_IMPORTED_MODULE_1__["default"].reflow(this._element); 75364 } 75365 75366 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).addClass(ClassName.SHOW); 75367 75368 if (this._config.focus) { 75369 this._enforceFocus(); 75370 } 75371 75372 var shownEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.SHOWN, { 75373 relatedTarget: relatedTarget 75374 }); 75375 75376 var transitionComplete = function transitionComplete() { 75377 if (_this3._config.focus) { 75378 _this3._element.focus(); 75379 } 75380 75381 _this3._isTransitioning = false; 75382 jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this3._element).trigger(shownEvent); 75383 }; 75384 75385 if (transition) { 75386 var transitionDuration = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getTransitionDurationFromElement(this._dialog); 75387 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._dialog).one(_util__WEBPACK_IMPORTED_MODULE_1__["default"].TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration); 75388 } else { 75389 transitionComplete(); 75390 } 75391 } 75392 }, { 75393 key: "_enforceFocus", 75394 value: function _enforceFocus() { 75395 var _this4 = this; 75396 75397 jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).off(Event.FOCUSIN) // Guard against infinite focus loop 75398 .on(Event.FOCUSIN, function (event) { 75399 if (document !== event.target && _this4._element !== event.target && jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this4._element).has(event.target).length === 0) { 75400 _this4._element.focus(); 75401 } 75402 }); 75403 } 75404 }, { 75405 key: "_setEscapeEvent", 75406 value: function _setEscapeEvent() { 75407 var _this5 = this; 75408 75409 if (this._isShown && this._config.keyboard) { 75410 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).on(Event.KEYDOWN_DISMISS, function (event) { 75411 if (event.which === ESCAPE_KEYCODE) { 75412 event.preventDefault(); 75413 75414 _this5.hide(); 75415 } 75416 }); 75417 } else if (!this._isShown) { 75418 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).off(Event.KEYDOWN_DISMISS); 75419 } 75420 } 75421 }, { 75422 key: "_setResizeEvent", 75423 value: function _setResizeEvent() { 75424 var _this6 = this; 75425 75426 if (this._isShown) { 75427 jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(Event.RESIZE, function (event) { 75428 return _this6.handleUpdate(event); 75429 }); 75430 } else { 75431 jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(Event.RESIZE); 75432 } 75433 } 75434 }, { 75435 key: "_hideModal", 75436 value: function _hideModal() { 75437 var _this7 = this; 75438 75439 this._element.style.display = 'none'; 75440 75441 this._element.setAttribute('aria-hidden', true); 75442 75443 this._element.removeAttribute('aria-modal'); 75444 75445 this._isTransitioning = false; 75446 75447 this._showBackdrop(function () { 75448 jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).removeClass(ClassName.OPEN); 75449 75450 _this7._resetAdjustments(); 75451 75452 _this7._resetScrollbar(); 75453 75454 jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this7._element).trigger(Event.HIDDEN); 75455 }); 75456 } 75457 }, { 75458 key: "_removeBackdrop", 75459 value: function _removeBackdrop() { 75460 if (this._backdrop) { 75461 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._backdrop).remove(); 75462 this._backdrop = null; 75463 } 75464 } 75465 }, { 75466 key: "_showBackdrop", 75467 value: function _showBackdrop(callback) { 75468 var _this8 = this; 75469 75470 var animate = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : ''; 75471 75472 if (this._isShown && this._config.backdrop) { 75473 this._backdrop = document.createElement('div'); 75474 this._backdrop.className = ClassName.BACKDROP; 75475 75476 if (animate) { 75477 this._backdrop.classList.add(animate); 75478 } 75479 75480 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._backdrop).appendTo(document.body); 75481 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).on(Event.CLICK_DISMISS, function (event) { 75482 if (_this8._ignoreBackdropClick) { 75483 _this8._ignoreBackdropClick = false; 75484 return; 75485 } 75486 75487 if (event.target !== event.currentTarget) { 75488 return; 75489 } 75490 75491 if (_this8._config.backdrop === 'static') { 75492 _this8._element.focus(); 75493 } else { 75494 _this8.hide(); 75495 } 75496 }); 75497 75498 if (animate) { 75499 _util__WEBPACK_IMPORTED_MODULE_1__["default"].reflow(this._backdrop); 75500 } 75501 75502 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._backdrop).addClass(ClassName.SHOW); 75503 75504 if (!callback) { 75505 return; 75506 } 75507 75508 if (!animate) { 75509 callback(); 75510 return; 75511 } 75512 75513 var backdropTransitionDuration = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getTransitionDurationFromElement(this._backdrop); 75514 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._backdrop).one(_util__WEBPACK_IMPORTED_MODULE_1__["default"].TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration); 75515 } else if (!this._isShown && this._backdrop) { 75516 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._backdrop).removeClass(ClassName.SHOW); 75517 75518 var callbackRemove = function callbackRemove() { 75519 _this8._removeBackdrop(); 75520 75521 if (callback) { 75522 callback(); 75523 } 75524 }; 75525 75526 if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.FADE)) { 75527 var _backdropTransitionDuration = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getTransitionDurationFromElement(this._backdrop); 75528 75529 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._backdrop).one(_util__WEBPACK_IMPORTED_MODULE_1__["default"].TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration); 75530 } else { 75531 callbackRemove(); 75532 } 75533 } else if (callback) { 75534 callback(); 75535 } 75536 } // ---------------------------------------------------------------------- 75537 // the following methods are used to handle overflowing modals 75538 // todo (fat): these should probably be refactored out of modal.js 75539 // ---------------------------------------------------------------------- 75540 75541 }, { 75542 key: "_adjustDialog", 75543 value: function _adjustDialog() { 75544 var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 75545 75546 if (!this._isBodyOverflowing && isModalOverflowing) { 75547 this._element.style.paddingLeft = "".concat(this._scrollbarWidth, "px"); 75548 } 75549 75550 if (this._isBodyOverflowing && !isModalOverflowing) { 75551 this._element.style.paddingRight = "".concat(this._scrollbarWidth, "px"); 75552 } 75553 } 75554 }, { 75555 key: "_resetAdjustments", 75556 value: function _resetAdjustments() { 75557 this._element.style.paddingLeft = ''; 75558 this._element.style.paddingRight = ''; 75559 } 75560 }, { 75561 key: "_checkScrollbar", 75562 value: function _checkScrollbar() { 75563 var rect = document.body.getBoundingClientRect(); 75564 this._isBodyOverflowing = rect.left + rect.right < window.innerWidth; 75565 this._scrollbarWidth = this._getScrollbarWidth(); 75566 } 75567 }, { 75568 key: "_setScrollbar", 75569 value: function _setScrollbar() { 75570 var _this9 = this; 75571 75572 if (this._isBodyOverflowing) { 75573 // Note: DOMNode.style.paddingRight returns the actual value or '' if not set 75574 // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set 75575 var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT)); 75576 var stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT)); // Adjust fixed content padding 75577 75578 jquery__WEBPACK_IMPORTED_MODULE_0___default()(fixedContent).each(function (index, element) { 75579 var actualPadding = element.style.paddingRight; 75580 var calculatedPadding = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).css('padding-right'); 75581 jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).data('padding-right', actualPadding).css('padding-right', "".concat(parseFloat(calculatedPadding) + _this9._scrollbarWidth, "px")); 75582 }); // Adjust sticky content margin 75583 75584 jquery__WEBPACK_IMPORTED_MODULE_0___default()(stickyContent).each(function (index, element) { 75585 var actualMargin = element.style.marginRight; 75586 var calculatedMargin = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).css('margin-right'); 75587 jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).data('margin-right', actualMargin).css('margin-right', "".concat(parseFloat(calculatedMargin) - _this9._scrollbarWidth, "px")); 75588 }); // Adjust body padding 75589 75590 var actualPadding = document.body.style.paddingRight; 75591 var calculatedPadding = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).css('padding-right'); 75592 jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).data('padding-right', actualPadding).css('padding-right', "".concat(parseFloat(calculatedPadding) + this._scrollbarWidth, "px")); 75593 } 75594 75595 jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).addClass(ClassName.OPEN); 75596 } 75597 }, { 75598 key: "_resetScrollbar", 75599 value: function _resetScrollbar() { 75600 // Restore fixed content padding 75601 var fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT)); 75602 jquery__WEBPACK_IMPORTED_MODULE_0___default()(fixedContent).each(function (index, element) { 75603 var padding = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).data('padding-right'); 75604 jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).removeData('padding-right'); 75605 element.style.paddingRight = padding ? padding : ''; 75606 }); // Restore sticky content 75607 75608 var elements = [].slice.call(document.querySelectorAll("".concat(Selector.STICKY_CONTENT))); 75609 jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements).each(function (index, element) { 75610 var margin = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).data('margin-right'); 75611 75612 if (typeof margin !== 'undefined') { 75613 jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).css('margin-right', margin).removeData('margin-right'); 75614 } 75615 }); // Restore body padding 75616 75617 var padding = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).data('padding-right'); 75618 jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).removeData('padding-right'); 75619 document.body.style.paddingRight = padding ? padding : ''; 75620 } 75621 }, { 75622 key: "_getScrollbarWidth", 75623 value: function _getScrollbarWidth() { 75624 // thx d.walsh 75625 var scrollDiv = document.createElement('div'); 75626 scrollDiv.className = ClassName.SCROLLBAR_MEASURER; 75627 document.body.appendChild(scrollDiv); 75628 var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; 75629 document.body.removeChild(scrollDiv); 75630 return scrollbarWidth; 75631 } // Static 75632 75633 }], [{ 75634 key: "VERSION", 75635 get: function get() { 75636 return VERSION; 75637 } 75638 }, { 75639 key: "Default", 75640 get: function get() { 75641 return Default; 75642 } 75643 }, { 75644 key: "_jQueryInterface", 75645 value: function _jQueryInterface(config, relatedTarget) { 75646 return this.each(function () { 75647 var data = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(DATA_KEY); 75648 75649 var _config = _objectSpread(_objectSpread(_objectSpread({}, Default), jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data()), _typeof(config) === 'object' && config ? config : {}); 75650 75651 if (!data) { 75652 data = new Modal(this, _config); 75653 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(DATA_KEY, data); 75654 } 75655 75656 if (typeof config === 'string') { 75657 if (typeof data[config] === 'undefined') { 75658 throw new TypeError("No method named \"".concat(config, "\"")); 75659 } 75660 75661 data[config](relatedTarget); 75662 } else if (_config.show) { 75663 data.show(relatedTarget); 75664 } 75665 }); 75666 } 75667 }]); 75668 75669 return Modal; 75670}(); 75671/** 75672 * ------------------------------------------------------------------------ 75673 * Data Api implementation 75674 * ------------------------------------------------------------------------ 75675 */ 75676 75677 75678jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { 75679 var _this10 = this; 75680 75681 var target; 75682 var selector = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getSelectorFromElement(this); 75683 75684 if (selector) { 75685 target = document.querySelector(selector); 75686 } 75687 75688 var config = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).data(DATA_KEY) ? 'toggle' : _objectSpread(_objectSpread({}, jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).data()), jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data()); 75689 75690 if (this.tagName === 'A' || this.tagName === 'AREA') { 75691 event.preventDefault(); 75692 } 75693 75694 var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).one(Event.SHOW, function (showEvent) { 75695 if (showEvent.isDefaultPrevented()) { 75696 // Only register focus restorer if modal will actually get shown 75697 return; 75698 } 75699 75700 $target.one(Event.HIDDEN, function () { 75701 if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this10).is(':visible')) { 75702 _this10.focus(); 75703 } 75704 }); 75705 }); 75706 75707 Modal._jQueryInterface.call(jquery__WEBPACK_IMPORTED_MODULE_0___default()(target), config, this); 75708}); 75709/** 75710 * ------------------------------------------------------------------------ 75711 * jQuery 75712 * ------------------------------------------------------------------------ 75713 */ 75714 75715jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = Modal._jQueryInterface; 75716jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].Constructor = Modal; 75717 75718jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].noConflict = function () { 75719 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = JQUERY_NO_CONFLICT; 75720 return Modal._jQueryInterface; 75721}; 75722 75723/* harmony default export */ __webpack_exports__["default"] = (Modal); 75724 75725/***/ }), 75726
vendor: 10,972 bytes, lines 75727-75971
75727/***/ "../storefront-reference-architecture/node_modules/bootstrap/js/src/popover.js": 75728/*!*************************************************************************************!*\ 75729 !*** ../storefront-reference-architecture/node_modules/bootstrap/js/src/popover.js ***! 75730 \*************************************************************************************/ 75731/*! exports provided: default */ 75732/***/ (function(module, __webpack_exports__, __webpack_require__) { 75733 75734"use strict"; 75735__webpack_require__.r(__webpack_exports__); 75736/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js"); 75737/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 75738/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tooltip */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/tooltip.js"); 75739function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 75740 75741function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 75742 75743function _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); } } 75744 75745function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 75746 75747function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 75748 75749function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 75750 75751function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } 75752 75753function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 75754 75755function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 75756 75757function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } 75758 75759function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 75760 75761function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } 75762 75763function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 75764 75765function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 75766 75767/** 75768 * -------------------------------------------------------------------------- 75769 * Bootstrap (v4.3.1): popover.js 75770 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 75771 * -------------------------------------------------------------------------- 75772 */ 75773 75774 75775/** 75776 * ------------------------------------------------------------------------ 75777 * Constants 75778 * ------------------------------------------------------------------------ 75779 */ 75780 75781var NAME = 'popover'; 75782var VERSION = '4.3.1'; 75783var DATA_KEY = 'bs.popover'; 75784var EVENT_KEY = ".".concat(DATA_KEY); 75785var JQUERY_NO_CONFLICT = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME]; 75786var CLASS_PREFIX = 'bs-popover'; 75787var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)".concat(CLASS_PREFIX, "\\S+"), 'g'); 75788 75789var Default = _objectSpread(_objectSpread({}, _tooltip__WEBPACK_IMPORTED_MODULE_1__["default"].Default), {}, { 75790 placement: 'right', 75791 trigger: 'click', 75792 content: '', 75793 template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>' 75794}); 75795 75796var DefaultType = _objectSpread(_objectSpread({}, _tooltip__WEBPACK_IMPORTED_MODULE_1__["default"].DefaultType), {}, { 75797 content: '(string|element|function)' 75798}); 75799 75800var ClassName = { 75801 FADE: 'fade', 75802 SHOW: 'show' 75803}; 75804var Selector = { 75805 TITLE: '.popover-header', 75806 CONTENT: '.popover-body' 75807}; 75808var Event = { 75809 HIDE: "hide".concat(EVENT_KEY), 75810 HIDDEN: "hidden".concat(EVENT_KEY), 75811 SHOW: "show".concat(EVENT_KEY), 75812 SHOWN: "shown".concat(EVENT_KEY), 75813 INSERTED: "inserted".concat(EVENT_KEY), 75814 CLICK: "click".concat(EVENT_KEY), 75815 FOCUSIN: "focusin".concat(EVENT_KEY), 75816 FOCUSOUT: "focusout".concat(EVENT_KEY), 75817 MOUSEENTER: "mouseenter".concat(EVENT_KEY), 75818 MOUSELEAVE: "mouseleave".concat(EVENT_KEY) 75819}; 75820/** 75821 * ------------------------------------------------------------------------ 75822 * Class Definition 75823 * ------------------------------------------------------------------------ 75824 */ 75825 75826var Popover = /*#__PURE__*/function (_Tooltip) { 75827 _inherits(Popover, _Tooltip); 75828 75829 var _super = _createSuper(Popover); 75830 75831 function Popover() { 75832 _classCallCheck(this, Popover); 75833 75834 return _super.apply(this, arguments); 75835 } 75836 75837 _createClass(Popover, [{ 75838 key: "isWithContent", 75839 value: // Overrides 75840 function isWithContent() { 75841 return this.getTitle() || this._getContent(); 75842 } 75843 }, { 75844 key: "addAttachmentClass", 75845 value: function addAttachmentClass(attachment) { 75846 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.getTipElement()).addClass("".concat(CLASS_PREFIX, "-").concat(attachment)); 75847 } 75848 }, { 75849 key: "getTipElement", 75850 value: function getTipElement() { 75851 this.tip = this.tip || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.config.template)[0]; 75852 return this.tip; 75853 } 75854 }, { 75855 key: "setContent", 75856 value: function setContent() { 75857 var $tip = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.getTipElement()); // We use append for html objects to maintain js events 75858 75859 this.setElementContent($tip.find(Selector.TITLE), this.getTitle()); 75860 75861 var content = this._getContent(); 75862 75863 if (typeof content === 'function') { 75864 content = content.call(this.element); 75865 } 75866 75867 this.setElementContent($tip.find(Selector.CONTENT), content); 75868 $tip.removeClass("".concat(ClassName.FADE, " ").concat(ClassName.SHOW)); 75869 } // Private 75870 75871 }, { 75872 key: "_getContent", 75873 value: function _getContent() { 75874 return this.element.getAttribute('data-content') || this.config.content; 75875 } 75876 }, { 75877 key: "_cleanTipClass", 75878 value: function _cleanTipClass() { 75879 var $tip = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.getTipElement()); 75880 var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); 75881 75882 if (tabClass !== null && tabClass.length > 0) { 75883 $tip.removeClass(tabClass.join('')); 75884 } 75885 } // Static 75886 75887 }], [{ 75888 key: "VERSION", 75889 get: // Getters 75890 function get() { 75891 return VERSION; 75892 } 75893 }, { 75894 key: "Default", 75895 get: function get() { 75896 return Default; 75897 } 75898 }, { 75899 key: "NAME", 75900 get: function get() { 75901 return NAME; 75902 } 75903 }, { 75904 key: "DATA_KEY", 75905 get: function get() { 75906 return DATA_KEY; 75907 } 75908 }, { 75909 key: "Event", 75910 get: function get() { 75911 return Event; 75912 } 75913 }, { 75914 key: "EVENT_KEY", 75915 get: function get() { 75916 return EVENT_KEY; 75917 } 75918 }, { 75919 key: "DefaultType", 75920 get: function get() { 75921 return DefaultType; 75922 } 75923 }, { 75924 key: "_jQueryInterface", 75925 value: function _jQueryInterface(config) { 75926 return this.each(function () { 75927 var data = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(DATA_KEY); 75928 75929 var _config = _typeof(config) === 'object' ? config : null; 75930 75931 if (!data && /dispose|hide/.test(config)) { 75932 return; 75933 } 75934 75935 if (!data) { 75936 data = new Popover(this, _config); 75937 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(DATA_KEY, data); 75938 } 75939 75940 if (typeof config === 'string') { 75941 if (typeof data[config] === 'undefined') { 75942 throw new TypeError("No method named \"".concat(config, "\"")); 75943 } 75944 75945 data[config](); 75946 } 75947 }); 75948 } 75949 }]); 75950 75951 return Popover; 75952}(_tooltip__WEBPACK_IMPORTED_MODULE_1__["default"]); 75953/** 75954 * ------------------------------------------------------------------------ 75955 * jQuery 75956 * ------------------------------------------------------------------------ 75957 */ 75958 75959 75960jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = Popover._jQueryInterface; 75961jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].Constructor = Popover; 75962 75963jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].noConflict = function () { 75964 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = JQUERY_NO_CONFLICT; 75965 return Popover._jQueryInterface; 75966}; 75967 75968/* harmony default export */ __webpack_exports__["default"] = (Popover); 75969 75970/***/ }), 75971
vendor: 13,835 bytes, lines 75972-76323
75972/***/ "../storefront-reference-architecture/node_modules/bootstrap/js/src/scrollspy.js": 75973/*!***************************************************************************************!*\ 75974 !*** ../storefront-reference-architecture/node_modules/bootstrap/js/src/scrollspy.js ***! 75975 \***************************************************************************************/ 75976/*! exports provided: default */ 75977/***/ (function(module, __webpack_exports__, __webpack_require__) { 75978 75979"use strict"; 75980__webpack_require__.r(__webpack_exports__); 75981/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js"); 75982/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 75983/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/util.js"); 75984function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 75985 75986function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } 75987 75988function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 75989 75990function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 75991 75992function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 75993 75994function _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); } } 75995 75996function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 75997 75998/** 75999 * -------------------------------------------------------------------------- 76000 * Bootstrap (v4.3.1): scrollspy.js 76001 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 76002 * -------------------------------------------------------------------------- 76003 */ 76004 76005 76006/** 76007 * ------------------------------------------------------------------------ 76008 * Constants 76009 * ------------------------------------------------------------------------ 76010 */ 76011 76012var NAME = 'scrollspy'; 76013var VERSION = '4.3.1'; 76014var DATA_KEY = 'bs.scrollspy'; 76015var EVENT_KEY = ".".concat(DATA_KEY); 76016var DATA_API_KEY = '.data-api'; 76017var JQUERY_NO_CONFLICT = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME]; 76018var Default = { 76019 offset: 10, 76020 method: 'auto', 76021 target: '' 76022}; 76023var DefaultType = { 76024 offset: 'number', 76025 method: 'string', 76026 target: '(string|element)' 76027}; 76028var Event = { 76029 ACTIVATE: "activate".concat(EVENT_KEY), 76030 SCROLL: "scroll".concat(EVENT_KEY), 76031 LOAD_DATA_API: "load".concat(EVENT_KEY).concat(DATA_API_KEY) 76032}; 76033var ClassName = { 76034 DROPDOWN_ITEM: 'dropdown-item', 76035 DROPDOWN_MENU: 'dropdown-menu', 76036 ACTIVE: 'active' 76037}; 76038var Selector = { 76039 DATA_SPY: '[data-spy="scroll"]', 76040 ACTIVE: '.active', 76041 NAV_LIST_GROUP: '.nav, .list-group', 76042 NAV_LINKS: '.nav-link', 76043 NAV_ITEMS: '.nav-item', 76044 LIST_ITEMS: '.list-group-item', 76045 DROPDOWN: '.dropdown', 76046 DROPDOWN_ITEMS: '.dropdown-item', 76047 DROPDOWN_TOGGLE: '.dropdown-toggle' 76048}; 76049var OffsetMethod = { 76050 OFFSET: 'offset', 76051 POSITION: 'position' 76052}; 76053/** 76054 * ------------------------------------------------------------------------ 76055 * Class Definition 76056 * ------------------------------------------------------------------------ 76057 */ 76058 76059var ScrollSpy = /*#__PURE__*/function () { 76060 function ScrollSpy(element, config) { 76061 var _this = this; 76062 76063 _classCallCheck(this, ScrollSpy); 76064 76065 this._element = element; 76066 this._scrollElement = element.tagName === 'BODY' ? window : element; 76067 this._config = this._getConfig(config); 76068 this._selector = "".concat(this._config.target, " ").concat(Selector.NAV_LINKS, ",") + "".concat(this._config.target, " ").concat(Selector.LIST_ITEMS, ",") + "".concat(this._config.target, " ").concat(Selector.DROPDOWN_ITEMS); 76069 this._offsets = []; 76070 this._targets = []; 76071 this._activeTarget = null; 76072 this._scrollHeight = 0; 76073 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._scrollElement).on(Event.SCROLL, function (event) { 76074 return _this._process(event); 76075 }); 76076 this.refresh(); 76077 76078 this._process(); 76079 } // Getters 76080 76081 76082 _createClass(ScrollSpy, [{ 76083 key: "refresh", 76084 value: // Public 76085 function refresh() { 76086 var _this2 = this; 76087 76088 var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION; 76089 var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; 76090 var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; 76091 this._offsets = []; 76092 this._targets = []; 76093 this._scrollHeight = this._getScrollHeight(); 76094 var targets = [].slice.call(document.querySelectorAll(this._selector)); 76095 targets.map(function (element) { 76096 var target; 76097 var targetSelector = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getSelectorFromElement(element); 76098 76099 if (targetSelector) { 76100 target = document.querySelector(targetSelector); 76101 } 76102 76103 if (target) { 76104 var targetBCR = target.getBoundingClientRect(); 76105 76106 if (targetBCR.width || targetBCR.height) { 76107 // TODO (fat): remove sketch reliance on jQuery position/offset 76108 return [jquery__WEBPACK_IMPORTED_MODULE_0___default()(target)[offsetMethod]().top + offsetBase, targetSelector]; 76109 } 76110 } 76111 76112 return null; 76113 }).filter(function (item) { 76114 return item; 76115 }).sort(function (a, b) { 76116 return a[0] - b[0]; 76117 }).forEach(function (item) { 76118 _this2._offsets.push(item[0]); 76119 76120 _this2._targets.push(item[1]); 76121 }); 76122 } 76123 }, { 76124 key: "dispose", 76125 value: function dispose() { 76126 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.removeData(this._element, DATA_KEY); 76127 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._scrollElement).off(EVENT_KEY); 76128 this._element = null; 76129 this._scrollElement = null; 76130 this._config = null; 76131 this._selector = null; 76132 this._offsets = null; 76133 this._targets = null; 76134 this._activeTarget = null; 76135 this._scrollHeight = null; 76136 } // Private 76137 76138 }, { 76139 key: "_getConfig", 76140 value: function _getConfig(config) { 76141 config = _objectSpread(_objectSpread({}, Default), _typeof(config) === 'object' && config ? config : {}); 76142 76143 if (typeof config.target !== 'string') { 76144 var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(config.target).attr('id'); 76145 76146 if (!id) { 76147 id = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getUID(NAME); 76148 jquery__WEBPACK_IMPORTED_MODULE_0___default()(config.target).attr('id', id); 76149 } 76150 76151 config.target = "#".concat(id); 76152 } 76153 76154 _util__WEBPACK_IMPORTED_MODULE_1__["default"].typeCheckConfig(NAME, config, DefaultType); 76155 return config; 76156 } 76157 }, { 76158 key: "_getScrollTop", 76159 value: function _getScrollTop() { 76160 return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; 76161 } 76162 }, { 76163 key: "_getScrollHeight", 76164 value: function _getScrollHeight() { 76165 return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); 76166 } 76167 }, { 76168 key: "_getOffsetHeight", 76169 value: function _getOffsetHeight() { 76170 return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; 76171 } 76172 }, { 76173 key: "_process", 76174 value: function _process() { 76175 var scrollTop = this._getScrollTop() + this._config.offset; 76176 76177 var scrollHeight = this._getScrollHeight(); 76178 76179 var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); 76180 76181 if (this._scrollHeight !== scrollHeight) { 76182 this.refresh(); 76183 } 76184 76185 if (scrollTop >= maxScroll) { 76186 var target = this._targets[this._targets.length - 1]; 76187 76188 if (this._activeTarget !== target) { 76189 this._activate(target); 76190 } 76191 76192 return; 76193 } 76194 76195 if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) { 76196 this._activeTarget = null; 76197 76198 this._clear(); 76199 76200 return; 76201 } 76202 76203 var offsetLength = this._offsets.length; 76204 76205 for (var i = offsetLength; i--;) { 76206 var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); 76207 76208 if (isActiveTarget) { 76209 this._activate(this._targets[i]); 76210 } 76211 } 76212 } 76213 }, { 76214 key: "_activate", 76215 value: function _activate(target) { 76216 this._activeTarget = target; 76217 76218 this._clear(); 76219 76220 var queries = this._selector.split(',').map(function (selector) { 76221 return "".concat(selector, "[data-target=\"").concat(target, "\"],").concat(selector, "[href=\"").concat(target, "\"]"); 76222 }); 76223 76224 var $link = jquery__WEBPACK_IMPORTED_MODULE_0___default()([].slice.call(document.querySelectorAll(queries.join(',')))); 76225 76226 if ($link.hasClass(ClassName.DROPDOWN_ITEM)) { 76227 $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE); 76228 $link.addClass(ClassName.ACTIVE); 76229 } else { 76230 // Set triggered link as active 76231 $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active 76232 // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor 76233 76234 $link.parents(Selector.NAV_LIST_GROUP).prev("".concat(Selector.NAV_LINKS, ", ").concat(Selector.LIST_ITEMS)).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item 76235 76236 $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE); 76237 } 76238 76239 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._scrollElement).trigger(Event.ACTIVATE, { 76240 relatedTarget: target 76241 }); 76242 } 76243 }, { 76244 key: "_clear", 76245 value: function _clear() { 76246 [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) { 76247 return node.classList.contains(ClassName.ACTIVE); 76248 }).forEach(function (node) { 76249 return node.classList.remove(ClassName.ACTIVE); 76250 }); 76251 } // Static 76252 76253 }], [{ 76254 key: "VERSION", 76255 get: function get() { 76256 return VERSION; 76257 } 76258 }, { 76259 key: "Default", 76260 get: function get() { 76261 return Default; 76262 } 76263 }, { 76264 key: "_jQueryInterface", 76265 value: function _jQueryInterface(config) { 76266 return this.each(function () { 76267 var data = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(DATA_KEY); 76268 76269 var _config = _typeof(config) === 'object' && config; 76270 76271 if (!data) { 76272 data = new ScrollSpy(this, _config); 76273 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(DATA_KEY, data); 76274 } 76275 76276 if (typeof config === 'string') { 76277 if (typeof data[config] === 'undefined') { 76278 throw new TypeError("No method named \"".concat(config, "\"")); 76279 } 76280 76281 data[config](); 76282 } 76283 }); 76284 } 76285 }]); 76286 76287 return ScrollSpy; 76288}(); 76289/** 76290 * ------------------------------------------------------------------------ 76291 * Data Api implementation 76292 * ------------------------------------------------------------------------ 76293 */ 76294 76295 76296jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(Event.LOAD_DATA_API, function () { 76297 var scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY)); 76298 var scrollSpysLength = scrollSpys.length; 76299 76300 for (var i = scrollSpysLength; i--;) { 76301 var $spy = jquery__WEBPACK_IMPORTED_MODULE_0___default()(scrollSpys[i]); 76302 76303 ScrollSpy._jQueryInterface.call($spy, $spy.data()); 76304 } 76305}); 76306/** 76307 * ------------------------------------------------------------------------ 76308 * jQuery 76309 * ------------------------------------------------------------------------ 76310 */ 76311 76312jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = ScrollSpy._jQueryInterface; 76313jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].Constructor = ScrollSpy; 76314 76315jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].noConflict = function () { 76316 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = JQUERY_NO_CONFLICT; 76317 return ScrollSpy._jQueryInterface; 76318}; 76319 76320/* harmony default export */ __webpack_exports__["default"] = (ScrollSpy); 76321 76322/***/ }), 76323
vendor: 10,376 bytes, lines 76324-76590
76324/***/ "../storefront-reference-architecture/node_modules/bootstrap/js/src/tab.js": 76325/*!*********************************************************************************!*\ 76326 !*** ../storefront-reference-architecture/node_modules/bootstrap/js/src/tab.js ***! 76327 \*********************************************************************************/ 76328/*! exports provided: default */ 76329/***/ (function(module, __webpack_exports__, __webpack_require__) { 76330 76331"use strict"; 76332__webpack_require__.r(__webpack_exports__); 76333/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js"); 76334/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 76335/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/util.js"); 76336function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 76337 76338function _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); } } 76339 76340function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 76341 76342/** 76343 * -------------------------------------------------------------------------- 76344 * Bootstrap (v4.3.1): tab.js 76345 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 76346 * -------------------------------------------------------------------------- 76347 */ 76348 76349 76350/** 76351 * ------------------------------------------------------------------------ 76352 * Constants 76353 * ------------------------------------------------------------------------ 76354 */ 76355 76356var NAME = 'tab'; 76357var VERSION = '4.3.1'; 76358var DATA_KEY = 'bs.tab'; 76359var EVENT_KEY = ".".concat(DATA_KEY); 76360var DATA_API_KEY = '.data-api'; 76361var JQUERY_NO_CONFLICT = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME]; 76362var Event = { 76363 HIDE: "hide".concat(EVENT_KEY), 76364 HIDDEN: "hidden".concat(EVENT_KEY), 76365 SHOW: "show".concat(EVENT_KEY), 76366 SHOWN: "shown".concat(EVENT_KEY), 76367 CLICK_DATA_API: "click".concat(EVENT_KEY).concat(DATA_API_KEY) 76368}; 76369var ClassName = { 76370 DROPDOWN_MENU: 'dropdown-menu', 76371 ACTIVE: 'active', 76372 DISABLED: 'disabled', 76373 FADE: 'fade', 76374 SHOW: 'show' 76375}; 76376var Selector = { 76377 DROPDOWN: '.dropdown', 76378 NAV_LIST_GROUP: '.nav, .list-group', 76379 ACTIVE: '.active', 76380 ACTIVE_UL: '> li > .active', 76381 DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', 76382 DROPDOWN_TOGGLE: '.dropdown-toggle', 76383 DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active' 76384}; 76385/** 76386 * ------------------------------------------------------------------------ 76387 * Class Definition 76388 * ------------------------------------------------------------------------ 76389 */ 76390 76391var Tab = /*#__PURE__*/function () { 76392 function Tab(element) { 76393 _classCallCheck(this, Tab); 76394 76395 this._element = element; 76396 } // Getters 76397 76398 76399 _createClass(Tab, [{ 76400 key: "show", 76401 value: // Public 76402 function show() { 76403 var _this = this; 76404 76405 if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.ACTIVE) || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).hasClass(ClassName.DISABLED)) { 76406 return; 76407 } 76408 76409 var target; 76410 var previous; 76411 var listElement = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).closest(Selector.NAV_LIST_GROUP)[0]; 76412 var selector = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getSelectorFromElement(this._element); 76413 76414 if (listElement) { 76415 var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE; 76416 previous = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.makeArray(jquery__WEBPACK_IMPORTED_MODULE_0___default()(listElement).find(itemSelector)); 76417 previous = previous[previous.length - 1]; 76418 } 76419 76420 var hideEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.HIDE, { 76421 relatedTarget: this._element 76422 }); 76423 var showEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.SHOW, { 76424 relatedTarget: previous 76425 }); 76426 76427 if (previous) { 76428 jquery__WEBPACK_IMPORTED_MODULE_0___default()(previous).trigger(hideEvent); 76429 } 76430 76431 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this._element).trigger(showEvent); 76432 76433 if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) { 76434 return; 76435 } 76436 76437 if (selector) { 76438 target = document.querySelector(selector); 76439 } 76440 76441 this._activate(this._element, listElement); 76442 76443 var complete = function complete() { 76444 var hiddenEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.HIDDEN, { 76445 relatedTarget: _this._element 76446 }); 76447 var shownEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(Event.SHOWN, { 76448 relatedTarget: previous 76449 }); 76450 jquery__WEBPACK_IMPORTED_MODULE_0___default()(previous).trigger(hiddenEvent); 76451 jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this._element).trigger(shownEvent); 76452 }; 76453 76454 if (target) { 76455 this._activate(target, target.parentNode, complete); 76456 } else { 76457 complete(); 76458 } 76459 } 76460 }, { 76461 key: "dispose", 76462 value: function dispose() { 76463 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.removeData(this._element, DATA_KEY); 76464 this._element = null; 76465 } // Private 76466 76467 }, { 76468 key: "_activate", 76469 value: function _activate(element, container, callback) { 76470 var _this2 = this; 76471 76472 var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(container).find(Selector.ACTIVE_UL) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(container).children(Selector.ACTIVE); 76473 var active = activeElements[0]; 76474 var isTransitioning = callback && active && jquery__WEBPACK_IMPORTED_MODULE_0___default()(active).hasClass(ClassName.FADE); 76475 76476 var complete = function complete() { 76477 return _this2._transitionComplete(element, active, callback); 76478 }; 76479 76480 if (active && isTransitioning) { 76481 var transitionDuration = _util__WEBPACK_IMPORTED_MODULE_1__["default"].getTransitionDurationFromElement(active); 76482 jquery__WEBPACK_IMPORTED_MODULE_0___default()(active).removeClass(ClassName.SHOW).one(_util__WEBPACK_IMPORTED_MODULE_1__["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 76483 } else { 76484 complete(); 76485 } 76486 } 76487 }, { 76488 key: "_transitionComplete", 76489 value: function _transitionComplete(element, active, callback) { 76490 if (active) { 76491 jquery__WEBPACK_IMPORTED_MODULE_0___default()(active).removeClass(ClassName.ACTIVE); 76492 var dropdownChild = jquery__WEBPACK_IMPORTED_MODULE_0___default()(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0]; 76493 76494 if (dropdownChild) { 76495 jquery__WEBPACK_IMPORTED_MODULE_0___default()(dropdownChild).removeClass(ClassName.ACTIVE); 76496 } 76497 76498 if (active.getAttribute('role') === 'tab') { 76499 active.setAttribute('aria-selected', false); 76500 } 76501 } 76502 76503 jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).addClass(ClassName.ACTIVE); 76504 76505 if (element.getAttribute('role') === 'tab') { 76506 element.setAttribute('aria-selected', true); 76507 } 76508 76509 _util__WEBPACK_IMPORTED_MODULE_1__["default"].reflow(element); 76510 76511 if (element.classList.contains(ClassName.FADE)) { 76512 element.classList.add(ClassName.SHOW); 76513 } 76514 76515 if (element.parentNode && jquery__WEBPACK_IMPORTED_MODULE_0___default()(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) { 76516 var dropdownElement = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).closest(Selector.DROPDOWN)[0]; 76517 76518 if (dropdownElement) { 76519 var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE)); 76520 jquery__WEBPACK_IMPORTED_MODULE_0___default()(dropdownToggleList).addClass(ClassName.ACTIVE); 76521 } 76522 76523 element.setAttribute('aria-expanded', true); 76524 } 76525 76526 if (callback) { 76527 callback(); 76528 } 76529 } // Static 76530 76531 }], [{ 76532 key: "VERSION", 76533 get: function get() { 76534 return VERSION; 76535 } 76536 }, { 76537 key: "_jQueryInterface", 76538 value: function _jQueryInterface(config) { 76539 return this.each(function () { 76540 var $this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this); 76541 var data = $this.data(DATA_KEY); 76542 76543 if (!data) { 76544 data = new Tab(this); 76545 $this.data(DATA_KEY, data); 76546 } 76547 76548 if (typeof config === 'string') { 76549 if (typeof data[config] === 'undefined') { 76550 throw new TypeError("No method named \"".concat(config, "\"")); 76551 } 76552 76553 data[config](); 76554 } 76555 }); 76556 } 76557 }]); 76558 76559 return Tab; 76560}(); 76561/** 76562 * ------------------------------------------------------------------------ 76563 * Data Api implementation 76564 * ------------------------------------------------------------------------ 76565 */ 76566 76567 76568jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { 76569 event.preventDefault(); 76570 76571 Tab._jQueryInterface.call(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'show'); 76572}); 76573/** 76574 * ------------------------------------------------------------------------ 76575 * jQuery 76576 * ------------------------------------------------------------------------ 76577 */ 76578 76579jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = Tab._jQueryInterface; 76580jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].Constructor = Tab; 76581 76582jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME].noConflict = function () { 76583 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn[NAME] = JQUERY_NO_CONFLICT; 76584 return Tab._jQueryInterface; 76585}; 76586 76587/* harmony default export */ __webpack_exports__["default"] = (Tab); 76588 76589/***/ }), 76590
vendor: 4,322 bytes, lines 76591-76724
76591/***/ "../storefront-reference-architecture/node_modules/bootstrap/js/src/tools/sanitizer.js": 76592/*!*********************************************************************************************!*\ 76593 !*** ../storefront-reference-architecture/node_modules/bootstrap/js/src/tools/sanitizer.js ***! 76594 \*********************************************************************************************/ 76595/*! exports provided: DefaultWhitelist, sanitizeHtml */ 76596/***/ (function(module, __webpack_exports__, __webpack_require__) { 76597 76598"use strict"; 76599__webpack_require__.r(__webpack_exports__); 76600/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultWhitelist", function() { return DefaultWhitelist; }); 76601/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sanitizeHtml", function() { return sanitizeHtml; }); 76602/** 76603 * -------------------------------------------------------------------------- 76604 * Bootstrap (v4.3.1): tools/sanitizer.js 76605 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 76606 * -------------------------------------------------------------------------- 76607 */ 76608var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']; 76609var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; 76610var DefaultWhitelist = { 76611 // Global attributes allowed on any supplied element below. 76612 '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], 76613 a: ['target', 'href', 'title', 'rel'], 76614 area: [], 76615 b: [], 76616 br: [], 76617 col: [], 76618 code: [], 76619 div: [], 76620 em: [], 76621 hr: [], 76622 h1: [], 76623 h2: [], 76624 h3: [], 76625 h4: [], 76626 h5: [], 76627 h6: [], 76628 i: [], 76629 img: ['src', 'alt', 'title', 'width', 'height'], 76630 li: [], 76631 ol: [], 76632 p: [], 76633 pre: [], 76634 s: [], 76635 small: [], 76636 span: [], 76637 sub: [], 76638 sup: [], 76639 strong: [], 76640 u: [], 76641 ul: [] 76642}; 76643/** 76644 * A pattern that recognizes a commonly useful subset of URLs that are safe. 76645 * 76646 * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts 76647 */ 76648 76649var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi; 76650/** 76651 * A pattern that matches safe data URLs. Only matches image, video and audio types. 76652 * 76653 * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts 76654 */ 76655 76656var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i; 76657 76658function allowedAttribute(attr, allowedAttributeList) { 76659 var attrName = attr.nodeName.toLowerCase(); 76660 76661 if (allowedAttributeList.indexOf(attrName) !== -1) { 76662 if (uriAttrs.indexOf(attrName) !== -1) { 76663 return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN)); 76664 } 76665 76666 return true; 76667 } 76668 76669 var regExp = allowedAttributeList.filter(function (attrRegex) { 76670 return attrRegex instanceof RegExp; 76671 }); // Check if a regular expression validates the attribute. 76672 76673 for (var i = 0, l = regExp.length; i < l; i++) { 76674 if (attrName.match(regExp[i])) { 76675 return true; 76676 } 76677 } 76678 76679 return false; 76680} 76681 76682function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) { 76683 if (unsafeHtml.length === 0) { 76684 return unsafeHtml; 76685 } 76686 76687 if (sanitizeFn && typeof sanitizeFn === 'function') { 76688 return sanitizeFn(unsafeHtml); 76689 } 76690 76691 var domParser = new window.DOMParser(); 76692 var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); 76693 var whitelistKeys = Object.keys(whiteList); 76694 var elements = [].slice.call(createdDocument.body.querySelectorAll('*')); 76695 76696 var _loop = function _loop(i, len) { 76697 var el = elements[i]; 76698 var elName = el.nodeName.toLowerCase(); 76699 76700 if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) { 76701 el.parentNode.removeChild(el); 76702 return "continue"; 76703 } 76704 76705 var attributeList = [].slice.call(el.attributes); 76706 var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []); 76707 attributeList.forEach(function (attr) { 76708 if (!allowedAttribute(attr, whitelistedAttributes)) { 76709 el.removeAttribute(attr.nodeName); 76710 } 76711 }); 76712 }; 76713 76714 for (var i = 0, len = elements.length; i < len; i++) { 76715 var _ret = _loop(i, len); 76716 76717 if (_ret === "continue") continue; 76718 } 76719 76720 return createdDocument.body.innerHTML; 76721} 76722 76723/***/ }), 76724
vendor: 27,603 bytes, lines 76725-77508
76725/***/ "../storefront-reference-architecture/node_modules/bootstrap/js/src/tooltip.js": 76726/*!*************************************************************************************!*\ 76727 !*** ../storefront-reference-architecture/node_modules/bootstrap/js/src/tooltip.js ***! 76728 \*************************************************************************************/ 76729/*! exports provided: default */ 76730/***/ (function(module, __webpack_exports__, __webpack_require__) { 76731 76732"use strict"; 76733__webpack_require__.r(__webpack_exports__); 76734/* harmony import */ var _tools_sanitizer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tools/sanitizer */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/tools/sanitizer.js"); 76735/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js"); 76736/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__); 76737/* harmony import */ var popper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! popper.js */ "../rvw_autobahn_core/node_modules/popper.js/dist/esm/popper.js"); 76738/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ "../storefront-reference-architecture/node_modules/bootstrap/js/src/util.js"); 76739function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } 76740 76741function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 76742 76743function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 76744 76745function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 76746 76747function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 76748 76749function _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); } } 76750 76751function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 76752 76753/** 76754 * -------------------------------------------------------------------------- 76755 * Bootstrap (v4.3.1): tooltip.js 76756 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 76757 * -------------------------------------------------------------------------- 76758 */ 76759 76760 76761 76762 76763/** 76764 * ------------------------------------------------------------------------ 76765 * Constants 76766 * ------------------------------------------------------------------------ 76767 */ 76768 76769var NAME = 'tooltip'; 76770var VERSION = '4.3.1'; 76771var DATA_KEY = 'bs.tooltip'; 76772var EVENT_KEY = ".".concat(DATA_KEY); 76773var JQUERY_NO_CONFLICT = jquery__WEBPACK_IMPORTED_MODULE_1___default.a.fn[NAME]; 76774var CLASS_PREFIX = 'bs-tooltip'; 76775var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)".concat(CLASS_PREFIX, "\\S+"), 'g'); 76776var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']; 76777var DefaultType = { 76778 animation: 'boolean', 76779 template: 'string', 76780 title: '(string|element|function)', 76781 trigger: 'string', 76782 delay: '(number|object)', 76783 html: 'boolean', 76784 selector: '(string|boolean)', 76785 placement: '(string|function)', 76786 offset: '(number|string|function)', 76787 container: '(string|element|boolean)', 76788 fallbackPlacement: '(string|array)', 76789 boundary: '(string|element)', 76790 sanitize: 'boolean', 76791 sanitizeFn: '(null|function)', 76792 whiteList: 'object' 76793}; 76794var AttachmentMap = { 76795 AUTO: 'auto', 76796 TOP: 'top', 76797 RIGHT: 'right', 76798 BOTTOM: 'bottom', 76799 LEFT: 'left' 76800}; 76801var Default = { 76802 animation: true, 76803 template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>', 76804 trigger: 'hover focus', 76805 title: '', 76806 delay: 0, 76807 html: false, 76808 selector: false, 76809 placement: 'top', 76810 offset: 0, 76811 container: false, 76812 fallbackPlacement: 'flip', 76813 boundary: 'scrollParent', 76814 sanitize: true, 76815 sanitizeFn: null, 76816 whiteList: _tools_sanitizer__WEBPACK_IMPORTED_MODULE_0__["DefaultWhitelist"] 76817}; 76818var HoverState = { 76819 SHOW: 'show', 76820 OUT: 'out' 76821}; 76822var Event = { 76823 HIDE: "hide".concat(EVENT_KEY), 76824 HIDDEN: "hidden".concat(EVENT_KEY), 76825 SHOW: "show".concat(EVENT_KEY), 76826 SHOWN: "shown".concat(EVENT_KEY), 76827 INSERTED: "inserted".concat(EVENT_KEY), 76828 CLICK: "click".concat(EVENT_KEY), 76829 FOCUSIN: "focusin".concat(EVENT_KEY), 76830 FOCUSOUT: "focusout".concat(EVENT_KEY), 76831 MOUSEENTER: "mouseenter".concat(EVENT_KEY), 76832 MOUSELEAVE: "mouseleave".concat(EVENT_KEY) 76833}; 76834var ClassName = { 76835 FADE: 'fade', 76836 SHOW: 'show' 76837}; 76838var Selector = { 76839 TOOLTIP: '.tooltip', 76840 TOOLTIP_INNER: '.tooltip-inner', 76841 ARROW: '.arrow' 76842}; 76843var Trigger = { 76844 HOVER: 'hover', 76845 FOCUS: 'focus', 76846 CLICK: 'click', 76847 MANUAL: 'manual' 76848}; 76849/** 76850 * ------------------------------------------------------------------------ 76851 * Class Definition 76852 * ------------------------------------------------------------------------ 76853 */ 76854 76855var Tooltip = /*#__PURE__*/function () { 76856 function Tooltip(element, config) { 76857 _classCallCheck(this, Tooltip); 76858 76859 /** 76860 * Check for Popper dependency 76861 * Popper - https://popper.js.org 76862 */ 76863 if (typeof popper_js__WEBPACK_IMPORTED_MODULE_2__["default"] === 'undefined') { 76864 throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)'); 76865 } // private 76866 76867 76868 this._isEnabled = true; 76869 this._timeout = 0; 76870 this._hoverState = ''; 76871 this._activeTrigger = {}; 76872 this._popper = null; // Protected 76873 76874 this.element = element; 76875 this.config = this._getConfig(config); 76876 this.tip = null; 76877 76878 this._setListeners(); 76879 } // Getters 76880 76881 76882 _createClass(Tooltip, [{ 76883 key: "enable", 76884 value: // Public 76885 function enable() { 76886 this._isEnabled = true; 76887 } 76888 }, { 76889 key: "disable", 76890 value: function disable() { 76891 this._isEnabled = false; 76892 } 76893 }, { 76894 key: "toggleEnabled", 76895 value: function toggleEnabled() { 76896 this._isEnabled = !this._isEnabled; 76897 } 76898 }, { 76899 key: "toggle", 76900 value: function toggle(event) { 76901 if (!this._isEnabled) { 76902 return; 76903 } 76904 76905 if (event) { 76906 var dataKey = this.constructor.DATA_KEY; 76907 var context = jquery__WEBPACK_IMPORTED_MODULE_1___default()(event.currentTarget).data(dataKey); 76908 76909 if (!context) { 76910 context = new this.constructor(event.currentTarget, this._getDelegateConfig()); 76911 jquery__WEBPACK_IMPORTED_MODULE_1___default()(event.currentTarget).data(dataKey, context); 76912 } 76913 76914 context._activeTrigger.click = !context._activeTrigger.click; 76915 76916 if (context._isWithActiveTrigger()) { 76917 context._enter(null, context); 76918 } else { 76919 context._leave(null, context); 76920 } 76921 } else { 76922 if (jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.getTipElement()).hasClass(ClassName.SHOW)) { 76923 this._leave(null, this); 76924 76925 return; 76926 } 76927 76928 this._enter(null, this); 76929 } 76930 } 76931 }, { 76932 key: "dispose", 76933 value: function dispose() { 76934 clearTimeout(this._timeout); 76935 jquery__WEBPACK_IMPORTED_MODULE_1___default.a.removeData(this.element, this.constructor.DATA_KEY); 76936 jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.element).off(this.constructor.EVENT_KEY); 76937 jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.element).closest('.modal').off('hide.bs.modal'); 76938 76939 if (this.tip) { 76940 jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.tip).remove(); 76941 } 76942 76943 this._isEnabled = null; 76944 this._timeout = null; 76945 this._hoverState = null; 76946 this._activeTrigger = null; 76947 76948 if (this._popper !== null) { 76949 this._popper.destroy(); 76950 } 76951 76952 this._popper = null; 76953 this.element = null; 76954 this.config = null; 76955 this.tip = null; 76956 } 76957 }, { 76958 key: "show", 76959 value: function show() { 76960 var _this = this; 76961 76962 if (jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.element).css('display') === 'none') { 76963 throw new Error('Please use show on visible elements'); 76964 } 76965 76966 var showEvent = jquery__WEBPACK_IMPORTED_MODULE_1___default.a.Event(this.constructor.Event.SHOW); 76967 76968 if (this.isWithContent() && this._isEnabled) { 76969 jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.element).trigger(showEvent); 76970 var shadowRoot = _util__WEBPACK_IMPORTED_MODULE_3__["default"].findShadowRoot(this.element); 76971 var isInTheDom = jquery__WEBPACK_IMPORTED_MODULE_1___default.a.contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element); 76972 76973 if (showEvent.isDefaultPrevented() || !isInTheDom) { 76974 return; 76975 } 76976 76977 var tip = this.getTipElement(); 76978 var tipId = _util__WEBPACK_IMPORTED_MODULE_3__["default"].getUID(this.constructor.NAME); 76979 tip.setAttribute('id', tipId); 76980 this.element.setAttribute('aria-describedby', tipId); 76981 this.setContent(); 76982 76983 if (this.config.animation) { 76984 jquery__WEBPACK_IMPORTED_MODULE_1___default()(tip).addClass(ClassName.FADE); 76985 } 76986 76987 var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; 76988 76989 var attachment = this._getAttachment(placement); 76990 76991 this.addAttachmentClass(attachment); 76992 76993 var container = this._getContainer(); 76994 76995 jquery__WEBPACK_IMPORTED_MODULE_1___default()(tip).data(this.constructor.DATA_KEY, this); 76996 76997 if (!jquery__WEBPACK_IMPORTED_MODULE_1___default.a.contains(this.element.ownerDocument.documentElement, this.tip)) { 76998 jquery__WEBPACK_IMPORTED_MODULE_1___default()(tip).appendTo(container); 76999 } 77000 77001 jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.element).trigger(this.constructor.Event.INSERTED); 77002 this._popper = new popper_js__WEBPACK_IMPORTED_MODULE_2__["default"](this.element, tip, { 77003 placement: attachment, 77004 modifiers: { 77005 offset: this._getOffset(), 77006 flip: { 77007 behavior: this.config.fallbackPlacement 77008 }, 77009 arrow: { 77010 element: Selector.ARROW 77011 }, 77012 preventOverflow: { 77013 boundariesElement: this.config.boundary 77014 } 77015 }, 77016 onCreate: function onCreate(data) { 77017 if (data.originalPlacement !== data.placement) { 77018 _this._handlePopperPlacementChange(data); 77019 } 77020 }, 77021 onUpdate: function onUpdate(data) { 77022 return _this._handlePopperPlacementChange(data); 77023 } 77024 }); 77025 jquery__WEBPACK_IMPORTED_MODULE_1___default()(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra 77026 // empty mouseover listeners to the body's immediate children; 77027 // only needed because of broken event delegation on iOS 77028 // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html 77029 77030 if ('ontouchstart' in document.documentElement) { 77031 jquery__WEBPACK_IMPORTED_MODULE_1___default()(document.body).children().on('mouseover', null, jquery__WEBPACK_IMPORTED_MODULE_1___default.a.noop); 77032 } 77033 77034 var complete = function complete() { 77035 if (_this.config.animation) { 77036 _this._fixTransition(); 77037 } 77038 77039 var prevHoverState = _this._hoverState; 77040 _this._hoverState = null; 77041 jquery__WEBPACK_IMPORTED_MODULE_1___default()(_this.element).trigger(_this.constructor.Event.SHOWN); 77042 77043 if (prevHoverState === HoverState.OUT) { 77044 _this._leave(null, _this); 77045 } 77046 }; 77047 77048 if (jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.tip).hasClass(ClassName.FADE)) { 77049 var transitionDuration = _util__WEBPACK_IMPORTED_MODULE_3__["default"].getTransitionDurationFromElement(this.tip); 77050 jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.tip).one(_util__WEBPACK_IMPORTED_MODULE_3__["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 77051 } else { 77052 complete(); 77053 } 77054 } 77055 } 77056 }, { 77057 key: "hide", 77058 value: function hide(callback) { 77059 var _this2 = this; 77060 77061 var tip = this.getTipElement(); 77062 var hideEvent = jquery__WEBPACK_IMPORTED_MODULE_1___default.a.Event(this.constructor.Event.HIDE); 77063 77064 var complete = function complete() { 77065 if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) { 77066 tip.parentNode.removeChild(tip); 77067 } 77068 77069 _this2._cleanTipClass(); 77070 77071 _this2.element.removeAttribute('aria-describedby'); 77072 77073 jquery__WEBPACK_IMPORTED_MODULE_1___default()(_this2.element).trigger(_this2.constructor.Event.HIDDEN); 77074 77075 if (_this2._popper !== null) { 77076 _this2._popper.destroy(); 77077 } 77078 77079 if (callback) { 77080 callback(); 77081 } 77082 }; 77083 77084 jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.element).trigger(hideEvent); 77085 77086 if (hideEvent.isDefaultPrevented()) { 77087 return; 77088 } 77089 77090 jquery__WEBPACK_IMPORTED_MODULE_1___default()(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra 77091 // empty mouseover listeners we added for iOS support 77092 77093 if ('ontouchstart' in document.documentElement) { 77094 jquery__WEBPACK_IMPORTED_MODULE_1___default()(document.body).children().off('mouseover', null, jquery__WEBPACK_IMPORTED_MODULE_1___default.a.noop); 77095 } 77096 77097 this._activeTrigger[Trigger.CLICK] = false; 77098 this._activeTrigger[Trigger.FOCUS] = false; 77099 this._activeTrigger[Trigger.HOVER] = false; 77100 77101 if (jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.tip).hasClass(ClassName.FADE)) { 77102 var transitionDuration = _util__WEBPACK_IMPORTED_MODULE_3__["default"].getTransitionDurationFromElement(tip); 77103 jquery__WEBPACK_IMPORTED_MODULE_1___default()(tip).one(_util__WEBPACK_IMPORTED_MODULE_3__["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); 77104 } else { 77105 complete(); 77106 } 77107 77108 this._hoverState = ''; 77109 } 77110 }, { 77111 key: "update", 77112 value: function update() { 77113 if (this._popper !== null) { 77114 this._popper.scheduleUpdate(); 77115 } 77116 } // Protected 77117 77118 }, { 77119 key: "isWithContent", 77120 value: function isWithContent() { 77121 return Boolean(this.getTitle()); 77122 } 77123 }, { 77124 key: "addAttachmentClass", 77125 value: function addAttachmentClass(attachment) { 77126 jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.getTipElement()).addClass("".concat(CLASS_PREFIX, "-").concat(attachment)); 77127 } 77128 }, { 77129 key: "getTipElement", 77130 value: function getTipElement() { 77131 this.tip = this.tip || jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.config.template)[0]; 77132 return this.tip; 77133 } 77134 }, { 77135 key: "setContent", 77136 value: function setContent() { 77137 var tip = this.getTipElement(); 77138 this.setElementContent(jquery__WEBPACK_IMPORTED_MODULE_1___default()(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle()); 77139 jquery__WEBPACK_IMPORTED_MODULE_1___default()(tip).removeClass("".concat(ClassName.FADE, " ").concat(ClassName.SHOW)); 77140 } 77141 }, { 77142 key: "setElementContent", 77143 value: function setElementContent($element, content) { 77144 if (_typeof(content) === 'object' && (content.nodeType || content.jquery)) { 77145 // Content is a DOM node or a jQuery 77146 if (this.config.html) { 77147 if (!jquery__WEBPACK_IMPORTED_MODULE_1___default()(content).parent().is($element)) { 77148 $element.empty().append(content); 77149 } 77150 } else { 77151 $element.text(jquery__WEBPACK_IMPORTED_MODULE_1___default()(content).text()); 77152 } 77153 77154 return; 77155 } 77156 77157 if (this.config.html) { 77158 if (this.config.sanitize) { 77159 content = Object(_tools_sanitizer__WEBPACK_IMPORTED_MODULE_0__["sanitizeHtml"])(content, this.config.whiteList, this.config.sanitizeFn); 77160 } 77161 77162 $element.html(content); 77163 } else { 77164 $element.text(content); 77165 } 77166 } 77167 }, { 77168 key: "getTitle", 77169 value: function getTitle() { 77170 var title = this.element.getAttribute('data-original-title'); 77171 77172 if (!title) { 77173 title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; 77174 } 77175 77176 return title; 77177 } // Private 77178 77179 }, { 77180 key: "_getOffset", 77181 value: function _getOffset() { 77182 var _this3 = this; 77183 77184 var offset = {}; 77185 77186 if (typeof this.config.offset === 'function') { 77187 offset.fn = function (data) { 77188 data.offsets = _objectSpread(_objectSpread({}, data.offsets), _this3.config.offset(data.offsets, _this3.element) || {}); 77189 return data; 77190 }; 77191 } else { 77192 offset.offset = this.config.offset; 77193 } 77194 77195 return offset; 77196 } 77197 }, { 77198 key: "_getContainer", 77199 value: function _getContainer() { 77200 if (this.config.container === false) { 77201 return document.body; 77202 } 77203 77204 if (_util__WEBPACK_IMPORTED_MODULE_3__["default"].isElement(this.config.container)) { 77205 return jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.config.container); 77206 } 77207 77208 return jquery__WEBPACK_IMPORTED_MODULE_1___default()(document).find(this.config.container); 77209 } 77210 }, { 77211 key: "_getAttachment", 77212 value: function _getAttachment(placement) { 77213 return AttachmentMap[placement.toUpperCase()]; 77214 } 77215 }, { 77216 key: "_setListeners", 77217 value: function _setListeners() { 77218 var _this4 = this; 77219 77220 var triggers = this.config.trigger.split(' '); 77221 triggers.forEach(function (trigger) { 77222 if (trigger === 'click') { 77223 jquery__WEBPACK_IMPORTED_MODULE_1___default()(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) { 77224 return _this4.toggle(event); 77225 }); 77226 } else if (trigger !== Trigger.MANUAL) { 77227 var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN; 77228 var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT; 77229 jquery__WEBPACK_IMPORTED_MODULE_1___default()(_this4.element).on(eventIn, _this4.config.selector, function (event) { 77230 return _this4._enter(event); 77231 }).on(eventOut, _this4.config.selector, function (event) { 77232 return _this4._leave(event); 77233 }); 77234 } 77235 }); 77236 jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.element).closest('.modal').on('hide.bs.modal', function () { 77237 if (_this4.element) { 77238 _this4.hide(); 77239 } 77240 }); 77241 77242 if (this.config.selector) { 77243 this.config = _objectSpread(_objectSpread({}, this.config), {}, { 77244 trigger: 'manual', 77245 selector: '' 77246 }); 77247 } else { 77248 this._fixTitle(); 77249 } 77250 } 77251 }, { 77252 key: "_fixTitle", 77253 value: function _fixTitle() { 77254 var titleType = _typeof(this.element.getAttribute('data-original-title')); 77255 77256 if (this.element.getAttribute('title') || titleType !== 'string') { 77257 this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); 77258 this.element.setAttribute('title', ''); 77259 } 77260 } 77261 }, { 77262 key: "_enter", 77263 value: function _enter(event, context) { 77264 var dataKey = this.constructor.DATA_KEY; 77265 context = context || jquery__WEBPACK_IMPORTED_MODULE_1___default()(event.currentTarget).data(dataKey); 77266 77267 if (!context) { 77268 context = new this.constructor(event.currentTarget, this._getDelegateConfig()); 77269 jquery__WEBPACK_IMPORTED_MODULE_1___default()(event.currentTarget).data(dataKey, context); 77270 } 77271 77272 if (event) { 77273 context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true; 77274 } 77275 77276 if (jquery__WEBPACK_IMPORTED_MODULE_1___default()(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) { 77277 context._hoverState = HoverState.SHOW; 77278 return; 77279 } 77280 77281 clearTimeout(context._timeout); 77282 context._hoverState = HoverState.SHOW; 77283 77284 if (!context.config.delay || !context.config.delay.show) { 77285 context.show(); 77286 return; 77287 } 77288 77289 context._timeout = setTimeout(function () { 77290 if (context._hoverState === HoverState.SHOW) { 77291 context.show(); 77292 } 77293 }, context.config.delay.show); 77294 } 77295 }, { 77296 key: "_leave", 77297 value: function _leave(event, context) { 77298 var dataKey = this.constructor.DATA_KEY; 77299 context = context || jquery__WEBPACK_IMPORTED_MODULE_1___default()(event.currentTarget).data(dataKey); 77300 77301 if (!context) { 77302 context = new this.constructor(event.currentTarget, this._getDelegateConfig()); 77303 jquery__WEBPACK_IMPORTED_MODULE_1___default()(event.currentTarget).data(dataKey, context); 77304 } 77305 77306 if (event) { 77307 context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false; 77308 } 77309 77310 if (context._isWithActiveTrigger()) { 77311 return; 77312 } 77313 77314 clearTimeout(context._timeout); 77315 context._hoverState = HoverState.OUT; 77316 77317 if (!context.config.delay || !context.config.delay.hide) { 77318 context.hide(); 77319 return; 77320 } 77321 77322 context._timeout = setTimeout(function () { 77323 if (context._hoverState === HoverState.OUT) { 77324 context.hide(); 77325 } 77326 }, context.config.delay.hide); 77327 } 77328 }, { 77329 key: "_isWithActiveTrigger", 77330 value: function _isWithActiveTrigger() { 77331 for (var trigger in this._activeTrigger) { 77332 if (this._activeTrigger[trigger]) { 77333 return true; 77334 } 77335 } 77336 77337 return false; 77338 } 77339 }, { 77340 key: "_getConfig", 77341 value: function _getConfig(config) { 77342 var dataAttributes = jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.element).data(); 77343 Object.keys(dataAttributes).forEach(function (dataAttr) { 77344 if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { 77345 delete dataAttributes[dataAttr]; 77346 } 77347 }); 77348 config = _objectSpread(_objectSpread(_objectSpread({}, this.constructor.Default), dataAttributes), _typeof(config) === 'object' && config ? config : {}); 77349 77350 if (typeof config.delay === 'number') { 77351 config.delay = { 77352 show: config.delay, 77353 hide: config.delay 77354 }; 77355 } 77356 77357 if (typeof config.title === 'number') { 77358 config.title = config.title.toString(); 77359 } 77360 77361 if (typeof config.content === 'number') { 77362 config.content = config.content.toString(); 77363 } 77364 77365 _util__WEBPACK_IMPORTED_MODULE_3__["default"].typeCheckConfig(NAME, config, this.constructor.DefaultType); 77366 77367 if (config.sanitize) { 77368 config.template = Object(_tools_sanitizer__WEBPACK_IMPORTED_MODULE_0__["sanitizeHtml"])(config.template, config.whiteList, config.sanitizeFn); 77369 } 77370 77371 return config; 77372 } 77373 }, { 77374 key: "_getDelegateConfig", 77375 value: function _getDelegateConfig() { 77376 var config = {}; 77377 77378 if (this.config) { 77379 for (var key in this.config) { 77380 if (this.constructor.Default[key] !== this.config[key]) { 77381 config[key] = this.config[key]; 77382 } 77383 } 77384 } 77385 77386 return config; 77387 } 77388 }, { 77389 key: "_cleanTipClass", 77390 value: function _cleanTipClass() { 77391 var $tip = jquery__WEBPACK_IMPORTED_MODULE_1___default()(this.getTipElement()); 77392 var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); 77393 77394 if (tabClass !== null && tabClass.length) { 77395 $tip.removeClass(tabClass.join('')); 77396 } 77397 } 77398 }, { 77399 key: "_handlePopperPlacementChange", 77400 value: function _handlePopperPlacementChange(popperData) { 77401 var popperInstance = popperData.instance; 77402 this.tip = popperInstance.popper; 77403 77404 this._cleanTipClass(); 77405 77406 this.addAttachmentClass(this._getAttachment(popperData.placement)); 77407 } 77408 }, { 77409 key: "_fixTransition", 77410 value: function _fixTransition() { 77411 var tip = this.getTipElement(); 77412 var initConfigAnimation = this.config.animation; 77413 77414 if (tip.getAttribute('x-placement') !== null) { 77415 return; 77416 } 77417 77418 jquery__WEBPACK_IMPORTED_MODULE_1___default()(tip).removeClass(ClassName.FADE); 77419 this.config.animation = false; 77420 this.hide(); 77421 this.show(); 77422 this.config.animation = initConfigAnimation; 77423 } // Static 77424 77425 }], [{ 77426 key: "VERSION", 77427 get: function get() { 77428 return VERSION; 77429 } 77430 }, { 77431 key: "Default", 77432 get: function get() { 77433 return Default; 77434 } 77435 }, { 77436 key: "NAME", 77437 get: function get() { 77438 return NAME; 77439 } 77440 }, { 77441 key: "DATA_KEY", 77442 get: function get() { 77443 return DATA_KEY; 77444 } 77445 }, { 77446 key: "Event", 77447 get: function get() { 77448 return Event; 77449 } 77450 }, { 77451 key: "EVENT_KEY", 77452 get: function get() { 77453 return EVENT_KEY; 77454 } 77455 }, { 77456 key: "DefaultType", 77457 get: function get() { 77458 return DefaultType; 77459 } 77460 }, { 77461 key: "_jQueryInterface", 77462 value: function _jQueryInterface(config) { 77463 return this.each(function () { 77464 var data = jquery__WEBPACK_IMPORTED_MODULE_1___default()(this).data(DATA_KEY); 77465 77466 var _config = _typeof(config) === 'object' && config; 77467 77468 if (!data && /dispose|hide/.test(config)) { 77469 return; 77470 } 77471 77472 if (!data) { 77473 data = new Tooltip(this, _config); 77474 jquery__WEBPACK_IMPORTED_MODULE_1___default()(this).data(DATA_KEY, data); 77475 } 77476 77477 if (typeof config === 'string') { 77478 if (typeof data[config] === 'undefined') { 77479 throw new TypeError("No method named \"".concat(config, "\"")); 77480 } 77481 77482 data[config](); 77483 } 77484 }); 77485 } 77486 }]); 77487 77488 return Tooltip; 77489}(); 77490/** 77491 * ------------------------------------------------------------------------ 77492 * jQuery 77493 * ------------------------------------------------------------------------ 77494 */ 77495 77496 77497jquery__WEBPACK_IMPORTED_MODULE_1___default.a.fn[NAME] = Tooltip._jQueryInterface; 77498jquery__WEBPACK_IMPORTED_MODULE_1___default.a.fn[NAME].Constructor = Tooltip; 77499 77500jquery__WEBPACK_IMPORTED_MODULE_1___default.a.fn[NAME].noConflict = function () { 77501 jquery__WEBPACK_IMPORTED_MODULE_1___default.a.fn[NAME] = JQUERY_NO_CONFLICT; 77502 return Tooltip._jQueryInterface; 77503}; 77504 77505/* harmony default export */ __webpack_exports__["default"] = (Tooltip); 77506 77507/***/ }), 77508
vendor: 6,144 bytes, lines 77509-77678
77509/***/ "../storefront-reference-architecture/node_modules/bootstrap/js/src/util.js": 77510/*!**********************************************************************************!*\ 77511 !*** ../storefront-reference-architecture/node_modules/bootstrap/js/src/util.js ***! 77512 \**********************************************************************************/ 77513/*! exports provided: default */ 77514/***/ (function(module, __webpack_exports__, __webpack_require__) { 77515 77516"use strict"; 77517__webpack_require__.r(__webpack_exports__); 77518/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "../rvw_autobahn_core/node_modules/jquery/dist/jquery.js"); 77519/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 77520/** 77521 * -------------------------------------------------------------------------- 77522 * Bootstrap (v4.3.1): util.js 77523 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 77524 * -------------------------------------------------------------------------- 77525 */ 77526 77527/** 77528 * ------------------------------------------------------------------------ 77529 * Private TransitionEnd Helpers 77530 * ------------------------------------------------------------------------ 77531 */ 77532 77533var TRANSITION_END = 'transitionend'; 77534var MAX_UID = 1000000; 77535var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp) 77536 77537function toType(obj) { 77538 return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); 77539} 77540 77541function getSpecialTransitionEndEvent() { 77542 return { 77543 bindType: TRANSITION_END, 77544 delegateType: TRANSITION_END, 77545 handle: function handle(event) { 77546 if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).is(this)) { 77547 return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params 77548 } 77549 77550 return undefined; // eslint-disable-line no-undefined 77551 } 77552 }; 77553} 77554 77555function transitionEndEmulator(duration) { 77556 var _this = this; 77557 77558 var called = false; 77559 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).one(Util.TRANSITION_END, function () { 77560 called = true; 77561 }); 77562 setTimeout(function () { 77563 if (!called) { 77564 Util.triggerTransitionEnd(_this); 77565 } 77566 }, duration); 77567 return this; 77568} 77569 77570function setTransitionEndSupport() { 77571 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn.emulateTransitionEnd = transitionEndEmulator; 77572 jquery__WEBPACK_IMPORTED_MODULE_0___default.a.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); 77573} 77574/** 77575 * -------------------------------------------------------------------------- 77576 * Public Util Api 77577 * -------------------------------------------------------------------------- 77578 */ 77579 77580 77581var Util = { 77582 TRANSITION_END: 'bsTransitionEnd', 77583 getUID: function getUID(prefix) { 77584 do { 77585 // eslint-disable-next-line no-bitwise 77586 prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here 77587 } while (document.getElementById(prefix)); 77588 77589 return prefix; 77590 }, 77591 getSelectorFromElement: function getSelectorFromElement(element) { 77592 var selector = element.getAttribute('data-target'); 77593 77594 if (!selector || selector === '#') { 77595 var hrefAttr = element.getAttribute('href'); 77596 selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''; 77597 } 77598 77599 try { 77600 return document.querySelector(selector) ? selector : null; 77601 } catch (err) { 77602 return null; 77603 } 77604 }, 77605 getTransitionDurationFromElement: function getTransitionDurationFromElement(element) { 77606 if (!element) { 77607 return 0; 77608 } // Get transition-duration of the element 77609 77610 77611 var transitionDuration = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).css('transition-duration'); 77612 var transitionDelay = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).css('transition-delay'); 77613 var floatTransitionDuration = parseFloat(transitionDuration); 77614 var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found 77615 77616 if (!floatTransitionDuration && !floatTransitionDelay) { 77617 return 0; 77618 } // If multiple durations are defined, take the first 77619 77620 77621 transitionDuration = transitionDuration.split(',')[0]; 77622 transitionDelay = transitionDelay.split(',')[0]; 77623 return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; 77624 }, 77625 reflow: function reflow(element) { 77626 return element.offsetHeight; 77627 }, 77628 triggerTransitionEnd: function triggerTransitionEnd(element) { 77629 jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).trigger(TRANSITION_END); 77630 }, 77631 // TODO: Remove in v5 77632 supportsTransitionEnd: function supportsTransitionEnd() { 77633 return Boolean(TRANSITION_END); 77634 }, 77635 isElement: function isElement(obj) { 77636 return (obj[0] || obj).nodeType; 77637 }, 77638 typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { 77639 for (var property in configTypes) { 77640 if (Object.prototype.hasOwnProperty.call(configTypes, property)) { 77641 var expectedTypes = configTypes[property]; 77642 var value = config[property]; 77643 var valueType = value && Util.isElement(value) ? 'element' : toType(value); 77644 77645 if (!new RegExp(expectedTypes).test(valueType)) { 77646 throw new Error("".concat(componentName.toUpperCase(), ": ") + "Option \"".concat(property, "\" provided type \"").concat(valueType, "\" ") + "but expected type \"".concat(expectedTypes, "\".")); 77647 } 77648 } 77649 } 77650 }, 77651 findShadowRoot: function findShadowRoot(element) { 77652 if (!document.documentElement.attachShadow) { 77653 return null; 77654 } // Can find the shadow root otherwise it'll return the document 77655 77656 77657 if (typeof element.getRootNode === 'function') { 77658 var root = element.getRootNode(); 77659 return root instanceof ShadowRoot ? root : null; 77660 } 77661 77662 if (element instanceof ShadowRoot) { 77663 return element; 77664 } // when we don't find a shadow root 77665 77666 77667 if (!element.parentNode) { 77668 return null; 77669 } 77670 77671 return Util.findShadowRoot(element.parentNode); 77672 } 77673}; 77674setTransitionEndSupport(); 77675/* harmony default export */ __webpack_exports__["default"] = (Util); 77676 77677/***/ }), 77678
vendor: 2,567 bytes, lines 77679-77777
77679/***/ "../storefront-reference-architecture/node_modules/ieee754/index.js": 77680/*!**************************************************************************!*\ 77681 !*** ../storefront-reference-architecture/node_modules/ieee754/index.js ***! 77682 \**************************************************************************/ 77683/*! no static exports found */ 77684/***/ (function(module, exports) { 77685 77686/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ 77687exports.read = function (buffer, offset, isLE, mLen, nBytes) { 77688 var e, m; 77689 var eLen = nBytes * 8 - mLen - 1; 77690 var eMax = (1 << eLen) - 1; 77691 var eBias = eMax >> 1; 77692 var nBits = -7; 77693 var i = isLE ? nBytes - 1 : 0; 77694 var d = isLE ? -1 : 1; 77695 var s = buffer[offset + i]; 77696 i += d; 77697 e = s & (1 << -nBits) - 1; 77698 s >>= -nBits; 77699 nBits += eLen; 77700 77701 for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} 77702 77703 m = e & (1 << -nBits) - 1; 77704 e >>= -nBits; 77705 nBits += mLen; 77706 77707 for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} 77708 77709 if (e === 0) { 77710 e = 1 - eBias; 77711 } else if (e === eMax) { 77712 return m ? NaN : (s ? -1 : 1) * Infinity; 77713 } else { 77714 m = m + Math.pow(2, mLen); 77715 e = e - eBias; 77716 } 77717 77718 return (s ? -1 : 1) * m * Math.pow(2, e - mLen); 77719}; 77720 77721exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { 77722 var e, m, c; 77723 var eLen = nBytes * 8 - mLen - 1; 77724 var eMax = (1 << eLen) - 1; 77725 var eBias = eMax >> 1; 77726 var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; 77727 var i = isLE ? 0 : nBytes - 1; 77728 var d = isLE ? 1 : -1; 77729 var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; 77730 value = Math.abs(value); 77731 77732 if (isNaN(value) || value === Infinity) { 77733 m = isNaN(value) ? 1 : 0; 77734 e = eMax; 77735 } else { 77736 e = Math.floor(Math.log(value) / Math.LN2); 77737 77738 if (value * (c = Math.pow(2, -e)) < 1) { 77739 e--; 77740 c *= 2; 77741 } 77742 77743 if (e + eBias >= 1) { 77744 value += rt / c; 77745 } else { 77746 value += rt * Math.pow(2, 1 - eBias); 77747 } 77748 77749 if (value * c >= 2) { 77750 e++; 77751 c /= 2; 77752 } 77753 77754 if (e + eBias >= eMax) { 77755 m = 0; 77756 e = eMax; 77757 } else if (e + eBias >= 1) { 77758 m = (value * c - 1) * Math.pow(2, mLen); 77759 e = e + eBias; 77760 } else { 77761 m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); 77762 e = 0; 77763 } 77764 } 77765 77766 for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} 77767 77768 e = e << mLen | m; 77769 eLen += mLen; 77770 77771 for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} 77772 77773 buffer[offset + i - d] |= s * 128; 77774}; 77775 77776/***/ }), 77777
vendor: 526 bytes, lines 77778-77792
77778/***/ "../storefront-reference-architecture/node_modules/isarray/index.js": 77779/*!**************************************************************************!*\ 77780 !*** ../storefront-reference-architecture/node_modules/isarray/index.js ***! 77781 \**************************************************************************/ 77782/*! no static exports found */ 77783/***/ (function(module, exports) { 77784 77785var toString = {}.toString; 77786 77787module.exports = Array.isArray || function (arr) { 77788 return toString.call(arr) == '[object Array]'; 77789}; 77790 77791/***/ }), 77792
vendor: 624 bytes, lines 77793-77808
77793/***/ "../storefront-reference-architecture/node_modules/lodash/_Symbol.js": 77794/*!***************************************************************************!*\ 77795 !*** ../storefront-reference-architecture/node_modules/lodash/_Symbol.js ***! 77796 \***************************************************************************/ 77797/*! no static exports found */ 77798/***/ (function(module, exports, __webpack_require__) { 77799 77800var root = __webpack_require__(/*! ./_root */ "../storefront-reference-architecture/node_modules/lodash/_root.js"); 77801/** Built-in value references. */ 77802 77803 77804var _Symbol = root.Symbol; 77805module.exports = _Symbol; 77806 77807/***/ }), 77808
vendor: 1,494 bytes, lines 77809-77846
77809/***/ "../storefront-reference-architecture/node_modules/lodash/_baseGetTag.js": 77810/*!*******************************************************************************!*\ 77811 !*** ../storefront-reference-architecture/node_modules/lodash/_baseGetTag.js ***! 77812 \*******************************************************************************/ 77813/*! no static exports found */ 77814/***/ (function(module, exports, __webpack_require__) { 77815 77816var _Symbol = __webpack_require__(/*! ./_Symbol */ "../storefront-reference-architecture/node_modules/lodash/_Symbol.js"), 77817 getRawTag = __webpack_require__(/*! ./_getRawTag */ "../storefront-reference-architecture/node_modules/lodash/_getRawTag.js"), 77818 objectToString = __webpack_require__(/*! ./_objectToString */ "../storefront-reference-architecture/node_modules/lodash/_objectToString.js"); 77819/** `Object#toString` result references. */ 77820 77821 77822var nullTag = '[object Null]', 77823 undefinedTag = '[object Undefined]'; 77824/** Built-in value references. */ 77825 77826var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined; 77827/** 77828 * The base implementation of `getTag` without fallbacks for buggy environments. 77829 * 77830 * @private 77831 * @param {*} value The value to query. 77832 * @returns {string} Returns the `toStringTag`. 77833 */ 77834 77835function baseGetTag(value) { 77836 if (value == null) { 77837 return value === undefined ? undefinedTag : nullTag; 77838 } 77839 77840 return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); 77841} 77842 77843module.exports = baseGetTag; 77844 77845/***/ }), 77846
vendor: 960 bytes, lines 77847-77874
77847/***/ "../storefront-reference-architecture/node_modules/lodash/_baseTrim.js": 77848/*!*****************************************************************************!*\ 77849 !*** ../storefront-reference-architecture/node_modules/lodash/_baseTrim.js ***! 77850 \*****************************************************************************/ 77851/*! no static exports found */ 77852/***/ (function(module, exports, __webpack_require__) { 77853 77854var trimmedEndIndex = __webpack_require__(/*! ./_trimmedEndIndex */ "../storefront-reference-architecture/node_modules/lodash/_trimmedEndIndex.js"); 77855/** Used to match leading whitespace. */ 77856 77857 77858var reTrimStart = /^\s+/; 77859/** 77860 * The base implementation of `_.trim`. 77861 * 77862 * @private 77863 * @param {string} string The string to trim. 77864 * @returns {string} Returns the trimmed string. 77865 */ 77866 77867function baseTrim(string) { 77868 return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string; 77869} 77870 77871module.exports = baseTrim; 77872 77873/***/ }), 77874
vendor: 1,267 bytes, lines 77875-77890
77875/***/ "../storefront-reference-architecture/node_modules/lodash/_freeGlobal.js": 77876/*!*******************************************************************************!*\ 77877 !*** ../storefront-reference-architecture/node_modules/lodash/_freeGlobal.js ***! 77878 \*******************************************************************************/ 77879/*! no static exports found */ 77880/***/ (function(module, exports, __webpack_require__) { 77881 77882/* WEBPACK VAR INJECTION */(function(global) {function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 77883 77884/** Detect free variable `global` from Node.js. */ 77885var freeGlobal = (typeof global === "undefined" ? "undefined" : _typeof(global)) == 'object' && global && global.Object === Object && global; 77886module.exports = freeGlobal; 77887/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../sfra-webpack-builder/node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 77888 77889/***/ }), 77890
vendor: 1,663 bytes, lines 77891-77949
77891/***/ "../storefront-reference-architecture/node_modules/lodash/_getRawTag.js": 77892/*!******************************************************************************!*\ 77893 !*** ../storefront-reference-architecture/node_modules/lodash/_getRawTag.js ***! 77894 \******************************************************************************/ 77895/*! no static exports found */ 77896/***/ (function(module, exports, __webpack_require__) { 77897 77898var _Symbol = __webpack_require__(/*! ./_Symbol */ "../storefront-reference-architecture/node_modules/lodash/_Symbol.js"); 77899/** Used for built-in method references. */ 77900 77901 77902var objectProto = Object.prototype; 77903/** Used to check objects for own properties. */ 77904 77905var hasOwnProperty = objectProto.hasOwnProperty; 77906/** 77907 * Used to resolve the 77908 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 77909 * of values. 77910 */ 77911 77912var nativeObjectToString = objectProto.toString; 77913/** Built-in value references. */ 77914 77915var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined; 77916/** 77917 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 77918 * 77919 * @private 77920 * @param {*} value The value to query. 77921 * @returns {string} Returns the raw `toStringTag`. 77922 */ 77923 77924function getRawTag(value) { 77925 var isOwn = hasOwnProperty.call(value, symToStringTag), 77926 tag = value[symToStringTag]; 77927 77928 try { 77929 value[symToStringTag] = undefined; 77930 var unmasked = true; 77931 } catch (e) {} 77932 77933 var result = nativeObjectToString.call(value); 77934 77935 if (unmasked) { 77936 if (isOwn) { 77937 value[symToStringTag] = tag; 77938 } else { 77939 delete value[symToStringTag]; 77940 } 77941 } 77942 77943 return result; 77944} 77945 77946module.exports = getRawTag; 77947 77948/***/ }), 77949
vendor: 995 bytes, lines 77950-77981
77950/***/ "../storefront-reference-architecture/node_modules/lodash/_objectToString.js": 77951/*!***********************************************************************************!*\ 77952 !*** ../storefront-reference-architecture/node_modules/lodash/_objectToString.js ***! 77953 \***********************************************************************************/ 77954/*! no static exports found */ 77955/***/ (function(module, exports) { 77956 77957/** Used for built-in method references. */ 77958var objectProto = Object.prototype; 77959/** 77960 * Used to resolve the 77961 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 77962 * of values. 77963 */ 77964 77965var nativeObjectToString = objectProto.toString; 77966/** 77967 * Converts `value` to a string using `Object.prototype.toString`. 77968 * 77969 * @private 77970 * @param {*} value The value to convert. 77971 * @returns {string} Returns the converted string. 77972 */ 77973 77974function objectToString(value) { 77975 return nativeObjectToString.call(value); 77976} 77977 77978module.exports = objectToString; 77979 77980/***/ }), 77981
vendor: 1,230 bytes, lines 77982-78002
77982/***/ "../storefront-reference-architecture/node_modules/lodash/_root.js": 77983/*!*************************************************************************!*\ 77984 !*** ../storefront-reference-architecture/node_modules/lodash/_root.js ***! 77985 \*************************************************************************/ 77986/*! no static exports found */ 77987/***/ (function(module, exports, __webpack_require__) { 77988 77989function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 77990 77991var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "../storefront-reference-architecture/node_modules/lodash/_freeGlobal.js"); 77992/** Detect free variable `self`. */ 77993 77994 77995var freeSelf = (typeof self === "undefined" ? "undefined" : _typeof(self)) == 'object' && self && self.Object === Object && self; 77996/** Used as a reference to the global object. */ 77997 77998var root = freeGlobal || freeSelf || Function('return this')(); 77999module.exports = root; 78000 78001/***/ }), 78002
vendor: 950 bytes, lines 78003-78032
78003/***/ "../storefront-reference-architecture/node_modules/lodash/_trimmedEndIndex.js": 78004/*!************************************************************************************!*\ 78005 !*** ../storefront-reference-architecture/node_modules/lodash/_trimmedEndIndex.js ***! 78006 \************************************************************************************/ 78007/*! no static exports found */ 78008/***/ (function(module, exports) { 78009 78010/** Used to match a single whitespace character. */ 78011var reWhitespace = /\s/; 78012/** 78013 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace 78014 * character of `string`. 78015 * 78016 * @private 78017 * @param {string} string The string to inspect. 78018 * @returns {number} Returns the index of the last non-whitespace character. 78019 */ 78020 78021function trimmedEndIndex(string) { 78022 var index = string.length; 78023 78024 while (index-- && reWhitespace.test(string.charAt(index))) {} 78025 78026 return index; 78027} 78028 78029module.exports = trimmedEndIndex; 78030 78031/***/ }), 78032
vendor: 6,747 bytes, lines 78033-78236
78033/***/ "../storefront-reference-architecture/node_modules/lodash/debounce.js": 78034/*!****************************************************************************!*\ 78035 !*** ../storefront-reference-architecture/node_modules/lodash/debounce.js ***! 78036 \****************************************************************************/ 78037/*! no static exports found */ 78038/***/ (function(module, exports, __webpack_require__) { 78039 78040var isObject = __webpack_require__(/*! ./isObject */ "../storefront-reference-architecture/node_modules/lodash/isObject.js"), 78041 now = __webpack_require__(/*! ./now */ "../storefront-reference-architecture/node_modules/lodash/now.js"), 78042 toNumber = __webpack_require__(/*! ./toNumber */ "../storefront-reference-architecture/node_modules/lodash/toNumber.js"); 78043/** Error message constants. */ 78044 78045 78046var FUNC_ERROR_TEXT = 'Expected a function'; 78047/* Built-in method references for those with the same name as other `lodash` methods. */ 78048 78049var nativeMax = Math.max, 78050 nativeMin = Math.min; 78051/** 78052 * Creates a debounced function that delays invoking `func` until after `wait` 78053 * milliseconds have elapsed since the last time the debounced function was 78054 * invoked. The debounced function comes with a `cancel` method to cancel 78055 * delayed `func` invocations and a `flush` method to immediately invoke them. 78056 * Provide `options` to indicate whether `func` should be invoked on the 78057 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked 78058 * with the last arguments provided to the debounced function. Subsequent 78059 * calls to the debounced function return the result of the last `func` 78060 * invocation. 78061 * 78062 * **Note:** If `leading` and `trailing` options are `true`, `func` is 78063 * invoked on the trailing edge of the timeout only if the debounced function 78064 * is invoked more than once during the `wait` timeout. 78065 * 78066 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 78067 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 78068 * 78069 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 78070 * for details over the differences between `_.debounce` and `_.throttle`. 78071 * 78072 * @static 78073 * @memberOf _ 78074 * @since 0.1.0 78075 * @category Function 78076 * @param {Function} func The function to debounce. 78077 * @param {number} [wait=0] The number of milliseconds to delay. 78078 * @param {Object} [options={}] The options object. 78079 * @param {boolean} [options.leading=false] 78080 * Specify invoking on the leading edge of the timeout. 78081 * @param {number} [options.maxWait] 78082 * The maximum time `func` is allowed to be delayed before it's invoked. 78083 * @param {boolean} [options.trailing=true] 78084 * Specify invoking on the trailing edge of the timeout. 78085 * @returns {Function} Returns the new debounced function. 78086 * @example 78087 * 78088 * // Avoid costly calculations while the window size is in flux. 78089 * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); 78090 * 78091 * // Invoke `sendMail` when clicked, debouncing subsequent calls. 78092 * jQuery(element).on('click', _.debounce(sendMail, 300, { 78093 * 'leading': true, 78094 * 'trailing': false 78095 * })); 78096 * 78097 * // Ensure `batchLog` is invoked once after 1 second of debounced calls. 78098 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); 78099 * var source = new EventSource('/stream'); 78100 * jQuery(source).on('message', debounced); 78101 * 78102 * // Cancel the trailing debounced invocation. 78103 * jQuery(window).on('popstate', debounced.cancel); 78104 */ 78105 78106function debounce(func, wait, options) { 78107 var lastArgs, 78108 lastThis, 78109 maxWait, 78110 result, 78111 timerId, 78112 lastCallTime, 78113 lastInvokeTime = 0, 78114 leading = false, 78115 maxing = false, 78116 trailing = true; 78117 78118 if (typeof func != 'function') { 78119 throw new TypeError(FUNC_ERROR_TEXT); 78120 } 78121 78122 wait = toNumber(wait) || 0; 78123 78124 if (isObject(options)) { 78125 leading = !!options.leading; 78126 maxing = 'maxWait' in options; 78127 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; 78128 trailing = 'trailing' in options ? !!options.trailing : trailing; 78129 } 78130 78131 function invokeFunc(time) { 78132 var args = lastArgs, 78133 thisArg = lastThis; 78134 lastArgs = lastThis = undefined; 78135 lastInvokeTime = time; 78136 result = func.apply(thisArg, args); 78137 return result; 78138 } 78139 78140 function leadingEdge(time) { 78141 // Reset any `maxWait` timer. 78142 lastInvokeTime = time; // Start the timer for the trailing edge. 78143 78144 timerId = setTimeout(timerExpired, wait); // Invoke the leading edge. 78145 78146 return leading ? invokeFunc(time) : result; 78147 } 78148 78149 function remainingWait(time) { 78150 var timeSinceLastCall = time - lastCallTime, 78151 timeSinceLastInvoke = time - lastInvokeTime, 78152 timeWaiting = wait - timeSinceLastCall; 78153 return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; 78154 } 78155 78156 function shouldInvoke(time) { 78157 var timeSinceLastCall = time - lastCallTime, 78158 timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the 78159 // trailing edge, the system time has gone backwards and we're treating 78160 // it as the trailing edge, or we've hit the `maxWait` limit. 78161 78162 return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; 78163 } 78164 78165 function timerExpired() { 78166 var time = now(); 78167 78168 if (shouldInvoke(time)) { 78169 return trailingEdge(time); 78170 } // Restart the timer. 78171 78172 78173 timerId = setTimeout(timerExpired, remainingWait(time)); 78174 } 78175 78176 function trailingEdge(time) { 78177 timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been 78178 // debounced at least once. 78179 78180 if (trailing && lastArgs) { 78181 return invokeFunc(time); 78182 } 78183 78184 lastArgs = lastThis = undefined; 78185 return result; 78186 } 78187 78188 function cancel() { 78189 if (timerId !== undefined) { 78190 clearTimeout(timerId); 78191 } 78192 78193 lastInvokeTime = 0; 78194 lastArgs = lastCallTime = lastThis = timerId = undefined; 78195 } 78196 78197 function flush() { 78198 return timerId === undefined ? result : trailingEdge(now()); 78199 } 78200 78201 function debounced() { 78202 var time = now(), 78203 isInvoking = shouldInvoke(time); 78204 lastArgs = arguments; 78205 lastThis = this; 78206 lastCallTime = time; 78207 78208 if (isInvoking) { 78209 if (timerId === undefined) { 78210 return leadingEdge(lastCallTime); 78211 } 78212 78213 if (maxing) { 78214 // Handle invocations in a tight loop. 78215 clearTimeout(timerId); 78216 timerId = setTimeout(timerExpired, wait); 78217 return invokeFunc(lastCallTime); 78218 } 78219 } 78220 78221 if (timerId === undefined) { 78222 timerId = setTimeout(timerExpired, wait); 78223 } 78224 78225 return result; 78226 } 78227 78228 debounced.cancel = cancel; 78229 debounced.flush = flush; 78230 return debounced; 78231} 78232 78233module.exports = debounce; 78234 78235/***/ }), 78236
vendor: 1,518 bytes, lines 78237-78280
78237/***/ "../storefront-reference-architecture/node_modules/lodash/isObject.js": 78238/*!****************************************************************************!*\ 78239 !*** ../storefront-reference-architecture/node_modules/lodash/isObject.js ***! 78240 \****************************************************************************/ 78241/*! no static exports found */ 78242/***/ (function(module, exports) { 78243 78244function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 78245 78246/** 78247 * Checks if `value` is the 78248 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) 78249 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) 78250 * 78251 * @static 78252 * @memberOf _ 78253 * @since 0.1.0 78254 * @category Lang 78255 * @param {*} value The value to check. 78256 * @returns {boolean} Returns `true` if `value` is an object, else `false`. 78257 * @example 78258 * 78259 * _.isObject({}); 78260 * // => true 78261 * 78262 * _.isObject([1, 2, 3]); 78263 * // => true 78264 * 78265 * _.isObject(_.noop); 78266 * // => true 78267 * 78268 * _.isObject(null); 78269 * // => false 78270 */ 78271function isObject(value) { 78272 var type = _typeof(value); 78273 78274 return value != null && (type == 'object' || type == 'function'); 78275} 78276 78277module.exports = isObject; 78278 78279/***/ }), 78280
vendor: 1,414 bytes, lines 78281-78321
78281/***/ "../storefront-reference-architecture/node_modules/lodash/isObjectLike.js": 78282/*!********************************************************************************!*\ 78283 !*** ../storefront-reference-architecture/node_modules/lodash/isObjectLike.js ***! 78284 \********************************************************************************/ 78285/*! no static exports found */ 78286/***/ (function(module, exports) { 78287 78288function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 78289 78290/** 78291 * Checks if `value` is object-like. A value is object-like if it's not `null` 78292 * and has a `typeof` result of "object". 78293 * 78294 * @static 78295 * @memberOf _ 78296 * @since 4.0.0 78297 * @category Lang 78298 * @param {*} value The value to check. 78299 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 78300 * @example 78301 * 78302 * _.isObjectLike({}); 78303 * // => true 78304 * 78305 * _.isObjectLike([1, 2, 3]); 78306 * // => true 78307 * 78308 * _.isObjectLike(_.noop); 78309 * // => false 78310 * 78311 * _.isObjectLike(null); 78312 * // => false 78313 */ 78314function isObjectLike(value) { 78315 return value != null && _typeof(value) == 'object'; 78316} 78317 78318module.exports = isObjectLike; 78319 78320/***/ }), 78321
vendor: 1,665 bytes, lines 78322-78362
78322/***/ "../storefront-reference-architecture/node_modules/lodash/isSymbol.js": 78323/*!****************************************************************************!*\ 78324 !*** ../storefront-reference-architecture/node_modules/lodash/isSymbol.js ***! 78325 \****************************************************************************/ 78326/*! no static exports found */ 78327/***/ (function(module, exports, __webpack_require__) { 78328 78329function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 78330 78331var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "../storefront-reference-architecture/node_modules/lodash/_baseGetTag.js"), 78332 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "../storefront-reference-architecture/node_modules/lodash/isObjectLike.js"); 78333/** `Object#toString` result references. */ 78334 78335 78336var symbolTag = '[object Symbol]'; 78337/** 78338 * Checks if `value` is classified as a `Symbol` primitive or object. 78339 * 78340 * @static 78341 * @memberOf _ 78342 * @since 4.0.0 78343 * @category Lang 78344 * @param {*} value The value to check. 78345 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. 78346 * @example 78347 * 78348 * _.isSymbol(Symbol.iterator); 78349 * // => true 78350 * 78351 * _.isSymbol('abc'); 78352 * // => false 78353 */ 78354 78355function isSymbol(value) { 78356 return _typeof(value) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag; 78357} 78358 78359module.exports = isSymbol; 78360 78361/***/ }), 78362
vendor: 1,013 bytes, lines 78363-78396
78363/***/ "../storefront-reference-architecture/node_modules/lodash/now.js": 78364/*!***********************************************************************!*\ 78365 !*** ../storefront-reference-architecture/node_modules/lodash/now.js ***! 78366 \***********************************************************************/ 78367/*! no static exports found */ 78368/***/ (function(module, exports, __webpack_require__) { 78369 78370var root = __webpack_require__(/*! ./_root */ "../storefront-reference-architecture/node_modules/lodash/_root.js"); 78371/** 78372 * Gets the timestamp of the number of milliseconds that have elapsed since 78373 * the Unix epoch (1 January 1970 00:00:00 UTC). 78374 * 78375 * @static 78376 * @memberOf _ 78377 * @since 2.4.0 78378 * @category Date 78379 * @returns {number} Returns the timestamp. 78380 * @example 78381 * 78382 * _.defer(function(stamp) { 78383 * console.log(_.now() - stamp); 78384 * }, _.now()); 78385 * // => Logs the number of milliseconds it took for the deferred invocation. 78386 */ 78387 78388 78389var now = function now() { 78390 return root.Date.now(); 78391}; 78392 78393module.exports = now; 78394 78395/***/ }), 78396
vendor: 2,198 bytes, lines 78397-78473
78397/***/ "../storefront-reference-architecture/node_modules/lodash/toNumber.js": 78398/*!****************************************************************************!*\ 78399 !*** ../storefront-reference-architecture/node_modules/lodash/toNumber.js ***! 78400 \****************************************************************************/ 78401/*! no static exports found */ 78402/***/ (function(module, exports, __webpack_require__) { 78403 78404var baseTrim = __webpack_require__(/*! ./_baseTrim */ "../storefront-reference-architecture/node_modules/lodash/_baseTrim.js"), 78405 isObject = __webpack_require__(/*! ./isObject */ "../storefront-reference-architecture/node_modules/lodash/isObject.js"), 78406 isSymbol = __webpack_require__(/*! ./isSymbol */ "../storefront-reference-architecture/node_modules/lodash/isSymbol.js"); 78407/** Used as references for various `Number` constants. */ 78408 78409 78410var NAN = 0 / 0; 78411/** Used to detect bad signed hexadecimal string values. */ 78412 78413var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; 78414/** Used to detect binary string values. */ 78415 78416var reIsBinary = /^0b[01]+$/i; 78417/** Used to detect octal string values. */ 78418 78419var reIsOctal = /^0o[0-7]+$/i; 78420/** Built-in method references without a dependency on `root`. */ 78421 78422var freeParseInt = parseInt; 78423/** 78424 * Converts `value` to a number. 78425 * 78426 * @static 78427 * @memberOf _ 78428 * @since 4.0.0 78429 * @category Lang 78430 * @param {*} value The value to process. 78431 * @returns {number} Returns the number. 78432 * @example 78433 * 78434 * _.toNumber(3.2); 78435 * // => 3.2 78436 * 78437 * _.toNumber(Number.MIN_VALUE); 78438 * // => 5e-324 78439 * 78440 * _.toNumber(Infinity); 78441 * // => Infinity 78442 * 78443 * _.toNumber('3.2'); 78444 * // => 3.2 78445 */ 78446 78447function toNumber(value) { 78448 if (typeof value == 'number') { 78449 return value; 78450 } 78451 78452 if (isSymbol(value)) { 78453 return NAN; 78454 } 78455 78456 if (isObject(value)) { 78457 var other = typeof value.valueOf == 'function' ? value.valueOf() : value; 78458 value = isObject(other) ? other + '' : other; 78459 } 78460 78461 if (typeof value != 'string') { 78462 return value === 0 ? value : +value; 78463 } 78464 78465 value = baseTrim(value); 78466 var isBinary = reIsBinary.test(value); 78467 return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; 78468} 78469 78470module.exports = toNumber; 78471 78472/***/ }), 78473
vendor: 49,678 bytes, lines 78474-80338
78474/***/ "./node_modules/node-libs-browser/node_modules/buffer/index.js": 78475/*!*********************************************************************!*\ 78476 !*** ./node_modules/node-libs-browser/node_modules/buffer/index.js ***! 78477 \*********************************************************************/ 78478/*! no static exports found */ 78479/***/ (function(module, exports, __webpack_require__) { 78480 78481"use strict"; 78482/* WEBPACK VAR INJECTION */(function(global) {/*! 78483 * The buffer module from node.js, for the browser. 78484 * 78485 * @author Feross Aboukhadijeh <http://feross.org> 78486 * @license MIT 78487 */ 78488 78489/* eslint-disable no-proto */ 78490 78491 78492var base64 = __webpack_require__(/*! base64-js */ "../storefront-reference-architecture/node_modules/base64-js/index.js"); 78493 78494var ieee754 = __webpack_require__(/*! ieee754 */ "../storefront-reference-architecture/node_modules/ieee754/index.js"); 78495 78496var isArray = __webpack_require__(/*! isarray */ "../storefront-reference-architecture/node_modules/isarray/index.js"); 78497 78498exports.Buffer = Buffer; 78499exports.SlowBuffer = SlowBuffer; 78500exports.INSPECT_MAX_BYTES = 50; 78501/** 78502 * If `Buffer.TYPED_ARRAY_SUPPORT`: 78503 * === true Use Uint8Array implementation (fastest) 78504 * === false Use Object implementation (most compatible, even IE6) 78505 * 78506 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, 78507 * Opera 11.6+, iOS 4.2+. 78508 * 78509 * Due to various browser bugs, sometimes the Object implementation will be used even 78510 * when the browser supports typed arrays. 78511 * 78512 * Note: 78513 * 78514 * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, 78515 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. 78516 * 78517 * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. 78518 * 78519 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of 78520 * incorrect length in some situations. 78521 78522 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they 78523 * get the Object implementation, which is slower but behaves correctly. 78524 */ 78525 78526Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport(); 78527/* 78528 * Export kMaxLength after typed array support is determined. 78529 */ 78530 78531exports.kMaxLength = kMaxLength(); 78532 78533function typedArraySupport() { 78534 try { 78535 var arr = new Uint8Array(1); 78536 arr.__proto__ = { 78537 __proto__: Uint8Array.prototype, 78538 foo: function foo() { 78539 return 42; 78540 } 78541 }; 78542 return arr.foo() === 42 && // typed array instances can be augmented 78543 typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` 78544 arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray` 78545 } catch (e) { 78546 return false; 78547 } 78548} 78549 78550function kMaxLength() { 78551 return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff; 78552} 78553 78554function createBuffer(that, length) { 78555 if (kMaxLength() < length) { 78556 throw new RangeError('Invalid typed array length'); 78557 } 78558 78559 if (Buffer.TYPED_ARRAY_SUPPORT) { 78560 // Return an augmented `Uint8Array` instance, for best performance 78561 that = new Uint8Array(length); 78562 that.__proto__ = Buffer.prototype; 78563 } else { 78564 // Fallback: Return an object instance of the Buffer class 78565 if (that === null) { 78566 that = new Buffer(length); 78567 } 78568 78569 that.length = length; 78570 } 78571 78572 return that; 78573} 78574/** 78575 * The Buffer constructor returns instances of `Uint8Array` that have their 78576 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of 78577 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods 78578 * and the `Uint8Array` methods. Square bracket notation works as expected -- it 78579 * returns a single octet. 78580 * 78581 * The `Uint8Array` prototype remains unmodified. 78582 */ 78583 78584 78585function Buffer(arg, encodingOrOffset, length) { 78586 if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { 78587 return new Buffer(arg, encodingOrOffset, length); 78588 } // Common case. 78589 78590 78591 if (typeof arg === 'number') { 78592 if (typeof encodingOrOffset === 'string') { 78593 throw new Error('If encoding is specified then the first argument must be a string'); 78594 } 78595 78596 return allocUnsafe(this, arg); 78597 } 78598 78599 return from(this, arg, encodingOrOffset, length); 78600} 78601 78602Buffer.poolSize = 8192; // not used by this implementation 78603// TODO: Legacy, not needed anymore. Remove in next major version. 78604 78605Buffer._augment = function (arr) { 78606 arr.__proto__ = Buffer.prototype; 78607 return arr; 78608}; 78609 78610function from(that, value, encodingOrOffset, length) { 78611 if (typeof value === 'number') { 78612 throw new TypeError('"value" argument must not be a number'); 78613 } 78614 78615 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { 78616 return fromArrayBuffer(that, value, encodingOrOffset, length); 78617 } 78618 78619 if (typeof value === 'string') { 78620 return fromString(that, value, encodingOrOffset); 78621 } 78622 78623 return fromObject(that, value); 78624} 78625/** 78626 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError 78627 * if value is a number. 78628 * Buffer.from(str[, encoding]) 78629 * Buffer.from(array) 78630 * Buffer.from(buffer) 78631 * Buffer.from(arrayBuffer[, byteOffset[, length]]) 78632 **/ 78633 78634 78635Buffer.from = function (value, encodingOrOffset, length) { 78636 return from(null, value, encodingOrOffset, length); 78637}; 78638 78639if (Buffer.TYPED_ARRAY_SUPPORT) { 78640 Buffer.prototype.__proto__ = Uint8Array.prototype; 78641 Buffer.__proto__ = Uint8Array; 78642 78643 if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) { 78644 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 78645 Object.defineProperty(Buffer, Symbol.species, { 78646 value: null, 78647 configurable: true 78648 }); 78649 } 78650} 78651 78652function assertSize(size) { 78653 if (typeof size !== 'number') { 78654 throw new TypeError('"size" argument must be a number'); 78655 } else if (size < 0) { 78656 throw new RangeError('"size" argument must not be negative'); 78657 } 78658} 78659 78660function alloc(that, size, fill, encoding) { 78661 assertSize(size); 78662 78663 if (size <= 0) { 78664 return createBuffer(that, size); 78665 } 78666 78667 if (fill !== undefined) { 78668 // Only pay attention to encoding if it's a string. This 78669 // prevents accidentally sending in a number that would 78670 // be interpretted as a start offset. 78671 return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill); 78672 } 78673 78674 return createBuffer(that, size); 78675} 78676/** 78677 * Creates a new filled Buffer instance. 78678 * alloc(size[, fill[, encoding]]) 78679 **/ 78680 78681 78682Buffer.alloc = function (size, fill, encoding) { 78683 return alloc(null, size, fill, encoding); 78684}; 78685 78686function allocUnsafe(that, size) { 78687 assertSize(size); 78688 that = createBuffer(that, size < 0 ? 0 : checked(size) | 0); 78689 78690 if (!Buffer.TYPED_ARRAY_SUPPORT) { 78691 for (var i = 0; i < size; ++i) { 78692 that[i] = 0; 78693 } 78694 } 78695 78696 return that; 78697} 78698/** 78699 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. 78700 * */ 78701 78702 78703Buffer.allocUnsafe = function (size) { 78704 return allocUnsafe(null, size); 78705}; 78706/** 78707 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. 78708 */ 78709 78710 78711Buffer.allocUnsafeSlow = function (size) { 78712 return allocUnsafe(null, size); 78713}; 78714 78715function fromString(that, string, encoding) { 78716 if (typeof encoding !== 'string' || encoding === '') { 78717 encoding = 'utf8'; 78718 } 78719 78720 if (!Buffer.isEncoding(encoding)) { 78721 throw new TypeError('"encoding" must be a valid string encoding'); 78722 } 78723 78724 var length = byteLength(string, encoding) | 0; 78725 that = createBuffer(that, length); 78726 var actual = that.write(string, encoding); 78727 78728 if (actual !== length) { 78729 // Writing a hex string, for example, that contains invalid characters will 78730 // cause everything after the first invalid character to be ignored. (e.g. 78731 // 'abxxcd' will be treated as 'ab') 78732 that = that.slice(0, actual); 78733 } 78734 78735 return that; 78736} 78737 78738function fromArrayLike(that, array) { 78739 var length = array.length < 0 ? 0 : checked(array.length) | 0; 78740 that = createBuffer(that, length); 78741 78742 for (var i = 0; i < length; i += 1) { 78743 that[i] = array[i] & 255; 78744 } 78745 78746 return that; 78747} 78748 78749function fromArrayBuffer(that, array, byteOffset, length) { 78750 array.byteLength; // this throws if `array` is not a valid ArrayBuffer 78751 78752 if (byteOffset < 0 || array.byteLength < byteOffset) { 78753 throw new RangeError('\'offset\' is out of bounds'); 78754 } 78755 78756 if (array.byteLength < byteOffset + (length || 0)) { 78757 throw new RangeError('\'length\' is out of bounds'); 78758 } 78759 78760 if (byteOffset === undefined && length === undefined) { 78761 array = new Uint8Array(array); 78762 } else if (length === undefined) { 78763 array = new Uint8Array(array, byteOffset); 78764 } else { 78765 array = new Uint8Array(array, byteOffset, length); 78766 } 78767 78768 if (Buffer.TYPED_ARRAY_SUPPORT) { 78769 // Return an augmented `Uint8Array` instance, for best performance 78770 that = array; 78771 that.__proto__ = Buffer.prototype; 78772 } else { 78773 // Fallback: Return an object instance of the Buffer class 78774 that = fromArrayLike(that, array); 78775 } 78776 78777 return that; 78778} 78779 78780function fromObject(that, obj) { 78781 if (Buffer.isBuffer(obj)) { 78782 var len = checked(obj.length) | 0; 78783 that = createBuffer(that, len); 78784 78785 if (that.length === 0) { 78786 return that; 78787 } 78788 78789 obj.copy(that, 0, 0, len); 78790 return that; 78791 } 78792 78793 if (obj) { 78794 if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) { 78795 if (typeof obj.length !== 'number' || isnan(obj.length)) { 78796 return createBuffer(that, 0); 78797 } 78798 78799 return fromArrayLike(that, obj); 78800 } 78801 78802 if (obj.type === 'Buffer' && isArray(obj.data)) { 78803 return fromArrayLike(that, obj.data); 78804 } 78805 } 78806 78807 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.'); 78808} 78809 78810function checked(length) { 78811 // Note: cannot use `length < kMaxLength()` here because that fails when 78812 // length is NaN (which is otherwise coerced to zero.) 78813 if (length >= kMaxLength()) { 78814 throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes'); 78815 } 78816 78817 return length | 0; 78818} 78819 78820function SlowBuffer(length) { 78821 if (+length != length) { 78822 // eslint-disable-line eqeqeq 78823 length = 0; 78824 } 78825 78826 return Buffer.alloc(+length); 78827} 78828 78829Buffer.isBuffer = function isBuffer(b) { 78830 return !!(b != null && b._isBuffer); 78831}; 78832 78833Buffer.compare = function compare(a, b) { 78834 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { 78835 throw new TypeError('Arguments must be Buffers'); 78836 } 78837 78838 if (a === b) return 0; 78839 var x = a.length; 78840 var y = b.length; 78841 78842 for (var i = 0, len = Math.min(x, y); i < len; ++i) { 78843 if (a[i] !== b[i]) { 78844 x = a[i]; 78845 y = b[i]; 78846 break; 78847 } 78848 } 78849 78850 if (x < y) return -1; 78851 if (y < x) return 1; 78852 return 0; 78853}; 78854 78855Buffer.isEncoding = function isEncoding(encoding) { 78856 switch (String(encoding).toLowerCase()) { 78857 case 'hex': 78858 case 'utf8': 78859 case 'utf-8': 78860 case 'ascii': 78861 case 'latin1': 78862 case 'binary': 78863 case 'base64': 78864 case 'ucs2': 78865 case 'ucs-2': 78866 case 'utf16le': 78867 case 'utf-16le': 78868 return true; 78869 78870 default: 78871 return false; 78872 } 78873}; 78874 78875Buffer.concat = function concat(list, length) { 78876 if (!isArray(list)) { 78877 throw new TypeError('"list" argument must be an Array of Buffers'); 78878 } 78879 78880 if (list.length === 0) { 78881 return Buffer.alloc(0); 78882 } 78883 78884 var i; 78885 78886 if (length === undefined) { 78887 length = 0; 78888 78889 for (i = 0; i < list.length; ++i) { 78890 length += list[i].length; 78891 } 78892 } 78893 78894 var buffer = Buffer.allocUnsafe(length); 78895 var pos = 0; 78896 78897 for (i = 0; i < list.length; ++i) { 78898 var buf = list[i]; 78899 78900 if (!Buffer.isBuffer(buf)) { 78901 throw new TypeError('"list" argument must be an Array of Buffers'); 78902 } 78903 78904 buf.copy(buffer, pos); 78905 pos += buf.length; 78906 } 78907 78908 return buffer; 78909}; 78910 78911function byteLength(string, encoding) { 78912 if (Buffer.isBuffer(string)) { 78913 return string.length; 78914 } 78915 78916 if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { 78917 return string.byteLength; 78918 } 78919 78920 if (typeof string !== 'string') { 78921 string = '' + string; 78922 } 78923 78924 var len = string.length; 78925 if (len === 0) return 0; // Use a for loop to avoid recursion 78926 78927 var loweredCase = false; 78928 78929 for (;;) { 78930 switch (encoding) { 78931 case 'ascii': 78932 case 'latin1': 78933 case 'binary': 78934 return len; 78935 78936 case 'utf8': 78937 case 'utf-8': 78938 case undefined: 78939 return utf8ToBytes(string).length; 78940 78941 case 'ucs2': 78942 case 'ucs-2': 78943 case 'utf16le': 78944 case 'utf-16le': 78945 return len * 2; 78946 78947 case 'hex': 78948 return len >>> 1; 78949 78950 case 'base64': 78951 return base64ToBytes(string).length; 78952 78953 default: 78954 if (loweredCase) return utf8ToBytes(string).length; // assume utf8 78955 78956 encoding = ('' + encoding).toLowerCase(); 78957 loweredCase = true; 78958 } 78959 } 78960} 78961 78962Buffer.byteLength = byteLength; 78963 78964function slowToString(encoding, start, end) { 78965 var loweredCase = false; // No need to verify that "this.length <= MAX_UINT32" since it's a read-only 78966 // property of a typed array. 78967 // This behaves neither like String nor Uint8Array in that we set start/end 78968 // to their upper/lower bounds if the value passed is out of range. 78969 // undefined is handled specially as per ECMA-262 6th Edition, 78970 // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. 78971 78972 if (start === undefined || start < 0) { 78973 start = 0; 78974 } // Return early if start > this.length. Done here to prevent potential uint32 78975 // coercion fail below. 78976 78977 78978 if (start > this.length) { 78979 return ''; 78980 } 78981 78982 if (end === undefined || end > this.length) { 78983 end = this.length; 78984 } 78985 78986 if (end <= 0) { 78987 return ''; 78988 } // Force coersion to uint32. This will also coerce falsey/NaN values to 0. 78989 78990 78991 end >>>= 0; 78992 start >>>= 0; 78993 78994 if (end <= start) { 78995 return ''; 78996 } 78997 78998 if (!encoding) encoding = 'utf8'; 78999 79000 while (true) { 79001 switch (encoding) { 79002 case 'hex': 79003 return hexSlice(this, start, end); 79004 79005 case 'utf8': 79006 case 'utf-8': 79007 return utf8Slice(this, start, end); 79008 79009 case 'ascii': 79010 return asciiSlice(this, start, end); 79011 79012 case 'latin1': 79013 case 'binary': 79014 return latin1Slice(this, start, end); 79015 79016 case 'base64': 79017 return base64Slice(this, start, end); 79018 79019 case 'ucs2': 79020 case 'ucs-2': 79021 case 'utf16le': 79022 case 'utf-16le': 79023 return utf16leSlice(this, start, end); 79024 79025 default: 79026 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding); 79027 encoding = (encoding + '').toLowerCase(); 79028 loweredCase = true; 79029 } 79030 } 79031} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect 79032// Buffer instances. 79033 79034 79035Buffer.prototype._isBuffer = true; 79036 79037function swap(b, n, m) { 79038 var i = b[n]; 79039 b[n] = b[m]; 79040 b[m] = i; 79041} 79042 79043Buffer.prototype.swap16 = function swap16() { 79044 var len = this.length; 79045 79046 if (len % 2 !== 0) { 79047 throw new RangeError('Buffer size must be a multiple of 16-bits'); 79048 } 79049 79050 for (var i = 0; i < len; i += 2) { 79051 swap(this, i, i + 1); 79052 } 79053 79054 return this; 79055}; 79056 79057Buffer.prototype.swap32 = function swap32() { 79058 var len = this.length; 79059 79060 if (len % 4 !== 0) { 79061 throw new RangeError('Buffer size must be a multiple of 32-bits'); 79062 } 79063 79064 for (var i = 0; i < len; i += 4) { 79065 swap(this, i, i + 3); 79066 swap(this, i + 1, i + 2); 79067 } 79068 79069 return this; 79070}; 79071 79072Buffer.prototype.swap64 = function swap64() { 79073 var len = this.length; 79074 79075 if (len % 8 !== 0) { 79076 throw new RangeError('Buffer size must be a multiple of 64-bits'); 79077 } 79078 79079 for (var i = 0; i < len; i += 8) { 79080 swap(this, i, i + 7); 79081 swap(this, i + 1, i + 6); 79082 swap(this, i + 2, i + 5); 79083 swap(this, i + 3, i + 4); 79084 } 79085 79086 return this; 79087}; 79088 79089Buffer.prototype.toString = function toString() { 79090 var length = this.length | 0; 79091 if (length === 0) return ''; 79092 if (arguments.length === 0) return utf8Slice(this, 0, length); 79093 return slowToString.apply(this, arguments); 79094}; 79095 79096Buffer.prototype.equals = function equals(b) { 79097 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer'); 79098 if (this === b) return true; 79099 return Buffer.compare(this, b) === 0; 79100}; 79101 79102Buffer.prototype.inspect = function inspect() { 79103 var str = ''; 79104 var max = exports.INSPECT_MAX_BYTES; 79105 79106 if (this.length > 0) { 79107 str = this.toString('hex', 0, max).match(/.{2}/g).join(' '); 79108 if (this.length > max) str += ' ... '; 79109 } 79110 79111 return '<Buffer ' + str + '>'; 79112}; 79113 79114Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { 79115 if (!Buffer.isBuffer(target)) { 79116 throw new TypeError('Argument must be a Buffer'); 79117 } 79118 79119 if (start === undefined) { 79120 start = 0; 79121 } 79122 79123 if (end === undefined) { 79124 end = target ? target.length : 0; 79125 } 79126 79127 if (thisStart === undefined) { 79128 thisStart = 0; 79129 } 79130 79131 if (thisEnd === undefined) { 79132 thisEnd = this.length; 79133 } 79134 79135 if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { 79136 throw new RangeError('out of range index'); 79137 } 79138 79139 if (thisStart >= thisEnd && start >= end) { 79140 return 0; 79141 } 79142 79143 if (thisStart >= thisEnd) { 79144 return -1; 79145 } 79146 79147 if (start >= end) { 79148 return 1; 79149 } 79150 79151 start >>>= 0; 79152 end >>>= 0; 79153 thisStart >>>= 0; 79154 thisEnd >>>= 0; 79155 if (this === target) return 0; 79156 var x = thisEnd - thisStart; 79157 var y = end - start; 79158 var len = Math.min(x, y); 79159 var thisCopy = this.slice(thisStart, thisEnd); 79160 var targetCopy = target.slice(start, end); 79161 79162 for (var i = 0; i < len; ++i) { 79163 if (thisCopy[i] !== targetCopy[i]) { 79164 x = thisCopy[i]; 79165 y = targetCopy[i]; 79166 break; 79167 } 79168 } 79169 79170 if (x < y) return -1; 79171 if (y < x) return 1; 79172 return 0; 79173}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, 79174// OR the last index of `val` in `buffer` at offset <= `byteOffset`. 79175// 79176// Arguments: 79177// - buffer - a Buffer to search 79178// - val - a string, Buffer, or number 79179// - byteOffset - an index into `buffer`; will be clamped to an int32 79180// - encoding - an optional encoding, relevant is val is a string 79181// - dir - true for indexOf, false for lastIndexOf 79182 79183 79184function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { 79185 // Empty buffer means no match 79186 if (buffer.length === 0) return -1; // Normalize byteOffset 79187 79188 if (typeof byteOffset === 'string') { 79189 encoding = byteOffset; 79190 byteOffset = 0; 79191 } else if (byteOffset > 0x7fffffff) { 79192 byteOffset = 0x7fffffff; 79193 } else if (byteOffset < -0x80000000) { 79194 byteOffset = -0x80000000; 79195 } 79196 79197 byteOffset = +byteOffset; // Coerce to Number. 79198 79199 if (isNaN(byteOffset)) { 79200 // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer 79201 byteOffset = dir ? 0 : buffer.length - 1; 79202 } // Normalize byteOffset: negative offsets start from the end of the buffer 79203 79204 79205 if (byteOffset < 0) byteOffset = buffer.length + byteOffset; 79206 79207 if (byteOffset >= buffer.length) { 79208 if (dir) return -1;else byteOffset = buffer.length - 1; 79209 } else if (byteOffset < 0) { 79210 if (dir) byteOffset = 0;else return -1; 79211 } // Normalize val 79212 79213 79214 if (typeof val === 'string') { 79215 val = Buffer.from(val, encoding); 79216 } // Finally, search either indexOf (if dir is true) or lastIndexOf 79217 79218 79219 if (Buffer.isBuffer(val)) { 79220 // Special case: looking for empty string/buffer always fails 79221 if (val.length === 0) { 79222 return -1; 79223 } 79224 79225 return arrayIndexOf(buffer, val, byteOffset, encoding, dir); 79226 } else if (typeof val === 'number') { 79227 val = val & 0xFF; // Search for a byte value [0-255] 79228 79229 if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') { 79230 if (dir) { 79231 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset); 79232 } else { 79233 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset); 79234 } 79235 } 79236 79237 return arrayIndexOf(buffer, [val], byteOffset, encoding, dir); 79238 } 79239 79240 throw new TypeError('val must be string, number or Buffer'); 79241} 79242 79243function arrayIndexOf(arr, val, byteOffset, encoding, dir) { 79244 var indexSize = 1; 79245 var arrLength = arr.length; 79246 var valLength = val.length; 79247 79248 if (encoding !== undefined) { 79249 encoding = String(encoding).toLowerCase(); 79250 79251 if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') { 79252 if (arr.length < 2 || val.length < 2) { 79253 return -1; 79254 } 79255 79256 indexSize = 2; 79257 arrLength /= 2; 79258 valLength /= 2; 79259 byteOffset /= 2; 79260 } 79261 } 79262 79263 function read(buf, i) { 79264 if (indexSize === 1) { 79265 return buf[i]; 79266 } else { 79267 return buf.readUInt16BE(i * indexSize); 79268 } 79269 } 79270 79271 var i; 79272 79273 if (dir) { 79274 var foundIndex = -1; 79275 79276 for (i = byteOffset; i < arrLength; i++) { 79277 if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { 79278 if (foundIndex === -1) foundIndex = i; 79279 if (i - foundIndex + 1 === valLength) return foundIndex * indexSize; 79280 } else { 79281 if (foundIndex !== -1) i -= i - foundIndex; 79282 foundIndex = -1; 79283 } 79284 } 79285 } else { 79286 if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; 79287 79288 for (i = byteOffset; i >= 0; i--) { 79289 var found = true; 79290 79291 for (var j = 0; j < valLength; j++) { 79292 if (read(arr, i + j) !== read(val, j)) { 79293 found = false; 79294 break; 79295 } 79296 } 79297 79298 if (found) return i; 79299 } 79300 } 79301 79302 return -1; 79303} 79304 79305Buffer.prototype.includes = function includes(val, byteOffset, encoding) { 79306 return this.indexOf(val, byteOffset, encoding) !== -1; 79307}; 79308 79309Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) { 79310 return bidirectionalIndexOf(this, val, byteOffset, encoding, true); 79311}; 79312 79313Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { 79314 return bidirectionalIndexOf(this, val, byteOffset, encoding, false); 79315}; 79316 79317function hexWrite(buf, string, offset, length) { 79318 offset = Number(offset) || 0; 79319 var remaining = buf.length - offset; 79320 79321 if (!length) { 79322 length = remaining; 79323 } else { 79324 length = Number(length); 79325 79326 if (length > remaining) { 79327 length = remaining; 79328 } 79329 } // must be an even number of digits 79330 79331 79332 var strLen = string.length; 79333 if (strLen % 2 !== 0) throw new TypeError('Invalid hex string'); 79334 79335 if (length > strLen / 2) { 79336 length = strLen / 2; 79337 } 79338 79339 for (var i = 0; i < length; ++i) { 79340 var parsed = parseInt(string.substr(i * 2, 2), 16); 79341 if (isNaN(parsed)) return i; 79342 buf[offset + i] = parsed; 79343 } 79344 79345 return i; 79346} 79347 79348function utf8Write(buf, string, offset, length) { 79349 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length); 79350} 79351 79352function asciiWrite(buf, string, offset, length) { 79353 return blitBuffer(asciiToBytes(string), buf, offset, length); 79354} 79355 79356function latin1Write(buf, string, offset, length) { 79357 return asciiWrite(buf, string, offset, length); 79358} 79359 79360function base64Write(buf, string, offset, length) { 79361 return blitBuffer(base64ToBytes(string), buf, offset, length); 79362} 79363 79364function ucs2Write(buf, string, offset, length) { 79365 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length); 79366} 79367 79368Buffer.prototype.write = function write(string, offset, length, encoding) { 79369 // Buffer#write(string) 79370 if (offset === undefined) { 79371 encoding = 'utf8'; 79372 length = this.length; 79373 offset = 0; // Buffer#write(string, encoding) 79374 } else if (length === undefined && typeof offset === 'string') { 79375 encoding = offset; 79376 length = this.length; 79377 offset = 0; // Buffer#write(string, offset[, length][, encoding]) 79378 } else if (isFinite(offset)) { 79379 offset = offset | 0; 79380 79381 if (isFinite(length)) { 79382 length = length | 0; 79383 if (encoding === undefined) encoding = 'utf8'; 79384 } else { 79385 encoding = length; 79386 length = undefined; 79387 } // legacy write(string, encoding, offset, length) - remove in v0.13 79388 79389 } else { 79390 throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported'); 79391 } 79392 79393 var remaining = this.length - offset; 79394 if (length === undefined || length > remaining) length = remaining; 79395 79396 if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) { 79397 throw new RangeError('Attempt to write outside buffer bounds'); 79398 } 79399 79400 if (!encoding) encoding = 'utf8'; 79401 var loweredCase = false; 79402 79403 for (;;) { 79404 switch (encoding) { 79405 case 'hex': 79406 return hexWrite(this, string, offset, length); 79407 79408 case 'utf8': 79409 case 'utf-8': 79410 return utf8Write(this, string, offset, length); 79411 79412 case 'ascii': 79413 return asciiWrite(this, string, offset, length); 79414 79415 case 'latin1': 79416 case 'binary': 79417 return latin1Write(this, string, offset, length); 79418 79419 case 'base64': 79420 // Warning: maxLength not taken into account in base64Write 79421 return base64Write(this, string, offset, length); 79422 79423 case 'ucs2': 79424 case 'ucs-2': 79425 case 'utf16le': 79426 case 'utf-16le': 79427 return ucs2Write(this, string, offset, length); 79428 79429 default: 79430 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding); 79431 encoding = ('' + encoding).toLowerCase(); 79432 loweredCase = true; 79433 } 79434 } 79435}; 79436 79437Buffer.prototype.toJSON = function toJSON() { 79438 return { 79439 type: 'Buffer', 79440 data: Array.prototype.slice.call(this._arr || this, 0) 79441 }; 79442}; 79443 79444function base64Slice(buf, start, end) { 79445 if (start === 0 && end === buf.length) { 79446 return base64.fromByteArray(buf); 79447 } else { 79448 return base64.fromByteArray(buf.slice(start, end)); 79449 } 79450} 79451 79452function utf8Slice(buf, start, end) { 79453 end = Math.min(buf.length, end); 79454 var res = []; 79455 var i = start; 79456 79457 while (i < end) { 79458 var firstByte = buf[i]; 79459 var codePoint = null; 79460 var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1; 79461 79462 if (i + bytesPerSequence <= end) { 79463 var secondByte, thirdByte, fourthByte, tempCodePoint; 79464 79465 switch (bytesPerSequence) { 79466 case 1: 79467 if (firstByte < 0x80) { 79468 codePoint = firstByte; 79469 } 79470 79471 break; 79472 79473 case 2: 79474 secondByte = buf[i + 1]; 79475 79476 if ((secondByte & 0xC0) === 0x80) { 79477 tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F; 79478 79479 if (tempCodePoint > 0x7F) { 79480 codePoint = tempCodePoint; 79481 } 79482 } 79483 79484 break; 79485 79486 case 3: 79487 secondByte = buf[i + 1]; 79488 thirdByte = buf[i + 2]; 79489 79490 if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { 79491 tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F; 79492 79493 if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { 79494 codePoint = tempCodePoint; 79495 } 79496 } 79497 79498 break; 79499 79500 case 4: 79501 secondByte = buf[i + 1]; 79502 thirdByte = buf[i + 2]; 79503 fourthByte = buf[i + 3]; 79504 79505 if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { 79506 tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F; 79507 79508 if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { 79509 codePoint = tempCodePoint; 79510 } 79511 } 79512 79513 } 79514 } 79515 79516 if (codePoint === null) { 79517 // we did not generate a valid codePoint so insert a 79518 // replacement char (U+FFFD) and advance only 1 byte 79519 codePoint = 0xFFFD; 79520 bytesPerSequence = 1; 79521 } else if (codePoint > 0xFFFF) { 79522 // encode to utf16 (surrogate pair dance) 79523 codePoint -= 0x10000; 79524 res.push(codePoint >>> 10 & 0x3FF | 0xD800); 79525 codePoint = 0xDC00 | codePoint & 0x3FF; 79526 } 79527 79528 res.push(codePoint); 79529 i += bytesPerSequence; 79530 } 79531 79532 return decodeCodePointsArray(res); 79533} // Based on http://stackoverflow.com/a/22747272/680742, the browser with 79534// the lowest limit is Chrome, with 0x10000 args. 79535// We go 1 magnitude less, for safety 79536 79537 79538var MAX_ARGUMENTS_LENGTH = 0x1000; 79539 79540function decodeCodePointsArray(codePoints) { 79541 var len = codePoints.length; 79542 79543 if (len <= MAX_ARGUMENTS_LENGTH) { 79544 return String.fromCharCode.apply(String, codePoints); // avoid extra slice() 79545 } // Decode in chunks to avoid "call stack size exceeded". 79546 79547 79548 var res = ''; 79549 var i = 0; 79550 79551 while (i < len) { 79552 res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); 79553 } 79554 79555 return res; 79556} 79557 79558function asciiSlice(buf, start, end) { 79559 var ret = ''; 79560 end = Math.min(buf.length, end); 79561 79562 for (var i = start; i < end; ++i) { 79563 ret += String.fromCharCode(buf[i] & 0x7F); 79564 } 79565 79566 return ret; 79567} 79568 79569function latin1Slice(buf, start, end) { 79570 var ret = ''; 79571 end = Math.min(buf.length, end); 79572 79573 for (var i = start; i < end; ++i) { 79574 ret += String.fromCharCode(buf[i]); 79575 } 79576 79577 return ret; 79578} 79579 79580function hexSlice(buf, start, end) { 79581 var len = buf.length; 79582 if (!start || start < 0) start = 0; 79583 if (!end || end < 0 || end > len) end = len; 79584 var out = ''; 79585 79586 for (var i = start; i < end; ++i) { 79587 out += toHex(buf[i]); 79588 } 79589 79590 return out; 79591} 79592 79593function utf16leSlice(buf, start, end) { 79594 var bytes = buf.slice(start, end); 79595 var res = ''; 79596 79597 for (var i = 0; i < bytes.length; i += 2) { 79598 res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); 79599 } 79600 79601 return res; 79602} 79603 79604Buffer.prototype.slice = function slice(start, end) { 79605 var len = this.length; 79606 start = ~~start; 79607 end = end === undefined ? len : ~~end; 79608 79609 if (start < 0) { 79610 start += len; 79611 if (start < 0) start = 0; 79612 } else if (start > len) { 79613 start = len; 79614 } 79615 79616 if (end < 0) { 79617 end += len; 79618 if (end < 0) end = 0; 79619 } else if (end > len) { 79620 end = len; 79621 } 79622 79623 if (end < start) end = start; 79624 var newBuf; 79625 79626 if (Buffer.TYPED_ARRAY_SUPPORT) { 79627 newBuf = this.subarray(start, end); 79628 newBuf.__proto__ = Buffer.prototype; 79629 } else { 79630 var sliceLen = end - start; 79631 newBuf = new Buffer(sliceLen, undefined); 79632 79633 for (var i = 0; i < sliceLen; ++i) { 79634 newBuf[i] = this[i + start]; 79635 } 79636 } 79637 79638 return newBuf; 79639}; 79640/* 79641 * Need to make sure that buffer isn't trying to write out of bounds. 79642 */ 79643 79644 79645function checkOffset(offset, ext, length) { 79646 if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint'); 79647 if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length'); 79648} 79649 79650Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) { 79651 offset = offset | 0; 79652 byteLength = byteLength | 0; 79653 if (!noAssert) checkOffset(offset, byteLength, this.length); 79654 var val = this[offset]; 79655 var mul = 1; 79656 var i = 0; 79657 79658 while (++i < byteLength && (mul *= 0x100)) { 79659 val += this[offset + i] * mul; 79660 } 79661 79662 return val; 79663}; 79664 79665Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) { 79666 offset = offset | 0; 79667 byteLength = byteLength | 0; 79668 79669 if (!noAssert) { 79670 checkOffset(offset, byteLength, this.length); 79671 } 79672 79673 var val = this[offset + --byteLength]; 79674 var mul = 1; 79675 79676 while (byteLength > 0 && (mul *= 0x100)) { 79677 val += this[offset + --byteLength] * mul; 79678 } 79679 79680 return val; 79681}; 79682 79683Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) { 79684 if (!noAssert) checkOffset(offset, 1, this.length); 79685 return this[offset]; 79686}; 79687 79688Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { 79689 if (!noAssert) checkOffset(offset, 2, this.length); 79690 return this[offset] | this[offset + 1] << 8; 79691}; 79692 79693Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { 79694 if (!noAssert) checkOffset(offset, 2, this.length); 79695 return this[offset] << 8 | this[offset + 1]; 79696}; 79697 79698Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { 79699 if (!noAssert) checkOffset(offset, 4, this.length); 79700 return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000; 79701}; 79702 79703Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { 79704 if (!noAssert) checkOffset(offset, 4, this.length); 79705 return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]); 79706}; 79707 79708Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) { 79709 offset = offset | 0; 79710 byteLength = byteLength | 0; 79711 if (!noAssert) checkOffset(offset, byteLength, this.length); 79712 var val = this[offset]; 79713 var mul = 1; 79714 var i = 0; 79715 79716 while (++i < byteLength && (mul *= 0x100)) { 79717 val += this[offset + i] * mul; 79718 } 79719 79720 mul *= 0x80; 79721 if (val >= mul) val -= Math.pow(2, 8 * byteLength); 79722 return val; 79723}; 79724 79725Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) { 79726 offset = offset | 0; 79727 byteLength = byteLength | 0; 79728 if (!noAssert) checkOffset(offset, byteLength, this.length); 79729 var i = byteLength; 79730 var mul = 1; 79731 var val = this[offset + --i]; 79732 79733 while (i > 0 && (mul *= 0x100)) { 79734 val += this[offset + --i] * mul; 79735 } 79736 79737 mul *= 0x80; 79738 if (val >= mul) val -= Math.pow(2, 8 * byteLength); 79739 return val; 79740}; 79741 79742Buffer.prototype.readInt8 = function readInt8(offset, noAssert) { 79743 if (!noAssert) checkOffset(offset, 1, this.length); 79744 if (!(this[offset] & 0x80)) return this[offset]; 79745 return (0xff - this[offset] + 1) * -1; 79746}; 79747 79748Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) { 79749 if (!noAssert) checkOffset(offset, 2, this.length); 79750 var val = this[offset] | this[offset + 1] << 8; 79751 return val & 0x8000 ? val | 0xFFFF0000 : val; 79752}; 79753 79754Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) { 79755 if (!noAssert) checkOffset(offset, 2, this.length); 79756 var val = this[offset + 1] | this[offset] << 8; 79757 return val & 0x8000 ? val | 0xFFFF0000 : val; 79758}; 79759 79760Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) { 79761 if (!noAssert) checkOffset(offset, 4, this.length); 79762 return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24; 79763}; 79764 79765Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) { 79766 if (!noAssert) checkOffset(offset, 4, this.length); 79767 return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]; 79768}; 79769 79770Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) { 79771 if (!noAssert) checkOffset(offset, 4, this.length); 79772 return ieee754.read(this, offset, true, 23, 4); 79773}; 79774 79775Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) { 79776 if (!noAssert) checkOffset(offset, 4, this.length); 79777 return ieee754.read(this, offset, false, 23, 4); 79778}; 79779 79780Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { 79781 if (!noAssert) checkOffset(offset, 8, this.length); 79782 return ieee754.read(this, offset, true, 52, 8); 79783}; 79784 79785Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { 79786 if (!noAssert) checkOffset(offset, 8, this.length); 79787 return ieee754.read(this, offset, false, 52, 8); 79788}; 79789 79790function checkInt(buf, value, offset, ext, max, min) { 79791 if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance'); 79792 if (value > max || value < min) throw new RangeError('"value" argument is out of bounds'); 79793 if (offset + ext > buf.length) throw new RangeError('Index out of range'); 79794} 79795 79796Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) { 79797 value = +value; 79798 offset = offset | 0; 79799 byteLength = byteLength | 0; 79800 79801 if (!noAssert) { 79802 var maxBytes = Math.pow(2, 8 * byteLength) - 1; 79803 checkInt(this, value, offset, byteLength, maxBytes, 0); 79804 } 79805 79806 var mul = 1; 79807 var i = 0; 79808 this[offset] = value & 0xFF; 79809 79810 while (++i < byteLength && (mul *= 0x100)) { 79811 this[offset + i] = value / mul & 0xFF; 79812 } 79813 79814 return offset + byteLength; 79815}; 79816 79817Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) { 79818 value = +value; 79819 offset = offset | 0; 79820 byteLength = byteLength | 0; 79821 79822 if (!noAssert) { 79823 var maxBytes = Math.pow(2, 8 * byteLength) - 1; 79824 checkInt(this, value, offset, byteLength, maxBytes, 0); 79825 } 79826 79827 var i = byteLength - 1; 79828 var mul = 1; 79829 this[offset + i] = value & 0xFF; 79830 79831 while (--i >= 0 && (mul *= 0x100)) { 79832 this[offset + i] = value / mul & 0xFF; 79833 } 79834 79835 return offset + byteLength; 79836}; 79837 79838Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { 79839 value = +value; 79840 offset = offset | 0; 79841 if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0); 79842 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value); 79843 this[offset] = value & 0xff; 79844 return offset + 1; 79845}; 79846 79847function objectWriteUInt16(buf, value, offset, littleEndian) { 79848 if (value < 0) value = 0xffff + value + 1; 79849 79850 for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { 79851 buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8; 79852 } 79853} 79854 79855Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { 79856 value = +value; 79857 offset = offset | 0; 79858 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); 79859 79860 if (Buffer.TYPED_ARRAY_SUPPORT) { 79861 this[offset] = value & 0xff; 79862 this[offset + 1] = value >>> 8; 79863 } else { 79864 objectWriteUInt16(this, value, offset, true); 79865 } 79866 79867 return offset + 2; 79868}; 79869 79870Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { 79871 value = +value; 79872 offset = offset | 0; 79873 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); 79874 79875 if (Buffer.TYPED_ARRAY_SUPPORT) { 79876 this[offset] = value >>> 8; 79877 this[offset + 1] = value & 0xff; 79878 } else { 79879 objectWriteUInt16(this, value, offset, false); 79880 } 79881 79882 return offset + 2; 79883}; 79884 79885function objectWriteUInt32(buf, value, offset, littleEndian) { 79886 if (value < 0) value = 0xffffffff + value + 1; 79887 79888 for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { 79889 buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff; 79890 } 79891} 79892 79893Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { 79894 value = +value; 79895 offset = offset | 0; 79896 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); 79897 79898 if (Buffer.TYPED_ARRAY_SUPPORT) { 79899 this[offset + 3] = value >>> 24; 79900 this[offset + 2] = value >>> 16; 79901 this[offset + 1] = value >>> 8; 79902 this[offset] = value & 0xff; 79903 } else { 79904 objectWriteUInt32(this, value, offset, true); 79905 } 79906 79907 return offset + 4; 79908}; 79909 79910Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { 79911 value = +value; 79912 offset = offset | 0; 79913 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); 79914 79915 if (Buffer.TYPED_ARRAY_SUPPORT) { 79916 this[offset] = value >>> 24; 79917 this[offset + 1] = value >>> 16; 79918 this[offset + 2] = value >>> 8; 79919 this[offset + 3] = value & 0xff; 79920 } else { 79921 objectWriteUInt32(this, value, offset, false); 79922 } 79923 79924 return offset + 4; 79925}; 79926 79927Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) { 79928 value = +value; 79929 offset = offset | 0; 79930 79931 if (!noAssert) { 79932 var limit = Math.pow(2, 8 * byteLength - 1); 79933 checkInt(this, value, offset, byteLength, limit - 1, -limit); 79934 } 79935 79936 var i = 0; 79937 var mul = 1; 79938 var sub = 0; 79939 this[offset] = value & 0xFF; 79940 79941 while (++i < byteLength && (mul *= 0x100)) { 79942 if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { 79943 sub = 1; 79944 } 79945 79946 this[offset + i] = (value / mul >> 0) - sub & 0xFF; 79947 } 79948 79949 return offset + byteLength; 79950}; 79951 79952Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) { 79953 value = +value; 79954 offset = offset | 0; 79955 79956 if (!noAssert) { 79957 var limit = Math.pow(2, 8 * byteLength - 1); 79958 checkInt(this, value, offset, byteLength, limit - 1, -limit); 79959 } 79960 79961 var i = byteLength - 1; 79962 var mul = 1; 79963 var sub = 0; 79964 this[offset + i] = value & 0xFF; 79965 79966 while (--i >= 0 && (mul *= 0x100)) { 79967 if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { 79968 sub = 1; 79969 } 79970 79971 this[offset + i] = (value / mul >> 0) - sub & 0xFF; 79972 } 79973 79974 return offset + byteLength; 79975}; 79976 79977Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { 79978 value = +value; 79979 offset = offset | 0; 79980 if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80); 79981 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value); 79982 if (value < 0) value = 0xff + value + 1; 79983 this[offset] = value & 0xff; 79984 return offset + 1; 79985}; 79986 79987Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { 79988 value = +value; 79989 offset = offset | 0; 79990 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); 79991 79992 if (Buffer.TYPED_ARRAY_SUPPORT) { 79993 this[offset] = value & 0xff; 79994 this[offset + 1] = value >>> 8; 79995 } else { 79996 objectWriteUInt16(this, value, offset, true); 79997 } 79998 79999 return offset + 2; 80000}; 80001 80002Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { 80003 value = +value; 80004 offset = offset | 0; 80005 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); 80006 80007 if (Buffer.TYPED_ARRAY_SUPPORT) { 80008 this[offset] = value >>> 8; 80009 this[offset + 1] = value & 0xff; 80010 } else { 80011 objectWriteUInt16(this, value, offset, false); 80012 } 80013 80014 return offset + 2; 80015}; 80016 80017Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { 80018 value = +value; 80019 offset = offset | 0; 80020 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); 80021 80022 if (Buffer.TYPED_ARRAY_SUPPORT) { 80023 this[offset] = value & 0xff; 80024 this[offset + 1] = value >>> 8; 80025 this[offset + 2] = value >>> 16; 80026 this[offset + 3] = value >>> 24; 80027 } else { 80028 objectWriteUInt32(this, value, offset, true); 80029 } 80030 80031 return offset + 4; 80032}; 80033 80034Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { 80035 value = +value; 80036 offset = offset | 0; 80037 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); 80038 if (value < 0) value = 0xffffffff + value + 1; 80039 80040 if (Buffer.TYPED_ARRAY_SUPPORT) { 80041 this[offset] = value >>> 24; 80042 this[offset + 1] = value >>> 16; 80043 this[offset + 2] = value >>> 8; 80044 this[offset + 3] = value & 0xff; 80045 } else { 80046 objectWriteUInt32(this, value, offset, false); 80047 } 80048 80049 return offset + 4; 80050}; 80051 80052function checkIEEE754(buf, value, offset, ext, max, min) { 80053 if (offset + ext > buf.length) throw new RangeError('Index out of range'); 80054 if (offset < 0) throw new RangeError('Index out of range'); 80055} 80056 80057function writeFloat(buf, value, offset, littleEndian, noAssert) { 80058 if (!noAssert) { 80059 checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38); 80060 } 80061 80062 ieee754.write(buf, value, offset, littleEndian, 23, 4); 80063 return offset + 4; 80064} 80065 80066Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { 80067 return writeFloat(this, value, offset, true, noAssert); 80068}; 80069 80070Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { 80071 return writeFloat(this, value, offset, false, noAssert); 80072}; 80073 80074function writeDouble(buf, value, offset, littleEndian, noAssert) { 80075 if (!noAssert) { 80076 checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308); 80077 } 80078 80079 ieee754.write(buf, value, offset, littleEndian, 52, 8); 80080 return offset + 8; 80081} 80082 80083Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { 80084 return writeDouble(this, value, offset, true, noAssert); 80085}; 80086 80087Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { 80088 return writeDouble(this, value, offset, false, noAssert); 80089}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) 80090 80091 80092Buffer.prototype.copy = function copy(target, targetStart, start, end) { 80093 if (!start) start = 0; 80094 if (!end && end !== 0) end = this.length; 80095 if (targetStart >= target.length) targetStart = target.length; 80096 if (!targetStart) targetStart = 0; 80097 if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done 80098 80099 if (end === start) return 0; 80100 if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions 80101 80102 if (targetStart < 0) { 80103 throw new RangeError('targetStart out of bounds'); 80104 } 80105 80106 if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds'); 80107 if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob? 80108 80109 if (end > this.length) end = this.length; 80110 80111 if (target.length - targetStart < end - start) { 80112 end = target.length - targetStart + start; 80113 } 80114 80115 var len = end - start; 80116 var i; 80117 80118 if (this === target && start < targetStart && targetStart < end) { 80119 // descending copy from end 80120 for (i = len - 1; i >= 0; --i) { 80121 target[i + targetStart] = this[i + start]; 80122 } 80123 } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { 80124 // ascending copy from start 80125 for (i = 0; i < len; ++i) { 80126 target[i + targetStart] = this[i + start]; 80127 } 80128 } else { 80129 Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart); 80130 } 80131 80132 return len; 80133}; // Usage: 80134// buffer.fill(number[, offset[, end]]) 80135// buffer.fill(buffer[, offset[, end]]) 80136// buffer.fill(string[, offset[, end]][, encoding]) 80137 80138 80139Buffer.prototype.fill = function fill(val, start, end, encoding) { 80140 // Handle string cases: 80141 if (typeof val === 'string') { 80142 if (typeof start === 'string') { 80143 encoding = start; 80144 start = 0; 80145 end = this.length; 80146 } else if (typeof end === 'string') { 80147 encoding = end; 80148 end = this.length; 80149 } 80150 80151 if (val.length === 1) { 80152 var code = val.charCodeAt(0); 80153 80154 if (code < 256) { 80155 val = code; 80156 } 80157 } 80158 80159 if (encoding !== undefined && typeof encoding !== 'string') { 80160 throw new TypeError('encoding must be a string'); 80161 } 80162 80163 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { 80164 throw new TypeError('Unknown encoding: ' + encoding); 80165 } 80166 } else if (typeof val === 'number') { 80167 val = val & 255; 80168 } // Invalid ranges are not set to a default, so can range check early. 80169 80170 80171 if (start < 0 || this.length < start || this.length < end) { 80172 throw new RangeError('Out of range index'); 80173 } 80174 80175 if (end <= start) { 80176 return this; 80177 } 80178 80179 start = start >>> 0; 80180 end = end === undefined ? this.length : end >>> 0; 80181 if (!val) val = 0; 80182 var i; 80183 80184 if (typeof val === 'number') { 80185 for (i = start; i < end; ++i) { 80186 this[i] = val; 80187 } 80188 } else { 80189 var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString()); 80190 var len = bytes.length; 80191 80192 for (i = 0; i < end - start; ++i) { 80193 this[i + start] = bytes[i % len]; 80194 } 80195 } 80196 80197 return this; 80198}; // HELPER FUNCTIONS 80199// ================ 80200 80201 80202var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g; 80203 80204function base64clean(str) { 80205 // Node strips out invalid characters like \n and \t from the string, base64-js does not 80206 str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to '' 80207 80208 if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not 80209 80210 while (str.length % 4 !== 0) { 80211 str = str + '='; 80212 } 80213 80214 return str; 80215} 80216 80217function stringtrim(str) { 80218 if (str.trim) return str.trim(); 80219 return str.replace(/^\s+|\s+$/g, ''); 80220} 80221 80222function toHex(n) { 80223 if (n < 16) return '0' + n.toString(16); 80224 return n.toString(16); 80225} 80226 80227function utf8ToBytes(string, units) { 80228 units = units || Infinity; 80229 var codePoint; 80230 var length = string.length; 80231 var leadSurrogate = null; 80232 var bytes = []; 80233 80234 for (var i = 0; i < length; ++i) { 80235 codePoint = string.charCodeAt(i); // is surrogate component 80236 80237 if (codePoint > 0xD7FF && codePoint < 0xE000) { 80238 // last char was a lead 80239 if (!leadSurrogate) { 80240 // no lead yet 80241 if (codePoint > 0xDBFF) { 80242 // unexpected trail 80243 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); 80244 continue; 80245 } else if (i + 1 === length) { 80246 // unpaired lead 80247 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); 80248 continue; 80249 } // valid lead 80250 80251 80252 leadSurrogate = codePoint; 80253 continue; 80254 } // 2 leads in a row 80255 80256 80257 if (codePoint < 0xDC00) { 80258 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); 80259 leadSurrogate = codePoint; 80260 continue; 80261 } // valid surrogate pair 80262 80263 80264 codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000; 80265 } else if (leadSurrogate) { 80266 // valid bmp char, but last char was a lead 80267 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); 80268 } 80269 80270 leadSurrogate = null; // encode utf8 80271 80272 if (codePoint < 0x80) { 80273 if ((units -= 1) < 0) break; 80274 bytes.push(codePoint); 80275 } else if (codePoint < 0x800) { 80276 if ((units -= 2) < 0) break; 80277 bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80); 80278 } else if (codePoint < 0x10000) { 80279 if ((units -= 3) < 0) break; 80280 bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80); 80281 } else if (codePoint < 0x110000) { 80282 if ((units -= 4) < 0) break; 80283 bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80); 80284 } else { 80285 throw new Error('Invalid code point'); 80286 } 80287 } 80288 80289 return bytes; 80290} 80291 80292function asciiToBytes(str) { 80293 var byteArray = []; 80294 80295 for (var i = 0; i < str.length; ++i) { 80296 // Node's code seems to be doing this and not & 0x7F.. 80297 byteArray.push(str.charCodeAt(i) & 0xFF); 80298 } 80299 80300 return byteArray; 80301} 80302 80303function utf16leToBytes(str, units) { 80304 var c, hi, lo; 80305 var byteArray = []; 80306 80307 for (var i = 0; i < str.length; ++i) { 80308 if ((units -= 2) < 0) break; 80309 c = str.charCodeAt(i); 80310 hi = c >> 8; 80311 lo = c % 256; 80312 byteArray.push(lo); 80313 byteArray.push(hi); 80314 } 80315 80316 return byteArray; 80317} 80318 80319function base64ToBytes(str) { 80320 return base64.toByteArray(base64clean(str)); 80321} 80322 80323function blitBuffer(src, dst, offset, length) { 80324 for (var i = 0; i < length; ++i) { 80325 if (i + offset >= dst.length || i >= src.length) break; 80326 dst[i + offset] = src[i]; 80327 } 80328 80329 return i; 80330} 80331 80332function isnan(val) { 80333 return val !== val; // eslint-disable-line no-self-compare 80334} 80335/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 80336 80337/***/ }), 80338
vendor: 1,157 bytes, lines 80339-80368
80339/***/ "./node_modules/webpack/buildin/global.js": 80340/*!***********************************!*\ 80341 !*** (webpack)/buildin/global.js ***! 80342 \***********************************/ 80343/*! no static exports found */ 80344/***/ (function(module, exports) { 80345 80346function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 80347 80348var g; // This works in non-strict mode 80349 80350g = function () { 80351 return this; 80352}(); 80353 80354try { 80355 // This works if eval is allowed (see CSP) 80356 g = g || new Function("return this")(); 80357} catch (e) { 80358 // This works if the window reference is available 80359 if ((typeof window === "undefined" ? "undefined" : _typeof(window)) === "object") g = window; 80360} // g can still be undefined, but nothing to do about it... 80361// We return undefined, instead of nothing here, so it's 80362// easier to handle this case. if(!global) { ...} 80363 80364 80365module.exports = g; 80366 80367/***/ }), 80368
vendor: 801 bytes, lines 80369-80401
80369/***/ "./node_modules/webpack/buildin/module.js": 80370/*!***********************************!*\ 80371 !*** (webpack)/buildin/module.js ***! 80372 \***********************************/ 80373/*! no static exports found */ 80374/***/ (function(module, exports) { 80375 80376module.exports = function (module) { 80377 if (!module.webpackPolyfill) { 80378 module.deprecate = function () {}; 80379 80380 module.paths = []; // module.parent = undefined by default 80381 80382 if (!module.children) module.children = []; 80383 Object.defineProperty(module, "loaded", { 80384 enumerable: true, 80385 get: function get() { 80386 return module.l; 80387 } 80388 }); 80389 Object.defineProperty(module, "id", { 80390 enumerable: true, 80391 get: function get() { 80392 return module.i; 80393 } 80394 }); 80395 module.webpackPolyfill = 1; 80396 } 80397 80398 return module; 80399}; 80400 80401/***/ })
80401, 80402 80403/***/ 4: 80404/*!******************************!*\ 80405 !*** min-document (ignored) ***! 80406 \******************************/ 80407/*! no static exports found */ 80408/***/ (function(module, exports) { 80409 80410/* (ignored) */ 80411 80412/***/ }) 80413 80414/******/ }); 80415//# sourceMappingURL=main.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.